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 void removeChild(String name, Base value) throws FHIRException {
2074        if (name.equals("linkId")) {
2075          this.linkId = null;
2076        } else if (name.equals("definition")) {
2077          this.definition = null;
2078        } else if (name.equals("code")) {
2079          this.getCode().remove(value);
2080        } else if (name.equals("prefix")) {
2081          this.prefix = null;
2082        } else if (name.equals("text")) {
2083          this.text = null;
2084        } else if (name.equals("type")) {
2085          value = new QuestionnaireItemTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
2086          this.type = (Enumeration) value; // Enumeration<QuestionnaireItemType>
2087        } else if (name.equals("enableWhen")) {
2088          this.getEnableWhen().remove((QuestionnaireItemEnableWhenComponent) value);
2089        } else if (name.equals("enableBehavior")) {
2090          value = new EnableWhenBehaviorEnumFactory().fromType(TypeConvertor.castToCode(value));
2091          this.enableBehavior = (Enumeration) value; // Enumeration<EnableWhenBehavior>
2092        } else if (name.equals("disabledDisplay")) {
2093          value = new QuestionnaireItemDisabledDisplayEnumFactory().fromType(TypeConvertor.castToCode(value));
2094          this.disabledDisplay = (Enumeration) value; // Enumeration<QuestionnaireItemDisabledDisplay>
2095        } else if (name.equals("required")) {
2096          this.required = null;
2097        } else if (name.equals("repeats")) {
2098          this.repeats = null;
2099        } else if (name.equals("readOnly")) {
2100          this.readOnly = null;
2101        } else if (name.equals("maxLength")) {
2102          this.maxLength = null;
2103        } else if (name.equals("answerConstraint")) {
2104          value = new QuestionnaireAnswerConstraintEnumFactory().fromType(TypeConvertor.castToCode(value));
2105          this.answerConstraint = (Enumeration) value; // Enumeration<QuestionnaireAnswerConstraint>
2106        } else if (name.equals("answerValueSet")) {
2107          this.answerValueSet = null;
2108        } else if (name.equals("answerOption")) {
2109          this.getAnswerOption().remove((QuestionnaireItemAnswerOptionComponent) value);
2110        } else if (name.equals("initial")) {
2111          this.getInitial().remove((QuestionnaireItemInitialComponent) value);
2112        } else if (name.equals("item")) {
2113          this.getItem().remove((QuestionnaireItemComponent) value);
2114        } else
2115          super.removeChild(name, value);
2116        
2117      }
2118
2119      @Override
2120      public Base makeProperty(int hash, String name) throws FHIRException {
2121        switch (hash) {
2122        case -1102667083:  return getLinkIdElement();
2123        case -1014418093:  return getDefinitionElement();
2124        case 3059181:  return addCode(); 
2125        case -980110702:  return getPrefixElement();
2126        case 3556653:  return getTextElement();
2127        case 3575610:  return getTypeElement();
2128        case 1893321565:  return addEnableWhen(); 
2129        case 1854802165:  return getEnableBehaviorElement();
2130        case -1254886746:  return getDisabledDisplayElement();
2131        case -393139297:  return getRequiredElement();
2132        case 1094288952:  return getRepeatsElement();
2133        case -867683742:  return getReadOnlyElement();
2134        case -791400086:  return getMaxLengthElement();
2135        case 746396731:  return getAnswerConstraintElement();
2136        case -743278833:  return getAnswerValueSetElement();
2137        case -1527878189:  return addAnswerOption(); 
2138        case 1948342084:  return addInitial(); 
2139        case 3242771:  return addItem(); 
2140        default: return super.makeProperty(hash, name);
2141        }
2142
2143      }
2144
2145      @Override
2146      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2147        switch (hash) {
2148        case -1102667083: /*linkId*/ return new String[] {"string"};
2149        case -1014418093: /*definition*/ return new String[] {"uri"};
2150        case 3059181: /*code*/ return new String[] {"Coding"};
2151        case -980110702: /*prefix*/ return new String[] {"string"};
2152        case 3556653: /*text*/ return new String[] {"string"};
2153        case 3575610: /*type*/ return new String[] {"code"};
2154        case 1893321565: /*enableWhen*/ return new String[] {};
2155        case 1854802165: /*enableBehavior*/ return new String[] {"code"};
2156        case -1254886746: /*disabledDisplay*/ return new String[] {"code"};
2157        case -393139297: /*required*/ return new String[] {"boolean"};
2158        case 1094288952: /*repeats*/ return new String[] {"boolean"};
2159        case -867683742: /*readOnly*/ return new String[] {"boolean"};
2160        case -791400086: /*maxLength*/ return new String[] {"integer"};
2161        case 746396731: /*answerConstraint*/ return new String[] {"code"};
2162        case -743278833: /*answerValueSet*/ return new String[] {"canonical"};
2163        case -1527878189: /*answerOption*/ return new String[] {};
2164        case 1948342084: /*initial*/ return new String[] {};
2165        case 3242771: /*item*/ return new String[] {"@Questionnaire.item"};
2166        default: return super.getTypesForProperty(hash, name);
2167        }
2168
2169      }
2170
2171      @Override
2172      public Base addChild(String name) throws FHIRException {
2173        if (name.equals("linkId")) {
2174          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.linkId");
2175        }
2176        else if (name.equals("definition")) {
2177          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.definition");
2178        }
2179        else if (name.equals("code")) {
2180          return addCode();
2181        }
2182        else if (name.equals("prefix")) {
2183          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.prefix");
2184        }
2185        else if (name.equals("text")) {
2186          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.text");
2187        }
2188        else if (name.equals("type")) {
2189          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.type");
2190        }
2191        else if (name.equals("enableWhen")) {
2192          return addEnableWhen();
2193        }
2194        else if (name.equals("enableBehavior")) {
2195          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.enableBehavior");
2196        }
2197        else if (name.equals("disabledDisplay")) {
2198          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.disabledDisplay");
2199        }
2200        else if (name.equals("required")) {
2201          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.required");
2202        }
2203        else if (name.equals("repeats")) {
2204          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.repeats");
2205        }
2206        else if (name.equals("readOnly")) {
2207          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.readOnly");
2208        }
2209        else if (name.equals("maxLength")) {
2210          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.maxLength");
2211        }
2212        else if (name.equals("answerConstraint")) {
2213          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.answerConstraint");
2214        }
2215        else if (name.equals("answerValueSet")) {
2216          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.answerValueSet");
2217        }
2218        else if (name.equals("answerOption")) {
2219          return addAnswerOption();
2220        }
2221        else if (name.equals("initial")) {
2222          return addInitial();
2223        }
2224        else if (name.equals("item")) {
2225          return addItem();
2226        }
2227        else
2228          return super.addChild(name);
2229      }
2230
2231      public QuestionnaireItemComponent copy() {
2232        QuestionnaireItemComponent dst = new QuestionnaireItemComponent();
2233        copyValues(dst);
2234        return dst;
2235      }
2236
2237      public void copyValues(QuestionnaireItemComponent dst) {
2238        super.copyValues(dst);
2239        dst.linkId = linkId == null ? null : linkId.copy();
2240        dst.definition = definition == null ? null : definition.copy();
2241        if (code != null) {
2242          dst.code = new ArrayList<Coding>();
2243          for (Coding i : code)
2244            dst.code.add(i.copy());
2245        };
2246        dst.prefix = prefix == null ? null : prefix.copy();
2247        dst.text = text == null ? null : text.copy();
2248        dst.type = type == null ? null : type.copy();
2249        if (enableWhen != null) {
2250          dst.enableWhen = new ArrayList<QuestionnaireItemEnableWhenComponent>();
2251          for (QuestionnaireItemEnableWhenComponent i : enableWhen)
2252            dst.enableWhen.add(i.copy());
2253        };
2254        dst.enableBehavior = enableBehavior == null ? null : enableBehavior.copy();
2255        dst.disabledDisplay = disabledDisplay == null ? null : disabledDisplay.copy();
2256        dst.required = required == null ? null : required.copy();
2257        dst.repeats = repeats == null ? null : repeats.copy();
2258        dst.readOnly = readOnly == null ? null : readOnly.copy();
2259        dst.maxLength = maxLength == null ? null : maxLength.copy();
2260        dst.answerConstraint = answerConstraint == null ? null : answerConstraint.copy();
2261        dst.answerValueSet = answerValueSet == null ? null : answerValueSet.copy();
2262        if (answerOption != null) {
2263          dst.answerOption = new ArrayList<QuestionnaireItemAnswerOptionComponent>();
2264          for (QuestionnaireItemAnswerOptionComponent i : answerOption)
2265            dst.answerOption.add(i.copy());
2266        };
2267        if (initial != null) {
2268          dst.initial = new ArrayList<QuestionnaireItemInitialComponent>();
2269          for (QuestionnaireItemInitialComponent i : initial)
2270            dst.initial.add(i.copy());
2271        };
2272        if (item != null) {
2273          dst.item = new ArrayList<QuestionnaireItemComponent>();
2274          for (QuestionnaireItemComponent i : item)
2275            dst.item.add(i.copy());
2276        };
2277      }
2278
2279      @Override
2280      public boolean equalsDeep(Base other_) {
2281        if (!super.equalsDeep(other_))
2282          return false;
2283        if (!(other_ instanceof QuestionnaireItemComponent))
2284          return false;
2285        QuestionnaireItemComponent o = (QuestionnaireItemComponent) other_;
2286        return compareDeep(linkId, o.linkId, true) && compareDeep(definition, o.definition, true) && compareDeep(code, o.code, true)
2287           && compareDeep(prefix, o.prefix, true) && compareDeep(text, o.text, true) && compareDeep(type, o.type, true)
2288           && compareDeep(enableWhen, o.enableWhen, true) && compareDeep(enableBehavior, o.enableBehavior, true)
2289           && compareDeep(disabledDisplay, o.disabledDisplay, true) && compareDeep(required, o.required, true)
2290           && compareDeep(repeats, o.repeats, true) && compareDeep(readOnly, o.readOnly, true) && compareDeep(maxLength, o.maxLength, true)
2291           && compareDeep(answerConstraint, o.answerConstraint, true) && compareDeep(answerValueSet, o.answerValueSet, true)
2292           && compareDeep(answerOption, o.answerOption, true) && compareDeep(initial, o.initial, true) && compareDeep(item, o.item, true)
2293          ;
2294      }
2295
2296      @Override
2297      public boolean equalsShallow(Base other_) {
2298        if (!super.equalsShallow(other_))
2299          return false;
2300        if (!(other_ instanceof QuestionnaireItemComponent))
2301          return false;
2302        QuestionnaireItemComponent o = (QuestionnaireItemComponent) other_;
2303        return compareValues(linkId, o.linkId, true) && compareValues(definition, o.definition, true) && compareValues(prefix, o.prefix, true)
2304           && compareValues(text, o.text, true) && compareValues(type, o.type, true) && compareValues(enableBehavior, o.enableBehavior, true)
2305           && compareValues(disabledDisplay, o.disabledDisplay, true) && compareValues(required, o.required, true)
2306           && compareValues(repeats, o.repeats, true) && compareValues(readOnly, o.readOnly, true) && compareValues(maxLength, o.maxLength, true)
2307           && compareValues(answerConstraint, o.answerConstraint, true) && compareValues(answerValueSet, o.answerValueSet, true)
2308          ;
2309      }
2310
2311      public boolean isEmpty() {
2312        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, definition, code
2313          , prefix, text, type, enableWhen, enableBehavior, disabledDisplay, required, repeats
2314          , readOnly, maxLength, answerConstraint, answerValueSet, answerOption, initial, item
2315          );
2316      }
2317
2318  public String fhirType() {
2319    return "Questionnaire.item";
2320
2321  }
2322
2323// added from java-adornments.txt:
2324public QuestionnaireItemComponent getQuestion(String linkId) {
2325        if (linkId == null)
2326          return null;
2327        for (QuestionnaireItemComponent i : getItem()) {
2328          if (i.getLinkId().equals(linkId))
2329            return i;
2330          QuestionnaireItemComponent t = i.getQuestion(linkId);
2331          if (t != null)
2332            return t;
2333        }
2334        return null;
2335      }
2336
2337      public QuestionnaireItemComponent getCommonGroup(QuestionnaireItemComponent q1, QuestionnaireItemComponent q2) {
2338        if (q1 == null || q2 == null)
2339          return null;
2340        for (QuestionnaireItemComponent i : getItem()) {
2341          QuestionnaireItemComponent t = i.getCommonGroup(q1, q2);
2342          if (t != null)
2343            return t;
2344        }
2345        if (containsQuestion(q1) && containsQuestion(q2))
2346          return this;
2347        return null;
2348      }
2349
2350      public boolean containsQuestion(QuestionnaireItemComponent q) {
2351        if (q == this)
2352          return true;
2353        for (QuestionnaireItemComponent i : getItem()) {
2354          if (i.containsQuestion(q))
2355            return true;
2356        }
2357        return false;
2358      }
2359// end addition
2360  }
2361
2362    @Block()
2363    public static class QuestionnaireItemEnableWhenComponent extends BackboneElement implements IBaseBackboneElement {
2364        /**
2365         * The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.
2366         */
2367        @Child(name = "question", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
2368        @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." )
2369        protected StringType question;
2370
2371        /**
2372         * Specifies the criteria by which the question is enabled.
2373         */
2374        @Child(name = "operator", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=false)
2375        @Description(shortDefinition="exists | = | != | > | < | >= | <=", formalDefinition="Specifies the criteria by which the question is enabled." )
2376        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-enable-operator")
2377        protected Enumeration<QuestionnaireItemOperator> operator;
2378
2379        /**
2380         * 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.
2381         */
2382        @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)
2383        @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." )
2384        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers")
2385        protected DataType answer;
2386
2387        private static final long serialVersionUID = 1909865374L;
2388
2389    /**
2390     * Constructor
2391     */
2392      public QuestionnaireItemEnableWhenComponent() {
2393        super();
2394      }
2395
2396    /**
2397     * Constructor
2398     */
2399      public QuestionnaireItemEnableWhenComponent(String question, QuestionnaireItemOperator operator, DataType answer) {
2400        super();
2401        this.setQuestion(question);
2402        this.setOperator(operator);
2403        this.setAnswer(answer);
2404      }
2405
2406        /**
2407         * @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
2408         */
2409        public StringType getQuestionElement() { 
2410          if (this.question == null)
2411            if (Configuration.errorOnAutoCreate())
2412              throw new Error("Attempt to auto-create QuestionnaireItemEnableWhenComponent.question");
2413            else if (Configuration.doAutoCreate())
2414              this.question = new StringType(); // bb
2415          return this.question;
2416        }
2417
2418        public boolean hasQuestionElement() { 
2419          return this.question != null && !this.question.isEmpty();
2420        }
2421
2422        public boolean hasQuestion() { 
2423          return this.question != null && !this.question.isEmpty();
2424        }
2425
2426        /**
2427         * @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
2428         */
2429        public QuestionnaireItemEnableWhenComponent setQuestionElement(StringType value) { 
2430          this.question = value;
2431          return this;
2432        }
2433
2434        /**
2435         * @return The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.
2436         */
2437        public String getQuestion() { 
2438          return this.question == null ? null : this.question.getValue();
2439        }
2440
2441        /**
2442         * @param value The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.
2443         */
2444        public QuestionnaireItemEnableWhenComponent setQuestion(String value) { 
2445            if (this.question == null)
2446              this.question = new StringType();
2447            this.question.setValue(value);
2448          return this;
2449        }
2450
2451        /**
2452         * @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
2453         */
2454        public Enumeration<QuestionnaireItemOperator> getOperatorElement() { 
2455          if (this.operator == null)
2456            if (Configuration.errorOnAutoCreate())
2457              throw new Error("Attempt to auto-create QuestionnaireItemEnableWhenComponent.operator");
2458            else if (Configuration.doAutoCreate())
2459              this.operator = new Enumeration<QuestionnaireItemOperator>(new QuestionnaireItemOperatorEnumFactory()); // bb
2460          return this.operator;
2461        }
2462
2463        public boolean hasOperatorElement() { 
2464          return this.operator != null && !this.operator.isEmpty();
2465        }
2466
2467        public boolean hasOperator() { 
2468          return this.operator != null && !this.operator.isEmpty();
2469        }
2470
2471        /**
2472         * @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
2473         */
2474        public QuestionnaireItemEnableWhenComponent setOperatorElement(Enumeration<QuestionnaireItemOperator> value) { 
2475          this.operator = value;
2476          return this;
2477        }
2478
2479        /**
2480         * @return Specifies the criteria by which the question is enabled.
2481         */
2482        public QuestionnaireItemOperator getOperator() { 
2483          return this.operator == null ? null : this.operator.getValue();
2484        }
2485
2486        /**
2487         * @param value Specifies the criteria by which the question is enabled.
2488         */
2489        public QuestionnaireItemEnableWhenComponent setOperator(QuestionnaireItemOperator value) { 
2490            if (this.operator == null)
2491              this.operator = new Enumeration<QuestionnaireItemOperator>(new QuestionnaireItemOperatorEnumFactory());
2492            this.operator.setValue(value);
2493          return this;
2494        }
2495
2496        /**
2497         * @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.)
2498         */
2499        public DataType getAnswer() { 
2500          return this.answer;
2501        }
2502
2503        /**
2504         * @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.)
2505         */
2506        public BooleanType getAnswerBooleanType() throws FHIRException { 
2507          if (this.answer == null)
2508            this.answer = new BooleanType();
2509          if (!(this.answer instanceof BooleanType))
2510            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.answer.getClass().getName()+" was encountered");
2511          return (BooleanType) this.answer;
2512        }
2513
2514        public boolean hasAnswerBooleanType() { 
2515          return this != null && this.answer instanceof BooleanType;
2516        }
2517
2518        /**
2519         * @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.)
2520         */
2521        public DecimalType getAnswerDecimalType() throws FHIRException { 
2522          if (this.answer == null)
2523            this.answer = new DecimalType();
2524          if (!(this.answer instanceof DecimalType))
2525            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.answer.getClass().getName()+" was encountered");
2526          return (DecimalType) this.answer;
2527        }
2528
2529        public boolean hasAnswerDecimalType() { 
2530          return this != null && this.answer instanceof DecimalType;
2531        }
2532
2533        /**
2534         * @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.)
2535         */
2536        public IntegerType getAnswerIntegerType() throws FHIRException { 
2537          if (this.answer == null)
2538            this.answer = new IntegerType();
2539          if (!(this.answer instanceof IntegerType))
2540            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.answer.getClass().getName()+" was encountered");
2541          return (IntegerType) this.answer;
2542        }
2543
2544        public boolean hasAnswerIntegerType() { 
2545          return this != null && this.answer instanceof IntegerType;
2546        }
2547
2548        /**
2549         * @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.)
2550         */
2551        public DateType getAnswerDateType() throws FHIRException { 
2552          if (this.answer == null)
2553            this.answer = new DateType();
2554          if (!(this.answer instanceof DateType))
2555            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.answer.getClass().getName()+" was encountered");
2556          return (DateType) this.answer;
2557        }
2558
2559        public boolean hasAnswerDateType() { 
2560          return this != null && this.answer instanceof DateType;
2561        }
2562
2563        /**
2564         * @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.)
2565         */
2566        public DateTimeType getAnswerDateTimeType() throws FHIRException { 
2567          if (this.answer == null)
2568            this.answer = new DateTimeType();
2569          if (!(this.answer instanceof DateTimeType))
2570            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.answer.getClass().getName()+" was encountered");
2571          return (DateTimeType) this.answer;
2572        }
2573
2574        public boolean hasAnswerDateTimeType() { 
2575          return this != null && this.answer instanceof DateTimeType;
2576        }
2577
2578        /**
2579         * @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.)
2580         */
2581        public TimeType getAnswerTimeType() throws FHIRException { 
2582          if (this.answer == null)
2583            this.answer = new TimeType();
2584          if (!(this.answer instanceof TimeType))
2585            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.answer.getClass().getName()+" was encountered");
2586          return (TimeType) this.answer;
2587        }
2588
2589        public boolean hasAnswerTimeType() { 
2590          return this != null && this.answer instanceof TimeType;
2591        }
2592
2593        /**
2594         * @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.)
2595         */
2596        public StringType getAnswerStringType() throws FHIRException { 
2597          if (this.answer == null)
2598            this.answer = new StringType();
2599          if (!(this.answer instanceof StringType))
2600            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.answer.getClass().getName()+" was encountered");
2601          return (StringType) this.answer;
2602        }
2603
2604        public boolean hasAnswerStringType() { 
2605          return this != null && this.answer instanceof StringType;
2606        }
2607
2608        /**
2609         * @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.)
2610         */
2611        public Coding getAnswerCoding() throws FHIRException { 
2612          if (this.answer == null)
2613            this.answer = new Coding();
2614          if (!(this.answer instanceof Coding))
2615            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.answer.getClass().getName()+" was encountered");
2616          return (Coding) this.answer;
2617        }
2618
2619        public boolean hasAnswerCoding() { 
2620          return this != null && this.answer instanceof Coding;
2621        }
2622
2623        /**
2624         * @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.)
2625         */
2626        public Quantity getAnswerQuantity() throws FHIRException { 
2627          if (this.answer == null)
2628            this.answer = new Quantity();
2629          if (!(this.answer instanceof Quantity))
2630            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.answer.getClass().getName()+" was encountered");
2631          return (Quantity) this.answer;
2632        }
2633
2634        public boolean hasAnswerQuantity() { 
2635          return this != null && this.answer instanceof Quantity;
2636        }
2637
2638        /**
2639         * @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.)
2640         */
2641        public Reference getAnswerReference() throws FHIRException { 
2642          if (this.answer == null)
2643            this.answer = new Reference();
2644          if (!(this.answer instanceof Reference))
2645            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.answer.getClass().getName()+" was encountered");
2646          return (Reference) this.answer;
2647        }
2648
2649        public boolean hasAnswerReference() { 
2650          return this != null && this.answer instanceof Reference;
2651        }
2652
2653        public boolean hasAnswer() { 
2654          return this.answer != null && !this.answer.isEmpty();
2655        }
2656
2657        /**
2658         * @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.)
2659         */
2660        public QuestionnaireItemEnableWhenComponent setAnswer(DataType value) { 
2661          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))
2662            throw new FHIRException("Not the right type for Questionnaire.item.enableWhen.answer[x]: "+value.fhirType());
2663          this.answer = value;
2664          return this;
2665        }
2666
2667        protected void listChildren(List<Property> children) {
2668          super.listChildren(children);
2669          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));
2670          children.add(new Property("operator", "code", "Specifies the criteria by which the question is enabled.", 0, 1, operator));
2671          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));
2672        }
2673
2674        @Override
2675        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2676          switch (_hash) {
2677          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);
2678          case -500553564: /*operator*/  return new Property("operator", "code", "Specifies the criteria by which the question is enabled.", 0, 1, operator);
2679          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);
2680          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);
2681          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);
2682          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);
2683          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);
2684          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);
2685          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);
2686          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);
2687          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);
2688          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);
2689          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);
2690          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);
2691          default: return super.getNamedProperty(_hash, _name, _checkValid);
2692          }
2693
2694        }
2695
2696      @Override
2697      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2698        switch (hash) {
2699        case -1165870106: /*question*/ return this.question == null ? new Base[0] : new Base[] {this.question}; // StringType
2700        case -500553564: /*operator*/ return this.operator == null ? new Base[0] : new Base[] {this.operator}; // Enumeration<QuestionnaireItemOperator>
2701        case -1412808770: /*answer*/ return this.answer == null ? new Base[0] : new Base[] {this.answer}; // DataType
2702        default: return super.getProperty(hash, name, checkValid);
2703        }
2704
2705      }
2706
2707      @Override
2708      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2709        switch (hash) {
2710        case -1165870106: // question
2711          this.question = TypeConvertor.castToString(value); // StringType
2712          return value;
2713        case -500553564: // operator
2714          value = new QuestionnaireItemOperatorEnumFactory().fromType(TypeConvertor.castToCode(value));
2715          this.operator = (Enumeration) value; // Enumeration<QuestionnaireItemOperator>
2716          return value;
2717        case -1412808770: // answer
2718          this.answer = TypeConvertor.castToType(value); // DataType
2719          return value;
2720        default: return super.setProperty(hash, name, value);
2721        }
2722
2723      }
2724
2725      @Override
2726      public Base setProperty(String name, Base value) throws FHIRException {
2727        if (name.equals("question")) {
2728          this.question = TypeConvertor.castToString(value); // StringType
2729        } else if (name.equals("operator")) {
2730          value = new QuestionnaireItemOperatorEnumFactory().fromType(TypeConvertor.castToCode(value));
2731          this.operator = (Enumeration) value; // Enumeration<QuestionnaireItemOperator>
2732        } else if (name.equals("answer[x]")) {
2733          this.answer = TypeConvertor.castToType(value); // DataType
2734        } else
2735          return super.setProperty(name, value);
2736        return value;
2737      }
2738
2739  @Override
2740  public void removeChild(String name, Base value) throws FHIRException {
2741        if (name.equals("question")) {
2742          this.question = null;
2743        } else if (name.equals("operator")) {
2744          value = new QuestionnaireItemOperatorEnumFactory().fromType(TypeConvertor.castToCode(value));
2745          this.operator = (Enumeration) value; // Enumeration<QuestionnaireItemOperator>
2746        } else if (name.equals("answer[x]")) {
2747          this.answer = null;
2748        } else
2749          super.removeChild(name, value);
2750        
2751      }
2752
2753      @Override
2754      public Base makeProperty(int hash, String name) throws FHIRException {
2755        switch (hash) {
2756        case -1165870106:  return getQuestionElement();
2757        case -500553564:  return getOperatorElement();
2758        case 1693524994:  return getAnswer();
2759        case -1412808770:  return getAnswer();
2760        default: return super.makeProperty(hash, name);
2761        }
2762
2763      }
2764
2765      @Override
2766      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2767        switch (hash) {
2768        case -1165870106: /*question*/ return new String[] {"string"};
2769        case -500553564: /*operator*/ return new String[] {"code"};
2770        case -1412808770: /*answer*/ return new String[] {"boolean", "decimal", "integer", "date", "dateTime", "time", "string", "Coding", "Quantity", "Reference"};
2771        default: return super.getTypesForProperty(hash, name);
2772        }
2773
2774      }
2775
2776      @Override
2777      public Base addChild(String name) throws FHIRException {
2778        if (name.equals("question")) {
2779          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.enableWhen.question");
2780        }
2781        else if (name.equals("operator")) {
2782          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.enableWhen.operator");
2783        }
2784        else if (name.equals("answerBoolean")) {
2785          this.answer = new BooleanType();
2786          return this.answer;
2787        }
2788        else if (name.equals("answerDecimal")) {
2789          this.answer = new DecimalType();
2790          return this.answer;
2791        }
2792        else if (name.equals("answerInteger")) {
2793          this.answer = new IntegerType();
2794          return this.answer;
2795        }
2796        else if (name.equals("answerDate")) {
2797          this.answer = new DateType();
2798          return this.answer;
2799        }
2800        else if (name.equals("answerDateTime")) {
2801          this.answer = new DateTimeType();
2802          return this.answer;
2803        }
2804        else if (name.equals("answerTime")) {
2805          this.answer = new TimeType();
2806          return this.answer;
2807        }
2808        else if (name.equals("answerString")) {
2809          this.answer = new StringType();
2810          return this.answer;
2811        }
2812        else if (name.equals("answerCoding")) {
2813          this.answer = new Coding();
2814          return this.answer;
2815        }
2816        else if (name.equals("answerQuantity")) {
2817          this.answer = new Quantity();
2818          return this.answer;
2819        }
2820        else if (name.equals("answerReference")) {
2821          this.answer = new Reference();
2822          return this.answer;
2823        }
2824        else
2825          return super.addChild(name);
2826      }
2827
2828      public QuestionnaireItemEnableWhenComponent copy() {
2829        QuestionnaireItemEnableWhenComponent dst = new QuestionnaireItemEnableWhenComponent();
2830        copyValues(dst);
2831        return dst;
2832      }
2833
2834      public void copyValues(QuestionnaireItemEnableWhenComponent dst) {
2835        super.copyValues(dst);
2836        dst.question = question == null ? null : question.copy();
2837        dst.operator = operator == null ? null : operator.copy();
2838        dst.answer = answer == null ? null : answer.copy();
2839      }
2840
2841      @Override
2842      public boolean equalsDeep(Base other_) {
2843        if (!super.equalsDeep(other_))
2844          return false;
2845        if (!(other_ instanceof QuestionnaireItemEnableWhenComponent))
2846          return false;
2847        QuestionnaireItemEnableWhenComponent o = (QuestionnaireItemEnableWhenComponent) other_;
2848        return compareDeep(question, o.question, true) && compareDeep(operator, o.operator, true) && compareDeep(answer, o.answer, true)
2849          ;
2850      }
2851
2852      @Override
2853      public boolean equalsShallow(Base other_) {
2854        if (!super.equalsShallow(other_))
2855          return false;
2856        if (!(other_ instanceof QuestionnaireItemEnableWhenComponent))
2857          return false;
2858        QuestionnaireItemEnableWhenComponent o = (QuestionnaireItemEnableWhenComponent) other_;
2859        return compareValues(question, o.question, true) && compareValues(operator, o.operator, true);
2860      }
2861
2862      public boolean isEmpty() {
2863        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(question, operator, answer
2864          );
2865      }
2866
2867  public String fhirType() {
2868    return "Questionnaire.item.enableWhen";
2869
2870  }
2871
2872  }
2873
2874    @Block()
2875    public static class QuestionnaireItemAnswerOptionComponent extends BackboneElement implements IBaseBackboneElement {
2876        /**
2877         * A potential answer that's allowed as the answer to this question.
2878         */
2879        @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)
2880        @Description(shortDefinition="Answer value", formalDefinition="A potential answer that's allowed as the answer to this question." )
2881        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers")
2882        protected DataType value;
2883
2884        /**
2885         * Indicates whether the answer value is selected when the list of possible answers is initially shown.
2886         */
2887        @Child(name = "initialSelected", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false)
2888        @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." )
2889        protected BooleanType initialSelected;
2890
2891        private static final long serialVersionUID = -504460934L;
2892
2893    /**
2894     * Constructor
2895     */
2896      public QuestionnaireItemAnswerOptionComponent() {
2897        super();
2898      }
2899
2900    /**
2901     * Constructor
2902     */
2903      public QuestionnaireItemAnswerOptionComponent(DataType value) {
2904        super();
2905        this.setValue(value);
2906      }
2907
2908        /**
2909         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2910         */
2911        public DataType getValue() { 
2912          return this.value;
2913        }
2914
2915        /**
2916         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2917         */
2918        public IntegerType getValueIntegerType() throws FHIRException { 
2919          if (this.value == null)
2920            this.value = new IntegerType();
2921          if (!(this.value instanceof IntegerType))
2922            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
2923          return (IntegerType) this.value;
2924        }
2925
2926        public boolean hasValueIntegerType() { 
2927          return this != null && this.value instanceof IntegerType;
2928        }
2929
2930        /**
2931         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2932         */
2933        public DateType getValueDateType() throws FHIRException { 
2934          if (this.value == null)
2935            this.value = new DateType();
2936          if (!(this.value instanceof DateType))
2937            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered");
2938          return (DateType) this.value;
2939        }
2940
2941        public boolean hasValueDateType() { 
2942          return this != null && this.value instanceof DateType;
2943        }
2944
2945        /**
2946         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2947         */
2948        public TimeType getValueTimeType() throws FHIRException { 
2949          if (this.value == null)
2950            this.value = new TimeType();
2951          if (!(this.value instanceof TimeType))
2952            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered");
2953          return (TimeType) this.value;
2954        }
2955
2956        public boolean hasValueTimeType() { 
2957          return this != null && this.value instanceof TimeType;
2958        }
2959
2960        /**
2961         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2962         */
2963        public StringType getValueStringType() throws FHIRException { 
2964          if (this.value == null)
2965            this.value = new StringType();
2966          if (!(this.value instanceof StringType))
2967            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
2968          return (StringType) this.value;
2969        }
2970
2971        public boolean hasValueStringType() { 
2972          return this != null && this.value instanceof StringType;
2973        }
2974
2975        /**
2976         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2977         */
2978        public Coding getValueCoding() throws FHIRException { 
2979          if (this.value == null)
2980            this.value = new Coding();
2981          if (!(this.value instanceof Coding))
2982            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
2983          return (Coding) this.value;
2984        }
2985
2986        public boolean hasValueCoding() { 
2987          return this != null && this.value instanceof Coding;
2988        }
2989
2990        /**
2991         * @return {@link #value} (A potential answer that's allowed as the answer to this question.)
2992         */
2993        public Reference getValueReference() throws FHIRException { 
2994          if (this.value == null)
2995            this.value = new Reference();
2996          if (!(this.value instanceof Reference))
2997            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered");
2998          return (Reference) this.value;
2999        }
3000
3001        public boolean hasValueReference() { 
3002          return this != null && this.value instanceof Reference;
3003        }
3004
3005        public boolean hasValue() { 
3006          return this.value != null && !this.value.isEmpty();
3007        }
3008
3009        /**
3010         * @param value {@link #value} (A potential answer that's allowed as the answer to this question.)
3011         */
3012        public QuestionnaireItemAnswerOptionComponent setValue(DataType value) { 
3013          if (value != null && !(value instanceof IntegerType || value instanceof DateType || value instanceof TimeType || value instanceof StringType || value instanceof Coding || value instanceof Reference))
3014            throw new FHIRException("Not the right type for Questionnaire.item.answerOption.value[x]: "+value.fhirType());
3015          this.value = value;
3016          return this;
3017        }
3018
3019        /**
3020         * @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
3021         */
3022        public BooleanType getInitialSelectedElement() { 
3023          if (this.initialSelected == null)
3024            if (Configuration.errorOnAutoCreate())
3025              throw new Error("Attempt to auto-create QuestionnaireItemAnswerOptionComponent.initialSelected");
3026            else if (Configuration.doAutoCreate())
3027              this.initialSelected = new BooleanType(); // bb
3028          return this.initialSelected;
3029        }
3030
3031        public boolean hasInitialSelectedElement() { 
3032          return this.initialSelected != null && !this.initialSelected.isEmpty();
3033        }
3034
3035        public boolean hasInitialSelected() { 
3036          return this.initialSelected != null && !this.initialSelected.isEmpty();
3037        }
3038
3039        /**
3040         * @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
3041         */
3042        public QuestionnaireItemAnswerOptionComponent setInitialSelectedElement(BooleanType value) { 
3043          this.initialSelected = value;
3044          return this;
3045        }
3046
3047        /**
3048         * @return Indicates whether the answer value is selected when the list of possible answers is initially shown.
3049         */
3050        public boolean getInitialSelected() { 
3051          return this.initialSelected == null || this.initialSelected.isEmpty() ? false : this.initialSelected.getValue();
3052        }
3053
3054        /**
3055         * @param value Indicates whether the answer value is selected when the list of possible answers is initially shown.
3056         */
3057        public QuestionnaireItemAnswerOptionComponent setInitialSelected(boolean value) { 
3058            if (this.initialSelected == null)
3059              this.initialSelected = new BooleanType();
3060            this.initialSelected.setValue(value);
3061          return this;
3062        }
3063
3064        protected void listChildren(List<Property> children) {
3065          super.listChildren(children);
3066          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));
3067          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));
3068        }
3069
3070        @Override
3071        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3072          switch (_hash) {
3073          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);
3074          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);
3075          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3076          case -766192449: /*valueDate*/  return new Property("value[x]", "date", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3077          case -765708322: /*valueTime*/  return new Property("value[x]", "time", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3078          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3079          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "A potential answer that's allowed as the answer to this question.", 0, 1, value);
3080          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);
3081          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);
3082          default: return super.getNamedProperty(_hash, _name, _checkValid);
3083          }
3084
3085        }
3086
3087      @Override
3088      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3089        switch (hash) {
3090        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3091        case -1310184961: /*initialSelected*/ return this.initialSelected == null ? new Base[0] : new Base[] {this.initialSelected}; // BooleanType
3092        default: return super.getProperty(hash, name, checkValid);
3093        }
3094
3095      }
3096
3097      @Override
3098      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3099        switch (hash) {
3100        case 111972721: // value
3101          this.value = TypeConvertor.castToType(value); // DataType
3102          return value;
3103        case -1310184961: // initialSelected
3104          this.initialSelected = TypeConvertor.castToBoolean(value); // BooleanType
3105          return value;
3106        default: return super.setProperty(hash, name, value);
3107        }
3108
3109      }
3110
3111      @Override
3112      public Base setProperty(String name, Base value) throws FHIRException {
3113        if (name.equals("value[x]")) {
3114          this.value = TypeConvertor.castToType(value); // DataType
3115        } else if (name.equals("initialSelected")) {
3116          this.initialSelected = TypeConvertor.castToBoolean(value); // BooleanType
3117        } else
3118          return super.setProperty(name, value);
3119        return value;
3120      }
3121
3122  @Override
3123  public void removeChild(String name, Base value) throws FHIRException {
3124        if (name.equals("value[x]")) {
3125          this.value = null;
3126        } else if (name.equals("initialSelected")) {
3127          this.initialSelected = null;
3128        } else
3129          super.removeChild(name, value);
3130        
3131      }
3132
3133      @Override
3134      public Base makeProperty(int hash, String name) throws FHIRException {
3135        switch (hash) {
3136        case -1410166417:  return getValue();
3137        case 111972721:  return getValue();
3138        case -1310184961:  return getInitialSelectedElement();
3139        default: return super.makeProperty(hash, name);
3140        }
3141
3142      }
3143
3144      @Override
3145      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3146        switch (hash) {
3147        case 111972721: /*value*/ return new String[] {"integer", "date", "time", "string", "Coding", "Reference"};
3148        case -1310184961: /*initialSelected*/ return new String[] {"boolean"};
3149        default: return super.getTypesForProperty(hash, name);
3150        }
3151
3152      }
3153
3154      @Override
3155      public Base addChild(String name) throws FHIRException {
3156        if (name.equals("valueInteger")) {
3157          this.value = new IntegerType();
3158          return this.value;
3159        }
3160        else if (name.equals("valueDate")) {
3161          this.value = new DateType();
3162          return this.value;
3163        }
3164        else if (name.equals("valueTime")) {
3165          this.value = new TimeType();
3166          return this.value;
3167        }
3168        else if (name.equals("valueString")) {
3169          this.value = new StringType();
3170          return this.value;
3171        }
3172        else if (name.equals("valueCoding")) {
3173          this.value = new Coding();
3174          return this.value;
3175        }
3176        else if (name.equals("valueReference")) {
3177          this.value = new Reference();
3178          return this.value;
3179        }
3180        else if (name.equals("initialSelected")) {
3181          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.item.answerOption.initialSelected");
3182        }
3183        else
3184          return super.addChild(name);
3185      }
3186
3187      public QuestionnaireItemAnswerOptionComponent copy() {
3188        QuestionnaireItemAnswerOptionComponent dst = new QuestionnaireItemAnswerOptionComponent();
3189        copyValues(dst);
3190        return dst;
3191      }
3192
3193      public void copyValues(QuestionnaireItemAnswerOptionComponent dst) {
3194        super.copyValues(dst);
3195        dst.value = value == null ? null : value.copy();
3196        dst.initialSelected = initialSelected == null ? null : initialSelected.copy();
3197      }
3198
3199      @Override
3200      public boolean equalsDeep(Base other_) {
3201        if (!super.equalsDeep(other_))
3202          return false;
3203        if (!(other_ instanceof QuestionnaireItemAnswerOptionComponent))
3204          return false;
3205        QuestionnaireItemAnswerOptionComponent o = (QuestionnaireItemAnswerOptionComponent) other_;
3206        return compareDeep(value, o.value, true) && compareDeep(initialSelected, o.initialSelected, true)
3207          ;
3208      }
3209
3210      @Override
3211      public boolean equalsShallow(Base other_) {
3212        if (!super.equalsShallow(other_))
3213          return false;
3214        if (!(other_ instanceof QuestionnaireItemAnswerOptionComponent))
3215          return false;
3216        QuestionnaireItemAnswerOptionComponent o = (QuestionnaireItemAnswerOptionComponent) other_;
3217        return compareValues(initialSelected, o.initialSelected, true);
3218      }
3219
3220      public boolean isEmpty() {
3221        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value, initialSelected);
3222      }
3223
3224  public String fhirType() {
3225    return "Questionnaire.item.answerOption";
3226
3227  }
3228
3229  }
3230
3231    @Block()
3232    public static class QuestionnaireItemInitialComponent extends BackboneElement implements IBaseBackboneElement {
3233        /**
3234         * The actual value to for an initial answer.
3235         */
3236        @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)
3237        @Description(shortDefinition="Actual value for initializing the question", formalDefinition="The actual value to for an initial answer." )
3238        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers")
3239        protected DataType value;
3240
3241        private static final long serialVersionUID = -1135414639L;
3242
3243    /**
3244     * Constructor
3245     */
3246      public QuestionnaireItemInitialComponent() {
3247        super();
3248      }
3249
3250    /**
3251     * Constructor
3252     */
3253      public QuestionnaireItemInitialComponent(DataType value) {
3254        super();
3255        this.setValue(value);
3256      }
3257
3258        /**
3259         * @return {@link #value} (The actual value to for an initial answer.)
3260         */
3261        public DataType getValue() { 
3262          return this.value;
3263        }
3264
3265        /**
3266         * @return {@link #value} (The actual value to for an initial answer.)
3267         */
3268        public BooleanType getValueBooleanType() throws FHIRException { 
3269          if (this.value == null)
3270            this.value = new BooleanType();
3271          if (!(this.value instanceof BooleanType))
3272            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
3273          return (BooleanType) this.value;
3274        }
3275
3276        public boolean hasValueBooleanType() { 
3277          return this != null && this.value instanceof BooleanType;
3278        }
3279
3280        /**
3281         * @return {@link #value} (The actual value to for an initial answer.)
3282         */
3283        public DecimalType getValueDecimalType() throws FHIRException { 
3284          if (this.value == null)
3285            this.value = new DecimalType();
3286          if (!(this.value instanceof DecimalType))
3287            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered");
3288          return (DecimalType) this.value;
3289        }
3290
3291        public boolean hasValueDecimalType() { 
3292          return this != null && this.value instanceof DecimalType;
3293        }
3294
3295        /**
3296         * @return {@link #value} (The actual value to for an initial answer.)
3297         */
3298        public IntegerType getValueIntegerType() throws FHIRException { 
3299          if (this.value == null)
3300            this.value = new IntegerType();
3301          if (!(this.value instanceof IntegerType))
3302            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
3303          return (IntegerType) this.value;
3304        }
3305
3306        public boolean hasValueIntegerType() { 
3307          return this != null && this.value instanceof IntegerType;
3308        }
3309
3310        /**
3311         * @return {@link #value} (The actual value to for an initial answer.)
3312         */
3313        public DateType getValueDateType() throws FHIRException { 
3314          if (this.value == null)
3315            this.value = new DateType();
3316          if (!(this.value instanceof DateType))
3317            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered");
3318          return (DateType) this.value;
3319        }
3320
3321        public boolean hasValueDateType() { 
3322          return this != null && this.value instanceof DateType;
3323        }
3324
3325        /**
3326         * @return {@link #value} (The actual value to for an initial answer.)
3327         */
3328        public DateTimeType getValueDateTimeType() throws FHIRException { 
3329          if (this.value == null)
3330            this.value = new DateTimeType();
3331          if (!(this.value instanceof DateTimeType))
3332            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered");
3333          return (DateTimeType) this.value;
3334        }
3335
3336        public boolean hasValueDateTimeType() { 
3337          return this != null && this.value instanceof DateTimeType;
3338        }
3339
3340        /**
3341         * @return {@link #value} (The actual value to for an initial answer.)
3342         */
3343        public TimeType getValueTimeType() throws FHIRException { 
3344          if (this.value == null)
3345            this.value = new TimeType();
3346          if (!(this.value instanceof TimeType))
3347            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered");
3348          return (TimeType) this.value;
3349        }
3350
3351        public boolean hasValueTimeType() { 
3352          return this != null && this.value instanceof TimeType;
3353        }
3354
3355        /**
3356         * @return {@link #value} (The actual value to for an initial answer.)
3357         */
3358        public StringType getValueStringType() throws FHIRException { 
3359          if (this.value == null)
3360            this.value = new StringType();
3361          if (!(this.value instanceof StringType))
3362            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
3363          return (StringType) this.value;
3364        }
3365
3366        public boolean hasValueStringType() { 
3367          return this != null && this.value instanceof StringType;
3368        }
3369
3370        /**
3371         * @return {@link #value} (The actual value to for an initial answer.)
3372         */
3373        public UriType getValueUriType() throws FHIRException { 
3374          if (this.value == null)
3375            this.value = new UriType();
3376          if (!(this.value instanceof UriType))
3377            throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.value.getClass().getName()+" was encountered");
3378          return (UriType) this.value;
3379        }
3380
3381        public boolean hasValueUriType() { 
3382          return this != null && this.value instanceof UriType;
3383        }
3384
3385        /**
3386         * @return {@link #value} (The actual value to for an initial answer.)
3387         */
3388        public Attachment getValueAttachment() throws FHIRException { 
3389          if (this.value == null)
3390            this.value = new Attachment();
3391          if (!(this.value instanceof Attachment))
3392            throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.value.getClass().getName()+" was encountered");
3393          return (Attachment) this.value;
3394        }
3395
3396        public boolean hasValueAttachment() { 
3397          return this != null && this.value instanceof Attachment;
3398        }
3399
3400        /**
3401         * @return {@link #value} (The actual value to for an initial answer.)
3402         */
3403        public Coding getValueCoding() throws FHIRException { 
3404          if (this.value == null)
3405            this.value = new Coding();
3406          if (!(this.value instanceof Coding))
3407            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
3408          return (Coding) this.value;
3409        }
3410
3411        public boolean hasValueCoding() { 
3412          return this != null && this.value instanceof Coding;
3413        }
3414
3415        /**
3416         * @return {@link #value} (The actual value to for an initial answer.)
3417         */
3418        public Quantity getValueQuantity() throws FHIRException { 
3419          if (this.value == null)
3420            this.value = new Quantity();
3421          if (!(this.value instanceof Quantity))
3422            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered");
3423          return (Quantity) this.value;
3424        }
3425
3426        public boolean hasValueQuantity() { 
3427          return this != null && this.value instanceof Quantity;
3428        }
3429
3430        /**
3431         * @return {@link #value} (The actual value to for an initial answer.)
3432         */
3433        public Reference getValueReference() throws FHIRException { 
3434          if (this.value == null)
3435            this.value = new Reference();
3436          if (!(this.value instanceof Reference))
3437            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered");
3438          return (Reference) this.value;
3439        }
3440
3441        public boolean hasValueReference() { 
3442          return this != null && this.value instanceof Reference;
3443        }
3444
3445        public boolean hasValue() { 
3446          return this.value != null && !this.value.isEmpty();
3447        }
3448
3449        /**
3450         * @param value {@link #value} (The actual value to for an initial answer.)
3451         */
3452        public QuestionnaireItemInitialComponent setValue(DataType value) { 
3453          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))
3454            throw new FHIRException("Not the right type for Questionnaire.item.initial.value[x]: "+value.fhirType());
3455          this.value = value;
3456          return this;
3457        }
3458
3459        protected void listChildren(List<Property> children) {
3460          super.listChildren(children);
3461          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));
3462        }
3463
3464        @Override
3465        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3466          switch (_hash) {
3467          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);
3468          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);
3469          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "The actual value to for an initial answer.", 0, 1, value);
3470          case -2083993440: /*valueDecimal*/  return new Property("value[x]", "decimal", "The actual value to for an initial answer.", 0, 1, value);
3471          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "The actual value to for an initial answer.", 0, 1, value);
3472          case -766192449: /*valueDate*/  return new Property("value[x]", "date", "The actual value to for an initial answer.", 0, 1, value);
3473          case 1047929900: /*valueDateTime*/  return new Property("value[x]", "dateTime", "The actual value to for an initial answer.", 0, 1, value);
3474          case -765708322: /*valueTime*/  return new Property("value[x]", "time", "The actual value to for an initial answer.", 0, 1, value);
3475          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "The actual value to for an initial answer.", 0, 1, value);
3476          case -1410172357: /*valueUri*/  return new Property("value[x]", "uri", "The actual value to for an initial answer.", 0, 1, value);
3477          case -475566732: /*valueAttachment*/  return new Property("value[x]", "Attachment", "The actual value to for an initial answer.", 0, 1, value);
3478          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "The actual value to for an initial answer.", 0, 1, value);
3479          case -2029823716: /*valueQuantity*/  return new Property("value[x]", "Quantity", "The actual value to for an initial answer.", 0, 1, value);
3480          case 1755241690: /*valueReference*/  return new Property("value[x]", "Reference(Any)", "The actual value to for an initial answer.", 0, 1, value);
3481          default: return super.getNamedProperty(_hash, _name, _checkValid);
3482          }
3483
3484        }
3485
3486      @Override
3487      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3488        switch (hash) {
3489        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3490        default: return super.getProperty(hash, name, checkValid);
3491        }
3492
3493      }
3494
3495      @Override
3496      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3497        switch (hash) {
3498        case 111972721: // value
3499          this.value = TypeConvertor.castToType(value); // DataType
3500          return value;
3501        default: return super.setProperty(hash, name, value);
3502        }
3503
3504      }
3505
3506      @Override
3507      public Base setProperty(String name, Base value) throws FHIRException {
3508        if (name.equals("value[x]")) {
3509          this.value = TypeConvertor.castToType(value); // DataType
3510        } else
3511          return super.setProperty(name, value);
3512        return value;
3513      }
3514
3515  @Override
3516  public void removeChild(String name, Base value) throws FHIRException {
3517        if (name.equals("value[x]")) {
3518          this.value = null;
3519        } else
3520          super.removeChild(name, value);
3521        
3522      }
3523
3524      @Override
3525      public Base makeProperty(int hash, String name) throws FHIRException {
3526        switch (hash) {
3527        case -1410166417:  return getValue();
3528        case 111972721:  return getValue();
3529        default: return super.makeProperty(hash, name);
3530        }
3531
3532      }
3533
3534      @Override
3535      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3536        switch (hash) {
3537        case 111972721: /*value*/ return new String[] {"boolean", "decimal", "integer", "date", "dateTime", "time", "string", "uri", "Attachment", "Coding", "Quantity", "Reference"};
3538        default: return super.getTypesForProperty(hash, name);
3539        }
3540
3541      }
3542
3543      @Override
3544      public Base addChild(String name) throws FHIRException {
3545        if (name.equals("valueBoolean")) {
3546          this.value = new BooleanType();
3547          return this.value;
3548        }
3549        else if (name.equals("valueDecimal")) {
3550          this.value = new DecimalType();
3551          return this.value;
3552        }
3553        else if (name.equals("valueInteger")) {
3554          this.value = new IntegerType();
3555          return this.value;
3556        }
3557        else if (name.equals("valueDate")) {
3558          this.value = new DateType();
3559          return this.value;
3560        }
3561        else if (name.equals("valueDateTime")) {
3562          this.value = new DateTimeType();
3563          return this.value;
3564        }
3565        else if (name.equals("valueTime")) {
3566          this.value = new TimeType();
3567          return this.value;
3568        }
3569        else if (name.equals("valueString")) {
3570          this.value = new StringType();
3571          return this.value;
3572        }
3573        else if (name.equals("valueUri")) {
3574          this.value = new UriType();
3575          return this.value;
3576        }
3577        else if (name.equals("valueAttachment")) {
3578          this.value = new Attachment();
3579          return this.value;
3580        }
3581        else if (name.equals("valueCoding")) {
3582          this.value = new Coding();
3583          return this.value;
3584        }
3585        else if (name.equals("valueQuantity")) {
3586          this.value = new Quantity();
3587          return this.value;
3588        }
3589        else if (name.equals("valueReference")) {
3590          this.value = new Reference();
3591          return this.value;
3592        }
3593        else
3594          return super.addChild(name);
3595      }
3596
3597      public QuestionnaireItemInitialComponent copy() {
3598        QuestionnaireItemInitialComponent dst = new QuestionnaireItemInitialComponent();
3599        copyValues(dst);
3600        return dst;
3601      }
3602
3603      public void copyValues(QuestionnaireItemInitialComponent dst) {
3604        super.copyValues(dst);
3605        dst.value = value == null ? null : value.copy();
3606      }
3607
3608      @Override
3609      public boolean equalsDeep(Base other_) {
3610        if (!super.equalsDeep(other_))
3611          return false;
3612        if (!(other_ instanceof QuestionnaireItemInitialComponent))
3613          return false;
3614        QuestionnaireItemInitialComponent o = (QuestionnaireItemInitialComponent) other_;
3615        return compareDeep(value, o.value, true);
3616      }
3617
3618      @Override
3619      public boolean equalsShallow(Base other_) {
3620        if (!super.equalsShallow(other_))
3621          return false;
3622        if (!(other_ instanceof QuestionnaireItemInitialComponent))
3623          return false;
3624        QuestionnaireItemInitialComponent o = (QuestionnaireItemInitialComponent) other_;
3625        return true;
3626      }
3627
3628      public boolean isEmpty() {
3629        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value);
3630      }
3631
3632  public String fhirType() {
3633    return "Questionnaire.item.initial";
3634
3635  }
3636
3637  }
3638
3639    /**
3640     * 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.
3641     */
3642    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
3643    @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." )
3644    protected UriType url;
3645
3646    /**
3647     * 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.
3648     */
3649    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3650    @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." )
3651    protected List<Identifier> identifier;
3652
3653    /**
3654     * 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.
3655     */
3656    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
3657    @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." )
3658    protected StringType version;
3659
3660    /**
3661     * Indicates the mechanism used to compare versions to determine which is more current.
3662     */
3663    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
3664    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which is more current." )
3665    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
3666    protected DataType versionAlgorithm;
3667
3668    /**
3669     * 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.
3670     */
3671    @Child(name = "name", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
3672    @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." )
3673    protected StringType name;
3674
3675    /**
3676     * A short, descriptive, user-friendly title for the questionnaire.
3677     */
3678    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
3679    @Description(shortDefinition="Name for this questionnaire (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the questionnaire." )
3680    protected StringType title;
3681
3682    /**
3683     * The URL of a Questionnaire that this Questionnaire is based on.
3684     */
3685    @Child(name = "derivedFrom", type = {CanonicalType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3686    @Description(shortDefinition="Based on Questionnaire", formalDefinition="The URL of a Questionnaire that this Questionnaire is based on." )
3687    protected List<CanonicalType> derivedFrom;
3688
3689    /**
3690     * The current state of this questionnaire.
3691     */
3692    @Child(name = "status", type = {CodeType.class}, order=7, min=1, max=1, modifier=true, summary=true)
3693    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The current state of this questionnaire." )
3694    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
3695    protected Enumeration<PublicationStatus> status;
3696
3697    /**
3698     * A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.
3699     */
3700    @Child(name = "experimental", type = {BooleanType.class}, order=8, min=0, max=1, modifier=false, summary=true)
3701    @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." )
3702    protected BooleanType experimental;
3703
3704    /**
3705     * The types of subjects that can be the subject of responses created for the questionnaire.
3706     */
3707    @Child(name = "subjectType", type = {CodeType.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3708    @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." )
3709    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
3710    protected List<CodeType> subjectType;
3711
3712    /**
3713     * 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.
3714     */
3715    @Child(name = "date", type = {DateTimeType.class}, order=10, min=0, max=1, modifier=false, summary=true)
3716    @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." )
3717    protected DateTimeType date;
3718
3719    /**
3720     * The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.
3721     */
3722    @Child(name = "publisher", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=true)
3723    @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." )
3724    protected StringType publisher;
3725
3726    /**
3727     * Contact details to assist a user in finding and communicating with the publisher.
3728     */
3729    @Child(name = "contact", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3730    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
3731    protected List<ContactDetail> contact;
3732
3733    /**
3734     * A free text natural language description of the questionnaire from a consumer's perspective.
3735     */
3736    @Child(name = "description", type = {MarkdownType.class}, order=13, min=0, max=1, modifier=false, summary=true)
3737    @Description(shortDefinition="Natural language description of the questionnaire", formalDefinition="A free text natural language description of the questionnaire from a consumer's perspective." )
3738    protected MarkdownType description;
3739
3740    /**
3741     * 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.
3742     */
3743    @Child(name = "useContext", type = {UsageContext.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3744    @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." )
3745    protected List<UsageContext> useContext;
3746
3747    /**
3748     * A legal or geographic region in which the questionnaire is intended to be used.
3749     */
3750    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3751    @Description(shortDefinition="Intended jurisdiction for questionnaire (if applicable)", formalDefinition="A legal or geographic region in which the questionnaire is intended to be used." )
3752    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
3753    protected List<CodeableConcept> jurisdiction;
3754
3755    /**
3756     * Explanation of why this questionnaire is needed and why it has been designed as it has.
3757     */
3758    @Child(name = "purpose", type = {MarkdownType.class}, order=16, min=0, max=1, modifier=false, summary=false)
3759    @Description(shortDefinition="Why this questionnaire is defined", formalDefinition="Explanation of why this questionnaire is needed and why it has been designed as it has." )
3760    protected MarkdownType purpose;
3761
3762    /**
3763     * 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.
3764     */
3765    @Child(name = "copyright", type = {MarkdownType.class}, order=17, min=0, max=1, modifier=false, summary=false)
3766    @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." )
3767    protected MarkdownType copyright;
3768
3769    /**
3770     * 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').
3771     */
3772    @Child(name = "copyrightLabel", type = {StringType.class}, order=18, min=0, max=1, modifier=false, summary=false)
3773    @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')." )
3774    protected StringType copyrightLabel;
3775
3776    /**
3777     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
3778     */
3779    @Child(name = "approvalDate", type = {DateType.class}, order=19, min=0, max=1, modifier=false, summary=false)
3780    @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." )
3781    protected DateType approvalDate;
3782
3783    /**
3784     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
3785     */
3786    @Child(name = "lastReviewDate", type = {DateType.class}, order=20, min=0, max=1, modifier=false, summary=false)
3787    @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." )
3788    protected DateType lastReviewDate;
3789
3790    /**
3791     * The period during which the questionnaire content was or is planned to be in active use.
3792     */
3793    @Child(name = "effectivePeriod", type = {Period.class}, order=21, min=0, max=1, modifier=false, summary=true)
3794    @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." )
3795    protected Period effectivePeriod;
3796
3797    /**
3798     * An identifier for this collection of questions in a particular terminology such as LOINC.
3799     */
3800    @Child(name = "code", type = {Coding.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3801    @Description(shortDefinition="Concept that represents the overall questionnaire", formalDefinition="An identifier for this collection of questions in a particular terminology such as LOINC." )
3802    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-questions")
3803    protected List<Coding> code;
3804
3805    /**
3806     * A particular question, question grouping or display text that is part of the questionnaire.
3807     */
3808    @Child(name = "item", type = {}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3809    @Description(shortDefinition="Questions and sections within the Questionnaire", formalDefinition="A particular question, question grouping or display text that is part of the questionnaire." )
3810    protected List<QuestionnaireItemComponent> item;
3811
3812    private static final long serialVersionUID = -863684953L;
3813
3814  /**
3815   * Constructor
3816   */
3817    public Questionnaire() {
3818      super();
3819    }
3820
3821  /**
3822   * Constructor
3823   */
3824    public Questionnaire(PublicationStatus status) {
3825      super();
3826      this.setStatus(status);
3827    }
3828
3829    /**
3830     * @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
3831     */
3832    public UriType getUrlElement() { 
3833      if (this.url == null)
3834        if (Configuration.errorOnAutoCreate())
3835          throw new Error("Attempt to auto-create Questionnaire.url");
3836        else if (Configuration.doAutoCreate())
3837          this.url = new UriType(); // bb
3838      return this.url;
3839    }
3840
3841    public boolean hasUrlElement() { 
3842      return this.url != null && !this.url.isEmpty();
3843    }
3844
3845    public boolean hasUrl() { 
3846      return this.url != null && !this.url.isEmpty();
3847    }
3848
3849    /**
3850     * @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
3851     */
3852    public Questionnaire setUrlElement(UriType value) { 
3853      this.url = value;
3854      return this;
3855    }
3856
3857    /**
3858     * @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.
3859     */
3860    public String getUrl() { 
3861      return this.url == null ? null : this.url.getValue();
3862    }
3863
3864    /**
3865     * @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.
3866     */
3867    public Questionnaire setUrl(String value) { 
3868      if (Utilities.noString(value))
3869        this.url = null;
3870      else {
3871        if (this.url == null)
3872          this.url = new UriType();
3873        this.url.setValue(value);
3874      }
3875      return this;
3876    }
3877
3878    /**
3879     * @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.)
3880     */
3881    public List<Identifier> getIdentifier() { 
3882      if (this.identifier == null)
3883        this.identifier = new ArrayList<Identifier>();
3884      return this.identifier;
3885    }
3886
3887    /**
3888     * @return Returns a reference to <code>this</code> for easy method chaining
3889     */
3890    public Questionnaire setIdentifier(List<Identifier> theIdentifier) { 
3891      this.identifier = theIdentifier;
3892      return this;
3893    }
3894
3895    public boolean hasIdentifier() { 
3896      if (this.identifier == null)
3897        return false;
3898      for (Identifier item : this.identifier)
3899        if (!item.isEmpty())
3900          return true;
3901      return false;
3902    }
3903
3904    public Identifier addIdentifier() { //3
3905      Identifier t = new Identifier();
3906      if (this.identifier == null)
3907        this.identifier = new ArrayList<Identifier>();
3908      this.identifier.add(t);
3909      return t;
3910    }
3911
3912    public Questionnaire addIdentifier(Identifier t) { //3
3913      if (t == null)
3914        return this;
3915      if (this.identifier == null)
3916        this.identifier = new ArrayList<Identifier>();
3917      this.identifier.add(t);
3918      return this;
3919    }
3920
3921    /**
3922     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
3923     */
3924    public Identifier getIdentifierFirstRep() { 
3925      if (getIdentifier().isEmpty()) {
3926        addIdentifier();
3927      }
3928      return getIdentifier().get(0);
3929    }
3930
3931    /**
3932     * @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
3933     */
3934    public StringType getVersionElement() { 
3935      if (this.version == null)
3936        if (Configuration.errorOnAutoCreate())
3937          throw new Error("Attempt to auto-create Questionnaire.version");
3938        else if (Configuration.doAutoCreate())
3939          this.version = new StringType(); // bb
3940      return this.version;
3941    }
3942
3943    public boolean hasVersionElement() { 
3944      return this.version != null && !this.version.isEmpty();
3945    }
3946
3947    public boolean hasVersion() { 
3948      return this.version != null && !this.version.isEmpty();
3949    }
3950
3951    /**
3952     * @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
3953     */
3954    public Questionnaire setVersionElement(StringType value) { 
3955      this.version = value;
3956      return this;
3957    }
3958
3959    /**
3960     * @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.
3961     */
3962    public String getVersion() { 
3963      return this.version == null ? null : this.version.getValue();
3964    }
3965
3966    /**
3967     * @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.
3968     */
3969    public Questionnaire setVersion(String value) { 
3970      if (Utilities.noString(value))
3971        this.version = null;
3972      else {
3973        if (this.version == null)
3974          this.version = new StringType();
3975        this.version.setValue(value);
3976      }
3977      return this;
3978    }
3979
3980    /**
3981     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3982     */
3983    public DataType getVersionAlgorithm() { 
3984      return this.versionAlgorithm;
3985    }
3986
3987    /**
3988     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3989     */
3990    public StringType getVersionAlgorithmStringType() throws FHIRException { 
3991      if (this.versionAlgorithm == null)
3992        this.versionAlgorithm = new StringType();
3993      if (!(this.versionAlgorithm instanceof StringType))
3994        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
3995      return (StringType) this.versionAlgorithm;
3996    }
3997
3998    public boolean hasVersionAlgorithmStringType() { 
3999      return this != null && this.versionAlgorithm instanceof StringType;
4000    }
4001
4002    /**
4003     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
4004     */
4005    public Coding getVersionAlgorithmCoding() throws FHIRException { 
4006      if (this.versionAlgorithm == null)
4007        this.versionAlgorithm = new Coding();
4008      if (!(this.versionAlgorithm instanceof Coding))
4009        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
4010      return (Coding) this.versionAlgorithm;
4011    }
4012
4013    public boolean hasVersionAlgorithmCoding() { 
4014      return this != null && this.versionAlgorithm instanceof Coding;
4015    }
4016
4017    public boolean hasVersionAlgorithm() { 
4018      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
4019    }
4020
4021    /**
4022     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
4023     */
4024    public Questionnaire setVersionAlgorithm(DataType value) { 
4025      if (value != null && !(value instanceof StringType || value instanceof Coding))
4026        throw new FHIRException("Not the right type for Questionnaire.versionAlgorithm[x]: "+value.fhirType());
4027      this.versionAlgorithm = value;
4028      return this;
4029    }
4030
4031    /**
4032     * @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
4033     */
4034    public StringType getNameElement() { 
4035      if (this.name == null)
4036        if (Configuration.errorOnAutoCreate())
4037          throw new Error("Attempt to auto-create Questionnaire.name");
4038        else if (Configuration.doAutoCreate())
4039          this.name = new StringType(); // bb
4040      return this.name;
4041    }
4042
4043    public boolean hasNameElement() { 
4044      return this.name != null && !this.name.isEmpty();
4045    }
4046
4047    public boolean hasName() { 
4048      return this.name != null && !this.name.isEmpty();
4049    }
4050
4051    /**
4052     * @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
4053     */
4054    public Questionnaire setNameElement(StringType value) { 
4055      this.name = value;
4056      return this;
4057    }
4058
4059    /**
4060     * @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.
4061     */
4062    public String getName() { 
4063      return this.name == null ? null : this.name.getValue();
4064    }
4065
4066    /**
4067     * @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.
4068     */
4069    public Questionnaire setName(String value) { 
4070      if (Utilities.noString(value))
4071        this.name = null;
4072      else {
4073        if (this.name == null)
4074          this.name = new StringType();
4075        this.name.setValue(value);
4076      }
4077      return this;
4078    }
4079
4080    /**
4081     * @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
4082     */
4083    public StringType getTitleElement() { 
4084      if (this.title == null)
4085        if (Configuration.errorOnAutoCreate())
4086          throw new Error("Attempt to auto-create Questionnaire.title");
4087        else if (Configuration.doAutoCreate())
4088          this.title = new StringType(); // bb
4089      return this.title;
4090    }
4091
4092    public boolean hasTitleElement() { 
4093      return this.title != null && !this.title.isEmpty();
4094    }
4095
4096    public boolean hasTitle() { 
4097      return this.title != null && !this.title.isEmpty();
4098    }
4099
4100    /**
4101     * @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
4102     */
4103    public Questionnaire setTitleElement(StringType value) { 
4104      this.title = value;
4105      return this;
4106    }
4107
4108    /**
4109     * @return A short, descriptive, user-friendly title for the questionnaire.
4110     */
4111    public String getTitle() { 
4112      return this.title == null ? null : this.title.getValue();
4113    }
4114
4115    /**
4116     * @param value A short, descriptive, user-friendly title for the questionnaire.
4117     */
4118    public Questionnaire setTitle(String value) { 
4119      if (Utilities.noString(value))
4120        this.title = null;
4121      else {
4122        if (this.title == null)
4123          this.title = new StringType();
4124        this.title.setValue(value);
4125      }
4126      return this;
4127    }
4128
4129    /**
4130     * @return {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4131     */
4132    public List<CanonicalType> getDerivedFrom() { 
4133      if (this.derivedFrom == null)
4134        this.derivedFrom = new ArrayList<CanonicalType>();
4135      return this.derivedFrom;
4136    }
4137
4138    /**
4139     * @return Returns a reference to <code>this</code> for easy method chaining
4140     */
4141    public Questionnaire setDerivedFrom(List<CanonicalType> theDerivedFrom) { 
4142      this.derivedFrom = theDerivedFrom;
4143      return this;
4144    }
4145
4146    public boolean hasDerivedFrom() { 
4147      if (this.derivedFrom == null)
4148        return false;
4149      for (CanonicalType item : this.derivedFrom)
4150        if (!item.isEmpty())
4151          return true;
4152      return false;
4153    }
4154
4155    /**
4156     * @return {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4157     */
4158    public CanonicalType addDerivedFromElement() {//2 
4159      CanonicalType t = new CanonicalType();
4160      if (this.derivedFrom == null)
4161        this.derivedFrom = new ArrayList<CanonicalType>();
4162      this.derivedFrom.add(t);
4163      return t;
4164    }
4165
4166    /**
4167     * @param value {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4168     */
4169    public Questionnaire addDerivedFrom(String value) { //1
4170      CanonicalType t = new CanonicalType();
4171      t.setValue(value);
4172      if (this.derivedFrom == null)
4173        this.derivedFrom = new ArrayList<CanonicalType>();
4174      this.derivedFrom.add(t);
4175      return this;
4176    }
4177
4178    /**
4179     * @param value {@link #derivedFrom} (The URL of a Questionnaire that this Questionnaire is based on.)
4180     */
4181    public boolean hasDerivedFrom(String value) { 
4182      if (this.derivedFrom == null)
4183        return false;
4184      for (CanonicalType v : this.derivedFrom)
4185        if (v.getValue().equals(value)) // canonical
4186          return true;
4187      return false;
4188    }
4189
4190    /**
4191     * @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
4192     */
4193    public Enumeration<PublicationStatus> getStatusElement() { 
4194      if (this.status == null)
4195        if (Configuration.errorOnAutoCreate())
4196          throw new Error("Attempt to auto-create Questionnaire.status");
4197        else if (Configuration.doAutoCreate())
4198          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
4199      return this.status;
4200    }
4201
4202    public boolean hasStatusElement() { 
4203      return this.status != null && !this.status.isEmpty();
4204    }
4205
4206    public boolean hasStatus() { 
4207      return this.status != null && !this.status.isEmpty();
4208    }
4209
4210    /**
4211     * @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
4212     */
4213    public Questionnaire setStatusElement(Enumeration<PublicationStatus> value) { 
4214      this.status = value;
4215      return this;
4216    }
4217
4218    /**
4219     * @return The current state of this questionnaire.
4220     */
4221    public PublicationStatus getStatus() { 
4222      return this.status == null ? null : this.status.getValue();
4223    }
4224
4225    /**
4226     * @param value The current state of this questionnaire.
4227     */
4228    public Questionnaire setStatus(PublicationStatus value) { 
4229        if (this.status == null)
4230          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
4231        this.status.setValue(value);
4232      return this;
4233    }
4234
4235    /**
4236     * @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
4237     */
4238    public BooleanType getExperimentalElement() { 
4239      if (this.experimental == null)
4240        if (Configuration.errorOnAutoCreate())
4241          throw new Error("Attempt to auto-create Questionnaire.experimental");
4242        else if (Configuration.doAutoCreate())
4243          this.experimental = new BooleanType(); // bb
4244      return this.experimental;
4245    }
4246
4247    public boolean hasExperimentalElement() { 
4248      return this.experimental != null && !this.experimental.isEmpty();
4249    }
4250
4251    public boolean hasExperimental() { 
4252      return this.experimental != null && !this.experimental.isEmpty();
4253    }
4254
4255    /**
4256     * @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
4257     */
4258    public Questionnaire setExperimentalElement(BooleanType value) { 
4259      this.experimental = value;
4260      return this;
4261    }
4262
4263    /**
4264     * @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.
4265     */
4266    public boolean getExperimental() { 
4267      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
4268    }
4269
4270    /**
4271     * @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.
4272     */
4273    public Questionnaire setExperimental(boolean value) { 
4274        if (this.experimental == null)
4275          this.experimental = new BooleanType();
4276        this.experimental.setValue(value);
4277      return this;
4278    }
4279
4280    /**
4281     * @return {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4282     */
4283    public List<CodeType> getSubjectType() { 
4284      if (this.subjectType == null)
4285        this.subjectType = new ArrayList<CodeType>();
4286      return this.subjectType;
4287    }
4288
4289    /**
4290     * @return Returns a reference to <code>this</code> for easy method chaining
4291     */
4292    public Questionnaire setSubjectType(List<CodeType> theSubjectType) { 
4293      this.subjectType = theSubjectType;
4294      return this;
4295    }
4296
4297    public boolean hasSubjectType() { 
4298      if (this.subjectType == null)
4299        return false;
4300      for (CodeType item : this.subjectType)
4301        if (!item.isEmpty())
4302          return true;
4303      return false;
4304    }
4305
4306    /**
4307     * @return {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4308     */
4309    public CodeType addSubjectTypeElement() {//2 
4310      CodeType t = new CodeType();
4311      if (this.subjectType == null)
4312        this.subjectType = new ArrayList<CodeType>();
4313      this.subjectType.add(t);
4314      return t;
4315    }
4316
4317    /**
4318     * @param value {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4319     */
4320    public Questionnaire addSubjectType(String value) { //1
4321      CodeType t = new CodeType();
4322      t.setValue(value);
4323      if (this.subjectType == null)
4324        this.subjectType = new ArrayList<CodeType>();
4325      this.subjectType.add(t);
4326      return this;
4327    }
4328
4329    /**
4330     * @param value {@link #subjectType} (The types of subjects that can be the subject of responses created for the questionnaire.)
4331     */
4332    public boolean hasSubjectType(String value) { 
4333      if (this.subjectType == null)
4334        return false;
4335      for (CodeType v : this.subjectType)
4336        if (v.getValue().equals(value)) // code
4337          return true;
4338      return false;
4339    }
4340
4341    /**
4342     * @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
4343     */
4344    public DateTimeType getDateElement() { 
4345      if (this.date == null)
4346        if (Configuration.errorOnAutoCreate())
4347          throw new Error("Attempt to auto-create Questionnaire.date");
4348        else if (Configuration.doAutoCreate())
4349          this.date = new DateTimeType(); // bb
4350      return this.date;
4351    }
4352
4353    public boolean hasDateElement() { 
4354      return this.date != null && !this.date.isEmpty();
4355    }
4356
4357    public boolean hasDate() { 
4358      return this.date != null && !this.date.isEmpty();
4359    }
4360
4361    /**
4362     * @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
4363     */
4364    public Questionnaire setDateElement(DateTimeType value) { 
4365      this.date = value;
4366      return this;
4367    }
4368
4369    /**
4370     * @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.
4371     */
4372    public Date getDate() { 
4373      return this.date == null ? null : this.date.getValue();
4374    }
4375
4376    /**
4377     * @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.
4378     */
4379    public Questionnaire setDate(Date value) { 
4380      if (value == null)
4381        this.date = null;
4382      else {
4383        if (this.date == null)
4384          this.date = new DateTimeType();
4385        this.date.setValue(value);
4386      }
4387      return this;
4388    }
4389
4390    /**
4391     * @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
4392     */
4393    public StringType getPublisherElement() { 
4394      if (this.publisher == null)
4395        if (Configuration.errorOnAutoCreate())
4396          throw new Error("Attempt to auto-create Questionnaire.publisher");
4397        else if (Configuration.doAutoCreate())
4398          this.publisher = new StringType(); // bb
4399      return this.publisher;
4400    }
4401
4402    public boolean hasPublisherElement() { 
4403      return this.publisher != null && !this.publisher.isEmpty();
4404    }
4405
4406    public boolean hasPublisher() { 
4407      return this.publisher != null && !this.publisher.isEmpty();
4408    }
4409
4410    /**
4411     * @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
4412     */
4413    public Questionnaire setPublisherElement(StringType value) { 
4414      this.publisher = value;
4415      return this;
4416    }
4417
4418    /**
4419     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.
4420     */
4421    public String getPublisher() { 
4422      return this.publisher == null ? null : this.publisher.getValue();
4423    }
4424
4425    /**
4426     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.
4427     */
4428    public Questionnaire setPublisher(String value) { 
4429      if (Utilities.noString(value))
4430        this.publisher = null;
4431      else {
4432        if (this.publisher == null)
4433          this.publisher = new StringType();
4434        this.publisher.setValue(value);
4435      }
4436      return this;
4437    }
4438
4439    /**
4440     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
4441     */
4442    public List<ContactDetail> getContact() { 
4443      if (this.contact == null)
4444        this.contact = new ArrayList<ContactDetail>();
4445      return this.contact;
4446    }
4447
4448    /**
4449     * @return Returns a reference to <code>this</code> for easy method chaining
4450     */
4451    public Questionnaire setContact(List<ContactDetail> theContact) { 
4452      this.contact = theContact;
4453      return this;
4454    }
4455
4456    public boolean hasContact() { 
4457      if (this.contact == null)
4458        return false;
4459      for (ContactDetail item : this.contact)
4460        if (!item.isEmpty())
4461          return true;
4462      return false;
4463    }
4464
4465    public ContactDetail addContact() { //3
4466      ContactDetail t = new ContactDetail();
4467      if (this.contact == null)
4468        this.contact = new ArrayList<ContactDetail>();
4469      this.contact.add(t);
4470      return t;
4471    }
4472
4473    public Questionnaire addContact(ContactDetail t) { //3
4474      if (t == null)
4475        return this;
4476      if (this.contact == null)
4477        this.contact = new ArrayList<ContactDetail>();
4478      this.contact.add(t);
4479      return this;
4480    }
4481
4482    /**
4483     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
4484     */
4485    public ContactDetail getContactFirstRep() { 
4486      if (getContact().isEmpty()) {
4487        addContact();
4488      }
4489      return getContact().get(0);
4490    }
4491
4492    /**
4493     * @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
4494     */
4495    public MarkdownType getDescriptionElement() { 
4496      if (this.description == null)
4497        if (Configuration.errorOnAutoCreate())
4498          throw new Error("Attempt to auto-create Questionnaire.description");
4499        else if (Configuration.doAutoCreate())
4500          this.description = new MarkdownType(); // bb
4501      return this.description;
4502    }
4503
4504    public boolean hasDescriptionElement() { 
4505      return this.description != null && !this.description.isEmpty();
4506    }
4507
4508    public boolean hasDescription() { 
4509      return this.description != null && !this.description.isEmpty();
4510    }
4511
4512    /**
4513     * @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
4514     */
4515    public Questionnaire setDescriptionElement(MarkdownType value) { 
4516      this.description = value;
4517      return this;
4518    }
4519
4520    /**
4521     * @return A free text natural language description of the questionnaire from a consumer's perspective.
4522     */
4523    public String getDescription() { 
4524      return this.description == null ? null : this.description.getValue();
4525    }
4526
4527    /**
4528     * @param value A free text natural language description of the questionnaire from a consumer's perspective.
4529     */
4530    public Questionnaire setDescription(String value) { 
4531      if (Utilities.noString(value))
4532        this.description = null;
4533      else {
4534        if (this.description == null)
4535          this.description = new MarkdownType();
4536        this.description.setValue(value);
4537      }
4538      return this;
4539    }
4540
4541    /**
4542     * @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.)
4543     */
4544    public List<UsageContext> getUseContext() { 
4545      if (this.useContext == null)
4546        this.useContext = new ArrayList<UsageContext>();
4547      return this.useContext;
4548    }
4549
4550    /**
4551     * @return Returns a reference to <code>this</code> for easy method chaining
4552     */
4553    public Questionnaire setUseContext(List<UsageContext> theUseContext) { 
4554      this.useContext = theUseContext;
4555      return this;
4556    }
4557
4558    public boolean hasUseContext() { 
4559      if (this.useContext == null)
4560        return false;
4561      for (UsageContext item : this.useContext)
4562        if (!item.isEmpty())
4563          return true;
4564      return false;
4565    }
4566
4567    public UsageContext addUseContext() { //3
4568      UsageContext t = new UsageContext();
4569      if (this.useContext == null)
4570        this.useContext = new ArrayList<UsageContext>();
4571      this.useContext.add(t);
4572      return t;
4573    }
4574
4575    public Questionnaire addUseContext(UsageContext t) { //3
4576      if (t == null)
4577        return this;
4578      if (this.useContext == null)
4579        this.useContext = new ArrayList<UsageContext>();
4580      this.useContext.add(t);
4581      return this;
4582    }
4583
4584    /**
4585     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
4586     */
4587    public UsageContext getUseContextFirstRep() { 
4588      if (getUseContext().isEmpty()) {
4589        addUseContext();
4590      }
4591      return getUseContext().get(0);
4592    }
4593
4594    /**
4595     * @return {@link #jurisdiction} (A legal or geographic region in which the questionnaire is intended to be used.)
4596     */
4597    public List<CodeableConcept> getJurisdiction() { 
4598      if (this.jurisdiction == null)
4599        this.jurisdiction = new ArrayList<CodeableConcept>();
4600      return this.jurisdiction;
4601    }
4602
4603    /**
4604     * @return Returns a reference to <code>this</code> for easy method chaining
4605     */
4606    public Questionnaire setJurisdiction(List<CodeableConcept> theJurisdiction) { 
4607      this.jurisdiction = theJurisdiction;
4608      return this;
4609    }
4610
4611    public boolean hasJurisdiction() { 
4612      if (this.jurisdiction == null)
4613        return false;
4614      for (CodeableConcept item : this.jurisdiction)
4615        if (!item.isEmpty())
4616          return true;
4617      return false;
4618    }
4619
4620    public CodeableConcept addJurisdiction() { //3
4621      CodeableConcept t = new CodeableConcept();
4622      if (this.jurisdiction == null)
4623        this.jurisdiction = new ArrayList<CodeableConcept>();
4624      this.jurisdiction.add(t);
4625      return t;
4626    }
4627
4628    public Questionnaire addJurisdiction(CodeableConcept t) { //3
4629      if (t == null)
4630        return this;
4631      if (this.jurisdiction == null)
4632        this.jurisdiction = new ArrayList<CodeableConcept>();
4633      this.jurisdiction.add(t);
4634      return this;
4635    }
4636
4637    /**
4638     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
4639     */
4640    public CodeableConcept getJurisdictionFirstRep() { 
4641      if (getJurisdiction().isEmpty()) {
4642        addJurisdiction();
4643      }
4644      return getJurisdiction().get(0);
4645    }
4646
4647    /**
4648     * @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
4649     */
4650    public MarkdownType getPurposeElement() { 
4651      if (this.purpose == null)
4652        if (Configuration.errorOnAutoCreate())
4653          throw new Error("Attempt to auto-create Questionnaire.purpose");
4654        else if (Configuration.doAutoCreate())
4655          this.purpose = new MarkdownType(); // bb
4656      return this.purpose;
4657    }
4658
4659    public boolean hasPurposeElement() { 
4660      return this.purpose != null && !this.purpose.isEmpty();
4661    }
4662
4663    public boolean hasPurpose() { 
4664      return this.purpose != null && !this.purpose.isEmpty();
4665    }
4666
4667    /**
4668     * @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
4669     */
4670    public Questionnaire setPurposeElement(MarkdownType value) { 
4671      this.purpose = value;
4672      return this;
4673    }
4674
4675    /**
4676     * @return Explanation of why this questionnaire is needed and why it has been designed as it has.
4677     */
4678    public String getPurpose() { 
4679      return this.purpose == null ? null : this.purpose.getValue();
4680    }
4681
4682    /**
4683     * @param value Explanation of why this questionnaire is needed and why it has been designed as it has.
4684     */
4685    public Questionnaire setPurpose(String value) { 
4686      if (Utilities.noString(value))
4687        this.purpose = null;
4688      else {
4689        if (this.purpose == null)
4690          this.purpose = new MarkdownType();
4691        this.purpose.setValue(value);
4692      }
4693      return this;
4694    }
4695
4696    /**
4697     * @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
4698     */
4699    public MarkdownType getCopyrightElement() { 
4700      if (this.copyright == null)
4701        if (Configuration.errorOnAutoCreate())
4702          throw new Error("Attempt to auto-create Questionnaire.copyright");
4703        else if (Configuration.doAutoCreate())
4704          this.copyright = new MarkdownType(); // bb
4705      return this.copyright;
4706    }
4707
4708    public boolean hasCopyrightElement() { 
4709      return this.copyright != null && !this.copyright.isEmpty();
4710    }
4711
4712    public boolean hasCopyright() { 
4713      return this.copyright != null && !this.copyright.isEmpty();
4714    }
4715
4716    /**
4717     * @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
4718     */
4719    public Questionnaire setCopyrightElement(MarkdownType value) { 
4720      this.copyright = value;
4721      return this;
4722    }
4723
4724    /**
4725     * @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.
4726     */
4727    public String getCopyright() { 
4728      return this.copyright == null ? null : this.copyright.getValue();
4729    }
4730
4731    /**
4732     * @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.
4733     */
4734    public Questionnaire setCopyright(String value) { 
4735      if (Utilities.noString(value))
4736        this.copyright = null;
4737      else {
4738        if (this.copyright == null)
4739          this.copyright = new MarkdownType();
4740        this.copyright.setValue(value);
4741      }
4742      return this;
4743    }
4744
4745    /**
4746     * @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
4747     */
4748    public StringType getCopyrightLabelElement() { 
4749      if (this.copyrightLabel == null)
4750        if (Configuration.errorOnAutoCreate())
4751          throw new Error("Attempt to auto-create Questionnaire.copyrightLabel");
4752        else if (Configuration.doAutoCreate())
4753          this.copyrightLabel = new StringType(); // bb
4754      return this.copyrightLabel;
4755    }
4756
4757    public boolean hasCopyrightLabelElement() { 
4758      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4759    }
4760
4761    public boolean hasCopyrightLabel() { 
4762      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4763    }
4764
4765    /**
4766     * @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
4767     */
4768    public Questionnaire setCopyrightLabelElement(StringType value) { 
4769      this.copyrightLabel = value;
4770      return this;
4771    }
4772
4773    /**
4774     * @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').
4775     */
4776    public String getCopyrightLabel() { 
4777      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
4778    }
4779
4780    /**
4781     * @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').
4782     */
4783    public Questionnaire setCopyrightLabel(String value) { 
4784      if (Utilities.noString(value))
4785        this.copyrightLabel = null;
4786      else {
4787        if (this.copyrightLabel == null)
4788          this.copyrightLabel = new StringType();
4789        this.copyrightLabel.setValue(value);
4790      }
4791      return this;
4792    }
4793
4794    /**
4795     * @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
4796     */
4797    public DateType getApprovalDateElement() { 
4798      if (this.approvalDate == null)
4799        if (Configuration.errorOnAutoCreate())
4800          throw new Error("Attempt to auto-create Questionnaire.approvalDate");
4801        else if (Configuration.doAutoCreate())
4802          this.approvalDate = new DateType(); // bb
4803      return this.approvalDate;
4804    }
4805
4806    public boolean hasApprovalDateElement() { 
4807      return this.approvalDate != null && !this.approvalDate.isEmpty();
4808    }
4809
4810    public boolean hasApprovalDate() { 
4811      return this.approvalDate != null && !this.approvalDate.isEmpty();
4812    }
4813
4814    /**
4815     * @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
4816     */
4817    public Questionnaire setApprovalDateElement(DateType value) { 
4818      this.approvalDate = value;
4819      return this;
4820    }
4821
4822    /**
4823     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
4824     */
4825    public Date getApprovalDate() { 
4826      return this.approvalDate == null ? null : this.approvalDate.getValue();
4827    }
4828
4829    /**
4830     * @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.
4831     */
4832    public Questionnaire setApprovalDate(Date value) { 
4833      if (value == null)
4834        this.approvalDate = null;
4835      else {
4836        if (this.approvalDate == null)
4837          this.approvalDate = new DateType();
4838        this.approvalDate.setValue(value);
4839      }
4840      return this;
4841    }
4842
4843    /**
4844     * @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
4845     */
4846    public DateType getLastReviewDateElement() { 
4847      if (this.lastReviewDate == null)
4848        if (Configuration.errorOnAutoCreate())
4849          throw new Error("Attempt to auto-create Questionnaire.lastReviewDate");
4850        else if (Configuration.doAutoCreate())
4851          this.lastReviewDate = new DateType(); // bb
4852      return this.lastReviewDate;
4853    }
4854
4855    public boolean hasLastReviewDateElement() { 
4856      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
4857    }
4858
4859    public boolean hasLastReviewDate() { 
4860      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
4861    }
4862
4863    /**
4864     * @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
4865     */
4866    public Questionnaire setLastReviewDateElement(DateType value) { 
4867      this.lastReviewDate = value;
4868      return this;
4869    }
4870
4871    /**
4872     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
4873     */
4874    public Date getLastReviewDate() { 
4875      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
4876    }
4877
4878    /**
4879     * @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.
4880     */
4881    public Questionnaire setLastReviewDate(Date value) { 
4882      if (value == null)
4883        this.lastReviewDate = null;
4884      else {
4885        if (this.lastReviewDate == null)
4886          this.lastReviewDate = new DateType();
4887        this.lastReviewDate.setValue(value);
4888      }
4889      return this;
4890    }
4891
4892    /**
4893     * @return {@link #effectivePeriod} (The period during which the questionnaire content was or is planned to be in active use.)
4894     */
4895    public Period getEffectivePeriod() { 
4896      if (this.effectivePeriod == null)
4897        if (Configuration.errorOnAutoCreate())
4898          throw new Error("Attempt to auto-create Questionnaire.effectivePeriod");
4899        else if (Configuration.doAutoCreate())
4900          this.effectivePeriod = new Period(); // cc
4901      return this.effectivePeriod;
4902    }
4903
4904    public boolean hasEffectivePeriod() { 
4905      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
4906    }
4907
4908    /**
4909     * @param value {@link #effectivePeriod} (The period during which the questionnaire content was or is planned to be in active use.)
4910     */
4911    public Questionnaire setEffectivePeriod(Period value) { 
4912      this.effectivePeriod = value;
4913      return this;
4914    }
4915
4916    /**
4917     * @return {@link #code} (An identifier for this collection of questions in a particular terminology such as LOINC.)
4918     */
4919    public List<Coding> getCode() { 
4920      if (this.code == null)
4921        this.code = new ArrayList<Coding>();
4922      return this.code;
4923    }
4924
4925    /**
4926     * @return Returns a reference to <code>this</code> for easy method chaining
4927     */
4928    public Questionnaire setCode(List<Coding> theCode) { 
4929      this.code = theCode;
4930      return this;
4931    }
4932
4933    public boolean hasCode() { 
4934      if (this.code == null)
4935        return false;
4936      for (Coding item : this.code)
4937        if (!item.isEmpty())
4938          return true;
4939      return false;
4940    }
4941
4942    public Coding addCode() { //3
4943      Coding t = new Coding();
4944      if (this.code == null)
4945        this.code = new ArrayList<Coding>();
4946      this.code.add(t);
4947      return t;
4948    }
4949
4950    public Questionnaire addCode(Coding t) { //3
4951      if (t == null)
4952        return this;
4953      if (this.code == null)
4954        this.code = new ArrayList<Coding>();
4955      this.code.add(t);
4956      return this;
4957    }
4958
4959    /**
4960     * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3}
4961     */
4962    public Coding getCodeFirstRep() { 
4963      if (getCode().isEmpty()) {
4964        addCode();
4965      }
4966      return getCode().get(0);
4967    }
4968
4969    /**
4970     * @return {@link #item} (A particular question, question grouping or display text that is part of the questionnaire.)
4971     */
4972    public List<QuestionnaireItemComponent> getItem() { 
4973      if (this.item == null)
4974        this.item = new ArrayList<QuestionnaireItemComponent>();
4975      return this.item;
4976    }
4977
4978    /**
4979     * @return Returns a reference to <code>this</code> for easy method chaining
4980     */
4981    public Questionnaire setItem(List<QuestionnaireItemComponent> theItem) { 
4982      this.item = theItem;
4983      return this;
4984    }
4985
4986    public boolean hasItem() { 
4987      if (this.item == null)
4988        return false;
4989      for (QuestionnaireItemComponent item : this.item)
4990        if (!item.isEmpty())
4991          return true;
4992      return false;
4993    }
4994
4995    public QuestionnaireItemComponent addItem() { //3
4996      QuestionnaireItemComponent t = new QuestionnaireItemComponent();
4997      if (this.item == null)
4998        this.item = new ArrayList<QuestionnaireItemComponent>();
4999      this.item.add(t);
5000      return t;
5001    }
5002
5003    public Questionnaire addItem(QuestionnaireItemComponent t) { //3
5004      if (t == null)
5005        return this;
5006      if (this.item == null)
5007        this.item = new ArrayList<QuestionnaireItemComponent>();
5008      this.item.add(t);
5009      return this;
5010    }
5011
5012    /**
5013     * @return The first repetition of repeating field {@link #item}, creating it if it does not already exist {3}
5014     */
5015    public QuestionnaireItemComponent getItemFirstRep() { 
5016      if (getItem().isEmpty()) {
5017        addItem();
5018      }
5019      return getItem().get(0);
5020    }
5021
5022    /**
5023     * not supported on this implementation
5024     */
5025    @Override
5026    public int getTopicMax() { 
5027      return 0;
5028    }
5029    /**
5030     * @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.)
5031     */
5032    public List<CodeableConcept> getTopic() { 
5033      return new ArrayList<>();
5034    }
5035    /**
5036     * @return Returns a reference to <code>this</code> for easy method chaining
5037     */
5038    public Questionnaire setTopic(List<CodeableConcept> theTopic) { 
5039      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
5040    }
5041    public boolean hasTopic() { 
5042      return false;
5043    }
5044
5045    public CodeableConcept addTopic() { //3
5046      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
5047    }
5048    public Questionnaire addTopic(CodeableConcept t) { //3
5049      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
5050    }
5051    /**
5052     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist {2}
5053     */
5054    public CodeableConcept getTopicFirstRep() { 
5055      throw new Error("The resource type \"Questionnaire\" does not implement the property \"topic\""); 
5056    }
5057    /**
5058     * not supported on this implementation
5059     */
5060    @Override
5061    public int getAuthorMax() { 
5062      return 0;
5063    }
5064    /**
5065     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the questionnaire.)
5066     */
5067    public List<ContactDetail> getAuthor() { 
5068      return new ArrayList<>();
5069    }
5070    /**
5071     * @return Returns a reference to <code>this</code> for easy method chaining
5072     */
5073    public Questionnaire setAuthor(List<ContactDetail> theAuthor) { 
5074      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
5075    }
5076    public boolean hasAuthor() { 
5077      return false;
5078    }
5079
5080    public ContactDetail addAuthor() { //3
5081      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
5082    }
5083    public Questionnaire addAuthor(ContactDetail t) { //3
5084      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
5085    }
5086    /**
5087     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {2}
5088     */
5089    public ContactDetail getAuthorFirstRep() { 
5090      throw new Error("The resource type \"Questionnaire\" does not implement the property \"author\""); 
5091    }
5092    /**
5093     * not supported on this implementation
5094     */
5095    @Override
5096    public int getEditorMax() { 
5097      return 0;
5098    }
5099    /**
5100     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the questionnaire.)
5101     */
5102    public List<ContactDetail> getEditor() { 
5103      return new ArrayList<>();
5104    }
5105    /**
5106     * @return Returns a reference to <code>this</code> for easy method chaining
5107     */
5108    public Questionnaire setEditor(List<ContactDetail> theEditor) { 
5109      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5110    }
5111    public boolean hasEditor() { 
5112      return false;
5113    }
5114
5115    public ContactDetail addEditor() { //3
5116      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5117    }
5118    public Questionnaire addEditor(ContactDetail t) { //3
5119      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5120    }
5121    /**
5122     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {2}
5123     */
5124    public ContactDetail getEditorFirstRep() { 
5125      throw new Error("The resource type \"Questionnaire\" does not implement the property \"editor\""); 
5126    }
5127    /**
5128     * not supported on this implementation
5129     */
5130    @Override
5131    public int getReviewerMax() { 
5132      return 0;
5133    }
5134    /**
5135     * @return {@link #reviewer} (An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the questionnaire.)
5136     */
5137    public List<ContactDetail> getReviewer() { 
5138      return new ArrayList<>();
5139    }
5140    /**
5141     * @return Returns a reference to <code>this</code> for easy method chaining
5142     */
5143    public Questionnaire setReviewer(List<ContactDetail> theReviewer) { 
5144      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5145    }
5146    public boolean hasReviewer() { 
5147      return false;
5148    }
5149
5150    public ContactDetail addReviewer() { //3
5151      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5152    }
5153    public Questionnaire addReviewer(ContactDetail t) { //3
5154      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5155    }
5156    /**
5157     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {2}
5158     */
5159    public ContactDetail getReviewerFirstRep() { 
5160      throw new Error("The resource type \"Questionnaire\" does not implement the property \"reviewer\""); 
5161    }
5162    /**
5163     * not supported on this implementation
5164     */
5165    @Override
5166    public int getEndorserMax() { 
5167      return 0;
5168    }
5169    /**
5170     * @return {@link #endorser} (An individual or organization asserted by the publisher to be responsible for officially endorsing the questionnaire for use in some setting.)
5171     */
5172    public List<ContactDetail> getEndorser() { 
5173      return new ArrayList<>();
5174    }
5175    /**
5176     * @return Returns a reference to <code>this</code> for easy method chaining
5177     */
5178    public Questionnaire setEndorser(List<ContactDetail> theEndorser) { 
5179      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5180    }
5181    public boolean hasEndorser() { 
5182      return false;
5183    }
5184
5185    public ContactDetail addEndorser() { //3
5186      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5187    }
5188    public Questionnaire addEndorser(ContactDetail t) { //3
5189      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5190    }
5191    /**
5192     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {2}
5193     */
5194    public ContactDetail getEndorserFirstRep() { 
5195      throw new Error("The resource type \"Questionnaire\" does not implement the property \"endorser\""); 
5196    }
5197    /**
5198     * not supported on this implementation
5199     */
5200    @Override
5201    public int getRelatedArtifactMax() { 
5202      return 0;
5203    }
5204    /**
5205     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.)
5206     */
5207    public List<RelatedArtifact> getRelatedArtifact() { 
5208      return new ArrayList<>();
5209    }
5210    /**
5211     * @return Returns a reference to <code>this</code> for easy method chaining
5212     */
5213    public Questionnaire setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
5214      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5215    }
5216    public boolean hasRelatedArtifact() { 
5217      return false;
5218    }
5219
5220    public RelatedArtifact addRelatedArtifact() { //3
5221      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5222    }
5223    public Questionnaire addRelatedArtifact(RelatedArtifact t) { //3
5224      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5225    }
5226    /**
5227     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {2}
5228     */
5229    public RelatedArtifact getRelatedArtifactFirstRep() { 
5230      throw new Error("The resource type \"Questionnaire\" does not implement the property \"relatedArtifact\""); 
5231    }
5232      protected void listChildren(List<Property> children) {
5233        super.listChildren(children);
5234        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));
5235        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));
5236        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));
5237        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm));
5238        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));
5239        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the questionnaire.", 0, 1, title));
5240        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));
5241        children.add(new Property("status", "code", "The current state of this questionnaire.", 0, 1, status));
5242        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));
5243        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));
5244        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));
5245        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));
5246        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));
5247        children.add(new Property("description", "markdown", "A free text natural language description of the questionnaire from a consumer's perspective.", 0, 1, description));
5248        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));
5249        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));
5250        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));
5251        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));
5252        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));
5253        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));
5254        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));
5255        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));
5256        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));
5257        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));
5258      }
5259
5260      @Override
5261      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
5262        switch (_hash) {
5263        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);
5264        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);
5265        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);
5266        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);
5267        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);
5268        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);
5269        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);
5270        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);
5271        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the questionnaire.", 0, 1, title);
5272        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);
5273        case -892481550: /*status*/  return new Property("status", "code", "The current state of this questionnaire.", 0, 1, status);
5274        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);
5275        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);
5276        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);
5277        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);
5278        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);
5279        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);
5280        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);
5281        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);
5282        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);
5283        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);
5284        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);
5285        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);
5286        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);
5287        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);
5288        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);
5289        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);
5290        default: return super.getNamedProperty(_hash, _name, _checkValid);
5291        }
5292
5293      }
5294
5295      @Override
5296      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
5297        switch (hash) {
5298        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
5299        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
5300        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
5301        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
5302        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
5303        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
5304        case 1077922663: /*derivedFrom*/ return this.derivedFrom == null ? new Base[0] : this.derivedFrom.toArray(new Base[this.derivedFrom.size()]); // CanonicalType
5305        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
5306        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
5307        case -603200890: /*subjectType*/ return this.subjectType == null ? new Base[0] : this.subjectType.toArray(new Base[this.subjectType.size()]); // CodeType
5308        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
5309        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
5310        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
5311        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
5312        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
5313        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
5314        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
5315        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
5316        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
5317        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
5318        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
5319        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
5320        case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // Coding
5321        case 3242771: /*item*/ return this.item == null ? new Base[0] : this.item.toArray(new Base[this.item.size()]); // QuestionnaireItemComponent
5322        default: return super.getProperty(hash, name, checkValid);
5323        }
5324
5325      }
5326
5327      @Override
5328      public Base setProperty(int hash, String name, Base value) throws FHIRException {
5329        switch (hash) {
5330        case 116079: // url
5331          this.url = TypeConvertor.castToUri(value); // UriType
5332          return value;
5333        case -1618432855: // identifier
5334          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
5335          return value;
5336        case 351608024: // version
5337          this.version = TypeConvertor.castToString(value); // StringType
5338          return value;
5339        case 1508158071: // versionAlgorithm
5340          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5341          return value;
5342        case 3373707: // name
5343          this.name = TypeConvertor.castToString(value); // StringType
5344          return value;
5345        case 110371416: // title
5346          this.title = TypeConvertor.castToString(value); // StringType
5347          return value;
5348        case 1077922663: // derivedFrom
5349          this.getDerivedFrom().add(TypeConvertor.castToCanonical(value)); // CanonicalType
5350          return value;
5351        case -892481550: // status
5352          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5353          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5354          return value;
5355        case -404562712: // experimental
5356          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5357          return value;
5358        case -603200890: // subjectType
5359          this.getSubjectType().add(TypeConvertor.castToCode(value)); // CodeType
5360          return value;
5361        case 3076014: // date
5362          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5363          return value;
5364        case 1447404028: // publisher
5365          this.publisher = TypeConvertor.castToString(value); // StringType
5366          return value;
5367        case 951526432: // contact
5368          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5369          return value;
5370        case -1724546052: // description
5371          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5372          return value;
5373        case -669707736: // useContext
5374          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
5375          return value;
5376        case -507075711: // jurisdiction
5377          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
5378          return value;
5379        case -220463842: // purpose
5380          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5381          return value;
5382        case 1522889671: // copyright
5383          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5384          return value;
5385        case 765157229: // copyrightLabel
5386          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5387          return value;
5388        case 223539345: // approvalDate
5389          this.approvalDate = TypeConvertor.castToDate(value); // DateType
5390          return value;
5391        case -1687512484: // lastReviewDate
5392          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
5393          return value;
5394        case -403934648: // effectivePeriod
5395          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
5396          return value;
5397        case 3059181: // code
5398          this.getCode().add(TypeConvertor.castToCoding(value)); // Coding
5399          return value;
5400        case 3242771: // item
5401          this.getItem().add((QuestionnaireItemComponent) value); // QuestionnaireItemComponent
5402          return value;
5403        default: return super.setProperty(hash, name, value);
5404        }
5405
5406      }
5407
5408      @Override
5409      public Base setProperty(String name, Base value) throws FHIRException {
5410        if (name.equals("url")) {
5411          this.url = TypeConvertor.castToUri(value); // UriType
5412        } else if (name.equals("identifier")) {
5413          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
5414        } else if (name.equals("version")) {
5415          this.version = TypeConvertor.castToString(value); // StringType
5416        } else if (name.equals("versionAlgorithm[x]")) {
5417          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5418        } else if (name.equals("name")) {
5419          this.name = TypeConvertor.castToString(value); // StringType
5420        } else if (name.equals("title")) {
5421          this.title = TypeConvertor.castToString(value); // StringType
5422        } else if (name.equals("derivedFrom")) {
5423          this.getDerivedFrom().add(TypeConvertor.castToCanonical(value));
5424        } else if (name.equals("status")) {
5425          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5426          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5427        } else if (name.equals("experimental")) {
5428          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5429        } else if (name.equals("subjectType")) {
5430          this.getSubjectType().add(TypeConvertor.castToCode(value));
5431        } else if (name.equals("date")) {
5432          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5433        } else if (name.equals("publisher")) {
5434          this.publisher = TypeConvertor.castToString(value); // StringType
5435        } else if (name.equals("contact")) {
5436          this.getContact().add(TypeConvertor.castToContactDetail(value));
5437        } else if (name.equals("description")) {
5438          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5439        } else if (name.equals("useContext")) {
5440          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
5441        } else if (name.equals("jurisdiction")) {
5442          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
5443        } else if (name.equals("purpose")) {
5444          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5445        } else if (name.equals("copyright")) {
5446          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5447        } else if (name.equals("copyrightLabel")) {
5448          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5449        } else if (name.equals("approvalDate")) {
5450          this.approvalDate = TypeConvertor.castToDate(value); // DateType
5451        } else if (name.equals("lastReviewDate")) {
5452          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
5453        } else if (name.equals("effectivePeriod")) {
5454          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
5455        } else if (name.equals("code")) {
5456          this.getCode().add(TypeConvertor.castToCoding(value));
5457        } else if (name.equals("item")) {
5458          this.getItem().add((QuestionnaireItemComponent) value);
5459        } else
5460          return super.setProperty(name, value);
5461        return value;
5462      }
5463
5464  @Override
5465  public void removeChild(String name, Base value) throws FHIRException {
5466        if (name.equals("url")) {
5467          this.url = null;
5468        } else if (name.equals("identifier")) {
5469          this.getIdentifier().remove(value);
5470        } else if (name.equals("version")) {
5471          this.version = null;
5472        } else if (name.equals("versionAlgorithm[x]")) {
5473          this.versionAlgorithm = null;
5474        } else if (name.equals("name")) {
5475          this.name = null;
5476        } else if (name.equals("title")) {
5477          this.title = null;
5478        } else if (name.equals("derivedFrom")) {
5479          this.getDerivedFrom().remove(value);
5480        } else if (name.equals("status")) {
5481          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5482          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5483        } else if (name.equals("experimental")) {
5484          this.experimental = null;
5485        } else if (name.equals("subjectType")) {
5486          this.getSubjectType().remove(value);
5487        } else if (name.equals("date")) {
5488          this.date = null;
5489        } else if (name.equals("publisher")) {
5490          this.publisher = null;
5491        } else if (name.equals("contact")) {
5492          this.getContact().remove(value);
5493        } else if (name.equals("description")) {
5494          this.description = null;
5495        } else if (name.equals("useContext")) {
5496          this.getUseContext().remove(value);
5497        } else if (name.equals("jurisdiction")) {
5498          this.getJurisdiction().remove(value);
5499        } else if (name.equals("purpose")) {
5500          this.purpose = null;
5501        } else if (name.equals("copyright")) {
5502          this.copyright = null;
5503        } else if (name.equals("copyrightLabel")) {
5504          this.copyrightLabel = null;
5505        } else if (name.equals("approvalDate")) {
5506          this.approvalDate = null;
5507        } else if (name.equals("lastReviewDate")) {
5508          this.lastReviewDate = null;
5509        } else if (name.equals("effectivePeriod")) {
5510          this.effectivePeriod = null;
5511        } else if (name.equals("code")) {
5512          this.getCode().remove(value);
5513        } else if (name.equals("item")) {
5514          this.getItem().remove((QuestionnaireItemComponent) value);
5515        } else
5516          super.removeChild(name, value);
5517        
5518      }
5519
5520      @Override
5521      public Base makeProperty(int hash, String name) throws FHIRException {
5522        switch (hash) {
5523        case 116079:  return getUrlElement();
5524        case -1618432855:  return addIdentifier(); 
5525        case 351608024:  return getVersionElement();
5526        case -115699031:  return getVersionAlgorithm();
5527        case 1508158071:  return getVersionAlgorithm();
5528        case 3373707:  return getNameElement();
5529        case 110371416:  return getTitleElement();
5530        case 1077922663:  return addDerivedFromElement();
5531        case -892481550:  return getStatusElement();
5532        case -404562712:  return getExperimentalElement();
5533        case -603200890:  return addSubjectTypeElement();
5534        case 3076014:  return getDateElement();
5535        case 1447404028:  return getPublisherElement();
5536        case 951526432:  return addContact(); 
5537        case -1724546052:  return getDescriptionElement();
5538        case -669707736:  return addUseContext(); 
5539        case -507075711:  return addJurisdiction(); 
5540        case -220463842:  return getPurposeElement();
5541        case 1522889671:  return getCopyrightElement();
5542        case 765157229:  return getCopyrightLabelElement();
5543        case 223539345:  return getApprovalDateElement();
5544        case -1687512484:  return getLastReviewDateElement();
5545        case -403934648:  return getEffectivePeriod();
5546        case 3059181:  return addCode(); 
5547        case 3242771:  return addItem(); 
5548        default: return super.makeProperty(hash, name);
5549        }
5550
5551      }
5552
5553      @Override
5554      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
5555        switch (hash) {
5556        case 116079: /*url*/ return new String[] {"uri"};
5557        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
5558        case 351608024: /*version*/ return new String[] {"string"};
5559        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
5560        case 3373707: /*name*/ return new String[] {"string"};
5561        case 110371416: /*title*/ return new String[] {"string"};
5562        case 1077922663: /*derivedFrom*/ return new String[] {"canonical"};
5563        case -892481550: /*status*/ return new String[] {"code"};
5564        case -404562712: /*experimental*/ return new String[] {"boolean"};
5565        case -603200890: /*subjectType*/ return new String[] {"code"};
5566        case 3076014: /*date*/ return new String[] {"dateTime"};
5567        case 1447404028: /*publisher*/ return new String[] {"string"};
5568        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
5569        case -1724546052: /*description*/ return new String[] {"markdown"};
5570        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
5571        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
5572        case -220463842: /*purpose*/ return new String[] {"markdown"};
5573        case 1522889671: /*copyright*/ return new String[] {"markdown"};
5574        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
5575        case 223539345: /*approvalDate*/ return new String[] {"date"};
5576        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
5577        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
5578        case 3059181: /*code*/ return new String[] {"Coding"};
5579        case 3242771: /*item*/ return new String[] {};
5580        default: return super.getTypesForProperty(hash, name);
5581        }
5582
5583      }
5584
5585      @Override
5586      public Base addChild(String name) throws FHIRException {
5587        if (name.equals("url")) {
5588          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.url");
5589        }
5590        else if (name.equals("identifier")) {
5591          return addIdentifier();
5592        }
5593        else if (name.equals("version")) {
5594          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.version");
5595        }
5596        else if (name.equals("versionAlgorithmString")) {
5597          this.versionAlgorithm = new StringType();
5598          return this.versionAlgorithm;
5599        }
5600        else if (name.equals("versionAlgorithmCoding")) {
5601          this.versionAlgorithm = new Coding();
5602          return this.versionAlgorithm;
5603        }
5604        else if (name.equals("name")) {
5605          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.name");
5606        }
5607        else if (name.equals("title")) {
5608          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.title");
5609        }
5610        else if (name.equals("derivedFrom")) {
5611          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.derivedFrom");
5612        }
5613        else if (name.equals("status")) {
5614          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.status");
5615        }
5616        else if (name.equals("experimental")) {
5617          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.experimental");
5618        }
5619        else if (name.equals("subjectType")) {
5620          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.subjectType");
5621        }
5622        else if (name.equals("date")) {
5623          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.date");
5624        }
5625        else if (name.equals("publisher")) {
5626          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.publisher");
5627        }
5628        else if (name.equals("contact")) {
5629          return addContact();
5630        }
5631        else if (name.equals("description")) {
5632          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.description");
5633        }
5634        else if (name.equals("useContext")) {
5635          return addUseContext();
5636        }
5637        else if (name.equals("jurisdiction")) {
5638          return addJurisdiction();
5639        }
5640        else if (name.equals("purpose")) {
5641          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.purpose");
5642        }
5643        else if (name.equals("copyright")) {
5644          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.copyright");
5645        }
5646        else if (name.equals("copyrightLabel")) {
5647          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.copyrightLabel");
5648        }
5649        else if (name.equals("approvalDate")) {
5650          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.approvalDate");
5651        }
5652        else if (name.equals("lastReviewDate")) {
5653          throw new FHIRException("Cannot call addChild on a singleton property Questionnaire.lastReviewDate");
5654        }
5655        else if (name.equals("effectivePeriod")) {
5656          this.effectivePeriod = new Period();
5657          return this.effectivePeriod;
5658        }
5659        else if (name.equals("code")) {
5660          return addCode();
5661        }
5662        else if (name.equals("item")) {
5663          return addItem();
5664        }
5665        else
5666          return super.addChild(name);
5667      }
5668
5669  public String fhirType() {
5670    return "Questionnaire";
5671
5672  }
5673
5674      public Questionnaire copy() {
5675        Questionnaire dst = new Questionnaire();
5676        copyValues(dst);
5677        return dst;
5678      }
5679
5680      public void copyValues(Questionnaire dst) {
5681        super.copyValues(dst);
5682        dst.url = url == null ? null : url.copy();
5683        if (identifier != null) {
5684          dst.identifier = new ArrayList<Identifier>();
5685          for (Identifier i : identifier)
5686            dst.identifier.add(i.copy());
5687        };
5688        dst.version = version == null ? null : version.copy();
5689        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
5690        dst.name = name == null ? null : name.copy();
5691        dst.title = title == null ? null : title.copy();
5692        if (derivedFrom != null) {
5693          dst.derivedFrom = new ArrayList<CanonicalType>();
5694          for (CanonicalType i : derivedFrom)
5695            dst.derivedFrom.add(i.copy());
5696        };
5697        dst.status = status == null ? null : status.copy();
5698        dst.experimental = experimental == null ? null : experimental.copy();
5699        if (subjectType != null) {
5700          dst.subjectType = new ArrayList<CodeType>();
5701          for (CodeType i : subjectType)
5702            dst.subjectType.add(i.copy());
5703        };
5704        dst.date = date == null ? null : date.copy();
5705        dst.publisher = publisher == null ? null : publisher.copy();
5706        if (contact != null) {
5707          dst.contact = new ArrayList<ContactDetail>();
5708          for (ContactDetail i : contact)
5709            dst.contact.add(i.copy());
5710        };
5711        dst.description = description == null ? null : description.copy();
5712        if (useContext != null) {
5713          dst.useContext = new ArrayList<UsageContext>();
5714          for (UsageContext i : useContext)
5715            dst.useContext.add(i.copy());
5716        };
5717        if (jurisdiction != null) {
5718          dst.jurisdiction = new ArrayList<CodeableConcept>();
5719          for (CodeableConcept i : jurisdiction)
5720            dst.jurisdiction.add(i.copy());
5721        };
5722        dst.purpose = purpose == null ? null : purpose.copy();
5723        dst.copyright = copyright == null ? null : copyright.copy();
5724        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
5725        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
5726        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
5727        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
5728        if (code != null) {
5729          dst.code = new ArrayList<Coding>();
5730          for (Coding i : code)
5731            dst.code.add(i.copy());
5732        };
5733        if (item != null) {
5734          dst.item = new ArrayList<QuestionnaireItemComponent>();
5735          for (QuestionnaireItemComponent i : item)
5736            dst.item.add(i.copy());
5737        };
5738      }
5739
5740      protected Questionnaire typedCopy() {
5741        return copy();
5742      }
5743
5744      @Override
5745      public boolean equalsDeep(Base other_) {
5746        if (!super.equalsDeep(other_))
5747          return false;
5748        if (!(other_ instanceof Questionnaire))
5749          return false;
5750        Questionnaire o = (Questionnaire) other_;
5751        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
5752           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
5753           && compareDeep(derivedFrom, o.derivedFrom, true) && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true)
5754           && compareDeep(subjectType, o.subjectType, true) && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true)
5755           && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true) && compareDeep(useContext, o.useContext, true)
5756           && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true)
5757           && compareDeep(copyrightLabel, o.copyrightLabel, true) && compareDeep(approvalDate, o.approvalDate, true)
5758           && compareDeep(lastReviewDate, o.lastReviewDate, true) && compareDeep(effectivePeriod, o.effectivePeriod, true)
5759           && compareDeep(code, o.code, true) && compareDeep(item, o.item, true);
5760      }
5761
5762      @Override
5763      public boolean equalsShallow(Base other_) {
5764        if (!super.equalsShallow(other_))
5765          return false;
5766        if (!(other_ instanceof Questionnaire))
5767          return false;
5768        Questionnaire o = (Questionnaire) other_;
5769        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
5770           && compareValues(title, o.title, true) && compareValues(derivedFrom, o.derivedFrom, true) && compareValues(status, o.status, true)
5771           && compareValues(experimental, o.experimental, true) && compareValues(subjectType, o.subjectType, true)
5772           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true)
5773           && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(copyrightLabel, o.copyrightLabel, true)
5774           && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true)
5775          ;
5776      }
5777
5778      public boolean isEmpty() {
5779        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
5780          , versionAlgorithm, name, title, derivedFrom, status, experimental, subjectType
5781          , date, publisher, contact, description, useContext, jurisdiction, purpose, copyright
5782          , copyrightLabel, approvalDate, lastReviewDate, effectivePeriod, code, item);
5783      }
5784
5785  @Override
5786  public ResourceType getResourceType() {
5787    return ResourceType.Questionnaire;
5788   }
5789
5790 /**
5791   * Search parameter: <b>context-quantity</b>
5792   * <p>
5793   * Description: <b>Multiple Resources: 
5794
5795* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
5796* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
5797* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
5798* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
5799* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
5800* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
5801* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
5802* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
5803* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
5804* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
5805* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
5806* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
5807* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
5808* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
5809* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
5810* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
5811* [Library](library.html): A quantity- or range-valued use context assigned to the library
5812* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
5813* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
5814* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
5815* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
5816* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
5817* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
5818* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
5819* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
5820* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
5821* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
5822* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
5823* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
5824* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
5825</b><br>
5826   * Type: <b>quantity</b><br>
5827   * 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>
5828   * </p>
5829   */
5830  @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" )
5831  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
5832 /**
5833   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
5834   * <p>
5835   * Description: <b>Multiple Resources: 
5836
5837* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
5838* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
5839* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
5840* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
5841* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
5842* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
5843* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
5844* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
5845* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
5846* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
5847* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
5848* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
5849* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
5850* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
5851* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
5852* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
5853* [Library](library.html): A quantity- or range-valued use context assigned to the library
5854* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
5855* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
5856* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
5857* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
5858* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
5859* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
5860* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
5861* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
5862* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
5863* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
5864* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
5865* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
5866* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
5867</b><br>
5868   * Type: <b>quantity</b><br>
5869   * 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>
5870   * </p>
5871   */
5872  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
5873
5874 /**
5875   * Search parameter: <b>context-type-quantity</b>
5876   * <p>
5877   * Description: <b>Multiple Resources: 
5878
5879* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
5880* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
5881* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
5882* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
5883* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
5884* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
5885* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
5886* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
5887* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
5888* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
5889* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
5890* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
5891* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
5892* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
5893* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
5894* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
5895* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
5896* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
5897* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
5898* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
5899* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
5900* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
5901* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
5902* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
5903* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
5904* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
5905* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
5906* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
5907* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
5908* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
5909</b><br>
5910   * Type: <b>composite</b><br>
5911   * 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>
5912   * </p>
5913   */
5914  @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"} )
5915  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
5916 /**
5917   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
5918   * <p>
5919   * Description: <b>Multiple Resources: 
5920
5921* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
5922* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
5923* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
5924* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
5925* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
5926* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
5927* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
5928* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
5929* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
5930* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
5931* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
5932* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
5933* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
5934* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
5935* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
5936* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
5937* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
5938* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
5939* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
5940* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
5941* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
5942* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
5943* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
5944* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
5945* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
5946* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
5947* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
5948* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
5949* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
5950* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
5951</b><br>
5952   * Type: <b>composite</b><br>
5953   * 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>
5954   * </p>
5955   */
5956  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);
5957
5958 /**
5959   * Search parameter: <b>context-type-value</b>
5960   * <p>
5961   * Description: <b>Multiple Resources: 
5962
5963* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
5964* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
5965* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
5966* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
5967* [Citation](citation.html): A use context type and value assigned to the citation
5968* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
5969* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
5970* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
5971* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
5972* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
5973* [Evidence](evidence.html): A use context type and value assigned to the evidence
5974* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
5975* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
5976* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
5977* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
5978* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
5979* [Library](library.html): A use context type and value assigned to the library
5980* [Measure](measure.html): A use context type and value assigned to the measure
5981* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
5982* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
5983* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
5984* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
5985* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
5986* [Requirements](requirements.html): A use context type and value assigned to the requirements
5987* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
5988* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
5989* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
5990* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
5991* [TestScript](testscript.html): A use context type and value assigned to the test script
5992* [ValueSet](valueset.html): A use context type and value assigned to the value set
5993</b><br>
5994   * Type: <b>composite</b><br>
5995   * 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>
5996   * </p>
5997   */
5998  @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"} )
5999  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
6000 /**
6001   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
6002   * <p>
6003   * Description: <b>Multiple Resources: 
6004
6005* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
6006* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
6007* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
6008* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
6009* [Citation](citation.html): A use context type and value assigned to the citation
6010* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
6011* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
6012* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
6013* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
6014* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
6015* [Evidence](evidence.html): A use context type and value assigned to the evidence
6016* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
6017* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
6018* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
6019* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
6020* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
6021* [Library](library.html): A use context type and value assigned to the library
6022* [Measure](measure.html): A use context type and value assigned to the measure
6023* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
6024* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
6025* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
6026* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
6027* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
6028* [Requirements](requirements.html): A use context type and value assigned to the requirements
6029* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
6030* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
6031* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
6032* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
6033* [TestScript](testscript.html): A use context type and value assigned to the test script
6034* [ValueSet](valueset.html): A use context type and value assigned to the value set
6035</b><br>
6036   * Type: <b>composite</b><br>
6037   * 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>
6038   * </p>
6039   */
6040  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);
6041
6042 /**
6043   * Search parameter: <b>context-type</b>
6044   * <p>
6045   * Description: <b>Multiple Resources: 
6046
6047* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
6048* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
6049* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
6050* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
6051* [Citation](citation.html): A type of use context assigned to the citation
6052* [CodeSystem](codesystem.html): A type of use context assigned to the code system
6053* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
6054* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
6055* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
6056* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
6057* [Evidence](evidence.html): A type of use context assigned to the evidence
6058* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
6059* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
6060* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
6061* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
6062* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
6063* [Library](library.html): A type of use context assigned to the library
6064* [Measure](measure.html): A type of use context assigned to the measure
6065* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
6066* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
6067* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
6068* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
6069* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
6070* [Requirements](requirements.html): A type of use context assigned to the requirements
6071* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
6072* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
6073* [StructureMap](structuremap.html): A type of use context assigned to the structure map
6074* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
6075* [TestScript](testscript.html): A type of use context assigned to the test script
6076* [ValueSet](valueset.html): A type of use context assigned to the value set
6077</b><br>
6078   * Type: <b>token</b><br>
6079   * 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>
6080   * </p>
6081   */
6082  @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" )
6083  public static final String SP_CONTEXT_TYPE = "context-type";
6084 /**
6085   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
6086   * <p>
6087   * Description: <b>Multiple Resources: 
6088
6089* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
6090* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
6091* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
6092* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
6093* [Citation](citation.html): A type of use context assigned to the citation
6094* [CodeSystem](codesystem.html): A type of use context assigned to the code system
6095* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
6096* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
6097* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
6098* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
6099* [Evidence](evidence.html): A type of use context assigned to the evidence
6100* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
6101* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
6102* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
6103* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
6104* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
6105* [Library](library.html): A type of use context assigned to the library
6106* [Measure](measure.html): A type of use context assigned to the measure
6107* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
6108* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
6109* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
6110* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
6111* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
6112* [Requirements](requirements.html): A type of use context assigned to the requirements
6113* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
6114* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
6115* [StructureMap](structuremap.html): A type of use context assigned to the structure map
6116* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
6117* [TestScript](testscript.html): A type of use context assigned to the test script
6118* [ValueSet](valueset.html): A type of use context assigned to the value set
6119</b><br>
6120   * Type: <b>token</b><br>
6121   * 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>
6122   * </p>
6123   */
6124  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
6125
6126 /**
6127   * Search parameter: <b>context</b>
6128   * <p>
6129   * Description: <b>Multiple Resources: 
6130
6131* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
6132* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
6133* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
6134* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
6135* [Citation](citation.html): A use context assigned to the citation
6136* [CodeSystem](codesystem.html): A use context assigned to the code system
6137* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
6138* [ConceptMap](conceptmap.html): A use context assigned to the concept map
6139* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
6140* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
6141* [Evidence](evidence.html): A use context assigned to the evidence
6142* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
6143* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
6144* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
6145* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
6146* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
6147* [Library](library.html): A use context assigned to the library
6148* [Measure](measure.html): A use context assigned to the measure
6149* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
6150* [NamingSystem](namingsystem.html): A use context assigned to the naming system
6151* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
6152* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
6153* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
6154* [Requirements](requirements.html): A use context assigned to the requirements
6155* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
6156* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
6157* [StructureMap](structuremap.html): A use context assigned to the structure map
6158* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
6159* [TestScript](testscript.html): A use context assigned to the test script
6160* [ValueSet](valueset.html): A use context assigned to the value set
6161</b><br>
6162   * Type: <b>token</b><br>
6163   * 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>
6164   * </p>
6165   */
6166  @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" )
6167  public static final String SP_CONTEXT = "context";
6168 /**
6169   * <b>Fluent Client</b> search parameter constant for <b>context</b>
6170   * <p>
6171   * Description: <b>Multiple Resources: 
6172
6173* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
6174* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
6175* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
6176* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
6177* [Citation](citation.html): A use context assigned to the citation
6178* [CodeSystem](codesystem.html): A use context assigned to the code system
6179* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
6180* [ConceptMap](conceptmap.html): A use context assigned to the concept map
6181* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
6182* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
6183* [Evidence](evidence.html): A use context assigned to the evidence
6184* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
6185* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
6186* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
6187* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
6188* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
6189* [Library](library.html): A use context assigned to the library
6190* [Measure](measure.html): A use context assigned to the measure
6191* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
6192* [NamingSystem](namingsystem.html): A use context assigned to the naming system
6193* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
6194* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
6195* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
6196* [Requirements](requirements.html): A use context assigned to the requirements
6197* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
6198* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
6199* [StructureMap](structuremap.html): A use context assigned to the structure map
6200* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
6201* [TestScript](testscript.html): A use context assigned to the test script
6202* [ValueSet](valueset.html): A use context assigned to the value set
6203</b><br>
6204   * Type: <b>token</b><br>
6205   * 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>
6206   * </p>
6207   */
6208  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
6209
6210 /**
6211   * Search parameter: <b>date</b>
6212   * <p>
6213   * Description: <b>Multiple Resources: 
6214
6215* [ActivityDefinition](activitydefinition.html): The activity definition publication date
6216* [ActorDefinition](actordefinition.html): The Actor Definition publication date
6217* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
6218* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
6219* [Citation](citation.html): The citation publication date
6220* [CodeSystem](codesystem.html): The code system publication date
6221* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
6222* [ConceptMap](conceptmap.html): The concept map publication date
6223* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
6224* [EventDefinition](eventdefinition.html): The event definition publication date
6225* [Evidence](evidence.html): The evidence publication date
6226* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
6227* [ExampleScenario](examplescenario.html): The example scenario publication date
6228* [GraphDefinition](graphdefinition.html): The graph definition publication date
6229* [ImplementationGuide](implementationguide.html): The implementation guide publication date
6230* [Library](library.html): The library publication date
6231* [Measure](measure.html): The measure publication date
6232* [MessageDefinition](messagedefinition.html): The message definition publication date
6233* [NamingSystem](namingsystem.html): The naming system publication date
6234* [OperationDefinition](operationdefinition.html): The operation definition publication date
6235* [PlanDefinition](plandefinition.html): The plan definition publication date
6236* [Questionnaire](questionnaire.html): The questionnaire publication date
6237* [Requirements](requirements.html): The requirements publication date
6238* [SearchParameter](searchparameter.html): The search parameter publication date
6239* [StructureDefinition](structuredefinition.html): The structure definition publication date
6240* [StructureMap](structuremap.html): The structure map publication date
6241* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
6242* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
6243* [TestScript](testscript.html): The test script publication date
6244* [ValueSet](valueset.html): The value set publication date
6245</b><br>
6246   * Type: <b>date</b><br>
6247   * 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>
6248   * </p>
6249   */
6250  @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" )
6251  public static final String SP_DATE = "date";
6252 /**
6253   * <b>Fluent Client</b> search parameter constant for <b>date</b>
6254   * <p>
6255   * Description: <b>Multiple Resources: 
6256
6257* [ActivityDefinition](activitydefinition.html): The activity definition publication date
6258* [ActorDefinition](actordefinition.html): The Actor Definition publication date
6259* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
6260* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
6261* [Citation](citation.html): The citation publication date
6262* [CodeSystem](codesystem.html): The code system publication date
6263* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
6264* [ConceptMap](conceptmap.html): The concept map publication date
6265* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
6266* [EventDefinition](eventdefinition.html): The event definition publication date
6267* [Evidence](evidence.html): The evidence publication date
6268* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
6269* [ExampleScenario](examplescenario.html): The example scenario publication date
6270* [GraphDefinition](graphdefinition.html): The graph definition publication date
6271* [ImplementationGuide](implementationguide.html): The implementation guide publication date
6272* [Library](library.html): The library publication date
6273* [Measure](measure.html): The measure publication date
6274* [MessageDefinition](messagedefinition.html): The message definition publication date
6275* [NamingSystem](namingsystem.html): The naming system publication date
6276* [OperationDefinition](operationdefinition.html): The operation definition publication date
6277* [PlanDefinition](plandefinition.html): The plan definition publication date
6278* [Questionnaire](questionnaire.html): The questionnaire publication date
6279* [Requirements](requirements.html): The requirements publication date
6280* [SearchParameter](searchparameter.html): The search parameter publication date
6281* [StructureDefinition](structuredefinition.html): The structure definition publication date
6282* [StructureMap](structuremap.html): The structure map publication date
6283* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
6284* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
6285* [TestScript](testscript.html): The test script publication date
6286* [ValueSet](valueset.html): The value set publication date
6287</b><br>
6288   * Type: <b>date</b><br>
6289   * 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>
6290   * </p>
6291   */
6292  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
6293
6294 /**
6295   * Search parameter: <b>description</b>
6296   * <p>
6297   * Description: <b>Multiple Resources: 
6298
6299* [ActivityDefinition](activitydefinition.html): The description of the activity definition
6300* [ActorDefinition](actordefinition.html): The description of the Actor Definition
6301* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
6302* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
6303* [Citation](citation.html): The description of the citation
6304* [CodeSystem](codesystem.html): The description of the code system
6305* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
6306* [ConceptMap](conceptmap.html): The description of the concept map
6307* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
6308* [EventDefinition](eventdefinition.html): The description of the event definition
6309* [Evidence](evidence.html): The description of the evidence
6310* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
6311* [GraphDefinition](graphdefinition.html): The description of the graph definition
6312* [ImplementationGuide](implementationguide.html): The description of the implementation guide
6313* [Library](library.html): The description of the library
6314* [Measure](measure.html): The description of the measure
6315* [MessageDefinition](messagedefinition.html): The description of the message definition
6316* [NamingSystem](namingsystem.html): The description of the naming system
6317* [OperationDefinition](operationdefinition.html): The description of the operation definition
6318* [PlanDefinition](plandefinition.html): The description of the plan definition
6319* [Questionnaire](questionnaire.html): The description of the questionnaire
6320* [Requirements](requirements.html): The description of the requirements
6321* [SearchParameter](searchparameter.html): The description of the search parameter
6322* [StructureDefinition](structuredefinition.html): The description of the structure definition
6323* [StructureMap](structuremap.html): The description of the structure map
6324* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
6325* [TestScript](testscript.html): The description of the test script
6326* [ValueSet](valueset.html): The description of the value set
6327</b><br>
6328   * Type: <b>string</b><br>
6329   * 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>
6330   * </p>
6331   */
6332  @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" )
6333  public static final String SP_DESCRIPTION = "description";
6334 /**
6335   * <b>Fluent Client</b> search parameter constant for <b>description</b>
6336   * <p>
6337   * Description: <b>Multiple Resources: 
6338
6339* [ActivityDefinition](activitydefinition.html): The description of the activity definition
6340* [ActorDefinition](actordefinition.html): The description of the Actor Definition
6341* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
6342* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
6343* [Citation](citation.html): The description of the citation
6344* [CodeSystem](codesystem.html): The description of the code system
6345* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
6346* [ConceptMap](conceptmap.html): The description of the concept map
6347* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
6348* [EventDefinition](eventdefinition.html): The description of the event definition
6349* [Evidence](evidence.html): The description of the evidence
6350* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
6351* [GraphDefinition](graphdefinition.html): The description of the graph definition
6352* [ImplementationGuide](implementationguide.html): The description of the implementation guide
6353* [Library](library.html): The description of the library
6354* [Measure](measure.html): The description of the measure
6355* [MessageDefinition](messagedefinition.html): The description of the message definition
6356* [NamingSystem](namingsystem.html): The description of the naming system
6357* [OperationDefinition](operationdefinition.html): The description of the operation definition
6358* [PlanDefinition](plandefinition.html): The description of the plan definition
6359* [Questionnaire](questionnaire.html): The description of the questionnaire
6360* [Requirements](requirements.html): The description of the requirements
6361* [SearchParameter](searchparameter.html): The description of the search parameter
6362* [StructureDefinition](structuredefinition.html): The description of the structure definition
6363* [StructureMap](structuremap.html): The description of the structure map
6364* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
6365* [TestScript](testscript.html): The description of the test script
6366* [ValueSet](valueset.html): The description of the value set
6367</b><br>
6368   * Type: <b>string</b><br>
6369   * 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>
6370   * </p>
6371   */
6372  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
6373
6374 /**
6375   * Search parameter: <b>identifier</b>
6376   * <p>
6377   * Description: <b>Multiple Resources: 
6378
6379* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
6380* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
6381* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
6382* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
6383* [Citation](citation.html): External identifier for the citation
6384* [CodeSystem](codesystem.html): External identifier for the code system
6385* [ConceptMap](conceptmap.html): External identifier for the concept map
6386* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
6387* [EventDefinition](eventdefinition.html): External identifier for the event definition
6388* [Evidence](evidence.html): External identifier for the evidence
6389* [EvidenceReport](evidencereport.html): External identifier for the evidence report
6390* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
6391* [ExampleScenario](examplescenario.html): External identifier for the example scenario
6392* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
6393* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
6394* [Library](library.html): External identifier for the library
6395* [Measure](measure.html): External identifier for the measure
6396* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
6397* [MessageDefinition](messagedefinition.html): External identifier for the message definition
6398* [NamingSystem](namingsystem.html): External identifier for the naming system
6399* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
6400* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
6401* [PlanDefinition](plandefinition.html): External identifier for the plan definition
6402* [Questionnaire](questionnaire.html): External identifier for the questionnaire
6403* [Requirements](requirements.html): External identifier for the requirements
6404* [SearchParameter](searchparameter.html): External identifier for the search parameter
6405* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
6406* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
6407* [StructureMap](structuremap.html): External identifier for the structure map
6408* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
6409* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
6410* [TestPlan](testplan.html): An identifier for the test plan
6411* [TestScript](testscript.html): External identifier for the test script
6412* [ValueSet](valueset.html): External identifier for the value set
6413</b><br>
6414   * Type: <b>token</b><br>
6415   * 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>
6416   * </p>
6417   */
6418  @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" )
6419  public static final String SP_IDENTIFIER = "identifier";
6420 /**
6421   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
6422   * <p>
6423   * Description: <b>Multiple Resources: 
6424
6425* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
6426* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
6427* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
6428* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
6429* [Citation](citation.html): External identifier for the citation
6430* [CodeSystem](codesystem.html): External identifier for the code system
6431* [ConceptMap](conceptmap.html): External identifier for the concept map
6432* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
6433* [EventDefinition](eventdefinition.html): External identifier for the event definition
6434* [Evidence](evidence.html): External identifier for the evidence
6435* [EvidenceReport](evidencereport.html): External identifier for the evidence report
6436* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
6437* [ExampleScenario](examplescenario.html): External identifier for the example scenario
6438* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
6439* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
6440* [Library](library.html): External identifier for the library
6441* [Measure](measure.html): External identifier for the measure
6442* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
6443* [MessageDefinition](messagedefinition.html): External identifier for the message definition
6444* [NamingSystem](namingsystem.html): External identifier for the naming system
6445* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
6446* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
6447* [PlanDefinition](plandefinition.html): External identifier for the plan definition
6448* [Questionnaire](questionnaire.html): External identifier for the questionnaire
6449* [Requirements](requirements.html): External identifier for the requirements
6450* [SearchParameter](searchparameter.html): External identifier for the search parameter
6451* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
6452* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
6453* [StructureMap](structuremap.html): External identifier for the structure map
6454* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
6455* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
6456* [TestPlan](testplan.html): An identifier for the test plan
6457* [TestScript](testscript.html): External identifier for the test script
6458* [ValueSet](valueset.html): External identifier for the value set
6459</b><br>
6460   * Type: <b>token</b><br>
6461   * 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>
6462   * </p>
6463   */
6464  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
6465
6466 /**
6467   * Search parameter: <b>jurisdiction</b>
6468   * <p>
6469   * Description: <b>Multiple Resources: 
6470
6471* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
6472* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
6473* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
6474* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
6475* [Citation](citation.html): Intended jurisdiction for the citation
6476* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
6477* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
6478* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
6479* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
6480* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
6481* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
6482* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
6483* [Library](library.html): Intended jurisdiction for the library
6484* [Measure](measure.html): Intended jurisdiction for the measure
6485* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
6486* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
6487* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
6488* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
6489* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
6490* [Requirements](requirements.html): Intended jurisdiction for the requirements
6491* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
6492* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
6493* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
6494* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
6495* [TestScript](testscript.html): Intended jurisdiction for the test script
6496* [ValueSet](valueset.html): Intended jurisdiction for the value set
6497</b><br>
6498   * Type: <b>token</b><br>
6499   * 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>
6500   * </p>
6501   */
6502  @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" )
6503  public static final String SP_JURISDICTION = "jurisdiction";
6504 /**
6505   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
6506   * <p>
6507   * Description: <b>Multiple Resources: 
6508
6509* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
6510* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
6511* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
6512* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
6513* [Citation](citation.html): Intended jurisdiction for the citation
6514* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
6515* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
6516* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
6517* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
6518* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
6519* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
6520* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
6521* [Library](library.html): Intended jurisdiction for the library
6522* [Measure](measure.html): Intended jurisdiction for the measure
6523* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
6524* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
6525* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
6526* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
6527* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
6528* [Requirements](requirements.html): Intended jurisdiction for the requirements
6529* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
6530* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
6531* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
6532* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
6533* [TestScript](testscript.html): Intended jurisdiction for the test script
6534* [ValueSet](valueset.html): Intended jurisdiction for the value set
6535</b><br>
6536   * Type: <b>token</b><br>
6537   * 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>
6538   * </p>
6539   */
6540  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
6541
6542 /**
6543   * Search parameter: <b>name</b>
6544   * <p>
6545   * Description: <b>Multiple Resources: 
6546
6547* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
6548* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
6549* [Citation](citation.html): Computationally friendly name of the citation
6550* [CodeSystem](codesystem.html): Computationally friendly name of the code system
6551* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
6552* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
6553* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
6554* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
6555* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
6556* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
6557* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
6558* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
6559* [Library](library.html): Computationally friendly name of the library
6560* [Measure](measure.html): Computationally friendly name of the measure
6561* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
6562* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
6563* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
6564* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
6565* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
6566* [Requirements](requirements.html): Computationally friendly name of the requirements
6567* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
6568* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
6569* [StructureMap](structuremap.html): Computationally friendly name of the structure map
6570* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
6571* [TestScript](testscript.html): Computationally friendly name of the test script
6572* [ValueSet](valueset.html): Computationally friendly name of the value set
6573</b><br>
6574   * Type: <b>string</b><br>
6575   * 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>
6576   * </p>
6577   */
6578  @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" )
6579  public static final String SP_NAME = "name";
6580 /**
6581   * <b>Fluent Client</b> search parameter constant for <b>name</b>
6582   * <p>
6583   * Description: <b>Multiple Resources: 
6584
6585* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
6586* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
6587* [Citation](citation.html): Computationally friendly name of the citation
6588* [CodeSystem](codesystem.html): Computationally friendly name of the code system
6589* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
6590* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
6591* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
6592* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
6593* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
6594* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
6595* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
6596* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
6597* [Library](library.html): Computationally friendly name of the library
6598* [Measure](measure.html): Computationally friendly name of the measure
6599* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
6600* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
6601* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
6602* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
6603* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
6604* [Requirements](requirements.html): Computationally friendly name of the requirements
6605* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
6606* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
6607* [StructureMap](structuremap.html): Computationally friendly name of the structure map
6608* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
6609* [TestScript](testscript.html): Computationally friendly name of the test script
6610* [ValueSet](valueset.html): Computationally friendly name of the value set
6611</b><br>
6612   * Type: <b>string</b><br>
6613   * 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>
6614   * </p>
6615   */
6616  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
6617
6618 /**
6619   * Search parameter: <b>publisher</b>
6620   * <p>
6621   * Description: <b>Multiple Resources: 
6622
6623* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
6624* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
6625* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
6626* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
6627* [Citation](citation.html): Name of the publisher of the citation
6628* [CodeSystem](codesystem.html): Name of the publisher of the code system
6629* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
6630* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
6631* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
6632* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
6633* [Evidence](evidence.html): Name of the publisher of the evidence
6634* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
6635* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
6636* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
6637* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
6638* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
6639* [Library](library.html): Name of the publisher of the library
6640* [Measure](measure.html): Name of the publisher of the measure
6641* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
6642* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
6643* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
6644* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
6645* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
6646* [Requirements](requirements.html): Name of the publisher of the requirements
6647* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
6648* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
6649* [StructureMap](structuremap.html): Name of the publisher of the structure map
6650* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
6651* [TestScript](testscript.html): Name of the publisher of the test script
6652* [ValueSet](valueset.html): Name of the publisher of the value set
6653</b><br>
6654   * Type: <b>string</b><br>
6655   * 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>
6656   * </p>
6657   */
6658  @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" )
6659  public static final String SP_PUBLISHER = "publisher";
6660 /**
6661   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
6662   * <p>
6663   * Description: <b>Multiple Resources: 
6664
6665* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
6666* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
6667* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
6668* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
6669* [Citation](citation.html): Name of the publisher of the citation
6670* [CodeSystem](codesystem.html): Name of the publisher of the code system
6671* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
6672* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
6673* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
6674* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
6675* [Evidence](evidence.html): Name of the publisher of the evidence
6676* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
6677* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
6678* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
6679* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
6680* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
6681* [Library](library.html): Name of the publisher of the library
6682* [Measure](measure.html): Name of the publisher of the measure
6683* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
6684* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
6685* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
6686* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
6687* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
6688* [Requirements](requirements.html): Name of the publisher of the requirements
6689* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
6690* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
6691* [StructureMap](structuremap.html): Name of the publisher of the structure map
6692* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
6693* [TestScript](testscript.html): Name of the publisher of the test script
6694* [ValueSet](valueset.html): Name of the publisher of the value set
6695</b><br>
6696   * Type: <b>string</b><br>
6697   * 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>
6698   * </p>
6699   */
6700  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
6701
6702 /**
6703   * Search parameter: <b>status</b>
6704   * <p>
6705   * Description: <b>Multiple Resources: 
6706
6707* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
6708* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
6709* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
6710* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
6711* [Citation](citation.html): The current status of the citation
6712* [CodeSystem](codesystem.html): The current status of the code system
6713* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
6714* [ConceptMap](conceptmap.html): The current status of the concept map
6715* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
6716* [EventDefinition](eventdefinition.html): The current status of the event definition
6717* [Evidence](evidence.html): The current status of the evidence
6718* [EvidenceReport](evidencereport.html): The current status of the evidence report
6719* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
6720* [ExampleScenario](examplescenario.html): The current status of the example scenario
6721* [GraphDefinition](graphdefinition.html): The current status of the graph definition
6722* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
6723* [Library](library.html): The current status of the library
6724* [Measure](measure.html): The current status of the measure
6725* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
6726* [MessageDefinition](messagedefinition.html): The current status of the message definition
6727* [NamingSystem](namingsystem.html): The current status of the naming system
6728* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
6729* [OperationDefinition](operationdefinition.html): The current status of the operation definition
6730* [PlanDefinition](plandefinition.html): The current status of the plan definition
6731* [Questionnaire](questionnaire.html): The current status of the questionnaire
6732* [Requirements](requirements.html): The current status of the requirements
6733* [SearchParameter](searchparameter.html): The current status of the search parameter
6734* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
6735* [StructureDefinition](structuredefinition.html): The current status of the structure definition
6736* [StructureMap](structuremap.html): The current status of the structure map
6737* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
6738* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
6739* [TestPlan](testplan.html): The current status of the test plan
6740* [TestScript](testscript.html): The current status of the test script
6741* [ValueSet](valueset.html): The current status of the value set
6742</b><br>
6743   * Type: <b>token</b><br>
6744   * 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>
6745   * </p>
6746   */
6747  @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" )
6748  public static final String SP_STATUS = "status";
6749 /**
6750   * <b>Fluent Client</b> search parameter constant for <b>status</b>
6751   * <p>
6752   * Description: <b>Multiple Resources: 
6753
6754* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
6755* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
6756* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
6757* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
6758* [Citation](citation.html): The current status of the citation
6759* [CodeSystem](codesystem.html): The current status of the code system
6760* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
6761* [ConceptMap](conceptmap.html): The current status of the concept map
6762* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
6763* [EventDefinition](eventdefinition.html): The current status of the event definition
6764* [Evidence](evidence.html): The current status of the evidence
6765* [EvidenceReport](evidencereport.html): The current status of the evidence report
6766* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
6767* [ExampleScenario](examplescenario.html): The current status of the example scenario
6768* [GraphDefinition](graphdefinition.html): The current status of the graph definition
6769* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
6770* [Library](library.html): The current status of the library
6771* [Measure](measure.html): The current status of the measure
6772* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
6773* [MessageDefinition](messagedefinition.html): The current status of the message definition
6774* [NamingSystem](namingsystem.html): The current status of the naming system
6775* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
6776* [OperationDefinition](operationdefinition.html): The current status of the operation definition
6777* [PlanDefinition](plandefinition.html): The current status of the plan definition
6778* [Questionnaire](questionnaire.html): The current status of the questionnaire
6779* [Requirements](requirements.html): The current status of the requirements
6780* [SearchParameter](searchparameter.html): The current status of the search parameter
6781* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
6782* [StructureDefinition](structuredefinition.html): The current status of the structure definition
6783* [StructureMap](structuremap.html): The current status of the structure map
6784* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
6785* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
6786* [TestPlan](testplan.html): The current status of the test plan
6787* [TestScript](testscript.html): The current status of the test script
6788* [ValueSet](valueset.html): The current status of the value set
6789</b><br>
6790   * Type: <b>token</b><br>
6791   * 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>
6792   * </p>
6793   */
6794  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
6795
6796 /**
6797   * Search parameter: <b>title</b>
6798   * <p>
6799   * Description: <b>Multiple Resources: 
6800
6801* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
6802* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
6803* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
6804* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
6805* [Citation](citation.html): The human-friendly name of the citation
6806* [CodeSystem](codesystem.html): The human-friendly name of the code system
6807* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
6808* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
6809* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
6810* [Evidence](evidence.html): The human-friendly name of the evidence
6811* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
6812* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
6813* [Library](library.html): The human-friendly name of the library
6814* [Measure](measure.html): The human-friendly name of the measure
6815* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
6816* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
6817* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
6818* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
6819* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
6820* [Requirements](requirements.html): The human-friendly name of the requirements
6821* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
6822* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
6823* [StructureMap](structuremap.html): The human-friendly name of the structure map
6824* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
6825* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
6826* [TestScript](testscript.html): The human-friendly name of the test script
6827* [ValueSet](valueset.html): The human-friendly name of the value set
6828</b><br>
6829   * Type: <b>string</b><br>
6830   * 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>
6831   * </p>
6832   */
6833  @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" )
6834  public static final String SP_TITLE = "title";
6835 /**
6836   * <b>Fluent Client</b> search parameter constant for <b>title</b>
6837   * <p>
6838   * Description: <b>Multiple Resources: 
6839
6840* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
6841* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
6842* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
6843* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
6844* [Citation](citation.html): The human-friendly name of the citation
6845* [CodeSystem](codesystem.html): The human-friendly name of the code system
6846* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
6847* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
6848* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
6849* [Evidence](evidence.html): The human-friendly name of the evidence
6850* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
6851* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
6852* [Library](library.html): The human-friendly name of the library
6853* [Measure](measure.html): The human-friendly name of the measure
6854* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
6855* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
6856* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
6857* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
6858* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
6859* [Requirements](requirements.html): The human-friendly name of the requirements
6860* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
6861* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
6862* [StructureMap](structuremap.html): The human-friendly name of the structure map
6863* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
6864* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
6865* [TestScript](testscript.html): The human-friendly name of the test script
6866* [ValueSet](valueset.html): The human-friendly name of the value set
6867</b><br>
6868   * Type: <b>string</b><br>
6869   * 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>
6870   * </p>
6871   */
6872  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
6873
6874 /**
6875   * Search parameter: <b>url</b>
6876   * <p>
6877   * Description: <b>Multiple Resources: 
6878
6879* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
6880* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
6881* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
6882* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
6883* [Citation](citation.html): The uri that identifies the citation
6884* [CodeSystem](codesystem.html): The uri that identifies the code system
6885* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
6886* [ConceptMap](conceptmap.html): The URI that identifies the concept map
6887* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
6888* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
6889* [Evidence](evidence.html): The uri that identifies the evidence
6890* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
6891* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
6892* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
6893* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
6894* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
6895* [Library](library.html): The uri that identifies the library
6896* [Measure](measure.html): The uri that identifies the measure
6897* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
6898* [NamingSystem](namingsystem.html): The uri that identifies the naming system
6899* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
6900* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
6901* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
6902* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
6903* [Requirements](requirements.html): The uri that identifies the requirements
6904* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
6905* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
6906* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
6907* [StructureMap](structuremap.html): The uri that identifies the structure map
6908* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
6909* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
6910* [TestPlan](testplan.html): The uri that identifies the test plan
6911* [TestScript](testscript.html): The uri that identifies the test script
6912* [ValueSet](valueset.html): The uri that identifies the value set
6913</b><br>
6914   * Type: <b>uri</b><br>
6915   * 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>
6916   * </p>
6917   */
6918  @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" )
6919  public static final String SP_URL = "url";
6920 /**
6921   * <b>Fluent Client</b> search parameter constant for <b>url</b>
6922   * <p>
6923   * Description: <b>Multiple Resources: 
6924
6925* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
6926* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
6927* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
6928* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
6929* [Citation](citation.html): The uri that identifies the citation
6930* [CodeSystem](codesystem.html): The uri that identifies the code system
6931* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
6932* [ConceptMap](conceptmap.html): The URI that identifies the concept map
6933* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
6934* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
6935* [Evidence](evidence.html): The uri that identifies the evidence
6936* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
6937* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
6938* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
6939* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
6940* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
6941* [Library](library.html): The uri that identifies the library
6942* [Measure](measure.html): The uri that identifies the measure
6943* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
6944* [NamingSystem](namingsystem.html): The uri that identifies the naming system
6945* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
6946* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
6947* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
6948* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
6949* [Requirements](requirements.html): The uri that identifies the requirements
6950* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
6951* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
6952* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
6953* [StructureMap](structuremap.html): The uri that identifies the structure map
6954* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
6955* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
6956* [TestPlan](testplan.html): The uri that identifies the test plan
6957* [TestScript](testscript.html): The uri that identifies the test script
6958* [ValueSet](valueset.html): The uri that identifies the value set
6959</b><br>
6960   * Type: <b>uri</b><br>
6961   * 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>
6962   * </p>
6963   */
6964  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
6965
6966 /**
6967   * Search parameter: <b>version</b>
6968   * <p>
6969   * Description: <b>Multiple Resources: 
6970
6971* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
6972* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
6973* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
6974* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
6975* [Citation](citation.html): The business version of the citation
6976* [CodeSystem](codesystem.html): The business version of the code system
6977* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
6978* [ConceptMap](conceptmap.html): The business version of the concept map
6979* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
6980* [EventDefinition](eventdefinition.html): The business version of the event definition
6981* [Evidence](evidence.html): The business version of the evidence
6982* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
6983* [ExampleScenario](examplescenario.html): The business version of the example scenario
6984* [GraphDefinition](graphdefinition.html): The business version of the graph definition
6985* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
6986* [Library](library.html): The business version of the library
6987* [Measure](measure.html): The business version of the measure
6988* [MessageDefinition](messagedefinition.html): The business version of the message definition
6989* [NamingSystem](namingsystem.html): The business version of the naming system
6990* [OperationDefinition](operationdefinition.html): The business version of the operation definition
6991* [PlanDefinition](plandefinition.html): The business version of the plan definition
6992* [Questionnaire](questionnaire.html): The business version of the questionnaire
6993* [Requirements](requirements.html): The business version of the requirements
6994* [SearchParameter](searchparameter.html): The business version of the search parameter
6995* [StructureDefinition](structuredefinition.html): The business version of the structure definition
6996* [StructureMap](structuremap.html): The business version of the structure map
6997* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
6998* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
6999* [TestScript](testscript.html): The business version of the test script
7000* [ValueSet](valueset.html): The business version of the value set
7001</b><br>
7002   * Type: <b>token</b><br>
7003   * 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>
7004   * </p>
7005   */
7006  @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" )
7007  public static final String SP_VERSION = "version";
7008 /**
7009   * <b>Fluent Client</b> search parameter constant for <b>version</b>
7010   * <p>
7011   * Description: <b>Multiple Resources: 
7012
7013* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
7014* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
7015* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
7016* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
7017* [Citation](citation.html): The business version of the citation
7018* [CodeSystem](codesystem.html): The business version of the code system
7019* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
7020* [ConceptMap](conceptmap.html): The business version of the concept map
7021* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
7022* [EventDefinition](eventdefinition.html): The business version of the event definition
7023* [Evidence](evidence.html): The business version of the evidence
7024* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
7025* [ExampleScenario](examplescenario.html): The business version of the example scenario
7026* [GraphDefinition](graphdefinition.html): The business version of the graph definition
7027* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
7028* [Library](library.html): The business version of the library
7029* [Measure](measure.html): The business version of the measure
7030* [MessageDefinition](messagedefinition.html): The business version of the message definition
7031* [NamingSystem](namingsystem.html): The business version of the naming system
7032* [OperationDefinition](operationdefinition.html): The business version of the operation definition
7033* [PlanDefinition](plandefinition.html): The business version of the plan definition
7034* [Questionnaire](questionnaire.html): The business version of the questionnaire
7035* [Requirements](requirements.html): The business version of the requirements
7036* [SearchParameter](searchparameter.html): The business version of the search parameter
7037* [StructureDefinition](structuredefinition.html): The business version of the structure definition
7038* [StructureMap](structuremap.html): The business version of the structure map
7039* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
7040* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
7041* [TestScript](testscript.html): The business version of the test script
7042* [ValueSet](valueset.html): The business version of the value set
7043</b><br>
7044   * Type: <b>token</b><br>
7045   * 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>
7046   * </p>
7047   */
7048  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
7049
7050 /**
7051   * Search parameter: <b>effective</b>
7052   * <p>
7053   * Description: <b>Multiple Resources: 
7054
7055* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use
7056* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use
7057* [Citation](citation.html): The time during which the citation is intended to be in use
7058* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
7059* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
7060* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use
7061* [Library](library.html): The time during which the library is intended to be in use
7062* [Measure](measure.html): The time during which the measure is intended to be in use
7063* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
7064* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use
7065* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use
7066* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
7067</b><br>
7068   * Type: <b>date</b><br>
7069   * 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>
7070   * </p>
7071   */
7072  @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" )
7073  public static final String SP_EFFECTIVE = "effective";
7074 /**
7075   * <b>Fluent Client</b> search parameter constant for <b>effective</b>
7076   * <p>
7077   * Description: <b>Multiple Resources: 
7078
7079* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use
7080* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use
7081* [Citation](citation.html): The time during which the citation is intended to be in use
7082* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
7083* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
7084* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use
7085* [Library](library.html): The time during which the library is intended to be in use
7086* [Measure](measure.html): The time during which the measure is intended to be in use
7087* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
7088* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use
7089* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use
7090* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
7091</b><br>
7092   * Type: <b>date</b><br>
7093   * 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>
7094   * </p>
7095   */
7096  public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE);
7097
7098 /**
7099   * Search parameter: <b>combo-code</b>
7100   * <p>
7101   * Description: <b>A code that corresponds to one of its items in the questionnaire</b><br>
7102   * Type: <b>token</b><br>
7103   * Path: <b>Questionnaire.code | Questionnaire.item.code</b><br>
7104   * </p>
7105   */
7106  @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" )
7107  public static final String SP_COMBO_CODE = "combo-code";
7108 /**
7109   * <b>Fluent Client</b> search parameter constant for <b>combo-code</b>
7110   * <p>
7111   * Description: <b>A code that corresponds to one of its items in the questionnaire</b><br>
7112   * Type: <b>token</b><br>
7113   * Path: <b>Questionnaire.code | Questionnaire.item.code</b><br>
7114   * </p>
7115   */
7116  public static final ca.uhn.fhir.rest.gclient.TokenClientParam COMBO_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_COMBO_CODE);
7117
7118 /**
7119   * Search parameter: <b>definition</b>
7120   * <p>
7121   * Description: <b>ElementDefinition - details for the item</b><br>
7122   * Type: <b>uri</b><br>
7123   * Path: <b>Questionnaire.item.definition</b><br>
7124   * </p>
7125   */
7126  @SearchParamDefinition(name="definition", path="Questionnaire.item.definition", description="ElementDefinition - details for the item", type="uri" )
7127  public static final String SP_DEFINITION = "definition";
7128 /**
7129   * <b>Fluent Client</b> search parameter constant for <b>definition</b>
7130   * <p>
7131   * Description: <b>ElementDefinition - details for the item</b><br>
7132   * Type: <b>uri</b><br>
7133   * Path: <b>Questionnaire.item.definition</b><br>
7134   * </p>
7135   */
7136  public static final ca.uhn.fhir.rest.gclient.UriClientParam DEFINITION = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_DEFINITION);
7137
7138 /**
7139   * Search parameter: <b>item-code</b>
7140   * <p>
7141   * Description: <b>A code that corresponds to one of the items in the questionnaire</b><br>
7142   * Type: <b>token</b><br>
7143   * Path: <b>Questionnaire.item.code</b><br>
7144   * </p>
7145   */
7146  @SearchParamDefinition(name="item-code", path="Questionnaire.item.code", description="A code that corresponds to one of the items in the questionnaire", type="token" )
7147  public static final String SP_ITEM_CODE = "item-code";
7148 /**
7149   * <b>Fluent Client</b> search parameter constant for <b>item-code</b>
7150   * <p>
7151   * Description: <b>A code that corresponds to one of the items in the questionnaire</b><br>
7152   * Type: <b>token</b><br>
7153   * Path: <b>Questionnaire.item.code</b><br>
7154   * </p>
7155   */
7156  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ITEM_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ITEM_CODE);
7157
7158 /**
7159   * Search parameter: <b>questionnaire-code</b>
7160   * <p>
7161   * Description: <b>A code that matches one of the Questionnaire.code codings</b><br>
7162   * Type: <b>token</b><br>
7163   * Path: <b>Questionnaire.code</b><br>
7164   * </p>
7165   */
7166  @SearchParamDefinition(name="questionnaire-code", path="Questionnaire.code", description="A code that matches one of the Questionnaire.code codings", type="token" )
7167  public static final String SP_QUESTIONNAIRE_CODE = "questionnaire-code";
7168 /**
7169   * <b>Fluent Client</b> search parameter constant for <b>questionnaire-code</b>
7170   * <p>
7171   * Description: <b>A code that matches one of the Questionnaire.code codings</b><br>
7172   * Type: <b>token</b><br>
7173   * Path: <b>Questionnaire.code</b><br>
7174   * </p>
7175   */
7176  public static final ca.uhn.fhir.rest.gclient.TokenClientParam QUESTIONNAIRE_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_QUESTIONNAIRE_CODE);
7177
7178 /**
7179   * Search parameter: <b>subject-type</b>
7180   * <p>
7181   * Description: <b>Resource that can be subject of QuestionnaireResponse</b><br>
7182   * Type: <b>token</b><br>
7183   * Path: <b>Questionnaire.subjectType</b><br>
7184   * </p>
7185   */
7186  @SearchParamDefinition(name="subject-type", path="Questionnaire.subjectType", description="Resource that can be subject of QuestionnaireResponse", type="token" )
7187  public static final String SP_SUBJECT_TYPE = "subject-type";
7188 /**
7189   * <b>Fluent Client</b> search parameter constant for <b>subject-type</b>
7190   * <p>
7191   * Description: <b>Resource that can be subject of QuestionnaireResponse</b><br>
7192   * Type: <b>token</b><br>
7193   * Path: <b>Questionnaire.subjectType</b><br>
7194   * </p>
7195   */
7196  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SUBJECT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SUBJECT_TYPE);
7197
7198// Manual code (from Configuration.txt):
7199public QuestionnaireItemComponent getQuestion(String linkId) {
7200    if (linkId == null)
7201      return null;
7202    for (QuestionnaireItemComponent i : getItem()) {
7203      if (i.getLinkId().equals(linkId))
7204        return i;
7205      QuestionnaireItemComponent t = i.getQuestion(linkId);
7206      if (t != null)
7207        return t;
7208    }
7209    return null;
7210  }
7211
7212  public QuestionnaireItemComponent getCommonGroup(QuestionnaireItemComponent q1, QuestionnaireItemComponent q2) {
7213    for (QuestionnaireItemComponent i : getItem()) {
7214      QuestionnaireItemComponent t = i.getCommonGroup(q1, q2);
7215      if (t != null)
7216        return t;
7217    }
7218    return null;
7219  }
7220
7221// end addition
7222
7223
7224}
7225