001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A structured set of questions intended to guide the collection of answers from end-users. Questionnaires provide detailed control over order, presentation, phraseology and grouping to allow coherent, consistent data collection.
052 */
053@ResourceDef(name="Questionnaire", profile="http://hl7.org/fhir/StructureDefinition/Questionnaire")
054public class Questionnaire extends MetadataResource {
055
056    public enum EnableWhenBehavior {
057        /**
058         * Enable the question when all the enableWhen criteria are satisfied.
059         */
060        ALL, 
061        /**
062         * Enable the question when any of the enableWhen criteria are satisfied.
063         */
064        ANY, 
065        /**
066         * added to help the parsers with the generic types
067         */
068        NULL;
069        public static EnableWhenBehavior fromCode(String codeString) throws FHIRException {
070            if (codeString == null || "".equals(codeString))
071                return null;
072        if ("all".equals(codeString))
073          return ALL;
074        if ("any".equals(codeString))
075          return ANY;
076        if (Configuration.isAcceptInvalidEnums())
077          return null;
078        else
079          throw new FHIRException("Unknown EnableWhenBehavior code '"+codeString+"'");
080        }
081        public String toCode() {
082          switch (this) {
083            case ALL: return "all";
084            case ANY: return "any";
085            case NULL: return null;
086            default: return "?";
087          }
088        }
089        public String getSystem() {
090          switch (this) {
091            case ALL: return "http://hl7.org/fhir/questionnaire-enable-behavior";
092            case ANY: return "http://hl7.org/fhir/questionnaire-enable-behavior";
093            case NULL: return null;
094            default: return "?";
095          }
096        }
097        public String getDefinition() {
098          switch (this) {
099            case ALL: return "Enable the question when all the enableWhen criteria are satisfied.";
100            case ANY: return "Enable the question when any of the enableWhen criteria are satisfied.";
101            case NULL: return null;
102            default: return "?";
103          }
104        }
105        public String getDisplay() {
106          switch (this) {
107            case ALL: return "All";
108            case ANY: return "Any";
109            case NULL: return null;
110            default: return "?";
111          }
112        }
113    }
114
115  public static class EnableWhenBehaviorEnumFactory implements EnumFactory<EnableWhenBehavior> {
116    public EnableWhenBehavior fromCode(String codeString) throws IllegalArgumentException {
117      if (codeString == null || "".equals(codeString))
118            if (codeString == null || "".equals(codeString))
119                return null;
120        if ("all".equals(codeString))
121          return EnableWhenBehavior.ALL;
122        if ("any".equals(codeString))
123          return EnableWhenBehavior.ANY;
124        throw new IllegalArgumentException("Unknown EnableWhenBehavior code '"+codeString+"'");
125        }
126        public Enumeration<EnableWhenBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
127          if (code == null)
128            return null;
129          if (code.isEmpty())
130            return new Enumeration<EnableWhenBehavior>(this, EnableWhenBehavior.NULL, code);
131          String codeString = ((PrimitiveType) code).asStringValue();
132          if (codeString == null || "".equals(codeString))
133            return new Enumeration<EnableWhenBehavior>(this, EnableWhenBehavior.NULL, code);
134        if ("all".equals(codeString))
135          return new Enumeration<EnableWhenBehavior>(this, EnableWhenBehavior.ALL, code);
136        if ("any".equals(codeString))
137          return new Enumeration<EnableWhenBehavior>(this, EnableWhenBehavior.ANY, code);
138        throw new FHIRException("Unknown EnableWhenBehavior code '"+codeString+"'");
139        }
140    public String toCode(EnableWhenBehavior code) {
141      if (code == EnableWhenBehavior.ALL)
142        return "all";
143      if (code == EnableWhenBehavior.ANY)
144        return "any";
145      return "?";
146      }
147    public String toSystem(EnableWhenBehavior code) {
148      return code.getSystem();
149      }
150    }
151
152    public enum QuestionnaireAnswerConstraint {
153        /**
154         * Only values listed as answerOption or in the expansion of the answerValueSet are permitted
155         */
156        OPTIONSONLY, 
157        /**
158         * In addition to the values listed as answerOption or in the expansion of the answerValueSet, any other values that correspond to the specified item.type are permitted
159         */
160        OPTIONSORTYPE, 
161        /**
162         * In addition to the values listed as answerOption or in the expansion of the answerValueSet, free-text strings are permitted.  Answers will have a type of 'string'.
163         */
164        OPTIONSORSTRING, 
165        /**
166         * added to help the parsers with the generic types
167         */
168        NULL;
169        public static QuestionnaireAnswerConstraint fromCode(String codeString) throws FHIRException {
170            if (codeString == null || "".equals(codeString))
171                return null;
172        if ("optionsOnly".equals(codeString))
173          return OPTIONSONLY;
174        if ("optionsOrType".equals(codeString))
175          return OPTIONSORTYPE;
176        if ("optionsOrString".equals(codeString))
177          return OPTIONSORSTRING;
178        if (Configuration.isAcceptInvalidEnums())
179          return null;
180        else
181          throw new FHIRException("Unknown QuestionnaireAnswerConstraint code '"+codeString+"'");
182        }
183        public String toCode() {
184          switch (this) {
185            case OPTIONSONLY: return "optionsOnly";
186            case OPTIONSORTYPE: return "optionsOrType";
187            case OPTIONSORSTRING: return "optionsOrString";
188            case NULL: return null;
189            default: return "?";
190          }
191        }
192        public String getSystem() {
193          switch (this) {
194            case OPTIONSONLY: return "http://hl7.org/fhir/questionnaire-answer-constraint";
195            case OPTIONSORTYPE: return "http://hl7.org/fhir/questionnaire-answer-constraint";
196            case OPTIONSORSTRING: return "http://hl7.org/fhir/questionnaire-answer-constraint";
197            case NULL: return null;
198            default: return "?";
199          }
200        }
201        public String getDefinition() {
202          switch (this) {
203            case OPTIONSONLY: return "Only values listed as answerOption or in the expansion of the answerValueSet are permitted";
204            case OPTIONSORTYPE: return "In addition to the values listed as answerOption or in the expansion of the answerValueSet, any other values that correspond to the specified item.type are permitted";
205            case OPTIONSORSTRING: return "In addition to the values listed as answerOption or in the expansion of the answerValueSet, free-text strings are permitted.  Answers will have a type of 'string'.";
206            case NULL: return null;
207            default: return "?";
208          }
209        }
210        public String getDisplay() {
211          switch (this) {
212            case OPTIONSONLY: return "Options only";
213            case OPTIONSORTYPE: return "Options or 'type'";
214            case OPTIONSORSTRING: return "Options or string";
215            case NULL: return null;
216            default: return "?";
217          }
218        }
219    }
220
221  public static class QuestionnaireAnswerConstraintEnumFactory implements EnumFactory<QuestionnaireAnswerConstraint> {
222    public QuestionnaireAnswerConstraint fromCode(String codeString) throws IllegalArgumentException {
223      if (codeString == null || "".equals(codeString))
224            if (codeString == null || "".equals(codeString))
225                return null;
226        if ("optionsOnly".equals(codeString))
227          return QuestionnaireAnswerConstraint.OPTIONSONLY;
228        if ("optionsOrType".equals(codeString))
229          return QuestionnaireAnswerConstraint.OPTIONSORTYPE;
230        if ("optionsOrString".equals(codeString))
231          return QuestionnaireAnswerConstraint.OPTIONSORSTRING;
232        throw new IllegalArgumentException("Unknown QuestionnaireAnswerConstraint code '"+codeString+"'");
233        }
234        public Enumeration<QuestionnaireAnswerConstraint> fromType(PrimitiveType<?> code) throws FHIRException {
235          if (code == null)
236            return null;
237          if (code.isEmpty())
238            return new Enumeration<QuestionnaireAnswerConstraint>(this, QuestionnaireAnswerConstraint.NULL, code);
239          String codeString = ((PrimitiveType) code).asStringValue();
240          if (codeString == null || "".equals(codeString))
241            return new Enumeration<QuestionnaireAnswerConstraint>(this, QuestionnaireAnswerConstraint.NULL, code);
242        if ("optionsOnly".equals(codeString))
243          return new Enumeration<QuestionnaireAnswerConstraint>(this, QuestionnaireAnswerConstraint.OPTIONSONLY, code);
244        if ("optionsOrType".equals(codeString))
245          return new Enumeration<QuestionnaireAnswerConstraint>(this, QuestionnaireAnswerConstraint.OPTIONSORTYPE, code);
246        if ("optionsOrString".equals(codeString))
247          return new Enumeration<QuestionnaireAnswerConstraint>(this, QuestionnaireAnswerConstraint.OPTIONSORSTRING, code);
248        throw new FHIRException("Unknown QuestionnaireAnswerConstraint code '"+codeString+"'");
249        }
250    public String toCode(QuestionnaireAnswerConstraint code) {
251      if (code == QuestionnaireAnswerConstraint.OPTIONSONLY)
252        return "optionsOnly";
253      if (code == QuestionnaireAnswerConstraint.OPTIONSORTYPE)
254        return "optionsOrType";
255      if (code == QuestionnaireAnswerConstraint.OPTIONSORSTRING)
256        return "optionsOrString";
257      return "?";
258      }
259    public String toSystem(QuestionnaireAnswerConstraint code) {
260      return code.getSystem();
261      }
262    }
263
264    public enum QuestionnaireItemDisabledDisplay {
265        /**
266         * The item (and its children) should not be visible to the user at all.
267         */
268        HIDDEN, 
269        /**
270         * The item (and possibly its children) should not be selectable or editable but should still be visible - to allow the user to see what questions *could* have been completed had other answers caused the item to be enabled.
271         */
272        PROTECTED, 
273        /**
274         * added to help the parsers with the generic types
275         */
276        NULL;
277        public static QuestionnaireItemDisabledDisplay fromCode(String codeString) throws FHIRException {
278            if (codeString == null || "".equals(codeString))
279                return null;
280        if ("hidden".equals(codeString))
281          return HIDDEN;
282        if ("protected".equals(codeString))
283          return PROTECTED;
284        if (Configuration.isAcceptInvalidEnums())
285          return null;
286        else
287          throw new FHIRException("Unknown QuestionnaireItemDisabledDisplay code '"+codeString+"'");
288        }
289        public String toCode() {
290          switch (this) {
291            case HIDDEN: return "hidden";
292            case PROTECTED: return "protected";
293            case NULL: return null;
294            default: return "?";
295          }
296        }
297        public String getSystem() {
298          switch (this) {
299            case HIDDEN: return "http://hl7.org/fhir/questionnaire-disabled-display";
300            case PROTECTED: return "http://hl7.org/fhir/questionnaire-disabled-display";
301            case NULL: return null;
302            default: return "?";
303          }
304        }
305        public String getDefinition() {
306          switch (this) {
307            case HIDDEN: return "The item (and its children) should not be visible to the user at all.";
308            case PROTECTED: return "The item (and possibly its children) should not be selectable or editable but should still be visible - to allow the user to see what questions *could* have been completed had other answers caused the item to be enabled.";
309            case NULL: return null;
310            default: return "?";
311          }
312        }
313        public String getDisplay() {
314          switch (this) {
315            case HIDDEN: return "Hidden";
316            case PROTECTED: return "Protected";
317            case NULL: return null;
318            default: return "?";
319          }
320        }
321    }
322
323  public static class QuestionnaireItemDisabledDisplayEnumFactory implements EnumFactory<QuestionnaireItemDisabledDisplay> {
324    public QuestionnaireItemDisabledDisplay fromCode(String codeString) throws IllegalArgumentException {
325      if (codeString == null || "".equals(codeString))
326            if (codeString == null || "".equals(codeString))
327                return null;
328        if ("hidden".equals(codeString))
329          return QuestionnaireItemDisabledDisplay.HIDDEN;
330        if ("protected".equals(codeString))
331          return QuestionnaireItemDisabledDisplay.PROTECTED;
332        throw new IllegalArgumentException("Unknown QuestionnaireItemDisabledDisplay code '"+codeString+"'");
333        }
334        public Enumeration<QuestionnaireItemDisabledDisplay> fromType(PrimitiveType<?> code) throws FHIRException {
335          if (code == null)
336            return null;
337          if (code.isEmpty())
338            return new Enumeration<QuestionnaireItemDisabledDisplay>(this, QuestionnaireItemDisabledDisplay.NULL, code);
339          String codeString = ((PrimitiveType) code).asStringValue();
340          if (codeString == null || "".equals(codeString))
341            return new Enumeration<QuestionnaireItemDisabledDisplay>(this, QuestionnaireItemDisabledDisplay.NULL, code);
342        if ("hidden".equals(codeString))
343          return new Enumeration<QuestionnaireItemDisabledDisplay>(this, QuestionnaireItemDisabledDisplay.HIDDEN, code);
344        if ("protected".equals(codeString))
345          return new Enumeration<QuestionnaireItemDisabledDisplay>(this, QuestionnaireItemDisabledDisplay.PROTECTED, code);
346        throw new FHIRException("Unknown QuestionnaireItemDisabledDisplay code '"+codeString+"'");
347        }
348    public String toCode(QuestionnaireItemDisabledDisplay code) {
349      if (code == QuestionnaireItemDisabledDisplay.HIDDEN)
350        return "hidden";
351      if (code == QuestionnaireItemDisabledDisplay.PROTECTED)
352        return "protected";
353      return "?";
354      }
355    public String toSystem(QuestionnaireItemDisabledDisplay code) {
356      return code.getSystem();
357      }
358    }
359
360    public enum QuestionnaireItemOperator {
361        /**
362         * True if the determination of 'whether an answer exists for the question' is equal to the enableWhen answer (which must be a boolean).
363         */
364        EXISTS, 
365        /**
366         * True if at least one answer has a value that is equal to the enableWhen answer.
367         */
368        EQUAL, 
369        /**
370         * True if no answer has a value that is equal to the enableWhen answer.
371         */
372        NOT_EQUAL, 
373        /**
374         * True if at least one answer has a value that is greater than the enableWhen answer.
375         */
376        GREATER_THAN, 
377        /**
378         * True if at least one answer has a value that is less than the enableWhen answer.
379         */
380        LESS_THAN, 
381        /**
382         * True if at least one answer has a value that is greater or equal to the enableWhen answer.
383         */
384        GREATER_OR_EQUAL, 
385        /**
386         * True if at least one answer has a value that is less or equal to the enableWhen answer.
387         */
388        LESS_OR_EQUAL, 
389        /**
390         * added to help the parsers with the generic types
391         */
392        NULL;
393        public static QuestionnaireItemOperator fromCode(String codeString) throws FHIRException {
394            if (codeString == null || "".equals(codeString))
395                return null;
396        if ("exists".equals(codeString))
397          return EXISTS;
398        if ("=".equals(codeString))
399          return EQUAL;
400        if ("!=".equals(codeString))
401          return NOT_EQUAL;
402        if (">".equals(codeString))
403          return GREATER_THAN;
404        if ("<".equals(codeString))
405          return LESS_THAN;
406        if (">=".equals(codeString))
407          return GREATER_OR_EQUAL;
408        if ("<=".equals(codeString))
409          return LESS_OR_EQUAL;
410        if (Configuration.isAcceptInvalidEnums())
411          return null;
412        else
413          throw new FHIRException("Unknown QuestionnaireItemOperator code '"+codeString+"'");
414        }
415        public String toCode() {
416          switch (this) {
417            case EXISTS: return "exists";
418            case EQUAL: return "=";
419            case NOT_EQUAL: return "!=";
420            case GREATER_THAN: return ">";
421            case LESS_THAN: return "<";
422            case GREATER_OR_EQUAL: return ">=";
423            case LESS_OR_EQUAL: return "<=";
424            case NULL: return null;
425            default: return "?";
426          }
427        }
428        public String getSystem() {
429          switch (this) {
430            case EXISTS: return "http://hl7.org/fhir/questionnaire-enable-operator";
431            case EQUAL: return "http://hl7.org/fhir/questionnaire-enable-operator";
432            case NOT_EQUAL: return "http://hl7.org/fhir/questionnaire-enable-operator";
433            case GREATER_THAN: return "http://hl7.org/fhir/questionnaire-enable-operator";
434            case LESS_THAN: return "http://hl7.org/fhir/questionnaire-enable-operator";
435            case GREATER_OR_EQUAL: return "http://hl7.org/fhir/questionnaire-enable-operator";
436            case LESS_OR_EQUAL: return "http://hl7.org/fhir/questionnaire-enable-operator";
437            case NULL: return null;
438            default: return "?";
439          }
440        }
441        public String getDefinition() {
442          switch (this) {
443            case EXISTS: return "True if the determination of 'whether an answer exists for the question' is equal to the enableWhen answer (which must be a boolean).";
444            case EQUAL: return "True if at least one answer has a value that is equal to the enableWhen answer.";
445            case NOT_EQUAL: return "True if no answer has a value that is equal to the enableWhen answer.";
446            case GREATER_THAN: return "True if at least one answer has a value that is greater than the enableWhen answer.";
447            case LESS_THAN: return "True if at least one answer has a value that is less than the enableWhen answer.";
448            case GREATER_OR_EQUAL: return "True if at least one answer has a value that is greater or equal to the enableWhen answer.";
449            case LESS_OR_EQUAL: return "True if at least one answer has a value that is less or equal to the enableWhen answer.";
450            case NULL: return null;
451            default: return "?";
452          }
453        }
454        public String getDisplay() {
455          switch (this) {
456            case EXISTS: return "Exists";
457            case EQUAL: return "Equals";
458            case NOT_EQUAL: return "Not Equals";
459            case GREATER_THAN: return "Greater Than";
460            case LESS_THAN: return "Less Than";
461            case GREATER_OR_EQUAL: return "Greater or Equals";
462            case LESS_OR_EQUAL: return "Less or Equals";
463            case NULL: return null;
464            default: return "?";
465          }
466        }
467    }
468
469  public static class QuestionnaireItemOperatorEnumFactory implements EnumFactory<QuestionnaireItemOperator> {
470    public QuestionnaireItemOperator fromCode(String codeString) throws IllegalArgumentException {
471      if (codeString == null || "".equals(codeString))
472            if (codeString == null || "".equals(codeString))
473                return null;
474        if ("exists".equals(codeString))
475          return QuestionnaireItemOperator.EXISTS;
476        if ("=".equals(codeString))
477          return QuestionnaireItemOperator.EQUAL;
478        if ("!=".equals(codeString))
479          return QuestionnaireItemOperator.NOT_EQUAL;
480        if (">".equals(codeString))
481          return QuestionnaireItemOperator.GREATER_THAN;
482        if ("<".equals(codeString))
483          return QuestionnaireItemOperator.LESS_THAN;
484        if (">=".equals(codeString))
485          return QuestionnaireItemOperator.GREATER_OR_EQUAL;
486        if ("<=".equals(codeString))
487          return QuestionnaireItemOperator.LESS_OR_EQUAL;
488        throw new IllegalArgumentException("Unknown QuestionnaireItemOperator code '"+codeString+"'");
489        }
490        public Enumeration<QuestionnaireItemOperator> fromType(PrimitiveType<?> code) throws FHIRException {
491          if (code == null)
492            return null;
493          if (code.isEmpty())
494            return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.NULL, code);
495          String codeString = ((PrimitiveType) code).asStringValue();
496          if (codeString == null || "".equals(codeString))
497            return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.NULL, code);
498        if ("exists".equals(codeString))
499          return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.EXISTS, code);
500        if ("=".equals(codeString))
501          return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.EQUAL, code);
502        if ("!=".equals(codeString))
503          return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.NOT_EQUAL, code);
504        if (">".equals(codeString))
505          return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.GREATER_THAN, code);
506        if ("<".equals(codeString))
507          return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.LESS_THAN, code);
508        if (">=".equals(codeString))
509          return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.GREATER_OR_EQUAL, code);
510        if ("<=".equals(codeString))
511          return new Enumeration<QuestionnaireItemOperator>(this, QuestionnaireItemOperator.LESS_OR_EQUAL, code);
512        throw new FHIRException("Unknown QuestionnaireItemOperator code '"+codeString+"'");
513        }
514    public String toCode(QuestionnaireItemOperator code) {
515      if (code == QuestionnaireItemOperator.EXISTS)
516        return "exists";
517      if (code == QuestionnaireItemOperator.EQUAL)
518        return "=";
519      if (code == QuestionnaireItemOperator.NOT_EQUAL)
520        return "!=";
521      if (code == QuestionnaireItemOperator.GREATER_THAN)
522        return ">";
523      if (code == QuestionnaireItemOperator.LESS_THAN)
524        return "<";
525      if (code == QuestionnaireItemOperator.GREATER_OR_EQUAL)
526        return ">=";
527      if (code == QuestionnaireItemOperator.LESS_OR_EQUAL)
528        return "<=";
529      return "?";
530      }
531    public String toSystem(QuestionnaireItemOperator code) {
532      return code.getSystem();
533      }
534    }
535
536    public enum QuestionnaireItemType {
537        /**
538         * An item with no direct answer but should have at least one child item.
539         */
540        GROUP, 
541        /**
542         * Text for display that will not capture an answer or have child items.
543         */
544        DISPLAY, 
545        /**
546         * An item that defines a specific answer to be captured, and which may have child items. (the answer provided in the QuestionnaireResponse should be of the defined datatype).
547         */
548        QUESTION, 
549        /**
550         * Question with a yes/no answer (valueBoolean).
551         */
552        BOOLEAN, 
553        /**
554         * Question with is a real number answer (valueDecimal).  There is an extension 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit' that can be used to computably convey the unit of measure associated with the answer for use when performing data extraction to an element of type Quantity.
555         */
556        DECIMAL, 
557        /**
558         * Question with an integer answer (valueInteger).  There is an extension 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit' that can be used to computably convey the unit of measure associated with the answer for use when performing data extraction to an element of type Quantity.
559         */
560        INTEGER, 
561        /**
562         * Question with a date answer (valueDate).
563         */
564        DATE, 
565        /**
566         * Question with a date and time answer (valueDateTime).
567         */
568        DATETIME, 
569        /**
570         * Question with a time (hour:minute:second) answer independent of date. (valueTime).
571         */
572        TIME, 
573        /**
574         * Question with a short (few words to short sentence) free-text entry answer (valueString).  Strings SHOULD NOT contain carriage return or newline characters.  If multi-line answers are needed, use the 'text' type.
575         */
576        STRING, 
577        /**
578         * Question with a long (potentially multi-paragraph) free-text entry answer (valueString).
579         */
580        TEXT, 
581        /**
582         * Question with a URL (website, FTP site, etc.) answer (valueUri).
583         */
584        URL, 
585        /**
586         * Question with a Coding - generally drawn from a list of possible answers (valueCoding)
587         */
588        CODING, 
589        /**
590         * Question with binary content such as an image, PDF, etc. as an answer (valueAttachment).
591         */
592        ATTACHMENT, 
593        /**
594         * Question with a reference to another resource (practitioner, organization, etc.) as an answer (valueReference).
595         */
596        REFERENCE, 
597        /**
598         * Question with a combination of a numeric value and unit as an answer. (valueSimpleQuantity)  There are two extensions ('http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption' and 'http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet')  that can be used to define what unit should be selected for the Quantity.code and Quantity.system.
599         */
600        QUANTITY, 
601        /**
602         * added to help the parsers with the generic types
603         */
604        NULL;
605        public static QuestionnaireItemType fromCode(String codeString) throws FHIRException {
606            if (codeString == null || "".equals(codeString))
607                return null;
608        if ("group".equals(codeString))
609          return GROUP;
610        if ("display".equals(codeString))
611          return DISPLAY;
612        if ("question".equals(codeString))
613          return QUESTION;
614        if ("boolean".equals(codeString))
615          return BOOLEAN;
616        if ("decimal".equals(codeString))
617          return DECIMAL;
618        if ("integer".equals(codeString))
619          return INTEGER;
620        if ("date".equals(codeString))
621          return DATE;
622        if ("dateTime".equals(codeString))
623          return DATETIME;
624        if ("time".equals(codeString))
625          return TIME;
626        if ("string".equals(codeString))
627          return STRING;
628        if ("text".equals(codeString))
629          return TEXT;
630        if ("url".equals(codeString))
631          return URL;
632        if ("coding".equals(codeString))
633          return CODING;
634        if ("attachment".equals(codeString))
635          return ATTACHMENT;
636        if ("reference".equals(codeString))
637          return REFERENCE;
638        if ("quantity".equals(codeString))
639          return QUANTITY;
640        if (Configuration.isAcceptInvalidEnums())
641          return null;
642        else
643          throw new FHIRException("Unknown QuestionnaireItemType code '"+codeString+"'");
644        }
645        public String toCode() {
646          switch (this) {
647            case GROUP: return "group";
648            case DISPLAY: return "display";
649            case QUESTION: return "question";
650            case BOOLEAN: return "boolean";
651            case DECIMAL: return "decimal";
652            case INTEGER: return "integer";
653            case DATE: return "date";
654            case DATETIME: return "dateTime";
655            case TIME: return "time";
656            case STRING: return "string";
657            case TEXT: return "text";
658            case URL: return "url";
659            case CODING: return "coding";
660            case ATTACHMENT: return "attachment";
661            case REFERENCE: return "reference";
662            case QUANTITY: return "quantity";
663            case NULL: return null;
664            default: return "?";
665          }
666        }
667        public String getSystem() {
668          switch (this) {
669            case GROUP: return "http://hl7.org/fhir/item-type";
670            case DISPLAY: return "http://hl7.org/fhir/item-type";
671            case QUESTION: return "http://hl7.org/fhir/item-type";
672            case BOOLEAN: return "http://hl7.org/fhir/item-type";
673            case DECIMAL: return "http://hl7.org/fhir/item-type";
674            case INTEGER: return "http://hl7.org/fhir/item-type";
675            case DATE: return "http://hl7.org/fhir/item-type";
676            case DATETIME: return "http://hl7.org/fhir/item-type";
677            case TIME: return "http://hl7.org/fhir/item-type";
678            case STRING: return "http://hl7.org/fhir/item-type";
679            case TEXT: return "http://hl7.org/fhir/item-type";
680            case URL: return "http://hl7.org/fhir/item-type";
681            case CODING: return "http://hl7.org/fhir/item-type";
682            case ATTACHMENT: return "http://hl7.org/fhir/item-type";
683            case REFERENCE: return "http://hl7.org/fhir/item-type";
684            case QUANTITY: return "http://hl7.org/fhir/item-type";
685            case NULL: return null;
686            default: return "?";
687          }
688        }
689        public String getDefinition() {
690          switch (this) {
691            case GROUP: return "An item with no direct answer but should have at least one child item.";
692            case DISPLAY: return "Text for display that will not capture an answer or have child items.";
693            case QUESTION: return "An item that defines a specific answer to be captured, and which may have child items. (the answer provided in the QuestionnaireResponse should be of the defined datatype).";
694            case BOOLEAN: return "Question with a yes/no answer (valueBoolean).";
695            case DECIMAL: return "Question with is a real number answer (valueDecimal).  There is an extension 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit' that can be used to computably convey the unit of measure associated with the answer for use when performing data extraction to an element of type Quantity.";
696            case INTEGER: return "Question with an integer answer (valueInteger).  There is an extension 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit' that can be used to computably convey the unit of measure associated with the answer for use when performing data extraction to an element of type Quantity.";
697            case DATE: return "Question with a date answer (valueDate).";
698            case DATETIME: return "Question with a date and time answer (valueDateTime).";
699            case TIME: return "Question with a time (hour:minute:second) answer independent of date. (valueTime).";
700            case STRING: return "Question with a short (few words to short sentence) free-text entry answer (valueString).  Strings SHOULD NOT contain carriage return or newline characters.  If multi-line answers are needed, use the 'text' type.";
701            case TEXT: return "Question with a long (potentially multi-paragraph) free-text entry answer (valueString).";
702            case URL: return "Question with a URL (website, FTP site, etc.) answer (valueUri).";
703            case CODING: return "Question with a Coding - generally drawn from a list of possible answers (valueCoding)";
704            case ATTACHMENT: return "Question with binary content such as an image, PDF, etc. as an answer (valueAttachment).";
705            case REFERENCE: return "Question with a reference to another resource (practitioner, organization, etc.) as an answer (valueReference).";
706            case QUANTITY: return "Question with a combination of a numeric value and unit as an answer. (valueSimpleQuantity)  There are two extensions ('http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption' and 'http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet')  that can be used to define what unit should be selected for the Quantity.code and Quantity.system.";
707            case NULL: return null;
708            default: return "?";
709          }
710        }
711        public String getDisplay() {
712          switch (this) {
713            case GROUP: return "Group";
714            case DISPLAY: return "Display";
715            case QUESTION: return "Question";
716            case BOOLEAN: return "Boolean";
717            case DECIMAL: return "Decimal";
718            case INTEGER: return "Integer";
719            case DATE: return "Date";
720            case DATETIME: return "Date Time";
721            case TIME: return "Time";
722            case STRING: return "String";
723            case TEXT: return "Text";
724            case URL: return "Url";
725            case CODING: return "Coding";
726            case ATTACHMENT: return "Attachment";
727            case REFERENCE: return "Reference";
728            case QUANTITY: return "Quantity";
729            case NULL: return null;
730            default: return "?";
731          }
732        }
733    }
734
735  public static class QuestionnaireItemTypeEnumFactory implements EnumFactory<QuestionnaireItemType> {
736    public QuestionnaireItemType fromCode(String codeString) throws IllegalArgumentException {
737      if (codeString == null || "".equals(codeString))
738            if (codeString == null || "".equals(codeString))
739                return null;
740        if ("group".equals(codeString))
741          return QuestionnaireItemType.GROUP;
742        if ("display".equals(codeString))
743          return QuestionnaireItemType.DISPLAY;
744        if ("question".equals(codeString))
745          return QuestionnaireItemType.QUESTION;
746        if ("boolean".equals(codeString))
747          return QuestionnaireItemType.BOOLEAN;
748        if ("decimal".equals(codeString))
749          return QuestionnaireItemType.DECIMAL;
750        if ("integer".equals(codeString))
751          return QuestionnaireItemType.INTEGER;
752        if ("date".equals(codeString))
753          return QuestionnaireItemType.DATE;
754        if ("dateTime".equals(codeString))
755          return QuestionnaireItemType.DATETIME;
756        if ("time".equals(codeString))
757          return QuestionnaireItemType.TIME;
758        if ("string".equals(codeString))
759          return QuestionnaireItemType.STRING;
760        if ("text".equals(codeString))
761          return QuestionnaireItemType.TEXT;
762        if ("url".equals(codeString))
763          return QuestionnaireItemType.URL;
764        if ("coding".equals(codeString))
765          return QuestionnaireItemType.CODING;
766        if ("attachment".equals(codeString))
767          return QuestionnaireItemType.ATTACHMENT;
768        if ("reference".equals(codeString))
769          return QuestionnaireItemType.REFERENCE;
770        if ("quantity".equals(codeString))
771          return QuestionnaireItemType.QUANTITY;
772        throw new IllegalArgumentException("Unknown QuestionnaireItemType code '"+codeString+"'");
773        }
774        public Enumeration<QuestionnaireItemType> fromType(PrimitiveType<?> code) throws FHIRException {
775          if (code == null)
776            return null;
777          if (code.isEmpty())
778            return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.NULL, code);
779          String codeString = ((PrimitiveType) code).asStringValue();
780          if (codeString == null || "".equals(codeString))
781            return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.NULL, code);
782        if ("group".equals(codeString))
783          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.GROUP, code);
784        if ("display".equals(codeString))
785          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.DISPLAY, code);
786        if ("question".equals(codeString))
787          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.QUESTION, code);
788        if ("boolean".equals(codeString))
789          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.BOOLEAN, code);
790        if ("decimal".equals(codeString))
791          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.DECIMAL, code);
792        if ("integer".equals(codeString))
793          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.INTEGER, code);
794        if ("date".equals(codeString))
795          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.DATE, code);
796        if ("dateTime".equals(codeString))
797          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.DATETIME, code);
798        if ("time".equals(codeString))
799          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.TIME, code);
800        if ("string".equals(codeString))
801          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.STRING, code);
802        if ("text".equals(codeString))
803          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.TEXT, code);
804        if ("url".equals(codeString))
805          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.URL, code);
806        if ("coding".equals(codeString))
807          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.CODING, code);
808        if ("attachment".equals(codeString))
809          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.ATTACHMENT, code);
810        if ("reference".equals(codeString))
811          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.REFERENCE, code);
812        if ("quantity".equals(codeString))
813          return new Enumeration<QuestionnaireItemType>(this, QuestionnaireItemType.QUANTITY, code);
814        throw new FHIRException("Unknown QuestionnaireItemType code '"+codeString+"'");
815        }
816    public String toCode(QuestionnaireItemType code) {
817      if (code == QuestionnaireItemType.GROUP)
818        return "group";
819      if (code == QuestionnaireItemType.DISPLAY)
820        return "display";
821      if (code == QuestionnaireItemType.QUESTION)
822        return "question";
823      if (code == QuestionnaireItemType.BOOLEAN)
824        return "boolean";
825      if (code == QuestionnaireItemType.DECIMAL)
826        return "decimal";
827      if (code == QuestionnaireItemType.INTEGER)
828        return "integer";
829      if (code == QuestionnaireItemType.DATE)
830        return "date";
831      if (code == QuestionnaireItemType.DATETIME)
832        return "dateTime";
833      if (code == QuestionnaireItemType.TIME)
834        return "time";
835      if (code == QuestionnaireItemType.STRING)
836        return "string";
837      if (code == QuestionnaireItemType.TEXT)
838        return "text";
839      if (code == QuestionnaireItemType.URL)
840        return "url";
841      if (code == QuestionnaireItemType.CODING)
842        return "coding";
843      if (code == QuestionnaireItemType.ATTACHMENT)
844        return "attachment";
845      if (code == QuestionnaireItemType.REFERENCE)
846        return "reference";
847      if (code == QuestionnaireItemType.QUANTITY)
848        return "quantity";
849      return "?";
850      }
851    public String toSystem(QuestionnaireItemType code) {
852      return code.getSystem();
853      }
854    }
855
856    @Block()
857    public static class QuestionnaireItemComponent extends BackboneElement implements IBaseBackboneElement {
858        /**
859         * An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.
860         */
861        @Child(name = "linkId", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
862        @Description(shortDefinition="Unique id for item in questionnaire", formalDefinition="An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource." )
863        protected StringType linkId;
864
865        /**
866         * This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.
867         */
868        @Child(name = "definition", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=false)
869        @Description(shortDefinition="ElementDefinition - details for the item", formalDefinition="This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below." )
870        protected UriType definition;
871
872        /**
873         * A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).
874         */
875        @Child(name = "code", type = {Coding.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
876        @Description(shortDefinition="Corresponding concept for this item in a terminology", formalDefinition="A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers)." )
877        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-questions")
878        protected List<Coding> code;
879
880        /**
881         * A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.
882         */
883        @Child(name = "prefix", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
884        @Description(shortDefinition="E.g. \"1(a)\", \"2.5.3\"", formalDefinition="A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire." )
885        protected StringType prefix;
886
887        /**
888         * The name of a section, the text of a question or text content for a display item.
889         */
890        @Child(name = "text", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false)
891        @Description(shortDefinition="Primary text for the item", formalDefinition="The name of a section, the text of a question or text content for a display item." )
892        protected StringType text;
893
894        /**
895         * The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).
896         */
897        @Child(name = "type", type = {CodeType.class}, order=6, min=1, max=1, modifier=false, summary=false)
898        @Description(shortDefinition="group | display | boolean | decimal | integer | date | dateTime +", formalDefinition="The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.)." )
899        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/item-type")
900        protected Enumeration<QuestionnaireItemType> type;
901
902        /**
903         * A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true.
904         */
905        @Child(name = "enableWhen", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=true, summary=false)
906        @Description(shortDefinition="Only allow data when", formalDefinition="A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true." )
907        protected List<QuestionnaireItemEnableWhenComponent> enableWhen;
908
909        /**
910         * Controls how multiple enableWhen values are interpreted -  whether all or any must be true.
911         */
912        @Child(name = "enableBehavior", type = {CodeType.class}, order=8, min=0, max=1, modifier=false, summary=false)
913        @Description(shortDefinition="all | any", formalDefinition="Controls how multiple enableWhen values are interpreted -  whether all or any must be true." )
914        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-enable-behavior")
915        protected Enumeration<EnableWhenBehavior> enableBehavior;
916
917        /**
918         * Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.
919         */
920        @Child(name = "disabledDisplay", type = {CodeType.class}, order=9, min=0, max=1, modifier=false, summary=false)
921        @Description(shortDefinition="hidden | protected", formalDefinition="Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed." )
922        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-disabled-display")
923        protected Enumeration<QuestionnaireItemDisabledDisplay> disabledDisplay;
924
925        /**
926         * An indication, if true, that the item must be present in a "completed" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire.
927         */
928        @Child(name = "required", type = {BooleanType.class}, order=10, min=0, max=1, modifier=false, summary=false)
929        @Description(shortDefinition="Whether the item must be included in data results", formalDefinition="An indication, if true, that the item must be present in a \"completed\" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire." )
930        protected BooleanType required;
931
932        /**
933         * An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).
934         */
935        @Child(name = "repeats", type = {BooleanType.class}, order=11, min=0, max=1, modifier=false, summary=false)
936        @Description(shortDefinition="Whether the item may repeat", formalDefinition="An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items)." )
937        protected BooleanType repeats;
938
939        /**
940         * An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.
941         */
942        @Child(name = "readOnly", type = {BooleanType.class}, order=12, min=0, max=1, modifier=false, summary=false)
943        @Description(shortDefinition="Don't allow human editing", formalDefinition="An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire." )
944        protected BooleanType readOnly;
945
946        /**
947         * The maximum number of characters that are permitted in the answer to be considered a "valid" QuestionnaireResponse.
948         */
949        @Child(name = "maxLength", type = {IntegerType.class}, order=13, min=0, max=1, modifier=false, summary=false)
950        @Description(shortDefinition="No more than these many characters", formalDefinition="The maximum number of characters that are permitted in the answer to be considered a \"valid\" QuestionnaireResponse." )
951        protected IntegerType maxLength;
952
953        /**
954         * For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.
955         */
956        @Child(name = "answerConstraint", type = {CodeType.class}, order=14, min=0, max=1, modifier=false, summary=false)
957        @Description(shortDefinition="optionsOnly | optionsOrType | optionsOrString", formalDefinition="For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected." )
958        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answer-constraint")
959        protected Enumeration<QuestionnaireAnswerConstraint> answerConstraint;
960
961        /**
962         * A reference to a value set containing a list of values representing permitted answers for a question.
963         */
964        @Child(name = "answerValueSet", type = {CanonicalType.class}, order=15, min=0, max=1, modifier=false, summary=false)
965        @Description(shortDefinition="ValueSet containing permitted answers", formalDefinition="A reference to a value set containing a list of values representing permitted answers for a question." )
966        protected CanonicalType answerValueSet;
967
968        /**
969         * One of the permitted answers for the question.
970         */
971        @Child(name = "answerOption", type = {}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
972        @Description(shortDefinition="Permitted answer", formalDefinition="One of the permitted answers for the question." )
973        protected List<QuestionnaireItemAnswerOptionComponent> answerOption;
974
975        /**
976         * One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input.
977         */
978        @Child(name = "initial", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
979        @Description(shortDefinition="Initial value(s) when item is first rendered", formalDefinition="One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input." )
980        protected List<QuestionnaireItemInitialComponent> initial;
981
982        /**
983         * Text, questions and other groups to be nested beneath a question or group.
984         */
985        @Child(name = "item", type = {QuestionnaireItemComponent.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
986        @Description(shortDefinition="Nested questionnaire items", formalDefinition="Text, questions and other groups to be nested beneath a question or group." )
987        protected List<QuestionnaireItemComponent> item;
988
989        private static final long serialVersionUID = -1760914161L;
990
991    /**
992     * Constructor
993     */
994      public QuestionnaireItemComponent() {
995        super();
996      }
997
998    /**
999     * Constructor
1000     */
1001      public QuestionnaireItemComponent(String linkId, QuestionnaireItemType type) {
1002        super();
1003        this.setLinkId(linkId);
1004        this.setType(type);
1005      }
1006
1007        /**
1008         * @return {@link #linkId} (An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
1009         */
1010        public StringType getLinkIdElement() { 
1011          if (this.linkId == null)
1012            if (Configuration.errorOnAutoCreate())
1013              throw new Error("Attempt to auto-create QuestionnaireItemComponent.linkId");
1014            else if (Configuration.doAutoCreate())
1015              this.linkId = new StringType(); // bb
1016          return this.linkId;
1017        }
1018
1019        public boolean hasLinkIdElement() { 
1020          return this.linkId != null && !this.linkId.isEmpty();
1021        }
1022
1023        public boolean hasLinkId() { 
1024          return this.linkId != null && !this.linkId.isEmpty();
1025        }
1026
1027        /**
1028         * @param value {@link #linkId} (An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
1029         */
1030        public QuestionnaireItemComponent setLinkIdElement(StringType value) { 
1031          this.linkId = value;
1032          return this;
1033        }
1034
1035        /**
1036         * @return An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.
1037         */
1038        public String getLinkId() { 
1039          return this.linkId == null ? null : this.linkId.getValue();
1040        }
1041
1042        /**
1043         * @param value An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.
1044         */
1045        public QuestionnaireItemComponent setLinkId(String value) { 
1046            if (this.linkId == null)
1047              this.linkId = new StringType();
1048            this.linkId.setValue(value);
1049          return this;
1050        }
1051
1052        /**
1053         * @return {@link #definition} (This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value
1054         */
1055        public UriType getDefinitionElement() { 
1056          if (this.definition == null)
1057            if (Configuration.errorOnAutoCreate())
1058              throw new Error("Attempt to auto-create QuestionnaireItemComponent.definition");
1059            else if (Configuration.doAutoCreate())
1060              this.definition = new UriType(); // bb
1061          return this.definition;
1062        }
1063
1064        public boolean hasDefinitionElement() { 
1065          return this.definition != null && !this.definition.isEmpty();
1066        }
1067
1068        public boolean hasDefinition() { 
1069          return this.definition != null && !this.definition.isEmpty();
1070        }
1071
1072        /**
1073         * @param value {@link #definition} (This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value
1074         */
1075        public QuestionnaireItemComponent setDefinitionElement(UriType value) { 
1076          this.definition = value;
1077          return this;
1078        }
1079
1080        /**
1081         * @return This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.
1082         */
1083        public String getDefinition() { 
1084          return this.definition == null ? null : this.definition.getValue();
1085        }
1086
1087        /**
1088         * @param value This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.
1089         */
1090        public QuestionnaireItemComponent setDefinition(String value) { 
1091          if (Utilities.noString(value))
1092            this.definition = null;
1093          else {
1094            if (this.definition == null)
1095              this.definition = new UriType();
1096            this.definition.setValue(value);
1097          }
1098          return this;
1099        }
1100
1101        /**
1102         * @return {@link #code} (A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).)
1103         */
1104        public List<Coding> getCode() { 
1105          if (this.code == null)
1106            this.code = new ArrayList<Coding>();
1107          return this.code;
1108        }
1109
1110        /**
1111         * @return Returns a reference to <code>this</code> for easy method chaining
1112         */
1113        public QuestionnaireItemComponent setCode(List<Coding> theCode) { 
1114          this.code = theCode;
1115          return this;
1116        }
1117
1118        public boolean hasCode() { 
1119          if (this.code == null)
1120            return false;
1121          for (Coding item : this.code)
1122            if (!item.isEmpty())
1123              return true;
1124          return false;
1125        }
1126
1127        public Coding addCode() { //3
1128          Coding t = new Coding();
1129          if (this.code == null)
1130            this.code = new ArrayList<Coding>();
1131          this.code.add(t);
1132          return t;
1133        }
1134
1135        public QuestionnaireItemComponent addCode(Coding t) { //3
1136          if (t == null)
1137            return this;
1138          if (this.code == null)
1139            this.code = new ArrayList<Coding>();
1140          this.code.add(t);
1141          return this;
1142        }
1143
1144        /**
1145         * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3}
1146         */
1147        public Coding getCodeFirstRep() { 
1148          if (getCode().isEmpty()) {
1149            addCode();
1150          }
1151          return getCode().get(0);
1152        }
1153
1154        /**
1155         * @return {@link #prefix} (A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getPrefix" gives direct access to the value
1156         */
1157        public StringType getPrefixElement() { 
1158          if (this.prefix == null)
1159            if (Configuration.errorOnAutoCreate())
1160              throw new Error("Attempt to auto-create QuestionnaireItemComponent.prefix");
1161            else if (Configuration.doAutoCreate())
1162              this.prefix = new StringType(); // bb
1163          return this.prefix;
1164        }
1165
1166        public boolean hasPrefixElement() { 
1167          return this.prefix != null && !this.prefix.isEmpty();
1168        }
1169
1170        public boolean hasPrefix() { 
1171          return this.prefix != null && !this.prefix.isEmpty();
1172        }
1173
1174        /**
1175         * @param value {@link #prefix} (A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getPrefix" gives direct access to the value
1176         */
1177        public QuestionnaireItemComponent setPrefixElement(StringType value) { 
1178          this.prefix = value;
1179          return this;
1180        }
1181
1182        /**
1183         * @return A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.
1184         */
1185        public String getPrefix() { 
1186          return this.prefix == null ? null : this.prefix.getValue();
1187        }
1188
1189        /**
1190         * @param value A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.
1191         */
1192        public QuestionnaireItemComponent setPrefix(String value) { 
1193          if (Utilities.noString(value))
1194            this.prefix = null;
1195          else {
1196            if (this.prefix == null)
1197              this.prefix = new StringType();
1198            this.prefix.setValue(value);
1199          }
1200          return this;
1201        }
1202
1203        /**
1204         * @return {@link #text} (The name of a section, the text of a question or text content for a display item.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value
1205         */
1206        public StringType getTextElement() { 
1207          if (this.text == null)
1208            if (Configuration.errorOnAutoCreate())
1209              throw new Error("Attempt to auto-create QuestionnaireItemComponent.text");
1210            else if (Configuration.doAutoCreate())
1211              this.text = new StringType(); // bb
1212          return this.text;
1213        }
1214
1215        public boolean hasTextElement() { 
1216          return this.text != null && !this.text.isEmpty();
1217        }
1218
1219        public boolean hasText() { 
1220          return this.text != null && !this.text.isEmpty();
1221        }
1222
1223        /**
1224         * @param value {@link #text} (The name of a section, the text of a question or text content for a display item.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value
1225         */
1226        public QuestionnaireItemComponent setTextElement(StringType value) { 
1227          this.text = value;
1228          return this;
1229        }
1230
1231        /**
1232         * @return The name of a section, the text of a question or text content for a display item.
1233         */
1234        public String getText() { 
1235          return this.text == null ? null : this.text.getValue();
1236        }
1237
1238        /**
1239         * @param value The name of a section, the text of a question or text content for a display item.
1240         */
1241        public QuestionnaireItemComponent setText(String value) { 
1242          if (Utilities.noString(value))
1243            this.text = null;
1244          else {
1245            if (this.text == null)
1246              this.text = new StringType();
1247            this.text.setValue(value);
1248          }
1249          return this;
1250        }
1251
1252        /**
1253         * @return {@link #type} (The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
1254         */
1255        public Enumeration<QuestionnaireItemType> getTypeElement() { 
1256          if (this.type == null)
1257            if (Configuration.errorOnAutoCreate())
1258              throw new Error("Attempt to auto-create QuestionnaireItemComponent.type");
1259            else if (Configuration.doAutoCreate())
1260              this.type = new Enumeration<QuestionnaireItemType>(new QuestionnaireItemTypeEnumFactory()); // bb
1261          return this.type;
1262        }
1263
1264        public boolean hasTypeElement() { 
1265          return this.type != null && !this.type.isEmpty();
1266        }
1267
1268        public boolean hasType() { 
1269          return this.type != null && !this.type.isEmpty();
1270        }
1271
1272        /**
1273         * @param value {@link #type} (The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
1274         */
1275        public QuestionnaireItemComponent setTypeElement(Enumeration<QuestionnaireItemType> value) { 
1276          this.type = value;
1277          return this;
1278        }
1279
1280        /**
1281         * @return The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).
1282         */
1283        public QuestionnaireItemType getType() { 
1284          return this.type == null ? null : this.type.getValue();
1285        }
1286
1287        /**
1288         * @param value The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).
1289         */
1290        public QuestionnaireItemComponent setType(QuestionnaireItemType value) { 
1291            if (this.type == null)
1292              this.type = new Enumeration<QuestionnaireItemType>(new QuestionnaireItemTypeEnumFactory());
1293            this.type.setValue(value);
1294          return this;
1295        }
1296
1297        /**
1298         * @return {@link #enableWhen} (A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true.)
1299         */
1300        public List<QuestionnaireItemEnableWhenComponent> getEnableWhen() { 
1301          if (this.enableWhen == null)
1302            this.enableWhen = new ArrayList<QuestionnaireItemEnableWhenComponent>();
1303          return this.enableWhen;
1304        }
1305
1306        /**
1307         * @return Returns a reference to <code>this</code> for easy method chaining
1308         */
1309        public QuestionnaireItemComponent setEnableWhen(List<QuestionnaireItemEnableWhenComponent> theEnableWhen) { 
1310          this.enableWhen = theEnableWhen;
1311          return this;
1312        }
1313
1314        public boolean hasEnableWhen() { 
1315          if (this.enableWhen == null)
1316            return false;
1317          for (QuestionnaireItemEnableWhenComponent item : this.enableWhen)
1318            if (!item.isEmpty())
1319              return true;
1320          return false;
1321        }
1322
1323        public QuestionnaireItemEnableWhenComponent addEnableWhen() { //3
1324          QuestionnaireItemEnableWhenComponent t = new QuestionnaireItemEnableWhenComponent();
1325          if (this.enableWhen == null)
1326            this.enableWhen = new ArrayList<QuestionnaireItemEnableWhenComponent>();
1327          this.enableWhen.add(t);
1328          return t;
1329        }
1330
1331        public QuestionnaireItemComponent addEnableWhen(QuestionnaireItemEnableWhenComponent t) { //3
1332          if (t == null)
1333            return this;
1334          if (this.enableWhen == null)
1335            this.enableWhen = new ArrayList<QuestionnaireItemEnableWhenComponent>();
1336          this.enableWhen.add(t);
1337          return this;
1338        }
1339
1340        /**
1341         * @return The first repetition of repeating field {@link #enableWhen}, creating it if it does not already exist {3}
1342         */
1343        public QuestionnaireItemEnableWhenComponent getEnableWhenFirstRep() { 
1344          if (getEnableWhen().isEmpty()) {
1345            addEnableWhen();
1346          }
1347          return getEnableWhen().get(0);
1348        }
1349
1350        /**
1351         * @return {@link #enableBehavior} (Controls how multiple enableWhen values are interpreted -  whether all or any must be true.). This is the underlying object with id, value and extensions. The accessor "getEnableBehavior" gives direct access to the value
1352         */
1353        public Enumeration<EnableWhenBehavior> getEnableBehaviorElement() { 
1354          if (this.enableBehavior == null)
1355            if (Configuration.errorOnAutoCreate())
1356              throw new Error("Attempt to auto-create QuestionnaireItemComponent.enableBehavior");
1357            else if (Configuration.doAutoCreate())
1358              this.enableBehavior = new Enumeration<EnableWhenBehavior>(new EnableWhenBehaviorEnumFactory()); // bb
1359          return this.enableBehavior;
1360        }
1361
1362        public boolean hasEnableBehaviorElement() { 
1363          return this.enableBehavior != null && !this.enableBehavior.isEmpty();
1364        }
1365
1366        public boolean hasEnableBehavior() { 
1367          return this.enableBehavior != null && !this.enableBehavior.isEmpty();
1368        }
1369
1370        /**
1371         * @param value {@link #enableBehavior} (Controls how multiple enableWhen values are interpreted -  whether all or any must be true.). This is the underlying object with id, value and extensions. The accessor "getEnableBehavior" gives direct access to the value
1372         */
1373        public QuestionnaireItemComponent setEnableBehaviorElement(Enumeration<EnableWhenBehavior> value) { 
1374          this.enableBehavior = value;
1375          return this;
1376        }
1377
1378        /**
1379         * @return Controls how multiple enableWhen values are interpreted -  whether all or any must be true.
1380         */
1381        public EnableWhenBehavior getEnableBehavior() { 
1382          return this.enableBehavior == null ? null : this.enableBehavior.getValue();
1383        }
1384
1385        /**
1386         * @param value Controls how multiple enableWhen values are interpreted -  whether all or any must be true.
1387         */
1388        public QuestionnaireItemComponent setEnableBehavior(EnableWhenBehavior value) { 
1389          if (value == null)
1390            this.enableBehavior = null;
1391          else {
1392            if (this.enableBehavior == null)
1393              this.enableBehavior = new Enumeration<EnableWhenBehavior>(new EnableWhenBehaviorEnumFactory());
1394            this.enableBehavior.setValue(value);
1395          }
1396          return this;
1397        }
1398
1399        /**
1400         * @return {@link #disabledDisplay} (Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.). This is the underlying object with id, value and extensions. The accessor "getDisabledDisplay" gives direct access to the value
1401         */
1402        public Enumeration<QuestionnaireItemDisabledDisplay> getDisabledDisplayElement() { 
1403          if (this.disabledDisplay == null)
1404            if (Configuration.errorOnAutoCreate())
1405              throw new Error("Attempt to auto-create QuestionnaireItemComponent.disabledDisplay");
1406            else if (Configuration.doAutoCreate())
1407              this.disabledDisplay = new Enumeration<QuestionnaireItemDisabledDisplay>(new QuestionnaireItemDisabledDisplayEnumFactory()); // bb
1408          return this.disabledDisplay;
1409        }
1410
1411        public boolean hasDisabledDisplayElement() { 
1412          return this.disabledDisplay != null && !this.disabledDisplay.isEmpty();
1413        }
1414
1415        public boolean hasDisabledDisplay() { 
1416          return this.disabledDisplay != null && !this.disabledDisplay.isEmpty();
1417        }
1418
1419        /**
1420         * @param value {@link #disabledDisplay} (Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.). This is the underlying object with id, value and extensions. The accessor "getDisabledDisplay" gives direct access to the value
1421         */
1422        public QuestionnaireItemComponent setDisabledDisplayElement(Enumeration<QuestionnaireItemDisabledDisplay> value) { 
1423          this.disabledDisplay = value;
1424          return this;
1425        }
1426
1427        /**
1428         * @return Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.
1429         */
1430        public QuestionnaireItemDisabledDisplay getDisabledDisplay() { 
1431          return this.disabledDisplay == null ? null : this.disabledDisplay.getValue();
1432        }
1433
1434        /**
1435         * @param value Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.
1436         */
1437        public QuestionnaireItemComponent setDisabledDisplay(QuestionnaireItemDisabledDisplay value) { 
1438          if (value == null)
1439            this.disabledDisplay = null;
1440          else {
1441            if (this.disabledDisplay == null)
1442              this.disabledDisplay = new Enumeration<QuestionnaireItemDisabledDisplay>(new QuestionnaireItemDisabledDisplayEnumFactory());
1443            this.disabledDisplay.setValue(value);
1444          }
1445          return this;
1446        }
1447
1448        /**
1449         * @return {@link #required} (An indication, if true, that the item must be present in a "completed" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value
1450         */
1451        public BooleanType getRequiredElement() { 
1452          if (this.required == null)
1453            if (Configuration.errorOnAutoCreate())
1454              throw new Error("Attempt to auto-create QuestionnaireItemComponent.required");
1455            else if (Configuration.doAutoCreate())
1456              this.required = new BooleanType(); // bb
1457          return this.required;
1458        }
1459
1460        public boolean hasRequiredElement() { 
1461          return this.required != null && !this.required.isEmpty();
1462        }
1463
1464        public boolean hasRequired() { 
1465          return this.required != null && !this.required.isEmpty();
1466        }
1467
1468        /**
1469         * @param value {@link #required} (An indication, if true, that the item must be present in a "completed" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value
1470         */
1471        public QuestionnaireItemComponent setRequiredElement(BooleanType value) { 
1472          this.required = value;
1473          return this;
1474        }
1475
1476        /**
1477         * @return An indication, if true, that the item must be present in a "completed" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire.
1478         */
1479        public boolean getRequired() { 
1480          return this.required == null || this.required.isEmpty() ? false : this.required.getValue();
1481        }
1482
1483        /**
1484         * @param value An indication, if true, that the item must be present in a "completed" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire.
1485         */
1486        public QuestionnaireItemComponent setRequired(boolean value) { 
1487            if (this.required == null)
1488              this.required = new BooleanType();
1489            this.required.setValue(value);
1490          return this;
1491        }
1492
1493        /**
1494         * @return {@link #repeats} (An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).). This is the underlying object with id, value and extensions. The accessor "getRepeats" gives direct access to the value
1495         */
1496        public BooleanType getRepeatsElement() { 
1497          if (this.repeats == null)
1498            if (Configuration.errorOnAutoCreate())
1499              throw new Error("Attempt to auto-create QuestionnaireItemComponent.repeats");
1500            else if (Configuration.doAutoCreate())
1501              this.repeats = new BooleanType(); // bb
1502          return this.repeats;
1503        }
1504
1505        public boolean hasRepeatsElement() { 
1506          return this.repeats != null && !this.repeats.isEmpty();
1507        }
1508
1509        public boolean hasRepeats() { 
1510          return this.repeats != null && !this.repeats.isEmpty();
1511        }
1512
1513        /**
1514         * @param value {@link #repeats} (An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).). This is the underlying object with id, value and extensions. The accessor "getRepeats" gives direct access to the value
1515         */
1516        public QuestionnaireItemComponent setRepeatsElement(BooleanType value) { 
1517          this.repeats = value;
1518          return this;
1519        }
1520
1521        /**
1522         * @return An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).
1523         */
1524        public boolean getRepeats() { 
1525          return this.repeats == null || this.repeats.isEmpty() ? false : this.repeats.getValue();
1526        }
1527
1528        /**
1529         * @param value An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).
1530         */
1531        public QuestionnaireItemComponent setRepeats(boolean value) { 
1532            if (this.repeats == null)
1533              this.repeats = new BooleanType();
1534            this.repeats.setValue(value);
1535          return this;
1536        }
1537
1538        /**
1539         * @return {@link #readOnly} (An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.). This is the underlying object with id, value and extensions. The accessor "getReadOnly" gives direct access to the value
1540         */
1541        public BooleanType getReadOnlyElement() { 
1542          if (this.readOnly == null)
1543            if (Configuration.errorOnAutoCreate())
1544              throw new Error("Attempt to auto-create QuestionnaireItemComponent.readOnly");
1545            else if (Configuration.doAutoCreate())
1546              this.readOnly = new BooleanType(); // bb
1547          return this.readOnly;
1548        }
1549
1550        public boolean hasReadOnlyElement() { 
1551          return this.readOnly != null && !this.readOnly.isEmpty();
1552        }
1553
1554        public boolean hasReadOnly() { 
1555          return this.readOnly != null && !this.readOnly.isEmpty();
1556        }
1557
1558        /**
1559         * @param value {@link #readOnly} (An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.). This is the underlying object with id, value and extensions. The accessor "getReadOnly" gives direct access to the value
1560         */
1561        public QuestionnaireItemComponent setReadOnlyElement(BooleanType value) { 
1562          this.readOnly = value;
1563          return this;
1564        }
1565
1566        /**
1567         * @return An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.
1568         */
1569        public boolean getReadOnly() { 
1570          return this.readOnly == null || this.readOnly.isEmpty() ? false : this.readOnly.getValue();
1571        }
1572
1573        /**
1574         * @param value An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.
1575         */
1576        public QuestionnaireItemComponent setReadOnly(boolean value) { 
1577            if (this.readOnly == null)
1578              this.readOnly = new BooleanType();
1579            this.readOnly.setValue(value);
1580          return this;
1581        }
1582
1583        /**
1584         * @return {@link #maxLength} (The maximum number of characters that are permitted in the answer to be considered a "valid" QuestionnaireResponse.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value
1585         */
1586        public IntegerType getMaxLengthElement() { 
1587          if (this.maxLength == null)
1588            if (Configuration.errorOnAutoCreate())
1589              throw new Error("Attempt to auto-create QuestionnaireItemComponent.maxLength");
1590            else if (Configuration.doAutoCreate())
1591              this.maxLength = new IntegerType(); // bb
1592          return this.maxLength;
1593        }
1594
1595        public boolean hasMaxLengthElement() { 
1596          return this.maxLength != null && !this.maxLength.isEmpty();
1597        }
1598
1599        public boolean hasMaxLength() { 
1600          return this.maxLength != null && !this.maxLength.isEmpty();
1601        }
1602
1603        /**
1604         * @param value {@link #maxLength} (The maximum number of characters that are permitted in the answer to be considered a "valid" QuestionnaireResponse.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value
1605         */
1606        public QuestionnaireItemComponent setMaxLengthElement(IntegerType value) { 
1607          this.maxLength = value;
1608          return this;
1609        }
1610
1611        /**
1612         * @return The maximum number of characters that are permitted in the answer to be considered a "valid" QuestionnaireResponse.
1613         */
1614        public int getMaxLength() { 
1615          return this.maxLength == null || this.maxLength.isEmpty() ? 0 : this.maxLength.getValue();
1616        }
1617
1618        /**
1619         * @param value The maximum number of characters that are permitted in the answer to be considered a "valid" QuestionnaireResponse.
1620         */
1621        public QuestionnaireItemComponent setMaxLength(int value) { 
1622            if (this.maxLength == null)
1623              this.maxLength = new IntegerType();
1624            this.maxLength.setValue(value);
1625          return this;
1626        }
1627
1628        /**
1629         * @return {@link #answerConstraint} (For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.). This is the underlying object with id, value and extensions. The accessor "getAnswerConstraint" gives direct access to the value
1630         */
1631        public Enumeration<QuestionnaireAnswerConstraint> getAnswerConstraintElement() { 
1632          if (this.answerConstraint == null)
1633            if (Configuration.errorOnAutoCreate())
1634              throw new Error("Attempt to auto-create QuestionnaireItemComponent.answerConstraint");
1635            else if (Configuration.doAutoCreate())
1636              this.answerConstraint = new Enumeration<QuestionnaireAnswerConstraint>(new QuestionnaireAnswerConstraintEnumFactory()); // bb
1637          return this.answerConstraint;
1638        }
1639
1640        public boolean hasAnswerConstraintElement() { 
1641          return this.answerConstraint != null && !this.answerConstraint.isEmpty();
1642        }
1643
1644        public boolean hasAnswerConstraint() { 
1645          return this.answerConstraint != null && !this.answerConstraint.isEmpty();
1646        }
1647
1648        /**
1649         * @param value {@link #answerConstraint} (For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.). This is the underlying object with id, value and extensions. The accessor "getAnswerConstraint" gives direct access to the value
1650         */
1651        public QuestionnaireItemComponent setAnswerConstraintElement(Enumeration<QuestionnaireAnswerConstraint> value) { 
1652          this.answerConstraint = value;
1653          return this;
1654        }
1655
1656        /**
1657         * @return For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.
1658         */
1659        public QuestionnaireAnswerConstraint getAnswerConstraint() { 
1660          return this.answerConstraint == null ? null : this.answerConstraint.getValue();
1661        }
1662
1663        /**
1664         * @param value For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.
1665         */
1666        public QuestionnaireItemComponent setAnswerConstraint(QuestionnaireAnswerConstraint value) { 
1667          if (value == null)
1668            this.answerConstraint = null;
1669          else {
1670            if (this.answerConstraint == null)
1671              this.answerConstraint = new Enumeration<QuestionnaireAnswerConstraint>(new QuestionnaireAnswerConstraintEnumFactory());
1672            this.answerConstraint.setValue(value);
1673          }
1674          return this;
1675        }
1676
1677        /**
1678         * @return {@link #answerValueSet} (A reference to a value set containing a list of values representing permitted answers for a question.). This is the underlying object with id, value and extensions. The accessor "getAnswerValueSet" gives direct access to the value
1679         */
1680        public CanonicalType getAnswerValueSetElement() { 
1681          if (this.answerValueSet == null)
1682            if (Configuration.errorOnAutoCreate())
1683              throw new Error("Attempt to auto-create QuestionnaireItemComponent.answerValueSet");
1684            else if (Configuration.doAutoCreate())
1685              this.answerValueSet = new CanonicalType(); // bb
1686          return this.answerValueSet;
1687        }
1688
1689        public boolean hasAnswerValueSetElement() { 
1690          return this.answerValueSet != null && !this.answerValueSet.isEmpty();
1691        }
1692
1693        public boolean hasAnswerValueSet() { 
1694          return this.answerValueSet != null && !this.answerValueSet.isEmpty();
1695        }
1696
1697        /**
1698         * @param value {@link #answerValueSet} (A reference to a value set containing a list of values representing permitted answers for a question.). This is the underlying object with id, value and extensions. The accessor "getAnswerValueSet" gives direct access to the value
1699         */
1700        public QuestionnaireItemComponent setAnswerValueSetElement(CanonicalType value) { 
1701          this.answerValueSet = value;
1702          return this;
1703        }
1704
1705        /**
1706         * @return A reference to a value set containing a list of values representing permitted answers for a question.
1707         */
1708        public String getAnswerValueSet() { 
1709          return this.answerValueSet == null ? null : this.answerValueSet.getValue();
1710        }
1711
1712        /**
1713         * @param value A reference to a value set containing a list of values representing permitted answers for a question.
1714         */
1715        public QuestionnaireItemComponent setAnswerValueSet(String value) { 
1716          if (Utilities.noString(value))
1717            this.answerValueSet = null;
1718          else {
1719            if (this.answerValueSet == null)
1720              this.answerValueSet = new CanonicalType();
1721            this.answerValueSet.setValue(value);
1722          }
1723          return this;
1724        }
1725
1726        /**
1727         * @return {@link #answerOption} (One of the permitted answers for the question.)
1728         */
1729        public List<QuestionnaireItemAnswerOptionComponent> getAnswerOption() { 
1730          if (this.answerOption == null)
1731            this.answerOption = new ArrayList<QuestionnaireItemAnswerOptionComponent>();
1732          return this.answerOption;
1733        }
1734
1735        /**
1736         * @return Returns a reference to <code>this</code> for easy method chaining
1737         */
1738        public QuestionnaireItemComponent setAnswerOption(List<QuestionnaireItemAnswerOptionComponent> theAnswerOption) { 
1739          this.answerOption = theAnswerOption;
1740          return this;
1741        }
1742
1743        public boolean hasAnswerOption() { 
1744          if (this.answerOption == null)
1745            return false;
1746          for (QuestionnaireItemAnswerOptionComponent item : this.answerOption)
1747            if (!item.isEmpty())
1748              return true;
1749          return false;
1750        }
1751
1752        public QuestionnaireItemAnswerOptionComponent addAnswerOption() { //3
1753          QuestionnaireItemAnswerOptionComponent t = new QuestionnaireItemAnswerOptionComponent();
1754          if (this.answerOption == null)
1755            this.answerOption = new ArrayList<QuestionnaireItemAnswerOptionComponent>();
1756          this.answerOption.add(t);
1757          return t;
1758        }
1759
1760        public QuestionnaireItemComponent addAnswerOption(QuestionnaireItemAnswerOptionComponent t) { //3
1761          if (t == null)
1762            return this;
1763          if (this.answerOption == null)
1764            this.answerOption = new ArrayList<QuestionnaireItemAnswerOptionComponent>();
1765          this.answerOption.add(t);
1766          return this;
1767        }
1768
1769        /**
1770         * @return The first repetition of repeating field {@link #answerOption}, creating it if it does not already exist {3}
1771         */
1772        public QuestionnaireItemAnswerOptionComponent getAnswerOptionFirstRep() { 
1773          if (getAnswerOption().isEmpty()) {
1774            addAnswerOption();
1775          }
1776          return getAnswerOption().get(0);
1777        }
1778
1779        /**
1780         * @return {@link #initial} (One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input.)
1781         */
1782        public List<QuestionnaireItemInitialComponent> getInitial() { 
1783          if (this.initial == null)
1784            this.initial = new ArrayList<QuestionnaireItemInitialComponent>();
1785          return this.initial;
1786        }
1787
1788        /**
1789         * @return Returns a reference to <code>this</code> for easy method chaining
1790         */
1791        public QuestionnaireItemComponent setInitial(List<QuestionnaireItemInitialComponent> theInitial) { 
1792          this.initial = theInitial;
1793          return this;
1794        }
1795
1796        public boolean hasInitial() { 
1797          if (this.initial == null)
1798            return false;
1799          for (QuestionnaireItemInitialComponent item : this.initial)
1800            if (!item.isEmpty())
1801              return true;
1802          return false;
1803        }
1804
1805        public QuestionnaireItemInitialComponent addInitial() { //3
1806          QuestionnaireItemInitialComponent t = new QuestionnaireItemInitialComponent();
1807          if (this.initial == null)
1808            this.initial = new ArrayList<QuestionnaireItemInitialComponent>();
1809          this.initial.add(t);
1810          return t;
1811        }
1812
1813        public QuestionnaireItemComponent addInitial(QuestionnaireItemInitialComponent t) { //3
1814          if (t == null)
1815            return this;
1816          if (this.initial == null)
1817            this.initial = new ArrayList<QuestionnaireItemInitialComponent>();
1818          this.initial.add(t);
1819          return this;
1820        }
1821
1822        /**
1823         * @return The first repetition of repeating field {@link #initial}, creating it if it does not already exist {3}
1824         */
1825        public QuestionnaireItemInitialComponent getInitialFirstRep() { 
1826          if (getInitial().isEmpty()) {
1827            addInitial();
1828          }
1829          return getInitial().get(0);
1830        }
1831
1832        /**
1833         * @return {@link #item} (Text, questions and other groups to be nested beneath a question or group.)
1834         */
1835        public List<QuestionnaireItemComponent> getItem() { 
1836          if (this.item == null)
1837            this.item = new ArrayList<QuestionnaireItemComponent>();
1838          return this.item;
1839        }
1840
1841        /**
1842         * @return Returns a reference to <code>this</code> for easy method chaining
1843         */
1844        public QuestionnaireItemComponent setItem(List<QuestionnaireItemComponent> theItem) { 
1845          this.item = theItem;
1846          return this;
1847        }
1848
1849        public boolean hasItem() { 
1850          if (this.item == null)
1851            return false;
1852          for (QuestionnaireItemComponent item : this.item)
1853            if (!item.isEmpty())
1854              return true;
1855          return false;
1856        }
1857
1858        public QuestionnaireItemComponent addItem() { //3
1859          QuestionnaireItemComponent t = new QuestionnaireItemComponent();
1860          if (this.item == null)
1861            this.item = new ArrayList<QuestionnaireItemComponent>();
1862          this.item.add(t);
1863          return t;
1864        }
1865
1866        public QuestionnaireItemComponent addItem(QuestionnaireItemComponent t) { //3
1867          if (t == null)
1868            return this;
1869          if (this.item == null)
1870            this.item = new ArrayList<QuestionnaireItemComponent>();
1871          this.item.add(t);
1872          return this;
1873        }
1874
1875        /**
1876         * @return The first repetition of repeating field {@link #item}, creating it if it does not already exist {3}
1877         */
1878        public QuestionnaireItemComponent getItemFirstRep() { 
1879          if (getItem().isEmpty()) {
1880            addItem();
1881          }
1882          return getItem().get(0);
1883        }
1884
1885        protected void listChildren(List<Property> children) {
1886          super.listChildren(children);
1887          children.add(new Property("linkId", "string", "An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.", 0, 1, linkId));
1888          children.add(new Property("definition", "uri", "This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.", 0, 1, definition));
1889          children.add(new Property("code", "Coding", "A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).", 0, java.lang.Integer.MAX_VALUE, code));
1890          children.add(new Property("prefix", "string", "A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.", 0, 1, prefix));
1891          children.add(new Property("text", "string", "The name of a section, the text of a question or text content for a display item.", 0, 1, text));
1892          children.add(new Property("type", "code", "The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).", 0, 1, type));
1893          children.add(new Property("enableWhen", "", "A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true.", 0, java.lang.Integer.MAX_VALUE, enableWhen));
1894          children.add(new Property("enableBehavior", "code", "Controls how multiple enableWhen values are interpreted -  whether all or any must be true.", 0, 1, enableBehavior));
1895          children.add(new Property("disabledDisplay", "code", "Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.", 0, 1, disabledDisplay));
1896          children.add(new Property("required", "boolean", "An indication, if true, that the item must be present in a \"completed\" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire.", 0, 1, required));
1897          children.add(new Property("repeats", "boolean", "An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).", 0, 1, repeats));
1898          children.add(new Property("readOnly", "boolean", "An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.", 0, 1, readOnly));
1899          children.add(new Property("maxLength", "integer", "The maximum number of characters that are permitted in the answer to be considered a \"valid\" QuestionnaireResponse.", 0, 1, maxLength));
1900          children.add(new Property("answerConstraint", "code", "For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.", 0, 1, answerConstraint));
1901          children.add(new Property("answerValueSet", "canonical(ValueSet)", "A reference to a value set containing a list of values representing permitted answers for a question.", 0, 1, answerValueSet));
1902          children.add(new Property("answerOption", "", "One of the permitted answers for the question.", 0, java.lang.Integer.MAX_VALUE, answerOption));
1903          children.add(new Property("initial", "", "One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input.", 0, java.lang.Integer.MAX_VALUE, initial));
1904          children.add(new Property("item", "@Questionnaire.item", "Text, questions and other groups to be nested beneath a question or group.", 0, java.lang.Integer.MAX_VALUE, item));
1905        }
1906
1907        @Override
1908        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1909          switch (_hash) {
1910          case -1102667083: /*linkId*/  return new Property("linkId", "string", "An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.", 0, 1, linkId);
1911          case -1014418093: /*definition*/  return new Property("definition", "uri", "This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.", 0, 1, definition);
1912          case 3059181: /*code*/  return new Property("code", "Coding", "A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).", 0, java.lang.Integer.MAX_VALUE, code);
1913          case -980110702: /*prefix*/  return new Property("prefix", "string", "A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.", 0, 1, prefix);
1914          case 3556653: /*text*/  return new Property("text", "string", "The name of a section, the text of a question or text content for a display item.", 0, 1, text);
1915          case 3575610: /*type*/  return new Property("type", "code", "The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).", 0, 1, type);
1916          case 1893321565: /*enableWhen*/  return new Property("enableWhen", "", "A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true.", 0, java.lang.Integer.MAX_VALUE, enableWhen);
1917          case 1854802165: /*enableBehavior*/  return new Property("enableBehavior", "code", "Controls how multiple enableWhen values are interpreted -  whether all or any must be true.", 0, 1, enableBehavior);
1918          case -1254886746: /*disabledDisplay*/  return new Property("disabledDisplay", "code", "Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.", 0, 1, disabledDisplay);
1919          case -393139297: /*required*/  return new Property("required", "boolean", "An indication, if true, that the item must be present in a \"completed\" QuestionnaireResponse.  If false, the item may be skipped when answering the questionnaire.", 0, 1, required);
1920          case 1094288952: /*repeats*/  return new Property("repeats", "boolean", "An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).", 0, 1, repeats);
1921          case -867683742: /*readOnly*/  return new Property("readOnly", "boolean", "An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.", 0, 1, readOnly);
1922          case -791400086: /*maxLength*/  return new Property("maxLength", "integer", "The maximum number of characters that are permitted in the answer to be considered a \"valid\" QuestionnaireResponse.", 0, 1, maxLength);
1923          case 746396731: /*answerConstraint*/  return new Property("answerConstraint", "code", "For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.", 0, 1, answerConstraint);
1924          case -743278833: /*answerValueSet*/  return new Property("answerValueSet", "canonical(ValueSet)", "A reference to a value set containing a list of values representing permitted answers for a question.", 0, 1, answerValueSet);
1925          case -1527878189: /*answerOption*/  return new Property("answerOption", "", "One of the permitted answers for the question.", 0, java.lang.Integer.MAX_VALUE, answerOption);
1926          case 1948342084: /*initial*/  return new Property("initial", "", "One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input.", 0, java.lang.Integer.MAX_VALUE, initial);
1927          case 3242771: /*item*/  return new Property("item", "@Questionnaire.item", "Text, questions and other groups to be nested beneath a question or group.", 0, java.lang.Integer.MAX_VALUE, item);
1928          default: return super.getNamedProperty(_hash, _name, _checkValid);
1929          }
1930
1931        }
1932
1933      @Override
1934      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1935        switch (hash) {
1936        case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType
1937        case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // UriType
1938        case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // Coding
1939        case -980110702: /*prefix*/ return this.prefix == null ? new Base[0] : new Base[] {this.prefix}; // StringType
1940        case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // StringType
1941        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<QuestionnaireItemType>
1942        case 1893321565: /*enableWhen*/ return this.enableWhen == null ? new Base[0] : this.enableWhen.toArray(new Base[this.enableWhen.size()]); // QuestionnaireItemEnableWhenComponent
1943        case 1854802165: /*enableBehavior*/ return this.enableBehavior == null ? new Base[0] : new Base[] {this.enableBehavior}; // Enumeration<EnableWhenBehavior>
1944        case -1254886746: /*disabledDisplay*/ return this.disabledDisplay == null ? new Base[0] : new Base[] {this.disabledDisplay}; // Enumeration<QuestionnaireItemDisabledDisplay>
1945        case -393139297: /*required*/ return this.required == null ? new Base[0] : new Base[] {this.required}; // BooleanType
1946        case 1094288952: /*repeats*/ return this.repeats == null ? new Base[0] : new Base[] {this.repeats}; // BooleanType
1947        case -867683742: /*readOnly*/ return this.readOnly == null ? new Base[0] : new Base[] {this.readOnly}; // BooleanType
1948        case -791400086: /*maxLength*/ return this.maxLength == null ? new Base[0] : new Base[] {this.maxLength}; // IntegerType
1949        case 746396731: /*answerConstraint*/ return this.answerConstraint == null ? new Base[0] : new Base[] {this.answerConstraint}; // Enumeration<QuestionnaireAnswerConstraint>
1950        case -743278833: /*answerValueSet*/ return this.answerValueSet == null ? new Base[0] : new Base[] {this.answerValueSet}; // CanonicalType
1951        case -1527878189: /*answerOption*/ return this.answerOption == null ? new Base[0] : this.answerOption.toArray(new Base[this.answerOption.size()]); // QuestionnaireItemAnswerOptionComponent
1952        case 1948342084: /*initial*/ return this.initial == null ? new Base[0] : this.initial.toArray(new Base[this.initial.size()]); // QuestionnaireItemInitialComponent
1953        case 3242771: /*item*/ return this.item == null ? new Base[0] : this.item.toArray(new Base[this.item.size()]); // QuestionnaireItemComponent
1954        default: return super.getProperty(hash, name, checkValid);
1955        }
1956
1957      }
1958
1959      @Override
1960      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1961        switch (hash) {
1962        case -1102667083: // linkId
1963          this.linkId = TypeConvertor.castToString(value); // StringType
1964          return value;
1965        case -1014418093: // definition
1966          this.definition = TypeConvertor.castToUri(value); // UriType
1967          return value;
1968        case 3059181: // code
1969          this.getCode().add(TypeConvertor.castToCoding(value)); // Coding
1970          return value;
1971        case -980110702: // prefix
1972          this.prefix = TypeConvertor.castToString(value); // StringType
1973          return value;
1974        case 3556653: // text
1975          this.text = TypeConvertor.castToString(value); // StringType
1976          return value;
1977        case 3575610: // type
1978          value = new QuestionnaireItemTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1979          this.type = (Enumeration) value; // Enumeration<QuestionnaireItemType>
1980          return value;
1981        case 1893321565: // enableWhen
1982          this.getEnableWhen().add((QuestionnaireItemEnableWhenComponent) value); // QuestionnaireItemEnableWhenComponent
1983          return value;
1984        case 1854802165: // enableBehavior
1985          value = new EnableWhenBehaviorEnumFactory().fromType(TypeConvertor.castToCode(value));
1986          this.enableBehavior = (Enumeration) value; // Enumeration<EnableWhenBehavior>
1987          return value;
1988        case -1254886746: // disabledDisplay
1989          value = new QuestionnaireItemDisabledDisplayEnumFactory().fromType(TypeConvertor.castToCode(value));
1990          this.disabledDisplay = (Enumeration) value; // Enumeration<QuestionnaireItemDisabledDisplay>
1991          return value;
1992        case -393139297: // required
1993          this.required = TypeConvertor.castToBoolean(value); // BooleanType
1994          return value;
1995        case 1094288952: // repeats
1996          this.repeats = TypeConvertor.castToBoolean(value); // BooleanType
1997          return value;
1998        case -867683742: // readOnly
1999          this.readOnly = TypeConvertor.castToBoolean(value); // BooleanType
2000          return value;
2001        case -791400086: // maxLength
2002          this.maxLength = TypeConvertor.castToInteger(value); // IntegerType
2003          return value;
2004        case 746396731: // answerConstraint
2005          value = new QuestionnaireAnswerConstraintEnumFactory().fromType(TypeConvertor.castToCode(value));
2006          this.answerConstraint = (Enumeration) value; // Enumeration<QuestionnaireAnswerConstraint>
2007          return value;
2008        case -743278833: // answerValueSet
2009          this.answerValueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2010          return value;
2011        case -1527878189: // answerOption
2012          this.getAnswerOption().add((QuestionnaireItemAnswerOptionComponent) value); // QuestionnaireItemAnswerOptionComponent
2013          return value;
2014        case 1948342084: // initial
2015          this.getInitial().add((QuestionnaireItemInitialComponent) value); // QuestionnaireItemInitialComponent
2016          return value;
2017        case 3242771: // item
2018          this.getItem().add((QuestionnaireItemComponent) value); // QuestionnaireItemComponent
2019          return value;
2020        default: return super.setProperty(hash, name, value);
2021        }
2022
2023      }
2024
2025      @Override
2026      public Base setProperty(String name, Base value) throws FHIRException {
2027        if (name.equals("linkId")) {
2028          this.linkId = TypeConvertor.castToString(value); // StringType
2029        } else if (name.equals("definition")) {
2030          this.definition = TypeConvertor.castToUri(value); // UriType
2031        } else if (name.equals("code")) {
2032          this.getCode().add(TypeConvertor.castToCoding(value));
2033        } else if (name.equals("prefix")) {
2034          this.prefix = TypeConvertor.castToString(value); // StringType
2035        } else if (name.equals("text")) {
2036          this.text = TypeConvertor.castToString(value); // StringType
2037        } else if (name.equals("type")) {
2038          value = new QuestionnaireItemTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
2039          this.type = (Enumeration) value; // Enumeration<QuestionnaireItemType>
2040        } else if (name.equals("enableWhen")) {
2041          this.getEnableWhen().add((QuestionnaireItemEnableWhenComponent) value);
2042        } else if (name.equals("enableBehavior")) {
2043          value = new EnableWhenBehaviorEnumFactory().fromType(TypeConvertor.castToCode(value));
2044          this.enableBehavior = (Enumeration) value; // Enumeration<EnableWhenBehavior>
2045        } else if (name.equals("disabledDisplay")) {
2046          value = new QuestionnaireItemDisabledDisplayEnumFactory().fromType(TypeConvertor.castToCode(value));
2047          this.disabledDisplay = (Enumeration) value; // Enumeration<QuestionnaireItemDisabledDisplay>
2048        } else if (name.equals("required")) {
2049          this.required = TypeConvertor.castToBoolean(value); // BooleanType
2050        } else if (name.equals("repeats")) {
2051          this.repeats = TypeConvertor.castToBoolean(value); // BooleanType
2052        } else if (name.equals("readOnly")) {
2053          this.readOnly = TypeConvertor.castToBoolean(value); // BooleanType
2054        } else if (name.equals("maxLength")) {
2055          this.maxLength = TypeConvertor.castToInteger(value); // IntegerType
2056        } else if (name.equals("answerConstraint")) {
2057          value = new QuestionnaireAnswerConstraintEnumFactory().fromType(TypeConvertor.castToCode(value));
2058          this.answerConstraint = (Enumeration) value; // Enumeration<QuestionnaireAnswerConstraint>
2059        } else if (name.equals("answerValueSet")) {
2060          this.answerValueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2061        } else if (name.equals("answerOption")) {
2062          this.getAnswerOption().add((QuestionnaireItemAnswerOptionComponent) value);
2063        } else if (name.equals("initial")) {
2064          this.getInitial().add((QuestionnaireItemInitialComponent) value);
2065        } else if (name.equals("item")) {
2066          this.getItem().add((QuestionnaireItemComponent) value);
2067        } else
2068          return super.setProperty(name, value);
2069        return value;
2070      }
2071
2072      @Override
2073      public Base makeProperty(int hash, String name) throws FHIRException {
2074        switch (hash) {
2075        case -1102667083:  return getLinkIdElement();
2076        case -1014418093:  return getDefinitionElement();
2077        case 3059181:  return addCode(); 
2078        case -980110702:  return getPrefixElement();
2079        case 3556653:  return getTextElement();
2080        case 3575610:  return getTypeElement();
2081        case 1893321565:  return addEnableWhen(); 
2082        case 1854802165:  return getEnableBehaviorElement();
2083        case -1254886746:  return getDisabledDisplayElement();
2084        case -393139297:  return getRequiredElement();
2085        case 1094288952:  return getRepeatsElement();
2086        case -867683742:  return getReadOnlyElement();
2087        case -791400086:  return getMaxLengthElement();
2088        case 746396731:  return getAnswerConstraintElement();
2089        case -743278833:  return getAnswerValueSetElement();
2090        case -1527878189:  return addAnswerOption(); 
2091        case 1948342084:  return addInitial(); 
2092        case 3242771:  return addItem(); 
2093        default: return super.makeProperty(hash, name);
2094        }
2095
2096      }
2097
2098      @Override
2099      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2100        switch (hash) {
2101        case -1102667083: /*linkId*/ return new String[] {"string"};
2102        case -1014418093: /*definition*/ return new String[] {"uri"};
2103        case 3059181: /*code*/ return new String[] {"Coding"};
2104        case -980110702: /*prefix*/ return new String[] {"string"};
2105        case 3556653: /*text*/ return new String[] {"string"};
2106        case 3575610: /*type*/ return new String[] {"code"};
2107        case 1893321565: /*enableWhen*/ return new String[] {};
2108        case 1854802165: /*enableBehavior*/ return new String[] {"code"};
2109        case -1254886746: /*disabledDisplay*/ return new String[] {"code"};
2110        case -393139297: /*required*/ return new String[] {"boolean"};
2111        case 1094288952: /*repeats*/ return new String[] {"boolean"};
2112        case -867683742: /*readOnly*/ return new String[] {"boolean"};
2113        case -791400086: /*maxLength*/ return new String[] {"integer"};
2114        case 746396731: /*answerConstraint*/ return new String[] {"code"};
2115        case -743278833: /*answerValueSet*/ return new String[] {"canonical"};
2116        case -1527878189: /*answerOption*/ return new String[] {};
2117        case 1948342084: /*initial*/ return new String[] {};
2118        case 3242771: /*item*/ return new String[] {"@Questionnaire.item"};
2119        default: return super.getTypesForProperty(hash, name);
2120        }
2121
2122      }
2123
2124      @Override
2125      public Base addChild(String name) throws FHIRException {
2126        if (name.equals("linkId")) {
2127          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.linkId");
2128        }
2129        else if (name.equals("definition")) {
2130          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.definition");
2131        }
2132        else if (name.equals("code")) {
2133          return addCode();
2134        }
2135        else if (name.equals("prefix")) {
2136          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.prefix");
2137        }
2138        else if (name.equals("text")) {
2139          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.text");
2140        }
2141        else if (name.equals("type")) {
2142          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.type");
2143        }
2144        else if (name.equals("enableWhen")) {
2145          return addEnableWhen();
2146        }
2147        else if (name.equals("enableBehavior")) {
2148          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.enableBehavior");
2149        }
2150        else if (name.equals("disabledDisplay")) {
2151          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.disabledDisplay");
2152        }
2153        else if (name.equals("required")) {
2154          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.required");
2155        }
2156        else if (name.equals("repeats")) {
2157          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.repeats");
2158        }
2159        else if (name.equals("readOnly")) {
2160          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.readOnly");
2161        }
2162        else if (name.equals("maxLength")) {
2163          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.maxLength");
2164        }
2165        else if (name.equals("answerConstraint")) {
2166          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.answerConstraint");
2167        }
2168        else if (name.equals("answerValueSet")) {
2169          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.answerValueSet");
2170        }
2171        else if (name.equals("answerOption")) {
2172          return addAnswerOption();
2173        }
2174        else if (name.equals("initial")) {
2175          return addInitial();
2176        }
2177        else if (name.equals("item")) {
2178          return addItem();
2179        }
2180        else
2181          return super.addChild(name);
2182      }
2183
2184      public QuestionnaireItemComponent copy() {
2185        QuestionnaireItemComponent dst = new QuestionnaireItemComponent();
2186        copyValues(dst);
2187        return dst;
2188      }
2189
2190      public void copyValues(QuestionnaireItemComponent dst) {
2191        super.copyValues(dst);
2192        dst.linkId = linkId == null ? null : linkId.copy();
2193        dst.definition = definition == null ? null : definition.copy();
2194        if (code != null) {
2195          dst.code = new ArrayList<Coding>();
2196          for (Coding i : code)
2197            dst.code.add(i.copy());
2198        };
2199        dst.prefix = prefix == null ? null : prefix.copy();
2200        dst.text = text == null ? null : text.copy();
2201        dst.type = type == null ? null : type.copy();
2202        if (enableWhen != null) {
2203          dst.enableWhen = new ArrayList<QuestionnaireItemEnableWhenComponent>();
2204          for (QuestionnaireItemEnableWhenComponent i : enableWhen)
2205            dst.enableWhen.add(i.copy());
2206        };
2207        dst.enableBehavior = enableBehavior == null ? null : enableBehavior.copy();
2208        dst.disabledDisplay = disabledDisplay == null ? null : disabledDisplay.copy();
2209        dst.required = required == null ? null : required.copy();
2210        dst.repeats = repeats == null ? null : repeats.copy();
2211        dst.readOnly = readOnly == null ? null : readOnly.copy();
2212        dst.maxLength = maxLength == null ? null : maxLength.copy();
2213        dst.answerConstraint = answerConstraint == null ? null : answerConstraint.copy();
2214        dst.answerValueSet = answerValueSet == null ? null : answerValueSet.copy();
2215        if (answerOption != null) {
2216          dst.answerOption = new ArrayList<QuestionnaireItemAnswerOptionComponent>();
2217          for (QuestionnaireItemAnswerOptionComponent i : answerOption)
2218            dst.answerOption.add(i.copy());
2219        };
2220        if (initial != null) {
2221          dst.initial = new ArrayList<QuestionnaireItemInitialComponent>();
2222          for (QuestionnaireItemInitialComponent i : initial)
2223            dst.initial.add(i.copy());
2224        };
2225        if (item != null) {
2226          dst.item = new ArrayList<QuestionnaireItemComponent>();
2227          for (QuestionnaireItemComponent i : item)
2228            dst.item.add(i.copy());
2229        };
2230      }
2231
2232      @Override
2233      public boolean equalsDeep(Base other_) {
2234        if (!super.equalsDeep(other_))
2235          return false;
2236        if (!(other_ instanceof QuestionnaireItemComponent))
2237          return false;
2238        QuestionnaireItemComponent o = (QuestionnaireItemComponent) other_;
2239        return compareDeep(linkId, o.linkId, true) && compareDeep(definition, o.definition, true) && compareDeep(code, o.code, true)
2240           && compareDeep(prefix, o.prefix, true) && compareDeep(text, o.text, true) && compareDeep(type, o.type, true)
2241           && compareDeep(enableWhen, o.enableWhen, true) && compareDeep(enableBehavior, o.enableBehavior, true)
2242           && compareDeep(disabledDisplay, o.disabledDisplay, true) && compareDeep(required, o.required, true)
2243           && compareDeep(repeats, o.repeats, true) && compareDeep(readOnly, o.readOnly, true) && compareDeep(maxLength, o.maxLength, true)
2244           && compareDeep(answerConstraint, o.answerConstraint, true) && compareDeep(answerValueSet, o.answerValueSet, true)
2245           && compareDeep(answerOption, o.answerOption, true) && compareDeep(initial, o.initial, true) && compareDeep(item, o.item, true)
2246          ;
2247      }
2248
2249      @Override
2250      public boolean equalsShallow(Base other_) {
2251        if (!super.equalsShallow(other_))
2252          return false;
2253        if (!(other_ instanceof QuestionnaireItemComponent))
2254          return false;
2255        QuestionnaireItemComponent o = (QuestionnaireItemComponent) other_;
2256        return compareValues(linkId, o.linkId, true) && compareValues(definition, o.definition, true) && compareValues(prefix, o.prefix, true)
2257           && compareValues(text, o.text, true) && compareValues(type, o.type, true) && compareValues(enableBehavior, o.enableBehavior, true)
2258           && compareValues(disabledDisplay, o.disabledDisplay, true) && compareValues(required, o.required, true)
2259           && compareValues(repeats, o.repeats, true) && compareValues(readOnly, o.readOnly, true) && compareValues(maxLength, o.maxLength, true)
2260           && compareValues(answerConstraint, o.answerConstraint, true) && compareValues(answerValueSet, o.answerValueSet, true)
2261          ;
2262      }
2263
2264      public boolean isEmpty() {
2265        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, definition, code
2266          , prefix, text, type, enableWhen, enableBehavior, disabledDisplay, required, repeats
2267          , readOnly, maxLength, answerConstraint, answerValueSet, answerOption, initial, item
2268          );
2269      }
2270
2271  public String fhirType() {
2272    return "Questionnaire.item";
2273
2274  }
2275
2276// added from java-adornments.txt:
2277public QuestionnaireItemComponent getQuestion(String linkId) {
2278        if (linkId == null)
2279          return null;
2280        for (QuestionnaireItemComponent i : getItem()) {
2281          if (i.getLinkId().equals(linkId))
2282            return i;
2283          QuestionnaireItemComponent t = i.getQuestion(linkId);
2284          if (t != null)
2285            return t;
2286        }
2287        return null;
2288      }
2289
2290      public QuestionnaireItemComponent getCommonGroup(QuestionnaireItemComponent q1, QuestionnaireItemComponent q2) {
2291        if (q1 == null || q2 == null)
2292          return null;
2293        for (QuestionnaireItemComponent i : getItem()) {
2294          QuestionnaireItemComponent t = i.getCommonGroup(q1, q2);
2295          if (t != null)
2296            return t;
2297        }
2298        if (containsQuestion(q1) && containsQuestion(q2))
2299          return this;
2300        return null;
2301      }
2302
2303      public boolean containsQuestion(QuestionnaireItemComponent q) {
2304        if (q == this)
2305          return true;
2306        for (QuestionnaireItemComponent i : getItem()) {
2307          if (i.containsQuestion(q))
2308            return true;
2309        }
2310        return false;
2311      }
2312// end addition
2313  }
2314
2315    @Block()
2316    public static class QuestionnaireItemEnableWhenComponent extends BackboneElement implements IBaseBackboneElement {
2317        /**
2318         * The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.
2319         */
2320        @Child(name = "question", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
2321        @Description(shortDefinition="The linkId of question that determines whether item is enabled/disabled", formalDefinition="The linkId for the question whose answer (or lack of answer) governs whether this item is enabled." )
2322        protected StringType question;
2323
2324        /**
2325         * Specifies the criteria by which the question is enabled.
2326         */
2327        @Child(name = "operator", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=false)
2328        @Description(shortDefinition="exists | = | != | > | < | >= | <=", formalDefinition="Specifies the criteria by which the question is enabled." )
2329        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-enable-operator")
2330        protected Enumeration<QuestionnaireItemOperator> operator;
2331
2332        /**
2333         * A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.
2334         */
2335        @Child(name = "answer", type = {BooleanType.class, DecimalType.class, IntegerType.class, DateType.class, DateTimeType.class, TimeType.class, StringType.class, Coding.class, Quantity.class, Reference.class}, order=3, min=1, max=1, modifier=false, summary=false)
2336        @Description(shortDefinition="Value for question comparison based on operator", formalDefinition="A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension." )
2337        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers")
2338        protected DataType answer;
2339
2340        private static final long serialVersionUID = 1909865374L;
2341
2342    /**
2343     * Constructor
2344     */
2345      public QuestionnaireItemEnableWhenComponent() {
2346        super();
2347      }
2348
2349    /**
2350     * Constructor
2351     */
2352      public QuestionnaireItemEnableWhenComponent(String question, QuestionnaireItemOperator operator, DataType answer) {
2353        super();
2354        this.setQuestion(question);
2355        this.setOperator(operator);
2356        this.setAnswer(answer);
2357      }
2358
2359        /**
2360         * @return {@link #question} (The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.). This is the underlying object with id, value and extensions. The accessor "getQuestion" gives direct access to the value
2361         */
2362        public StringType getQuestionElement() { 
2363          if (this.question == null)
2364            if (Configuration.errorOnAutoCreate())
2365              throw new Error("Attempt to auto-create QuestionnaireItemEnableWhenComponent.question");
2366            else if (Configuration.doAutoCreate())
2367              this.question = new StringType(); // bb
2368          return this.question;
2369        }
2370
2371        public boolean hasQuestionElement() { 
2372          return this.question != null && !this.question.isEmpty();
2373        }
2374
2375        public boolean hasQuestion() { 
2376          return this.question != null && !this.question.isEmpty();
2377        }
2378
2379        /**
2380         * @param value {@link #question} (The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.). This is the underlying object with id, value and extensions. The accessor "getQuestion" gives direct access to the value
2381         */
2382        public QuestionnaireItemEnableWhenComponent setQuestionElement(StringType value) { 
2383          this.question = value;
2384          return this;
2385        }
2386
2387        /**
2388         * @return The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.
2389         */
2390        public String getQuestion() { 
2391          return this.question == null ? null : this.question.getValue();
2392        }
2393
2394        /**
2395         * @param value The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.
2396         */
2397        public QuestionnaireItemEnableWhenComponent setQuestion(String value) { 
2398            if (this.question == null)
2399              this.question = new StringType();
2400            this.question.setValue(value);
2401          return this;
2402        }
2403
2404        /**
2405         * @return {@link #operator} (Specifies the criteria by which the question is enabled.). This is the underlying object with id, value and extensions. The accessor "getOperator" gives direct access to the value
2406         */
2407        public Enumeration<QuestionnaireItemOperator> getOperatorElement() { 
2408          if (this.operator == null)
2409            if (Configuration.errorOnAutoCreate())
2410              throw new Error("Attempt to auto-create QuestionnaireItemEnableWhenComponent.operator");
2411            else if (Configuration.doAutoCreate())
2412              this.operator = new Enumeration<QuestionnaireItemOperator>(new QuestionnaireItemOperatorEnumFactory()); // bb
2413          return this.operator;
2414        }
2415
2416        public boolean hasOperatorElement() { 
2417          return this.operator != null && !this.operator.isEmpty();
2418        }
2419
2420        public boolean hasOperator() { 
2421          return this.operator != null && !this.operator.isEmpty();
2422        }
2423
2424        /**
2425         * @param value {@link #operator} (Specifies the criteria by which the question is enabled.). This is the underlying object with id, value and extensions. The accessor "getOperator" gives direct access to the value
2426         */
2427        public QuestionnaireItemEnableWhenComponent setOperatorElement(Enumeration<QuestionnaireItemOperator> value) { 
2428          this.operator = value;
2429          return this;
2430        }
2431
2432        /**
2433         * @return Specifies the criteria by which the question is enabled.
2434         */
2435        public QuestionnaireItemOperator getOperator() { 
2436          return this.operator == null ? null : this.operator.getValue();
2437        }
2438
2439        /**
2440         * @param value Specifies the criteria by which the question is enabled.
2441         */
2442        public QuestionnaireItemEnableWhenComponent setOperator(QuestionnaireItemOperator value) { 
2443            if (this.operator == null)
2444              this.operator = new Enumeration<QuestionnaireItemOperator>(new QuestionnaireItemOperatorEnumFactory());
2445            this.operator.setValue(value);
2446          return this;
2447        }
2448
2449        /**
2450         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2451         */
2452        public DataType getAnswer() { 
2453          return this.answer;
2454        }
2455
2456        /**
2457         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2458         */
2459        public BooleanType getAnswerBooleanType() throws FHIRException { 
2460          if (this.answer == null)
2461            this.answer = new BooleanType();
2462          if (!(this.answer instanceof BooleanType))
2463            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.answer.getClass().getName()+" was encountered");
2464          return (BooleanType) this.answer;
2465        }
2466
2467        public boolean hasAnswerBooleanType() { 
2468          return this != null && this.answer instanceof BooleanType;
2469        }
2470
2471        /**
2472         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2473         */
2474        public DecimalType getAnswerDecimalType() throws FHIRException { 
2475          if (this.answer == null)
2476            this.answer = new DecimalType();
2477          if (!(this.answer instanceof DecimalType))
2478            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.answer.getClass().getName()+" was encountered");
2479          return (DecimalType) this.answer;
2480        }
2481
2482        public boolean hasAnswerDecimalType() { 
2483          return this != null && this.answer instanceof DecimalType;
2484        }
2485
2486        /**
2487         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2488         */
2489        public IntegerType getAnswerIntegerType() throws FHIRException { 
2490          if (this.answer == null)
2491            this.answer = new IntegerType();
2492          if (!(this.answer instanceof IntegerType))
2493            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.answer.getClass().getName()+" was encountered");
2494          return (IntegerType) this.answer;
2495        }
2496
2497        public boolean hasAnswerIntegerType() { 
2498          return this != null && this.answer instanceof IntegerType;
2499        }
2500
2501        /**
2502         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2503         */
2504        public DateType getAnswerDateType() throws FHIRException { 
2505          if (this.answer == null)
2506            this.answer = new DateType();
2507          if (!(this.answer instanceof DateType))
2508            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.answer.getClass().getName()+" was encountered");
2509          return (DateType) this.answer;
2510        }
2511
2512        public boolean hasAnswerDateType() { 
2513          return this != null && this.answer instanceof DateType;
2514        }
2515
2516        /**
2517         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2518         */
2519        public DateTimeType getAnswerDateTimeType() throws FHIRException { 
2520          if (this.answer == null)
2521            this.answer = new DateTimeType();
2522          if (!(this.answer instanceof DateTimeType))
2523            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.answer.getClass().getName()+" was encountered");
2524          return (DateTimeType) this.answer;
2525        }
2526
2527        public boolean hasAnswerDateTimeType() { 
2528          return this != null && this.answer instanceof DateTimeType;
2529        }
2530
2531        /**
2532         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2533         */
2534        public TimeType getAnswerTimeType() throws FHIRException { 
2535          if (this.answer == null)
2536            this.answer = new TimeType();
2537          if (!(this.answer instanceof TimeType))
2538            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.answer.getClass().getName()+" was encountered");
2539          return (TimeType) this.answer;
2540        }
2541
2542        public boolean hasAnswerTimeType() { 
2543          return this != null && this.answer instanceof TimeType;
2544        }
2545
2546        /**
2547         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2548         */
2549        public StringType getAnswerStringType() throws FHIRException { 
2550          if (this.answer == null)
2551            this.answer = new StringType();
2552          if (!(this.answer instanceof StringType))
2553            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.answer.getClass().getName()+" was encountered");
2554          return (StringType) this.answer;
2555        }
2556
2557        public boolean hasAnswerStringType() { 
2558          return this != null && this.answer instanceof StringType;
2559        }
2560
2561        /**
2562         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2563         */
2564        public Coding getAnswerCoding() throws FHIRException { 
2565          if (this.answer == null)
2566            this.answer = new Coding();
2567          if (!(this.answer instanceof Coding))
2568            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.answer.getClass().getName()+" was encountered");
2569          return (Coding) this.answer;
2570        }
2571
2572        public boolean hasAnswerCoding() { 
2573          return this != null && this.answer instanceof Coding;
2574        }
2575
2576        /**
2577         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2578         */
2579        public Quantity getAnswerQuantity() throws FHIRException { 
2580          if (this.answer == null)
2581            this.answer = new Quantity();
2582          if (!(this.answer instanceof Quantity))
2583            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.answer.getClass().getName()+" was encountered");
2584          return (Quantity) this.answer;
2585        }
2586
2587        public boolean hasAnswerQuantity() { 
2588          return this != null && this.answer instanceof Quantity;
2589        }
2590
2591        /**
2592         * @return {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2593         */
2594        public Reference getAnswerReference() throws FHIRException { 
2595          if (this.answer == null)
2596            this.answer = new Reference();
2597          if (!(this.answer instanceof Reference))
2598            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.answer.getClass().getName()+" was encountered");
2599          return (Reference) this.answer;
2600        }
2601
2602        public boolean hasAnswerReference() { 
2603          return this != null && this.answer instanceof Reference;
2604        }
2605
2606        public boolean hasAnswer() { 
2607          return this.answer != null && !this.answer.isEmpty();
2608        }
2609
2610        /**
2611         * @param value {@link #answer} (A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.)
2612         */
2613        public QuestionnaireItemEnableWhenComponent setAnswer(DataType value) { 
2614          if (value != null && !(value instanceof BooleanType || value instanceof DecimalType || value instanceof IntegerType || value instanceof DateType || value instanceof DateTimeType || value instanceof TimeType || value instanceof StringType || value instanceof Coding || value instanceof Quantity || value instanceof Reference))
2615            throw new FHIRException("Not the right type for Questionnaire.item.enableWhen.answer[x]: "+value.fhirType());
2616          this.answer = value;
2617          return this;
2618        }
2619
2620        protected void listChildren(List<Property> children) {
2621          super.listChildren(children);
2622          children.add(new Property("question", "string", "The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.", 0, 1, question));
2623          children.add(new Property("operator", "code", "Specifies the criteria by which the question is enabled.", 0, 1, operator));
2624          children.add(new Property("answer[x]", "boolean|decimal|integer|date|dateTime|time|string|Coding|Quantity|Reference(Any)", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer));
2625        }
2626
2627        @Override
2628        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2629          switch (_hash) {
2630          case -1165870106: /*question*/  return new Property("question", "string", "The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.", 0, 1, question);
2631          case -500553564: /*operator*/  return new Property("operator", "code", "Specifies the criteria by which the question is enabled.", 0, 1, operator);
2632          case 1693524994: /*answer[x]*/  return new Property("answer[x]", "boolean|decimal|integer|date|dateTime|time|string|Coding|Quantity|Reference(Any)", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2633          case -1412808770: /*answer*/  return new Property("answer[x]", "boolean|decimal|integer|date|dateTime|time|string|Coding|Quantity|Reference(Any)", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2634          case 1194603146: /*answerBoolean*/  return new Property("answer[x]", "boolean", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2635          case -1622812237: /*answerDecimal*/  return new Property("answer[x]", "decimal", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2636          case -1207023712: /*answerInteger*/  return new Property("answer[x]", "integer", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2637          case 958960780: /*answerDate*/  return new Property("answer[x]", "date", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2638          case -1835321991: /*answerDateTime*/  return new Property("answer[x]", "dateTime", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2639          case 959444907: /*answerTime*/  return new Property("answer[x]", "time", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2640          case -1409727121: /*answerString*/  return new Property("answer[x]", "string", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2641          case -1872828216: /*answerCoding*/  return new Property("answer[x]", "Coding", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2642          case -618108311: /*answerQuantity*/  return new Property("answer[x]", "Quantity", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2643          case -1726221011: /*answerReference*/  return new Property("answer[x]", "Reference(Any)", "A value that the referenced question is tested using the specified operator in order for the item to be enabled.  If there are multiple answers, a match on any of the answers suffices.  If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.", 0, 1, answer);
2644          default: return super.getNamedProperty(_hash, _name, _checkValid);
2645          }
2646
2647        }
2648
2649      @Override
2650      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2651        switch (hash) {
2652        case -1165870106: /*question*/ return this.question == null ? new Base[0] : new Base[] {this.question}; // StringType
2653        case -500553564: /*operator*/ return this.operator == null ? new Base[0] : new Base[] {this.operator}; // Enumeration<QuestionnaireItemOperator>
2654        case -1412808770: /*answer*/ return this.answer == null ? new Base[0] : new Base[] {this.answer}; // DataType
2655        default: return super.getProperty(hash, name, checkValid);
2656        }
2657
2658      }
2659
2660      @Override
2661      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2662        switch (hash) {
2663        case -1165870106: // question
2664          this.question = TypeConvertor.castToString(value); // StringType
2665          return value;
2666        case -500553564: // operator
2667          value = new QuestionnaireItemOperatorEnumFactory().fromType(TypeConvertor.castToCode(value));
2668          this.operator = (Enumeration) value; // Enumeration<QuestionnaireItemOperator>
2669          return value;
2670        case -1412808770: // answer
2671          this.answer = TypeConvertor.castToType(value); // DataType
2672          return value;
2673        default: return super.setProperty(hash, name, value);
2674        }
2675
2676      }
2677
2678      @Override
2679      public Base setProperty(String name, Base value) throws FHIRException {
2680        if (name.equals("question")) {
2681          this.question = TypeConvertor.castToString(value); // StringType
2682        } else if (name.equals("operator")) {
2683          value = new QuestionnaireItemOperatorEnumFactory().fromType(TypeConvertor.castToCode(value));
2684          this.operator = (Enumeration) value; // Enumeration<QuestionnaireItemOperator>
2685        } else if (name.equals("answer[x]")) {
2686          this.answer = TypeConvertor.castToType(value); // DataType
2687        } else
2688          return super.setProperty(name, value);
2689        return value;
2690      }
2691
2692      @Override
2693      public Base makeProperty(int hash, String name) throws FHIRException {
2694        switch (hash) {
2695        case -1165870106:  return getQuestionElement();
2696        case -500553564:  return getOperatorElement();
2697        case 1693524994:  return getAnswer();
2698        case -1412808770:  return getAnswer();
2699        default: return super.makeProperty(hash, name);
2700        }
2701
2702      }
2703
2704      @Override
2705      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2706        switch (hash) {
2707        case -1165870106: /*question*/ return new String[] {"string"};
2708        case -500553564: /*operator*/ return new String[] {"code"};
2709        case -1412808770: /*answer*/ return new String[] {"boolean", "decimal", "integer", "date", "dateTime", "time", "string", "Coding", "Quantity", "Reference"};
2710        default: return super.getTypesForProperty(hash, name);
2711        }
2712
2713      }
2714
2715      @Override
2716      public Base addChild(String name) throws FHIRException {
2717        if (name.equals("question")) {
2718          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.enableWhen.question");
2719        }
2720        else if (name.equals("operator")) {
2721          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.enableWhen.operator");
2722        }
2723        else if (name.equals("answerBoolean")) {
2724          this.answer = new BooleanType();
2725          return this.answer;
2726        }
2727        else if (name.equals("answerDecimal")) {
2728          this.answer = new DecimalType();
2729          return this.answer;
2730        }
2731        else if (name.equals("answerInteger")) {
2732          this.answer = new IntegerType();
2733          return this.answer;
2734        }
2735        else if (name.equals("answerDate")) {
2736          this.answer = new DateType();
2737          return this.answer;
2738        }
2739        else if (name.equals("answerDateTime")) {
2740          this.answer = new DateTimeType();
2741          return this.answer;
2742        }
2743        else if (name.equals("answerTime")) {
2744          this.answer = new TimeType();
2745          return this.answer;
2746        }
2747        else if (name.equals("answerString")) {
2748          this.answer = new StringType();
2749          return this.answer;
2750        }
2751        else if (name.equals("answerCoding")) {
2752          this.answer = new Coding();
2753          return this.answer;
2754        }
2755        else if (name.equals("answerQuantity")) {
2756          this.answer = new Quantity();
2757          return this.answer;
2758        }
2759        else if (name.equals("answerReference")) {
2760          this.answer = new Reference();
2761          return this.answer;
2762        }
2763        else
2764          return super.addChild(name);
2765      }
2766
2767      public QuestionnaireItemEnableWhenComponent copy() {
2768        QuestionnaireItemEnableWhenComponent dst = new QuestionnaireItemEnableWhenComponent();
2769        copyValues(dst);
2770        return dst;
2771      }
2772
2773      public void copyValues(QuestionnaireItemEnableWhenComponent dst) {
2774        super.copyValues(dst);
2775        dst.question = question == null ? null : question.copy();
2776        dst.operator = operator == null ? null : operator.copy();
2777        dst.answer = answer == null ? null : answer.copy();
2778      }
2779
2780      @Override
2781      public boolean equalsDeep(Base other_) {
2782        if (!super.equalsDeep(other_))
2783          return false;
2784        if (!(other_ instanceof QuestionnaireItemEnableWhenComponent))
2785          return false;
2786        QuestionnaireItemEnableWhenComponent o = (QuestionnaireItemEnableWhenComponent) other_;
2787        return compareDeep(question, o.question, true) && compareDeep(operator, o.operator, true) && compareDeep(answer, o.answer, true)
2788          ;
2789      }
2790
2791      @Override
2792      public boolean equalsShallow(Base other_) {
2793        if (!super.equalsShallow(other_))
2794          return false;
2795        if (!(other_ instanceof QuestionnaireItemEnableWhenComponent))
2796          return false;
2797        QuestionnaireItemEnableWhenComponent o = (QuestionnaireItemEnableWhenComponent) other_;
2798        return compareValues(question, o.question, true) && compareValues(operator, o.operator, true);
2799      }
2800
2801      public boolean isEmpty() {
2802        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(question, operator, answer
2803          );
2804      }
2805
2806  public String fhirType() {
2807    return "Questionnaire.item.enableWhen";
2808
2809  }
2810
2811  }
2812
2813    @Block()
2814    public static class QuestionnaireItemAnswerOptionComponent extends BackboneElement implements IBaseBackboneElement {
2815        /**
2816         * A potential answer that's allowed as the answer to this question.
2817         */
2818        @Child(name = "value", type = {IntegerType.class, DateType.class, TimeType.class, StringType.class, Coding.class, Reference.class}, order=1, min=1, max=1, modifier=false, summary=false)
2819        @Description(shortDefinition="Answer value", formalDefinition="A potential answer that's allowed as the answer to this question." )
2820        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers")
2821        protected DataType value;
2822
2823        /**
2824         * Indicates whether the answer value is selected when the list of possible answers is initially shown.
2825         */
2826        @Child(name = "initialSelected", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false)
2827        @Description(shortDefinition="Whether option is selected by default", formalDefinition="Indicates whether the answer value is selected when the list of possible answers is initially shown." )
2828        protected BooleanType initialSelected;
2829
2830        private static final long serialVersionUID = -504460934L;
2831
2832    /**
2833     * Constructor
2834     */
2835      public QuestionnaireItemAnswerOptionComponent() {
2836        super();
2837      }
2838
2839    /**
2840     * Constructor
2841     */
2842      public QuestionnaireItemAnswerOptionComponent(DataType value) {
2843        super();
2844        this.setValue(value);
2845      }
2846
2847        /**
2848         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2849         */
2850        public DataType getValue() { 
2851          return this.value;
2852        }
2853
2854        /**
2855         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2856         */
2857        public IntegerType getValueIntegerType() throws FHIRException { 
2858          if (this.value == null)
2859            this.value = new IntegerType();
2860          if (!(this.value instanceof IntegerType))
2861            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
2862          return (IntegerType) this.value;
2863        }
2864
2865        public boolean hasValueIntegerType() { 
2866          return this != null && this.value instanceof IntegerType;
2867        }
2868
2869        /**
2870         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2871         */
2872        public DateType getValueDateType() throws FHIRException { 
2873          if (this.value == null)
2874            this.value = new DateType();
2875          if (!(this.value instanceof DateType))
2876            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered");
2877          return (DateType) this.value;
2878        }
2879
2880        public boolean hasValueDateType() { 
2881          return this != null && this.value instanceof DateType;
2882        }
2883
2884        /**
2885         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2886         */
2887        public TimeType getValueTimeType() throws FHIRException { 
2888          if (this.value == null)
2889            this.value = new TimeType();
2890          if (!(this.value instanceof TimeType))
2891            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered");
2892          return (TimeType) this.value;
2893        }
2894
2895        public boolean hasValueTimeType() { 
2896          return this != null && this.value instanceof TimeType;
2897        }
2898
2899        /**
2900         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2901         */
2902        public StringType getValueStringType() throws FHIRException { 
2903          if (this.value == null)
2904            this.value = new StringType();
2905          if (!(this.value instanceof StringType))
2906            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
2907          return (StringType) this.value;
2908        }
2909
2910        public boolean hasValueStringType() { 
2911          return this != null && this.value instanceof StringType;
2912        }
2913
2914        /**
2915         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2916         */
2917        public Coding getValueCoding() throws FHIRException { 
2918          if (this.value == null)
2919            this.value = new Coding();
2920          if (!(this.value instanceof Coding))
2921            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
2922          return (Coding) this.value;
2923        }
2924
2925        public boolean hasValueCoding() { 
2926          return this != null && this.value instanceof Coding;
2927        }
2928
2929        /**
2930         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2931         */
2932        public Reference getValueReference() throws FHIRException { 
2933          if (this.value == null)
2934            this.value = new Reference();
2935          if (!(this.value instanceof Reference))
2936            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered");
2937          return (Reference) this.value;
2938        }
2939
2940        public boolean hasValueReference() { 
2941          return this != null && this.value instanceof Reference;
2942        }
2943
2944        public boolean hasValue() { 
2945          return this.value != null && !this.value.isEmpty();
2946        }
2947
2948        /**
2949         * @param value {@link #value} (A potential answer that's allowed as the answer to this question.)
2950         */
2951        public QuestionnaireItemAnswerOptionComponent setValue(DataType value) { 
2952          if (value != null && !(value instanceof IntegerType || value instanceof DateType || value instanceof TimeType || value instanceof StringType || value instanceof Coding || value instanceof Reference))
2953            throw new FHIRException("Not the right type for Questionnaire.item.answerOption.value[x]: "+value.fhirType());
2954          this.value = value;
2955          return this;
2956        }
2957
2958        /**
2959         * @return {@link #initialSelected} (Indicates whether the answer value is selected when the list of possible answers is initially shown.). This is the underlying object with id, value and extensions. The accessor "getInitialSelected" gives direct access to the value
2960         */
2961        public BooleanType getInitialSelectedElement() { 
2962          if (this.initialSelected == null)
2963            if (Configuration.errorOnAutoCreate())
2964              throw new Error("Attempt to auto-create QuestionnaireItemAnswerOptionComponent.initialSelected");
2965            else if (Configuration.doAutoCreate())
2966              this.initialSelected = new BooleanType(); // bb
2967          return this.initialSelected;
2968        }
2969
2970        public boolean hasInitialSelectedElement() { 
2971          return this.initialSelected != null && !this.initialSelected.isEmpty();
2972        }
2973
2974        public boolean hasInitialSelected() { 
2975          return this.initialSelected != null && !this.initialSelected.isEmpty();
2976        }
2977
2978        /**
2979         * @param value {@link #initialSelected} (Indicates whether the answer value is selected when the list of possible answers is initially shown.). This is the underlying object with id, value and extensions. The accessor "getInitialSelected" gives direct access to the value
2980         */
2981        public QuestionnaireItemAnswerOptionComponent setInitialSelectedElement(BooleanType value) { 
2982          this.initialSelected = value;
2983          return this;
2984        }
2985
2986        /**
2987         * @return Indicates whether the answer value is selected when the list of possible answers is initially shown.
2988         */
2989        public boolean getInitialSelected() { 
2990          return this.initialSelected == null || this.initialSelected.isEmpty() ? false : this.initialSelected.getValue();
2991        }
2992
2993        /**
2994         * @param value Indicates whether the answer value is selected when the list of possible answers is initially shown.
2995         */
2996        public QuestionnaireItemAnswerOptionComponent setInitialSelected(boolean value) { 
2997            if (this.initialSelected == null)
2998              this.initialSelected = new BooleanType();
2999            this.initialSelected.setValue(value);
3000          return this;
3001        }
3002
3003        protected void listChildren(List<Property> children) {
3004          super.listChildren(children);
3005          children.add(new Property("value[x]", "integer|date|time|string|Coding|Reference(Any)", "A potential answer that's allowed as the answer to this question.", 0, 1, value));
3006          children.add(new Property("initialSelected", "boolean", "Indicates whether the answer value is selected when the list of possible answers is initially shown.", 0, 1, initialSelected));
3007        }
3008
3009        @Override
3010        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3011          switch (_hash) {
3012          case -1410166417: /*value[x]*/  return new Property("value[x]", "integer|date|time|string|Coding|Reference(Any)", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3013          case 111972721: /*value*/  return new Property("value[x]", "integer|date|time|string|Coding|Reference(Any)", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3014          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3015          case -766192449: /*valueDate*/  return new Property("value[x]", "date", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3016          case -765708322: /*valueTime*/  return new Property("value[x]", "time", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3017          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3018          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3019          case 1755241690: /*valueReference*/  return new Property("value[x]", "Reference(Any)", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3020          case -1310184961: /*initialSelected*/  return new Property("initialSelected", "boolean", "Indicates whether the answer value is selected when the list of possible answers is initially shown.", 0, 1, initialSelected);
3021          default: return super.getNamedProperty(_hash, _name, _checkValid);
3022          }
3023
3024        }
3025
3026      @Override
3027      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3028        switch (hash) {
3029        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3030        case -1310184961: /*initialSelected*/ return this.initialSelected == null ? new Base[0] : new Base[] {this.initialSelected}; // BooleanType
3031        default: return super.getProperty(hash, name, checkValid);
3032        }
3033
3034      }
3035
3036      @Override
3037      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3038        switch (hash) {
3039        case 111972721: // value
3040          this.value = TypeConvertor.castToType(value); // DataType
3041          return value;
3042        case -1310184961: // initialSelected
3043          this.initialSelected = TypeConvertor.castToBoolean(value); // BooleanType
3044          return value;
3045        default: return super.setProperty(hash, name, value);
3046        }
3047
3048      }
3049
3050      @Override
3051      public Base setProperty(String name, Base value) throws FHIRException {
3052        if (name.equals("value[x]")) {
3053          this.value = TypeConvertor.castToType(value); // DataType
3054        } else if (name.equals("initialSelected")) {
3055          this.initialSelected = TypeConvertor.castToBoolean(value); // BooleanType
3056        } else
3057          return super.setProperty(name, value);
3058        return value;
3059      }
3060
3061      @Override
3062      public Base makeProperty(int hash, String name) throws FHIRException {
3063        switch (hash) {
3064        case -1410166417:  return getValue();
3065        case 111972721:  return getValue();
3066        case -1310184961:  return getInitialSelectedElement();
3067        default: return super.makeProperty(hash, name);
3068        }
3069
3070      }
3071
3072      @Override
3073      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3074        switch (hash) {
3075        case 111972721: /*value*/ return new String[] {"integer", "date", "time", "string", "Coding", "Reference"};
3076        case -1310184961: /*initialSelected*/ return new String[] {"boolean"};
3077        default: return super.getTypesForProperty(hash, name);
3078        }
3079
3080      }
3081
3082      @Override
3083      public Base addChild(String name) throws FHIRException {
3084        if (name.equals("valueInteger")) {
3085          this.value = new IntegerType();
3086          return this.value;
3087        }
3088        else if (name.equals("valueDate")) {
3089          this.value = new DateType();
3090          return this.value;
3091        }
3092        else if (name.equals("valueTime")) {
3093          this.value = new TimeType();
3094          return this.value;
3095        }
3096        else if (name.equals("valueString")) {
3097          this.value = new StringType();
3098          return this.value;
3099        }
3100        else if (name.equals("valueCoding")) {
3101          this.value = new Coding();
3102          return this.value;
3103        }
3104        else if (name.equals("valueReference")) {
3105          this.value = new Reference();
3106          return this.value;
3107        }
3108        else if (name.equals("initialSelected")) {
3109          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.answerOption.initialSelected");
3110        }
3111        else
3112          return super.addChild(name);
3113      }
3114
3115      public QuestionnaireItemAnswerOptionComponent copy() {
3116        QuestionnaireItemAnswerOptionComponent dst = new QuestionnaireItemAnswerOptionComponent();
3117        copyValues(dst);
3118        return dst;
3119      }
3120
3121      public void copyValues(QuestionnaireItemAnswerOptionComponent dst) {
3122        super.copyValues(dst);
3123        dst.value = value == null ? null : value.copy();
3124        dst.initialSelected = initialSelected == null ? null : initialSelected.copy();
3125      }
3126
3127      @Override
3128      public boolean equalsDeep(Base other_) {
3129        if (!super.equalsDeep(other_))
3130          return false;
3131        if (!(other_ instanceof QuestionnaireItemAnswerOptionComponent))
3132          return false;
3133        QuestionnaireItemAnswerOptionComponent o = (QuestionnaireItemAnswerOptionComponent) other_;
3134        return compareDeep(value, o.value, true) && compareDeep(initialSelected, o.initialSelected, true)
3135          ;
3136      }
3137
3138      @Override
3139      public boolean equalsShallow(Base other_) {
3140        if (!super.equalsShallow(other_))
3141          return false;
3142        if (!(other_ instanceof QuestionnaireItemAnswerOptionComponent))
3143          return false;
3144        QuestionnaireItemAnswerOptionComponent o = (QuestionnaireItemAnswerOptionComponent) other_;
3145        return compareValues(initialSelected, o.initialSelected, true);
3146      }
3147
3148      public boolean isEmpty() {
3149        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value, initialSelected);
3150      }
3151
3152  public String fhirType() {
3153    return "Questionnaire.item.answerOption";
3154
3155  }
3156
3157  }
3158
3159    @Block()
3160    public static class QuestionnaireItemInitialComponent extends BackboneElement implements IBaseBackboneElement {
3161        /**
3162         * The actual value to for an initial answer.
3163         */
3164        @Child(name = "value", type = {BooleanType.class, DecimalType.class, IntegerType.class, DateType.class, DateTimeType.class, TimeType.class, StringType.class, UriType.class, Attachment.class, Coding.class, Quantity.class, Reference.class}, order=1, min=1, max=1, modifier=false, summary=false)
3165        @Description(shortDefinition="Actual value for initializing the question", formalDefinition="The actual value to for an initial answer." )
3166        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers")
3167        protected DataType value;
3168
3169        private static final long serialVersionUID = -1135414639L;
3170
3171    /**
3172     * Constructor
3173     */
3174      public QuestionnaireItemInitialComponent() {
3175        super();
3176      }
3177
3178    /**
3179     * Constructor
3180     */
3181      public QuestionnaireItemInitialComponent(DataType value) {
3182        super();
3183        this.setValue(value);
3184      }
3185
3186        /**
3187         * @return {@link #value} (The actual value to for an initial answer.)
3188         */
3189        public DataType getValue() { 
3190          return this.value;
3191        }
3192
3193        /**
3194         * @return {@link #value} (The actual value to for an initial answer.)
3195         */
3196        public BooleanType getValueBooleanType() throws FHIRException { 
3197          if (this.value == null)
3198            this.value = new BooleanType();
3199          if (!(this.value instanceof BooleanType))
3200            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
3201          return (BooleanType) this.value;
3202        }
3203
3204        public boolean hasValueBooleanType() { 
3205          return this != null && this.value instanceof BooleanType;
3206        }
3207
3208        /**
3209         * @return {@link #value} (The actual value to for an initial answer.)
3210         */
3211        public DecimalType getValueDecimalType() throws FHIRException { 
3212          if (this.value == null)
3213            this.value = new DecimalType();
3214          if (!(this.value instanceof DecimalType))
3215            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered");
3216          return (DecimalType) this.value;
3217        }
3218
3219        public boolean hasValueDecimalType() { 
3220          return this != null && this.value instanceof DecimalType;
3221        }
3222
3223        /**
3224         * @return {@link #value} (The actual value to for an initial answer.)
3225         */
3226        public IntegerType getValueIntegerType() throws FHIRException { 
3227          if (this.value == null)
3228            this.value = new IntegerType();
3229          if (!(this.value instanceof IntegerType))
3230            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
3231          return (IntegerType) this.value;
3232        }
3233
3234        public boolean hasValueIntegerType() { 
3235          return this != null && this.value instanceof IntegerType;
3236        }
3237
3238        /**
3239         * @return {@link #value} (The actual value to for an initial answer.)
3240         */
3241        public DateType getValueDateType() throws FHIRException { 
3242          if (this.value == null)
3243            this.value = new DateType();
3244          if (!(this.value instanceof DateType))
3245            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered");
3246          return (DateType) this.value;
3247        }
3248
3249        public boolean hasValueDateType() { 
3250          return this != null && this.value instanceof DateType;
3251        }
3252
3253        /**
3254         * @return {@link #value} (The actual value to for an initial answer.)
3255         */
3256        public DateTimeType getValueDateTimeType() throws FHIRException { 
3257          if (this.value == null)
3258            this.value = new DateTimeType();
3259          if (!(this.value instanceof DateTimeType))
3260            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered");
3261          return (DateTimeType) this.value;
3262        }
3263
3264        public boolean hasValueDateTimeType() { 
3265          return this != null && this.value instanceof DateTimeType;
3266        }
3267
3268        /**
3269         * @return {@link #value} (The actual value to for an initial answer.)
3270         */
3271        public TimeType getValueTimeType() throws FHIRException { 
3272          if (this.value == null)
3273            this.value = new TimeType();
3274          if (!(this.value instanceof TimeType))
3275            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered");
3276          return (TimeType) this.value;
3277        }
3278
3279        public boolean hasValueTimeType() { 
3280          return this != null && this.value instanceof TimeType;
3281        }
3282
3283        /**
3284         * @return {@link #value} (The actual value to for an initial answer.)
3285         */
3286        public StringType getValueStringType() throws FHIRException { 
3287          if (this.value == null)
3288            this.value = new StringType();
3289          if (!(this.value instanceof StringType))
3290            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
3291          return (StringType) this.value;
3292        }
3293
3294        public boolean hasValueStringType() { 
3295          return this != null && this.value instanceof StringType;
3296        }
3297
3298        /**
3299         * @return {@link #value} (The actual value to for an initial answer.)
3300         */
3301        public UriType getValueUriType() throws FHIRException { 
3302          if (this.value == null)
3303            this.value = new UriType();
3304          if (!(this.value instanceof UriType))
3305            throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.value.getClass().getName()+" was encountered");
3306          return (UriType) this.value;
3307        }
3308
3309        public boolean hasValueUriType() { 
3310          return this != null && this.value instanceof UriType;
3311        }
3312
3313        /**
3314         * @return {@link #value} (The actual value to for an initial answer.)
3315         */
3316        public Attachment getValueAttachment() throws FHIRException { 
3317          if (this.value == null)
3318            this.value = new Attachment();
3319          if (!(this.value instanceof Attachment))
3320            throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.value.getClass().getName()+" was encountered");
3321          return (Attachment) this.value;
3322        }
3323
3324        public boolean hasValueAttachment() { 
3325          return this != null && this.value instanceof Attachment;
3326        }
3327
3328        /**
3329         * @return {@link #value} (The actual value to for an initial answer.)
3330         */
3331        public Coding getValueCoding() throws FHIRException { 
3332          if (this.value == null)
3333            this.value = new Coding();
3334          if (!(this.value instanceof Coding))
3335            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
3336          return (Coding) this.value;
3337        }
3338
3339        public boolean hasValueCoding() { 
3340          return this != null && this.value instanceof Coding;
3341        }
3342
3343        /**
3344         * @return {@link #value} (The actual value to for an initial answer.)
3345         */
3346        public Quantity getValueQuantity() throws FHIRException { 
3347          if (this.value == null)
3348            this.value = new Quantity();
3349          if (!(this.value instanceof Quantity))
3350            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered");
3351          return (Quantity) this.value;
3352        }
3353
3354        public boolean hasValueQuantity() { 
3355          return this != null && this.value instanceof Quantity;
3356        }
3357
3358        /**
3359         * @return {@link #value} (The actual value to for an initial answer.)
3360         */
3361        public Reference getValueReference() throws FHIRException { 
3362          if (this.value == null)
3363            this.value = new Reference();
3364          if (!(this.value instanceof Reference))
3365            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered");
3366          return (Reference) this.value;
3367        }
3368
3369        public boolean hasValueReference() { 
3370          return this != null && this.value instanceof Reference;
3371        }
3372
3373        public boolean hasValue() { 
3374          return this.value != null && !this.value.isEmpty();
3375        }
3376
3377        /**
3378         * @param value {@link #value} (The actual value to for an initial answer.)
3379         */
3380        public QuestionnaireItemInitialComponent setValue(DataType value) { 
3381          if (value != null && !(value instanceof BooleanType || value instanceof DecimalType || value instanceof IntegerType || value instanceof DateType || value instanceof DateTimeType || value instanceof TimeType || value instanceof StringType || value instanceof UriType || value instanceof Attachment || value instanceof Coding || value instanceof Quantity || value instanceof Reference))
3382            throw new FHIRException("Not the right type for Questionnaire.item.initial.value[x]: "+value.fhirType());
3383          this.value = value;
3384          return this;
3385        }
3386
3387        protected void listChildren(List<Property> children) {
3388          super.listChildren(children);
3389          children.add(new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The actual value to for an initial answer.", 0, 1, value));
3390        }
3391
3392        @Override
3393        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3394          switch (_hash) {
3395          case -1410166417: /*value[x]*/  return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The actual value to for an initial answer.", 0, 1, value);
3396          case 111972721: /*value*/  return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The actual value to for an initial answer.", 0, 1, value);
3397          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "The actual value to for an initial answer.", 0, 1, value);
3398          case -2083993440: /*valueDecimal*/  return new Property("value[x]", "decimal", "The actual value to for an initial answer.", 0, 1, value);
3399          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "The actual value to for an initial answer.", 0, 1, value);
3400          case -766192449: /*valueDate*/  return new Property("value[x]", "date", "The actual value to for an initial answer.", 0, 1, value);
3401          case 1047929900: /*valueDateTime*/  return new Property("value[x]", "dateTime", "The actual value to for an initial answer.", 0, 1, value);
3402          case -765708322: /*valueTime*/  return new Property("value[x]", "time", "The actual value to for an initial answer.", 0, 1, value);
3403          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "The actual value to for an initial answer.", 0, 1, value);
3404          case -1410172357: /*valueUri*/  return new Property("value[x]", "uri", "The actual value to for an initial answer.", 0, 1, value);
3405          case -475566732: /*valueAttachment*/  return new Property("value[x]", "Attachment", "The actual value to for an initial answer.", 0, 1, value);
3406          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "The actual value to for an initial answer.", 0, 1, value);
3407          case -2029823716: /*valueQuantity*/  return new Property("value[x]", "Quantity", "The actual value to for an initial answer.", 0, 1, value);
3408          case 1755241690: /*valueReference*/  return new Property("value[x]", "Reference(Any)", "The actual value to for an initial answer.", 0, 1, value);
3409          default: return super.getNamedProperty(_hash, _name, _checkValid);
3410          }
3411
3412        }
3413
3414      @Override
3415      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3416        switch (hash) {
3417        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3418        default: return super.getProperty(hash, name, checkValid);
3419        }
3420
3421      }
3422
3423      @Override
3424      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3425        switch (hash) {
3426        case 111972721: // value
3427          this.value = TypeConvertor.castToType(value); // DataType
3428          return value;
3429        default: return super.setProperty(hash, name, value);
3430        }
3431
3432      }
3433
3434      @Override
3435      public Base setProperty(String name, Base value) throws FHIRException {
3436        if (name.equals("value[x]")) {
3437          this.value = TypeConvertor.castToType(value); // DataType
3438        } else
3439          return super.setProperty(name, value);
3440        return value;
3441      }
3442
3443      @Override
3444      public Base makeProperty(int hash, String name) throws FHIRException {
3445        switch (hash) {
3446        case -1410166417:  return getValue();
3447        case 111972721:  return getValue();
3448        default: return super.makeProperty(hash, name);
3449        }
3450
3451      }
3452
3453      @Override
3454      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3455        switch (hash) {
3456        case 111972721: /*value*/ return new String[] {"boolean", "decimal", "integer", "date", "dateTime", "time", "string", "uri", "Attachment", "Coding", "Quantity", "Reference"};
3457        default: return super.getTypesForProperty(hash, name);
3458        }
3459
3460      }
3461
3462      @Override
3463      public Base addChild(String name) throws FHIRException {
3464        if (name.equals("valueBoolean")) {
3465          this.value = new BooleanType();
3466          return this.value;
3467        }
3468        else if (name.equals("valueDecimal")) {
3469          this.value = new DecimalType();
3470          return this.value;
3471        }
3472        else if (name.equals("valueInteger")) {
3473          this.value = new IntegerType();
3474          return this.value;
3475        }
3476        else if (name.equals("valueDate")) {
3477          this.value = new DateType();
3478          return this.value;
3479        }
3480        else if (name.equals("valueDateTime")) {
3481          this.value = new DateTimeType();
3482          return this.value;
3483        }
3484        else if (name.equals("valueTime")) {
3485          this.value = new TimeType();
3486          return this.value;
3487        }
3488        else if (name.equals("valueString")) {
3489          this.value = new StringType();
3490          return this.value;
3491        }
3492        else if (name.equals("valueUri")) {
3493          this.value = new UriType();
3494          return this.value;
3495        }
3496        else if (name.equals("valueAttachment")) {
3497          this.value = new Attachment();
3498          return this.value;
3499        }
3500        else if (name.equals("valueCoding")) {
3501          this.value = new Coding();
3502          return this.value;
3503        }
3504        else if (name.equals("valueQuantity")) {
3505          this.value = new Quantity();
3506          return this.value;
3507        }
3508        else if (name.equals("valueReference")) {
3509          this.value = new Reference();
3510          return this.value;
3511        }
3512        else
3513          return super.addChild(name);
3514      }
3515
3516      public QuestionnaireItemInitialComponent copy() {
3517        QuestionnaireItemInitialComponent dst = new QuestionnaireItemInitialComponent();
3518        copyValues(dst);
3519        return dst;
3520      }
3521
3522      public void copyValues(QuestionnaireItemInitialComponent dst) {
3523        super.copyValues(dst);
3524        dst.value = value == null ? null : value.copy();
3525      }
3526
3527      @Override
3528      public boolean equalsDeep(Base other_) {
3529        if (!super.equalsDeep(other_))
3530          return false;
3531        if (!(other_ instanceof QuestionnaireItemInitialComponent))
3532          return false;
3533        QuestionnaireItemInitialComponent o = (QuestionnaireItemInitialComponent) other_;
3534        return compareDeep(value, o.value, true);
3535      }
3536
3537      @Override
3538      public boolean equalsShallow(Base other_) {
3539        if (!super.equalsShallow(other_))
3540          return false;
3541        if (!(other_ instanceof QuestionnaireItemInitialComponent))
3542          return false;
3543        QuestionnaireItemInitialComponent o = (QuestionnaireItemInitialComponent) other_;
3544        return true;
3545      }
3546
3547      public boolean isEmpty() {
3548        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value);
3549      }
3550
3551  public String fhirType() {
3552    return "Questionnaire.item.initial";
3553
3554  }
3555
3556  }
3557
3558    /**
3559     * An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.
3560     */
3561    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
3562    @Description(shortDefinition="Canonical identifier for this questionnaire, represented as an absolute URI (globally unique)", formalDefinition="An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers." )
3563    protected UriType url;
3564
3565    /**
3566     * A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance.
3567     */
3568    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3569    @Description(shortDefinition="Business identifier for questionnaire", formalDefinition="A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance." )
3570    protected List<Identifier> identifier;
3571
3572    /**
3573     * The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
3574     */
3575    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
3576    @Description(shortDefinition="Business version of the questionnaire", formalDefinition="The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence." )
3577    protected StringType version;
3578
3579    /**
3580     * Indicates the mechanism used to compare versions to determine which is more current.
3581     */
3582    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
3583    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which is more current." )
3584    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
3585    protected DataType versionAlgorithm;
3586
3587    /**
3588     * A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.
3589     */
3590    @Child(name = "name", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
3591    @Description(shortDefinition="Name for this questionnaire (computer friendly)", formalDefinition="A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
3592    protected StringType name;
3593
3594    /**
3595     * A short, descriptive, user-friendly title for the questionnaire.
3596     */
3597    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
3598    @Description(shortDefinition="Name for this questionnaire (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the questionnaire." )
3599    protected StringType title;
3600
3601    /**
3602     * The URL of a Questionnaire that this Questionnaire is based on.
3603     */
3604    @Child(name = "derivedFrom", type = {CanonicalType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3605    @Description(shortDefinition="Based on Questionnaire", formalDefinition="The URL of a Questionnaire that this Questionnaire is based on." )
3606    protected List<CanonicalType> derivedFrom;
3607
3608    /**
3609     * The current state of this questionnaire.
3610     */
3611    @Child(name = "status", type = {CodeType.class}, order=7, min=1, max=1, modifier=true, summary=true)
3612    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The current state of this questionnaire." )
3613    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
3614    protected Enumeration<PublicationStatus> status;
3615
3616    /**
3617     * A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.
3618     */
3619    @Child(name = "experimental", type = {BooleanType.class}, order=8, min=0, max=1, modifier=false, summary=true)
3620    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage." )
3621    protected BooleanType experimental;
3622
3623    /**
3624     * The types of subjects that can be the subject of responses created for the questionnaire.
3625     */
3626    @Child(name = "subjectType", type = {CodeType.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3627    @Description(shortDefinition="Resource that can be subject of QuestionnaireResponse", formalDefinition="The types of subjects that can be the subject of responses created for the questionnaire." )
3628    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
3629    protected List<CodeType> subjectType;
3630
3631    /**
3632     * The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.
3633     */
3634    @Child(name = "date", type = {DateTimeType.class}, order=10, min=0, max=1, modifier=false, summary=true)
3635    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes." )
3636    protected DateTimeType date;
3637
3638    /**
3639     * The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.
3640     */
3641    @Child(name = "publisher", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=true)
3642    @Description(shortDefinition="Name of the publisher/steward (organization or individual)", formalDefinition="The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire." )
3643    protected StringType publisher;
3644
3645    /**
3646     * Contact details to assist a user in finding and communicating with the publisher.
3647     */
3648    @Child(name = "contact", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3649    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
3650    protected List<ContactDetail> contact;
3651
3652    /**
3653     * A free text natural language description of the questionnaire from a consumer's perspective.
3654     */
3655    @Child(name = "description", type = {MarkdownType.class}, order=13, min=0, max=1, modifier=false, summary=true)
3656    @Description(shortDefinition="Natural language description of the questionnaire", formalDefinition="A free text natural language description of the questionnaire from a consumer's perspective." )
3657    protected MarkdownType description;
3658
3659    /**
3660     * The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate questionnaires.
3661     */
3662    @Child(name = "useContext", type = {UsageContext.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3663    @Description(shortDefinition="The context that the content is intended to support", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate questionnaires." )
3664    protected List<UsageContext> useContext;
3665
3666    /**
3667     * A legal or geographic region in which the questionnaire is intended to be used.
3668     */
3669    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3670    @Description(shortDefinition="Intended jurisdiction for questionnaire (if applicable)", formalDefinition="A legal or geographic region in which the questionnaire is intended to be used." )
3671    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
3672    protected List<CodeableConcept> jurisdiction;
3673
3674    /**
3675     * Explanation of why this questionnaire is needed and why it has been designed as it has.
3676     */
3677    @Child(name = "purpose", type = {MarkdownType.class}, order=16, min=0, max=1, modifier=false, summary=false)
3678    @Description(shortDefinition="Why this questionnaire is defined", formalDefinition="Explanation of why this questionnaire is needed and why it has been designed as it has." )
3679    protected MarkdownType purpose;
3680
3681    /**
3682     * A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.
3683     */
3684    @Child(name = "copyright", type = {MarkdownType.class}, order=17, min=0, max=1, modifier=false, summary=false)
3685    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire." )
3686    protected MarkdownType copyright;
3687
3688    /**
3689     * A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
3690     */
3691    @Child(name = "copyrightLabel", type = {StringType.class}, order=18, min=0, max=1, modifier=false, summary=false)
3692    @Description(shortDefinition="Copyright holder and year(s)", formalDefinition="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')." )
3693    protected StringType copyrightLabel;
3694
3695    /**
3696     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
3697     */
3698    @Child(name = "approvalDate", type = {DateType.class}, order=19, min=0, max=1, modifier=false, summary=false)
3699    @Description(shortDefinition="When the questionnaire was approved by publisher", formalDefinition="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage." )
3700    protected DateType approvalDate;
3701
3702    /**
3703     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
3704     */
3705    @Child(name = "lastReviewDate", type = {DateType.class}, order=20, min=0, max=1, modifier=false, summary=false)
3706    @Description(shortDefinition="When the questionnaire was last reviewed by the publisher", formalDefinition="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date." )
3707    protected DateType lastReviewDate;
3708
3709    /**
3710     * The period during which the questionnaire content was or is planned to be in active use.
3711     */
3712    @Child(name = "effectivePeriod", type = {Period.class}, order=21, min=0, max=1, modifier=false, summary=true)
3713    @Description(shortDefinition="When the questionnaire is expected to be used", formalDefinition="The period during which the questionnaire content was or is planned to be in active use." )
3714    protected Period effectivePeriod;
3715
3716    /**
3717     * An identifier for this collection of questions in a particular terminology such as LOINC.
3718     */
3719    @Child(name = "code", type = {Coding.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3720    @Description(shortDefinition="Concept that represents the overall questionnaire", formalDefinition="An identifier for this collection of questions in a particular terminology such as LOINC." )
3721    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-questions")
3722    protected List<Coding> code;
3723
3724    /**
3725     * A particular question, question grouping or display text that is part of the questionnaire.
3726     */
3727    @Child(name = "item", type = {}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3728    @Description(shortDefinition="Questions and sections within the Questionnaire", formalDefinition="A particular question, question grouping or display text that is part of the questionnaire." )
3729    protected List<QuestionnaireItemComponent> item;
3730
3731    private static final long serialVersionUID = -863684953L;
3732
3733  /**
3734   * Constructor
3735   */
3736    public Questionnaire() {
3737      super();
3738    }
3739
3740  /**
3741   * Constructor
3742   */
3743    public Questionnaire(PublicationStatus status) {
3744      super();
3745      this.setStatus(status);
3746    }
3747
3748    /**
3749     * @return {@link #url} (An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
3750     */
3751    public UriType getUrlElement() { 
3752      if (this.url == null)
3753        if (Configuration.errorOnAutoCreate())
3754          throw new Error("Attempt to auto-create Questionnaire.url");
3755        else if (Configuration.doAutoCreate())
3756          this.url = new UriType(); // bb
3757      return this.url;
3758    }
3759
3760    public boolean hasUrlElement() { 
3761      return this.url != null && !this.url.isEmpty();
3762    }
3763
3764    public boolean hasUrl() { 
3765      return this.url != null && !this.url.isEmpty();
3766    }
3767
3768    /**
3769     * @param value {@link #url} (An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
3770     */
3771    public Questionnaire setUrlElement(UriType value) { 
3772      this.url = value;
3773      return this;
3774    }
3775
3776    /**
3777     * @return An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.
3778     */
3779    public String getUrl() { 
3780      return this.url == null ? null : this.url.getValue();
3781    }
3782
3783    /**
3784     * @param value An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.
3785     */
3786    public Questionnaire setUrl(String value) { 
3787      if (Utilities.noString(value))
3788        this.url = null;
3789      else {
3790        if (this.url == null)
3791          this.url = new UriType();
3792        this.url.setValue(value);
3793      }
3794      return this;
3795    }
3796
3797    /**
3798     * @return {@link #identifier} (A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance.)
3799     */
3800    public List<Identifier> getIdentifier() { 
3801      if (this.identifier == null)
3802        this.identifier = new ArrayList<Identifier>();
3803      return this.identifier;
3804    }
3805
3806    /**
3807     * @return Returns a reference to <code>this</code> for easy method chaining
3808     */
3809    public Questionnaire setIdentifier(List<Identifier> theIdentifier) { 
3810      this.identifier = theIdentifier;
3811      return this;
3812    }
3813
3814    public boolean hasIdentifier() { 
3815      if (this.identifier == null)
3816        return false;
3817      for (Identifier item : this.identifier)
3818        if (!item.isEmpty())
3819          return true;
3820      return false;
3821    }
3822
3823    public Identifier addIdentifier() { //3
3824      Identifier t = new Identifier();
3825      if (this.identifier == null)
3826        this.identifier = new ArrayList<Identifier>();
3827      this.identifier.add(t);
3828      return t;
3829    }
3830
3831    public Questionnaire addIdentifier(Identifier t) { //3
3832      if (t == null)
3833        return this;
3834      if (this.identifier == null)
3835        this.identifier = new ArrayList<Identifier>();
3836      this.identifier.add(t);
3837      return this;
3838    }
3839
3840    /**
3841     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
3842     */
3843    public Identifier getIdentifierFirstRep() { 
3844      if (getIdentifier().isEmpty()) {
3845        addIdentifier();
3846      }
3847      return getIdentifier().get(0);
3848    }
3849
3850    /**
3851     * @return {@link #version} (The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
3852     */
3853    public StringType getVersionElement() { 
3854      if (this.version == null)
3855        if (Configuration.errorOnAutoCreate())
3856          throw new Error("Attempt to auto-create Questionnaire.version");
3857        else if (Configuration.doAutoCreate())
3858          this.version = new StringType(); // bb
3859      return this.version;
3860    }
3861
3862    public boolean hasVersionElement() { 
3863      return this.version != null && !this.version.isEmpty();
3864    }
3865
3866    public boolean hasVersion() { 
3867      return this.version != null && !this.version.isEmpty();
3868    }
3869
3870    /**
3871     * @param value {@link #version} (The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
3872     */
3873    public Questionnaire setVersionElement(StringType value) { 
3874      this.version = value;
3875      return this;
3876    }
3877
3878    /**
3879     * @return The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
3880     */
3881    public String getVersion() { 
3882      return this.version == null ? null : this.version.getValue();
3883    }
3884
3885    /**
3886     * @param value The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
3887     */
3888    public Questionnaire setVersion(String value) { 
3889      if (Utilities.noString(value))
3890        this.version = null;
3891      else {
3892        if (this.version == null)
3893          this.version = new StringType();
3894        this.version.setValue(value);
3895      }
3896      return this;
3897    }
3898
3899    /**
3900     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3901     */
3902    public DataType getVersionAlgorithm() { 
3903      return this.versionAlgorithm;
3904    }
3905
3906    /**
3907     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3908     */
3909    public StringType getVersionAlgorithmStringType() throws FHIRException { 
3910      if (this.versionAlgorithm == null)
3911        this.versionAlgorithm = new StringType();
3912      if (!(this.versionAlgorithm instanceof StringType))
3913        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
3914      return (StringType) this.versionAlgorithm;
3915    }
3916
3917    public boolean hasVersionAlgorithmStringType() { 
3918      return this != null && this.versionAlgorithm instanceof StringType;
3919    }
3920
3921    /**
3922     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3923     */
3924    public Coding getVersionAlgorithmCoding() throws FHIRException { 
3925      if (this.versionAlgorithm == null)
3926        this.versionAlgorithm = new Coding();
3927      if (!(this.versionAlgorithm instanceof Coding))
3928        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
3929      return (Coding) this.versionAlgorithm;
3930    }
3931
3932    public boolean hasVersionAlgorithmCoding() { 
3933      return this != null && this.versionAlgorithm instanceof Coding;
3934    }
3935
3936    public boolean hasVersionAlgorithm() { 
3937      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
3938    }
3939
3940    /**
3941     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3942     */
3943    public Questionnaire setVersionAlgorithm(DataType value) { 
3944      if (value != null && !(value instanceof StringType || value instanceof Coding))
3945        throw new FHIRException("Not the right type for Questionnaire.versionAlgorithm[x]: "+value.fhirType());
3946      this.versionAlgorithm = value;
3947      return this;
3948    }
3949
3950    /**
3951     * @return {@link #name} (A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
3952     */
3953    public StringType getNameElement() { 
3954      if (this.name == null)
3955        if (Configuration.errorOnAutoCreate())
3956          throw new Error("Attempt to auto-create Questionnaire.name");
3957        else if (Configuration.doAutoCreate())
3958          this.name = new StringType(); // bb
3959      return this.name;
3960    }
3961
3962    public boolean hasNameElement() { 
3963      return this.name != null && !this.name.isEmpty();
3964    }
3965
3966    public boolean hasName() { 
3967      return this.name != null && !this.name.isEmpty();
3968    }
3969
3970    /**
3971     * @param value {@link #name} (A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
3972     */
3973    public Questionnaire setNameElement(StringType value) { 
3974      this.name = value;
3975      return this;
3976    }
3977
3978    /**
3979     * @return A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.
3980     */
3981    public String getName() { 
3982      return this.name == null ? null : this.name.getValue();
3983    }
3984
3985    /**
3986     * @param value A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.
3987     */
3988    public Questionnaire setName(String value) { 
3989      if (Utilities.noString(value))
3990        this.name = null;
3991      else {
3992        if (this.name == null)
3993          this.name = new StringType();
3994        this.name.setValue(value);
3995      }
3996      return this;
3997    }
3998
3999    /**
4000     * @return {@link #title} (A short, descriptive, user-friendly title for the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
4001     */
4002    public StringType getTitleElement() { 
4003      if (this.title == null)
4004        if (Configuration.errorOnAutoCreate())
4005          throw new Error("Attempt to auto-create Questionnaire.title");
4006        else if (Configuration.doAutoCreate())
4007          this.title = new StringType(); // bb
4008      return this.title;
4009    }
4010
4011    public boolean hasTitleElement() { 
4012      return this.title != null && !this.title.isEmpty();
4013    }
4014
4015    public boolean hasTitle() { 
4016      return this.title != null && !this.title.isEmpty();
4017    }
4018
4019    /**
4020     * @param value {@link #title} (A short, descriptive, user-friendly title for the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
4021     */
4022    public Questionnaire setTitleElement(StringType value) { 
4023      this.title = value;
4024      return this;
4025    }
4026
4027    /**
4028     * @return A short, descriptive, user-friendly title for the questionnaire.
4029     */
4030    public String getTitle() { 
4031      return this.title == null ? null : this.title.getValue();
4032    }
4033
4034    /**
4035     * @param value A short, descriptive, user-friendly title for the questionnaire.
4036     */
4037    public Questionnaire setTitle(String value) { 
4038      if (Utilities.noString(value))
4039        this.title = null;
4040      else {
4041        if (this.title == null)
4042          this.title = new StringType();
4043        this.title.setValue(value);
4044      }
4045      return this;
4046    }
4047
4048    /**
4049     * @return {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4050     */
4051    public List<CanonicalType> getDerivedFrom() { 
4052      if (this.derivedFrom == null)
4053        this.derivedFrom = new ArrayList<CanonicalType>();
4054      return this.derivedFrom;
4055    }
4056
4057    /**
4058     * @return Returns a reference to <code>this</code> for easy method chaining
4059     */
4060    public Questionnaire setDerivedFrom(List<CanonicalType> theDerivedFrom) { 
4061      this.derivedFrom = theDerivedFrom;
4062      return this;
4063    }
4064
4065    public boolean hasDerivedFrom() { 
4066      if (this.derivedFrom == null)
4067        return false;
4068      for (CanonicalType item : this.derivedFrom)
4069        if (!item.isEmpty())
4070          return true;
4071      return false;
4072    }
4073
4074    /**
4075     * @return {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4076     */
4077    public CanonicalType addDerivedFromElement() {//2 
4078      CanonicalType t = new CanonicalType();
4079      if (this.derivedFrom == null)
4080        this.derivedFrom = new ArrayList<CanonicalType>();
4081      this.derivedFrom.add(t);
4082      return t;
4083    }
4084
4085    /**
4086     * @param value {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4087     */
4088    public Questionnaire addDerivedFrom(String value) { //1
4089      CanonicalType t = new CanonicalType();
4090      t.setValue(value);
4091      if (this.derivedFrom == null)
4092        this.derivedFrom = new ArrayList<CanonicalType>();
4093      this.derivedFrom.add(t);
4094      return this;
4095    }
4096
4097    /**
4098     * @param value {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4099     */
4100    public boolean hasDerivedFrom(String value) { 
4101      if (this.derivedFrom == null)
4102        return false;
4103      for (CanonicalType v : this.derivedFrom)
4104        if (v.getValue().equals(value)) // canonical
4105          return true;
4106      return false;
4107    }
4108
4109    /**
4110     * @return {@link #status} (The current state of this questionnaire.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
4111     */
4112    public Enumeration<PublicationStatus> getStatusElement() { 
4113      if (this.status == null)
4114        if (Configuration.errorOnAutoCreate())
4115          throw new Error("Attempt to auto-create Questionnaire.status");
4116        else if (Configuration.doAutoCreate())
4117          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
4118      return this.status;
4119    }
4120
4121    public boolean hasStatusElement() { 
4122      return this.status != null && !this.status.isEmpty();
4123    }
4124
4125    public boolean hasStatus() { 
4126      return this.status != null && !this.status.isEmpty();
4127    }
4128
4129    /**
4130     * @param value {@link #status} (The current state of this questionnaire.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
4131     */
4132    public Questionnaire setStatusElement(Enumeration<PublicationStatus> value) { 
4133      this.status = value;
4134      return this;
4135    }
4136
4137    /**
4138     * @return The current state of this questionnaire.
4139     */
4140    public PublicationStatus getStatus() { 
4141      return this.status == null ? null : this.status.getValue();
4142    }
4143
4144    /**
4145     * @param value The current state of this questionnaire.
4146     */
4147    public Questionnaire setStatus(PublicationStatus value) { 
4148        if (this.status == null)
4149          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
4150        this.status.setValue(value);
4151      return this;
4152    }
4153
4154    /**
4155     * @return {@link #experimental} (A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
4156     */
4157    public BooleanType getExperimentalElement() { 
4158      if (this.experimental == null)
4159        if (Configuration.errorOnAutoCreate())
4160          throw new Error("Attempt to auto-create Questionnaire.experimental");
4161        else if (Configuration.doAutoCreate())
4162          this.experimental = new BooleanType(); // bb
4163      return this.experimental;
4164    }
4165
4166    public boolean hasExperimentalElement() { 
4167      return this.experimental != null && !this.experimental.isEmpty();
4168    }
4169
4170    public boolean hasExperimental() { 
4171      return this.experimental != null && !this.experimental.isEmpty();
4172    }
4173
4174    /**
4175     * @param value {@link #experimental} (A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
4176     */
4177    public Questionnaire setExperimentalElement(BooleanType value) { 
4178      this.experimental = value;
4179      return this;
4180    }
4181
4182    /**
4183     * @return A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.
4184     */
4185    public boolean getExperimental() { 
4186      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
4187    }
4188
4189    /**
4190     * @param value A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.
4191     */
4192    public Questionnaire setExperimental(boolean value) { 
4193        if (this.experimental == null)
4194          this.experimental = new BooleanType();
4195        this.experimental.setValue(value);
4196      return this;
4197    }
4198
4199    /**
4200     * @return {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4201     */
4202    public List<CodeType> getSubjectType() { 
4203      if (this.subjectType == null)
4204        this.subjectType = new ArrayList<CodeType>();
4205      return this.subjectType;
4206    }
4207
4208    /**
4209     * @return Returns a reference to <code>this</code> for easy method chaining
4210     */
4211    public Questionnaire setSubjectType(List<CodeType> theSubjectType) { 
4212      this.subjectType = theSubjectType;
4213      return this;
4214    }
4215
4216    public boolean hasSubjectType() { 
4217      if (this.subjectType == null)
4218        return false;
4219      for (CodeType item : this.subjectType)
4220        if (!item.isEmpty())
4221          return true;
4222      return false;
4223    }
4224
4225    /**
4226     * @return {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4227     */
4228    public CodeType addSubjectTypeElement() {//2 
4229      CodeType t = new CodeType();
4230      if (this.subjectType == null)
4231        this.subjectType = new ArrayList<CodeType>();
4232      this.subjectType.add(t);
4233      return t;
4234    }
4235
4236    /**
4237     * @param value {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4238     */
4239    public Questionnaire addSubjectType(String value) { //1
4240      CodeType t = new CodeType();
4241      t.setValue(value);
4242      if (this.subjectType == null)
4243        this.subjectType = new ArrayList<CodeType>();
4244      this.subjectType.add(t);
4245      return this;
4246    }
4247
4248    /**
4249     * @param value {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4250     */
4251    public boolean hasSubjectType(String value) { 
4252      if (this.subjectType == null)
4253        return false;
4254      for (CodeType v : this.subjectType)
4255        if (v.getValue().equals(value)) // code
4256          return true;
4257      return false;
4258    }
4259
4260    /**
4261     * @return {@link #date} (The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
4262     */
4263    public DateTimeType getDateElement() { 
4264      if (this.date == null)
4265        if (Configuration.errorOnAutoCreate())
4266          throw new Error("Attempt to auto-create Questionnaire.date");
4267        else if (Configuration.doAutoCreate())
4268          this.date = new DateTimeType(); // bb
4269      return this.date;
4270    }
4271
4272    public boolean hasDateElement() { 
4273      return this.date != null && !this.date.isEmpty();
4274    }
4275
4276    public boolean hasDate() { 
4277      return this.date != null && !this.date.isEmpty();
4278    }
4279
4280    /**
4281     * @param value {@link #date} (The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
4282     */
4283    public Questionnaire setDateElement(DateTimeType value) { 
4284      this.date = value;
4285      return this;
4286    }
4287
4288    /**
4289     * @return The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.
4290     */
4291    public Date getDate() { 
4292      return this.date == null ? null : this.date.getValue();
4293    }
4294
4295    /**
4296     * @param value The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.
4297     */
4298    public Questionnaire setDate(Date value) { 
4299      if (value == null)
4300        this.date = null;
4301      else {
4302        if (this.date == null)
4303          this.date = new DateTimeType();
4304        this.date.setValue(value);
4305      }
4306      return this;
4307    }
4308
4309    /**
4310     * @return {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4311     */
4312    public StringType getPublisherElement() { 
4313      if (this.publisher == null)
4314        if (Configuration.errorOnAutoCreate())
4315          throw new Error("Attempt to auto-create Questionnaire.publisher");
4316        else if (Configuration.doAutoCreate())
4317          this.publisher = new StringType(); // bb
4318      return this.publisher;
4319    }
4320
4321    public boolean hasPublisherElement() { 
4322      return this.publisher != null && !this.publisher.isEmpty();
4323    }
4324
4325    public boolean hasPublisher() { 
4326      return this.publisher != null && !this.publisher.isEmpty();
4327    }
4328
4329    /**
4330     * @param value {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4331     */
4332    public Questionnaire setPublisherElement(StringType value) { 
4333      this.publisher = value;
4334      return this;
4335    }
4336
4337    /**
4338     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.
4339     */
4340    public String getPublisher() { 
4341      return this.publisher == null ? null : this.publisher.getValue();
4342    }
4343
4344    /**
4345     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.
4346     */
4347    public Questionnaire setPublisher(String value) { 
4348      if (Utilities.noString(value))
4349        this.publisher = null;
4350      else {
4351        if (this.publisher == null)
4352          this.publisher = new StringType();
4353        this.publisher.setValue(value);
4354      }
4355      return this;
4356    }
4357
4358    /**
4359     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
4360     */
4361    public List<ContactDetail> getContact() { 
4362      if (this.contact == null)
4363        this.contact = new ArrayList<ContactDetail>();
4364      return this.contact;
4365    }
4366
4367    /**
4368     * @return Returns a reference to <code>this</code> for easy method chaining
4369     */
4370    public Questionnaire setContact(List<ContactDetail> theContact) { 
4371      this.contact = theContact;
4372      return this;
4373    }
4374
4375    public boolean hasContact() { 
4376      if (this.contact == null)
4377        return false;
4378      for (ContactDetail item : this.contact)
4379        if (!item.isEmpty())
4380          return true;
4381      return false;
4382    }
4383
4384    public ContactDetail addContact() { //3
4385      ContactDetail t = new ContactDetail();
4386      if (this.contact == null)
4387        this.contact = new ArrayList<ContactDetail>();
4388      this.contact.add(t);
4389      return t;
4390    }
4391
4392    public Questionnaire addContact(ContactDetail t) { //3
4393      if (t == null)
4394        return this;
4395      if (this.contact == null)
4396        this.contact = new ArrayList<ContactDetail>();
4397      this.contact.add(t);
4398      return this;
4399    }
4400
4401    /**
4402     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
4403     */
4404    public ContactDetail getContactFirstRep() { 
4405      if (getContact().isEmpty()) {
4406        addContact();
4407      }
4408      return getContact().get(0);
4409    }
4410
4411    /**
4412     * @return {@link #description} (A free text natural language description of the questionnaire from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4413     */
4414    public MarkdownType getDescriptionElement() { 
4415      if (this.description == null)
4416        if (Configuration.errorOnAutoCreate())
4417          throw new Error("Attempt to auto-create Questionnaire.description");
4418        else if (Configuration.doAutoCreate())
4419          this.description = new MarkdownType(); // bb
4420      return this.description;
4421    }
4422
4423    public boolean hasDescriptionElement() { 
4424      return this.description != null && !this.description.isEmpty();
4425    }
4426
4427    public boolean hasDescription() { 
4428      return this.description != null && !this.description.isEmpty();
4429    }
4430
4431    /**
4432     * @param value {@link #description} (A free text natural language description of the questionnaire from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4433     */
4434    public Questionnaire setDescriptionElement(MarkdownType value) { 
4435      this.description = value;
4436      return this;
4437    }
4438
4439    /**
4440     * @return A free text natural language description of the questionnaire from a consumer's perspective.
4441     */
4442    public String getDescription() { 
4443      return this.description == null ? null : this.description.getValue();
4444    }
4445
4446    /**
4447     * @param value A free text natural language description of the questionnaire from a consumer's perspective.
4448     */
4449    public Questionnaire setDescription(String value) { 
4450      if (Utilities.noString(value))
4451        this.description = null;
4452      else {
4453        if (this.description == null)
4454          this.description = new MarkdownType();
4455        this.description.setValue(value);
4456      }
4457      return this;
4458    }
4459
4460    /**
4461     * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate questionnaires.)
4462     */
4463    public List<UsageContext> getUseContext() { 
4464      if (this.useContext == null)
4465        this.useContext = new ArrayList<UsageContext>();
4466      return this.useContext;
4467    }
4468
4469    /**
4470     * @return Returns a reference to <code>this</code> for easy method chaining
4471     */
4472    public Questionnaire setUseContext(List<UsageContext> theUseContext) { 
4473      this.useContext = theUseContext;
4474      return this;
4475    }
4476
4477    public boolean hasUseContext() { 
4478      if (this.useContext == null)
4479        return false;
4480      for (UsageContext item : this.useContext)
4481        if (!item.isEmpty())
4482          return true;
4483      return false;
4484    }
4485
4486    public UsageContext addUseContext() { //3
4487      UsageContext t = new UsageContext();
4488      if (this.useContext == null)
4489        this.useContext = new ArrayList<UsageContext>();
4490      this.useContext.add(t);
4491      return t;
4492    }
4493
4494    public Questionnaire addUseContext(UsageContext t) { //3
4495      if (t == null)
4496        return this;
4497      if (this.useContext == null)
4498        this.useContext = new ArrayList<UsageContext>();
4499      this.useContext.add(t);
4500      return this;
4501    }
4502
4503    /**
4504     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
4505     */
4506    public UsageContext getUseContextFirstRep() { 
4507      if (getUseContext().isEmpty()) {
4508        addUseContext();
4509      }
4510      return getUseContext().get(0);
4511    }
4512
4513    /**
4514     * @return {@link #jurisdiction} (A legal or geographic region in which the questionnaire is intended to be used.)
4515     */
4516    public List<CodeableConcept> getJurisdiction() { 
4517      if (this.jurisdiction == null)
4518        this.jurisdiction = new ArrayList<CodeableConcept>();
4519      return this.jurisdiction;
4520    }
4521
4522    /**
4523     * @return Returns a reference to <code>this</code> for easy method chaining
4524     */
4525    public Questionnaire setJurisdiction(List<CodeableConcept> theJurisdiction) { 
4526      this.jurisdiction = theJurisdiction;
4527      return this;
4528    }
4529
4530    public boolean hasJurisdiction() { 
4531      if (this.jurisdiction == null)
4532        return false;
4533      for (CodeableConcept item : this.jurisdiction)
4534        if (!item.isEmpty())
4535          return true;
4536      return false;
4537    }
4538
4539    public CodeableConcept addJurisdiction() { //3
4540      CodeableConcept t = new CodeableConcept();
4541      if (this.jurisdiction == null)
4542        this.jurisdiction = new ArrayList<CodeableConcept>();
4543      this.jurisdiction.add(t);
4544      return t;
4545    }
4546
4547    public Questionnaire addJurisdiction(CodeableConcept t) { //3
4548      if (t == null)
4549        return this;
4550      if (this.jurisdiction == null)
4551        this.jurisdiction = new ArrayList<CodeableConcept>();
4552      this.jurisdiction.add(t);
4553      return this;
4554    }
4555
4556    /**
4557     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
4558     */
4559    public CodeableConcept getJurisdictionFirstRep() { 
4560      if (getJurisdiction().isEmpty()) {
4561        addJurisdiction();
4562      }
4563      return getJurisdiction().get(0);
4564    }
4565
4566    /**
4567     * @return {@link #purpose} (Explanation of why this questionnaire is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
4568     */
4569    public MarkdownType getPurposeElement() { 
4570      if (this.purpose == null)
4571        if (Configuration.errorOnAutoCreate())
4572          throw new Error("Attempt to auto-create Questionnaire.purpose");
4573        else if (Configuration.doAutoCreate())
4574          this.purpose = new MarkdownType(); // bb
4575      return this.purpose;
4576    }
4577
4578    public boolean hasPurposeElement() { 
4579      return this.purpose != null && !this.purpose.isEmpty();
4580    }
4581
4582    public boolean hasPurpose() { 
4583      return this.purpose != null && !this.purpose.isEmpty();
4584    }
4585
4586    /**
4587     * @param value {@link #purpose} (Explanation of why this questionnaire is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
4588     */
4589    public Questionnaire setPurposeElement(MarkdownType value) { 
4590      this.purpose = value;
4591      return this;
4592    }
4593
4594    /**
4595     * @return Explanation of why this questionnaire is needed and why it has been designed as it has.
4596     */
4597    public String getPurpose() { 
4598      return this.purpose == null ? null : this.purpose.getValue();
4599    }
4600
4601    /**
4602     * @param value Explanation of why this questionnaire is needed and why it has been designed as it has.
4603     */
4604    public Questionnaire setPurpose(String value) { 
4605      if (Utilities.noString(value))
4606        this.purpose = null;
4607      else {
4608        if (this.purpose == null)
4609          this.purpose = new MarkdownType();
4610        this.purpose.setValue(value);
4611      }
4612      return this;
4613    }
4614
4615    /**
4616     * @return {@link #copyright} (A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
4617     */
4618    public MarkdownType getCopyrightElement() { 
4619      if (this.copyright == null)
4620        if (Configuration.errorOnAutoCreate())
4621          throw new Error("Attempt to auto-create Questionnaire.copyright");
4622        else if (Configuration.doAutoCreate())
4623          this.copyright = new MarkdownType(); // bb
4624      return this.copyright;
4625    }
4626
4627    public boolean hasCopyrightElement() { 
4628      return this.copyright != null && !this.copyright.isEmpty();
4629    }
4630
4631    public boolean hasCopyright() { 
4632      return this.copyright != null && !this.copyright.isEmpty();
4633    }
4634
4635    /**
4636     * @param value {@link #copyright} (A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
4637     */
4638    public Questionnaire setCopyrightElement(MarkdownType value) { 
4639      this.copyright = value;
4640      return this;
4641    }
4642
4643    /**
4644     * @return A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.
4645     */
4646    public String getCopyright() { 
4647      return this.copyright == null ? null : this.copyright.getValue();
4648    }
4649
4650    /**
4651     * @param value A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.
4652     */
4653    public Questionnaire setCopyright(String value) { 
4654      if (Utilities.noString(value))
4655        this.copyright = null;
4656      else {
4657        if (this.copyright == null)
4658          this.copyright = new MarkdownType();
4659        this.copyright.setValue(value);
4660      }
4661      return this;
4662    }
4663
4664    /**
4665     * @return {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
4666     */
4667    public StringType getCopyrightLabelElement() { 
4668      if (this.copyrightLabel == null)
4669        if (Configuration.errorOnAutoCreate())
4670          throw new Error("Attempt to auto-create Questionnaire.copyrightLabel");
4671        else if (Configuration.doAutoCreate())
4672          this.copyrightLabel = new StringType(); // bb
4673      return this.copyrightLabel;
4674    }
4675
4676    public boolean hasCopyrightLabelElement() { 
4677      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4678    }
4679
4680    public boolean hasCopyrightLabel() { 
4681      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4682    }
4683
4684    /**
4685     * @param value {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
4686     */
4687    public Questionnaire setCopyrightLabelElement(StringType value) { 
4688      this.copyrightLabel = value;
4689      return this;
4690    }
4691
4692    /**
4693     * @return A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
4694     */
4695    public String getCopyrightLabel() { 
4696      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
4697    }
4698
4699    /**
4700     * @param value A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
4701     */
4702    public Questionnaire setCopyrightLabel(String value) { 
4703      if (Utilities.noString(value))
4704        this.copyrightLabel = null;
4705      else {
4706        if (this.copyrightLabel == null)
4707          this.copyrightLabel = new StringType();
4708        this.copyrightLabel.setValue(value);
4709      }
4710      return this;
4711    }
4712
4713    /**
4714     * @return {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
4715     */
4716    public DateType getApprovalDateElement() { 
4717      if (this.approvalDate == null)
4718        if (Configuration.errorOnAutoCreate())
4719          throw new Error("Attempt to auto-create Questionnaire.approvalDate");
4720        else if (Configuration.doAutoCreate())
4721          this.approvalDate = new DateType(); // bb
4722      return this.approvalDate;
4723    }
4724
4725    public boolean hasApprovalDateElement() { 
4726      return this.approvalDate != null && !this.approvalDate.isEmpty();
4727    }
4728
4729    public boolean hasApprovalDate() { 
4730      return this.approvalDate != null && !this.approvalDate.isEmpty();
4731    }
4732
4733    /**
4734     * @param value {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
4735     */
4736    public Questionnaire setApprovalDateElement(DateType value) { 
4737      this.approvalDate = value;
4738      return this;
4739    }
4740
4741    /**
4742     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
4743     */
4744    public Date getApprovalDate() { 
4745      return this.approvalDate == null ? null : this.approvalDate.getValue();
4746    }
4747
4748    /**
4749     * @param value The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
4750     */
4751    public Questionnaire setApprovalDate(Date value) { 
4752      if (value == null)
4753        this.approvalDate = null;
4754      else {
4755        if (this.approvalDate == null)
4756          this.approvalDate = new DateType();
4757        this.approvalDate.setValue(value);
4758      }
4759      return this;
4760    }
4761
4762    /**
4763     * @return {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
4764     */
4765    public DateType getLastReviewDateElement() { 
4766      if (this.lastReviewDate == null)
4767        if (Configuration.errorOnAutoCreate())
4768          throw new Error("Attempt to auto-create Questionnaire.lastReviewDate");
4769        else if (Configuration.doAutoCreate())
4770          this.lastReviewDate = new DateType(); // bb
4771      return this.lastReviewDate;
4772    }
4773
4774    public boolean hasLastReviewDateElement() { 
4775      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
4776    }
4777
4778    public boolean hasLastReviewDate() { 
4779      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
4780    }
4781
4782    /**
4783     * @param value {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
4784     */
4785    public Questionnaire setLastReviewDateElement(DateType value) { 
4786      this.lastReviewDate = value;
4787      return this;
4788    }
4789
4790    /**
4791     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
4792     */
4793    public Date getLastReviewDate() { 
4794      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
4795    }
4796
4797    /**
4798     * @param value The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
4799     */
4800    public Questionnaire setLastReviewDate(Date value) { 
4801      if (value == null)
4802        this.lastReviewDate = null;
4803      else {
4804        if (this.lastReviewDate == null)
4805          this.lastReviewDate = new DateType();
4806        this.lastReviewDate.setValue(value);
4807      }
4808      return this;
4809    }
4810
4811    /**
4812     * @return {@link #effectivePeriod} (The period during which the questionnaire content was or is planned to be in active use.)
4813     */
4814    public Period getEffectivePeriod() { 
4815      if (this.effectivePeriod == null)
4816        if (Configuration.errorOnAutoCreate())
4817          throw new Error("Attempt to auto-create Questionnaire.effectivePeriod");
4818        else if (Configuration.doAutoCreate())
4819          this.effectivePeriod = new Period(); // cc
4820      return this.effectivePeriod;
4821    }
4822
4823    public boolean hasEffectivePeriod() { 
4824      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
4825    }
4826
4827    /**
4828     * @param value {@link #effectivePeriod} (The period during which the questionnaire content was or is planned to be in active use.)
4829     */
4830    public Questionnaire setEffectivePeriod(Period value) { 
4831      this.effectivePeriod = value;
4832      return this;
4833    }
4834
4835    /**
4836     * @return {@link #code} (An identifier for this collection of questions in a particular terminology such as LOINC.)
4837     */
4838    public List<Coding> getCode() { 
4839      if (this.code == null)
4840        this.code = new ArrayList<Coding>();
4841      return this.code;
4842    }
4843
4844    /**
4845     * @return Returns a reference to <code>this</code> for easy method chaining
4846     */
4847    public Questionnaire setCode(List<Coding> theCode) { 
4848      this.code = theCode;
4849      return this;
4850    }
4851
4852    public boolean hasCode() { 
4853      if (this.code == null)
4854        return false;
4855      for (Coding item : this.code)
4856        if (!item.isEmpty())
4857          return true;
4858      return false;
4859    }
4860
4861    public Coding addCode() { //3
4862      Coding t = new Coding();
4863      if (this.code == null)
4864        this.code = new ArrayList<Coding>();
4865      this.code.add(t);
4866      return t;
4867    }
4868
4869    public Questionnaire addCode(Coding t) { //3
4870      if (t == null)
4871        return this;
4872      if (this.code == null)
4873        this.code = new ArrayList<Coding>();
4874      this.code.add(t);
4875      return this;
4876    }
4877
4878    /**
4879     * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3}
4880     */
4881    public Coding getCodeFirstRep() { 
4882      if (getCode().isEmpty()) {
4883        addCode();
4884      }
4885      return getCode().get(0);
4886    }
4887
4888    /**
4889     * @return {@link #item} (A particular question, question grouping or display text that is part of the questionnaire.)
4890     */
4891    public List<QuestionnaireItemComponent> getItem() { 
4892      if (this.item == null)
4893        this.item = new ArrayList<QuestionnaireItemComponent>();
4894      return this.item;
4895    }
4896
4897    /**
4898     * @return Returns a reference to <code>this</code> for easy method chaining
4899     */
4900    public Questionnaire setItem(List<QuestionnaireItemComponent> theItem) { 
4901      this.item = theItem;
4902      return this;
4903    }
4904
4905    public boolean hasItem() { 
4906      if (this.item == null)
4907        return false;
4908      for (QuestionnaireItemComponent item : this.item)
4909        if (!item.isEmpty())
4910          return true;
4911      return false;
4912    }
4913
4914    public QuestionnaireItemComponent addItem() { //3
4915      QuestionnaireItemComponent t = new QuestionnaireItemComponent();
4916      if (this.item == null)
4917        this.item = new ArrayList<QuestionnaireItemComponent>();
4918      this.item.add(t);
4919      return t;
4920    }
4921
4922    public Questionnaire addItem(QuestionnaireItemComponent t) { //3
4923      if (t == null)
4924        return this;
4925      if (this.item == null)
4926        this.item = new ArrayList<QuestionnaireItemComponent>();
4927      this.item.add(t);
4928      return this;
4929    }
4930
4931    /**
4932     * @return The first repetition of repeating field {@link #item}, creating it if it does not already exist {3}
4933     */
4934    public QuestionnaireItemComponent getItemFirstRep() { 
4935      if (getItem().isEmpty()) {
4936        addItem();
4937      }
4938      return getItem().get(0);
4939    }
4940
4941    /**
4942     * not supported on this implementation
4943     */
4944    @Override
4945    public int getTopicMax() { 
4946      return 0;
4947    }
4948    /**
4949     * @return {@link #topic} (Descriptive topics related to the content of the questionnaire. Topics provide a high-level categorization as well as keywords for the questionnaire that can be useful for filtering and searching.)
4950     */
4951    public List<CodeableConcept> getTopic() { 
4952      return new ArrayList<>();
4953    }
4954    /**
4955     * @return Returns a reference to <code>this</code> for easy method chaining
4956     */
4957    public Questionnaire setTopic(List<CodeableConcept> theTopic) { 
4958      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
4959    }
4960    public boolean hasTopic() { 
4961      return false;
4962    }
4963
4964    public CodeableConcept addTopic() { //3
4965      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
4966    }
4967    public Questionnaire addTopic(CodeableConcept t) { //3
4968      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
4969    }
4970    /**
4971     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist {2}
4972     */
4973    public CodeableConcept getTopicFirstRep() { 
4974      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
4975    }
4976    /**
4977     * not supported on this implementation
4978     */
4979    @Override
4980    public int getAuthorMax() { 
4981      return 0;
4982    }
4983    /**
4984     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the questionnaire.)
4985     */
4986    public List<ContactDetail> getAuthor() { 
4987      return new ArrayList<>();
4988    }
4989    /**
4990     * @return Returns a reference to <code>this</code> for easy method chaining
4991     */
4992    public Questionnaire setAuthor(List<ContactDetail> theAuthor) { 
4993      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
4994    }
4995    public boolean hasAuthor() { 
4996      return false;
4997    }
4998
4999    public ContactDetail addAuthor() { //3
5000      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
5001    }
5002    public Questionnaire addAuthor(ContactDetail t) { //3
5003      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
5004    }
5005    /**
5006     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {2}
5007     */
5008    public ContactDetail getAuthorFirstRep() { 
5009      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
5010    }
5011    /**
5012     * not supported on this implementation
5013     */
5014    @Override
5015    public int getEditorMax() { 
5016      return 0;
5017    }
5018    /**
5019     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the questionnaire.)
5020     */
5021    public List<ContactDetail> getEditor() { 
5022      return new ArrayList<>();
5023    }
5024    /**
5025     * @return Returns a reference to <code>this</code> for easy method chaining
5026     */
5027    public Questionnaire setEditor(List<ContactDetail> theEditor) { 
5028      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5029    }
5030    public boolean hasEditor() { 
5031      return false;
5032    }
5033
5034    public ContactDetail addEditor() { //3
5035      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5036    }
5037    public Questionnaire addEditor(ContactDetail t) { //3
5038      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5039    }
5040    /**
5041     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {2}
5042     */
5043    public ContactDetail getEditorFirstRep() { 
5044      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5045    }
5046    /**
5047     * not supported on this implementation
5048     */
5049    @Override
5050    public int getReviewerMax() { 
5051      return 0;
5052    }
5053    /**
5054     * @return {@link #reviewer} (An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the questionnaire.)
5055     */
5056    public List<ContactDetail> getReviewer() { 
5057      return new ArrayList<>();
5058    }
5059    /**
5060     * @return Returns a reference to <code>this</code> for easy method chaining
5061     */
5062    public Questionnaire setReviewer(List<ContactDetail> theReviewer) { 
5063      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5064    }
5065    public boolean hasReviewer() { 
5066      return false;
5067    }
5068
5069    public ContactDetail addReviewer() { //3
5070      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5071    }
5072    public Questionnaire addReviewer(ContactDetail t) { //3
5073      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5074    }
5075    /**
5076     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {2}
5077     */
5078    public ContactDetail getReviewerFirstRep() { 
5079      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5080    }
5081    /**
5082     * not supported on this implementation
5083     */
5084    @Override
5085    public int getEndorserMax() { 
5086      return 0;
5087    }
5088    /**
5089     * @return {@link #endorser} (An individual or organization asserted by the publisher to be responsible for officially endorsing the questionnaire for use in some setting.)
5090     */
5091    public List<ContactDetail> getEndorser() { 
5092      return new ArrayList<>();
5093    }
5094    /**
5095     * @return Returns a reference to <code>this</code> for easy method chaining
5096     */
5097    public Questionnaire setEndorser(List<ContactDetail> theEndorser) { 
5098      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5099    }
5100    public boolean hasEndorser() { 
5101      return false;
5102    }
5103
5104    public ContactDetail addEndorser() { //3
5105      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5106    }
5107    public Questionnaire addEndorser(ContactDetail t) { //3
5108      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5109    }
5110    /**
5111     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {2}
5112     */
5113    public ContactDetail getEndorserFirstRep() { 
5114      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5115    }
5116    /**
5117     * not supported on this implementation
5118     */
5119    @Override
5120    public int getRelatedArtifactMax() { 
5121      return 0;
5122    }
5123    /**
5124     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.)
5125     */
5126    public List<RelatedArtifact> getRelatedArtifact() { 
5127      return new ArrayList<>();
5128    }
5129    /**
5130     * @return Returns a reference to <code>this</code> for easy method chaining
5131     */
5132    public Questionnaire setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
5133      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5134    }
5135    public boolean hasRelatedArtifact() { 
5136      return false;
5137    }
5138
5139    public RelatedArtifact addRelatedArtifact() { //3
5140      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5141    }
5142    public Questionnaire addRelatedArtifact(RelatedArtifact t) { //3
5143      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5144    }
5145    /**
5146     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {2}
5147     */
5148    public RelatedArtifact getRelatedArtifactFirstRep() { 
5149      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5150    }
5151      protected void listChildren(List<Property> children) {
5152        super.listChildren(children);
5153        children.add(new Property("url", "uri", "An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.", 0, 1, url));
5154        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
5155        children.add(new Property("version", "string", "The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version));
5156        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm));
5157        children.add(new Property("name", "string", "A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
5158        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the questionnaire.", 0, 1, title));
5159        children.add(new Property("derivedFrom", "canonical(Questionnaire)", "The URL of a Questionnaire that this Questionnaire is based on.", 0, java.lang.Integer.MAX_VALUE, derivedFrom));
5160        children.add(new Property("status", "code", "The current state of this questionnaire.", 0, 1, status));
5161        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.", 0, 1, experimental));
5162        children.add(new Property("subjectType", "code", "The types of subjects that can be the subject of responses created for the questionnaire.", 0, java.lang.Integer.MAX_VALUE, subjectType));
5163        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.", 0, 1, date));
5164        children.add(new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.", 0, 1, publisher));
5165        children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact));
5166        children.add(new Property("description", "markdown", "A free text natural language description of the questionnaire from a consumer's perspective.", 0, 1, description));
5167        children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate questionnaires.", 0, java.lang.Integer.MAX_VALUE, useContext));
5168        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the questionnaire is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
5169        children.add(new Property("purpose", "markdown", "Explanation of why this questionnaire is needed and why it has been designed as it has.", 0, 1, purpose));
5170        children.add(new Property("copyright", "markdown", "A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.", 0, 1, copyright));
5171        children.add(new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel));
5172        children.add(new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate));
5173        children.add(new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate));
5174        children.add(new Property("effectivePeriod", "Period", "The period during which the questionnaire content was or is planned to be in active use.", 0, 1, effectivePeriod));
5175        children.add(new Property("code", "Coding", "An identifier for this collection of questions in a particular terminology such as LOINC.", 0, java.lang.Integer.MAX_VALUE, code));
5176        children.add(new Property("item", "", "A particular question, question grouping or display text that is part of the questionnaire.", 0, java.lang.Integer.MAX_VALUE, item));
5177      }
5178
5179      @Override
5180      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
5181        switch (_hash) {
5182        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.", 0, 1, url);
5183        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
5184        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version);
5185        case -115699031: /*versionAlgorithm[x]*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
5186        case 1508158071: /*versionAlgorithm*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
5187        case 1836908904: /*versionAlgorithmString*/  return new Property("versionAlgorithm[x]", "string", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
5188        case 1373807809: /*versionAlgorithmCoding*/  return new Property("versionAlgorithm[x]", "Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
5189        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
5190        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the questionnaire.", 0, 1, title);
5191        case 1077922663: /*derivedFrom*/  return new Property("derivedFrom", "canonical(Questionnaire)", "The URL of a Questionnaire that this Questionnaire is based on.", 0, java.lang.Integer.MAX_VALUE, derivedFrom);
5192        case -892481550: /*status*/  return new Property("status", "code", "The current state of this questionnaire.", 0, 1, status);
5193        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.", 0, 1, experimental);
5194        case -603200890: /*subjectType*/  return new Property("subjectType", "code", "The types of subjects that can be the subject of responses created for the questionnaire.", 0, java.lang.Integer.MAX_VALUE, subjectType);
5195        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.", 0, 1, date);
5196        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.", 0, 1, publisher);
5197        case 951526432: /*contact*/  return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact);
5198        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the questionnaire from a consumer's perspective.", 0, 1, description);
5199        case -669707736: /*useContext*/  return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate questionnaires.", 0, java.lang.Integer.MAX_VALUE, useContext);
5200        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the questionnaire is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
5201        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this questionnaire is needed and why it has been designed as it has.", 0, 1, purpose);
5202        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.", 0, 1, copyright);
5203        case 765157229: /*copyrightLabel*/  return new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel);
5204        case 223539345: /*approvalDate*/  return new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate);
5205        case -1687512484: /*lastReviewDate*/  return new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate);
5206        case -403934648: /*effectivePeriod*/  return new Property("effectivePeriod", "Period", "The period during which the questionnaire content was or is planned to be in active use.", 0, 1, effectivePeriod);
5207        case 3059181: /*code*/  return new Property("code", "Coding", "An identifier for this collection of questions in a particular terminology such as LOINC.", 0, java.lang.Integer.MAX_VALUE, code);
5208        case 3242771: /*item*/  return new Property("item", "", "A particular question, question grouping or display text that is part of the questionnaire.", 0, java.lang.Integer.MAX_VALUE, item);
5209        default: return super.getNamedProperty(_hash, _name, _checkValid);
5210        }
5211
5212      }
5213
5214      @Override
5215      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
5216        switch (hash) {
5217        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
5218        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
5219        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
5220        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
5221        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
5222        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
5223        case 1077922663: /*derivedFrom*/ return this.derivedFrom == null ? new Base[0] : this.derivedFrom.toArray(new Base[this.derivedFrom.size()]); // CanonicalType
5224        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
5225        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
5226        case -603200890: /*subjectType*/ return this.subjectType == null ? new Base[0] : this.subjectType.toArray(new Base[this.subjectType.size()]); // CodeType
5227        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
5228        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
5229        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
5230        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
5231        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
5232        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
5233        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
5234        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
5235        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
5236        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
5237        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
5238        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
5239        case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // Coding
5240        case 3242771: /*item*/ return this.item == null ? new Base[0] : this.item.toArray(new Base[this.item.size()]); // QuestionnaireItemComponent
5241        default: return super.getProperty(hash, name, checkValid);
5242        }
5243
5244      }
5245
5246      @Override
5247      public Base setProperty(int hash, String name, Base value) throws FHIRException {
5248        switch (hash) {
5249        case 116079: // url
5250          this.url = TypeConvertor.castToUri(value); // UriType
5251          return value;
5252        case -1618432855: // identifier
5253          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
5254          return value;
5255        case 351608024: // version
5256          this.version = TypeConvertor.castToString(value); // StringType
5257          return value;
5258        case 1508158071: // versionAlgorithm
5259          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5260          return value;
5261        case 3373707: // name
5262          this.name = TypeConvertor.castToString(value); // StringType
5263          return value;
5264        case 110371416: // title
5265          this.title = TypeConvertor.castToString(value); // StringType
5266          return value;
5267        case 1077922663: // derivedFrom
5268          this.getDerivedFrom().add(TypeConvertor.castToCanonical(value)); // CanonicalType
5269          return value;
5270        case -892481550: // status
5271          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5272          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5273          return value;
5274        case -404562712: // experimental
5275          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5276          return value;
5277        case -603200890: // subjectType
5278          this.getSubjectType().add(TypeConvertor.castToCode(value)); // CodeType
5279          return value;
5280        case 3076014: // date
5281          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5282          return value;
5283        case 1447404028: // publisher
5284          this.publisher = TypeConvertor.castToString(value); // StringType
5285          return value;
5286        case 951526432: // contact
5287          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5288          return value;
5289        case -1724546052: // description
5290          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5291          return value;
5292        case -669707736: // useContext
5293          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
5294          return value;
5295        case -507075711: // jurisdiction
5296          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
5297          return value;
5298        case -220463842: // purpose
5299          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5300          return value;
5301        case 1522889671: // copyright
5302          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5303          return value;
5304        case 765157229: // copyrightLabel
5305          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5306          return value;
5307        case 223539345: // approvalDate
5308          this.approvalDate = TypeConvertor.castToDate(value); // DateType
5309          return value;
5310        case -1687512484: // lastReviewDate
5311          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
5312          return value;
5313        case -403934648: // effectivePeriod
5314          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
5315          return value;
5316        case 3059181: // code
5317          this.getCode().add(TypeConvertor.castToCoding(value)); // Coding
5318          return value;
5319        case 3242771: // item
5320          this.getItem().add((QuestionnaireItemComponent) value); // QuestionnaireItemComponent
5321          return value;
5322        default: return super.setProperty(hash, name, value);
5323        }
5324
5325      }
5326
5327      @Override
5328      public Base setProperty(String name, Base value) throws FHIRException {
5329        if (name.equals("url")) {
5330          this.url = TypeConvertor.castToUri(value); // UriType
5331        } else if (name.equals("identifier")) {
5332          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
5333        } else if (name.equals("version")) {
5334          this.version = TypeConvertor.castToString(value); // StringType
5335        } else if (name.equals("versionAlgorithm[x]")) {
5336          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5337        } else if (name.equals("name")) {
5338          this.name = TypeConvertor.castToString(value); // StringType
5339        } else if (name.equals("title")) {
5340          this.title = TypeConvertor.castToString(value); // StringType
5341        } else if (name.equals("derivedFrom")) {
5342          this.getDerivedFrom().add(TypeConvertor.castToCanonical(value));
5343        } else if (name.equals("status")) {
5344          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5345          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5346        } else if (name.equals("experimental")) {
5347          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5348        } else if (name.equals("subjectType")) {
5349          this.getSubjectType().add(TypeConvertor.castToCode(value));
5350        } else if (name.equals("date")) {
5351          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5352        } else if (name.equals("publisher")) {
5353          this.publisher = TypeConvertor.castToString(value); // StringType
5354        } else if (name.equals("contact")) {
5355          this.getContact().add(TypeConvertor.castToContactDetail(value));
5356        } else if (name.equals("description")) {
5357          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5358        } else if (name.equals("useContext")) {
5359          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
5360        } else if (name.equals("jurisdiction")) {
5361          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
5362        } else if (name.equals("purpose")) {
5363          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5364        } else if (name.equals("copyright")) {
5365          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5366        } else if (name.equals("copyrightLabel")) {
5367          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5368        } else if (name.equals("approvalDate")) {
5369          this.approvalDate = TypeConvertor.castToDate(value); // DateType
5370        } else if (name.equals("lastReviewDate")) {
5371          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
5372        } else if (name.equals("effectivePeriod")) {
5373          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
5374        } else if (name.equals("code")) {
5375          this.getCode().add(TypeConvertor.castToCoding(value));
5376        } else if (name.equals("item")) {
5377          this.getItem().add((QuestionnaireItemComponent) value);
5378        } else
5379          return super.setProperty(name, value);
5380        return value;
5381      }
5382
5383      @Override
5384      public Base makeProperty(int hash, String name) throws FHIRException {
5385        switch (hash) {
5386        case 116079:  return getUrlElement();
5387        case -1618432855:  return addIdentifier(); 
5388        case 351608024:  return getVersionElement();
5389        case -115699031:  return getVersionAlgorithm();
5390        case 1508158071:  return getVersionAlgorithm();
5391        case 3373707:  return getNameElement();
5392        case 110371416:  return getTitleElement();
5393        case 1077922663:  return addDerivedFromElement();
5394        case -892481550:  return getStatusElement();
5395        case -404562712:  return getExperimentalElement();
5396        case -603200890:  return addSubjectTypeElement();
5397        case 3076014:  return getDateElement();
5398        case 1447404028:  return getPublisherElement();
5399        case 951526432:  return addContact(); 
5400        case -1724546052:  return getDescriptionElement();
5401        case -669707736:  return addUseContext(); 
5402        case -507075711:  return addJurisdiction(); 
5403        case -220463842:  return getPurposeElement();
5404        case 1522889671:  return getCopyrightElement();
5405        case 765157229:  return getCopyrightLabelElement();
5406        case 223539345:  return getApprovalDateElement();
5407        case -1687512484:  return getLastReviewDateElement();
5408        case -403934648:  return getEffectivePeriod();
5409        case 3059181:  return addCode(); 
5410        case 3242771:  return addItem(); 
5411        default: return super.makeProperty(hash, name);
5412        }
5413
5414      }
5415
5416      @Override
5417      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
5418        switch (hash) {
5419        case 116079: /*url*/ return new String[] {"uri"};
5420        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
5421        case 351608024: /*version*/ return new String[] {"string"};
5422        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
5423        case 3373707: /*name*/ return new String[] {"string"};
5424        case 110371416: /*title*/ return new String[] {"string"};
5425        case 1077922663: /*derivedFrom*/ return new String[] {"canonical"};
5426        case -892481550: /*status*/ return new String[] {"code"};
5427        case -404562712: /*experimental*/ return new String[] {"boolean"};
5428        case -603200890: /*subjectType*/ return new String[] {"code"};
5429        case 3076014: /*date*/ return new String[] {"dateTime"};
5430        case 1447404028: /*publisher*/ return new String[] {"string"};
5431        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
5432        case -1724546052: /*description*/ return new String[] {"markdown"};
5433        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
5434        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
5435        case -220463842: /*purpose*/ return new String[] {"markdown"};
5436        case 1522889671: /*copyright*/ return new String[] {"markdown"};
5437        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
5438        case 223539345: /*approvalDate*/ return new String[] {"date"};
5439        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
5440        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
5441        case 3059181: /*code*/ return new String[] {"Coding"};
5442        case 3242771: /*item*/ return new String[] {};
5443        default: return super.getTypesForProperty(hash, name);
5444        }
5445
5446      }
5447
5448      @Override
5449      public Base addChild(String name) throws FHIRException {
5450        if (name.equals("url")) {
5451          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.url");
5452        }
5453        else if (name.equals("identifier")) {
5454          return addIdentifier();
5455        }
5456        else if (name.equals("version")) {
5457          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.version");
5458        }
5459        else if (name.equals("versionAlgorithmString")) {
5460          this.versionAlgorithm = new StringType();
5461          return this.versionAlgorithm;
5462        }
5463        else if (name.equals("versionAlgorithmCoding")) {
5464          this.versionAlgorithm = new Coding();
5465          return this.versionAlgorithm;
5466        }
5467        else if (name.equals("name")) {
5468          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.name");
5469        }
5470        else if (name.equals("title")) {
5471          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.title");
5472        }
5473        else if (name.equals("derivedFrom")) {
5474          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.derivedFrom");
5475        }
5476        else if (name.equals("status")) {
5477          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.status");
5478        }
5479        else if (name.equals("experimental")) {
5480          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.experimental");
5481        }
5482        else if (name.equals("subjectType")) {
5483          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.subjectType");
5484        }
5485        else if (name.equals("date")) {
5486          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.date");
5487        }
5488        else if (name.equals("publisher")) {
5489          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.publisher");
5490        }
5491        else if (name.equals("contact")) {
5492          return addContact();
5493        }
5494        else if (name.equals("description")) {
5495          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.description");
5496        }
5497        else if (name.equals("useContext")) {
5498          return addUseContext();
5499        }
5500        else if (name.equals("jurisdiction")) {
5501          return addJurisdiction();
5502        }
5503        else if (name.equals("purpose")) {
5504          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.purpose");
5505        }
5506        else if (name.equals("copyright")) {
5507          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.copyright");
5508        }
5509        else if (name.equals("copyrightLabel")) {
5510          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.copyrightLabel");
5511        }
5512        else if (name.equals("approvalDate")) {
5513          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.approvalDate");
5514        }
5515        else if (name.equals("lastReviewDate")) {
5516          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.lastReviewDate");
5517        }
5518        else if (name.equals("effectivePeriod")) {
5519          this.effectivePeriod = new Period();
5520          return this.effectivePeriod;
5521        }
5522        else if (name.equals("code")) {
5523          return addCode();
5524        }
5525        else if (name.equals("item")) {
5526          return addItem();
5527        }
5528        else
5529          return super.addChild(name);
5530      }
5531
5532  public String fhirType() {
5533    return "Questionnaire";
5534
5535  }
5536
5537      public Questionnaire copy() {
5538        Questionnaire dst = new Questionnaire();
5539        copyValues(dst);
5540        return dst;
5541      }
5542
5543      public void copyValues(Questionnaire dst) {
5544        super.copyValues(dst);
5545        dst.url = url == null ? null : url.copy();
5546        if (identifier != null) {
5547          dst.identifier = new ArrayList<Identifier>();
5548          for (Identifier i : identifier)
5549            dst.identifier.add(i.copy());
5550        };
5551        dst.version = version == null ? null : version.copy();
5552        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
5553        dst.name = name == null ? null : name.copy();
5554        dst.title = title == null ? null : title.copy();
5555        if (derivedFrom != null) {
5556          dst.derivedFrom = new ArrayList<CanonicalType>();
5557          for (CanonicalType i : derivedFrom)
5558            dst.derivedFrom.add(i.copy());
5559        };
5560        dst.status = status == null ? null : status.copy();
5561        dst.experimental = experimental == null ? null : experimental.copy();
5562        if (subjectType != null) {
5563          dst.subjectType = new ArrayList<CodeType>();
5564          for (CodeType i : subjectType)
5565            dst.subjectType.add(i.copy());
5566        };
5567        dst.date = date == null ? null : date.copy();
5568        dst.publisher = publisher == null ? null : publisher.copy();
5569        if (contact != null) {
5570          dst.contact = new ArrayList<ContactDetail>();
5571          for (ContactDetail i : contact)
5572            dst.contact.add(i.copy());
5573        };
5574        dst.description = description == null ? null : description.copy();
5575        if (useContext != null) {
5576          dst.useContext = new ArrayList<UsageContext>();
5577          for (UsageContext i : useContext)
5578            dst.useContext.add(i.copy());
5579        };
5580        if (jurisdiction != null) {
5581          dst.jurisdiction = new ArrayList<CodeableConcept>();
5582          for (CodeableConcept i : jurisdiction)
5583            dst.jurisdiction.add(i.copy());
5584        };
5585        dst.purpose = purpose == null ? null : purpose.copy();
5586        dst.copyright = copyright == null ? null : copyright.copy();
5587        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
5588        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
5589        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
5590        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
5591        if (code != null) {
5592          dst.code = new ArrayList<Coding>();
5593          for (Coding i : code)
5594            dst.code.add(i.copy());
5595        };
5596        if (item != null) {
5597          dst.item = new ArrayList<QuestionnaireItemComponent>();
5598          for (QuestionnaireItemComponent i : item)
5599            dst.item.add(i.copy());
5600        };
5601      }
5602
5603      protected Questionnaire typedCopy() {
5604        return copy();
5605      }
5606
5607      @Override
5608      public boolean equalsDeep(Base other_) {
5609        if (!super.equalsDeep(other_))
5610          return false;
5611        if (!(other_ instanceof Questionnaire))
5612          return false;
5613        Questionnaire o = (Questionnaire) other_;
5614        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
5615           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
5616           && compareDeep(derivedFrom, o.derivedFrom, true) && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true)
5617           && compareDeep(subjectType, o.subjectType, true) && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true)
5618           && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true) && compareDeep(useContext, o.useContext, true)
5619           && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true)
5620           && compareDeep(copyrightLabel, o.copyrightLabel, true) && compareDeep(approvalDate, o.approvalDate, true)
5621           && compareDeep(lastReviewDate, o.lastReviewDate, true) && compareDeep(effectivePeriod, o.effectivePeriod, true)
5622           && compareDeep(code, o.code, true) && compareDeep(item, o.item, true);
5623      }
5624
5625      @Override
5626      public boolean equalsShallow(Base other_) {
5627        if (!super.equalsShallow(other_))
5628          return false;
5629        if (!(other_ instanceof Questionnaire))
5630          return false;
5631        Questionnaire o = (Questionnaire) other_;
5632        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
5633           && compareValues(title, o.title, true) && compareValues(derivedFrom, o.derivedFrom, true) && compareValues(status, o.status, true)
5634           && compareValues(experimental, o.experimental, true) && compareValues(subjectType, o.subjectType, true)
5635           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true)
5636           && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(copyrightLabel, o.copyrightLabel, true)
5637           && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true)
5638          ;
5639      }
5640
5641      public boolean isEmpty() {
5642        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
5643          , versionAlgorithm, name, title, derivedFrom, status, experimental, subjectType
5644          , date, publisher, contact, description, useContext, jurisdiction, purpose, copyright
5645          , copyrightLabel, approvalDate, lastReviewDate, effectivePeriod, code, item);
5646      }
5647
5648  @Override
5649  public ResourceType getResourceType() {
5650    return ResourceType.Questionnaire;
5651   }
5652
5653 /**
5654   * Search parameter: <b>context-quantity</b>
5655   * <p>
5656   * Description: <b>Multiple Resources: 
5657
5658* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
5659* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
5660* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
5661* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
5662* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
5663* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
5664* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
5665* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
5666* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
5667* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
5668* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
5669* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
5670* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
5671* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
5672* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
5673* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
5674* [Library](library.html): A quantity- or range-valued use context assigned to the library
5675* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
5676* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
5677* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
5678* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
5679* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
5680* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
5681* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
5682* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
5683* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
5684* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
5685* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
5686* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
5687* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
5688</b><br>
5689   * Type: <b>quantity</b><br>
5690   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
5691   * </p>
5692   */
5693  @SearchParamDefinition(name="context-quantity", path="(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition\r\n* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition\r\n* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide\r\n* [Library](library.html): A quantity- or range-valued use context assigned to the library\r\n* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script\r\n* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set\r\n", type="quantity" )
5694  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
5695 /**
5696   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
5697   * <p>
5698   * Description: <b>Multiple Resources: 
5699
5700* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
5701* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
5702* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
5703* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
5704* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
5705* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
5706* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
5707* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
5708* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
5709* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
5710* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
5711* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
5712* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
5713* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
5714* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
5715* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
5716* [Library](library.html): A quantity- or range-valued use context assigned to the library
5717* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
5718* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
5719* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
5720* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
5721* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
5722* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
5723* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
5724* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
5725* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
5726* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
5727* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
5728* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
5729* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
5730</b><br>
5731   * Type: <b>quantity</b><br>
5732   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
5733   * </p>
5734   */
5735  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
5736
5737 /**
5738   * Search parameter: <b>context-type-quantity</b>
5739   * <p>
5740   * Description: <b>Multiple Resources: 
5741
5742* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
5743* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
5744* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
5745* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
5746* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
5747* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
5748* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
5749* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
5750* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
5751* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
5752* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
5753* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
5754* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
5755* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
5756* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
5757* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
5758* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
5759* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
5760* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
5761* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
5762* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
5763* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
5764* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
5765* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
5766* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
5767* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
5768* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
5769* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
5770* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
5771* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
5772</b><br>
5773   * Type: <b>composite</b><br>
5774   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
5775   * </p>
5776   */
5777  @SearchParamDefinition(name="context-type-quantity", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide\r\n* [Library](library.html): A use context type and quantity- or range-based value assigned to the library\r\n* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context-quantity"} )
5778  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
5779 /**
5780   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
5781   * <p>
5782   * Description: <b>Multiple Resources: 
5783
5784* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
5785* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
5786* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
5787* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
5788* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
5789* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
5790* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
5791* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
5792* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
5793* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
5794* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
5795* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
5796* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
5797* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
5798* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
5799* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
5800* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
5801* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
5802* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
5803* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
5804* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
5805* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
5806* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
5807* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
5808* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
5809* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
5810* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
5811* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
5812* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
5813* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
5814</b><br>
5815   * Type: <b>composite</b><br>
5816   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
5817   * </p>
5818   */
5819  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY);
5820
5821 /**
5822   * Search parameter: <b>context-type-value</b>
5823   * <p>
5824   * Description: <b>Multiple Resources: 
5825
5826* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
5827* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
5828* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
5829* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
5830* [Citation](citation.html): A use context type and value assigned to the citation
5831* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
5832* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
5833* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
5834* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
5835* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
5836* [Evidence](evidence.html): A use context type and value assigned to the evidence
5837* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
5838* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
5839* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
5840* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
5841* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
5842* [Library](library.html): A use context type and value assigned to the library
5843* [Measure](measure.html): A use context type and value assigned to the measure
5844* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
5845* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
5846* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
5847* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
5848* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
5849* [Requirements](requirements.html): A use context type and value assigned to the requirements
5850* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
5851* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
5852* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
5853* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
5854* [TestScript](testscript.html): A use context type and value assigned to the test script
5855* [ValueSet](valueset.html): A use context type and value assigned to the value set
5856</b><br>
5857   * Type: <b>composite</b><br>
5858   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
5859   * </p>
5860   */
5861  @SearchParamDefinition(name="context-type-value", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide\r\n* [Library](library.html): A use context type and value assigned to the library\r\n* [Measure](measure.html): A use context type and value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context"} )
5862  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
5863 /**
5864   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
5865   * <p>
5866   * Description: <b>Multiple Resources: 
5867
5868* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
5869* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
5870* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
5871* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
5872* [Citation](citation.html): A use context type and value assigned to the citation
5873* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
5874* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
5875* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
5876* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
5877* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
5878* [Evidence](evidence.html): A use context type and value assigned to the evidence
5879* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
5880* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
5881* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
5882* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
5883* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
5884* [Library](library.html): A use context type and value assigned to the library
5885* [Measure](measure.html): A use context type and value assigned to the measure
5886* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
5887* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
5888* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
5889* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
5890* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
5891* [Requirements](requirements.html): A use context type and value assigned to the requirements
5892* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
5893* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
5894* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
5895* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
5896* [TestScript](testscript.html): A use context type and value assigned to the test script
5897* [ValueSet](valueset.html): A use context type and value assigned to the value set
5898</b><br>
5899   * Type: <b>composite</b><br>
5900   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
5901   * </p>
5902   */
5903  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE);
5904
5905 /**
5906   * Search parameter: <b>context-type</b>
5907   * <p>
5908   * Description: <b>Multiple Resources: 
5909
5910* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
5911* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
5912* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
5913* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
5914* [Citation](citation.html): A type of use context assigned to the citation
5915* [CodeSystem](codesystem.html): A type of use context assigned to the code system
5916* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
5917* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
5918* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
5919* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
5920* [Evidence](evidence.html): A type of use context assigned to the evidence
5921* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
5922* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
5923* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
5924* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
5925* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
5926* [Library](library.html): A type of use context assigned to the library
5927* [Measure](measure.html): A type of use context assigned to the measure
5928* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
5929* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
5930* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
5931* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
5932* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
5933* [Requirements](requirements.html): A type of use context assigned to the requirements
5934* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
5935* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
5936* [StructureMap](structuremap.html): A type of use context assigned to the structure map
5937* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
5938* [TestScript](testscript.html): A type of use context assigned to the test script
5939* [ValueSet](valueset.html): A type of use context assigned to the value set
5940</b><br>
5941   * Type: <b>token</b><br>
5942   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
5943   * </p>
5944   */
5945  @SearchParamDefinition(name="context-type", path="ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition\r\n* [Citation](citation.html): A type of use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A type of use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition\r\n* [Evidence](evidence.html): A type of use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide\r\n* [Library](library.html): A type of use context assigned to the library\r\n* [Measure](measure.html): A type of use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A type of use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A type of use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A type of use context assigned to the test script\r\n* [ValueSet](valueset.html): A type of use context assigned to the value set\r\n", type="token" )
5946  public static final String SP_CONTEXT_TYPE = "context-type";
5947 /**
5948   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
5949   * <p>
5950   * Description: <b>Multiple Resources: 
5951
5952* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
5953* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
5954* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
5955* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
5956* [Citation](citation.html): A type of use context assigned to the citation
5957* [CodeSystem](codesystem.html): A type of use context assigned to the code system
5958* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
5959* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
5960* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
5961* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
5962* [Evidence](evidence.html): A type of use context assigned to the evidence
5963* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
5964* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
5965* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
5966* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
5967* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
5968* [Library](library.html): A type of use context assigned to the library
5969* [Measure](measure.html): A type of use context assigned to the measure
5970* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
5971* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
5972* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
5973* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
5974* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
5975* [Requirements](requirements.html): A type of use context assigned to the requirements
5976* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
5977* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
5978* [StructureMap](structuremap.html): A type of use context assigned to the structure map
5979* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
5980* [TestScript](testscript.html): A type of use context assigned to the test script
5981* [ValueSet](valueset.html): A type of use context assigned to the value set
5982</b><br>
5983   * Type: <b>token</b><br>
5984   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
5985   * </p>
5986   */
5987  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
5988
5989 /**
5990   * Search parameter: <b>context</b>
5991   * <p>
5992   * Description: <b>Multiple Resources: 
5993
5994* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
5995* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
5996* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
5997* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
5998* [Citation](citation.html): A use context assigned to the citation
5999* [CodeSystem](codesystem.html): A use context assigned to the code system
6000* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
6001* [ConceptMap](conceptmap.html): A use context assigned to the concept map
6002* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
6003* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
6004* [Evidence](evidence.html): A use context assigned to the evidence
6005* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
6006* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
6007* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
6008* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
6009* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
6010* [Library](library.html): A use context assigned to the library
6011* [Measure](measure.html): A use context assigned to the measure
6012* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
6013* [NamingSystem](namingsystem.html): A use context assigned to the naming system
6014* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
6015* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
6016* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
6017* [Requirements](requirements.html): A use context assigned to the requirements
6018* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
6019* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
6020* [StructureMap](structuremap.html): A use context assigned to the structure map
6021* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
6022* [TestScript](testscript.html): A use context assigned to the test script
6023* [ValueSet](valueset.html): A use context assigned to the value set
6024</b><br>
6025   * Type: <b>token</b><br>
6026   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
6027   * </p>
6028   */
6029  @SearchParamDefinition(name="context", path="(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition\r\n* [Citation](citation.html): A use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context assigned to the event definition\r\n* [Evidence](evidence.html): A use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide\r\n* [Library](library.html): A use context assigned to the library\r\n* [Measure](measure.html): A use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context assigned to the test script\r\n* [ValueSet](valueset.html): A use context assigned to the value set\r\n", type="token" )
6030  public static final String SP_CONTEXT = "context";
6031 /**
6032   * <b>Fluent Client</b> search parameter constant for <b>context</b>
6033   * <p>
6034   * Description: <b>Multiple Resources: 
6035
6036* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
6037* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
6038* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
6039* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
6040* [Citation](citation.html): A use context assigned to the citation
6041* [CodeSystem](codesystem.html): A use context assigned to the code system
6042* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
6043* [ConceptMap](conceptmap.html): A use context assigned to the concept map
6044* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
6045* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
6046* [Evidence](evidence.html): A use context assigned to the evidence
6047* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
6048* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
6049* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
6050* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
6051* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
6052* [Library](library.html): A use context assigned to the library
6053* [Measure](measure.html): A use context assigned to the measure
6054* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
6055* [NamingSystem](namingsystem.html): A use context assigned to the naming system
6056* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
6057* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
6058* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
6059* [Requirements](requirements.html): A use context assigned to the requirements
6060* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
6061* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
6062* [StructureMap](structuremap.html): A use context assigned to the structure map
6063* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
6064* [TestScript](testscript.html): A use context assigned to the test script
6065* [ValueSet](valueset.html): A use context assigned to the value set
6066</b><br>
6067   * Type: <b>token</b><br>
6068   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
6069   * </p>
6070   */
6071  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
6072
6073 /**
6074   * Search parameter: <b>date</b>
6075   * <p>
6076   * Description: <b>Multiple Resources: 
6077
6078* [ActivityDefinition](activitydefinition.html): The activity definition publication date
6079* [ActorDefinition](actordefinition.html): The Actor Definition publication date
6080* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
6081* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
6082* [Citation](citation.html): The citation publication date
6083* [CodeSystem](codesystem.html): The code system publication date
6084* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
6085* [ConceptMap](conceptmap.html): The concept map publication date
6086* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
6087* [EventDefinition](eventdefinition.html): The event definition publication date
6088* [Evidence](evidence.html): The evidence publication date
6089* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
6090* [ExampleScenario](examplescenario.html): The example scenario publication date
6091* [GraphDefinition](graphdefinition.html): The graph definition publication date
6092* [ImplementationGuide](implementationguide.html): The implementation guide publication date
6093* [Library](library.html): The library publication date
6094* [Measure](measure.html): The measure publication date
6095* [MessageDefinition](messagedefinition.html): The message definition publication date
6096* [NamingSystem](namingsystem.html): The naming system publication date
6097* [OperationDefinition](operationdefinition.html): The operation definition publication date
6098* [PlanDefinition](plandefinition.html): The plan definition publication date
6099* [Questionnaire](questionnaire.html): The questionnaire publication date
6100* [Requirements](requirements.html): The requirements publication date
6101* [SearchParameter](searchparameter.html): The search parameter publication date
6102* [StructureDefinition](structuredefinition.html): The structure definition publication date
6103* [StructureMap](structuremap.html): The structure map publication date
6104* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
6105* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
6106* [TestScript](testscript.html): The test script publication date
6107* [ValueSet](valueset.html): The value set publication date
6108</b><br>
6109   * Type: <b>date</b><br>
6110   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
6111   * </p>
6112   */
6113  @SearchParamDefinition(name="date", path="ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The activity definition publication date\r\n* [ActorDefinition](actordefinition.html): The Actor Definition publication date\r\n* [CapabilityStatement](capabilitystatement.html): The capability statement publication date\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date\r\n* [Citation](citation.html): The citation publication date\r\n* [CodeSystem](codesystem.html): The code system publication date\r\n* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date\r\n* [ConceptMap](conceptmap.html): The concept map publication date\r\n* [ConditionDefinition](conditiondefinition.html): The condition definition publication date\r\n* [EventDefinition](eventdefinition.html): The event definition publication date\r\n* [Evidence](evidence.html): The evidence publication date\r\n* [EvidenceVariable](evidencevariable.html): The evidence variable publication date\r\n* [ExampleScenario](examplescenario.html): The example scenario publication date\r\n* [GraphDefinition](graphdefinition.html): The graph definition publication date\r\n* [ImplementationGuide](implementationguide.html): The implementation guide publication date\r\n* [Library](library.html): The library publication date\r\n* [Measure](measure.html): The measure publication date\r\n* [MessageDefinition](messagedefinition.html): The message definition publication date\r\n* [NamingSystem](namingsystem.html): The naming system publication date\r\n* [OperationDefinition](operationdefinition.html): The operation definition publication date\r\n* [PlanDefinition](plandefinition.html): The plan definition publication date\r\n* [Questionnaire](questionnaire.html): The questionnaire publication date\r\n* [Requirements](requirements.html): The requirements publication date\r\n* [SearchParameter](searchparameter.html): The search parameter publication date\r\n* [StructureDefinition](structuredefinition.html): The structure definition publication date\r\n* [StructureMap](structuremap.html): The structure map publication date\r\n* [SubscriptionTopic](subscriptiontopic.html): Date status first applied\r\n* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date\r\n* [TestScript](testscript.html): The test script publication date\r\n* [ValueSet](valueset.html): The value set publication date\r\n", type="date" )
6114  public static final String SP_DATE = "date";
6115 /**
6116   * <b>Fluent Client</b> search parameter constant for <b>date</b>
6117   * <p>
6118   * Description: <b>Multiple Resources: 
6119
6120* [ActivityDefinition](activitydefinition.html): The activity definition publication date
6121* [ActorDefinition](actordefinition.html): The Actor Definition publication date
6122* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
6123* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
6124* [Citation](citation.html): The citation publication date
6125* [CodeSystem](codesystem.html): The code system publication date
6126* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
6127* [ConceptMap](conceptmap.html): The concept map publication date
6128* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
6129* [EventDefinition](eventdefinition.html): The event definition publication date
6130* [Evidence](evidence.html): The evidence publication date
6131* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
6132* [ExampleScenario](examplescenario.html): The example scenario publication date
6133* [GraphDefinition](graphdefinition.html): The graph definition publication date
6134* [ImplementationGuide](implementationguide.html): The implementation guide publication date
6135* [Library](library.html): The library publication date
6136* [Measure](measure.html): The measure publication date
6137* [MessageDefinition](messagedefinition.html): The message definition publication date
6138* [NamingSystem](namingsystem.html): The naming system publication date
6139* [OperationDefinition](operationdefinition.html): The operation definition publication date
6140* [PlanDefinition](plandefinition.html): The plan definition publication date
6141* [Questionnaire](questionnaire.html): The questionnaire publication date
6142* [Requirements](requirements.html): The requirements publication date
6143* [SearchParameter](searchparameter.html): The search parameter publication date
6144* [StructureDefinition](structuredefinition.html): The structure definition publication date
6145* [StructureMap](structuremap.html): The structure map publication date
6146* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
6147* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
6148* [TestScript](testscript.html): The test script publication date
6149* [ValueSet](valueset.html): The value set publication date
6150</b><br>
6151   * Type: <b>date</b><br>
6152   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
6153   * </p>
6154   */
6155  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
6156
6157 /**
6158   * Search parameter: <b>description</b>
6159   * <p>
6160   * Description: <b>Multiple Resources: 
6161
6162* [ActivityDefinition](activitydefinition.html): The description of the activity definition
6163* [ActorDefinition](actordefinition.html): The description of the Actor Definition
6164* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
6165* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
6166* [Citation](citation.html): The description of the citation
6167* [CodeSystem](codesystem.html): The description of the code system
6168* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
6169* [ConceptMap](conceptmap.html): The description of the concept map
6170* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
6171* [EventDefinition](eventdefinition.html): The description of the event definition
6172* [Evidence](evidence.html): The description of the evidence
6173* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
6174* [GraphDefinition](graphdefinition.html): The description of the graph definition
6175* [ImplementationGuide](implementationguide.html): The description of the implementation guide
6176* [Library](library.html): The description of the library
6177* [Measure](measure.html): The description of the measure
6178* [MessageDefinition](messagedefinition.html): The description of the message definition
6179* [NamingSystem](namingsystem.html): The description of the naming system
6180* [OperationDefinition](operationdefinition.html): The description of the operation definition
6181* [PlanDefinition](plandefinition.html): The description of the plan definition
6182* [Questionnaire](questionnaire.html): The description of the questionnaire
6183* [Requirements](requirements.html): The description of the requirements
6184* [SearchParameter](searchparameter.html): The description of the search parameter
6185* [StructureDefinition](structuredefinition.html): The description of the structure definition
6186* [StructureMap](structuremap.html): The description of the structure map
6187* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
6188* [TestScript](testscript.html): The description of the test script
6189* [ValueSet](valueset.html): The description of the value set
6190</b><br>
6191   * Type: <b>string</b><br>
6192   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
6193   * </p>
6194   */
6195  @SearchParamDefinition(name="description", path="ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The description of the activity definition\r\n* [ActorDefinition](actordefinition.html): The description of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The description of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition\r\n* [Citation](citation.html): The description of the citation\r\n* [CodeSystem](codesystem.html): The description of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition\r\n* [ConceptMap](conceptmap.html): The description of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The description of the condition definition\r\n* [EventDefinition](eventdefinition.html): The description of the event definition\r\n* [Evidence](evidence.html): The description of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The description of the evidence variable\r\n* [GraphDefinition](graphdefinition.html): The description of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The description of the implementation guide\r\n* [Library](library.html): The description of the library\r\n* [Measure](measure.html): The description of the measure\r\n* [MessageDefinition](messagedefinition.html): The description of the message definition\r\n* [NamingSystem](namingsystem.html): The description of the naming system\r\n* [OperationDefinition](operationdefinition.html): The description of the operation definition\r\n* [PlanDefinition](plandefinition.html): The description of the plan definition\r\n* [Questionnaire](questionnaire.html): The description of the questionnaire\r\n* [Requirements](requirements.html): The description of the requirements\r\n* [SearchParameter](searchparameter.html): The description of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The description of the structure definition\r\n* [StructureMap](structuremap.html): The description of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities\r\n* [TestScript](testscript.html): The description of the test script\r\n* [ValueSet](valueset.html): The description of the value set\r\n", type="string" )
6196  public static final String SP_DESCRIPTION = "description";
6197 /**
6198   * <b>Fluent Client</b> search parameter constant for <b>description</b>
6199   * <p>
6200   * Description: <b>Multiple Resources: 
6201
6202* [ActivityDefinition](activitydefinition.html): The description of the activity definition
6203* [ActorDefinition](actordefinition.html): The description of the Actor Definition
6204* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
6205* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
6206* [Citation](citation.html): The description of the citation
6207* [CodeSystem](codesystem.html): The description of the code system
6208* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
6209* [ConceptMap](conceptmap.html): The description of the concept map
6210* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
6211* [EventDefinition](eventdefinition.html): The description of the event definition
6212* [Evidence](evidence.html): The description of the evidence
6213* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
6214* [GraphDefinition](graphdefinition.html): The description of the graph definition
6215* [ImplementationGuide](implementationguide.html): The description of the implementation guide
6216* [Library](library.html): The description of the library
6217* [Measure](measure.html): The description of the measure
6218* [MessageDefinition](messagedefinition.html): The description of the message definition
6219* [NamingSystem](namingsystem.html): The description of the naming system
6220* [OperationDefinition](operationdefinition.html): The description of the operation definition
6221* [PlanDefinition](plandefinition.html): The description of the plan definition
6222* [Questionnaire](questionnaire.html): The description of the questionnaire
6223* [Requirements](requirements.html): The description of the requirements
6224* [SearchParameter](searchparameter.html): The description of the search parameter
6225* [StructureDefinition](structuredefinition.html): The description of the structure definition
6226* [StructureMap](structuremap.html): The description of the structure map
6227* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
6228* [TestScript](testscript.html): The description of the test script
6229* [ValueSet](valueset.html): The description of the value set
6230</b><br>
6231   * Type: <b>string</b><br>
6232   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
6233   * </p>
6234   */
6235  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
6236
6237 /**
6238   * Search parameter: <b>identifier</b>
6239   * <p>
6240   * Description: <b>Multiple Resources: 
6241
6242* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
6243* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
6244* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
6245* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
6246* [Citation](citation.html): External identifier for the citation
6247* [CodeSystem](codesystem.html): External identifier for the code system
6248* [ConceptMap](conceptmap.html): External identifier for the concept map
6249* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
6250* [EventDefinition](eventdefinition.html): External identifier for the event definition
6251* [Evidence](evidence.html): External identifier for the evidence
6252* [EvidenceReport](evidencereport.html): External identifier for the evidence report
6253* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
6254* [ExampleScenario](examplescenario.html): External identifier for the example scenario
6255* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
6256* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
6257* [Library](library.html): External identifier for the library
6258* [Measure](measure.html): External identifier for the measure
6259* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
6260* [MessageDefinition](messagedefinition.html): External identifier for the message definition
6261* [NamingSystem](namingsystem.html): External identifier for the naming system
6262* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
6263* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
6264* [PlanDefinition](plandefinition.html): External identifier for the plan definition
6265* [Questionnaire](questionnaire.html): External identifier for the questionnaire
6266* [Requirements](requirements.html): External identifier for the requirements
6267* [SearchParameter](searchparameter.html): External identifier for the search parameter
6268* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
6269* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
6270* [StructureMap](structuremap.html): External identifier for the structure map
6271* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
6272* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
6273* [TestPlan](testplan.html): An identifier for the test plan
6274* [TestScript](testscript.html): External identifier for the test script
6275* [ValueSet](valueset.html): External identifier for the value set
6276</b><br>
6277   * Type: <b>token</b><br>
6278   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
6279   * </p>
6280   */
6281  @SearchParamDefinition(name="identifier", path="ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition\r\n* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition\r\n* [Citation](citation.html): External identifier for the citation\r\n* [CodeSystem](codesystem.html): External identifier for the code system\r\n* [ConceptMap](conceptmap.html): External identifier for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition\r\n* [EventDefinition](eventdefinition.html): External identifier for the event definition\r\n* [Evidence](evidence.html): External identifier for the evidence\r\n* [EvidenceReport](evidencereport.html): External identifier for the evidence report\r\n* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable\r\n* [ExampleScenario](examplescenario.html): External identifier for the example scenario\r\n* [GraphDefinition](graphdefinition.html): External identifier for the graph definition\r\n* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide\r\n* [Library](library.html): External identifier for the library\r\n* [Measure](measure.html): External identifier for the measure\r\n* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication\r\n* [MessageDefinition](messagedefinition.html): External identifier for the message definition\r\n* [NamingSystem](namingsystem.html): External identifier for the naming system\r\n* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition\r\n* [OperationDefinition](operationdefinition.html): External identifier for the search parameter\r\n* [PlanDefinition](plandefinition.html): External identifier for the plan definition\r\n* [Questionnaire](questionnaire.html): External identifier for the questionnaire\r\n* [Requirements](requirements.html): External identifier for the requirements\r\n* [SearchParameter](searchparameter.html): External identifier for the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): External identifier for the structure definition\r\n* [StructureMap](structuremap.html): External identifier for the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic\r\n* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities\r\n* [TestPlan](testplan.html): An identifier for the test plan\r\n* [TestScript](testscript.html): External identifier for the test script\r\n* [ValueSet](valueset.html): External identifier for the value set\r\n", type="token" )
6282  public static final String SP_IDENTIFIER = "identifier";
6283 /**
6284   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
6285   * <p>
6286   * Description: <b>Multiple Resources: 
6287
6288* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
6289* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
6290* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
6291* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
6292* [Citation](citation.html): External identifier for the citation
6293* [CodeSystem](codesystem.html): External identifier for the code system
6294* [ConceptMap](conceptmap.html): External identifier for the concept map
6295* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
6296* [EventDefinition](eventdefinition.html): External identifier for the event definition
6297* [Evidence](evidence.html): External identifier for the evidence
6298* [EvidenceReport](evidencereport.html): External identifier for the evidence report
6299* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
6300* [ExampleScenario](examplescenario.html): External identifier for the example scenario
6301* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
6302* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
6303* [Library](library.html): External identifier for the library
6304* [Measure](measure.html): External identifier for the measure
6305* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
6306* [MessageDefinition](messagedefinition.html): External identifier for the message definition
6307* [NamingSystem](namingsystem.html): External identifier for the naming system
6308* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
6309* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
6310* [PlanDefinition](plandefinition.html): External identifier for the plan definition
6311* [Questionnaire](questionnaire.html): External identifier for the questionnaire
6312* [Requirements](requirements.html): External identifier for the requirements
6313* [SearchParameter](searchparameter.html): External identifier for the search parameter
6314* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
6315* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
6316* [StructureMap](structuremap.html): External identifier for the structure map
6317* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
6318* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
6319* [TestPlan](testplan.html): An identifier for the test plan
6320* [TestScript](testscript.html): External identifier for the test script
6321* [ValueSet](valueset.html): External identifier for the value set
6322</b><br>
6323   * Type: <b>token</b><br>
6324   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
6325   * </p>
6326   */
6327  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
6328
6329 /**
6330   * Search parameter: <b>jurisdiction</b>
6331   * <p>
6332   * Description: <b>Multiple Resources: 
6333
6334* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
6335* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
6336* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
6337* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
6338* [Citation](citation.html): Intended jurisdiction for the citation
6339* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
6340* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
6341* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
6342* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
6343* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
6344* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
6345* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
6346* [Library](library.html): Intended jurisdiction for the library
6347* [Measure](measure.html): Intended jurisdiction for the measure
6348* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
6349* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
6350* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
6351* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
6352* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
6353* [Requirements](requirements.html): Intended jurisdiction for the requirements
6354* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
6355* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
6356* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
6357* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
6358* [TestScript](testscript.html): Intended jurisdiction for the test script
6359* [ValueSet](valueset.html): Intended jurisdiction for the value set
6360</b><br>
6361   * Type: <b>token</b><br>
6362   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
6363   * </p>
6364   */
6365  @SearchParamDefinition(name="jurisdiction", path="ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition\r\n* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition\r\n* [Citation](citation.html): Intended jurisdiction for the citation\r\n* [CodeSystem](codesystem.html): Intended jurisdiction for the code system\r\n* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition\r\n* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition\r\n* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario\r\n* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition\r\n* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide\r\n* [Library](library.html): Intended jurisdiction for the library\r\n* [Measure](measure.html): Intended jurisdiction for the measure\r\n* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition\r\n* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system\r\n* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition\r\n* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition\r\n* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire\r\n* [Requirements](requirements.html): Intended jurisdiction for the requirements\r\n* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter\r\n* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition\r\n* [StructureMap](structuremap.html): Intended jurisdiction for the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities\r\n* [TestScript](testscript.html): Intended jurisdiction for the test script\r\n* [ValueSet](valueset.html): Intended jurisdiction for the value set\r\n", type="token" )
6366  public static final String SP_JURISDICTION = "jurisdiction";
6367 /**
6368   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
6369   * <p>
6370   * Description: <b>Multiple Resources: 
6371
6372* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
6373* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
6374* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
6375* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
6376* [Citation](citation.html): Intended jurisdiction for the citation
6377* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
6378* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
6379* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
6380* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
6381* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
6382* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
6383* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
6384* [Library](library.html): Intended jurisdiction for the library
6385* [Measure](measure.html): Intended jurisdiction for the measure
6386* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
6387* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
6388* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
6389* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
6390* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
6391* [Requirements](requirements.html): Intended jurisdiction for the requirements
6392* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
6393* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
6394* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
6395* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
6396* [TestScript](testscript.html): Intended jurisdiction for the test script
6397* [ValueSet](valueset.html): Intended jurisdiction for the value set
6398</b><br>
6399   * Type: <b>token</b><br>
6400   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
6401   * </p>
6402   */
6403  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
6404
6405 /**
6406   * Search parameter: <b>name</b>
6407   * <p>
6408   * Description: <b>Multiple Resources: 
6409
6410* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
6411* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
6412* [Citation](citation.html): Computationally friendly name of the citation
6413* [CodeSystem](codesystem.html): Computationally friendly name of the code system
6414* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
6415* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
6416* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
6417* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
6418* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
6419* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
6420* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
6421* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
6422* [Library](library.html): Computationally friendly name of the library
6423* [Measure](measure.html): Computationally friendly name of the measure
6424* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
6425* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
6426* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
6427* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
6428* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
6429* [Requirements](requirements.html): Computationally friendly name of the requirements
6430* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
6431* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
6432* [StructureMap](structuremap.html): Computationally friendly name of the structure map
6433* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
6434* [TestScript](testscript.html): Computationally friendly name of the test script
6435* [ValueSet](valueset.html): Computationally friendly name of the value set
6436</b><br>
6437   * Type: <b>string</b><br>
6438   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
6439   * </p>
6440   */
6441  @SearchParamDefinition(name="name", path="ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition\r\n* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement\r\n* [Citation](citation.html): Computationally friendly name of the citation\r\n* [CodeSystem](codesystem.html): Computationally friendly name of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition\r\n* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition\r\n* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide\r\n* [Library](library.html): Computationally friendly name of the library\r\n* [Measure](measure.html): Computationally friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition\r\n* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system\r\n* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire\r\n* [Requirements](requirements.html): Computationally friendly name of the requirements\r\n* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition\r\n* [StructureMap](structuremap.html): Computationally friendly name of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): Computationally friendly name of the test script\r\n* [ValueSet](valueset.html): Computationally friendly name of the value set\r\n", type="string" )
6442  public static final String SP_NAME = "name";
6443 /**
6444   * <b>Fluent Client</b> search parameter constant for <b>name</b>
6445   * <p>
6446   * Description: <b>Multiple Resources: 
6447
6448* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
6449* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
6450* [Citation](citation.html): Computationally friendly name of the citation
6451* [CodeSystem](codesystem.html): Computationally friendly name of the code system
6452* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
6453* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
6454* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
6455* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
6456* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
6457* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
6458* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
6459* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
6460* [Library](library.html): Computationally friendly name of the library
6461* [Measure](measure.html): Computationally friendly name of the measure
6462* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
6463* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
6464* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
6465* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
6466* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
6467* [Requirements](requirements.html): Computationally friendly name of the requirements
6468* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
6469* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
6470* [StructureMap](structuremap.html): Computationally friendly name of the structure map
6471* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
6472* [TestScript](testscript.html): Computationally friendly name of the test script
6473* [ValueSet](valueset.html): Computationally friendly name of the value set
6474</b><br>
6475   * Type: <b>string</b><br>
6476   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
6477   * </p>
6478   */
6479  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
6480
6481 /**
6482   * Search parameter: <b>publisher</b>
6483   * <p>
6484   * Description: <b>Multiple Resources: 
6485
6486* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
6487* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
6488* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
6489* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
6490* [Citation](citation.html): Name of the publisher of the citation
6491* [CodeSystem](codesystem.html): Name of the publisher of the code system
6492* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
6493* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
6494* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
6495* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
6496* [Evidence](evidence.html): Name of the publisher of the evidence
6497* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
6498* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
6499* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
6500* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
6501* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
6502* [Library](library.html): Name of the publisher of the library
6503* [Measure](measure.html): Name of the publisher of the measure
6504* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
6505* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
6506* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
6507* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
6508* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
6509* [Requirements](requirements.html): Name of the publisher of the requirements
6510* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
6511* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
6512* [StructureMap](structuremap.html): Name of the publisher of the structure map
6513* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
6514* [TestScript](testscript.html): Name of the publisher of the test script
6515* [ValueSet](valueset.html): Name of the publisher of the value set
6516</b><br>
6517   * Type: <b>string</b><br>
6518   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
6519   * </p>
6520   */
6521  @SearchParamDefinition(name="publisher", path="ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition\r\n* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition\r\n* [Citation](citation.html): Name of the publisher of the citation\r\n* [CodeSystem](codesystem.html): Name of the publisher of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition\r\n* [ConceptMap](conceptmap.html): Name of the publisher of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition\r\n* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition\r\n* [Evidence](evidence.html): Name of the publisher of the evidence\r\n* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide\r\n* [Library](library.html): Name of the publisher of the library\r\n* [Measure](measure.html): Name of the publisher of the measure\r\n* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition\r\n* [NamingSystem](namingsystem.html): Name of the publisher of the naming system\r\n* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition\r\n* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition\r\n* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire\r\n* [Requirements](requirements.html): Name of the publisher of the requirements\r\n* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition\r\n* [StructureMap](structuremap.html): Name of the publisher of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities\r\n* [TestScript](testscript.html): Name of the publisher of the test script\r\n* [ValueSet](valueset.html): Name of the publisher of the value set\r\n", type="string" )
6522  public static final String SP_PUBLISHER = "publisher";
6523 /**
6524   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
6525   * <p>
6526   * Description: <b>Multiple Resources: 
6527
6528* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
6529* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
6530* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
6531* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
6532* [Citation](citation.html): Name of the publisher of the citation
6533* [CodeSystem](codesystem.html): Name of the publisher of the code system
6534* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
6535* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
6536* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
6537* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
6538* [Evidence](evidence.html): Name of the publisher of the evidence
6539* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
6540* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
6541* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
6542* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
6543* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
6544* [Library](library.html): Name of the publisher of the library
6545* [Measure](measure.html): Name of the publisher of the measure
6546* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
6547* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
6548* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
6549* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
6550* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
6551* [Requirements](requirements.html): Name of the publisher of the requirements
6552* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
6553* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
6554* [StructureMap](structuremap.html): Name of the publisher of the structure map
6555* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
6556* [TestScript](testscript.html): Name of the publisher of the test script
6557* [ValueSet](valueset.html): Name of the publisher of the value set
6558</b><br>
6559   * Type: <b>string</b><br>
6560   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
6561   * </p>
6562   */
6563  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
6564
6565 /**
6566   * Search parameter: <b>status</b>
6567   * <p>
6568   * Description: <b>Multiple Resources: 
6569
6570* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
6571* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
6572* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
6573* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
6574* [Citation](citation.html): The current status of the citation
6575* [CodeSystem](codesystem.html): The current status of the code system
6576* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
6577* [ConceptMap](conceptmap.html): The current status of the concept map
6578* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
6579* [EventDefinition](eventdefinition.html): The current status of the event definition
6580* [Evidence](evidence.html): The current status of the evidence
6581* [EvidenceReport](evidencereport.html): The current status of the evidence report
6582* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
6583* [ExampleScenario](examplescenario.html): The current status of the example scenario
6584* [GraphDefinition](graphdefinition.html): The current status of the graph definition
6585* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
6586* [Library](library.html): The current status of the library
6587* [Measure](measure.html): The current status of the measure
6588* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
6589* [MessageDefinition](messagedefinition.html): The current status of the message definition
6590* [NamingSystem](namingsystem.html): The current status of the naming system
6591* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
6592* [OperationDefinition](operationdefinition.html): The current status of the operation definition
6593* [PlanDefinition](plandefinition.html): The current status of the plan definition
6594* [Questionnaire](questionnaire.html): The current status of the questionnaire
6595* [Requirements](requirements.html): The current status of the requirements
6596* [SearchParameter](searchparameter.html): The current status of the search parameter
6597* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
6598* [StructureDefinition](structuredefinition.html): The current status of the structure definition
6599* [StructureMap](structuremap.html): The current status of the structure map
6600* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
6601* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
6602* [TestPlan](testplan.html): The current status of the test plan
6603* [TestScript](testscript.html): The current status of the test script
6604* [ValueSet](valueset.html): The current status of the value set
6605</b><br>
6606   * Type: <b>token</b><br>
6607   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
6608   * </p>
6609   */
6610  @SearchParamDefinition(name="status", path="ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The current status of the activity definition\r\n* [ActorDefinition](actordefinition.html): The current status of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition\r\n* [Citation](citation.html): The current status of the citation\r\n* [CodeSystem](codesystem.html): The current status of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition\r\n* [ConceptMap](conceptmap.html): The current status of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition\r\n* [EventDefinition](eventdefinition.html): The current status of the event definition\r\n* [Evidence](evidence.html): The current status of the evidence\r\n* [EvidenceReport](evidencereport.html): The current status of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable\r\n* [ExampleScenario](examplescenario.html): The current status of the example scenario\r\n* [GraphDefinition](graphdefinition.html): The current status of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The current status of the implementation guide\r\n* [Library](library.html): The current status of the library\r\n* [Measure](measure.html): The current status of the measure\r\n* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error\r\n* [MessageDefinition](messagedefinition.html): The current status of the message definition\r\n* [NamingSystem](namingsystem.html): The current status of the naming system\r\n* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown\r\n* [OperationDefinition](operationdefinition.html): The current status of the operation definition\r\n* [PlanDefinition](plandefinition.html): The current status of the plan definition\r\n* [Questionnaire](questionnaire.html): The current status of the questionnaire\r\n* [Requirements](requirements.html): The current status of the requirements\r\n* [SearchParameter](searchparameter.html): The current status of the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown\r\n* [StructureDefinition](structuredefinition.html): The current status of the structure definition\r\n* [StructureMap](structuremap.html): The current status of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown\r\n* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities\r\n* [TestPlan](testplan.html): The current status of the test plan\r\n* [TestScript](testscript.html): The current status of the test script\r\n* [ValueSet](valueset.html): The current status of the value set\r\n", type="token" )
6611  public static final String SP_STATUS = "status";
6612 /**
6613   * <b>Fluent Client</b> search parameter constant for <b>status</b>
6614   * <p>
6615   * Description: <b>Multiple Resources: 
6616
6617* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
6618* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
6619* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
6620* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
6621* [Citation](citation.html): The current status of the citation
6622* [CodeSystem](codesystem.html): The current status of the code system
6623* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
6624* [ConceptMap](conceptmap.html): The current status of the concept map
6625* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
6626* [EventDefinition](eventdefinition.html): The current status of the event definition
6627* [Evidence](evidence.html): The current status of the evidence
6628* [EvidenceReport](evidencereport.html): The current status of the evidence report
6629* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
6630* [ExampleScenario](examplescenario.html): The current status of the example scenario
6631* [GraphDefinition](graphdefinition.html): The current status of the graph definition
6632* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
6633* [Library](library.html): The current status of the library
6634* [Measure](measure.html): The current status of the measure
6635* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
6636* [MessageDefinition](messagedefinition.html): The current status of the message definition
6637* [NamingSystem](namingsystem.html): The current status of the naming system
6638* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
6639* [OperationDefinition](operationdefinition.html): The current status of the operation definition
6640* [PlanDefinition](plandefinition.html): The current status of the plan definition
6641* [Questionnaire](questionnaire.html): The current status of the questionnaire
6642* [Requirements](requirements.html): The current status of the requirements
6643* [SearchParameter](searchparameter.html): The current status of the search parameter
6644* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
6645* [StructureDefinition](structuredefinition.html): The current status of the structure definition
6646* [StructureMap](structuremap.html): The current status of the structure map
6647* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
6648* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
6649* [TestPlan](testplan.html): The current status of the test plan
6650* [TestScript](testscript.html): The current status of the test script
6651* [ValueSet](valueset.html): The current status of the value set
6652</b><br>
6653   * Type: <b>token</b><br>
6654   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
6655   * </p>
6656   */
6657  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
6658
6659 /**
6660   * Search parameter: <b>title</b>
6661   * <p>
6662   * Description: <b>Multiple Resources: 
6663
6664* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
6665* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
6666* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
6667* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
6668* [Citation](citation.html): The human-friendly name of the citation
6669* [CodeSystem](codesystem.html): The human-friendly name of the code system
6670* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
6671* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
6672* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
6673* [Evidence](evidence.html): The human-friendly name of the evidence
6674* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
6675* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
6676* [Library](library.html): The human-friendly name of the library
6677* [Measure](measure.html): The human-friendly name of the measure
6678* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
6679* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
6680* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
6681* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
6682* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
6683* [Requirements](requirements.html): The human-friendly name of the requirements
6684* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
6685* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
6686* [StructureMap](structuremap.html): The human-friendly name of the structure map
6687* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
6688* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
6689* [TestScript](testscript.html): The human-friendly name of the test script
6690* [ValueSet](valueset.html): The human-friendly name of the value set
6691</b><br>
6692   * Type: <b>string</b><br>
6693   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
6694   * </p>
6695   */
6696  @SearchParamDefinition(name="title", path="ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition\r\n* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition\r\n* [Citation](citation.html): The human-friendly name of the citation\r\n* [CodeSystem](codesystem.html): The human-friendly name of the code system\r\n* [ConceptMap](conceptmap.html): The human-friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition\r\n* [Evidence](evidence.html): The human-friendly name of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable\r\n* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide\r\n* [Library](library.html): The human-friendly name of the library\r\n* [Measure](measure.html): The human-friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition\r\n* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition\r\n* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire\r\n* [Requirements](requirements.html): The human-friendly name of the requirements\r\n* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition\r\n* [StructureMap](structuremap.html): The human-friendly name of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): The human-friendly name of the test script\r\n* [ValueSet](valueset.html): The human-friendly name of the value set\r\n", type="string" )
6697  public static final String SP_TITLE = "title";
6698 /**
6699   * <b>Fluent Client</b> search parameter constant for <b>title</b>
6700   * <p>
6701   * Description: <b>Multiple Resources: 
6702
6703* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
6704* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
6705* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
6706* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
6707* [Citation](citation.html): The human-friendly name of the citation
6708* [CodeSystem](codesystem.html): The human-friendly name of the code system
6709* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
6710* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
6711* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
6712* [Evidence](evidence.html): The human-friendly name of the evidence
6713* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
6714* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
6715* [Library](library.html): The human-friendly name of the library
6716* [Measure](measure.html): The human-friendly name of the measure
6717* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
6718* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
6719* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
6720* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
6721* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
6722* [Requirements](requirements.html): The human-friendly name of the requirements
6723* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
6724* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
6725* [StructureMap](structuremap.html): The human-friendly name of the structure map
6726* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
6727* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
6728* [TestScript](testscript.html): The human-friendly name of the test script
6729* [ValueSet](valueset.html): The human-friendly name of the value set
6730</b><br>
6731   * Type: <b>string</b><br>
6732   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
6733   * </p>
6734   */
6735  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
6736
6737 /**
6738   * Search parameter: <b>url</b>
6739   * <p>
6740   * Description: <b>Multiple Resources: 
6741
6742* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
6743* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
6744* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
6745* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
6746* [Citation](citation.html): The uri that identifies the citation
6747* [CodeSystem](codesystem.html): The uri that identifies the code system
6748* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
6749* [ConceptMap](conceptmap.html): The URI that identifies the concept map
6750* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
6751* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
6752* [Evidence](evidence.html): The uri that identifies the evidence
6753* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
6754* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
6755* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
6756* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
6757* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
6758* [Library](library.html): The uri that identifies the library
6759* [Measure](measure.html): The uri that identifies the measure
6760* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
6761* [NamingSystem](namingsystem.html): The uri that identifies the naming system
6762* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
6763* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
6764* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
6765* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
6766* [Requirements](requirements.html): The uri that identifies the requirements
6767* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
6768* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
6769* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
6770* [StructureMap](structuremap.html): The uri that identifies the structure map
6771* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
6772* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
6773* [TestPlan](testplan.html): The uri that identifies the test plan
6774* [TestScript](testscript.html): The uri that identifies the test script
6775* [ValueSet](valueset.html): The uri that identifies the value set
6776</b><br>
6777   * Type: <b>uri</b><br>
6778   * Path: <b>ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url</b><br>
6779   * </p>
6780   */
6781  @SearchParamDefinition(name="url", path="ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition\r\n* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition\r\n* [Citation](citation.html): The uri that identifies the citation\r\n* [CodeSystem](codesystem.html): The uri that identifies the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition\r\n* [ConceptMap](conceptmap.html): The URI that identifies the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition\r\n* [EventDefinition](eventdefinition.html): The uri that identifies the event definition\r\n* [Evidence](evidence.html): The uri that identifies the evidence\r\n* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable\r\n* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario\r\n* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition\r\n* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide\r\n* [Library](library.html): The uri that identifies the library\r\n* [Measure](measure.html): The uri that identifies the measure\r\n* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition\r\n* [NamingSystem](namingsystem.html): The uri that identifies the naming system\r\n* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition\r\n* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition\r\n* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition\r\n* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire\r\n* [Requirements](requirements.html): The uri that identifies the requirements\r\n* [SearchParameter](searchparameter.html): The uri that identifies the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition\r\n* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition\r\n* [StructureMap](structuremap.html): The uri that identifies the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities\r\n* [TestPlan](testplan.html): The uri that identifies the test plan\r\n* [TestScript](testscript.html): The uri that identifies the test script\r\n* [ValueSet](valueset.html): The uri that identifies the value set\r\n", type="uri" )
6782  public static final String SP_URL = "url";
6783 /**
6784   * <b>Fluent Client</b> search parameter constant for <b>url</b>
6785   * <p>
6786   * Description: <b>Multiple Resources: 
6787
6788* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
6789* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
6790* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
6791* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
6792* [Citation](citation.html): The uri that identifies the citation
6793* [CodeSystem](codesystem.html): The uri that identifies the code system
6794* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
6795* [ConceptMap](conceptmap.html): The URI that identifies the concept map
6796* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
6797* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
6798* [Evidence](evidence.html): The uri that identifies the evidence
6799* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
6800* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
6801* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
6802* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
6803* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
6804* [Library](library.html): The uri that identifies the library
6805* [Measure](measure.html): The uri that identifies the measure
6806* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
6807* [NamingSystem](namingsystem.html): The uri that identifies the naming system
6808* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
6809* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
6810* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
6811* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
6812* [Requirements](requirements.html): The uri that identifies the requirements
6813* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
6814* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
6815* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
6816* [StructureMap](structuremap.html): The uri that identifies the structure map
6817* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
6818* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
6819* [TestPlan](testplan.html): The uri that identifies the test plan
6820* [TestScript](testscript.html): The uri that identifies the test script
6821* [ValueSet](valueset.html): The uri that identifies the value set
6822</b><br>
6823   * Type: <b>uri</b><br>
6824   * Path: <b>ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url</b><br>
6825   * </p>
6826   */
6827  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
6828
6829 /**
6830   * Search parameter: <b>version</b>
6831   * <p>
6832   * Description: <b>Multiple Resources: 
6833
6834* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
6835* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
6836* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
6837* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
6838* [Citation](citation.html): The business version of the citation
6839* [CodeSystem](codesystem.html): The business version of the code system
6840* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
6841* [ConceptMap](conceptmap.html): The business version of the concept map
6842* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
6843* [EventDefinition](eventdefinition.html): The business version of the event definition
6844* [Evidence](evidence.html): The business version of the evidence
6845* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
6846* [ExampleScenario](examplescenario.html): The business version of the example scenario
6847* [GraphDefinition](graphdefinition.html): The business version of the graph definition
6848* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
6849* [Library](library.html): The business version of the library
6850* [Measure](measure.html): The business version of the measure
6851* [MessageDefinition](messagedefinition.html): The business version of the message definition
6852* [NamingSystem](namingsystem.html): The business version of the naming system
6853* [OperationDefinition](operationdefinition.html): The business version of the operation definition
6854* [PlanDefinition](plandefinition.html): The business version of the plan definition
6855* [Questionnaire](questionnaire.html): The business version of the questionnaire
6856* [Requirements](requirements.html): The business version of the requirements
6857* [SearchParameter](searchparameter.html): The business version of the search parameter
6858* [StructureDefinition](structuredefinition.html): The business version of the structure definition
6859* [StructureMap](structuremap.html): The business version of the structure map
6860* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
6861* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
6862* [TestScript](testscript.html): The business version of the test script
6863* [ValueSet](valueset.html): The business version of the value set
6864</b><br>
6865   * Type: <b>token</b><br>
6866   * Path: <b>ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version</b><br>
6867   * </p>
6868   */
6869  @SearchParamDefinition(name="version", path="ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The business version of the activity definition\r\n* [ActorDefinition](actordefinition.html): The business version of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition\r\n* [Citation](citation.html): The business version of the citation\r\n* [CodeSystem](codesystem.html): The business version of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition\r\n* [ConceptMap](conceptmap.html): The business version of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition\r\n* [EventDefinition](eventdefinition.html): The business version of the event definition\r\n* [Evidence](evidence.html): The business version of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable\r\n* [ExampleScenario](examplescenario.html): The business version of the example scenario\r\n* [GraphDefinition](graphdefinition.html): The business version of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The business version of the implementation guide\r\n* [Library](library.html): The business version of the library\r\n* [Measure](measure.html): The business version of the measure\r\n* [MessageDefinition](messagedefinition.html): The business version of the message definition\r\n* [NamingSystem](namingsystem.html): The business version of the naming system\r\n* [OperationDefinition](operationdefinition.html): The business version of the operation definition\r\n* [PlanDefinition](plandefinition.html): The business version of the plan definition\r\n* [Questionnaire](questionnaire.html): The business version of the questionnaire\r\n* [Requirements](requirements.html): The business version of the requirements\r\n* [SearchParameter](searchparameter.html): The business version of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The business version of the structure definition\r\n* [StructureMap](structuremap.html): The business version of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic\r\n* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities\r\n* [TestScript](testscript.html): The business version of the test script\r\n* [ValueSet](valueset.html): The business version of the value set\r\n", type="token" )
6870  public static final String SP_VERSION = "version";
6871 /**
6872   * <b>Fluent Client</b> search parameter constant for <b>version</b>
6873   * <p>
6874   * Description: <b>Multiple Resources: 
6875
6876* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
6877* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
6878* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
6879* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
6880* [Citation](citation.html): The business version of the citation
6881* [CodeSystem](codesystem.html): The business version of the code system
6882* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
6883* [ConceptMap](conceptmap.html): The business version of the concept map
6884* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
6885* [EventDefinition](eventdefinition.html): The business version of the event definition
6886* [Evidence](evidence.html): The business version of the evidence
6887* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
6888* [ExampleScenario](examplescenario.html): The business version of the example scenario
6889* [GraphDefinition](graphdefinition.html): The business version of the graph definition
6890* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
6891* [Library](library.html): The business version of the library
6892* [Measure](measure.html): The business version of the measure
6893* [MessageDefinition](messagedefinition.html): The business version of the message definition
6894* [NamingSystem](namingsystem.html): The business version of the naming system
6895* [OperationDefinition](operationdefinition.html): The business version of the operation definition
6896* [PlanDefinition](plandefinition.html): The business version of the plan definition
6897* [Questionnaire](questionnaire.html): The business version of the questionnaire
6898* [Requirements](requirements.html): The business version of the requirements
6899* [SearchParameter](searchparameter.html): The business version of the search parameter
6900* [StructureDefinition](structuredefinition.html): The business version of the structure definition
6901* [StructureMap](structuremap.html): The business version of the structure map
6902* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
6903* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
6904* [TestScript](testscript.html): The business version of the test script
6905* [ValueSet](valueset.html): The business version of the value set
6906</b><br>
6907   * Type: <b>token</b><br>
6908   * Path: <b>ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version</b><br>
6909   * </p>
6910   */
6911  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
6912
6913 /**
6914   * Search parameter: <b>effective</b>
6915   * <p>
6916   * Description: <b>Multiple Resources: 
6917
6918* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use
6919* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use
6920* [Citation](citation.html): The time during which the citation is intended to be in use
6921* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
6922* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
6923* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use
6924* [Library](library.html): The time during which the library is intended to be in use
6925* [Measure](measure.html): The time during which the measure is intended to be in use
6926* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
6927* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use
6928* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use
6929* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
6930</b><br>
6931   * Type: <b>date</b><br>
6932   * Path: <b>ActivityDefinition.effectivePeriod | ChargeItemDefinition.applicability.effectivePeriod | Citation.effectivePeriod | CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | EventDefinition.effectivePeriod | Library.effectivePeriod | Measure.effectivePeriod | NamingSystem.effectivePeriod | PlanDefinition.effectivePeriod | Questionnaire.effectivePeriod | ValueSet.effectivePeriod</b><br>
6933   * </p>
6934   */
6935  @SearchParamDefinition(name="effective", path="ActivityDefinition.effectivePeriod | ChargeItemDefinition.applicability.effectivePeriod | Citation.effectivePeriod | CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | EventDefinition.effectivePeriod | Library.effectivePeriod | Measure.effectivePeriod | NamingSystem.effectivePeriod | PlanDefinition.effectivePeriod | Questionnaire.effectivePeriod | ValueSet.effectivePeriod", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use\r\n* [Citation](citation.html): The time during which the citation is intended to be in use\r\n* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use\r\n* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use\r\n* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use\r\n* [Library](library.html): The time during which the library is intended to be in use\r\n* [Measure](measure.html): The time during which the measure is intended to be in use\r\n* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use\r\n* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use\r\n* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use\r\n* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use\r\n", type="date" )
6936  public static final String SP_EFFECTIVE = "effective";
6937 /**
6938   * <b>Fluent Client</b> search parameter constant for <b>effective</b>
6939   * <p>
6940   * Description: <b>Multiple Resources: 
6941
6942* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use
6943* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use
6944* [Citation](citation.html): The time during which the citation is intended to be in use
6945* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
6946* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
6947* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use
6948* [Library](library.html): The time during which the library is intended to be in use
6949* [Measure](measure.html): The time during which the measure is intended to be in use
6950* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
6951* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use
6952* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use
6953* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
6954</b><br>
6955   * Type: <b>date</b><br>
6956   * Path: <b>ActivityDefinition.effectivePeriod | ChargeItemDefinition.applicability.effectivePeriod | Citation.effectivePeriod | CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | EventDefinition.effectivePeriod | Library.effectivePeriod | Measure.effectivePeriod | NamingSystem.effectivePeriod | PlanDefinition.effectivePeriod | Questionnaire.effectivePeriod | ValueSet.effectivePeriod</b><br>
6957   * </p>
6958   */
6959  public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE);
6960
6961 /**
6962   * Search parameter: <b>combo-code</b>
6963   * <p>
6964   * Description: <b>A code that corresponds to one of its items in the questionnaire</b><br>
6965   * Type: <b>token</b><br>
6966   * Path: <b>Questionnaire.code | Questionnaire.item.code</b><br>
6967   * </p>
6968   */
6969  @SearchParamDefinition(name="combo-code", path="Questionnaire.code | Questionnaire.item.code", description="A code that corresponds to one of its items in the questionnaire", type="token" )
6970  public static final String SP_COMBO_CODE = "combo-code";
6971 /**
6972   * <b>Fluent Client</b> search parameter constant for <b>combo-code</b>
6973   * <p>
6974   * Description: <b>A code that corresponds to one of its items in the questionnaire</b><br>
6975   * Type: <b>token</b><br>
6976   * Path: <b>Questionnaire.code | Questionnaire.item.code</b><br>
6977   * </p>
6978   */
6979  public static final ca.uhn.fhir.rest.gclient.TokenClientParam COMBO_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_COMBO_CODE);
6980
6981 /**
6982   * Search parameter: <b>definition</b>
6983   * <p>
6984   * Description: <b>ElementDefinition - details for the item</b><br>
6985   * Type: <b>uri</b><br>
6986   * Path: <b>Questionnaire.item.definition</b><br>
6987   * </p>
6988   */
6989  @SearchParamDefinition(name="definition", path="Questionnaire.item.definition", description="ElementDefinition - details for the item", type="uri" )
6990  public static final String SP_DEFINITION = "definition";
6991 /**
6992   * <b>Fluent Client</b> search parameter constant for <b>definition</b>
6993   * <p>
6994   * Description: <b>ElementDefinition - details for the item</b><br>
6995   * Type: <b>uri</b><br>
6996   * Path: <b>Questionnaire.item.definition</b><br>
6997   * </p>
6998   */
6999  public static final ca.uhn.fhir.rest.gclient.UriClientParam DEFINITION = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_DEFINITION);
7000
7001 /**
7002   * Search parameter: <b>item-code</b>
7003   * <p>
7004   * Description: <b>A code that corresponds to one of the items in the questionnaire</b><br>
7005   * Type: <b>token</b><br>
7006   * Path: <b>Questionnaire.item.code</b><br>
7007   * </p>
7008   */
7009  @SearchParamDefinition(name="item-code", path="Questionnaire.item.code", description="A code that corresponds to one of the items in the questionnaire", type="token" )
7010  public static final String SP_ITEM_CODE = "item-code";
7011 /**
7012   * <b>Fluent Client</b> search parameter constant for <b>item-code</b>
7013   * <p>
7014   * Description: <b>A code that corresponds to one of the items in the questionnaire</b><br>
7015   * Type: <b>token</b><br>
7016   * Path: <b>Questionnaire.item.code</b><br>
7017   * </p>
7018   */
7019  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ITEM_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ITEM_CODE);
7020
7021 /**
7022   * Search parameter: <b>questionnaire-code</b>
7023   * <p>
7024   * Description: <b>A code that matches one of the Questionnaire.code codings</b><br>
7025   * Type: <b>token</b><br>
7026   * Path: <b>Questionnaire.code</b><br>
7027   * </p>
7028   */
7029  @SearchParamDefinition(name="questionnaire-code", path="Questionnaire.code", description="A code that matches one of the Questionnaire.code codings", type="token" )
7030  public static final String SP_QUESTIONNAIRE_CODE = "questionnaire-code";
7031 /**
7032   * <b>Fluent Client</b> search parameter constant for <b>questionnaire-code</b>
7033   * <p>
7034   * Description: <b>A code that matches one of the Questionnaire.code codings</b><br>
7035   * Type: <b>token</b><br>
7036   * Path: <b>Questionnaire.code</b><br>
7037   * </p>
7038   */
7039  public static final ca.uhn.fhir.rest.gclient.TokenClientParam QUESTIONNAIRE_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_QUESTIONNAIRE_CODE);
7040
7041 /**
7042   * Search parameter: <b>subject-type</b>
7043   * <p>
7044   * Description: <b>Resource that can be subject of QuestionnaireResponse</b><br>
7045   * Type: <b>token</b><br>
7046   * Path: <b>Questionnaire.subjectType</b><br>
7047   * </p>
7048   */
7049  @SearchParamDefinition(name="subject-type", path="Questionnaire.subjectType", description="Resource that can be subject of QuestionnaireResponse", type="token" )
7050  public static final String SP_SUBJECT_TYPE = "subject-type";
7051 /**
7052   * <b>Fluent Client</b> search parameter constant for <b>subject-type</b>
7053   * <p>
7054   * Description: <b>Resource that can be subject of QuestionnaireResponse</b><br>
7055   * Type: <b>token</b><br>
7056   * Path: <b>Questionnaire.subjectType</b><br>
7057   * </p>
7058   */
7059  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SUBJECT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SUBJECT_TYPE);
7060
7061// Manual code (from Configuration.txt):
7062public QuestionnaireItemComponent getQuestion(String linkId) {
7063    if (linkId == null)
7064      return null;
7065    for (QuestionnaireItemComponent i : getItem()) {
7066      if (i.getLinkId().equals(linkId))
7067        return i;
7068      QuestionnaireItemComponent t = i.getQuestion(linkId);
7069      if (t != null)
7070        return t;
7071    }
7072    return null;
7073  }
7074
7075  public QuestionnaireItemComponent getCommonGroup(QuestionnaireItemComponent q1, QuestionnaireItemComponent q2) {
7076    for (QuestionnaireItemComponent i : getItem()) {
7077      QuestionnaireItemComponent t = i.getCommonGroup(q1, q2);
7078      if (t != null)
7079        return t;
7080    }
7081    return null;
7082  }
7083
7084// end addition
7085
7086
7087}
7088