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 walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
052 */
053@ResourceDef(name="ExampleScenario", profile="http://hl7.org/fhir/StructureDefinition/ExampleScenario")
054public class ExampleScenario extends CanonicalResource {
055
056    @Block()
057    public static class ExampleScenarioActorComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * A unique string within the scenario that is used to reference the actor.
060         */
061        @Child(name = "key", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
062        @Description(shortDefinition="ID or acronym of the actor", formalDefinition="A unique string within the scenario that is used to reference the actor." )
063        protected StringType key;
064
065        /**
066         * The category of actor - person or system.
067         */
068        @Child(name = "type", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=false)
069        @Description(shortDefinition="person | system", formalDefinition="The category of actor - person or system." )
070        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/examplescenario-actor-type")
071        protected Enumeration<ExampleScenarioActorType> type;
072
073        /**
074         * The human-readable name for the actor used when rendering the scenario.
075         */
076        @Child(name = "title", type = {StringType.class}, order=3, min=1, max=1, modifier=false, summary=false)
077        @Description(shortDefinition="Label for actor when rendering", formalDefinition="The human-readable name for the actor used when rendering the scenario." )
078        protected StringType title;
079
080        /**
081         * An explanation of who/what the actor is and its role in the scenario.
082         */
083        @Child(name = "description", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false)
084        @Description(shortDefinition="Details about actor", formalDefinition="An explanation of who/what the actor is and its role in the scenario." )
085        protected MarkdownType description;
086
087        private static final long serialVersionUID = 267911906L;
088
089    /**
090     * Constructor
091     */
092      public ExampleScenarioActorComponent() {
093        super();
094      }
095
096    /**
097     * Constructor
098     */
099      public ExampleScenarioActorComponent(String key, ExampleScenarioActorType type, String title) {
100        super();
101        this.setKey(key);
102        this.setType(type);
103        this.setTitle(title);
104      }
105
106        /**
107         * @return {@link #key} (A unique string within the scenario that is used to reference the actor.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value
108         */
109        public StringType getKeyElement() { 
110          if (this.key == null)
111            if (Configuration.errorOnAutoCreate())
112              throw new Error("Attempt to auto-create ExampleScenarioActorComponent.key");
113            else if (Configuration.doAutoCreate())
114              this.key = new StringType(); // bb
115          return this.key;
116        }
117
118        public boolean hasKeyElement() { 
119          return this.key != null && !this.key.isEmpty();
120        }
121
122        public boolean hasKey() { 
123          return this.key != null && !this.key.isEmpty();
124        }
125
126        /**
127         * @param value {@link #key} (A unique string within the scenario that is used to reference the actor.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value
128         */
129        public ExampleScenarioActorComponent setKeyElement(StringType value) { 
130          this.key = value;
131          return this;
132        }
133
134        /**
135         * @return A unique string within the scenario that is used to reference the actor.
136         */
137        public String getKey() { 
138          return this.key == null ? null : this.key.getValue();
139        }
140
141        /**
142         * @param value A unique string within the scenario that is used to reference the actor.
143         */
144        public ExampleScenarioActorComponent setKey(String value) { 
145            if (this.key == null)
146              this.key = new StringType();
147            this.key.setValue(value);
148          return this;
149        }
150
151        /**
152         * @return {@link #type} (The category of actor - person or system.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
153         */
154        public Enumeration<ExampleScenarioActorType> getTypeElement() { 
155          if (this.type == null)
156            if (Configuration.errorOnAutoCreate())
157              throw new Error("Attempt to auto-create ExampleScenarioActorComponent.type");
158            else if (Configuration.doAutoCreate())
159              this.type = new Enumeration<ExampleScenarioActorType>(new ExampleScenarioActorTypeEnumFactory()); // bb
160          return this.type;
161        }
162
163        public boolean hasTypeElement() { 
164          return this.type != null && !this.type.isEmpty();
165        }
166
167        public boolean hasType() { 
168          return this.type != null && !this.type.isEmpty();
169        }
170
171        /**
172         * @param value {@link #type} (The category of actor - person or system.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
173         */
174        public ExampleScenarioActorComponent setTypeElement(Enumeration<ExampleScenarioActorType> value) { 
175          this.type = value;
176          return this;
177        }
178
179        /**
180         * @return The category of actor - person or system.
181         */
182        public ExampleScenarioActorType getType() { 
183          return this.type == null ? null : this.type.getValue();
184        }
185
186        /**
187         * @param value The category of actor - person or system.
188         */
189        public ExampleScenarioActorComponent setType(ExampleScenarioActorType value) { 
190            if (this.type == null)
191              this.type = new Enumeration<ExampleScenarioActorType>(new ExampleScenarioActorTypeEnumFactory());
192            this.type.setValue(value);
193          return this;
194        }
195
196        /**
197         * @return {@link #title} (The human-readable name for the actor used when rendering the scenario.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
198         */
199        public StringType getTitleElement() { 
200          if (this.title == null)
201            if (Configuration.errorOnAutoCreate())
202              throw new Error("Attempt to auto-create ExampleScenarioActorComponent.title");
203            else if (Configuration.doAutoCreate())
204              this.title = new StringType(); // bb
205          return this.title;
206        }
207
208        public boolean hasTitleElement() { 
209          return this.title != null && !this.title.isEmpty();
210        }
211
212        public boolean hasTitle() { 
213          return this.title != null && !this.title.isEmpty();
214        }
215
216        /**
217         * @param value {@link #title} (The human-readable name for the actor used when rendering the scenario.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
218         */
219        public ExampleScenarioActorComponent setTitleElement(StringType value) { 
220          this.title = value;
221          return this;
222        }
223
224        /**
225         * @return The human-readable name for the actor used when rendering the scenario.
226         */
227        public String getTitle() { 
228          return this.title == null ? null : this.title.getValue();
229        }
230
231        /**
232         * @param value The human-readable name for the actor used when rendering the scenario.
233         */
234        public ExampleScenarioActorComponent setTitle(String value) { 
235            if (this.title == null)
236              this.title = new StringType();
237            this.title.setValue(value);
238          return this;
239        }
240
241        /**
242         * @return {@link #description} (An explanation of who/what the actor is and its role in the scenario.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
243         */
244        public MarkdownType getDescriptionElement() { 
245          if (this.description == null)
246            if (Configuration.errorOnAutoCreate())
247              throw new Error("Attempt to auto-create ExampleScenarioActorComponent.description");
248            else if (Configuration.doAutoCreate())
249              this.description = new MarkdownType(); // bb
250          return this.description;
251        }
252
253        public boolean hasDescriptionElement() { 
254          return this.description != null && !this.description.isEmpty();
255        }
256
257        public boolean hasDescription() { 
258          return this.description != null && !this.description.isEmpty();
259        }
260
261        /**
262         * @param value {@link #description} (An explanation of who/what the actor is and its role in the scenario.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
263         */
264        public ExampleScenarioActorComponent setDescriptionElement(MarkdownType value) { 
265          this.description = value;
266          return this;
267        }
268
269        /**
270         * @return An explanation of who/what the actor is and its role in the scenario.
271         */
272        public String getDescription() { 
273          return this.description == null ? null : this.description.getValue();
274        }
275
276        /**
277         * @param value An explanation of who/what the actor is and its role in the scenario.
278         */
279        public ExampleScenarioActorComponent setDescription(String value) { 
280          if (Utilities.noString(value))
281            this.description = null;
282          else {
283            if (this.description == null)
284              this.description = new MarkdownType();
285            this.description.setValue(value);
286          }
287          return this;
288        }
289
290        protected void listChildren(List<Property> children) {
291          super.listChildren(children);
292          children.add(new Property("key", "string", "A unique string within the scenario that is used to reference the actor.", 0, 1, key));
293          children.add(new Property("type", "code", "The category of actor - person or system.", 0, 1, type));
294          children.add(new Property("title", "string", "The human-readable name for the actor used when rendering the scenario.", 0, 1, title));
295          children.add(new Property("description", "markdown", "An explanation of who/what the actor is and its role in the scenario.", 0, 1, description));
296        }
297
298        @Override
299        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
300          switch (_hash) {
301          case 106079: /*key*/  return new Property("key", "string", "A unique string within the scenario that is used to reference the actor.", 0, 1, key);
302          case 3575610: /*type*/  return new Property("type", "code", "The category of actor - person or system.", 0, 1, type);
303          case 110371416: /*title*/  return new Property("title", "string", "The human-readable name for the actor used when rendering the scenario.", 0, 1, title);
304          case -1724546052: /*description*/  return new Property("description", "markdown", "An explanation of who/what the actor is and its role in the scenario.", 0, 1, description);
305          default: return super.getNamedProperty(_hash, _name, _checkValid);
306          }
307
308        }
309
310      @Override
311      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
312        switch (hash) {
313        case 106079: /*key*/ return this.key == null ? new Base[0] : new Base[] {this.key}; // StringType
314        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<ExampleScenarioActorType>
315        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
316        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
317        default: return super.getProperty(hash, name, checkValid);
318        }
319
320      }
321
322      @Override
323      public Base setProperty(int hash, String name, Base value) throws FHIRException {
324        switch (hash) {
325        case 106079: // key
326          this.key = TypeConvertor.castToString(value); // StringType
327          return value;
328        case 3575610: // type
329          value = new ExampleScenarioActorTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
330          this.type = (Enumeration) value; // Enumeration<ExampleScenarioActorType>
331          return value;
332        case 110371416: // title
333          this.title = TypeConvertor.castToString(value); // StringType
334          return value;
335        case -1724546052: // description
336          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
337          return value;
338        default: return super.setProperty(hash, name, value);
339        }
340
341      }
342
343      @Override
344      public Base setProperty(String name, Base value) throws FHIRException {
345        if (name.equals("key")) {
346          this.key = TypeConvertor.castToString(value); // StringType
347        } else if (name.equals("type")) {
348          value = new ExampleScenarioActorTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
349          this.type = (Enumeration) value; // Enumeration<ExampleScenarioActorType>
350        } else if (name.equals("title")) {
351          this.title = TypeConvertor.castToString(value); // StringType
352        } else if (name.equals("description")) {
353          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
354        } else
355          return super.setProperty(name, value);
356        return value;
357      }
358
359      @Override
360      public Base makeProperty(int hash, String name) throws FHIRException {
361        switch (hash) {
362        case 106079:  return getKeyElement();
363        case 3575610:  return getTypeElement();
364        case 110371416:  return getTitleElement();
365        case -1724546052:  return getDescriptionElement();
366        default: return super.makeProperty(hash, name);
367        }
368
369      }
370
371      @Override
372      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
373        switch (hash) {
374        case 106079: /*key*/ return new String[] {"string"};
375        case 3575610: /*type*/ return new String[] {"code"};
376        case 110371416: /*title*/ return new String[] {"string"};
377        case -1724546052: /*description*/ return new String[] {"markdown"};
378        default: return super.getTypesForProperty(hash, name);
379        }
380
381      }
382
383      @Override
384      public Base addChild(String name) throws FHIRException {
385        if (name.equals("key")) {
386          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.actor.key");
387        }
388        else if (name.equals("type")) {
389          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.actor.type");
390        }
391        else if (name.equals("title")) {
392          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.actor.title");
393        }
394        else if (name.equals("description")) {
395          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.actor.description");
396        }
397        else
398          return super.addChild(name);
399      }
400
401      public ExampleScenarioActorComponent copy() {
402        ExampleScenarioActorComponent dst = new ExampleScenarioActorComponent();
403        copyValues(dst);
404        return dst;
405      }
406
407      public void copyValues(ExampleScenarioActorComponent dst) {
408        super.copyValues(dst);
409        dst.key = key == null ? null : key.copy();
410        dst.type = type == null ? null : type.copy();
411        dst.title = title == null ? null : title.copy();
412        dst.description = description == null ? null : description.copy();
413      }
414
415      @Override
416      public boolean equalsDeep(Base other_) {
417        if (!super.equalsDeep(other_))
418          return false;
419        if (!(other_ instanceof ExampleScenarioActorComponent))
420          return false;
421        ExampleScenarioActorComponent o = (ExampleScenarioActorComponent) other_;
422        return compareDeep(key, o.key, true) && compareDeep(type, o.type, true) && compareDeep(title, o.title, true)
423           && compareDeep(description, o.description, true);
424      }
425
426      @Override
427      public boolean equalsShallow(Base other_) {
428        if (!super.equalsShallow(other_))
429          return false;
430        if (!(other_ instanceof ExampleScenarioActorComponent))
431          return false;
432        ExampleScenarioActorComponent o = (ExampleScenarioActorComponent) other_;
433        return compareValues(key, o.key, true) && compareValues(type, o.type, true) && compareValues(title, o.title, true)
434           && compareValues(description, o.description, true);
435      }
436
437      public boolean isEmpty() {
438        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(key, type, title, description
439          );
440      }
441
442  public String fhirType() {
443    return "ExampleScenario.actor";
444
445  }
446
447  }
448
449    @Block()
450    public static class ExampleScenarioInstanceComponent extends BackboneElement implements IBaseBackboneElement {
451        /**
452         * A unique string within the scenario that is used to reference the instance.
453         */
454        @Child(name = "key", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
455        @Description(shortDefinition="ID or acronym of the instance", formalDefinition="A unique string within the scenario that is used to reference the instance." )
456        protected StringType key;
457
458        /**
459         * A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.
460         */
461        @Child(name = "structureType", type = {Coding.class}, order=2, min=1, max=1, modifier=false, summary=false)
462        @Description(shortDefinition="Data structure for example", formalDefinition="A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of." )
463        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/examplescenario-instance-type")
464        protected Coding structureType;
465
466        /**
467         * Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.
468         */
469        @Child(name = "structureVersion", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
470        @Description(shortDefinition="E.g. 4.0.1", formalDefinition="Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with." )
471        protected StringType structureVersion;
472
473        /**
474         * Refers to a profile, template or other ruleset the instance adheres to.
475         */
476        @Child(name = "structureProfile", type = {CanonicalType.class, UriType.class}, order=4, min=0, max=1, modifier=false, summary=false)
477        @Description(shortDefinition="Rules instance adheres to", formalDefinition="Refers to a profile, template or other ruleset the instance adheres to." )
478        protected DataType structureProfile;
479
480        /**
481         * A short descriptive label the instance to be used in tables or diagrams.
482         */
483        @Child(name = "title", type = {StringType.class}, order=5, min=1, max=1, modifier=false, summary=false)
484        @Description(shortDefinition="Label for instance", formalDefinition="A short descriptive label the instance to be used in tables or diagrams." )
485        protected StringType title;
486
487        /**
488         * An explanation of what the instance contains and what it's for.
489         */
490        @Child(name = "description", type = {MarkdownType.class}, order=6, min=0, max=1, modifier=false, summary=false)
491        @Description(shortDefinition="Human-friendly description of the instance", formalDefinition="An explanation of what the instance contains and what it's for." )
492        protected MarkdownType description;
493
494        /**
495         * Points to an instance (typically an example) that shows the data that would corespond to this instance.
496         */
497        @Child(name = "content", type = {Reference.class}, order=7, min=0, max=1, modifier=false, summary=false)
498        @Description(shortDefinition="Example instance data", formalDefinition="Points to an instance (typically an example) that shows the data that would corespond to this instance." )
499        protected Reference content;
500
501        /**
502         * Represents the instance as it was at a specific time-point.
503         */
504        @Child(name = "version", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
505        @Description(shortDefinition="Snapshot of instance that changes", formalDefinition="Represents the instance as it was at a specific time-point." )
506        protected List<ExampleScenarioInstanceVersionComponent> version;
507
508        /**
509         * References to other instances that can be found within this instance (e.g. the observations contained in a bundle).
510         */
511        @Child(name = "containedInstance", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
512        @Description(shortDefinition="Resources contained in the instance", formalDefinition="References to other instances that can be found within this instance (e.g. the observations contained in a bundle)." )
513        protected List<ExampleScenarioInstanceContainedInstanceComponent> containedInstance;
514
515        private static final long serialVersionUID = -1366610733L;
516
517    /**
518     * Constructor
519     */
520      public ExampleScenarioInstanceComponent() {
521        super();
522      }
523
524    /**
525     * Constructor
526     */
527      public ExampleScenarioInstanceComponent(String key, Coding structureType, String title) {
528        super();
529        this.setKey(key);
530        this.setStructureType(structureType);
531        this.setTitle(title);
532      }
533
534        /**
535         * @return {@link #key} (A unique string within the scenario that is used to reference the instance.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value
536         */
537        public StringType getKeyElement() { 
538          if (this.key == null)
539            if (Configuration.errorOnAutoCreate())
540              throw new Error("Attempt to auto-create ExampleScenarioInstanceComponent.key");
541            else if (Configuration.doAutoCreate())
542              this.key = new StringType(); // bb
543          return this.key;
544        }
545
546        public boolean hasKeyElement() { 
547          return this.key != null && !this.key.isEmpty();
548        }
549
550        public boolean hasKey() { 
551          return this.key != null && !this.key.isEmpty();
552        }
553
554        /**
555         * @param value {@link #key} (A unique string within the scenario that is used to reference the instance.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value
556         */
557        public ExampleScenarioInstanceComponent setKeyElement(StringType value) { 
558          this.key = value;
559          return this;
560        }
561
562        /**
563         * @return A unique string within the scenario that is used to reference the instance.
564         */
565        public String getKey() { 
566          return this.key == null ? null : this.key.getValue();
567        }
568
569        /**
570         * @param value A unique string within the scenario that is used to reference the instance.
571         */
572        public ExampleScenarioInstanceComponent setKey(String value) { 
573            if (this.key == null)
574              this.key = new StringType();
575            this.key.setValue(value);
576          return this;
577        }
578
579        /**
580         * @return {@link #structureType} (A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.)
581         */
582        public Coding getStructureType() { 
583          if (this.structureType == null)
584            if (Configuration.errorOnAutoCreate())
585              throw new Error("Attempt to auto-create ExampleScenarioInstanceComponent.structureType");
586            else if (Configuration.doAutoCreate())
587              this.structureType = new Coding(); // cc
588          return this.structureType;
589        }
590
591        public boolean hasStructureType() { 
592          return this.structureType != null && !this.structureType.isEmpty();
593        }
594
595        /**
596         * @param value {@link #structureType} (A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.)
597         */
598        public ExampleScenarioInstanceComponent setStructureType(Coding value) { 
599          this.structureType = value;
600          return this;
601        }
602
603        /**
604         * @return {@link #structureVersion} (Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.). This is the underlying object with id, value and extensions. The accessor "getStructureVersion" gives direct access to the value
605         */
606        public StringType getStructureVersionElement() { 
607          if (this.structureVersion == null)
608            if (Configuration.errorOnAutoCreate())
609              throw new Error("Attempt to auto-create ExampleScenarioInstanceComponent.structureVersion");
610            else if (Configuration.doAutoCreate())
611              this.structureVersion = new StringType(); // bb
612          return this.structureVersion;
613        }
614
615        public boolean hasStructureVersionElement() { 
616          return this.structureVersion != null && !this.structureVersion.isEmpty();
617        }
618
619        public boolean hasStructureVersion() { 
620          return this.structureVersion != null && !this.structureVersion.isEmpty();
621        }
622
623        /**
624         * @param value {@link #structureVersion} (Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.). This is the underlying object with id, value and extensions. The accessor "getStructureVersion" gives direct access to the value
625         */
626        public ExampleScenarioInstanceComponent setStructureVersionElement(StringType value) { 
627          this.structureVersion = value;
628          return this;
629        }
630
631        /**
632         * @return Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.
633         */
634        public String getStructureVersion() { 
635          return this.structureVersion == null ? null : this.structureVersion.getValue();
636        }
637
638        /**
639         * @param value Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.
640         */
641        public ExampleScenarioInstanceComponent setStructureVersion(String value) { 
642          if (Utilities.noString(value))
643            this.structureVersion = null;
644          else {
645            if (this.structureVersion == null)
646              this.structureVersion = new StringType();
647            this.structureVersion.setValue(value);
648          }
649          return this;
650        }
651
652        /**
653         * @return {@link #structureProfile} (Refers to a profile, template or other ruleset the instance adheres to.)
654         */
655        public DataType getStructureProfile() { 
656          return this.structureProfile;
657        }
658
659        /**
660         * @return {@link #structureProfile} (Refers to a profile, template or other ruleset the instance adheres to.)
661         */
662        public CanonicalType getStructureProfileCanonicalType() throws FHIRException { 
663          if (this.structureProfile == null)
664            this.structureProfile = new CanonicalType();
665          if (!(this.structureProfile instanceof CanonicalType))
666            throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.structureProfile.getClass().getName()+" was encountered");
667          return (CanonicalType) this.structureProfile;
668        }
669
670        public boolean hasStructureProfileCanonicalType() { 
671          return this != null && this.structureProfile instanceof CanonicalType;
672        }
673
674        /**
675         * @return {@link #structureProfile} (Refers to a profile, template or other ruleset the instance adheres to.)
676         */
677        public UriType getStructureProfileUriType() throws FHIRException { 
678          if (this.structureProfile == null)
679            this.structureProfile = new UriType();
680          if (!(this.structureProfile instanceof UriType))
681            throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.structureProfile.getClass().getName()+" was encountered");
682          return (UriType) this.structureProfile;
683        }
684
685        public boolean hasStructureProfileUriType() { 
686          return this != null && this.structureProfile instanceof UriType;
687        }
688
689        public boolean hasStructureProfile() { 
690          return this.structureProfile != null && !this.structureProfile.isEmpty();
691        }
692
693        /**
694         * @param value {@link #structureProfile} (Refers to a profile, template or other ruleset the instance adheres to.)
695         */
696        public ExampleScenarioInstanceComponent setStructureProfile(DataType value) { 
697          if (value != null && !(value instanceof CanonicalType || value instanceof UriType))
698            throw new FHIRException("Not the right type for ExampleScenario.instance.structureProfile[x]: "+value.fhirType());
699          this.structureProfile = value;
700          return this;
701        }
702
703        /**
704         * @return {@link #title} (A short descriptive label the instance to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
705         */
706        public StringType getTitleElement() { 
707          if (this.title == null)
708            if (Configuration.errorOnAutoCreate())
709              throw new Error("Attempt to auto-create ExampleScenarioInstanceComponent.title");
710            else if (Configuration.doAutoCreate())
711              this.title = new StringType(); // bb
712          return this.title;
713        }
714
715        public boolean hasTitleElement() { 
716          return this.title != null && !this.title.isEmpty();
717        }
718
719        public boolean hasTitle() { 
720          return this.title != null && !this.title.isEmpty();
721        }
722
723        /**
724         * @param value {@link #title} (A short descriptive label the instance to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
725         */
726        public ExampleScenarioInstanceComponent setTitleElement(StringType value) { 
727          this.title = value;
728          return this;
729        }
730
731        /**
732         * @return A short descriptive label the instance to be used in tables or diagrams.
733         */
734        public String getTitle() { 
735          return this.title == null ? null : this.title.getValue();
736        }
737
738        /**
739         * @param value A short descriptive label the instance to be used in tables or diagrams.
740         */
741        public ExampleScenarioInstanceComponent setTitle(String value) { 
742            if (this.title == null)
743              this.title = new StringType();
744            this.title.setValue(value);
745          return this;
746        }
747
748        /**
749         * @return {@link #description} (An explanation of what the instance contains and what it's for.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
750         */
751        public MarkdownType getDescriptionElement() { 
752          if (this.description == null)
753            if (Configuration.errorOnAutoCreate())
754              throw new Error("Attempt to auto-create ExampleScenarioInstanceComponent.description");
755            else if (Configuration.doAutoCreate())
756              this.description = new MarkdownType(); // bb
757          return this.description;
758        }
759
760        public boolean hasDescriptionElement() { 
761          return this.description != null && !this.description.isEmpty();
762        }
763
764        public boolean hasDescription() { 
765          return this.description != null && !this.description.isEmpty();
766        }
767
768        /**
769         * @param value {@link #description} (An explanation of what the instance contains and what it's for.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
770         */
771        public ExampleScenarioInstanceComponent setDescriptionElement(MarkdownType value) { 
772          this.description = value;
773          return this;
774        }
775
776        /**
777         * @return An explanation of what the instance contains and what it's for.
778         */
779        public String getDescription() { 
780          return this.description == null ? null : this.description.getValue();
781        }
782
783        /**
784         * @param value An explanation of what the instance contains and what it's for.
785         */
786        public ExampleScenarioInstanceComponent setDescription(String value) { 
787          if (Utilities.noString(value))
788            this.description = null;
789          else {
790            if (this.description == null)
791              this.description = new MarkdownType();
792            this.description.setValue(value);
793          }
794          return this;
795        }
796
797        /**
798         * @return {@link #content} (Points to an instance (typically an example) that shows the data that would corespond to this instance.)
799         */
800        public Reference getContent() { 
801          if (this.content == null)
802            if (Configuration.errorOnAutoCreate())
803              throw new Error("Attempt to auto-create ExampleScenarioInstanceComponent.content");
804            else if (Configuration.doAutoCreate())
805              this.content = new Reference(); // cc
806          return this.content;
807        }
808
809        public boolean hasContent() { 
810          return this.content != null && !this.content.isEmpty();
811        }
812
813        /**
814         * @param value {@link #content} (Points to an instance (typically an example) that shows the data that would corespond to this instance.)
815         */
816        public ExampleScenarioInstanceComponent setContent(Reference value) { 
817          this.content = value;
818          return this;
819        }
820
821        /**
822         * @return {@link #version} (Represents the instance as it was at a specific time-point.)
823         */
824        public List<ExampleScenarioInstanceVersionComponent> getVersion() { 
825          if (this.version == null)
826            this.version = new ArrayList<ExampleScenarioInstanceVersionComponent>();
827          return this.version;
828        }
829
830        /**
831         * @return Returns a reference to <code>this</code> for easy method chaining
832         */
833        public ExampleScenarioInstanceComponent setVersion(List<ExampleScenarioInstanceVersionComponent> theVersion) { 
834          this.version = theVersion;
835          return this;
836        }
837
838        public boolean hasVersion() { 
839          if (this.version == null)
840            return false;
841          for (ExampleScenarioInstanceVersionComponent item : this.version)
842            if (!item.isEmpty())
843              return true;
844          return false;
845        }
846
847        public ExampleScenarioInstanceVersionComponent addVersion() { //3
848          ExampleScenarioInstanceVersionComponent t = new ExampleScenarioInstanceVersionComponent();
849          if (this.version == null)
850            this.version = new ArrayList<ExampleScenarioInstanceVersionComponent>();
851          this.version.add(t);
852          return t;
853        }
854
855        public ExampleScenarioInstanceComponent addVersion(ExampleScenarioInstanceVersionComponent t) { //3
856          if (t == null)
857            return this;
858          if (this.version == null)
859            this.version = new ArrayList<ExampleScenarioInstanceVersionComponent>();
860          this.version.add(t);
861          return this;
862        }
863
864        /**
865         * @return The first repetition of repeating field {@link #version}, creating it if it does not already exist {3}
866         */
867        public ExampleScenarioInstanceVersionComponent getVersionFirstRep() { 
868          if (getVersion().isEmpty()) {
869            addVersion();
870          }
871          return getVersion().get(0);
872        }
873
874        /**
875         * @return {@link #containedInstance} (References to other instances that can be found within this instance (e.g. the observations contained in a bundle).)
876         */
877        public List<ExampleScenarioInstanceContainedInstanceComponent> getContainedInstance() { 
878          if (this.containedInstance == null)
879            this.containedInstance = new ArrayList<ExampleScenarioInstanceContainedInstanceComponent>();
880          return this.containedInstance;
881        }
882
883        /**
884         * @return Returns a reference to <code>this</code> for easy method chaining
885         */
886        public ExampleScenarioInstanceComponent setContainedInstance(List<ExampleScenarioInstanceContainedInstanceComponent> theContainedInstance) { 
887          this.containedInstance = theContainedInstance;
888          return this;
889        }
890
891        public boolean hasContainedInstance() { 
892          if (this.containedInstance == null)
893            return false;
894          for (ExampleScenarioInstanceContainedInstanceComponent item : this.containedInstance)
895            if (!item.isEmpty())
896              return true;
897          return false;
898        }
899
900        public ExampleScenarioInstanceContainedInstanceComponent addContainedInstance() { //3
901          ExampleScenarioInstanceContainedInstanceComponent t = new ExampleScenarioInstanceContainedInstanceComponent();
902          if (this.containedInstance == null)
903            this.containedInstance = new ArrayList<ExampleScenarioInstanceContainedInstanceComponent>();
904          this.containedInstance.add(t);
905          return t;
906        }
907
908        public ExampleScenarioInstanceComponent addContainedInstance(ExampleScenarioInstanceContainedInstanceComponent t) { //3
909          if (t == null)
910            return this;
911          if (this.containedInstance == null)
912            this.containedInstance = new ArrayList<ExampleScenarioInstanceContainedInstanceComponent>();
913          this.containedInstance.add(t);
914          return this;
915        }
916
917        /**
918         * @return The first repetition of repeating field {@link #containedInstance}, creating it if it does not already exist {3}
919         */
920        public ExampleScenarioInstanceContainedInstanceComponent getContainedInstanceFirstRep() { 
921          if (getContainedInstance().isEmpty()) {
922            addContainedInstance();
923          }
924          return getContainedInstance().get(0);
925        }
926
927        protected void listChildren(List<Property> children) {
928          super.listChildren(children);
929          children.add(new Property("key", "string", "A unique string within the scenario that is used to reference the instance.", 0, 1, key));
930          children.add(new Property("structureType", "Coding", "A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.", 0, 1, structureType));
931          children.add(new Property("structureVersion", "string", "Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.", 0, 1, structureVersion));
932          children.add(new Property("structureProfile[x]", "canonical|uri", "Refers to a profile, template or other ruleset the instance adheres to.", 0, 1, structureProfile));
933          children.add(new Property("title", "string", "A short descriptive label the instance to be used in tables or diagrams.", 0, 1, title));
934          children.add(new Property("description", "markdown", "An explanation of what the instance contains and what it's for.", 0, 1, description));
935          children.add(new Property("content", "Reference", "Points to an instance (typically an example) that shows the data that would corespond to this instance.", 0, 1, content));
936          children.add(new Property("version", "", "Represents the instance as it was at a specific time-point.", 0, java.lang.Integer.MAX_VALUE, version));
937          children.add(new Property("containedInstance", "", "References to other instances that can be found within this instance (e.g. the observations contained in a bundle).", 0, java.lang.Integer.MAX_VALUE, containedInstance));
938        }
939
940        @Override
941        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
942          switch (_hash) {
943          case 106079: /*key*/  return new Property("key", "string", "A unique string within the scenario that is used to reference the instance.", 0, 1, key);
944          case -222609587: /*structureType*/  return new Property("structureType", "Coding", "A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.", 0, 1, structureType);
945          case 872091621: /*structureVersion*/  return new Property("structureVersion", "string", "Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.", 0, 1, structureVersion);
946          case -207739894: /*structureProfile[x]*/  return new Property("structureProfile[x]", "canonical|uri", "Refers to a profile, template or other ruleset the instance adheres to.", 0, 1, structureProfile);
947          case 211057846: /*structureProfile*/  return new Property("structureProfile[x]", "canonical|uri", "Refers to a profile, template or other ruleset the instance adheres to.", 0, 1, structureProfile);
948          case -1044433698: /*structureProfileCanonical*/  return new Property("structureProfile[x]", "canonical", "Refers to a profile, template or other ruleset the instance adheres to.", 0, 1, structureProfile);
949          case -207745834: /*structureProfileUri*/  return new Property("structureProfile[x]", "uri", "Refers to a profile, template or other ruleset the instance adheres to.", 0, 1, structureProfile);
950          case 110371416: /*title*/  return new Property("title", "string", "A short descriptive label the instance to be used in tables or diagrams.", 0, 1, title);
951          case -1724546052: /*description*/  return new Property("description", "markdown", "An explanation of what the instance contains and what it's for.", 0, 1, description);
952          case 951530617: /*content*/  return new Property("content", "Reference", "Points to an instance (typically an example) that shows the data that would corespond to this instance.", 0, 1, content);
953          case 351608024: /*version*/  return new Property("version", "", "Represents the instance as it was at a specific time-point.", 0, java.lang.Integer.MAX_VALUE, version);
954          case -417062360: /*containedInstance*/  return new Property("containedInstance", "", "References to other instances that can be found within this instance (e.g. the observations contained in a bundle).", 0, java.lang.Integer.MAX_VALUE, containedInstance);
955          default: return super.getNamedProperty(_hash, _name, _checkValid);
956          }
957
958        }
959
960      @Override
961      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
962        switch (hash) {
963        case 106079: /*key*/ return this.key == null ? new Base[0] : new Base[] {this.key}; // StringType
964        case -222609587: /*structureType*/ return this.structureType == null ? new Base[0] : new Base[] {this.structureType}; // Coding
965        case 872091621: /*structureVersion*/ return this.structureVersion == null ? new Base[0] : new Base[] {this.structureVersion}; // StringType
966        case 211057846: /*structureProfile*/ return this.structureProfile == null ? new Base[0] : new Base[] {this.structureProfile}; // DataType
967        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
968        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
969        case 951530617: /*content*/ return this.content == null ? new Base[0] : new Base[] {this.content}; // Reference
970        case 351608024: /*version*/ return this.version == null ? new Base[0] : this.version.toArray(new Base[this.version.size()]); // ExampleScenarioInstanceVersionComponent
971        case -417062360: /*containedInstance*/ return this.containedInstance == null ? new Base[0] : this.containedInstance.toArray(new Base[this.containedInstance.size()]); // ExampleScenarioInstanceContainedInstanceComponent
972        default: return super.getProperty(hash, name, checkValid);
973        }
974
975      }
976
977      @Override
978      public Base setProperty(int hash, String name, Base value) throws FHIRException {
979        switch (hash) {
980        case 106079: // key
981          this.key = TypeConvertor.castToString(value); // StringType
982          return value;
983        case -222609587: // structureType
984          this.structureType = TypeConvertor.castToCoding(value); // Coding
985          return value;
986        case 872091621: // structureVersion
987          this.structureVersion = TypeConvertor.castToString(value); // StringType
988          return value;
989        case 211057846: // structureProfile
990          this.structureProfile = TypeConvertor.castToType(value); // DataType
991          return value;
992        case 110371416: // title
993          this.title = TypeConvertor.castToString(value); // StringType
994          return value;
995        case -1724546052: // description
996          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
997          return value;
998        case 951530617: // content
999          this.content = TypeConvertor.castToReference(value); // Reference
1000          return value;
1001        case 351608024: // version
1002          this.getVersion().add((ExampleScenarioInstanceVersionComponent) value); // ExampleScenarioInstanceVersionComponent
1003          return value;
1004        case -417062360: // containedInstance
1005          this.getContainedInstance().add((ExampleScenarioInstanceContainedInstanceComponent) value); // ExampleScenarioInstanceContainedInstanceComponent
1006          return value;
1007        default: return super.setProperty(hash, name, value);
1008        }
1009
1010      }
1011
1012      @Override
1013      public Base setProperty(String name, Base value) throws FHIRException {
1014        if (name.equals("key")) {
1015          this.key = TypeConvertor.castToString(value); // StringType
1016        } else if (name.equals("structureType")) {
1017          this.structureType = TypeConvertor.castToCoding(value); // Coding
1018        } else if (name.equals("structureVersion")) {
1019          this.structureVersion = TypeConvertor.castToString(value); // StringType
1020        } else if (name.equals("structureProfile[x]")) {
1021          this.structureProfile = TypeConvertor.castToType(value); // DataType
1022        } else if (name.equals("title")) {
1023          this.title = TypeConvertor.castToString(value); // StringType
1024        } else if (name.equals("description")) {
1025          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1026        } else if (name.equals("content")) {
1027          this.content = TypeConvertor.castToReference(value); // Reference
1028        } else if (name.equals("version")) {
1029          this.getVersion().add((ExampleScenarioInstanceVersionComponent) value);
1030        } else if (name.equals("containedInstance")) {
1031          this.getContainedInstance().add((ExampleScenarioInstanceContainedInstanceComponent) value);
1032        } else
1033          return super.setProperty(name, value);
1034        return value;
1035      }
1036
1037      @Override
1038      public Base makeProperty(int hash, String name) throws FHIRException {
1039        switch (hash) {
1040        case 106079:  return getKeyElement();
1041        case -222609587:  return getStructureType();
1042        case 872091621:  return getStructureVersionElement();
1043        case -207739894:  return getStructureProfile();
1044        case 211057846:  return getStructureProfile();
1045        case 110371416:  return getTitleElement();
1046        case -1724546052:  return getDescriptionElement();
1047        case 951530617:  return getContent();
1048        case 351608024:  return addVersion(); 
1049        case -417062360:  return addContainedInstance(); 
1050        default: return super.makeProperty(hash, name);
1051        }
1052
1053      }
1054
1055      @Override
1056      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1057        switch (hash) {
1058        case 106079: /*key*/ return new String[] {"string"};
1059        case -222609587: /*structureType*/ return new String[] {"Coding"};
1060        case 872091621: /*structureVersion*/ return new String[] {"string"};
1061        case 211057846: /*structureProfile*/ return new String[] {"canonical", "uri"};
1062        case 110371416: /*title*/ return new String[] {"string"};
1063        case -1724546052: /*description*/ return new String[] {"markdown"};
1064        case 951530617: /*content*/ return new String[] {"Reference"};
1065        case 351608024: /*version*/ return new String[] {};
1066        case -417062360: /*containedInstance*/ return new String[] {};
1067        default: return super.getTypesForProperty(hash, name);
1068        }
1069
1070      }
1071
1072      @Override
1073      public Base addChild(String name) throws FHIRException {
1074        if (name.equals("key")) {
1075          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.key");
1076        }
1077        else if (name.equals("structureType")) {
1078          this.structureType = new Coding();
1079          return this.structureType;
1080        }
1081        else if (name.equals("structureVersion")) {
1082          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.structureVersion");
1083        }
1084        else if (name.equals("structureProfileCanonical")) {
1085          this.structureProfile = new CanonicalType();
1086          return this.structureProfile;
1087        }
1088        else if (name.equals("structureProfileUri")) {
1089          this.structureProfile = new UriType();
1090          return this.structureProfile;
1091        }
1092        else if (name.equals("title")) {
1093          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.title");
1094        }
1095        else if (name.equals("description")) {
1096          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.description");
1097        }
1098        else if (name.equals("content")) {
1099          this.content = new Reference();
1100          return this.content;
1101        }
1102        else if (name.equals("version")) {
1103          return addVersion();
1104        }
1105        else if (name.equals("containedInstance")) {
1106          return addContainedInstance();
1107        }
1108        else
1109          return super.addChild(name);
1110      }
1111
1112      public ExampleScenarioInstanceComponent copy() {
1113        ExampleScenarioInstanceComponent dst = new ExampleScenarioInstanceComponent();
1114        copyValues(dst);
1115        return dst;
1116      }
1117
1118      public void copyValues(ExampleScenarioInstanceComponent dst) {
1119        super.copyValues(dst);
1120        dst.key = key == null ? null : key.copy();
1121        dst.structureType = structureType == null ? null : structureType.copy();
1122        dst.structureVersion = structureVersion == null ? null : structureVersion.copy();
1123        dst.structureProfile = structureProfile == null ? null : structureProfile.copy();
1124        dst.title = title == null ? null : title.copy();
1125        dst.description = description == null ? null : description.copy();
1126        dst.content = content == null ? null : content.copy();
1127        if (version != null) {
1128          dst.version = new ArrayList<ExampleScenarioInstanceVersionComponent>();
1129          for (ExampleScenarioInstanceVersionComponent i : version)
1130            dst.version.add(i.copy());
1131        };
1132        if (containedInstance != null) {
1133          dst.containedInstance = new ArrayList<ExampleScenarioInstanceContainedInstanceComponent>();
1134          for (ExampleScenarioInstanceContainedInstanceComponent i : containedInstance)
1135            dst.containedInstance.add(i.copy());
1136        };
1137      }
1138
1139      @Override
1140      public boolean equalsDeep(Base other_) {
1141        if (!super.equalsDeep(other_))
1142          return false;
1143        if (!(other_ instanceof ExampleScenarioInstanceComponent))
1144          return false;
1145        ExampleScenarioInstanceComponent o = (ExampleScenarioInstanceComponent) other_;
1146        return compareDeep(key, o.key, true) && compareDeep(structureType, o.structureType, true) && compareDeep(structureVersion, o.structureVersion, true)
1147           && compareDeep(structureProfile, o.structureProfile, true) && compareDeep(title, o.title, true)
1148           && compareDeep(description, o.description, true) && compareDeep(content, o.content, true) && compareDeep(version, o.version, true)
1149           && compareDeep(containedInstance, o.containedInstance, true);
1150      }
1151
1152      @Override
1153      public boolean equalsShallow(Base other_) {
1154        if (!super.equalsShallow(other_))
1155          return false;
1156        if (!(other_ instanceof ExampleScenarioInstanceComponent))
1157          return false;
1158        ExampleScenarioInstanceComponent o = (ExampleScenarioInstanceComponent) other_;
1159        return compareValues(key, o.key, true) && compareValues(structureVersion, o.structureVersion, true)
1160           && compareValues(title, o.title, true) && compareValues(description, o.description, true);
1161      }
1162
1163      public boolean isEmpty() {
1164        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(key, structureType, structureVersion
1165          , structureProfile, title, description, content, version, containedInstance);
1166      }
1167
1168  public String fhirType() {
1169    return "ExampleScenario.instance";
1170
1171  }
1172
1173  }
1174
1175    @Block()
1176    public static class ExampleScenarioInstanceVersionComponent extends BackboneElement implements IBaseBackboneElement {
1177        /**
1178         * A unique string within the instance that is used to reference the version of the instance.
1179         */
1180        @Child(name = "key", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
1181        @Description(shortDefinition="ID or acronym of the version", formalDefinition="A unique string within the instance that is used to reference the version of the instance." )
1182        protected StringType key;
1183
1184        /**
1185         * A short descriptive label the version to be used in tables or diagrams.
1186         */
1187        @Child(name = "title", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
1188        @Description(shortDefinition="Label for instance version", formalDefinition="A short descriptive label the version to be used in tables or diagrams." )
1189        protected StringType title;
1190
1191        /**
1192         * An explanation of what this specific version of the instance contains and represents.
1193         */
1194        @Child(name = "description", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false)
1195        @Description(shortDefinition="Details about version", formalDefinition="An explanation of what this specific version of the instance contains and represents." )
1196        protected MarkdownType description;
1197
1198        /**
1199         * Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.
1200         */
1201        @Child(name = "content", type = {Reference.class}, order=4, min=0, max=1, modifier=false, summary=false)
1202        @Description(shortDefinition="Example instance version data", formalDefinition="Points to an instance (typically an example) that shows the data that would flow at this point in the scenario." )
1203        protected Reference content;
1204
1205        private static final long serialVersionUID = -1218548928L;
1206
1207    /**
1208     * Constructor
1209     */
1210      public ExampleScenarioInstanceVersionComponent() {
1211        super();
1212      }
1213
1214    /**
1215     * Constructor
1216     */
1217      public ExampleScenarioInstanceVersionComponent(String key, String title) {
1218        super();
1219        this.setKey(key);
1220        this.setTitle(title);
1221      }
1222
1223        /**
1224         * @return {@link #key} (A unique string within the instance that is used to reference the version of the instance.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value
1225         */
1226        public StringType getKeyElement() { 
1227          if (this.key == null)
1228            if (Configuration.errorOnAutoCreate())
1229              throw new Error("Attempt to auto-create ExampleScenarioInstanceVersionComponent.key");
1230            else if (Configuration.doAutoCreate())
1231              this.key = new StringType(); // bb
1232          return this.key;
1233        }
1234
1235        public boolean hasKeyElement() { 
1236          return this.key != null && !this.key.isEmpty();
1237        }
1238
1239        public boolean hasKey() { 
1240          return this.key != null && !this.key.isEmpty();
1241        }
1242
1243        /**
1244         * @param value {@link #key} (A unique string within the instance that is used to reference the version of the instance.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value
1245         */
1246        public ExampleScenarioInstanceVersionComponent setKeyElement(StringType value) { 
1247          this.key = value;
1248          return this;
1249        }
1250
1251        /**
1252         * @return A unique string within the instance that is used to reference the version of the instance.
1253         */
1254        public String getKey() { 
1255          return this.key == null ? null : this.key.getValue();
1256        }
1257
1258        /**
1259         * @param value A unique string within the instance that is used to reference the version of the instance.
1260         */
1261        public ExampleScenarioInstanceVersionComponent setKey(String value) { 
1262            if (this.key == null)
1263              this.key = new StringType();
1264            this.key.setValue(value);
1265          return this;
1266        }
1267
1268        /**
1269         * @return {@link #title} (A short descriptive label the version to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1270         */
1271        public StringType getTitleElement() { 
1272          if (this.title == null)
1273            if (Configuration.errorOnAutoCreate())
1274              throw new Error("Attempt to auto-create ExampleScenarioInstanceVersionComponent.title");
1275            else if (Configuration.doAutoCreate())
1276              this.title = new StringType(); // bb
1277          return this.title;
1278        }
1279
1280        public boolean hasTitleElement() { 
1281          return this.title != null && !this.title.isEmpty();
1282        }
1283
1284        public boolean hasTitle() { 
1285          return this.title != null && !this.title.isEmpty();
1286        }
1287
1288        /**
1289         * @param value {@link #title} (A short descriptive label the version to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1290         */
1291        public ExampleScenarioInstanceVersionComponent setTitleElement(StringType value) { 
1292          this.title = value;
1293          return this;
1294        }
1295
1296        /**
1297         * @return A short descriptive label the version to be used in tables or diagrams.
1298         */
1299        public String getTitle() { 
1300          return this.title == null ? null : this.title.getValue();
1301        }
1302
1303        /**
1304         * @param value A short descriptive label the version to be used in tables or diagrams.
1305         */
1306        public ExampleScenarioInstanceVersionComponent setTitle(String value) { 
1307            if (this.title == null)
1308              this.title = new StringType();
1309            this.title.setValue(value);
1310          return this;
1311        }
1312
1313        /**
1314         * @return {@link #description} (An explanation of what this specific version of the instance contains and represents.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1315         */
1316        public MarkdownType getDescriptionElement() { 
1317          if (this.description == null)
1318            if (Configuration.errorOnAutoCreate())
1319              throw new Error("Attempt to auto-create ExampleScenarioInstanceVersionComponent.description");
1320            else if (Configuration.doAutoCreate())
1321              this.description = new MarkdownType(); // bb
1322          return this.description;
1323        }
1324
1325        public boolean hasDescriptionElement() { 
1326          return this.description != null && !this.description.isEmpty();
1327        }
1328
1329        public boolean hasDescription() { 
1330          return this.description != null && !this.description.isEmpty();
1331        }
1332
1333        /**
1334         * @param value {@link #description} (An explanation of what this specific version of the instance contains and represents.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1335         */
1336        public ExampleScenarioInstanceVersionComponent setDescriptionElement(MarkdownType value) { 
1337          this.description = value;
1338          return this;
1339        }
1340
1341        /**
1342         * @return An explanation of what this specific version of the instance contains and represents.
1343         */
1344        public String getDescription() { 
1345          return this.description == null ? null : this.description.getValue();
1346        }
1347
1348        /**
1349         * @param value An explanation of what this specific version of the instance contains and represents.
1350         */
1351        public ExampleScenarioInstanceVersionComponent setDescription(String value) { 
1352          if (Utilities.noString(value))
1353            this.description = null;
1354          else {
1355            if (this.description == null)
1356              this.description = new MarkdownType();
1357            this.description.setValue(value);
1358          }
1359          return this;
1360        }
1361
1362        /**
1363         * @return {@link #content} (Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.)
1364         */
1365        public Reference getContent() { 
1366          if (this.content == null)
1367            if (Configuration.errorOnAutoCreate())
1368              throw new Error("Attempt to auto-create ExampleScenarioInstanceVersionComponent.content");
1369            else if (Configuration.doAutoCreate())
1370              this.content = new Reference(); // cc
1371          return this.content;
1372        }
1373
1374        public boolean hasContent() { 
1375          return this.content != null && !this.content.isEmpty();
1376        }
1377
1378        /**
1379         * @param value {@link #content} (Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.)
1380         */
1381        public ExampleScenarioInstanceVersionComponent setContent(Reference value) { 
1382          this.content = value;
1383          return this;
1384        }
1385
1386        protected void listChildren(List<Property> children) {
1387          super.listChildren(children);
1388          children.add(new Property("key", "string", "A unique string within the instance that is used to reference the version of the instance.", 0, 1, key));
1389          children.add(new Property("title", "string", "A short descriptive label the version to be used in tables or diagrams.", 0, 1, title));
1390          children.add(new Property("description", "markdown", "An explanation of what this specific version of the instance contains and represents.", 0, 1, description));
1391          children.add(new Property("content", "Reference", "Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.", 0, 1, content));
1392        }
1393
1394        @Override
1395        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1396          switch (_hash) {
1397          case 106079: /*key*/  return new Property("key", "string", "A unique string within the instance that is used to reference the version of the instance.", 0, 1, key);
1398          case 110371416: /*title*/  return new Property("title", "string", "A short descriptive label the version to be used in tables or diagrams.", 0, 1, title);
1399          case -1724546052: /*description*/  return new Property("description", "markdown", "An explanation of what this specific version of the instance contains and represents.", 0, 1, description);
1400          case 951530617: /*content*/  return new Property("content", "Reference", "Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.", 0, 1, content);
1401          default: return super.getNamedProperty(_hash, _name, _checkValid);
1402          }
1403
1404        }
1405
1406      @Override
1407      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1408        switch (hash) {
1409        case 106079: /*key*/ return this.key == null ? new Base[0] : new Base[] {this.key}; // StringType
1410        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
1411        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1412        case 951530617: /*content*/ return this.content == null ? new Base[0] : new Base[] {this.content}; // Reference
1413        default: return super.getProperty(hash, name, checkValid);
1414        }
1415
1416      }
1417
1418      @Override
1419      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1420        switch (hash) {
1421        case 106079: // key
1422          this.key = TypeConvertor.castToString(value); // StringType
1423          return value;
1424        case 110371416: // title
1425          this.title = TypeConvertor.castToString(value); // StringType
1426          return value;
1427        case -1724546052: // description
1428          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1429          return value;
1430        case 951530617: // content
1431          this.content = TypeConvertor.castToReference(value); // Reference
1432          return value;
1433        default: return super.setProperty(hash, name, value);
1434        }
1435
1436      }
1437
1438      @Override
1439      public Base setProperty(String name, Base value) throws FHIRException {
1440        if (name.equals("key")) {
1441          this.key = TypeConvertor.castToString(value); // StringType
1442        } else if (name.equals("title")) {
1443          this.title = TypeConvertor.castToString(value); // StringType
1444        } else if (name.equals("description")) {
1445          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1446        } else if (name.equals("content")) {
1447          this.content = TypeConvertor.castToReference(value); // Reference
1448        } else
1449          return super.setProperty(name, value);
1450        return value;
1451      }
1452
1453      @Override
1454      public Base makeProperty(int hash, String name) throws FHIRException {
1455        switch (hash) {
1456        case 106079:  return getKeyElement();
1457        case 110371416:  return getTitleElement();
1458        case -1724546052:  return getDescriptionElement();
1459        case 951530617:  return getContent();
1460        default: return super.makeProperty(hash, name);
1461        }
1462
1463      }
1464
1465      @Override
1466      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1467        switch (hash) {
1468        case 106079: /*key*/ return new String[] {"string"};
1469        case 110371416: /*title*/ return new String[] {"string"};
1470        case -1724546052: /*description*/ return new String[] {"markdown"};
1471        case 951530617: /*content*/ return new String[] {"Reference"};
1472        default: return super.getTypesForProperty(hash, name);
1473        }
1474
1475      }
1476
1477      @Override
1478      public Base addChild(String name) throws FHIRException {
1479        if (name.equals("key")) {
1480          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.version.key");
1481        }
1482        else if (name.equals("title")) {
1483          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.version.title");
1484        }
1485        else if (name.equals("description")) {
1486          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.version.description");
1487        }
1488        else if (name.equals("content")) {
1489          this.content = new Reference();
1490          return this.content;
1491        }
1492        else
1493          return super.addChild(name);
1494      }
1495
1496      public ExampleScenarioInstanceVersionComponent copy() {
1497        ExampleScenarioInstanceVersionComponent dst = new ExampleScenarioInstanceVersionComponent();
1498        copyValues(dst);
1499        return dst;
1500      }
1501
1502      public void copyValues(ExampleScenarioInstanceVersionComponent dst) {
1503        super.copyValues(dst);
1504        dst.key = key == null ? null : key.copy();
1505        dst.title = title == null ? null : title.copy();
1506        dst.description = description == null ? null : description.copy();
1507        dst.content = content == null ? null : content.copy();
1508      }
1509
1510      @Override
1511      public boolean equalsDeep(Base other_) {
1512        if (!super.equalsDeep(other_))
1513          return false;
1514        if (!(other_ instanceof ExampleScenarioInstanceVersionComponent))
1515          return false;
1516        ExampleScenarioInstanceVersionComponent o = (ExampleScenarioInstanceVersionComponent) other_;
1517        return compareDeep(key, o.key, true) && compareDeep(title, o.title, true) && compareDeep(description, o.description, true)
1518           && compareDeep(content, o.content, true);
1519      }
1520
1521      @Override
1522      public boolean equalsShallow(Base other_) {
1523        if (!super.equalsShallow(other_))
1524          return false;
1525        if (!(other_ instanceof ExampleScenarioInstanceVersionComponent))
1526          return false;
1527        ExampleScenarioInstanceVersionComponent o = (ExampleScenarioInstanceVersionComponent) other_;
1528        return compareValues(key, o.key, true) && compareValues(title, o.title, true) && compareValues(description, o.description, true)
1529          ;
1530      }
1531
1532      public boolean isEmpty() {
1533        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(key, title, description
1534          , content);
1535      }
1536
1537  public String fhirType() {
1538    return "ExampleScenario.instance.version";
1539
1540  }
1541
1542  }
1543
1544    @Block()
1545    public static class ExampleScenarioInstanceContainedInstanceComponent extends BackboneElement implements IBaseBackboneElement {
1546        /**
1547         * A reference to the key of an instance found within this one.
1548         */
1549        @Child(name = "instanceReference", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
1550        @Description(shortDefinition="Key of contained instance", formalDefinition="A reference to the key of an instance found within this one." )
1551        protected StringType instanceReference;
1552
1553        /**
1554         * A reference to the key of a specific version of an instance in this instance.
1555         */
1556        @Child(name = "versionReference", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1557        @Description(shortDefinition="Key of contained instance version", formalDefinition="A reference to the key of a specific version of an instance in this instance." )
1558        protected StringType versionReference;
1559
1560        private static final long serialVersionUID = 520704935L;
1561
1562    /**
1563     * Constructor
1564     */
1565      public ExampleScenarioInstanceContainedInstanceComponent() {
1566        super();
1567      }
1568
1569    /**
1570     * Constructor
1571     */
1572      public ExampleScenarioInstanceContainedInstanceComponent(String instanceReference) {
1573        super();
1574        this.setInstanceReference(instanceReference);
1575      }
1576
1577        /**
1578         * @return {@link #instanceReference} (A reference to the key of an instance found within this one.). This is the underlying object with id, value and extensions. The accessor "getInstanceReference" gives direct access to the value
1579         */
1580        public StringType getInstanceReferenceElement() { 
1581          if (this.instanceReference == null)
1582            if (Configuration.errorOnAutoCreate())
1583              throw new Error("Attempt to auto-create ExampleScenarioInstanceContainedInstanceComponent.instanceReference");
1584            else if (Configuration.doAutoCreate())
1585              this.instanceReference = new StringType(); // bb
1586          return this.instanceReference;
1587        }
1588
1589        public boolean hasInstanceReferenceElement() { 
1590          return this.instanceReference != null && !this.instanceReference.isEmpty();
1591        }
1592
1593        public boolean hasInstanceReference() { 
1594          return this.instanceReference != null && !this.instanceReference.isEmpty();
1595        }
1596
1597        /**
1598         * @param value {@link #instanceReference} (A reference to the key of an instance found within this one.). This is the underlying object with id, value and extensions. The accessor "getInstanceReference" gives direct access to the value
1599         */
1600        public ExampleScenarioInstanceContainedInstanceComponent setInstanceReferenceElement(StringType value) { 
1601          this.instanceReference = value;
1602          return this;
1603        }
1604
1605        /**
1606         * @return A reference to the key of an instance found within this one.
1607         */
1608        public String getInstanceReference() { 
1609          return this.instanceReference == null ? null : this.instanceReference.getValue();
1610        }
1611
1612        /**
1613         * @param value A reference to the key of an instance found within this one.
1614         */
1615        public ExampleScenarioInstanceContainedInstanceComponent setInstanceReference(String value) { 
1616            if (this.instanceReference == null)
1617              this.instanceReference = new StringType();
1618            this.instanceReference.setValue(value);
1619          return this;
1620        }
1621
1622        /**
1623         * @return {@link #versionReference} (A reference to the key of a specific version of an instance in this instance.). This is the underlying object with id, value and extensions. The accessor "getVersionReference" gives direct access to the value
1624         */
1625        public StringType getVersionReferenceElement() { 
1626          if (this.versionReference == null)
1627            if (Configuration.errorOnAutoCreate())
1628              throw new Error("Attempt to auto-create ExampleScenarioInstanceContainedInstanceComponent.versionReference");
1629            else if (Configuration.doAutoCreate())
1630              this.versionReference = new StringType(); // bb
1631          return this.versionReference;
1632        }
1633
1634        public boolean hasVersionReferenceElement() { 
1635          return this.versionReference != null && !this.versionReference.isEmpty();
1636        }
1637
1638        public boolean hasVersionReference() { 
1639          return this.versionReference != null && !this.versionReference.isEmpty();
1640        }
1641
1642        /**
1643         * @param value {@link #versionReference} (A reference to the key of a specific version of an instance in this instance.). This is the underlying object with id, value and extensions. The accessor "getVersionReference" gives direct access to the value
1644         */
1645        public ExampleScenarioInstanceContainedInstanceComponent setVersionReferenceElement(StringType value) { 
1646          this.versionReference = value;
1647          return this;
1648        }
1649
1650        /**
1651         * @return A reference to the key of a specific version of an instance in this instance.
1652         */
1653        public String getVersionReference() { 
1654          return this.versionReference == null ? null : this.versionReference.getValue();
1655        }
1656
1657        /**
1658         * @param value A reference to the key of a specific version of an instance in this instance.
1659         */
1660        public ExampleScenarioInstanceContainedInstanceComponent setVersionReference(String value) { 
1661          if (Utilities.noString(value))
1662            this.versionReference = null;
1663          else {
1664            if (this.versionReference == null)
1665              this.versionReference = new StringType();
1666            this.versionReference.setValue(value);
1667          }
1668          return this;
1669        }
1670
1671        protected void listChildren(List<Property> children) {
1672          super.listChildren(children);
1673          children.add(new Property("instanceReference", "string", "A reference to the key of an instance found within this one.", 0, 1, instanceReference));
1674          children.add(new Property("versionReference", "string", "A reference to the key of a specific version of an instance in this instance.", 0, 1, versionReference));
1675        }
1676
1677        @Override
1678        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1679          switch (_hash) {
1680          case -1675877834: /*instanceReference*/  return new Property("instanceReference", "string", "A reference to the key of an instance found within this one.", 0, 1, instanceReference);
1681          case 357512531: /*versionReference*/  return new Property("versionReference", "string", "A reference to the key of a specific version of an instance in this instance.", 0, 1, versionReference);
1682          default: return super.getNamedProperty(_hash, _name, _checkValid);
1683          }
1684
1685        }
1686
1687      @Override
1688      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1689        switch (hash) {
1690        case -1675877834: /*instanceReference*/ return this.instanceReference == null ? new Base[0] : new Base[] {this.instanceReference}; // StringType
1691        case 357512531: /*versionReference*/ return this.versionReference == null ? new Base[0] : new Base[] {this.versionReference}; // StringType
1692        default: return super.getProperty(hash, name, checkValid);
1693        }
1694
1695      }
1696
1697      @Override
1698      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1699        switch (hash) {
1700        case -1675877834: // instanceReference
1701          this.instanceReference = TypeConvertor.castToString(value); // StringType
1702          return value;
1703        case 357512531: // versionReference
1704          this.versionReference = TypeConvertor.castToString(value); // StringType
1705          return value;
1706        default: return super.setProperty(hash, name, value);
1707        }
1708
1709      }
1710
1711      @Override
1712      public Base setProperty(String name, Base value) throws FHIRException {
1713        if (name.equals("instanceReference")) {
1714          this.instanceReference = TypeConvertor.castToString(value); // StringType
1715        } else if (name.equals("versionReference")) {
1716          this.versionReference = TypeConvertor.castToString(value); // StringType
1717        } else
1718          return super.setProperty(name, value);
1719        return value;
1720      }
1721
1722      @Override
1723      public Base makeProperty(int hash, String name) throws FHIRException {
1724        switch (hash) {
1725        case -1675877834:  return getInstanceReferenceElement();
1726        case 357512531:  return getVersionReferenceElement();
1727        default: return super.makeProperty(hash, name);
1728        }
1729
1730      }
1731
1732      @Override
1733      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1734        switch (hash) {
1735        case -1675877834: /*instanceReference*/ return new String[] {"string"};
1736        case 357512531: /*versionReference*/ return new String[] {"string"};
1737        default: return super.getTypesForProperty(hash, name);
1738        }
1739
1740      }
1741
1742      @Override
1743      public Base addChild(String name) throws FHIRException {
1744        if (name.equals("instanceReference")) {
1745          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.containedInstance.instanceReference");
1746        }
1747        else if (name.equals("versionReference")) {
1748          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.instance.containedInstance.versionReference");
1749        }
1750        else
1751          return super.addChild(name);
1752      }
1753
1754      public ExampleScenarioInstanceContainedInstanceComponent copy() {
1755        ExampleScenarioInstanceContainedInstanceComponent dst = new ExampleScenarioInstanceContainedInstanceComponent();
1756        copyValues(dst);
1757        return dst;
1758      }
1759
1760      public void copyValues(ExampleScenarioInstanceContainedInstanceComponent dst) {
1761        super.copyValues(dst);
1762        dst.instanceReference = instanceReference == null ? null : instanceReference.copy();
1763        dst.versionReference = versionReference == null ? null : versionReference.copy();
1764      }
1765
1766      @Override
1767      public boolean equalsDeep(Base other_) {
1768        if (!super.equalsDeep(other_))
1769          return false;
1770        if (!(other_ instanceof ExampleScenarioInstanceContainedInstanceComponent))
1771          return false;
1772        ExampleScenarioInstanceContainedInstanceComponent o = (ExampleScenarioInstanceContainedInstanceComponent) other_;
1773        return compareDeep(instanceReference, o.instanceReference, true) && compareDeep(versionReference, o.versionReference, true)
1774          ;
1775      }
1776
1777      @Override
1778      public boolean equalsShallow(Base other_) {
1779        if (!super.equalsShallow(other_))
1780          return false;
1781        if (!(other_ instanceof ExampleScenarioInstanceContainedInstanceComponent))
1782          return false;
1783        ExampleScenarioInstanceContainedInstanceComponent o = (ExampleScenarioInstanceContainedInstanceComponent) other_;
1784        return compareValues(instanceReference, o.instanceReference, true) && compareValues(versionReference, o.versionReference, true)
1785          ;
1786      }
1787
1788      public boolean isEmpty() {
1789        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(instanceReference, versionReference
1790          );
1791      }
1792
1793  public String fhirType() {
1794    return "ExampleScenario.instance.containedInstance";
1795
1796  }
1797
1798  }
1799
1800    @Block()
1801    public static class ExampleScenarioProcessComponent extends BackboneElement implements IBaseBackboneElement {
1802        /**
1803         * A short descriptive label the process to be used in tables or diagrams.
1804         */
1805        @Child(name = "title", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true)
1806        @Description(shortDefinition="Label for procss", formalDefinition="A short descriptive label the process to be used in tables or diagrams." )
1807        protected StringType title;
1808
1809        /**
1810         * An explanation of what the process represents and what it does.
1811         */
1812        @Child(name = "description", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1813        @Description(shortDefinition="Human-friendly description of the process", formalDefinition="An explanation of what the process represents and what it does." )
1814        protected MarkdownType description;
1815
1816        /**
1817         * Description of the initial state of the actors, environment and data before the process starts.
1818         */
1819        @Child(name = "preConditions", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false)
1820        @Description(shortDefinition="Status before process starts", formalDefinition="Description of the initial state of the actors, environment and data before the process starts." )
1821        protected MarkdownType preConditions;
1822
1823        /**
1824         * Description of the final state of the actors, environment and data after the process has been successfully completed.
1825         */
1826        @Child(name = "postConditions", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false)
1827        @Description(shortDefinition="Status after successful completion", formalDefinition="Description of the final state of the actors, environment and data after the process has been successfully completed." )
1828        protected MarkdownType postConditions;
1829
1830        /**
1831         * A significant action that occurs as part of the process.
1832         */
1833        @Child(name = "step", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1834        @Description(shortDefinition="Event within of the process", formalDefinition="A significant action that occurs as part of the process." )
1835        protected List<ExampleScenarioProcessStepComponent> step;
1836
1837        private static final long serialVersionUID = 325578043L;
1838
1839    /**
1840     * Constructor
1841     */
1842      public ExampleScenarioProcessComponent() {
1843        super();
1844      }
1845
1846    /**
1847     * Constructor
1848     */
1849      public ExampleScenarioProcessComponent(String title) {
1850        super();
1851        this.setTitle(title);
1852      }
1853
1854        /**
1855         * @return {@link #title} (A short descriptive label the process to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1856         */
1857        public StringType getTitleElement() { 
1858          if (this.title == null)
1859            if (Configuration.errorOnAutoCreate())
1860              throw new Error("Attempt to auto-create ExampleScenarioProcessComponent.title");
1861            else if (Configuration.doAutoCreate())
1862              this.title = new StringType(); // bb
1863          return this.title;
1864        }
1865
1866        public boolean hasTitleElement() { 
1867          return this.title != null && !this.title.isEmpty();
1868        }
1869
1870        public boolean hasTitle() { 
1871          return this.title != null && !this.title.isEmpty();
1872        }
1873
1874        /**
1875         * @param value {@link #title} (A short descriptive label the process to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1876         */
1877        public ExampleScenarioProcessComponent setTitleElement(StringType value) { 
1878          this.title = value;
1879          return this;
1880        }
1881
1882        /**
1883         * @return A short descriptive label the process to be used in tables or diagrams.
1884         */
1885        public String getTitle() { 
1886          return this.title == null ? null : this.title.getValue();
1887        }
1888
1889        /**
1890         * @param value A short descriptive label the process to be used in tables or diagrams.
1891         */
1892        public ExampleScenarioProcessComponent setTitle(String value) { 
1893            if (this.title == null)
1894              this.title = new StringType();
1895            this.title.setValue(value);
1896          return this;
1897        }
1898
1899        /**
1900         * @return {@link #description} (An explanation of what the process represents and what it does.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1901         */
1902        public MarkdownType getDescriptionElement() { 
1903          if (this.description == null)
1904            if (Configuration.errorOnAutoCreate())
1905              throw new Error("Attempt to auto-create ExampleScenarioProcessComponent.description");
1906            else if (Configuration.doAutoCreate())
1907              this.description = new MarkdownType(); // bb
1908          return this.description;
1909        }
1910
1911        public boolean hasDescriptionElement() { 
1912          return this.description != null && !this.description.isEmpty();
1913        }
1914
1915        public boolean hasDescription() { 
1916          return this.description != null && !this.description.isEmpty();
1917        }
1918
1919        /**
1920         * @param value {@link #description} (An explanation of what the process represents and what it does.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1921         */
1922        public ExampleScenarioProcessComponent setDescriptionElement(MarkdownType value) { 
1923          this.description = value;
1924          return this;
1925        }
1926
1927        /**
1928         * @return An explanation of what the process represents and what it does.
1929         */
1930        public String getDescription() { 
1931          return this.description == null ? null : this.description.getValue();
1932        }
1933
1934        /**
1935         * @param value An explanation of what the process represents and what it does.
1936         */
1937        public ExampleScenarioProcessComponent setDescription(String value) { 
1938          if (Utilities.noString(value))
1939            this.description = null;
1940          else {
1941            if (this.description == null)
1942              this.description = new MarkdownType();
1943            this.description.setValue(value);
1944          }
1945          return this;
1946        }
1947
1948        /**
1949         * @return {@link #preConditions} (Description of the initial state of the actors, environment and data before the process starts.). This is the underlying object with id, value and extensions. The accessor "getPreConditions" gives direct access to the value
1950         */
1951        public MarkdownType getPreConditionsElement() { 
1952          if (this.preConditions == null)
1953            if (Configuration.errorOnAutoCreate())
1954              throw new Error("Attempt to auto-create ExampleScenarioProcessComponent.preConditions");
1955            else if (Configuration.doAutoCreate())
1956              this.preConditions = new MarkdownType(); // bb
1957          return this.preConditions;
1958        }
1959
1960        public boolean hasPreConditionsElement() { 
1961          return this.preConditions != null && !this.preConditions.isEmpty();
1962        }
1963
1964        public boolean hasPreConditions() { 
1965          return this.preConditions != null && !this.preConditions.isEmpty();
1966        }
1967
1968        /**
1969         * @param value {@link #preConditions} (Description of the initial state of the actors, environment and data before the process starts.). This is the underlying object with id, value and extensions. The accessor "getPreConditions" gives direct access to the value
1970         */
1971        public ExampleScenarioProcessComponent setPreConditionsElement(MarkdownType value) { 
1972          this.preConditions = value;
1973          return this;
1974        }
1975
1976        /**
1977         * @return Description of the initial state of the actors, environment and data before the process starts.
1978         */
1979        public String getPreConditions() { 
1980          return this.preConditions == null ? null : this.preConditions.getValue();
1981        }
1982
1983        /**
1984         * @param value Description of the initial state of the actors, environment and data before the process starts.
1985         */
1986        public ExampleScenarioProcessComponent setPreConditions(String value) { 
1987          if (Utilities.noString(value))
1988            this.preConditions = null;
1989          else {
1990            if (this.preConditions == null)
1991              this.preConditions = new MarkdownType();
1992            this.preConditions.setValue(value);
1993          }
1994          return this;
1995        }
1996
1997        /**
1998         * @return {@link #postConditions} (Description of the final state of the actors, environment and data after the process has been successfully completed.). This is the underlying object with id, value and extensions. The accessor "getPostConditions" gives direct access to the value
1999         */
2000        public MarkdownType getPostConditionsElement() { 
2001          if (this.postConditions == null)
2002            if (Configuration.errorOnAutoCreate())
2003              throw new Error("Attempt to auto-create ExampleScenarioProcessComponent.postConditions");
2004            else if (Configuration.doAutoCreate())
2005              this.postConditions = new MarkdownType(); // bb
2006          return this.postConditions;
2007        }
2008
2009        public boolean hasPostConditionsElement() { 
2010          return this.postConditions != null && !this.postConditions.isEmpty();
2011        }
2012
2013        public boolean hasPostConditions() { 
2014          return this.postConditions != null && !this.postConditions.isEmpty();
2015        }
2016
2017        /**
2018         * @param value {@link #postConditions} (Description of the final state of the actors, environment and data after the process has been successfully completed.). This is the underlying object with id, value and extensions. The accessor "getPostConditions" gives direct access to the value
2019         */
2020        public ExampleScenarioProcessComponent setPostConditionsElement(MarkdownType value) { 
2021          this.postConditions = value;
2022          return this;
2023        }
2024
2025        /**
2026         * @return Description of the final state of the actors, environment and data after the process has been successfully completed.
2027         */
2028        public String getPostConditions() { 
2029          return this.postConditions == null ? null : this.postConditions.getValue();
2030        }
2031
2032        /**
2033         * @param value Description of the final state of the actors, environment and data after the process has been successfully completed.
2034         */
2035        public ExampleScenarioProcessComponent setPostConditions(String value) { 
2036          if (Utilities.noString(value))
2037            this.postConditions = null;
2038          else {
2039            if (this.postConditions == null)
2040              this.postConditions = new MarkdownType();
2041            this.postConditions.setValue(value);
2042          }
2043          return this;
2044        }
2045
2046        /**
2047         * @return {@link #step} (A significant action that occurs as part of the process.)
2048         */
2049        public List<ExampleScenarioProcessStepComponent> getStep() { 
2050          if (this.step == null)
2051            this.step = new ArrayList<ExampleScenarioProcessStepComponent>();
2052          return this.step;
2053        }
2054
2055        /**
2056         * @return Returns a reference to <code>this</code> for easy method chaining
2057         */
2058        public ExampleScenarioProcessComponent setStep(List<ExampleScenarioProcessStepComponent> theStep) { 
2059          this.step = theStep;
2060          return this;
2061        }
2062
2063        public boolean hasStep() { 
2064          if (this.step == null)
2065            return false;
2066          for (ExampleScenarioProcessStepComponent item : this.step)
2067            if (!item.isEmpty())
2068              return true;
2069          return false;
2070        }
2071
2072        public ExampleScenarioProcessStepComponent addStep() { //3
2073          ExampleScenarioProcessStepComponent t = new ExampleScenarioProcessStepComponent();
2074          if (this.step == null)
2075            this.step = new ArrayList<ExampleScenarioProcessStepComponent>();
2076          this.step.add(t);
2077          return t;
2078        }
2079
2080        public ExampleScenarioProcessComponent addStep(ExampleScenarioProcessStepComponent t) { //3
2081          if (t == null)
2082            return this;
2083          if (this.step == null)
2084            this.step = new ArrayList<ExampleScenarioProcessStepComponent>();
2085          this.step.add(t);
2086          return this;
2087        }
2088
2089        /**
2090         * @return The first repetition of repeating field {@link #step}, creating it if it does not already exist {3}
2091         */
2092        public ExampleScenarioProcessStepComponent getStepFirstRep() { 
2093          if (getStep().isEmpty()) {
2094            addStep();
2095          }
2096          return getStep().get(0);
2097        }
2098
2099        protected void listChildren(List<Property> children) {
2100          super.listChildren(children);
2101          children.add(new Property("title", "string", "A short descriptive label the process to be used in tables or diagrams.", 0, 1, title));
2102          children.add(new Property("description", "markdown", "An explanation of what the process represents and what it does.", 0, 1, description));
2103          children.add(new Property("preConditions", "markdown", "Description of the initial state of the actors, environment and data before the process starts.", 0, 1, preConditions));
2104          children.add(new Property("postConditions", "markdown", "Description of the final state of the actors, environment and data after the process has been successfully completed.", 0, 1, postConditions));
2105          children.add(new Property("step", "", "A significant action that occurs as part of the process.", 0, java.lang.Integer.MAX_VALUE, step));
2106        }
2107
2108        @Override
2109        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2110          switch (_hash) {
2111          case 110371416: /*title*/  return new Property("title", "string", "A short descriptive label the process to be used in tables or diagrams.", 0, 1, title);
2112          case -1724546052: /*description*/  return new Property("description", "markdown", "An explanation of what the process represents and what it does.", 0, 1, description);
2113          case -1006692933: /*preConditions*/  return new Property("preConditions", "markdown", "Description of the initial state of the actors, environment and data before the process starts.", 0, 1, preConditions);
2114          case 1738302328: /*postConditions*/  return new Property("postConditions", "markdown", "Description of the final state of the actors, environment and data after the process has been successfully completed.", 0, 1, postConditions);
2115          case 3540684: /*step*/  return new Property("step", "", "A significant action that occurs as part of the process.", 0, java.lang.Integer.MAX_VALUE, step);
2116          default: return super.getNamedProperty(_hash, _name, _checkValid);
2117          }
2118
2119        }
2120
2121      @Override
2122      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2123        switch (hash) {
2124        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
2125        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
2126        case -1006692933: /*preConditions*/ return this.preConditions == null ? new Base[0] : new Base[] {this.preConditions}; // MarkdownType
2127        case 1738302328: /*postConditions*/ return this.postConditions == null ? new Base[0] : new Base[] {this.postConditions}; // MarkdownType
2128        case 3540684: /*step*/ return this.step == null ? new Base[0] : this.step.toArray(new Base[this.step.size()]); // ExampleScenarioProcessStepComponent
2129        default: return super.getProperty(hash, name, checkValid);
2130        }
2131
2132      }
2133
2134      @Override
2135      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2136        switch (hash) {
2137        case 110371416: // title
2138          this.title = TypeConvertor.castToString(value); // StringType
2139          return value;
2140        case -1724546052: // description
2141          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2142          return value;
2143        case -1006692933: // preConditions
2144          this.preConditions = TypeConvertor.castToMarkdown(value); // MarkdownType
2145          return value;
2146        case 1738302328: // postConditions
2147          this.postConditions = TypeConvertor.castToMarkdown(value); // MarkdownType
2148          return value;
2149        case 3540684: // step
2150          this.getStep().add((ExampleScenarioProcessStepComponent) value); // ExampleScenarioProcessStepComponent
2151          return value;
2152        default: return super.setProperty(hash, name, value);
2153        }
2154
2155      }
2156
2157      @Override
2158      public Base setProperty(String name, Base value) throws FHIRException {
2159        if (name.equals("title")) {
2160          this.title = TypeConvertor.castToString(value); // StringType
2161        } else if (name.equals("description")) {
2162          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2163        } else if (name.equals("preConditions")) {
2164          this.preConditions = TypeConvertor.castToMarkdown(value); // MarkdownType
2165        } else if (name.equals("postConditions")) {
2166          this.postConditions = TypeConvertor.castToMarkdown(value); // MarkdownType
2167        } else if (name.equals("step")) {
2168          this.getStep().add((ExampleScenarioProcessStepComponent) value);
2169        } else
2170          return super.setProperty(name, value);
2171        return value;
2172      }
2173
2174      @Override
2175      public Base makeProperty(int hash, String name) throws FHIRException {
2176        switch (hash) {
2177        case 110371416:  return getTitleElement();
2178        case -1724546052:  return getDescriptionElement();
2179        case -1006692933:  return getPreConditionsElement();
2180        case 1738302328:  return getPostConditionsElement();
2181        case 3540684:  return addStep(); 
2182        default: return super.makeProperty(hash, name);
2183        }
2184
2185      }
2186
2187      @Override
2188      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2189        switch (hash) {
2190        case 110371416: /*title*/ return new String[] {"string"};
2191        case -1724546052: /*description*/ return new String[] {"markdown"};
2192        case -1006692933: /*preConditions*/ return new String[] {"markdown"};
2193        case 1738302328: /*postConditions*/ return new String[] {"markdown"};
2194        case 3540684: /*step*/ return new String[] {};
2195        default: return super.getTypesForProperty(hash, name);
2196        }
2197
2198      }
2199
2200      @Override
2201      public Base addChild(String name) throws FHIRException {
2202        if (name.equals("title")) {
2203          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.title");
2204        }
2205        else if (name.equals("description")) {
2206          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.description");
2207        }
2208        else if (name.equals("preConditions")) {
2209          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.preConditions");
2210        }
2211        else if (name.equals("postConditions")) {
2212          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.postConditions");
2213        }
2214        else if (name.equals("step")) {
2215          return addStep();
2216        }
2217        else
2218          return super.addChild(name);
2219      }
2220
2221      public ExampleScenarioProcessComponent copy() {
2222        ExampleScenarioProcessComponent dst = new ExampleScenarioProcessComponent();
2223        copyValues(dst);
2224        return dst;
2225      }
2226
2227      public void copyValues(ExampleScenarioProcessComponent dst) {
2228        super.copyValues(dst);
2229        dst.title = title == null ? null : title.copy();
2230        dst.description = description == null ? null : description.copy();
2231        dst.preConditions = preConditions == null ? null : preConditions.copy();
2232        dst.postConditions = postConditions == null ? null : postConditions.copy();
2233        if (step != null) {
2234          dst.step = new ArrayList<ExampleScenarioProcessStepComponent>();
2235          for (ExampleScenarioProcessStepComponent i : step)
2236            dst.step.add(i.copy());
2237        };
2238      }
2239
2240      @Override
2241      public boolean equalsDeep(Base other_) {
2242        if (!super.equalsDeep(other_))
2243          return false;
2244        if (!(other_ instanceof ExampleScenarioProcessComponent))
2245          return false;
2246        ExampleScenarioProcessComponent o = (ExampleScenarioProcessComponent) other_;
2247        return compareDeep(title, o.title, true) && compareDeep(description, o.description, true) && compareDeep(preConditions, o.preConditions, true)
2248           && compareDeep(postConditions, o.postConditions, true) && compareDeep(step, o.step, true);
2249      }
2250
2251      @Override
2252      public boolean equalsShallow(Base other_) {
2253        if (!super.equalsShallow(other_))
2254          return false;
2255        if (!(other_ instanceof ExampleScenarioProcessComponent))
2256          return false;
2257        ExampleScenarioProcessComponent o = (ExampleScenarioProcessComponent) other_;
2258        return compareValues(title, o.title, true) && compareValues(description, o.description, true) && compareValues(preConditions, o.preConditions, true)
2259           && compareValues(postConditions, o.postConditions, true);
2260      }
2261
2262      public boolean isEmpty() {
2263        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(title, description, preConditions
2264          , postConditions, step);
2265      }
2266
2267  public String fhirType() {
2268    return "ExampleScenario.process";
2269
2270  }
2271
2272  }
2273
2274    @Block()
2275    public static class ExampleScenarioProcessStepComponent extends BackboneElement implements IBaseBackboneElement {
2276        /**
2277         * The sequential number of the step, e.g. 1.2.5.
2278         */
2279        @Child(name = "number", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
2280        @Description(shortDefinition="Sequential number of the step", formalDefinition="The sequential number of the step, e.g. 1.2.5." )
2281        protected StringType number;
2282
2283        /**
2284         * Indicates that the step is a complex sub-process with its own steps.
2285         */
2286        @Child(name = "process", type = {ExampleScenarioProcessComponent.class}, order=2, min=0, max=1, modifier=false, summary=false)
2287        @Description(shortDefinition="Step is nested process", formalDefinition="Indicates that the step is a complex sub-process with its own steps." )
2288        protected ExampleScenarioProcessComponent process;
2289
2290        /**
2291         * Indicates that the step is defined by a seaparate scenario instance.
2292         */
2293        @Child(name = "workflow", type = {CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
2294        @Description(shortDefinition="Step is nested workflow", formalDefinition="Indicates that the step is defined by a seaparate scenario instance." )
2295        protected CanonicalType workflow;
2296
2297        /**
2298         * The step represents a single operation invoked on receiver by sender.
2299         */
2300        @Child(name = "operation", type = {}, order=4, min=0, max=1, modifier=false, summary=false)
2301        @Description(shortDefinition="Step is simple action", formalDefinition="The step represents a single operation invoked on receiver by sender." )
2302        protected ExampleScenarioProcessStepOperationComponent operation;
2303
2304        /**
2305         * Indicates an alternative step that can be taken instead of the sub-process, scenario or operation.  E.g. to represent non-happy-path/exceptional/atypical circumstances.
2306         */
2307        @Child(name = "alternative", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2308        @Description(shortDefinition="Alternate non-typical step action", formalDefinition="Indicates an alternative step that can be taken instead of the sub-process, scenario or operation.  E.g. to represent non-happy-path/exceptional/atypical circumstances." )
2309        protected List<ExampleScenarioProcessStepAlternativeComponent> alternative;
2310
2311        /**
2312         * If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).
2313         */
2314        @Child(name = "pause", type = {BooleanType.class}, order=6, min=0, max=1, modifier=false, summary=false)
2315        @Description(shortDefinition="Pause in the flow?", formalDefinition="If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event)." )
2316        protected BooleanType pause;
2317
2318        private static final long serialVersionUID = 674607242L;
2319
2320    /**
2321     * Constructor
2322     */
2323      public ExampleScenarioProcessStepComponent() {
2324        super();
2325      }
2326
2327        /**
2328         * @return {@link #number} (The sequential number of the step, e.g. 1.2.5.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value
2329         */
2330        public StringType getNumberElement() { 
2331          if (this.number == null)
2332            if (Configuration.errorOnAutoCreate())
2333              throw new Error("Attempt to auto-create ExampleScenarioProcessStepComponent.number");
2334            else if (Configuration.doAutoCreate())
2335              this.number = new StringType(); // bb
2336          return this.number;
2337        }
2338
2339        public boolean hasNumberElement() { 
2340          return this.number != null && !this.number.isEmpty();
2341        }
2342
2343        public boolean hasNumber() { 
2344          return this.number != null && !this.number.isEmpty();
2345        }
2346
2347        /**
2348         * @param value {@link #number} (The sequential number of the step, e.g. 1.2.5.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value
2349         */
2350        public ExampleScenarioProcessStepComponent setNumberElement(StringType value) { 
2351          this.number = value;
2352          return this;
2353        }
2354
2355        /**
2356         * @return The sequential number of the step, e.g. 1.2.5.
2357         */
2358        public String getNumber() { 
2359          return this.number == null ? null : this.number.getValue();
2360        }
2361
2362        /**
2363         * @param value The sequential number of the step, e.g. 1.2.5.
2364         */
2365        public ExampleScenarioProcessStepComponent setNumber(String value) { 
2366          if (Utilities.noString(value))
2367            this.number = null;
2368          else {
2369            if (this.number == null)
2370              this.number = new StringType();
2371            this.number.setValue(value);
2372          }
2373          return this;
2374        }
2375
2376        /**
2377         * @return {@link #process} (Indicates that the step is a complex sub-process with its own steps.)
2378         */
2379        public ExampleScenarioProcessComponent getProcess() { 
2380          if (this.process == null)
2381            if (Configuration.errorOnAutoCreate())
2382              throw new Error("Attempt to auto-create ExampleScenarioProcessStepComponent.process");
2383            else if (Configuration.doAutoCreate())
2384              this.process = new ExampleScenarioProcessComponent(); // cc
2385          return this.process;
2386        }
2387
2388        public boolean hasProcess() { 
2389          return this.process != null && !this.process.isEmpty();
2390        }
2391
2392        /**
2393         * @param value {@link #process} (Indicates that the step is a complex sub-process with its own steps.)
2394         */
2395        public ExampleScenarioProcessStepComponent setProcess(ExampleScenarioProcessComponent value) { 
2396          this.process = value;
2397          return this;
2398        }
2399
2400        /**
2401         * @return {@link #workflow} (Indicates that the step is defined by a seaparate scenario instance.). This is the underlying object with id, value and extensions. The accessor "getWorkflow" gives direct access to the value
2402         */
2403        public CanonicalType getWorkflowElement() { 
2404          if (this.workflow == null)
2405            if (Configuration.errorOnAutoCreate())
2406              throw new Error("Attempt to auto-create ExampleScenarioProcessStepComponent.workflow");
2407            else if (Configuration.doAutoCreate())
2408              this.workflow = new CanonicalType(); // bb
2409          return this.workflow;
2410        }
2411
2412        public boolean hasWorkflowElement() { 
2413          return this.workflow != null && !this.workflow.isEmpty();
2414        }
2415
2416        public boolean hasWorkflow() { 
2417          return this.workflow != null && !this.workflow.isEmpty();
2418        }
2419
2420        /**
2421         * @param value {@link #workflow} (Indicates that the step is defined by a seaparate scenario instance.). This is the underlying object with id, value and extensions. The accessor "getWorkflow" gives direct access to the value
2422         */
2423        public ExampleScenarioProcessStepComponent setWorkflowElement(CanonicalType value) { 
2424          this.workflow = value;
2425          return this;
2426        }
2427
2428        /**
2429         * @return Indicates that the step is defined by a seaparate scenario instance.
2430         */
2431        public String getWorkflow() { 
2432          return this.workflow == null ? null : this.workflow.getValue();
2433        }
2434
2435        /**
2436         * @param value Indicates that the step is defined by a seaparate scenario instance.
2437         */
2438        public ExampleScenarioProcessStepComponent setWorkflow(String value) { 
2439          if (Utilities.noString(value))
2440            this.workflow = null;
2441          else {
2442            if (this.workflow == null)
2443              this.workflow = new CanonicalType();
2444            this.workflow.setValue(value);
2445          }
2446          return this;
2447        }
2448
2449        /**
2450         * @return {@link #operation} (The step represents a single operation invoked on receiver by sender.)
2451         */
2452        public ExampleScenarioProcessStepOperationComponent getOperation() { 
2453          if (this.operation == null)
2454            if (Configuration.errorOnAutoCreate())
2455              throw new Error("Attempt to auto-create ExampleScenarioProcessStepComponent.operation");
2456            else if (Configuration.doAutoCreate())
2457              this.operation = new ExampleScenarioProcessStepOperationComponent(); // cc
2458          return this.operation;
2459        }
2460
2461        public boolean hasOperation() { 
2462          return this.operation != null && !this.operation.isEmpty();
2463        }
2464
2465        /**
2466         * @param value {@link #operation} (The step represents a single operation invoked on receiver by sender.)
2467         */
2468        public ExampleScenarioProcessStepComponent setOperation(ExampleScenarioProcessStepOperationComponent value) { 
2469          this.operation = value;
2470          return this;
2471        }
2472
2473        /**
2474         * @return {@link #alternative} (Indicates an alternative step that can be taken instead of the sub-process, scenario or operation.  E.g. to represent non-happy-path/exceptional/atypical circumstances.)
2475         */
2476        public List<ExampleScenarioProcessStepAlternativeComponent> getAlternative() { 
2477          if (this.alternative == null)
2478            this.alternative = new ArrayList<ExampleScenarioProcessStepAlternativeComponent>();
2479          return this.alternative;
2480        }
2481
2482        /**
2483         * @return Returns a reference to <code>this</code> for easy method chaining
2484         */
2485        public ExampleScenarioProcessStepComponent setAlternative(List<ExampleScenarioProcessStepAlternativeComponent> theAlternative) { 
2486          this.alternative = theAlternative;
2487          return this;
2488        }
2489
2490        public boolean hasAlternative() { 
2491          if (this.alternative == null)
2492            return false;
2493          for (ExampleScenarioProcessStepAlternativeComponent item : this.alternative)
2494            if (!item.isEmpty())
2495              return true;
2496          return false;
2497        }
2498
2499        public ExampleScenarioProcessStepAlternativeComponent addAlternative() { //3
2500          ExampleScenarioProcessStepAlternativeComponent t = new ExampleScenarioProcessStepAlternativeComponent();
2501          if (this.alternative == null)
2502            this.alternative = new ArrayList<ExampleScenarioProcessStepAlternativeComponent>();
2503          this.alternative.add(t);
2504          return t;
2505        }
2506
2507        public ExampleScenarioProcessStepComponent addAlternative(ExampleScenarioProcessStepAlternativeComponent t) { //3
2508          if (t == null)
2509            return this;
2510          if (this.alternative == null)
2511            this.alternative = new ArrayList<ExampleScenarioProcessStepAlternativeComponent>();
2512          this.alternative.add(t);
2513          return this;
2514        }
2515
2516        /**
2517         * @return The first repetition of repeating field {@link #alternative}, creating it if it does not already exist {3}
2518         */
2519        public ExampleScenarioProcessStepAlternativeComponent getAlternativeFirstRep() { 
2520          if (getAlternative().isEmpty()) {
2521            addAlternative();
2522          }
2523          return getAlternative().get(0);
2524        }
2525
2526        /**
2527         * @return {@link #pause} (If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).). This is the underlying object with id, value and extensions. The accessor "getPause" gives direct access to the value
2528         */
2529        public BooleanType getPauseElement() { 
2530          if (this.pause == null)
2531            if (Configuration.errorOnAutoCreate())
2532              throw new Error("Attempt to auto-create ExampleScenarioProcessStepComponent.pause");
2533            else if (Configuration.doAutoCreate())
2534              this.pause = new BooleanType(); // bb
2535          return this.pause;
2536        }
2537
2538        public boolean hasPauseElement() { 
2539          return this.pause != null && !this.pause.isEmpty();
2540        }
2541
2542        public boolean hasPause() { 
2543          return this.pause != null && !this.pause.isEmpty();
2544        }
2545
2546        /**
2547         * @param value {@link #pause} (If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).). This is the underlying object with id, value and extensions. The accessor "getPause" gives direct access to the value
2548         */
2549        public ExampleScenarioProcessStepComponent setPauseElement(BooleanType value) { 
2550          this.pause = value;
2551          return this;
2552        }
2553
2554        /**
2555         * @return If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).
2556         */
2557        public boolean getPause() { 
2558          return this.pause == null || this.pause.isEmpty() ? false : this.pause.getValue();
2559        }
2560
2561        /**
2562         * @param value If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).
2563         */
2564        public ExampleScenarioProcessStepComponent setPause(boolean value) { 
2565            if (this.pause == null)
2566              this.pause = new BooleanType();
2567            this.pause.setValue(value);
2568          return this;
2569        }
2570
2571        protected void listChildren(List<Property> children) {
2572          super.listChildren(children);
2573          children.add(new Property("number", "string", "The sequential number of the step, e.g. 1.2.5.", 0, 1, number));
2574          children.add(new Property("process", "@ExampleScenario.process", "Indicates that the step is a complex sub-process with its own steps.", 0, 1, process));
2575          children.add(new Property("workflow", "canonical(ExampleScenario)", "Indicates that the step is defined by a seaparate scenario instance.", 0, 1, workflow));
2576          children.add(new Property("operation", "", "The step represents a single operation invoked on receiver by sender.", 0, 1, operation));
2577          children.add(new Property("alternative", "", "Indicates an alternative step that can be taken instead of the sub-process, scenario or operation.  E.g. to represent non-happy-path/exceptional/atypical circumstances.", 0, java.lang.Integer.MAX_VALUE, alternative));
2578          children.add(new Property("pause", "boolean", "If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).", 0, 1, pause));
2579        }
2580
2581        @Override
2582        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2583          switch (_hash) {
2584          case -1034364087: /*number*/  return new Property("number", "string", "The sequential number of the step, e.g. 1.2.5.", 0, 1, number);
2585          case -309518737: /*process*/  return new Property("process", "@ExampleScenario.process", "Indicates that the step is a complex sub-process with its own steps.", 0, 1, process);
2586          case 35379135: /*workflow*/  return new Property("workflow", "canonical(ExampleScenario)", "Indicates that the step is defined by a seaparate scenario instance.", 0, 1, workflow);
2587          case 1662702951: /*operation*/  return new Property("operation", "", "The step represents a single operation invoked on receiver by sender.", 0, 1, operation);
2588          case -196794451: /*alternative*/  return new Property("alternative", "", "Indicates an alternative step that can be taken instead of the sub-process, scenario or operation.  E.g. to represent non-happy-path/exceptional/atypical circumstances.", 0, java.lang.Integer.MAX_VALUE, alternative);
2589          case 106440182: /*pause*/  return new Property("pause", "boolean", "If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).", 0, 1, pause);
2590          default: return super.getNamedProperty(_hash, _name, _checkValid);
2591          }
2592
2593        }
2594
2595      @Override
2596      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2597        switch (hash) {
2598        case -1034364087: /*number*/ return this.number == null ? new Base[0] : new Base[] {this.number}; // StringType
2599        case -309518737: /*process*/ return this.process == null ? new Base[0] : new Base[] {this.process}; // ExampleScenarioProcessComponent
2600        case 35379135: /*workflow*/ return this.workflow == null ? new Base[0] : new Base[] {this.workflow}; // CanonicalType
2601        case 1662702951: /*operation*/ return this.operation == null ? new Base[0] : new Base[] {this.operation}; // ExampleScenarioProcessStepOperationComponent
2602        case -196794451: /*alternative*/ return this.alternative == null ? new Base[0] : this.alternative.toArray(new Base[this.alternative.size()]); // ExampleScenarioProcessStepAlternativeComponent
2603        case 106440182: /*pause*/ return this.pause == null ? new Base[0] : new Base[] {this.pause}; // BooleanType
2604        default: return super.getProperty(hash, name, checkValid);
2605        }
2606
2607      }
2608
2609      @Override
2610      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2611        switch (hash) {
2612        case -1034364087: // number
2613          this.number = TypeConvertor.castToString(value); // StringType
2614          return value;
2615        case -309518737: // process
2616          this.process = (ExampleScenarioProcessComponent) value; // ExampleScenarioProcessComponent
2617          return value;
2618        case 35379135: // workflow
2619          this.workflow = TypeConvertor.castToCanonical(value); // CanonicalType
2620          return value;
2621        case 1662702951: // operation
2622          this.operation = (ExampleScenarioProcessStepOperationComponent) value; // ExampleScenarioProcessStepOperationComponent
2623          return value;
2624        case -196794451: // alternative
2625          this.getAlternative().add((ExampleScenarioProcessStepAlternativeComponent) value); // ExampleScenarioProcessStepAlternativeComponent
2626          return value;
2627        case 106440182: // pause
2628          this.pause = TypeConvertor.castToBoolean(value); // BooleanType
2629          return value;
2630        default: return super.setProperty(hash, name, value);
2631        }
2632
2633      }
2634
2635      @Override
2636      public Base setProperty(String name, Base value) throws FHIRException {
2637        if (name.equals("number")) {
2638          this.number = TypeConvertor.castToString(value); // StringType
2639        } else if (name.equals("process")) {
2640          this.process = (ExampleScenarioProcessComponent) value; // ExampleScenarioProcessComponent
2641        } else if (name.equals("workflow")) {
2642          this.workflow = TypeConvertor.castToCanonical(value); // CanonicalType
2643        } else if (name.equals("operation")) {
2644          this.operation = (ExampleScenarioProcessStepOperationComponent) value; // ExampleScenarioProcessStepOperationComponent
2645        } else if (name.equals("alternative")) {
2646          this.getAlternative().add((ExampleScenarioProcessStepAlternativeComponent) value);
2647        } else if (name.equals("pause")) {
2648          this.pause = TypeConvertor.castToBoolean(value); // BooleanType
2649        } else
2650          return super.setProperty(name, value);
2651        return value;
2652      }
2653
2654      @Override
2655      public Base makeProperty(int hash, String name) throws FHIRException {
2656        switch (hash) {
2657        case -1034364087:  return getNumberElement();
2658        case -309518737:  return getProcess();
2659        case 35379135:  return getWorkflowElement();
2660        case 1662702951:  return getOperation();
2661        case -196794451:  return addAlternative(); 
2662        case 106440182:  return getPauseElement();
2663        default: return super.makeProperty(hash, name);
2664        }
2665
2666      }
2667
2668      @Override
2669      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2670        switch (hash) {
2671        case -1034364087: /*number*/ return new String[] {"string"};
2672        case -309518737: /*process*/ return new String[] {"@ExampleScenario.process"};
2673        case 35379135: /*workflow*/ return new String[] {"canonical"};
2674        case 1662702951: /*operation*/ return new String[] {};
2675        case -196794451: /*alternative*/ return new String[] {};
2676        case 106440182: /*pause*/ return new String[] {"boolean"};
2677        default: return super.getTypesForProperty(hash, name);
2678        }
2679
2680      }
2681
2682      @Override
2683      public Base addChild(String name) throws FHIRException {
2684        if (name.equals("number")) {
2685          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.number");
2686        }
2687        else if (name.equals("process")) {
2688          this.process = new ExampleScenarioProcessComponent();
2689          return this.process;
2690        }
2691        else if (name.equals("workflow")) {
2692          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.workflow");
2693        }
2694        else if (name.equals("operation")) {
2695          this.operation = new ExampleScenarioProcessStepOperationComponent();
2696          return this.operation;
2697        }
2698        else if (name.equals("alternative")) {
2699          return addAlternative();
2700        }
2701        else if (name.equals("pause")) {
2702          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.pause");
2703        }
2704        else
2705          return super.addChild(name);
2706      }
2707
2708      public ExampleScenarioProcessStepComponent copy() {
2709        ExampleScenarioProcessStepComponent dst = new ExampleScenarioProcessStepComponent();
2710        copyValues(dst);
2711        return dst;
2712      }
2713
2714      public void copyValues(ExampleScenarioProcessStepComponent dst) {
2715        super.copyValues(dst);
2716        dst.number = number == null ? null : number.copy();
2717        dst.process = process == null ? null : process.copy();
2718        dst.workflow = workflow == null ? null : workflow.copy();
2719        dst.operation = operation == null ? null : operation.copy();
2720        if (alternative != null) {
2721          dst.alternative = new ArrayList<ExampleScenarioProcessStepAlternativeComponent>();
2722          for (ExampleScenarioProcessStepAlternativeComponent i : alternative)
2723            dst.alternative.add(i.copy());
2724        };
2725        dst.pause = pause == null ? null : pause.copy();
2726      }
2727
2728      @Override
2729      public boolean equalsDeep(Base other_) {
2730        if (!super.equalsDeep(other_))
2731          return false;
2732        if (!(other_ instanceof ExampleScenarioProcessStepComponent))
2733          return false;
2734        ExampleScenarioProcessStepComponent o = (ExampleScenarioProcessStepComponent) other_;
2735        return compareDeep(number, o.number, true) && compareDeep(process, o.process, true) && compareDeep(workflow, o.workflow, true)
2736           && compareDeep(operation, o.operation, true) && compareDeep(alternative, o.alternative, true) && compareDeep(pause, o.pause, true)
2737          ;
2738      }
2739
2740      @Override
2741      public boolean equalsShallow(Base other_) {
2742        if (!super.equalsShallow(other_))
2743          return false;
2744        if (!(other_ instanceof ExampleScenarioProcessStepComponent))
2745          return false;
2746        ExampleScenarioProcessStepComponent o = (ExampleScenarioProcessStepComponent) other_;
2747        return compareValues(number, o.number, true) && compareValues(workflow, o.workflow, true) && compareValues(pause, o.pause, true)
2748          ;
2749      }
2750
2751      public boolean isEmpty() {
2752        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(number, process, workflow
2753          , operation, alternative, pause);
2754      }
2755
2756  public String fhirType() {
2757    return "ExampleScenario.process.step";
2758
2759  }
2760
2761  }
2762
2763    @Block()
2764    public static class ExampleScenarioProcessStepOperationComponent extends BackboneElement implements IBaseBackboneElement {
2765        /**
2766         * The standardized type of action (FHIR or otherwise).
2767         */
2768        @Child(name = "type", type = {Coding.class}, order=1, min=0, max=1, modifier=false, summary=false)
2769        @Description(shortDefinition="Kind of action", formalDefinition="The standardized type of action (FHIR or otherwise)." )
2770        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/testscript-operation-codes")
2771        protected Coding type;
2772
2773        /**
2774         * A short descriptive label the step to be used in tables or diagrams.
2775         */
2776        @Child(name = "title", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
2777        @Description(shortDefinition="Label for step", formalDefinition="A short descriptive label the step to be used in tables or diagrams." )
2778        protected StringType title;
2779
2780        /**
2781         * The system that invokes the action/transmits the data.
2782         */
2783        @Child(name = "initiator", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
2784        @Description(shortDefinition="Who starts the operation", formalDefinition="The system that invokes the action/transmits the data." )
2785        protected StringType initiator;
2786
2787        /**
2788         * The system on which the action is invoked/receives the data.
2789         */
2790        @Child(name = "receiver", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
2791        @Description(shortDefinition="Who receives the operation", formalDefinition="The system on which the action is invoked/receives the data." )
2792        protected StringType receiver;
2793
2794        /**
2795         * An explanation of what the operation represents and what it does.
2796         */
2797        @Child(name = "description", type = {MarkdownType.class}, order=5, min=0, max=1, modifier=false, summary=false)
2798        @Description(shortDefinition="Human-friendly description of the operation", formalDefinition="An explanation of what the operation represents and what it does." )
2799        protected MarkdownType description;
2800
2801        /**
2802         * If false, the initiator is deactivated right after the operation.
2803         */
2804        @Child(name = "initiatorActive", type = {BooleanType.class}, order=6, min=0, max=1, modifier=false, summary=false)
2805        @Description(shortDefinition="Initiator stays active?", formalDefinition="If false, the initiator is deactivated right after the operation." )
2806        protected BooleanType initiatorActive;
2807
2808        /**
2809         * If false, the receiver is deactivated right after the operation.
2810         */
2811        @Child(name = "receiverActive", type = {BooleanType.class}, order=7, min=0, max=1, modifier=false, summary=false)
2812        @Description(shortDefinition="Receiver stays active?", formalDefinition="If false, the receiver is deactivated right after the operation." )
2813        protected BooleanType receiverActive;
2814
2815        /**
2816         * A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.
2817         */
2818        @Child(name = "request", type = {ExampleScenarioInstanceContainedInstanceComponent.class}, order=8, min=0, max=1, modifier=false, summary=false)
2819        @Description(shortDefinition="Instance transmitted on invocation", formalDefinition="A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation." )
2820        protected ExampleScenarioInstanceContainedInstanceComponent request;
2821
2822        /**
2823         * A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).
2824         */
2825        @Child(name = "response", type = {ExampleScenarioInstanceContainedInstanceComponent.class}, order=9, min=0, max=1, modifier=false, summary=false)
2826        @Description(shortDefinition="Instance transmitted on invocation response", formalDefinition="A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any)." )
2827        protected ExampleScenarioInstanceContainedInstanceComponent response;
2828
2829        private static final long serialVersionUID = -252586646L;
2830
2831    /**
2832     * Constructor
2833     */
2834      public ExampleScenarioProcessStepOperationComponent() {
2835        super();
2836      }
2837
2838    /**
2839     * Constructor
2840     */
2841      public ExampleScenarioProcessStepOperationComponent(String title) {
2842        super();
2843        this.setTitle(title);
2844      }
2845
2846        /**
2847         * @return {@link #type} (The standardized type of action (FHIR or otherwise).)
2848         */
2849        public Coding getType() { 
2850          if (this.type == null)
2851            if (Configuration.errorOnAutoCreate())
2852              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.type");
2853            else if (Configuration.doAutoCreate())
2854              this.type = new Coding(); // cc
2855          return this.type;
2856        }
2857
2858        public boolean hasType() { 
2859          return this.type != null && !this.type.isEmpty();
2860        }
2861
2862        /**
2863         * @param value {@link #type} (The standardized type of action (FHIR or otherwise).)
2864         */
2865        public ExampleScenarioProcessStepOperationComponent setType(Coding value) { 
2866          this.type = value;
2867          return this;
2868        }
2869
2870        /**
2871         * @return {@link #title} (A short descriptive label the step to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
2872         */
2873        public StringType getTitleElement() { 
2874          if (this.title == null)
2875            if (Configuration.errorOnAutoCreate())
2876              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.title");
2877            else if (Configuration.doAutoCreate())
2878              this.title = new StringType(); // bb
2879          return this.title;
2880        }
2881
2882        public boolean hasTitleElement() { 
2883          return this.title != null && !this.title.isEmpty();
2884        }
2885
2886        public boolean hasTitle() { 
2887          return this.title != null && !this.title.isEmpty();
2888        }
2889
2890        /**
2891         * @param value {@link #title} (A short descriptive label the step to be used in tables or diagrams.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
2892         */
2893        public ExampleScenarioProcessStepOperationComponent setTitleElement(StringType value) { 
2894          this.title = value;
2895          return this;
2896        }
2897
2898        /**
2899         * @return A short descriptive label the step to be used in tables or diagrams.
2900         */
2901        public String getTitle() { 
2902          return this.title == null ? null : this.title.getValue();
2903        }
2904
2905        /**
2906         * @param value A short descriptive label the step to be used in tables or diagrams.
2907         */
2908        public ExampleScenarioProcessStepOperationComponent setTitle(String value) { 
2909            if (this.title == null)
2910              this.title = new StringType();
2911            this.title.setValue(value);
2912          return this;
2913        }
2914
2915        /**
2916         * @return {@link #initiator} (The system that invokes the action/transmits the data.). This is the underlying object with id, value and extensions. The accessor "getInitiator" gives direct access to the value
2917         */
2918        public StringType getInitiatorElement() { 
2919          if (this.initiator == null)
2920            if (Configuration.errorOnAutoCreate())
2921              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.initiator");
2922            else if (Configuration.doAutoCreate())
2923              this.initiator = new StringType(); // bb
2924          return this.initiator;
2925        }
2926
2927        public boolean hasInitiatorElement() { 
2928          return this.initiator != null && !this.initiator.isEmpty();
2929        }
2930
2931        public boolean hasInitiator() { 
2932          return this.initiator != null && !this.initiator.isEmpty();
2933        }
2934
2935        /**
2936         * @param value {@link #initiator} (The system that invokes the action/transmits the data.). This is the underlying object with id, value and extensions. The accessor "getInitiator" gives direct access to the value
2937         */
2938        public ExampleScenarioProcessStepOperationComponent setInitiatorElement(StringType value) { 
2939          this.initiator = value;
2940          return this;
2941        }
2942
2943        /**
2944         * @return The system that invokes the action/transmits the data.
2945         */
2946        public String getInitiator() { 
2947          return this.initiator == null ? null : this.initiator.getValue();
2948        }
2949
2950        /**
2951         * @param value The system that invokes the action/transmits the data.
2952         */
2953        public ExampleScenarioProcessStepOperationComponent setInitiator(String value) { 
2954          if (Utilities.noString(value))
2955            this.initiator = null;
2956          else {
2957            if (this.initiator == null)
2958              this.initiator = new StringType();
2959            this.initiator.setValue(value);
2960          }
2961          return this;
2962        }
2963
2964        /**
2965         * @return {@link #receiver} (The system on which the action is invoked/receives the data.). This is the underlying object with id, value and extensions. The accessor "getReceiver" gives direct access to the value
2966         */
2967        public StringType getReceiverElement() { 
2968          if (this.receiver == null)
2969            if (Configuration.errorOnAutoCreate())
2970              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.receiver");
2971            else if (Configuration.doAutoCreate())
2972              this.receiver = new StringType(); // bb
2973          return this.receiver;
2974        }
2975
2976        public boolean hasReceiverElement() { 
2977          return this.receiver != null && !this.receiver.isEmpty();
2978        }
2979
2980        public boolean hasReceiver() { 
2981          return this.receiver != null && !this.receiver.isEmpty();
2982        }
2983
2984        /**
2985         * @param value {@link #receiver} (The system on which the action is invoked/receives the data.). This is the underlying object with id, value and extensions. The accessor "getReceiver" gives direct access to the value
2986         */
2987        public ExampleScenarioProcessStepOperationComponent setReceiverElement(StringType value) { 
2988          this.receiver = value;
2989          return this;
2990        }
2991
2992        /**
2993         * @return The system on which the action is invoked/receives the data.
2994         */
2995        public String getReceiver() { 
2996          return this.receiver == null ? null : this.receiver.getValue();
2997        }
2998
2999        /**
3000         * @param value The system on which the action is invoked/receives the data.
3001         */
3002        public ExampleScenarioProcessStepOperationComponent setReceiver(String value) { 
3003          if (Utilities.noString(value))
3004            this.receiver = null;
3005          else {
3006            if (this.receiver == null)
3007              this.receiver = new StringType();
3008            this.receiver.setValue(value);
3009          }
3010          return this;
3011        }
3012
3013        /**
3014         * @return {@link #description} (An explanation of what the operation represents and what it does.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
3015         */
3016        public MarkdownType getDescriptionElement() { 
3017          if (this.description == null)
3018            if (Configuration.errorOnAutoCreate())
3019              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.description");
3020            else if (Configuration.doAutoCreate())
3021              this.description = new MarkdownType(); // bb
3022          return this.description;
3023        }
3024
3025        public boolean hasDescriptionElement() { 
3026          return this.description != null && !this.description.isEmpty();
3027        }
3028
3029        public boolean hasDescription() { 
3030          return this.description != null && !this.description.isEmpty();
3031        }
3032
3033        /**
3034         * @param value {@link #description} (An explanation of what the operation represents and what it does.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
3035         */
3036        public ExampleScenarioProcessStepOperationComponent setDescriptionElement(MarkdownType value) { 
3037          this.description = value;
3038          return this;
3039        }
3040
3041        /**
3042         * @return An explanation of what the operation represents and what it does.
3043         */
3044        public String getDescription() { 
3045          return this.description == null ? null : this.description.getValue();
3046        }
3047
3048        /**
3049         * @param value An explanation of what the operation represents and what it does.
3050         */
3051        public ExampleScenarioProcessStepOperationComponent setDescription(String value) { 
3052          if (Utilities.noString(value))
3053            this.description = null;
3054          else {
3055            if (this.description == null)
3056              this.description = new MarkdownType();
3057            this.description.setValue(value);
3058          }
3059          return this;
3060        }
3061
3062        /**
3063         * @return {@link #initiatorActive} (If false, the initiator is deactivated right after the operation.). This is the underlying object with id, value and extensions. The accessor "getInitiatorActive" gives direct access to the value
3064         */
3065        public BooleanType getInitiatorActiveElement() { 
3066          if (this.initiatorActive == null)
3067            if (Configuration.errorOnAutoCreate())
3068              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.initiatorActive");
3069            else if (Configuration.doAutoCreate())
3070              this.initiatorActive = new BooleanType(); // bb
3071          return this.initiatorActive;
3072        }
3073
3074        public boolean hasInitiatorActiveElement() { 
3075          return this.initiatorActive != null && !this.initiatorActive.isEmpty();
3076        }
3077
3078        public boolean hasInitiatorActive() { 
3079          return this.initiatorActive != null && !this.initiatorActive.isEmpty();
3080        }
3081
3082        /**
3083         * @param value {@link #initiatorActive} (If false, the initiator is deactivated right after the operation.). This is the underlying object with id, value and extensions. The accessor "getInitiatorActive" gives direct access to the value
3084         */
3085        public ExampleScenarioProcessStepOperationComponent setInitiatorActiveElement(BooleanType value) { 
3086          this.initiatorActive = value;
3087          return this;
3088        }
3089
3090        /**
3091         * @return If false, the initiator is deactivated right after the operation.
3092         */
3093        public boolean getInitiatorActive() { 
3094          return this.initiatorActive == null || this.initiatorActive.isEmpty() ? false : this.initiatorActive.getValue();
3095        }
3096
3097        /**
3098         * @param value If false, the initiator is deactivated right after the operation.
3099         */
3100        public ExampleScenarioProcessStepOperationComponent setInitiatorActive(boolean value) { 
3101            if (this.initiatorActive == null)
3102              this.initiatorActive = new BooleanType();
3103            this.initiatorActive.setValue(value);
3104          return this;
3105        }
3106
3107        /**
3108         * @return {@link #receiverActive} (If false, the receiver is deactivated right after the operation.). This is the underlying object with id, value and extensions. The accessor "getReceiverActive" gives direct access to the value
3109         */
3110        public BooleanType getReceiverActiveElement() { 
3111          if (this.receiverActive == null)
3112            if (Configuration.errorOnAutoCreate())
3113              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.receiverActive");
3114            else if (Configuration.doAutoCreate())
3115              this.receiverActive = new BooleanType(); // bb
3116          return this.receiverActive;
3117        }
3118
3119        public boolean hasReceiverActiveElement() { 
3120          return this.receiverActive != null && !this.receiverActive.isEmpty();
3121        }
3122
3123        public boolean hasReceiverActive() { 
3124          return this.receiverActive != null && !this.receiverActive.isEmpty();
3125        }
3126
3127        /**
3128         * @param value {@link #receiverActive} (If false, the receiver is deactivated right after the operation.). This is the underlying object with id, value and extensions. The accessor "getReceiverActive" gives direct access to the value
3129         */
3130        public ExampleScenarioProcessStepOperationComponent setReceiverActiveElement(BooleanType value) { 
3131          this.receiverActive = value;
3132          return this;
3133        }
3134
3135        /**
3136         * @return If false, the receiver is deactivated right after the operation.
3137         */
3138        public boolean getReceiverActive() { 
3139          return this.receiverActive == null || this.receiverActive.isEmpty() ? false : this.receiverActive.getValue();
3140        }
3141
3142        /**
3143         * @param value If false, the receiver is deactivated right after the operation.
3144         */
3145        public ExampleScenarioProcessStepOperationComponent setReceiverActive(boolean value) { 
3146            if (this.receiverActive == null)
3147              this.receiverActive = new BooleanType();
3148            this.receiverActive.setValue(value);
3149          return this;
3150        }
3151
3152        /**
3153         * @return {@link #request} (A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.)
3154         */
3155        public ExampleScenarioInstanceContainedInstanceComponent getRequest() { 
3156          if (this.request == null)
3157            if (Configuration.errorOnAutoCreate())
3158              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.request");
3159            else if (Configuration.doAutoCreate())
3160              this.request = new ExampleScenarioInstanceContainedInstanceComponent(); // cc
3161          return this.request;
3162        }
3163
3164        public boolean hasRequest() { 
3165          return this.request != null && !this.request.isEmpty();
3166        }
3167
3168        /**
3169         * @param value {@link #request} (A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.)
3170         */
3171        public ExampleScenarioProcessStepOperationComponent setRequest(ExampleScenarioInstanceContainedInstanceComponent value) { 
3172          this.request = value;
3173          return this;
3174        }
3175
3176        /**
3177         * @return {@link #response} (A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).)
3178         */
3179        public ExampleScenarioInstanceContainedInstanceComponent getResponse() { 
3180          if (this.response == null)
3181            if (Configuration.errorOnAutoCreate())
3182              throw new Error("Attempt to auto-create ExampleScenarioProcessStepOperationComponent.response");
3183            else if (Configuration.doAutoCreate())
3184              this.response = new ExampleScenarioInstanceContainedInstanceComponent(); // cc
3185          return this.response;
3186        }
3187
3188        public boolean hasResponse() { 
3189          return this.response != null && !this.response.isEmpty();
3190        }
3191
3192        /**
3193         * @param value {@link #response} (A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).)
3194         */
3195        public ExampleScenarioProcessStepOperationComponent setResponse(ExampleScenarioInstanceContainedInstanceComponent value) { 
3196          this.response = value;
3197          return this;
3198        }
3199
3200        protected void listChildren(List<Property> children) {
3201          super.listChildren(children);
3202          children.add(new Property("type", "Coding", "The standardized type of action (FHIR or otherwise).", 0, 1, type));
3203          children.add(new Property("title", "string", "A short descriptive label the step to be used in tables or diagrams.", 0, 1, title));
3204          children.add(new Property("initiator", "string", "The system that invokes the action/transmits the data.", 0, 1, initiator));
3205          children.add(new Property("receiver", "string", "The system on which the action is invoked/receives the data.", 0, 1, receiver));
3206          children.add(new Property("description", "markdown", "An explanation of what the operation represents and what it does.", 0, 1, description));
3207          children.add(new Property("initiatorActive", "boolean", "If false, the initiator is deactivated right after the operation.", 0, 1, initiatorActive));
3208          children.add(new Property("receiverActive", "boolean", "If false, the receiver is deactivated right after the operation.", 0, 1, receiverActive));
3209          children.add(new Property("request", "@ExampleScenario.instance.containedInstance", "A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.", 0, 1, request));
3210          children.add(new Property("response", "@ExampleScenario.instance.containedInstance", "A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).", 0, 1, response));
3211        }
3212
3213        @Override
3214        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3215          switch (_hash) {
3216          case 3575610: /*type*/  return new Property("type", "Coding", "The standardized type of action (FHIR or otherwise).", 0, 1, type);
3217          case 110371416: /*title*/  return new Property("title", "string", "A short descriptive label the step to be used in tables or diagrams.", 0, 1, title);
3218          case -248987089: /*initiator*/  return new Property("initiator", "string", "The system that invokes the action/transmits the data.", 0, 1, initiator);
3219          case -808719889: /*receiver*/  return new Property("receiver", "string", "The system on which the action is invoked/receives the data.", 0, 1, receiver);
3220          case -1724546052: /*description*/  return new Property("description", "markdown", "An explanation of what the operation represents and what it does.", 0, 1, description);
3221          case 384339477: /*initiatorActive*/  return new Property("initiatorActive", "boolean", "If false, the initiator is deactivated right after the operation.", 0, 1, initiatorActive);
3222          case -285284907: /*receiverActive*/  return new Property("receiverActive", "boolean", "If false, the receiver is deactivated right after the operation.", 0, 1, receiverActive);
3223          case 1095692943: /*request*/  return new Property("request", "@ExampleScenario.instance.containedInstance", "A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.", 0, 1, request);
3224          case -340323263: /*response*/  return new Property("response", "@ExampleScenario.instance.containedInstance", "A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).", 0, 1, response);
3225          default: return super.getNamedProperty(_hash, _name, _checkValid);
3226          }
3227
3228        }
3229
3230      @Override
3231      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3232        switch (hash) {
3233        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Coding
3234        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
3235        case -248987089: /*initiator*/ return this.initiator == null ? new Base[0] : new Base[] {this.initiator}; // StringType
3236        case -808719889: /*receiver*/ return this.receiver == null ? new Base[0] : new Base[] {this.receiver}; // StringType
3237        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
3238        case 384339477: /*initiatorActive*/ return this.initiatorActive == null ? new Base[0] : new Base[] {this.initiatorActive}; // BooleanType
3239        case -285284907: /*receiverActive*/ return this.receiverActive == null ? new Base[0] : new Base[] {this.receiverActive}; // BooleanType
3240        case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // ExampleScenarioInstanceContainedInstanceComponent
3241        case -340323263: /*response*/ return this.response == null ? new Base[0] : new Base[] {this.response}; // ExampleScenarioInstanceContainedInstanceComponent
3242        default: return super.getProperty(hash, name, checkValid);
3243        }
3244
3245      }
3246
3247      @Override
3248      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3249        switch (hash) {
3250        case 3575610: // type
3251          this.type = TypeConvertor.castToCoding(value); // Coding
3252          return value;
3253        case 110371416: // title
3254          this.title = TypeConvertor.castToString(value); // StringType
3255          return value;
3256        case -248987089: // initiator
3257          this.initiator = TypeConvertor.castToString(value); // StringType
3258          return value;
3259        case -808719889: // receiver
3260          this.receiver = TypeConvertor.castToString(value); // StringType
3261          return value;
3262        case -1724546052: // description
3263          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
3264          return value;
3265        case 384339477: // initiatorActive
3266          this.initiatorActive = TypeConvertor.castToBoolean(value); // BooleanType
3267          return value;
3268        case -285284907: // receiverActive
3269          this.receiverActive = TypeConvertor.castToBoolean(value); // BooleanType
3270          return value;
3271        case 1095692943: // request
3272          this.request = (ExampleScenarioInstanceContainedInstanceComponent) value; // ExampleScenarioInstanceContainedInstanceComponent
3273          return value;
3274        case -340323263: // response
3275          this.response = (ExampleScenarioInstanceContainedInstanceComponent) value; // ExampleScenarioInstanceContainedInstanceComponent
3276          return value;
3277        default: return super.setProperty(hash, name, value);
3278        }
3279
3280      }
3281
3282      @Override
3283      public Base setProperty(String name, Base value) throws FHIRException {
3284        if (name.equals("type")) {
3285          this.type = TypeConvertor.castToCoding(value); // Coding
3286        } else if (name.equals("title")) {
3287          this.title = TypeConvertor.castToString(value); // StringType
3288        } else if (name.equals("initiator")) {
3289          this.initiator = TypeConvertor.castToString(value); // StringType
3290        } else if (name.equals("receiver")) {
3291          this.receiver = TypeConvertor.castToString(value); // StringType
3292        } else if (name.equals("description")) {
3293          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
3294        } else if (name.equals("initiatorActive")) {
3295          this.initiatorActive = TypeConvertor.castToBoolean(value); // BooleanType
3296        } else if (name.equals("receiverActive")) {
3297          this.receiverActive = TypeConvertor.castToBoolean(value); // BooleanType
3298        } else if (name.equals("request")) {
3299          this.request = (ExampleScenarioInstanceContainedInstanceComponent) value; // ExampleScenarioInstanceContainedInstanceComponent
3300        } else if (name.equals("response")) {
3301          this.response = (ExampleScenarioInstanceContainedInstanceComponent) value; // ExampleScenarioInstanceContainedInstanceComponent
3302        } else
3303          return super.setProperty(name, value);
3304        return value;
3305      }
3306
3307      @Override
3308      public Base makeProperty(int hash, String name) throws FHIRException {
3309        switch (hash) {
3310        case 3575610:  return getType();
3311        case 110371416:  return getTitleElement();
3312        case -248987089:  return getInitiatorElement();
3313        case -808719889:  return getReceiverElement();
3314        case -1724546052:  return getDescriptionElement();
3315        case 384339477:  return getInitiatorActiveElement();
3316        case -285284907:  return getReceiverActiveElement();
3317        case 1095692943:  return getRequest();
3318        case -340323263:  return getResponse();
3319        default: return super.makeProperty(hash, name);
3320        }
3321
3322      }
3323
3324      @Override
3325      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3326        switch (hash) {
3327        case 3575610: /*type*/ return new String[] {"Coding"};
3328        case 110371416: /*title*/ return new String[] {"string"};
3329        case -248987089: /*initiator*/ return new String[] {"string"};
3330        case -808719889: /*receiver*/ return new String[] {"string"};
3331        case -1724546052: /*description*/ return new String[] {"markdown"};
3332        case 384339477: /*initiatorActive*/ return new String[] {"boolean"};
3333        case -285284907: /*receiverActive*/ return new String[] {"boolean"};
3334        case 1095692943: /*request*/ return new String[] {"@ExampleScenario.instance.containedInstance"};
3335        case -340323263: /*response*/ return new String[] {"@ExampleScenario.instance.containedInstance"};
3336        default: return super.getTypesForProperty(hash, name);
3337        }
3338
3339      }
3340
3341      @Override
3342      public Base addChild(String name) throws FHIRException {
3343        if (name.equals("type")) {
3344          this.type = new Coding();
3345          return this.type;
3346        }
3347        else if (name.equals("title")) {
3348          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.operation.title");
3349        }
3350        else if (name.equals("initiator")) {
3351          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.operation.initiator");
3352        }
3353        else if (name.equals("receiver")) {
3354          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.operation.receiver");
3355        }
3356        else if (name.equals("description")) {
3357          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.operation.description");
3358        }
3359        else if (name.equals("initiatorActive")) {
3360          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.operation.initiatorActive");
3361        }
3362        else if (name.equals("receiverActive")) {
3363          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.operation.receiverActive");
3364        }
3365        else if (name.equals("request")) {
3366          this.request = new ExampleScenarioInstanceContainedInstanceComponent();
3367          return this.request;
3368        }
3369        else if (name.equals("response")) {
3370          this.response = new ExampleScenarioInstanceContainedInstanceComponent();
3371          return this.response;
3372        }
3373        else
3374          return super.addChild(name);
3375      }
3376
3377      public ExampleScenarioProcessStepOperationComponent copy() {
3378        ExampleScenarioProcessStepOperationComponent dst = new ExampleScenarioProcessStepOperationComponent();
3379        copyValues(dst);
3380        return dst;
3381      }
3382
3383      public void copyValues(ExampleScenarioProcessStepOperationComponent dst) {
3384        super.copyValues(dst);
3385        dst.type = type == null ? null : type.copy();
3386        dst.title = title == null ? null : title.copy();
3387        dst.initiator = initiator == null ? null : initiator.copy();
3388        dst.receiver = receiver == null ? null : receiver.copy();
3389        dst.description = description == null ? null : description.copy();
3390        dst.initiatorActive = initiatorActive == null ? null : initiatorActive.copy();
3391        dst.receiverActive = receiverActive == null ? null : receiverActive.copy();
3392        dst.request = request == null ? null : request.copy();
3393        dst.response = response == null ? null : response.copy();
3394      }
3395
3396      @Override
3397      public boolean equalsDeep(Base other_) {
3398        if (!super.equalsDeep(other_))
3399          return false;
3400        if (!(other_ instanceof ExampleScenarioProcessStepOperationComponent))
3401          return false;
3402        ExampleScenarioProcessStepOperationComponent o = (ExampleScenarioProcessStepOperationComponent) other_;
3403        return compareDeep(type, o.type, true) && compareDeep(title, o.title, true) && compareDeep(initiator, o.initiator, true)
3404           && compareDeep(receiver, o.receiver, true) && compareDeep(description, o.description, true) && compareDeep(initiatorActive, o.initiatorActive, true)
3405           && compareDeep(receiverActive, o.receiverActive, true) && compareDeep(request, o.request, true)
3406           && compareDeep(response, o.response, true);
3407      }
3408
3409      @Override
3410      public boolean equalsShallow(Base other_) {
3411        if (!super.equalsShallow(other_))
3412          return false;
3413        if (!(other_ instanceof ExampleScenarioProcessStepOperationComponent))
3414          return false;
3415        ExampleScenarioProcessStepOperationComponent o = (ExampleScenarioProcessStepOperationComponent) other_;
3416        return compareValues(title, o.title, true) && compareValues(initiator, o.initiator, true) && compareValues(receiver, o.receiver, true)
3417           && compareValues(description, o.description, true) && compareValues(initiatorActive, o.initiatorActive, true)
3418           && compareValues(receiverActive, o.receiverActive, true);
3419      }
3420
3421      public boolean isEmpty() {
3422        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, title, initiator, receiver
3423          , description, initiatorActive, receiverActive, request, response);
3424      }
3425
3426  public String fhirType() {
3427    return "ExampleScenario.process.step.operation";
3428
3429  }
3430
3431  }
3432
3433    @Block()
3434    public static class ExampleScenarioProcessStepAlternativeComponent extends BackboneElement implements IBaseBackboneElement {
3435        /**
3436         * The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.
3437         */
3438        @Child(name = "title", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
3439        @Description(shortDefinition="Label for alternative", formalDefinition="The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked." )
3440        protected StringType title;
3441
3442        /**
3443         * A human-readable description of the alternative explaining when the alternative should occur rather than the base step.
3444         */
3445        @Child(name = "description", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false)
3446        @Description(shortDefinition="Human-readable description of option", formalDefinition="A human-readable description of the alternative explaining when the alternative should occur rather than the base step." )
3447        protected MarkdownType description;
3448
3449        /**
3450         * Indicates the operation, sub-process or scenario that happens if the alternative option is selected.
3451         */
3452        @Child(name = "step", type = {ExampleScenarioProcessStepComponent.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3453        @Description(shortDefinition="Alternative action(s)", formalDefinition="Indicates the operation, sub-process or scenario that happens if the alternative option is selected." )
3454        protected List<ExampleScenarioProcessStepComponent> step;
3455
3456        private static final long serialVersionUID = -254687460L;
3457
3458    /**
3459     * Constructor
3460     */
3461      public ExampleScenarioProcessStepAlternativeComponent() {
3462        super();
3463      }
3464
3465    /**
3466     * Constructor
3467     */
3468      public ExampleScenarioProcessStepAlternativeComponent(String title) {
3469        super();
3470        this.setTitle(title);
3471      }
3472
3473        /**
3474         * @return {@link #title} (The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
3475         */
3476        public StringType getTitleElement() { 
3477          if (this.title == null)
3478            if (Configuration.errorOnAutoCreate())
3479              throw new Error("Attempt to auto-create ExampleScenarioProcessStepAlternativeComponent.title");
3480            else if (Configuration.doAutoCreate())
3481              this.title = new StringType(); // bb
3482          return this.title;
3483        }
3484
3485        public boolean hasTitleElement() { 
3486          return this.title != null && !this.title.isEmpty();
3487        }
3488
3489        public boolean hasTitle() { 
3490          return this.title != null && !this.title.isEmpty();
3491        }
3492
3493        /**
3494         * @param value {@link #title} (The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
3495         */
3496        public ExampleScenarioProcessStepAlternativeComponent setTitleElement(StringType value) { 
3497          this.title = value;
3498          return this;
3499        }
3500
3501        /**
3502         * @return The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.
3503         */
3504        public String getTitle() { 
3505          return this.title == null ? null : this.title.getValue();
3506        }
3507
3508        /**
3509         * @param value The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.
3510         */
3511        public ExampleScenarioProcessStepAlternativeComponent setTitle(String value) { 
3512            if (this.title == null)
3513              this.title = new StringType();
3514            this.title.setValue(value);
3515          return this;
3516        }
3517
3518        /**
3519         * @return {@link #description} (A human-readable description of the alternative explaining when the alternative should occur rather than the base step.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
3520         */
3521        public MarkdownType getDescriptionElement() { 
3522          if (this.description == null)
3523            if (Configuration.errorOnAutoCreate())
3524              throw new Error("Attempt to auto-create ExampleScenarioProcessStepAlternativeComponent.description");
3525            else if (Configuration.doAutoCreate())
3526              this.description = new MarkdownType(); // bb
3527          return this.description;
3528        }
3529
3530        public boolean hasDescriptionElement() { 
3531          return this.description != null && !this.description.isEmpty();
3532        }
3533
3534        public boolean hasDescription() { 
3535          return this.description != null && !this.description.isEmpty();
3536        }
3537
3538        /**
3539         * @param value {@link #description} (A human-readable description of the alternative explaining when the alternative should occur rather than the base step.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
3540         */
3541        public ExampleScenarioProcessStepAlternativeComponent setDescriptionElement(MarkdownType value) { 
3542          this.description = value;
3543          return this;
3544        }
3545
3546        /**
3547         * @return A human-readable description of the alternative explaining when the alternative should occur rather than the base step.
3548         */
3549        public String getDescription() { 
3550          return this.description == null ? null : this.description.getValue();
3551        }
3552
3553        /**
3554         * @param value A human-readable description of the alternative explaining when the alternative should occur rather than the base step.
3555         */
3556        public ExampleScenarioProcessStepAlternativeComponent setDescription(String value) { 
3557          if (Utilities.noString(value))
3558            this.description = null;
3559          else {
3560            if (this.description == null)
3561              this.description = new MarkdownType();
3562            this.description.setValue(value);
3563          }
3564          return this;
3565        }
3566
3567        /**
3568         * @return {@link #step} (Indicates the operation, sub-process or scenario that happens if the alternative option is selected.)
3569         */
3570        public List<ExampleScenarioProcessStepComponent> getStep() { 
3571          if (this.step == null)
3572            this.step = new ArrayList<ExampleScenarioProcessStepComponent>();
3573          return this.step;
3574        }
3575
3576        /**
3577         * @return Returns a reference to <code>this</code> for easy method chaining
3578         */
3579        public ExampleScenarioProcessStepAlternativeComponent setStep(List<ExampleScenarioProcessStepComponent> theStep) { 
3580          this.step = theStep;
3581          return this;
3582        }
3583
3584        public boolean hasStep() { 
3585          if (this.step == null)
3586            return false;
3587          for (ExampleScenarioProcessStepComponent item : this.step)
3588            if (!item.isEmpty())
3589              return true;
3590          return false;
3591        }
3592
3593        public ExampleScenarioProcessStepComponent addStep() { //3
3594          ExampleScenarioProcessStepComponent t = new ExampleScenarioProcessStepComponent();
3595          if (this.step == null)
3596            this.step = new ArrayList<ExampleScenarioProcessStepComponent>();
3597          this.step.add(t);
3598          return t;
3599        }
3600
3601        public ExampleScenarioProcessStepAlternativeComponent addStep(ExampleScenarioProcessStepComponent t) { //3
3602          if (t == null)
3603            return this;
3604          if (this.step == null)
3605            this.step = new ArrayList<ExampleScenarioProcessStepComponent>();
3606          this.step.add(t);
3607          return this;
3608        }
3609
3610        /**
3611         * @return The first repetition of repeating field {@link #step}, creating it if it does not already exist {3}
3612         */
3613        public ExampleScenarioProcessStepComponent getStepFirstRep() { 
3614          if (getStep().isEmpty()) {
3615            addStep();
3616          }
3617          return getStep().get(0);
3618        }
3619
3620        protected void listChildren(List<Property> children) {
3621          super.listChildren(children);
3622          children.add(new Property("title", "string", "The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.", 0, 1, title));
3623          children.add(new Property("description", "markdown", "A human-readable description of the alternative explaining when the alternative should occur rather than the base step.", 0, 1, description));
3624          children.add(new Property("step", "@ExampleScenario.process.step", "Indicates the operation, sub-process or scenario that happens if the alternative option is selected.", 0, java.lang.Integer.MAX_VALUE, step));
3625        }
3626
3627        @Override
3628        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3629          switch (_hash) {
3630          case 110371416: /*title*/  return new Property("title", "string", "The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.", 0, 1, title);
3631          case -1724546052: /*description*/  return new Property("description", "markdown", "A human-readable description of the alternative explaining when the alternative should occur rather than the base step.", 0, 1, description);
3632          case 3540684: /*step*/  return new Property("step", "@ExampleScenario.process.step", "Indicates the operation, sub-process or scenario that happens if the alternative option is selected.", 0, java.lang.Integer.MAX_VALUE, step);
3633          default: return super.getNamedProperty(_hash, _name, _checkValid);
3634          }
3635
3636        }
3637
3638      @Override
3639      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3640        switch (hash) {
3641        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
3642        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
3643        case 3540684: /*step*/ return this.step == null ? new Base[0] : this.step.toArray(new Base[this.step.size()]); // ExampleScenarioProcessStepComponent
3644        default: return super.getProperty(hash, name, checkValid);
3645        }
3646
3647      }
3648
3649      @Override
3650      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3651        switch (hash) {
3652        case 110371416: // title
3653          this.title = TypeConvertor.castToString(value); // StringType
3654          return value;
3655        case -1724546052: // description
3656          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
3657          return value;
3658        case 3540684: // step
3659          this.getStep().add((ExampleScenarioProcessStepComponent) value); // ExampleScenarioProcessStepComponent
3660          return value;
3661        default: return super.setProperty(hash, name, value);
3662        }
3663
3664      }
3665
3666      @Override
3667      public Base setProperty(String name, Base value) throws FHIRException {
3668        if (name.equals("title")) {
3669          this.title = TypeConvertor.castToString(value); // StringType
3670        } else if (name.equals("description")) {
3671          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
3672        } else if (name.equals("step")) {
3673          this.getStep().add((ExampleScenarioProcessStepComponent) value);
3674        } else
3675          return super.setProperty(name, value);
3676        return value;
3677      }
3678
3679      @Override
3680      public Base makeProperty(int hash, String name) throws FHIRException {
3681        switch (hash) {
3682        case 110371416:  return getTitleElement();
3683        case -1724546052:  return getDescriptionElement();
3684        case 3540684:  return addStep(); 
3685        default: return super.makeProperty(hash, name);
3686        }
3687
3688      }
3689
3690      @Override
3691      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3692        switch (hash) {
3693        case 110371416: /*title*/ return new String[] {"string"};
3694        case -1724546052: /*description*/ return new String[] {"markdown"};
3695        case 3540684: /*step*/ return new String[] {"@ExampleScenario.process.step"};
3696        default: return super.getTypesForProperty(hash, name);
3697        }
3698
3699      }
3700
3701      @Override
3702      public Base addChild(String name) throws FHIRException {
3703        if (name.equals("title")) {
3704          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.alternative.title");
3705        }
3706        else if (name.equals("description")) {
3707          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.process.step.alternative.description");
3708        }
3709        else if (name.equals("step")) {
3710          return addStep();
3711        }
3712        else
3713          return super.addChild(name);
3714      }
3715
3716      public ExampleScenarioProcessStepAlternativeComponent copy() {
3717        ExampleScenarioProcessStepAlternativeComponent dst = new ExampleScenarioProcessStepAlternativeComponent();
3718        copyValues(dst);
3719        return dst;
3720      }
3721
3722      public void copyValues(ExampleScenarioProcessStepAlternativeComponent dst) {
3723        super.copyValues(dst);
3724        dst.title = title == null ? null : title.copy();
3725        dst.description = description == null ? null : description.copy();
3726        if (step != null) {
3727          dst.step = new ArrayList<ExampleScenarioProcessStepComponent>();
3728          for (ExampleScenarioProcessStepComponent i : step)
3729            dst.step.add(i.copy());
3730        };
3731      }
3732
3733      @Override
3734      public boolean equalsDeep(Base other_) {
3735        if (!super.equalsDeep(other_))
3736          return false;
3737        if (!(other_ instanceof ExampleScenarioProcessStepAlternativeComponent))
3738          return false;
3739        ExampleScenarioProcessStepAlternativeComponent o = (ExampleScenarioProcessStepAlternativeComponent) other_;
3740        return compareDeep(title, o.title, true) && compareDeep(description, o.description, true) && compareDeep(step, o.step, true)
3741          ;
3742      }
3743
3744      @Override
3745      public boolean equalsShallow(Base other_) {
3746        if (!super.equalsShallow(other_))
3747          return false;
3748        if (!(other_ instanceof ExampleScenarioProcessStepAlternativeComponent))
3749          return false;
3750        ExampleScenarioProcessStepAlternativeComponent o = (ExampleScenarioProcessStepAlternativeComponent) other_;
3751        return compareValues(title, o.title, true) && compareValues(description, o.description, true);
3752      }
3753
3754      public boolean isEmpty() {
3755        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(title, description, step
3756          );
3757      }
3758
3759  public String fhirType() {
3760    return "ExampleScenario.process.step.alternative";
3761
3762  }
3763
3764  }
3765
3766    /**
3767     * An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.
3768     */
3769    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
3770    @Description(shortDefinition="Canonical identifier for this example scenario, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers." )
3771    protected UriType url;
3772
3773    /**
3774     * A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance.
3775     */
3776    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3777    @Description(shortDefinition="Additional identifier for the example scenario", formalDefinition="A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance." )
3778    protected List<Identifier> identifier;
3779
3780    /**
3781     * The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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.
3782     */
3783    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
3784    @Description(shortDefinition="Business version of the example scenario", formalDefinition="The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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." )
3785    protected StringType version;
3786
3787    /**
3788     * Indicates the mechanism used to compare versions to determine which is more current.
3789     */
3790    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
3791    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which is more current." )
3792    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
3793    protected DataType versionAlgorithm;
3794
3795    /**
3796     * Temporarily retained for tooling purposes.
3797     */
3798    @Child(name = "name", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
3799    @Description(shortDefinition="To be removed?", formalDefinition="Temporarily retained for tooling purposes." )
3800    protected StringType name;
3801
3802    /**
3803     * A short, descriptive, user-friendly title for the ExampleScenario.
3804     */
3805    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
3806    @Description(shortDefinition="Name for this example scenario (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the ExampleScenario." )
3807    protected StringType title;
3808
3809    /**
3810     * The status of this example scenario. Enables tracking the life-cycle of the content.
3811     */
3812    @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
3813    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this example scenario. Enables tracking the life-cycle of the content." )
3814    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
3815    protected Enumeration<PublicationStatus> status;
3816
3817    /**
3818     * A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
3819     */
3820    @Child(name = "experimental", type = {BooleanType.class}, order=7, min=0, max=1, modifier=false, summary=true)
3821    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
3822    protected BooleanType experimental;
3823
3824    /**
3825     * The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition').
3826     */
3827    @Child(name = "date", type = {DateTimeType.class}, order=8, min=0, max=1, modifier=false, summary=true)
3828    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition')." )
3829    protected DateTimeType date;
3830
3831    /**
3832     * The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.
3833     */
3834    @Child(name = "publisher", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true)
3835    @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 example scenario." )
3836    protected StringType publisher;
3837
3838    /**
3839     * Contact details to assist a user in finding and communicating with the publisher.
3840     */
3841    @Child(name = "contact", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3842    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
3843    protected List<ContactDetail> contact;
3844
3845    /**
3846     * A free text natural language description of the ExampleScenario from a consumer's perspective.
3847     */
3848    @Child(name = "description", type = {MarkdownType.class}, order=11, min=0, max=1, modifier=false, summary=true)
3849    @Description(shortDefinition="Natural language description of the ExampleScenario", formalDefinition="A free text natural language description of the ExampleScenario from a consumer's perspective." )
3850    protected MarkdownType description;
3851
3852    /**
3853     * 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 example scenario instances.
3854     */
3855    @Child(name = "useContext", type = {UsageContext.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3856    @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 example scenario instances." )
3857    protected List<UsageContext> useContext;
3858
3859    /**
3860     * A legal or geographic region in which the example scenario is intended to be used.
3861     */
3862    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3863    @Description(shortDefinition="Intended jurisdiction for example scenario (if applicable)", formalDefinition="A legal or geographic region in which the example scenario is intended to be used." )
3864    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
3865    protected List<CodeableConcept> jurisdiction;
3866
3867    /**
3868     * What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.
3869     */
3870    @Child(name = "purpose", type = {MarkdownType.class}, order=14, min=0, max=1, modifier=false, summary=false)
3871    @Description(shortDefinition="The purpose of the example, e.g. to illustrate a scenario", formalDefinition="What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario." )
3872    protected MarkdownType purpose;
3873
3874    /**
3875     * A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.
3876     */
3877    @Child(name = "copyright", type = {MarkdownType.class}, order=15, min=0, max=1, modifier=false, summary=false)
3878    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario." )
3879    protected MarkdownType copyright;
3880
3881    /**
3882     * 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').
3883     */
3884    @Child(name = "copyrightLabel", type = {StringType.class}, order=16, min=0, max=1, modifier=false, summary=false)
3885    @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')." )
3886    protected StringType copyrightLabel;
3887
3888    /**
3889     * A system or person who shares or receives an instance within the scenario.
3890     */
3891    @Child(name = "actor", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3892    @Description(shortDefinition="Individual involved in exchange", formalDefinition="A system or person who shares or receives an instance within the scenario." )
3893    protected List<ExampleScenarioActorComponent> actor;
3894
3895    /**
3896     * A single data collection that is shared as part of the scenario.
3897     */
3898    @Child(name = "instance", type = {}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3899    @Description(shortDefinition="Data used in the scenario", formalDefinition="A single data collection that is shared as part of the scenario." )
3900    protected List<ExampleScenarioInstanceComponent> instance;
3901
3902    /**
3903     * A group of operations that represents a significant step within a scenario.
3904     */
3905    @Child(name = "process", type = {}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3906    @Description(shortDefinition="Major process within scenario", formalDefinition="A group of operations that represents a significant step within a scenario." )
3907    protected List<ExampleScenarioProcessComponent> process;
3908
3909    private static final long serialVersionUID = 292494233L;
3910
3911  /**
3912   * Constructor
3913   */
3914    public ExampleScenario() {
3915      super();
3916    }
3917
3918  /**
3919   * Constructor
3920   */
3921    public ExampleScenario(PublicationStatus status) {
3922      super();
3923      this.setStatus(status);
3924    }
3925
3926    /**
3927     * @return {@link #url} (An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
3928     */
3929    public UriType getUrlElement() { 
3930      if (this.url == null)
3931        if (Configuration.errorOnAutoCreate())
3932          throw new Error("Attempt to auto-create ExampleScenario.url");
3933        else if (Configuration.doAutoCreate())
3934          this.url = new UriType(); // bb
3935      return this.url;
3936    }
3937
3938    public boolean hasUrlElement() { 
3939      return this.url != null && !this.url.isEmpty();
3940    }
3941
3942    public boolean hasUrl() { 
3943      return this.url != null && !this.url.isEmpty();
3944    }
3945
3946    /**
3947     * @param value {@link #url} (An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
3948     */
3949    public ExampleScenario setUrlElement(UriType value) { 
3950      this.url = value;
3951      return this;
3952    }
3953
3954    /**
3955     * @return An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.
3956     */
3957    public String getUrl() { 
3958      return this.url == null ? null : this.url.getValue();
3959    }
3960
3961    /**
3962     * @param value An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.
3963     */
3964    public ExampleScenario setUrl(String value) { 
3965      if (Utilities.noString(value))
3966        this.url = null;
3967      else {
3968        if (this.url == null)
3969          this.url = new UriType();
3970        this.url.setValue(value);
3971      }
3972      return this;
3973    }
3974
3975    /**
3976     * @return {@link #identifier} (A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance.)
3977     */
3978    public List<Identifier> getIdentifier() { 
3979      if (this.identifier == null)
3980        this.identifier = new ArrayList<Identifier>();
3981      return this.identifier;
3982    }
3983
3984    /**
3985     * @return Returns a reference to <code>this</code> for easy method chaining
3986     */
3987    public ExampleScenario setIdentifier(List<Identifier> theIdentifier) { 
3988      this.identifier = theIdentifier;
3989      return this;
3990    }
3991
3992    public boolean hasIdentifier() { 
3993      if (this.identifier == null)
3994        return false;
3995      for (Identifier item : this.identifier)
3996        if (!item.isEmpty())
3997          return true;
3998      return false;
3999    }
4000
4001    public Identifier addIdentifier() { //3
4002      Identifier t = new Identifier();
4003      if (this.identifier == null)
4004        this.identifier = new ArrayList<Identifier>();
4005      this.identifier.add(t);
4006      return t;
4007    }
4008
4009    public ExampleScenario addIdentifier(Identifier t) { //3
4010      if (t == null)
4011        return this;
4012      if (this.identifier == null)
4013        this.identifier = new ArrayList<Identifier>();
4014      this.identifier.add(t);
4015      return this;
4016    }
4017
4018    /**
4019     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
4020     */
4021    public Identifier getIdentifierFirstRep() { 
4022      if (getIdentifier().isEmpty()) {
4023        addIdentifier();
4024      }
4025      return getIdentifier().get(0);
4026    }
4027
4028    /**
4029     * @return {@link #version} (The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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
4030     */
4031    public StringType getVersionElement() { 
4032      if (this.version == null)
4033        if (Configuration.errorOnAutoCreate())
4034          throw new Error("Attempt to auto-create ExampleScenario.version");
4035        else if (Configuration.doAutoCreate())
4036          this.version = new StringType(); // bb
4037      return this.version;
4038    }
4039
4040    public boolean hasVersionElement() { 
4041      return this.version != null && !this.version.isEmpty();
4042    }
4043
4044    public boolean hasVersion() { 
4045      return this.version != null && !this.version.isEmpty();
4046    }
4047
4048    /**
4049     * @param value {@link #version} (The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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
4050     */
4051    public ExampleScenario setVersionElement(StringType value) { 
4052      this.version = value;
4053      return this;
4054    }
4055
4056    /**
4057     * @return The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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.
4058     */
4059    public String getVersion() { 
4060      return this.version == null ? null : this.version.getValue();
4061    }
4062
4063    /**
4064     * @param value The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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.
4065     */
4066    public ExampleScenario setVersion(String value) { 
4067      if (Utilities.noString(value))
4068        this.version = null;
4069      else {
4070        if (this.version == null)
4071          this.version = new StringType();
4072        this.version.setValue(value);
4073      }
4074      return this;
4075    }
4076
4077    /**
4078     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
4079     */
4080    public DataType getVersionAlgorithm() { 
4081      return this.versionAlgorithm;
4082    }
4083
4084    /**
4085     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
4086     */
4087    public StringType getVersionAlgorithmStringType() throws FHIRException { 
4088      if (this.versionAlgorithm == null)
4089        this.versionAlgorithm = new StringType();
4090      if (!(this.versionAlgorithm instanceof StringType))
4091        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
4092      return (StringType) this.versionAlgorithm;
4093    }
4094
4095    public boolean hasVersionAlgorithmStringType() { 
4096      return this != null && this.versionAlgorithm instanceof StringType;
4097    }
4098
4099    /**
4100     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
4101     */
4102    public Coding getVersionAlgorithmCoding() throws FHIRException { 
4103      if (this.versionAlgorithm == null)
4104        this.versionAlgorithm = new Coding();
4105      if (!(this.versionAlgorithm instanceof Coding))
4106        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
4107      return (Coding) this.versionAlgorithm;
4108    }
4109
4110    public boolean hasVersionAlgorithmCoding() { 
4111      return this != null && this.versionAlgorithm instanceof Coding;
4112    }
4113
4114    public boolean hasVersionAlgorithm() { 
4115      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
4116    }
4117
4118    /**
4119     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
4120     */
4121    public ExampleScenario setVersionAlgorithm(DataType value) { 
4122      if (value != null && !(value instanceof StringType || value instanceof Coding))
4123        throw new FHIRException("Not the right type for ExampleScenario.versionAlgorithm[x]: "+value.fhirType());
4124      this.versionAlgorithm = value;
4125      return this;
4126    }
4127
4128    /**
4129     * @return {@link #name} (Temporarily retained for tooling purposes.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
4130     */
4131    public StringType getNameElement() { 
4132      if (this.name == null)
4133        if (Configuration.errorOnAutoCreate())
4134          throw new Error("Attempt to auto-create ExampleScenario.name");
4135        else if (Configuration.doAutoCreate())
4136          this.name = new StringType(); // bb
4137      return this.name;
4138    }
4139
4140    public boolean hasNameElement() { 
4141      return this.name != null && !this.name.isEmpty();
4142    }
4143
4144    public boolean hasName() { 
4145      return this.name != null && !this.name.isEmpty();
4146    }
4147
4148    /**
4149     * @param value {@link #name} (Temporarily retained for tooling purposes.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
4150     */
4151    public ExampleScenario setNameElement(StringType value) { 
4152      this.name = value;
4153      return this;
4154    }
4155
4156    /**
4157     * @return Temporarily retained for tooling purposes.
4158     */
4159    public String getName() { 
4160      return this.name == null ? null : this.name.getValue();
4161    }
4162
4163    /**
4164     * @param value Temporarily retained for tooling purposes.
4165     */
4166    public ExampleScenario setName(String value) { 
4167      if (Utilities.noString(value))
4168        this.name = null;
4169      else {
4170        if (this.name == null)
4171          this.name = new StringType();
4172        this.name.setValue(value);
4173      }
4174      return this;
4175    }
4176
4177    /**
4178     * @return {@link #title} (A short, descriptive, user-friendly title for the ExampleScenario.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
4179     */
4180    public StringType getTitleElement() { 
4181      if (this.title == null)
4182        if (Configuration.errorOnAutoCreate())
4183          throw new Error("Attempt to auto-create ExampleScenario.title");
4184        else if (Configuration.doAutoCreate())
4185          this.title = new StringType(); // bb
4186      return this.title;
4187    }
4188
4189    public boolean hasTitleElement() { 
4190      return this.title != null && !this.title.isEmpty();
4191    }
4192
4193    public boolean hasTitle() { 
4194      return this.title != null && !this.title.isEmpty();
4195    }
4196
4197    /**
4198     * @param value {@link #title} (A short, descriptive, user-friendly title for the ExampleScenario.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
4199     */
4200    public ExampleScenario setTitleElement(StringType value) { 
4201      this.title = value;
4202      return this;
4203    }
4204
4205    /**
4206     * @return A short, descriptive, user-friendly title for the ExampleScenario.
4207     */
4208    public String getTitle() { 
4209      return this.title == null ? null : this.title.getValue();
4210    }
4211
4212    /**
4213     * @param value A short, descriptive, user-friendly title for the ExampleScenario.
4214     */
4215    public ExampleScenario setTitle(String value) { 
4216      if (Utilities.noString(value))
4217        this.title = null;
4218      else {
4219        if (this.title == null)
4220          this.title = new StringType();
4221        this.title.setValue(value);
4222      }
4223      return this;
4224    }
4225
4226    /**
4227     * @return {@link #status} (The status of this example scenario. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
4228     */
4229    public Enumeration<PublicationStatus> getStatusElement() { 
4230      if (this.status == null)
4231        if (Configuration.errorOnAutoCreate())
4232          throw new Error("Attempt to auto-create ExampleScenario.status");
4233        else if (Configuration.doAutoCreate())
4234          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
4235      return this.status;
4236    }
4237
4238    public boolean hasStatusElement() { 
4239      return this.status != null && !this.status.isEmpty();
4240    }
4241
4242    public boolean hasStatus() { 
4243      return this.status != null && !this.status.isEmpty();
4244    }
4245
4246    /**
4247     * @param value {@link #status} (The status of this example scenario. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
4248     */
4249    public ExampleScenario setStatusElement(Enumeration<PublicationStatus> value) { 
4250      this.status = value;
4251      return this;
4252    }
4253
4254    /**
4255     * @return The status of this example scenario. Enables tracking the life-cycle of the content.
4256     */
4257    public PublicationStatus getStatus() { 
4258      return this.status == null ? null : this.status.getValue();
4259    }
4260
4261    /**
4262     * @param value The status of this example scenario. Enables tracking the life-cycle of the content.
4263     */
4264    public ExampleScenario setStatus(PublicationStatus value) { 
4265        if (this.status == null)
4266          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
4267        this.status.setValue(value);
4268      return this;
4269    }
4270
4271    /**
4272     * @return {@link #experimental} (A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
4273     */
4274    public BooleanType getExperimentalElement() { 
4275      if (this.experimental == null)
4276        if (Configuration.errorOnAutoCreate())
4277          throw new Error("Attempt to auto-create ExampleScenario.experimental");
4278        else if (Configuration.doAutoCreate())
4279          this.experimental = new BooleanType(); // bb
4280      return this.experimental;
4281    }
4282
4283    public boolean hasExperimentalElement() { 
4284      return this.experimental != null && !this.experimental.isEmpty();
4285    }
4286
4287    public boolean hasExperimental() { 
4288      return this.experimental != null && !this.experimental.isEmpty();
4289    }
4290
4291    /**
4292     * @param value {@link #experimental} (A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
4293     */
4294    public ExampleScenario setExperimentalElement(BooleanType value) { 
4295      this.experimental = value;
4296      return this;
4297    }
4298
4299    /**
4300     * @return A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
4301     */
4302    public boolean getExperimental() { 
4303      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
4304    }
4305
4306    /**
4307     * @param value A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
4308     */
4309    public ExampleScenario setExperimental(boolean value) { 
4310        if (this.experimental == null)
4311          this.experimental = new BooleanType();
4312        this.experimental.setValue(value);
4313      return this;
4314    }
4315
4316    /**
4317     * @return {@link #date} (The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition').). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
4318     */
4319    public DateTimeType getDateElement() { 
4320      if (this.date == null)
4321        if (Configuration.errorOnAutoCreate())
4322          throw new Error("Attempt to auto-create ExampleScenario.date");
4323        else if (Configuration.doAutoCreate())
4324          this.date = new DateTimeType(); // bb
4325      return this.date;
4326    }
4327
4328    public boolean hasDateElement() { 
4329      return this.date != null && !this.date.isEmpty();
4330    }
4331
4332    public boolean hasDate() { 
4333      return this.date != null && !this.date.isEmpty();
4334    }
4335
4336    /**
4337     * @param value {@link #date} (The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition').). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
4338     */
4339    public ExampleScenario setDateElement(DateTimeType value) { 
4340      this.date = value;
4341      return this;
4342    }
4343
4344    /**
4345     * @return The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition').
4346     */
4347    public Date getDate() { 
4348      return this.date == null ? null : this.date.getValue();
4349    }
4350
4351    /**
4352     * @param value The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition').
4353     */
4354    public ExampleScenario setDate(Date value) { 
4355      if (value == null)
4356        this.date = null;
4357      else {
4358        if (this.date == null)
4359          this.date = new DateTimeType();
4360        this.date.setValue(value);
4361      }
4362      return this;
4363    }
4364
4365    /**
4366     * @return {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4367     */
4368    public StringType getPublisherElement() { 
4369      if (this.publisher == null)
4370        if (Configuration.errorOnAutoCreate())
4371          throw new Error("Attempt to auto-create ExampleScenario.publisher");
4372        else if (Configuration.doAutoCreate())
4373          this.publisher = new StringType(); // bb
4374      return this.publisher;
4375    }
4376
4377    public boolean hasPublisherElement() { 
4378      return this.publisher != null && !this.publisher.isEmpty();
4379    }
4380
4381    public boolean hasPublisher() { 
4382      return this.publisher != null && !this.publisher.isEmpty();
4383    }
4384
4385    /**
4386     * @param value {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4387     */
4388    public ExampleScenario setPublisherElement(StringType value) { 
4389      this.publisher = value;
4390      return this;
4391    }
4392
4393    /**
4394     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.
4395     */
4396    public String getPublisher() { 
4397      return this.publisher == null ? null : this.publisher.getValue();
4398    }
4399
4400    /**
4401     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.
4402     */
4403    public ExampleScenario setPublisher(String value) { 
4404      if (Utilities.noString(value))
4405        this.publisher = null;
4406      else {
4407        if (this.publisher == null)
4408          this.publisher = new StringType();
4409        this.publisher.setValue(value);
4410      }
4411      return this;
4412    }
4413
4414    /**
4415     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
4416     */
4417    public List<ContactDetail> getContact() { 
4418      if (this.contact == null)
4419        this.contact = new ArrayList<ContactDetail>();
4420      return this.contact;
4421    }
4422
4423    /**
4424     * @return Returns a reference to <code>this</code> for easy method chaining
4425     */
4426    public ExampleScenario setContact(List<ContactDetail> theContact) { 
4427      this.contact = theContact;
4428      return this;
4429    }
4430
4431    public boolean hasContact() { 
4432      if (this.contact == null)
4433        return false;
4434      for (ContactDetail item : this.contact)
4435        if (!item.isEmpty())
4436          return true;
4437      return false;
4438    }
4439
4440    public ContactDetail addContact() { //3
4441      ContactDetail t = new ContactDetail();
4442      if (this.contact == null)
4443        this.contact = new ArrayList<ContactDetail>();
4444      this.contact.add(t);
4445      return t;
4446    }
4447
4448    public ExampleScenario addContact(ContactDetail t) { //3
4449      if (t == null)
4450        return this;
4451      if (this.contact == null)
4452        this.contact = new ArrayList<ContactDetail>();
4453      this.contact.add(t);
4454      return this;
4455    }
4456
4457    /**
4458     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
4459     */
4460    public ContactDetail getContactFirstRep() { 
4461      if (getContact().isEmpty()) {
4462        addContact();
4463      }
4464      return getContact().get(0);
4465    }
4466
4467    /**
4468     * @return {@link #description} (A free text natural language description of the ExampleScenario from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4469     */
4470    public MarkdownType getDescriptionElement() { 
4471      if (this.description == null)
4472        if (Configuration.errorOnAutoCreate())
4473          throw new Error("Attempt to auto-create ExampleScenario.description");
4474        else if (Configuration.doAutoCreate())
4475          this.description = new MarkdownType(); // bb
4476      return this.description;
4477    }
4478
4479    public boolean hasDescriptionElement() { 
4480      return this.description != null && !this.description.isEmpty();
4481    }
4482
4483    public boolean hasDescription() { 
4484      return this.description != null && !this.description.isEmpty();
4485    }
4486
4487    /**
4488     * @param value {@link #description} (A free text natural language description of the ExampleScenario from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4489     */
4490    public ExampleScenario setDescriptionElement(MarkdownType value) { 
4491      this.description = value;
4492      return this;
4493    }
4494
4495    /**
4496     * @return A free text natural language description of the ExampleScenario from a consumer's perspective.
4497     */
4498    public String getDescription() { 
4499      return this.description == null ? null : this.description.getValue();
4500    }
4501
4502    /**
4503     * @param value A free text natural language description of the ExampleScenario from a consumer's perspective.
4504     */
4505    public ExampleScenario setDescription(String value) { 
4506      if (Utilities.noString(value))
4507        this.description = null;
4508      else {
4509        if (this.description == null)
4510          this.description = new MarkdownType();
4511        this.description.setValue(value);
4512      }
4513      return this;
4514    }
4515
4516    /**
4517     * @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 example scenario instances.)
4518     */
4519    public List<UsageContext> getUseContext() { 
4520      if (this.useContext == null)
4521        this.useContext = new ArrayList<UsageContext>();
4522      return this.useContext;
4523    }
4524
4525    /**
4526     * @return Returns a reference to <code>this</code> for easy method chaining
4527     */
4528    public ExampleScenario setUseContext(List<UsageContext> theUseContext) { 
4529      this.useContext = theUseContext;
4530      return this;
4531    }
4532
4533    public boolean hasUseContext() { 
4534      if (this.useContext == null)
4535        return false;
4536      for (UsageContext item : this.useContext)
4537        if (!item.isEmpty())
4538          return true;
4539      return false;
4540    }
4541
4542    public UsageContext addUseContext() { //3
4543      UsageContext t = new UsageContext();
4544      if (this.useContext == null)
4545        this.useContext = new ArrayList<UsageContext>();
4546      this.useContext.add(t);
4547      return t;
4548    }
4549
4550    public ExampleScenario addUseContext(UsageContext t) { //3
4551      if (t == null)
4552        return this;
4553      if (this.useContext == null)
4554        this.useContext = new ArrayList<UsageContext>();
4555      this.useContext.add(t);
4556      return this;
4557    }
4558
4559    /**
4560     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
4561     */
4562    public UsageContext getUseContextFirstRep() { 
4563      if (getUseContext().isEmpty()) {
4564        addUseContext();
4565      }
4566      return getUseContext().get(0);
4567    }
4568
4569    /**
4570     * @return {@link #jurisdiction} (A legal or geographic region in which the example scenario is intended to be used.)
4571     */
4572    public List<CodeableConcept> getJurisdiction() { 
4573      if (this.jurisdiction == null)
4574        this.jurisdiction = new ArrayList<CodeableConcept>();
4575      return this.jurisdiction;
4576    }
4577
4578    /**
4579     * @return Returns a reference to <code>this</code> for easy method chaining
4580     */
4581    public ExampleScenario setJurisdiction(List<CodeableConcept> theJurisdiction) { 
4582      this.jurisdiction = theJurisdiction;
4583      return this;
4584    }
4585
4586    public boolean hasJurisdiction() { 
4587      if (this.jurisdiction == null)
4588        return false;
4589      for (CodeableConcept item : this.jurisdiction)
4590        if (!item.isEmpty())
4591          return true;
4592      return false;
4593    }
4594
4595    public CodeableConcept addJurisdiction() { //3
4596      CodeableConcept t = new CodeableConcept();
4597      if (this.jurisdiction == null)
4598        this.jurisdiction = new ArrayList<CodeableConcept>();
4599      this.jurisdiction.add(t);
4600      return t;
4601    }
4602
4603    public ExampleScenario addJurisdiction(CodeableConcept t) { //3
4604      if (t == null)
4605        return this;
4606      if (this.jurisdiction == null)
4607        this.jurisdiction = new ArrayList<CodeableConcept>();
4608      this.jurisdiction.add(t);
4609      return this;
4610    }
4611
4612    /**
4613     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
4614     */
4615    public CodeableConcept getJurisdictionFirstRep() { 
4616      if (getJurisdiction().isEmpty()) {
4617        addJurisdiction();
4618      }
4619      return getJurisdiction().get(0);
4620    }
4621
4622    /**
4623     * @return {@link #purpose} (What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
4624     */
4625    public MarkdownType getPurposeElement() { 
4626      if (this.purpose == null)
4627        if (Configuration.errorOnAutoCreate())
4628          throw new Error("Attempt to auto-create ExampleScenario.purpose");
4629        else if (Configuration.doAutoCreate())
4630          this.purpose = new MarkdownType(); // bb
4631      return this.purpose;
4632    }
4633
4634    public boolean hasPurposeElement() { 
4635      return this.purpose != null && !this.purpose.isEmpty();
4636    }
4637
4638    public boolean hasPurpose() { 
4639      return this.purpose != null && !this.purpose.isEmpty();
4640    }
4641
4642    /**
4643     * @param value {@link #purpose} (What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
4644     */
4645    public ExampleScenario setPurposeElement(MarkdownType value) { 
4646      this.purpose = value;
4647      return this;
4648    }
4649
4650    /**
4651     * @return What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.
4652     */
4653    public String getPurpose() { 
4654      return this.purpose == null ? null : this.purpose.getValue();
4655    }
4656
4657    /**
4658     * @param value What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.
4659     */
4660    public ExampleScenario setPurpose(String value) { 
4661      if (Utilities.noString(value))
4662        this.purpose = null;
4663      else {
4664        if (this.purpose == null)
4665          this.purpose = new MarkdownType();
4666        this.purpose.setValue(value);
4667      }
4668      return this;
4669    }
4670
4671    /**
4672     * @return {@link #copyright} (A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
4673     */
4674    public MarkdownType getCopyrightElement() { 
4675      if (this.copyright == null)
4676        if (Configuration.errorOnAutoCreate())
4677          throw new Error("Attempt to auto-create ExampleScenario.copyright");
4678        else if (Configuration.doAutoCreate())
4679          this.copyright = new MarkdownType(); // bb
4680      return this.copyright;
4681    }
4682
4683    public boolean hasCopyrightElement() { 
4684      return this.copyright != null && !this.copyright.isEmpty();
4685    }
4686
4687    public boolean hasCopyright() { 
4688      return this.copyright != null && !this.copyright.isEmpty();
4689    }
4690
4691    /**
4692     * @param value {@link #copyright} (A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
4693     */
4694    public ExampleScenario setCopyrightElement(MarkdownType value) { 
4695      this.copyright = value;
4696      return this;
4697    }
4698
4699    /**
4700     * @return A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.
4701     */
4702    public String getCopyright() { 
4703      return this.copyright == null ? null : this.copyright.getValue();
4704    }
4705
4706    /**
4707     * @param value A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.
4708     */
4709    public ExampleScenario setCopyright(String value) { 
4710      if (Utilities.noString(value))
4711        this.copyright = null;
4712      else {
4713        if (this.copyright == null)
4714          this.copyright = new MarkdownType();
4715        this.copyright.setValue(value);
4716      }
4717      return this;
4718    }
4719
4720    /**
4721     * @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
4722     */
4723    public StringType getCopyrightLabelElement() { 
4724      if (this.copyrightLabel == null)
4725        if (Configuration.errorOnAutoCreate())
4726          throw new Error("Attempt to auto-create ExampleScenario.copyrightLabel");
4727        else if (Configuration.doAutoCreate())
4728          this.copyrightLabel = new StringType(); // bb
4729      return this.copyrightLabel;
4730    }
4731
4732    public boolean hasCopyrightLabelElement() { 
4733      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4734    }
4735
4736    public boolean hasCopyrightLabel() { 
4737      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4738    }
4739
4740    /**
4741     * @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
4742     */
4743    public ExampleScenario setCopyrightLabelElement(StringType value) { 
4744      this.copyrightLabel = value;
4745      return this;
4746    }
4747
4748    /**
4749     * @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').
4750     */
4751    public String getCopyrightLabel() { 
4752      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
4753    }
4754
4755    /**
4756     * @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').
4757     */
4758    public ExampleScenario setCopyrightLabel(String value) { 
4759      if (Utilities.noString(value))
4760        this.copyrightLabel = null;
4761      else {
4762        if (this.copyrightLabel == null)
4763          this.copyrightLabel = new StringType();
4764        this.copyrightLabel.setValue(value);
4765      }
4766      return this;
4767    }
4768
4769    /**
4770     * @return {@link #actor} (A system or person who shares or receives an instance within the scenario.)
4771     */
4772    public List<ExampleScenarioActorComponent> getActor() { 
4773      if (this.actor == null)
4774        this.actor = new ArrayList<ExampleScenarioActorComponent>();
4775      return this.actor;
4776    }
4777
4778    /**
4779     * @return Returns a reference to <code>this</code> for easy method chaining
4780     */
4781    public ExampleScenario setActor(List<ExampleScenarioActorComponent> theActor) { 
4782      this.actor = theActor;
4783      return this;
4784    }
4785
4786    public boolean hasActor() { 
4787      if (this.actor == null)
4788        return false;
4789      for (ExampleScenarioActorComponent item : this.actor)
4790        if (!item.isEmpty())
4791          return true;
4792      return false;
4793    }
4794
4795    public ExampleScenarioActorComponent addActor() { //3
4796      ExampleScenarioActorComponent t = new ExampleScenarioActorComponent();
4797      if (this.actor == null)
4798        this.actor = new ArrayList<ExampleScenarioActorComponent>();
4799      this.actor.add(t);
4800      return t;
4801    }
4802
4803    public ExampleScenario addActor(ExampleScenarioActorComponent t) { //3
4804      if (t == null)
4805        return this;
4806      if (this.actor == null)
4807        this.actor = new ArrayList<ExampleScenarioActorComponent>();
4808      this.actor.add(t);
4809      return this;
4810    }
4811
4812    /**
4813     * @return The first repetition of repeating field {@link #actor}, creating it if it does not already exist {3}
4814     */
4815    public ExampleScenarioActorComponent getActorFirstRep() { 
4816      if (getActor().isEmpty()) {
4817        addActor();
4818      }
4819      return getActor().get(0);
4820    }
4821
4822    /**
4823     * @return {@link #instance} (A single data collection that is shared as part of the scenario.)
4824     */
4825    public List<ExampleScenarioInstanceComponent> getInstance() { 
4826      if (this.instance == null)
4827        this.instance = new ArrayList<ExampleScenarioInstanceComponent>();
4828      return this.instance;
4829    }
4830
4831    /**
4832     * @return Returns a reference to <code>this</code> for easy method chaining
4833     */
4834    public ExampleScenario setInstance(List<ExampleScenarioInstanceComponent> theInstance) { 
4835      this.instance = theInstance;
4836      return this;
4837    }
4838
4839    public boolean hasInstance() { 
4840      if (this.instance == null)
4841        return false;
4842      for (ExampleScenarioInstanceComponent item : this.instance)
4843        if (!item.isEmpty())
4844          return true;
4845      return false;
4846    }
4847
4848    public ExampleScenarioInstanceComponent addInstance() { //3
4849      ExampleScenarioInstanceComponent t = new ExampleScenarioInstanceComponent();
4850      if (this.instance == null)
4851        this.instance = new ArrayList<ExampleScenarioInstanceComponent>();
4852      this.instance.add(t);
4853      return t;
4854    }
4855
4856    public ExampleScenario addInstance(ExampleScenarioInstanceComponent t) { //3
4857      if (t == null)
4858        return this;
4859      if (this.instance == null)
4860        this.instance = new ArrayList<ExampleScenarioInstanceComponent>();
4861      this.instance.add(t);
4862      return this;
4863    }
4864
4865    /**
4866     * @return The first repetition of repeating field {@link #instance}, creating it if it does not already exist {3}
4867     */
4868    public ExampleScenarioInstanceComponent getInstanceFirstRep() { 
4869      if (getInstance().isEmpty()) {
4870        addInstance();
4871      }
4872      return getInstance().get(0);
4873    }
4874
4875    /**
4876     * @return {@link #process} (A group of operations that represents a significant step within a scenario.)
4877     */
4878    public List<ExampleScenarioProcessComponent> getProcess() { 
4879      if (this.process == null)
4880        this.process = new ArrayList<ExampleScenarioProcessComponent>();
4881      return this.process;
4882    }
4883
4884    /**
4885     * @return Returns a reference to <code>this</code> for easy method chaining
4886     */
4887    public ExampleScenario setProcess(List<ExampleScenarioProcessComponent> theProcess) { 
4888      this.process = theProcess;
4889      return this;
4890    }
4891
4892    public boolean hasProcess() { 
4893      if (this.process == null)
4894        return false;
4895      for (ExampleScenarioProcessComponent item : this.process)
4896        if (!item.isEmpty())
4897          return true;
4898      return false;
4899    }
4900
4901    public ExampleScenarioProcessComponent addProcess() { //3
4902      ExampleScenarioProcessComponent t = new ExampleScenarioProcessComponent();
4903      if (this.process == null)
4904        this.process = new ArrayList<ExampleScenarioProcessComponent>();
4905      this.process.add(t);
4906      return t;
4907    }
4908
4909    public ExampleScenario addProcess(ExampleScenarioProcessComponent t) { //3
4910      if (t == null)
4911        return this;
4912      if (this.process == null)
4913        this.process = new ArrayList<ExampleScenarioProcessComponent>();
4914      this.process.add(t);
4915      return this;
4916    }
4917
4918    /**
4919     * @return The first repetition of repeating field {@link #process}, creating it if it does not already exist {3}
4920     */
4921    public ExampleScenarioProcessComponent getProcessFirstRep() { 
4922      if (getProcess().isEmpty()) {
4923        addProcess();
4924      }
4925      return getProcess().get(0);
4926    }
4927
4928      protected void listChildren(List<Property> children) {
4929        super.listChildren(children);
4930        children.add(new Property("url", "uri", "An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.", 0, 1, url));
4931        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
4932        children.add(new Property("version", "string", "The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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));
4933        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm));
4934        children.add(new Property("name", "string", "Temporarily retained for tooling purposes.", 0, 1, name));
4935        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the ExampleScenario.", 0, 1, title));
4936        children.add(new Property("status", "code", "The status of this example scenario. Enables tracking the life-cycle of the content.", 0, 1, status));
4937        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
4938        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition').", 0, 1, date));
4939        children.add(new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.", 0, 1, publisher));
4940        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));
4941        children.add(new Property("description", "markdown", "A free text natural language description of the ExampleScenario from a consumer's perspective.", 0, 1, description));
4942        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 example scenario instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
4943        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the example scenario is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
4944        children.add(new Property("purpose", "markdown", "What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.", 0, 1, purpose));
4945        children.add(new Property("copyright", "markdown", "A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.", 0, 1, copyright));
4946        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));
4947        children.add(new Property("actor", "", "A system or person who shares or receives an instance within the scenario.", 0, java.lang.Integer.MAX_VALUE, actor));
4948        children.add(new Property("instance", "", "A single data collection that is shared as part of the scenario.", 0, java.lang.Integer.MAX_VALUE, instance));
4949        children.add(new Property("process", "", "A group of operations that represents a significant step within a scenario.", 0, java.lang.Integer.MAX_VALUE, process));
4950      }
4951
4952      @Override
4953      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
4954        switch (_hash) {
4955        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this example scenario 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 example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.", 0, 1, url);
4956        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
4957        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario 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);
4958        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);
4959        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);
4960        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);
4961        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);
4962        case 3373707: /*name*/  return new Property("name", "string", "Temporarily retained for tooling purposes.", 0, 1, name);
4963        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the ExampleScenario.", 0, 1, title);
4964        case -892481550: /*status*/  return new Property("status", "code", "The status of this example scenario. Enables tracking the life-cycle of the content.", 0, 1, status);
4965        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
4966        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the example scenario 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 example scenario changes. (e.g. the 'content logical definition').", 0, 1, date);
4967        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.", 0, 1, publisher);
4968        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);
4969        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the ExampleScenario from a consumer's perspective.", 0, 1, description);
4970        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 example scenario instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
4971        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the example scenario is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
4972        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.", 0, 1, purpose);
4973        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.", 0, 1, copyright);
4974        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);
4975        case 92645877: /*actor*/  return new Property("actor", "", "A system or person who shares or receives an instance within the scenario.", 0, java.lang.Integer.MAX_VALUE, actor);
4976        case 555127957: /*instance*/  return new Property("instance", "", "A single data collection that is shared as part of the scenario.", 0, java.lang.Integer.MAX_VALUE, instance);
4977        case -309518737: /*process*/  return new Property("process", "", "A group of operations that represents a significant step within a scenario.", 0, java.lang.Integer.MAX_VALUE, process);
4978        default: return super.getNamedProperty(_hash, _name, _checkValid);
4979        }
4980
4981      }
4982
4983      @Override
4984      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
4985        switch (hash) {
4986        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
4987        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
4988        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
4989        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
4990        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
4991        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
4992        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
4993        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
4994        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
4995        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
4996        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
4997        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
4998        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
4999        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
5000        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
5001        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
5002        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
5003        case 92645877: /*actor*/ return this.actor == null ? new Base[0] : this.actor.toArray(new Base[this.actor.size()]); // ExampleScenarioActorComponent
5004        case 555127957: /*instance*/ return this.instance == null ? new Base[0] : this.instance.toArray(new Base[this.instance.size()]); // ExampleScenarioInstanceComponent
5005        case -309518737: /*process*/ return this.process == null ? new Base[0] : this.process.toArray(new Base[this.process.size()]); // ExampleScenarioProcessComponent
5006        default: return super.getProperty(hash, name, checkValid);
5007        }
5008
5009      }
5010
5011      @Override
5012      public Base setProperty(int hash, String name, Base value) throws FHIRException {
5013        switch (hash) {
5014        case 116079: // url
5015          this.url = TypeConvertor.castToUri(value); // UriType
5016          return value;
5017        case -1618432855: // identifier
5018          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
5019          return value;
5020        case 351608024: // version
5021          this.version = TypeConvertor.castToString(value); // StringType
5022          return value;
5023        case 1508158071: // versionAlgorithm
5024          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5025          return value;
5026        case 3373707: // name
5027          this.name = TypeConvertor.castToString(value); // StringType
5028          return value;
5029        case 110371416: // title
5030          this.title = TypeConvertor.castToString(value); // StringType
5031          return value;
5032        case -892481550: // status
5033          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5034          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5035          return value;
5036        case -404562712: // experimental
5037          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5038          return value;
5039        case 3076014: // date
5040          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5041          return value;
5042        case 1447404028: // publisher
5043          this.publisher = TypeConvertor.castToString(value); // StringType
5044          return value;
5045        case 951526432: // contact
5046          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5047          return value;
5048        case -1724546052: // description
5049          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5050          return value;
5051        case -669707736: // useContext
5052          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
5053          return value;
5054        case -507075711: // jurisdiction
5055          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
5056          return value;
5057        case -220463842: // purpose
5058          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5059          return value;
5060        case 1522889671: // copyright
5061          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5062          return value;
5063        case 765157229: // copyrightLabel
5064          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5065          return value;
5066        case 92645877: // actor
5067          this.getActor().add((ExampleScenarioActorComponent) value); // ExampleScenarioActorComponent
5068          return value;
5069        case 555127957: // instance
5070          this.getInstance().add((ExampleScenarioInstanceComponent) value); // ExampleScenarioInstanceComponent
5071          return value;
5072        case -309518737: // process
5073          this.getProcess().add((ExampleScenarioProcessComponent) value); // ExampleScenarioProcessComponent
5074          return value;
5075        default: return super.setProperty(hash, name, value);
5076        }
5077
5078      }
5079
5080      @Override
5081      public Base setProperty(String name, Base value) throws FHIRException {
5082        if (name.equals("url")) {
5083          this.url = TypeConvertor.castToUri(value); // UriType
5084        } else if (name.equals("identifier")) {
5085          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
5086        } else if (name.equals("version")) {
5087          this.version = TypeConvertor.castToString(value); // StringType
5088        } else if (name.equals("versionAlgorithm[x]")) {
5089          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5090        } else if (name.equals("name")) {
5091          this.name = TypeConvertor.castToString(value); // StringType
5092        } else if (name.equals("title")) {
5093          this.title = TypeConvertor.castToString(value); // StringType
5094        } else if (name.equals("status")) {
5095          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5096          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5097        } else if (name.equals("experimental")) {
5098          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5099        } else if (name.equals("date")) {
5100          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5101        } else if (name.equals("publisher")) {
5102          this.publisher = TypeConvertor.castToString(value); // StringType
5103        } else if (name.equals("contact")) {
5104          this.getContact().add(TypeConvertor.castToContactDetail(value));
5105        } else if (name.equals("description")) {
5106          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5107        } else if (name.equals("useContext")) {
5108          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
5109        } else if (name.equals("jurisdiction")) {
5110          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
5111        } else if (name.equals("purpose")) {
5112          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5113        } else if (name.equals("copyright")) {
5114          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5115        } else if (name.equals("copyrightLabel")) {
5116          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5117        } else if (name.equals("actor")) {
5118          this.getActor().add((ExampleScenarioActorComponent) value);
5119        } else if (name.equals("instance")) {
5120          this.getInstance().add((ExampleScenarioInstanceComponent) value);
5121        } else if (name.equals("process")) {
5122          this.getProcess().add((ExampleScenarioProcessComponent) value);
5123        } else
5124          return super.setProperty(name, value);
5125        return value;
5126      }
5127
5128      @Override
5129      public Base makeProperty(int hash, String name) throws FHIRException {
5130        switch (hash) {
5131        case 116079:  return getUrlElement();
5132        case -1618432855:  return addIdentifier(); 
5133        case 351608024:  return getVersionElement();
5134        case -115699031:  return getVersionAlgorithm();
5135        case 1508158071:  return getVersionAlgorithm();
5136        case 3373707:  return getNameElement();
5137        case 110371416:  return getTitleElement();
5138        case -892481550:  return getStatusElement();
5139        case -404562712:  return getExperimentalElement();
5140        case 3076014:  return getDateElement();
5141        case 1447404028:  return getPublisherElement();
5142        case 951526432:  return addContact(); 
5143        case -1724546052:  return getDescriptionElement();
5144        case -669707736:  return addUseContext(); 
5145        case -507075711:  return addJurisdiction(); 
5146        case -220463842:  return getPurposeElement();
5147        case 1522889671:  return getCopyrightElement();
5148        case 765157229:  return getCopyrightLabelElement();
5149        case 92645877:  return addActor(); 
5150        case 555127957:  return addInstance(); 
5151        case -309518737:  return addProcess(); 
5152        default: return super.makeProperty(hash, name);
5153        }
5154
5155      }
5156
5157      @Override
5158      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
5159        switch (hash) {
5160        case 116079: /*url*/ return new String[] {"uri"};
5161        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
5162        case 351608024: /*version*/ return new String[] {"string"};
5163        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
5164        case 3373707: /*name*/ return new String[] {"string"};
5165        case 110371416: /*title*/ return new String[] {"string"};
5166        case -892481550: /*status*/ return new String[] {"code"};
5167        case -404562712: /*experimental*/ return new String[] {"boolean"};
5168        case 3076014: /*date*/ return new String[] {"dateTime"};
5169        case 1447404028: /*publisher*/ return new String[] {"string"};
5170        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
5171        case -1724546052: /*description*/ return new String[] {"markdown"};
5172        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
5173        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
5174        case -220463842: /*purpose*/ return new String[] {"markdown"};
5175        case 1522889671: /*copyright*/ return new String[] {"markdown"};
5176        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
5177        case 92645877: /*actor*/ return new String[] {};
5178        case 555127957: /*instance*/ return new String[] {};
5179        case -309518737: /*process*/ return new String[] {};
5180        default: return super.getTypesForProperty(hash, name);
5181        }
5182
5183      }
5184
5185      @Override
5186      public Base addChild(String name) throws FHIRException {
5187        if (name.equals("url")) {
5188          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.url");
5189        }
5190        else if (name.equals("identifier")) {
5191          return addIdentifier();
5192        }
5193        else if (name.equals("version")) {
5194          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.version");
5195        }
5196        else if (name.equals("versionAlgorithmString")) {
5197          this.versionAlgorithm = new StringType();
5198          return this.versionAlgorithm;
5199        }
5200        else if (name.equals("versionAlgorithmCoding")) {
5201          this.versionAlgorithm = new Coding();
5202          return this.versionAlgorithm;
5203        }
5204        else if (name.equals("name")) {
5205          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.name");
5206        }
5207        else if (name.equals("title")) {
5208          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.title");
5209        }
5210        else if (name.equals("status")) {
5211          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.status");
5212        }
5213        else if (name.equals("experimental")) {
5214          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.experimental");
5215        }
5216        else if (name.equals("date")) {
5217          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.date");
5218        }
5219        else if (name.equals("publisher")) {
5220          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.publisher");
5221        }
5222        else if (name.equals("contact")) {
5223          return addContact();
5224        }
5225        else if (name.equals("description")) {
5226          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.description");
5227        }
5228        else if (name.equals("useContext")) {
5229          return addUseContext();
5230        }
5231        else if (name.equals("jurisdiction")) {
5232          return addJurisdiction();
5233        }
5234        else if (name.equals("purpose")) {
5235          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.purpose");
5236        }
5237        else if (name.equals("copyright")) {
5238          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.copyright");
5239        }
5240        else if (name.equals("copyrightLabel")) {
5241          throw new FHIRException("Cannot call addChild on a singleton property ExampleScenario.copyrightLabel");
5242        }
5243        else if (name.equals("actor")) {
5244          return addActor();
5245        }
5246        else if (name.equals("instance")) {
5247          return addInstance();
5248        }
5249        else if (name.equals("process")) {
5250          return addProcess();
5251        }
5252        else
5253          return super.addChild(name);
5254      }
5255
5256  public String fhirType() {
5257    return "ExampleScenario";
5258
5259  }
5260
5261      public ExampleScenario copy() {
5262        ExampleScenario dst = new ExampleScenario();
5263        copyValues(dst);
5264        return dst;
5265      }
5266
5267      public void copyValues(ExampleScenario dst) {
5268        super.copyValues(dst);
5269        dst.url = url == null ? null : url.copy();
5270        if (identifier != null) {
5271          dst.identifier = new ArrayList<Identifier>();
5272          for (Identifier i : identifier)
5273            dst.identifier.add(i.copy());
5274        };
5275        dst.version = version == null ? null : version.copy();
5276        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
5277        dst.name = name == null ? null : name.copy();
5278        dst.title = title == null ? null : title.copy();
5279        dst.status = status == null ? null : status.copy();
5280        dst.experimental = experimental == null ? null : experimental.copy();
5281        dst.date = date == null ? null : date.copy();
5282        dst.publisher = publisher == null ? null : publisher.copy();
5283        if (contact != null) {
5284          dst.contact = new ArrayList<ContactDetail>();
5285          for (ContactDetail i : contact)
5286            dst.contact.add(i.copy());
5287        };
5288        dst.description = description == null ? null : description.copy();
5289        if (useContext != null) {
5290          dst.useContext = new ArrayList<UsageContext>();
5291          for (UsageContext i : useContext)
5292            dst.useContext.add(i.copy());
5293        };
5294        if (jurisdiction != null) {
5295          dst.jurisdiction = new ArrayList<CodeableConcept>();
5296          for (CodeableConcept i : jurisdiction)
5297            dst.jurisdiction.add(i.copy());
5298        };
5299        dst.purpose = purpose == null ? null : purpose.copy();
5300        dst.copyright = copyright == null ? null : copyright.copy();
5301        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
5302        if (actor != null) {
5303          dst.actor = new ArrayList<ExampleScenarioActorComponent>();
5304          for (ExampleScenarioActorComponent i : actor)
5305            dst.actor.add(i.copy());
5306        };
5307        if (instance != null) {
5308          dst.instance = new ArrayList<ExampleScenarioInstanceComponent>();
5309          for (ExampleScenarioInstanceComponent i : instance)
5310            dst.instance.add(i.copy());
5311        };
5312        if (process != null) {
5313          dst.process = new ArrayList<ExampleScenarioProcessComponent>();
5314          for (ExampleScenarioProcessComponent i : process)
5315            dst.process.add(i.copy());
5316        };
5317      }
5318
5319      protected ExampleScenario typedCopy() {
5320        return copy();
5321      }
5322
5323      @Override
5324      public boolean equalsDeep(Base other_) {
5325        if (!super.equalsDeep(other_))
5326          return false;
5327        if (!(other_ instanceof ExampleScenario))
5328          return false;
5329        ExampleScenario o = (ExampleScenario) other_;
5330        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
5331           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
5332           && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true)
5333           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true)
5334           && compareDeep(useContext, o.useContext, true) && compareDeep(jurisdiction, o.jurisdiction, true)
5335           && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true) && compareDeep(copyrightLabel, o.copyrightLabel, true)
5336           && compareDeep(actor, o.actor, true) && compareDeep(instance, o.instance, true) && compareDeep(process, o.process, true)
5337          ;
5338      }
5339
5340      @Override
5341      public boolean equalsShallow(Base other_) {
5342        if (!super.equalsShallow(other_))
5343          return false;
5344        if (!(other_ instanceof ExampleScenario))
5345          return false;
5346        ExampleScenario o = (ExampleScenario) other_;
5347        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
5348           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true)
5349           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true)
5350           && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(copyrightLabel, o.copyrightLabel, true)
5351          ;
5352      }
5353
5354      public boolean isEmpty() {
5355        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
5356          , versionAlgorithm, name, title, status, experimental, date, publisher, contact
5357          , description, useContext, jurisdiction, purpose, copyright, copyrightLabel, actor
5358          , instance, process);
5359      }
5360
5361  @Override
5362  public ResourceType getResourceType() {
5363    return ResourceType.ExampleScenario;
5364   }
5365
5366 /**
5367   * Search parameter: <b>context-quantity</b>
5368   * <p>
5369   * Description: <b>Multiple Resources: 
5370
5371* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
5372* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
5373* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
5374* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
5375* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
5376* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
5377* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
5378* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
5379* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
5380* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
5381* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
5382* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
5383* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
5384* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
5385* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
5386* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
5387* [Library](library.html): A quantity- or range-valued use context assigned to the library
5388* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
5389* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
5390* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
5391* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
5392* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
5393* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
5394* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
5395* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
5396* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
5397* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
5398* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
5399* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
5400* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
5401</b><br>
5402   * Type: <b>quantity</b><br>
5403   * 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>
5404   * </p>
5405   */
5406  @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" )
5407  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
5408 /**
5409   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
5410   * <p>
5411   * Description: <b>Multiple Resources: 
5412
5413* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
5414* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
5415* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
5416* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
5417* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
5418* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
5419* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
5420* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
5421* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
5422* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
5423* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
5424* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
5425* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
5426* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
5427* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
5428* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
5429* [Library](library.html): A quantity- or range-valued use context assigned to the library
5430* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
5431* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
5432* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
5433* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
5434* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
5435* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
5436* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
5437* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
5438* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
5439* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
5440* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
5441* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
5442* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
5443</b><br>
5444   * Type: <b>quantity</b><br>
5445   * 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>
5446   * </p>
5447   */
5448  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
5449
5450 /**
5451   * Search parameter: <b>context-type-quantity</b>
5452   * <p>
5453   * Description: <b>Multiple Resources: 
5454
5455* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
5456* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
5457* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
5458* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
5459* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
5460* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
5461* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
5462* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
5463* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
5464* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
5465* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
5466* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
5467* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
5468* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
5469* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
5470* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
5471* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
5472* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
5473* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
5474* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
5475* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
5476* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
5477* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
5478* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
5479* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
5480* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
5481* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
5482* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
5483* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
5484* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
5485</b><br>
5486   * Type: <b>composite</b><br>
5487   * 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>
5488   * </p>
5489   */
5490  @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"} )
5491  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
5492 /**
5493   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
5494   * <p>
5495   * Description: <b>Multiple Resources: 
5496
5497* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
5498* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
5499* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
5500* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
5501* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
5502* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
5503* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
5504* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
5505* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
5506* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
5507* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
5508* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
5509* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
5510* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
5511* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
5512* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
5513* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
5514* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
5515* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
5516* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
5517* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
5518* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
5519* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
5520* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
5521* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
5522* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
5523* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
5524* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
5525* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
5526* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
5527</b><br>
5528   * Type: <b>composite</b><br>
5529   * 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>
5530   * </p>
5531   */
5532  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);
5533
5534 /**
5535   * Search parameter: <b>context-type-value</b>
5536   * <p>
5537   * Description: <b>Multiple Resources: 
5538
5539* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
5540* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
5541* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
5542* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
5543* [Citation](citation.html): A use context type and value assigned to the citation
5544* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
5545* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
5546* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
5547* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
5548* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
5549* [Evidence](evidence.html): A use context type and value assigned to the evidence
5550* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
5551* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
5552* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
5553* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
5554* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
5555* [Library](library.html): A use context type and value assigned to the library
5556* [Measure](measure.html): A use context type and value assigned to the measure
5557* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
5558* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
5559* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
5560* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
5561* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
5562* [Requirements](requirements.html): A use context type and value assigned to the requirements
5563* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
5564* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
5565* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
5566* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
5567* [TestScript](testscript.html): A use context type and value assigned to the test script
5568* [ValueSet](valueset.html): A use context type and value assigned to the value set
5569</b><br>
5570   * Type: <b>composite</b><br>
5571   * 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>
5572   * </p>
5573   */
5574  @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"} )
5575  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
5576 /**
5577   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
5578   * <p>
5579   * Description: <b>Multiple Resources: 
5580
5581* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
5582* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
5583* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
5584* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
5585* [Citation](citation.html): A use context type and value assigned to the citation
5586* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
5587* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
5588* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
5589* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
5590* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
5591* [Evidence](evidence.html): A use context type and value assigned to the evidence
5592* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
5593* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
5594* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
5595* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
5596* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
5597* [Library](library.html): A use context type and value assigned to the library
5598* [Measure](measure.html): A use context type and value assigned to the measure
5599* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
5600* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
5601* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
5602* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
5603* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
5604* [Requirements](requirements.html): A use context type and value assigned to the requirements
5605* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
5606* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
5607* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
5608* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
5609* [TestScript](testscript.html): A use context type and value assigned to the test script
5610* [ValueSet](valueset.html): A use context type and value assigned to the value set
5611</b><br>
5612   * Type: <b>composite</b><br>
5613   * 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>
5614   * </p>
5615   */
5616  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);
5617
5618 /**
5619   * Search parameter: <b>context-type</b>
5620   * <p>
5621   * Description: <b>Multiple Resources: 
5622
5623* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
5624* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
5625* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
5626* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
5627* [Citation](citation.html): A type of use context assigned to the citation
5628* [CodeSystem](codesystem.html): A type of use context assigned to the code system
5629* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
5630* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
5631* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
5632* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
5633* [Evidence](evidence.html): A type of use context assigned to the evidence
5634* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
5635* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
5636* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
5637* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
5638* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
5639* [Library](library.html): A type of use context assigned to the library
5640* [Measure](measure.html): A type of use context assigned to the measure
5641* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
5642* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
5643* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
5644* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
5645* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
5646* [Requirements](requirements.html): A type of use context assigned to the requirements
5647* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
5648* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
5649* [StructureMap](structuremap.html): A type of use context assigned to the structure map
5650* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
5651* [TestScript](testscript.html): A type of use context assigned to the test script
5652* [ValueSet](valueset.html): A type of use context assigned to the value set
5653</b><br>
5654   * Type: <b>token</b><br>
5655   * 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>
5656   * </p>
5657   */
5658  @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" )
5659  public static final String SP_CONTEXT_TYPE = "context-type";
5660 /**
5661   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
5662   * <p>
5663   * Description: <b>Multiple Resources: 
5664
5665* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
5666* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
5667* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
5668* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
5669* [Citation](citation.html): A type of use context assigned to the citation
5670* [CodeSystem](codesystem.html): A type of use context assigned to the code system
5671* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
5672* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
5673* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
5674* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
5675* [Evidence](evidence.html): A type of use context assigned to the evidence
5676* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
5677* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
5678* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
5679* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
5680* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
5681* [Library](library.html): A type of use context assigned to the library
5682* [Measure](measure.html): A type of use context assigned to the measure
5683* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
5684* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
5685* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
5686* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
5687* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
5688* [Requirements](requirements.html): A type of use context assigned to the requirements
5689* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
5690* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
5691* [StructureMap](structuremap.html): A type of use context assigned to the structure map
5692* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
5693* [TestScript](testscript.html): A type of use context assigned to the test script
5694* [ValueSet](valueset.html): A type of use context assigned to the value set
5695</b><br>
5696   * Type: <b>token</b><br>
5697   * 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>
5698   * </p>
5699   */
5700  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
5701
5702 /**
5703   * Search parameter: <b>context</b>
5704   * <p>
5705   * Description: <b>Multiple Resources: 
5706
5707* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
5708* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
5709* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
5710* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
5711* [Citation](citation.html): A use context assigned to the citation
5712* [CodeSystem](codesystem.html): A use context assigned to the code system
5713* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
5714* [ConceptMap](conceptmap.html): A use context assigned to the concept map
5715* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
5716* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
5717* [Evidence](evidence.html): A use context assigned to the evidence
5718* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
5719* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
5720* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
5721* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
5722* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
5723* [Library](library.html): A use context assigned to the library
5724* [Measure](measure.html): A use context assigned to the measure
5725* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
5726* [NamingSystem](namingsystem.html): A use context assigned to the naming system
5727* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
5728* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
5729* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
5730* [Requirements](requirements.html): A use context assigned to the requirements
5731* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
5732* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
5733* [StructureMap](structuremap.html): A use context assigned to the structure map
5734* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
5735* [TestScript](testscript.html): A use context assigned to the test script
5736* [ValueSet](valueset.html): A use context assigned to the value set
5737</b><br>
5738   * Type: <b>token</b><br>
5739   * 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>
5740   * </p>
5741   */
5742  @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" )
5743  public static final String SP_CONTEXT = "context";
5744 /**
5745   * <b>Fluent Client</b> search parameter constant for <b>context</b>
5746   * <p>
5747   * Description: <b>Multiple Resources: 
5748
5749* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
5750* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
5751* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
5752* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
5753* [Citation](citation.html): A use context assigned to the citation
5754* [CodeSystem](codesystem.html): A use context assigned to the code system
5755* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
5756* [ConceptMap](conceptmap.html): A use context assigned to the concept map
5757* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
5758* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
5759* [Evidence](evidence.html): A use context assigned to the evidence
5760* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
5761* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
5762* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
5763* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
5764* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
5765* [Library](library.html): A use context assigned to the library
5766* [Measure](measure.html): A use context assigned to the measure
5767* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
5768* [NamingSystem](namingsystem.html): A use context assigned to the naming system
5769* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
5770* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
5771* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
5772* [Requirements](requirements.html): A use context assigned to the requirements
5773* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
5774* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
5775* [StructureMap](structuremap.html): A use context assigned to the structure map
5776* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
5777* [TestScript](testscript.html): A use context assigned to the test script
5778* [ValueSet](valueset.html): A use context assigned to the value set
5779</b><br>
5780   * Type: <b>token</b><br>
5781   * 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>
5782   * </p>
5783   */
5784  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
5785
5786 /**
5787   * Search parameter: <b>date</b>
5788   * <p>
5789   * Description: <b>Multiple Resources: 
5790
5791* [ActivityDefinition](activitydefinition.html): The activity definition publication date
5792* [ActorDefinition](actordefinition.html): The Actor Definition publication date
5793* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
5794* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
5795* [Citation](citation.html): The citation publication date
5796* [CodeSystem](codesystem.html): The code system publication date
5797* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
5798* [ConceptMap](conceptmap.html): The concept map publication date
5799* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
5800* [EventDefinition](eventdefinition.html): The event definition publication date
5801* [Evidence](evidence.html): The evidence publication date
5802* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
5803* [ExampleScenario](examplescenario.html): The example scenario publication date
5804* [GraphDefinition](graphdefinition.html): The graph definition publication date
5805* [ImplementationGuide](implementationguide.html): The implementation guide publication date
5806* [Library](library.html): The library publication date
5807* [Measure](measure.html): The measure publication date
5808* [MessageDefinition](messagedefinition.html): The message definition publication date
5809* [NamingSystem](namingsystem.html): The naming system publication date
5810* [OperationDefinition](operationdefinition.html): The operation definition publication date
5811* [PlanDefinition](plandefinition.html): The plan definition publication date
5812* [Questionnaire](questionnaire.html): The questionnaire publication date
5813* [Requirements](requirements.html): The requirements publication date
5814* [SearchParameter](searchparameter.html): The search parameter publication date
5815* [StructureDefinition](structuredefinition.html): The structure definition publication date
5816* [StructureMap](structuremap.html): The structure map publication date
5817* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
5818* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
5819* [TestScript](testscript.html): The test script publication date
5820* [ValueSet](valueset.html): The value set publication date
5821</b><br>
5822   * Type: <b>date</b><br>
5823   * 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>
5824   * </p>
5825   */
5826  @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" )
5827  public static final String SP_DATE = "date";
5828 /**
5829   * <b>Fluent Client</b> search parameter constant for <b>date</b>
5830   * <p>
5831   * Description: <b>Multiple Resources: 
5832
5833* [ActivityDefinition](activitydefinition.html): The activity definition publication date
5834* [ActorDefinition](actordefinition.html): The Actor Definition publication date
5835* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
5836* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
5837* [Citation](citation.html): The citation publication date
5838* [CodeSystem](codesystem.html): The code system publication date
5839* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
5840* [ConceptMap](conceptmap.html): The concept map publication date
5841* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
5842* [EventDefinition](eventdefinition.html): The event definition publication date
5843* [Evidence](evidence.html): The evidence publication date
5844* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
5845* [ExampleScenario](examplescenario.html): The example scenario publication date
5846* [GraphDefinition](graphdefinition.html): The graph definition publication date
5847* [ImplementationGuide](implementationguide.html): The implementation guide publication date
5848* [Library](library.html): The library publication date
5849* [Measure](measure.html): The measure publication date
5850* [MessageDefinition](messagedefinition.html): The message definition publication date
5851* [NamingSystem](namingsystem.html): The naming system publication date
5852* [OperationDefinition](operationdefinition.html): The operation definition publication date
5853* [PlanDefinition](plandefinition.html): The plan definition publication date
5854* [Questionnaire](questionnaire.html): The questionnaire publication date
5855* [Requirements](requirements.html): The requirements publication date
5856* [SearchParameter](searchparameter.html): The search parameter publication date
5857* [StructureDefinition](structuredefinition.html): The structure definition publication date
5858* [StructureMap](structuremap.html): The structure map publication date
5859* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
5860* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
5861* [TestScript](testscript.html): The test script publication date
5862* [ValueSet](valueset.html): The value set publication date
5863</b><br>
5864   * Type: <b>date</b><br>
5865   * 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>
5866   * </p>
5867   */
5868  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
5869
5870 /**
5871   * Search parameter: <b>identifier</b>
5872   * <p>
5873   * Description: <b>Multiple Resources: 
5874
5875* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
5876* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
5877* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
5878* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
5879* [Citation](citation.html): External identifier for the citation
5880* [CodeSystem](codesystem.html): External identifier for the code system
5881* [ConceptMap](conceptmap.html): External identifier for the concept map
5882* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
5883* [EventDefinition](eventdefinition.html): External identifier for the event definition
5884* [Evidence](evidence.html): External identifier for the evidence
5885* [EvidenceReport](evidencereport.html): External identifier for the evidence report
5886* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
5887* [ExampleScenario](examplescenario.html): External identifier for the example scenario
5888* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
5889* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
5890* [Library](library.html): External identifier for the library
5891* [Measure](measure.html): External identifier for the measure
5892* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
5893* [MessageDefinition](messagedefinition.html): External identifier for the message definition
5894* [NamingSystem](namingsystem.html): External identifier for the naming system
5895* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
5896* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
5897* [PlanDefinition](plandefinition.html): External identifier for the plan definition
5898* [Questionnaire](questionnaire.html): External identifier for the questionnaire
5899* [Requirements](requirements.html): External identifier for the requirements
5900* [SearchParameter](searchparameter.html): External identifier for the search parameter
5901* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
5902* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
5903* [StructureMap](structuremap.html): External identifier for the structure map
5904* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
5905* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
5906* [TestPlan](testplan.html): An identifier for the test plan
5907* [TestScript](testscript.html): External identifier for the test script
5908* [ValueSet](valueset.html): External identifier for the value set
5909</b><br>
5910   * Type: <b>token</b><br>
5911   * 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>
5912   * </p>
5913   */
5914  @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" )
5915  public static final String SP_IDENTIFIER = "identifier";
5916 /**
5917   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
5918   * <p>
5919   * Description: <b>Multiple Resources: 
5920
5921* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
5922* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
5923* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
5924* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
5925* [Citation](citation.html): External identifier for the citation
5926* [CodeSystem](codesystem.html): External identifier for the code system
5927* [ConceptMap](conceptmap.html): External identifier for the concept map
5928* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
5929* [EventDefinition](eventdefinition.html): External identifier for the event definition
5930* [Evidence](evidence.html): External identifier for the evidence
5931* [EvidenceReport](evidencereport.html): External identifier for the evidence report
5932* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
5933* [ExampleScenario](examplescenario.html): External identifier for the example scenario
5934* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
5935* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
5936* [Library](library.html): External identifier for the library
5937* [Measure](measure.html): External identifier for the measure
5938* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
5939* [MessageDefinition](messagedefinition.html): External identifier for the message definition
5940* [NamingSystem](namingsystem.html): External identifier for the naming system
5941* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
5942* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
5943* [PlanDefinition](plandefinition.html): External identifier for the plan definition
5944* [Questionnaire](questionnaire.html): External identifier for the questionnaire
5945* [Requirements](requirements.html): External identifier for the requirements
5946* [SearchParameter](searchparameter.html): External identifier for the search parameter
5947* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
5948* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
5949* [StructureMap](structuremap.html): External identifier for the structure map
5950* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
5951* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
5952* [TestPlan](testplan.html): An identifier for the test plan
5953* [TestScript](testscript.html): External identifier for the test script
5954* [ValueSet](valueset.html): External identifier for the value set
5955</b><br>
5956   * Type: <b>token</b><br>
5957   * 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>
5958   * </p>
5959   */
5960  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
5961
5962 /**
5963   * Search parameter: <b>jurisdiction</b>
5964   * <p>
5965   * Description: <b>Multiple Resources: 
5966
5967* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
5968* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
5969* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
5970* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
5971* [Citation](citation.html): Intended jurisdiction for the citation
5972* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
5973* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
5974* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
5975* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
5976* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
5977* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
5978* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
5979* [Library](library.html): Intended jurisdiction for the library
5980* [Measure](measure.html): Intended jurisdiction for the measure
5981* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
5982* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
5983* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
5984* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
5985* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
5986* [Requirements](requirements.html): Intended jurisdiction for the requirements
5987* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
5988* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
5989* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
5990* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
5991* [TestScript](testscript.html): Intended jurisdiction for the test script
5992* [ValueSet](valueset.html): Intended jurisdiction for the value set
5993</b><br>
5994   * Type: <b>token</b><br>
5995   * 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>
5996   * </p>
5997   */
5998  @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" )
5999  public static final String SP_JURISDICTION = "jurisdiction";
6000 /**
6001   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
6002   * <p>
6003   * Description: <b>Multiple Resources: 
6004
6005* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
6006* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
6007* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
6008* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
6009* [Citation](citation.html): Intended jurisdiction for the citation
6010* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
6011* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
6012* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
6013* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
6014* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
6015* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
6016* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
6017* [Library](library.html): Intended jurisdiction for the library
6018* [Measure](measure.html): Intended jurisdiction for the measure
6019* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
6020* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
6021* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
6022* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
6023* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
6024* [Requirements](requirements.html): Intended jurisdiction for the requirements
6025* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
6026* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
6027* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
6028* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
6029* [TestScript](testscript.html): Intended jurisdiction for the test script
6030* [ValueSet](valueset.html): Intended jurisdiction for the value set
6031</b><br>
6032   * Type: <b>token</b><br>
6033   * 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>
6034   * </p>
6035   */
6036  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
6037
6038 /**
6039   * Search parameter: <b>name</b>
6040   * <p>
6041   * Description: <b>Multiple Resources: 
6042
6043* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
6044* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
6045* [Citation](citation.html): Computationally friendly name of the citation
6046* [CodeSystem](codesystem.html): Computationally friendly name of the code system
6047* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
6048* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
6049* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
6050* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
6051* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
6052* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
6053* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
6054* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
6055* [Library](library.html): Computationally friendly name of the library
6056* [Measure](measure.html): Computationally friendly name of the measure
6057* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
6058* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
6059* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
6060* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
6061* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
6062* [Requirements](requirements.html): Computationally friendly name of the requirements
6063* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
6064* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
6065* [StructureMap](structuremap.html): Computationally friendly name of the structure map
6066* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
6067* [TestScript](testscript.html): Computationally friendly name of the test script
6068* [ValueSet](valueset.html): Computationally friendly name of the value set
6069</b><br>
6070   * Type: <b>string</b><br>
6071   * 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>
6072   * </p>
6073   */
6074  @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" )
6075  public static final String SP_NAME = "name";
6076 /**
6077   * <b>Fluent Client</b> search parameter constant for <b>name</b>
6078   * <p>
6079   * Description: <b>Multiple Resources: 
6080
6081* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
6082* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
6083* [Citation](citation.html): Computationally friendly name of the citation
6084* [CodeSystem](codesystem.html): Computationally friendly name of the code system
6085* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
6086* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
6087* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
6088* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
6089* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
6090* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
6091* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
6092* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
6093* [Library](library.html): Computationally friendly name of the library
6094* [Measure](measure.html): Computationally friendly name of the measure
6095* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
6096* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
6097* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
6098* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
6099* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
6100* [Requirements](requirements.html): Computationally friendly name of the requirements
6101* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
6102* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
6103* [StructureMap](structuremap.html): Computationally friendly name of the structure map
6104* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
6105* [TestScript](testscript.html): Computationally friendly name of the test script
6106* [ValueSet](valueset.html): Computationally friendly name of the value set
6107</b><br>
6108   * Type: <b>string</b><br>
6109   * 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>
6110   * </p>
6111   */
6112  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
6113
6114 /**
6115   * Search parameter: <b>publisher</b>
6116   * <p>
6117   * Description: <b>Multiple Resources: 
6118
6119* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
6120* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
6121* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
6122* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
6123* [Citation](citation.html): Name of the publisher of the citation
6124* [CodeSystem](codesystem.html): Name of the publisher of the code system
6125* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
6126* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
6127* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
6128* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
6129* [Evidence](evidence.html): Name of the publisher of the evidence
6130* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
6131* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
6132* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
6133* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
6134* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
6135* [Library](library.html): Name of the publisher of the library
6136* [Measure](measure.html): Name of the publisher of the measure
6137* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
6138* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
6139* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
6140* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
6141* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
6142* [Requirements](requirements.html): Name of the publisher of the requirements
6143* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
6144* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
6145* [StructureMap](structuremap.html): Name of the publisher of the structure map
6146* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
6147* [TestScript](testscript.html): Name of the publisher of the test script
6148* [ValueSet](valueset.html): Name of the publisher of the value set
6149</b><br>
6150   * Type: <b>string</b><br>
6151   * 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>
6152   * </p>
6153   */
6154  @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" )
6155  public static final String SP_PUBLISHER = "publisher";
6156 /**
6157   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
6158   * <p>
6159   * Description: <b>Multiple Resources: 
6160
6161* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
6162* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
6163* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
6164* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
6165* [Citation](citation.html): Name of the publisher of the citation
6166* [CodeSystem](codesystem.html): Name of the publisher of the code system
6167* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
6168* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
6169* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
6170* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
6171* [Evidence](evidence.html): Name of the publisher of the evidence
6172* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
6173* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
6174* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
6175* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
6176* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
6177* [Library](library.html): Name of the publisher of the library
6178* [Measure](measure.html): Name of the publisher of the measure
6179* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
6180* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
6181* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
6182* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
6183* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
6184* [Requirements](requirements.html): Name of the publisher of the requirements
6185* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
6186* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
6187* [StructureMap](structuremap.html): Name of the publisher of the structure map
6188* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
6189* [TestScript](testscript.html): Name of the publisher of the test script
6190* [ValueSet](valueset.html): Name of the publisher of the value set
6191</b><br>
6192   * Type: <b>string</b><br>
6193   * 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>
6194   * </p>
6195   */
6196  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
6197
6198 /**
6199   * Search parameter: <b>status</b>
6200   * <p>
6201   * Description: <b>Multiple Resources: 
6202
6203* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
6204* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
6205* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
6206* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
6207* [Citation](citation.html): The current status of the citation
6208* [CodeSystem](codesystem.html): The current status of the code system
6209* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
6210* [ConceptMap](conceptmap.html): The current status of the concept map
6211* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
6212* [EventDefinition](eventdefinition.html): The current status of the event definition
6213* [Evidence](evidence.html): The current status of the evidence
6214* [EvidenceReport](evidencereport.html): The current status of the evidence report
6215* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
6216* [ExampleScenario](examplescenario.html): The current status of the example scenario
6217* [GraphDefinition](graphdefinition.html): The current status of the graph definition
6218* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
6219* [Library](library.html): The current status of the library
6220* [Measure](measure.html): The current status of the measure
6221* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
6222* [MessageDefinition](messagedefinition.html): The current status of the message definition
6223* [NamingSystem](namingsystem.html): The current status of the naming system
6224* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
6225* [OperationDefinition](operationdefinition.html): The current status of the operation definition
6226* [PlanDefinition](plandefinition.html): The current status of the plan definition
6227* [Questionnaire](questionnaire.html): The current status of the questionnaire
6228* [Requirements](requirements.html): The current status of the requirements
6229* [SearchParameter](searchparameter.html): The current status of the search parameter
6230* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
6231* [StructureDefinition](structuredefinition.html): The current status of the structure definition
6232* [StructureMap](structuremap.html): The current status of the structure map
6233* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
6234* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
6235* [TestPlan](testplan.html): The current status of the test plan
6236* [TestScript](testscript.html): The current status of the test script
6237* [ValueSet](valueset.html): The current status of the value set
6238</b><br>
6239   * Type: <b>token</b><br>
6240   * 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>
6241   * </p>
6242   */
6243  @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" )
6244  public static final String SP_STATUS = "status";
6245 /**
6246   * <b>Fluent Client</b> search parameter constant for <b>status</b>
6247   * <p>
6248   * Description: <b>Multiple Resources: 
6249
6250* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
6251* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
6252* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
6253* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
6254* [Citation](citation.html): The current status of the citation
6255* [CodeSystem](codesystem.html): The current status of the code system
6256* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
6257* [ConceptMap](conceptmap.html): The current status of the concept map
6258* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
6259* [EventDefinition](eventdefinition.html): The current status of the event definition
6260* [Evidence](evidence.html): The current status of the evidence
6261* [EvidenceReport](evidencereport.html): The current status of the evidence report
6262* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
6263* [ExampleScenario](examplescenario.html): The current status of the example scenario
6264* [GraphDefinition](graphdefinition.html): The current status of the graph definition
6265* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
6266* [Library](library.html): The current status of the library
6267* [Measure](measure.html): The current status of the measure
6268* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
6269* [MessageDefinition](messagedefinition.html): The current status of the message definition
6270* [NamingSystem](namingsystem.html): The current status of the naming system
6271* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
6272* [OperationDefinition](operationdefinition.html): The current status of the operation definition
6273* [PlanDefinition](plandefinition.html): The current status of the plan definition
6274* [Questionnaire](questionnaire.html): The current status of the questionnaire
6275* [Requirements](requirements.html): The current status of the requirements
6276* [SearchParameter](searchparameter.html): The current status of the search parameter
6277* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
6278* [StructureDefinition](structuredefinition.html): The current status of the structure definition
6279* [StructureMap](structuremap.html): The current status of the structure map
6280* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
6281* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
6282* [TestPlan](testplan.html): The current status of the test plan
6283* [TestScript](testscript.html): The current status of the test script
6284* [ValueSet](valueset.html): The current status of the value set
6285</b><br>
6286   * Type: <b>token</b><br>
6287   * 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>
6288   * </p>
6289   */
6290  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
6291
6292 /**
6293   * Search parameter: <b>url</b>
6294   * <p>
6295   * Description: <b>Multiple Resources: 
6296
6297* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
6298* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
6299* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
6300* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
6301* [Citation](citation.html): The uri that identifies the citation
6302* [CodeSystem](codesystem.html): The uri that identifies the code system
6303* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
6304* [ConceptMap](conceptmap.html): The URI that identifies the concept map
6305* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
6306* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
6307* [Evidence](evidence.html): The uri that identifies the evidence
6308* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
6309* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
6310* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
6311* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
6312* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
6313* [Library](library.html): The uri that identifies the library
6314* [Measure](measure.html): The uri that identifies the measure
6315* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
6316* [NamingSystem](namingsystem.html): The uri that identifies the naming system
6317* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
6318* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
6319* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
6320* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
6321* [Requirements](requirements.html): The uri that identifies the requirements
6322* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
6323* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
6324* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
6325* [StructureMap](structuremap.html): The uri that identifies the structure map
6326* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
6327* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
6328* [TestPlan](testplan.html): The uri that identifies the test plan
6329* [TestScript](testscript.html): The uri that identifies the test script
6330* [ValueSet](valueset.html): The uri that identifies the value set
6331</b><br>
6332   * Type: <b>uri</b><br>
6333   * 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>
6334   * </p>
6335   */
6336  @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" )
6337  public static final String SP_URL = "url";
6338 /**
6339   * <b>Fluent Client</b> search parameter constant for <b>url</b>
6340   * <p>
6341   * Description: <b>Multiple Resources: 
6342
6343* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
6344* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
6345* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
6346* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
6347* [Citation](citation.html): The uri that identifies the citation
6348* [CodeSystem](codesystem.html): The uri that identifies the code system
6349* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
6350* [ConceptMap](conceptmap.html): The URI that identifies the concept map
6351* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
6352* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
6353* [Evidence](evidence.html): The uri that identifies the evidence
6354* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
6355* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
6356* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
6357* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
6358* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
6359* [Library](library.html): The uri that identifies the library
6360* [Measure](measure.html): The uri that identifies the measure
6361* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
6362* [NamingSystem](namingsystem.html): The uri that identifies the naming system
6363* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
6364* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
6365* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
6366* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
6367* [Requirements](requirements.html): The uri that identifies the requirements
6368* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
6369* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
6370* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
6371* [StructureMap](structuremap.html): The uri that identifies the structure map
6372* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
6373* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
6374* [TestPlan](testplan.html): The uri that identifies the test plan
6375* [TestScript](testscript.html): The uri that identifies the test script
6376* [ValueSet](valueset.html): The uri that identifies the value set
6377</b><br>
6378   * Type: <b>uri</b><br>
6379   * 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>
6380   * </p>
6381   */
6382  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
6383
6384 /**
6385   * Search parameter: <b>version</b>
6386   * <p>
6387   * Description: <b>Multiple Resources: 
6388
6389* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
6390* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
6391* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
6392* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
6393* [Citation](citation.html): The business version of the citation
6394* [CodeSystem](codesystem.html): The business version of the code system
6395* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
6396* [ConceptMap](conceptmap.html): The business version of the concept map
6397* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
6398* [EventDefinition](eventdefinition.html): The business version of the event definition
6399* [Evidence](evidence.html): The business version of the evidence
6400* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
6401* [ExampleScenario](examplescenario.html): The business version of the example scenario
6402* [GraphDefinition](graphdefinition.html): The business version of the graph definition
6403* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
6404* [Library](library.html): The business version of the library
6405* [Measure](measure.html): The business version of the measure
6406* [MessageDefinition](messagedefinition.html): The business version of the message definition
6407* [NamingSystem](namingsystem.html): The business version of the naming system
6408* [OperationDefinition](operationdefinition.html): The business version of the operation definition
6409* [PlanDefinition](plandefinition.html): The business version of the plan definition
6410* [Questionnaire](questionnaire.html): The business version of the questionnaire
6411* [Requirements](requirements.html): The business version of the requirements
6412* [SearchParameter](searchparameter.html): The business version of the search parameter
6413* [StructureDefinition](structuredefinition.html): The business version of the structure definition
6414* [StructureMap](structuremap.html): The business version of the structure map
6415* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
6416* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
6417* [TestScript](testscript.html): The business version of the test script
6418* [ValueSet](valueset.html): The business version of the value set
6419</b><br>
6420   * Type: <b>token</b><br>
6421   * 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>
6422   * </p>
6423   */
6424  @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" )
6425  public static final String SP_VERSION = "version";
6426 /**
6427   * <b>Fluent Client</b> search parameter constant for <b>version</b>
6428   * <p>
6429   * Description: <b>Multiple Resources: 
6430
6431* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
6432* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
6433* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
6434* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
6435* [Citation](citation.html): The business version of the citation
6436* [CodeSystem](codesystem.html): The business version of the code system
6437* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
6438* [ConceptMap](conceptmap.html): The business version of the concept map
6439* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
6440* [EventDefinition](eventdefinition.html): The business version of the event definition
6441* [Evidence](evidence.html): The business version of the evidence
6442* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
6443* [ExampleScenario](examplescenario.html): The business version of the example scenario
6444* [GraphDefinition](graphdefinition.html): The business version of the graph definition
6445* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
6446* [Library](library.html): The business version of the library
6447* [Measure](measure.html): The business version of the measure
6448* [MessageDefinition](messagedefinition.html): The business version of the message definition
6449* [NamingSystem](namingsystem.html): The business version of the naming system
6450* [OperationDefinition](operationdefinition.html): The business version of the operation definition
6451* [PlanDefinition](plandefinition.html): The business version of the plan definition
6452* [Questionnaire](questionnaire.html): The business version of the questionnaire
6453* [Requirements](requirements.html): The business version of the requirements
6454* [SearchParameter](searchparameter.html): The business version of the search parameter
6455* [StructureDefinition](structuredefinition.html): The business version of the structure definition
6456* [StructureMap](structuremap.html): The business version of the structure map
6457* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
6458* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
6459* [TestScript](testscript.html): The business version of the test script
6460* [ValueSet](valueset.html): The business version of the value set
6461</b><br>
6462   * Type: <b>token</b><br>
6463   * 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>
6464   * </p>
6465   */
6466  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
6467
6468
6469}
6470