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 Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
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 curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a "System" used within the Identifier and Coding data types.
052 */
053@ResourceDef(name="NamingSystem", profile="http://hl7.org/fhir/StructureDefinition/NamingSystem")
054public class NamingSystem extends MetadataResource {
055
056    public enum NamingSystemIdentifierType {
057        /**
058         * An ISO object identifier; e.g. 1.2.3.4.5.
059         */
060        OID, 
061        /**
062         * A universally unique identifier of the form a5afddf4-e880-459b-876e-e4591b0acc11.
063         */
064        UUID, 
065        /**
066         * A uniform resource identifier (ideally a URL - uniform resource locator); e.g. http://unitsofmeasure.org.
067         */
068        URI, 
069        /**
070         * A short string published by HL7 for use in the V2 family of standsrds to idenfify a code system in the V12 coded data types CWE, CNE, and CF. The code values are also published by HL7 at http://www.hl7.org/Special/committees/vocab/table_0396/index.cfm
071         */
072        V2CSMNEMONIC, 
073        /**
074         * Some other type of unique identifier; e.g. HL7-assigned reserved string such as LN for LOINC.
075         */
076        OTHER, 
077        /**
078         * added to help the parsers with the generic types
079         */
080        NULL;
081        public static NamingSystemIdentifierType fromCode(String codeString) throws FHIRException {
082            if (codeString == null || "".equals(codeString))
083                return null;
084        if ("oid".equals(codeString))
085          return OID;
086        if ("uuid".equals(codeString))
087          return UUID;
088        if ("uri".equals(codeString))
089          return URI;
090        if ("v2csmnemonic".equals(codeString))
091          return V2CSMNEMONIC;
092        if ("other".equals(codeString))
093          return OTHER;
094        if (Configuration.isAcceptInvalidEnums())
095          return null;
096        else
097          throw new FHIRException("Unknown NamingSystemIdentifierType code '"+codeString+"'");
098        }
099        public String toCode() {
100          switch (this) {
101            case OID: return "oid";
102            case UUID: return "uuid";
103            case URI: return "uri";
104            case V2CSMNEMONIC: return "v2csmnemonic";
105            case OTHER: return "other";
106            case NULL: return null;
107            default: return "?";
108          }
109        }
110        public String getSystem() {
111          switch (this) {
112            case OID: return "http://hl7.org/fhir/namingsystem-identifier-type";
113            case UUID: return "http://hl7.org/fhir/namingsystem-identifier-type";
114            case URI: return "http://hl7.org/fhir/namingsystem-identifier-type";
115            case V2CSMNEMONIC: return "http://hl7.org/fhir/namingsystem-identifier-type";
116            case OTHER: return "http://hl7.org/fhir/namingsystem-identifier-type";
117            case NULL: return null;
118            default: return "?";
119          }
120        }
121        public String getDefinition() {
122          switch (this) {
123            case OID: return "An ISO object identifier; e.g. 1.2.3.4.5.";
124            case UUID: return "A universally unique identifier of the form a5afddf4-e880-459b-876e-e4591b0acc11.";
125            case URI: return "A uniform resource identifier (ideally a URL - uniform resource locator); e.g. http://unitsofmeasure.org.";
126            case V2CSMNEMONIC: return "A short string published by HL7 for use in the V2 family of standsrds to idenfify a code system in the V12 coded data types CWE, CNE, and CF. The code values are also published by HL7 at http://www.hl7.org/Special/committees/vocab/table_0396/index.cfm";
127            case OTHER: return "Some other type of unique identifier; e.g. HL7-assigned reserved string such as LN for LOINC.";
128            case NULL: return null;
129            default: return "?";
130          }
131        }
132        public String getDisplay() {
133          switch (this) {
134            case OID: return "OID";
135            case UUID: return "UUID";
136            case URI: return "URI";
137            case V2CSMNEMONIC: return "V2CSMNemonic";
138            case OTHER: return "Other";
139            case NULL: return null;
140            default: return "?";
141          }
142        }
143    }
144
145  public static class NamingSystemIdentifierTypeEnumFactory implements EnumFactory<NamingSystemIdentifierType> {
146    public NamingSystemIdentifierType fromCode(String codeString) throws IllegalArgumentException {
147      if (codeString == null || "".equals(codeString))
148            if (codeString == null || "".equals(codeString))
149                return null;
150        if ("oid".equals(codeString))
151          return NamingSystemIdentifierType.OID;
152        if ("uuid".equals(codeString))
153          return NamingSystemIdentifierType.UUID;
154        if ("uri".equals(codeString))
155          return NamingSystemIdentifierType.URI;
156        if ("v2csmnemonic".equals(codeString))
157          return NamingSystemIdentifierType.V2CSMNEMONIC;
158        if ("other".equals(codeString))
159          return NamingSystemIdentifierType.OTHER;
160        throw new IllegalArgumentException("Unknown NamingSystemIdentifierType code '"+codeString+"'");
161        }
162        public Enumeration<NamingSystemIdentifierType> fromType(Base code) throws FHIRException {
163          if (code == null)
164            return null;
165          if (code.isEmpty())
166            return new Enumeration<NamingSystemIdentifierType>(this);
167          String codeString = ((PrimitiveType) code).asStringValue();
168          if (codeString == null || "".equals(codeString))
169            return null;
170        if ("oid".equals(codeString))
171          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.OID);
172        if ("uuid".equals(codeString))
173          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.UUID);
174        if ("uri".equals(codeString))
175          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.URI);
176        if ("v2csmnemonic".equals(codeString))
177          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.V2CSMNEMONIC);
178        if ("other".equals(codeString))
179          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.OTHER);
180        throw new FHIRException("Unknown NamingSystemIdentifierType code '"+codeString+"'");
181        }
182    public String toCode(NamingSystemIdentifierType code) {
183      if (code == NamingSystemIdentifierType.OID)
184        return "oid";
185      if (code == NamingSystemIdentifierType.UUID)
186        return "uuid";
187      if (code == NamingSystemIdentifierType.URI)
188        return "uri";
189      if (code == NamingSystemIdentifierType.V2CSMNEMONIC)
190        return "v2csmnemonic";
191      if (code == NamingSystemIdentifierType.OTHER)
192        return "other";
193      return "?";
194      }
195    public String toSystem(NamingSystemIdentifierType code) {
196      return code.getSystem();
197      }
198    }
199
200    public enum NamingSystemType {
201        /**
202         * The naming system is used to define concepts and symbols to represent those concepts; e.g. UCUM, LOINC, NDC code, local lab codes, etc.
203         */
204        CODESYSTEM, 
205        /**
206         * The naming system is used to manage identifiers (e.g. license numbers, order numbers, etc.).
207         */
208        IDENTIFIER, 
209        /**
210         * The naming system is used as the root for other identifiers and naming systems.
211         */
212        ROOT, 
213        /**
214         * added to help the parsers with the generic types
215         */
216        NULL;
217        public static NamingSystemType fromCode(String codeString) throws FHIRException {
218            if (codeString == null || "".equals(codeString))
219                return null;
220        if ("codesystem".equals(codeString))
221          return CODESYSTEM;
222        if ("identifier".equals(codeString))
223          return IDENTIFIER;
224        if ("root".equals(codeString))
225          return ROOT;
226        if (Configuration.isAcceptInvalidEnums())
227          return null;
228        else
229          throw new FHIRException("Unknown NamingSystemType code '"+codeString+"'");
230        }
231        public String toCode() {
232          switch (this) {
233            case CODESYSTEM: return "codesystem";
234            case IDENTIFIER: return "identifier";
235            case ROOT: return "root";
236            case NULL: return null;
237            default: return "?";
238          }
239        }
240        public String getSystem() {
241          switch (this) {
242            case CODESYSTEM: return "http://hl7.org/fhir/namingsystem-type";
243            case IDENTIFIER: return "http://hl7.org/fhir/namingsystem-type";
244            case ROOT: return "http://hl7.org/fhir/namingsystem-type";
245            case NULL: return null;
246            default: return "?";
247          }
248        }
249        public String getDefinition() {
250          switch (this) {
251            case CODESYSTEM: return "The naming system is used to define concepts and symbols to represent those concepts; e.g. UCUM, LOINC, NDC code, local lab codes, etc.";
252            case IDENTIFIER: return "The naming system is used to manage identifiers (e.g. license numbers, order numbers, etc.).";
253            case ROOT: return "The naming system is used as the root for other identifiers and naming systems.";
254            case NULL: return null;
255            default: return "?";
256          }
257        }
258        public String getDisplay() {
259          switch (this) {
260            case CODESYSTEM: return "Code System";
261            case IDENTIFIER: return "Identifier";
262            case ROOT: return "Root";
263            case NULL: return null;
264            default: return "?";
265          }
266        }
267    }
268
269  public static class NamingSystemTypeEnumFactory implements EnumFactory<NamingSystemType> {
270    public NamingSystemType fromCode(String codeString) throws IllegalArgumentException {
271      if (codeString == null || "".equals(codeString))
272            if (codeString == null || "".equals(codeString))
273                return null;
274        if ("codesystem".equals(codeString))
275          return NamingSystemType.CODESYSTEM;
276        if ("identifier".equals(codeString))
277          return NamingSystemType.IDENTIFIER;
278        if ("root".equals(codeString))
279          return NamingSystemType.ROOT;
280        throw new IllegalArgumentException("Unknown NamingSystemType code '"+codeString+"'");
281        }
282        public Enumeration<NamingSystemType> fromType(Base code) throws FHIRException {
283          if (code == null)
284            return null;
285          if (code.isEmpty())
286            return new Enumeration<NamingSystemType>(this);
287          String codeString = ((PrimitiveType) code).asStringValue();
288          if (codeString == null || "".equals(codeString))
289            return null;
290        if ("codesystem".equals(codeString))
291          return new Enumeration<NamingSystemType>(this, NamingSystemType.CODESYSTEM);
292        if ("identifier".equals(codeString))
293          return new Enumeration<NamingSystemType>(this, NamingSystemType.IDENTIFIER);
294        if ("root".equals(codeString))
295          return new Enumeration<NamingSystemType>(this, NamingSystemType.ROOT);
296        throw new FHIRException("Unknown NamingSystemType code '"+codeString+"'");
297        }
298    public String toCode(NamingSystemType code) {
299      if (code == NamingSystemType.CODESYSTEM)
300        return "codesystem";
301      if (code == NamingSystemType.IDENTIFIER)
302        return "identifier";
303      if (code == NamingSystemType.ROOT)
304        return "root";
305      return "?";
306      }
307    public String toSystem(NamingSystemType code) {
308      return code.getSystem();
309      }
310    }
311
312    @Block()
313    public static class NamingSystemUniqueIdComponent extends BackboneElement implements IBaseBackboneElement {
314        /**
315         * Identifies the unique identifier scheme used for this particular identifier.
316         */
317        @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
318        @Description(shortDefinition="oid | uuid | uri | v2csmnemonic | other", formalDefinition="Identifies the unique identifier scheme used for this particular identifier." )
319        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/namingsystem-identifier-type")
320        protected Enumeration<NamingSystemIdentifierType> type;
321
322        /**
323         * The string that should be sent over the wire to identify the code system or identifier system.
324         */
325        @Child(name = "value", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=true)
326        @Description(shortDefinition="The unique identifier", formalDefinition="The string that should be sent over the wire to identify the code system or identifier system." )
327        protected StringType value;
328
329        /**
330         * Indicates whether this identifier is the "preferred" identifier of this type.
331         */
332        @Child(name = "preferred", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false)
333        @Description(shortDefinition="Is this the id that should be used for this type", formalDefinition="Indicates whether this identifier is the \"preferred\" identifier of this type." )
334        protected BooleanType preferred;
335
336        /**
337         * Notes about the past or intended usage of this identifier.
338         */
339        @Child(name = "comment", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
340        @Description(shortDefinition="Notes about identifier usage", formalDefinition="Notes about the past or intended usage of this identifier." )
341        protected StringType comment;
342
343        /**
344         * Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic.
345         */
346        @Child(name = "period", type = {Period.class}, order=5, min=0, max=1, modifier=false, summary=false)
347        @Description(shortDefinition="When is identifier valid?", formalDefinition="Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic." )
348        protected Period period;
349
350        /**
351         * Indicates whether this identifier ie endorsed by the official owner of the associated naming system.
352         */
353        @Child(name = "authoritative", type = {BooleanType.class}, order=6, min=0, max=1, modifier=false, summary=false)
354        @Description(shortDefinition="Whether the identifier is authoritative", formalDefinition="Indicates whether this identifier ie endorsed by the official owner of the associated naming system." )
355        protected BooleanType authoritative;
356
357        private static final long serialVersionUID = -166953751L;
358
359    /**
360     * Constructor
361     */
362      public NamingSystemUniqueIdComponent() {
363        super();
364      }
365
366    /**
367     * Constructor
368     */
369      public NamingSystemUniqueIdComponent(NamingSystemIdentifierType type, String value) {
370        super();
371        this.setType(type);
372        this.setValue(value);
373      }
374
375        /**
376         * @return {@link #type} (Identifies the unique identifier scheme used for this particular identifier.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
377         */
378        public Enumeration<NamingSystemIdentifierType> getTypeElement() { 
379          if (this.type == null)
380            if (Configuration.errorOnAutoCreate())
381              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.type");
382            else if (Configuration.doAutoCreate())
383              this.type = new Enumeration<NamingSystemIdentifierType>(new NamingSystemIdentifierTypeEnumFactory()); // bb
384          return this.type;
385        }
386
387        public boolean hasTypeElement() { 
388          return this.type != null && !this.type.isEmpty();
389        }
390
391        public boolean hasType() { 
392          return this.type != null && !this.type.isEmpty();
393        }
394
395        /**
396         * @param value {@link #type} (Identifies the unique identifier scheme used for this particular identifier.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
397         */
398        public NamingSystemUniqueIdComponent setTypeElement(Enumeration<NamingSystemIdentifierType> value) { 
399          this.type = value;
400          return this;
401        }
402
403        /**
404         * @return Identifies the unique identifier scheme used for this particular identifier.
405         */
406        public NamingSystemIdentifierType getType() { 
407          return this.type == null ? null : this.type.getValue();
408        }
409
410        /**
411         * @param value Identifies the unique identifier scheme used for this particular identifier.
412         */
413        public NamingSystemUniqueIdComponent setType(NamingSystemIdentifierType value) { 
414            if (this.type == null)
415              this.type = new Enumeration<NamingSystemIdentifierType>(new NamingSystemIdentifierTypeEnumFactory());
416            this.type.setValue(value);
417          return this;
418        }
419
420        /**
421         * @return {@link #value} (The string that should be sent over the wire to identify the code system or identifier system.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
422         */
423        public StringType getValueElement() { 
424          if (this.value == null)
425            if (Configuration.errorOnAutoCreate())
426              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.value");
427            else if (Configuration.doAutoCreate())
428              this.value = new StringType(); // bb
429          return this.value;
430        }
431
432        public boolean hasValueElement() { 
433          return this.value != null && !this.value.isEmpty();
434        }
435
436        public boolean hasValue() { 
437          return this.value != null && !this.value.isEmpty();
438        }
439
440        /**
441         * @param value {@link #value} (The string that should be sent over the wire to identify the code system or identifier system.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
442         */
443        public NamingSystemUniqueIdComponent setValueElement(StringType value) { 
444          this.value = value;
445          return this;
446        }
447
448        /**
449         * @return The string that should be sent over the wire to identify the code system or identifier system.
450         */
451        public String getValue() { 
452          return this.value == null ? null : this.value.getValue();
453        }
454
455        /**
456         * @param value The string that should be sent over the wire to identify the code system or identifier system.
457         */
458        public NamingSystemUniqueIdComponent setValue(String value) { 
459            if (this.value == null)
460              this.value = new StringType();
461            this.value.setValue(value);
462          return this;
463        }
464
465        /**
466         * @return {@link #preferred} (Indicates whether this identifier is the "preferred" identifier of this type.). This is the underlying object with id, value and extensions. The accessor "getPreferred" gives direct access to the value
467         */
468        public BooleanType getPreferredElement() { 
469          if (this.preferred == null)
470            if (Configuration.errorOnAutoCreate())
471              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.preferred");
472            else if (Configuration.doAutoCreate())
473              this.preferred = new BooleanType(); // bb
474          return this.preferred;
475        }
476
477        public boolean hasPreferredElement() { 
478          return this.preferred != null && !this.preferred.isEmpty();
479        }
480
481        public boolean hasPreferred() { 
482          return this.preferred != null && !this.preferred.isEmpty();
483        }
484
485        /**
486         * @param value {@link #preferred} (Indicates whether this identifier is the "preferred" identifier of this type.). This is the underlying object with id, value and extensions. The accessor "getPreferred" gives direct access to the value
487         */
488        public NamingSystemUniqueIdComponent setPreferredElement(BooleanType value) { 
489          this.preferred = value;
490          return this;
491        }
492
493        /**
494         * @return Indicates whether this identifier is the "preferred" identifier of this type.
495         */
496        public boolean getPreferred() { 
497          return this.preferred == null || this.preferred.isEmpty() ? false : this.preferred.getValue();
498        }
499
500        /**
501         * @param value Indicates whether this identifier is the "preferred" identifier of this type.
502         */
503        public NamingSystemUniqueIdComponent setPreferred(boolean value) { 
504            if (this.preferred == null)
505              this.preferred = new BooleanType();
506            this.preferred.setValue(value);
507          return this;
508        }
509
510        /**
511         * @return {@link #comment} (Notes about the past or intended usage of this identifier.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
512         */
513        public StringType getCommentElement() { 
514          if (this.comment == null)
515            if (Configuration.errorOnAutoCreate())
516              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.comment");
517            else if (Configuration.doAutoCreate())
518              this.comment = new StringType(); // bb
519          return this.comment;
520        }
521
522        public boolean hasCommentElement() { 
523          return this.comment != null && !this.comment.isEmpty();
524        }
525
526        public boolean hasComment() { 
527          return this.comment != null && !this.comment.isEmpty();
528        }
529
530        /**
531         * @param value {@link #comment} (Notes about the past or intended usage of this identifier.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
532         */
533        public NamingSystemUniqueIdComponent setCommentElement(StringType value) { 
534          this.comment = value;
535          return this;
536        }
537
538        /**
539         * @return Notes about the past or intended usage of this identifier.
540         */
541        public String getComment() { 
542          return this.comment == null ? null : this.comment.getValue();
543        }
544
545        /**
546         * @param value Notes about the past or intended usage of this identifier.
547         */
548        public NamingSystemUniqueIdComponent setComment(String value) { 
549          if (Utilities.noString(value))
550            this.comment = null;
551          else {
552            if (this.comment == null)
553              this.comment = new StringType();
554            this.comment.setValue(value);
555          }
556          return this;
557        }
558
559        /**
560         * @return {@link #period} (Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic.)
561         */
562        public Period getPeriod() { 
563          if (this.period == null)
564            if (Configuration.errorOnAutoCreate())
565              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.period");
566            else if (Configuration.doAutoCreate())
567              this.period = new Period(); // cc
568          return this.period;
569        }
570
571        public boolean hasPeriod() { 
572          return this.period != null && !this.period.isEmpty();
573        }
574
575        /**
576         * @param value {@link #period} (Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic.)
577         */
578        public NamingSystemUniqueIdComponent setPeriod(Period value) { 
579          this.period = value;
580          return this;
581        }
582
583        /**
584         * @return {@link #authoritative} (Indicates whether this identifier ie endorsed by the official owner of the associated naming system.). This is the underlying object with id, value and extensions. The accessor "getAuthoritative" gives direct access to the value
585         */
586        public BooleanType getAuthoritativeElement() { 
587          if (this.authoritative == null)
588            if (Configuration.errorOnAutoCreate())
589              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.authoritative");
590            else if (Configuration.doAutoCreate())
591              this.authoritative = new BooleanType(); // bb
592          return this.authoritative;
593        }
594
595        public boolean hasAuthoritativeElement() { 
596          return this.authoritative != null && !this.authoritative.isEmpty();
597        }
598
599        public boolean hasAuthoritative() { 
600          return this.authoritative != null && !this.authoritative.isEmpty();
601        }
602
603        /**
604         * @param value {@link #authoritative} (Indicates whether this identifier ie endorsed by the official owner of the associated naming system.). This is the underlying object with id, value and extensions. The accessor "getAuthoritative" gives direct access to the value
605         */
606        public NamingSystemUniqueIdComponent setAuthoritativeElement(BooleanType value) { 
607          this.authoritative = value;
608          return this;
609        }
610
611        /**
612         * @return Indicates whether this identifier ie endorsed by the official owner of the associated naming system.
613         */
614        public boolean getAuthoritative() { 
615          return this.authoritative == null || this.authoritative.isEmpty() ? false : this.authoritative.getValue();
616        }
617
618        /**
619         * @param value Indicates whether this identifier ie endorsed by the official owner of the associated naming system.
620         */
621        public NamingSystemUniqueIdComponent setAuthoritative(boolean value) { 
622            if (this.authoritative == null)
623              this.authoritative = new BooleanType();
624            this.authoritative.setValue(value);
625          return this;
626        }
627
628        protected void listChildren(List<Property> children) {
629          super.listChildren(children);
630          children.add(new Property("type", "code", "Identifies the unique identifier scheme used for this particular identifier.", 0, 1, type));
631          children.add(new Property("value", "string", "The string that should be sent over the wire to identify the code system or identifier system.", 0, 1, value));
632          children.add(new Property("preferred", "boolean", "Indicates whether this identifier is the \"preferred\" identifier of this type.", 0, 1, preferred));
633          children.add(new Property("comment", "string", "Notes about the past or intended usage of this identifier.", 0, 1, comment));
634          children.add(new Property("period", "Period", "Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic.", 0, 1, period));
635          children.add(new Property("authoritative", "boolean", "Indicates whether this identifier ie endorsed by the official owner of the associated naming system.", 0, 1, authoritative));
636        }
637
638        @Override
639        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
640          switch (_hash) {
641          case 3575610: /*type*/  return new Property("type", "code", "Identifies the unique identifier scheme used for this particular identifier.", 0, 1, type);
642          case 111972721: /*value*/  return new Property("value", "string", "The string that should be sent over the wire to identify the code system or identifier system.", 0, 1, value);
643          case -1294005119: /*preferred*/  return new Property("preferred", "boolean", "Indicates whether this identifier is the \"preferred\" identifier of this type.", 0, 1, preferred);
644          case 950398559: /*comment*/  return new Property("comment", "string", "Notes about the past or intended usage of this identifier.", 0, 1, comment);
645          case -991726143: /*period*/  return new Property("period", "Period", "Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic.", 0, 1, period);
646          case -1557344881: /*authoritative*/  return new Property("authoritative", "boolean", "Indicates whether this identifier ie endorsed by the official owner of the associated naming system.", 0, 1, authoritative);
647          default: return super.getNamedProperty(_hash, _name, _checkValid);
648          }
649
650        }
651
652      @Override
653      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
654        switch (hash) {
655        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<NamingSystemIdentifierType>
656        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType
657        case -1294005119: /*preferred*/ return this.preferred == null ? new Base[0] : new Base[] {this.preferred}; // BooleanType
658        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType
659        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
660        case -1557344881: /*authoritative*/ return this.authoritative == null ? new Base[0] : new Base[] {this.authoritative}; // BooleanType
661        default: return super.getProperty(hash, name, checkValid);
662        }
663
664      }
665
666      @Override
667      public Base setProperty(int hash, String name, Base value) throws FHIRException {
668        switch (hash) {
669        case 3575610: // type
670          value = new NamingSystemIdentifierTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
671          this.type = (Enumeration) value; // Enumeration<NamingSystemIdentifierType>
672          return value;
673        case 111972721: // value
674          this.value = TypeConvertor.castToString(value); // StringType
675          return value;
676        case -1294005119: // preferred
677          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
678          return value;
679        case 950398559: // comment
680          this.comment = TypeConvertor.castToString(value); // StringType
681          return value;
682        case -991726143: // period
683          this.period = TypeConvertor.castToPeriod(value); // Period
684          return value;
685        case -1557344881: // authoritative
686          this.authoritative = TypeConvertor.castToBoolean(value); // BooleanType
687          return value;
688        default: return super.setProperty(hash, name, value);
689        }
690
691      }
692
693      @Override
694      public Base setProperty(String name, Base value) throws FHIRException {
695        if (name.equals("type")) {
696          value = new NamingSystemIdentifierTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
697          this.type = (Enumeration) value; // Enumeration<NamingSystemIdentifierType>
698        } else if (name.equals("value")) {
699          this.value = TypeConvertor.castToString(value); // StringType
700        } else if (name.equals("preferred")) {
701          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
702        } else if (name.equals("comment")) {
703          this.comment = TypeConvertor.castToString(value); // StringType
704        } else if (name.equals("period")) {
705          this.period = TypeConvertor.castToPeriod(value); // Period
706        } else if (name.equals("authoritative")) {
707          this.authoritative = TypeConvertor.castToBoolean(value); // BooleanType
708        } else
709          return super.setProperty(name, value);
710        return value;
711      }
712
713      @Override
714      public Base makeProperty(int hash, String name) throws FHIRException {
715        switch (hash) {
716        case 3575610:  return getTypeElement();
717        case 111972721:  return getValueElement();
718        case -1294005119:  return getPreferredElement();
719        case 950398559:  return getCommentElement();
720        case -991726143:  return getPeriod();
721        case -1557344881:  return getAuthoritativeElement();
722        default: return super.makeProperty(hash, name);
723        }
724
725      }
726
727      @Override
728      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
729        switch (hash) {
730        case 3575610: /*type*/ return new String[] {"code"};
731        case 111972721: /*value*/ return new String[] {"string"};
732        case -1294005119: /*preferred*/ return new String[] {"boolean"};
733        case 950398559: /*comment*/ return new String[] {"string"};
734        case -991726143: /*period*/ return new String[] {"Period"};
735        case -1557344881: /*authoritative*/ return new String[] {"boolean"};
736        default: return super.getTypesForProperty(hash, name);
737        }
738
739      }
740
741      @Override
742      public Base addChild(String name) throws FHIRException {
743        if (name.equals("type")) {
744          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.type");
745        }
746        else if (name.equals("value")) {
747          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.value");
748        }
749        else if (name.equals("preferred")) {
750          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.preferred");
751        }
752        else if (name.equals("comment")) {
753          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.comment");
754        }
755        else if (name.equals("period")) {
756          this.period = new Period();
757          return this.period;
758        }
759        else if (name.equals("authoritative")) {
760          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.authoritative");
761        }
762        else
763          return super.addChild(name);
764      }
765
766      public NamingSystemUniqueIdComponent copy() {
767        NamingSystemUniqueIdComponent dst = new NamingSystemUniqueIdComponent();
768        copyValues(dst);
769        return dst;
770      }
771
772      public void copyValues(NamingSystemUniqueIdComponent dst) {
773        super.copyValues(dst);
774        dst.type = type == null ? null : type.copy();
775        dst.value = value == null ? null : value.copy();
776        dst.preferred = preferred == null ? null : preferred.copy();
777        dst.comment = comment == null ? null : comment.copy();
778        dst.period = period == null ? null : period.copy();
779        dst.authoritative = authoritative == null ? null : authoritative.copy();
780      }
781
782      @Override
783      public boolean equalsDeep(Base other_) {
784        if (!super.equalsDeep(other_))
785          return false;
786        if (!(other_ instanceof NamingSystemUniqueIdComponent))
787          return false;
788        NamingSystemUniqueIdComponent o = (NamingSystemUniqueIdComponent) other_;
789        return compareDeep(type, o.type, true) && compareDeep(value, o.value, true) && compareDeep(preferred, o.preferred, true)
790           && compareDeep(comment, o.comment, true) && compareDeep(period, o.period, true) && compareDeep(authoritative, o.authoritative, true)
791          ;
792      }
793
794      @Override
795      public boolean equalsShallow(Base other_) {
796        if (!super.equalsShallow(other_))
797          return false;
798        if (!(other_ instanceof NamingSystemUniqueIdComponent))
799          return false;
800        NamingSystemUniqueIdComponent o = (NamingSystemUniqueIdComponent) other_;
801        return compareValues(type, o.type, true) && compareValues(value, o.value, true) && compareValues(preferred, o.preferred, true)
802           && compareValues(comment, o.comment, true) && compareValues(authoritative, o.authoritative, true);
803      }
804
805      public boolean isEmpty() {
806        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value, preferred, comment
807          , period, authoritative);
808      }
809
810  public String fhirType() {
811    return "NamingSystem.uniqueId";
812
813  }
814
815  }
816
817    /**
818     * An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.
819     */
820    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
821    @Description(shortDefinition="Canonical identifier for this naming system, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers." )
822    protected UriType url;
823
824    /**
825     * A formal identifier that is used to identify this naming system when it is represented in other formats, or referenced in a specification, model, design or an instance.
826     */
827    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
828    @Description(shortDefinition="Additional identifier for the naming system (business identifier)", formalDefinition="A formal identifier that is used to identify this naming system when it is represented in other formats, or referenced in a specification, model, design or an instance." )
829    protected List<Identifier> identifier;
830
831    /**
832     * The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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.
833     */
834    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
835    @Description(shortDefinition="Business version of the naming system", formalDefinition="The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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." )
836    protected StringType version;
837
838    /**
839     * A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.
840     */
841    @Child(name = "name", type = {StringType.class}, order=3, min=1, max=1, modifier=false, summary=true)
842    @Description(shortDefinition="Name for this naming system (computer friendly)", formalDefinition="A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
843    protected StringType name;
844
845    /**
846     * A short, descriptive, user-friendly title for the naming system.
847     */
848    @Child(name = "title", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
849    @Description(shortDefinition="Title for this naming system (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the naming system." )
850    protected StringType title;
851
852    /**
853     * The status of this naming system. Enables tracking the life-cycle of the content.
854     */
855    @Child(name = "status", type = {CodeType.class}, order=5, min=1, max=1, modifier=true, summary=true)
856    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this naming system. Enables tracking the life-cycle of the content." )
857    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
858    protected Enumeration<PublicationStatus> status;
859
860    /**
861     * Indicates the purpose for the naming system - what kinds of things does it make unique?
862     */
863    @Child(name = "kind", type = {CodeType.class}, order=6, min=1, max=1, modifier=false, summary=true)
864    @Description(shortDefinition="codesystem | identifier | root", formalDefinition="Indicates the purpose for the naming system - what kinds of things does it make unique?" )
865    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/namingsystem-type")
866    protected Enumeration<NamingSystemType> kind;
867
868    /**
869     * A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
870     */
871    @Child(name = "experimental", type = {BooleanType.class}, order=7, min=0, max=1, modifier=false, summary=true)
872    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
873    protected BooleanType experimental;
874
875    /**
876     * The date  (and optionally time) when the naming system was published. 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 naming system changes.
877     */
878    @Child(name = "date", type = {DateTimeType.class}, order=8, min=1, max=1, modifier=false, summary=true)
879    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the naming system was published. 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 naming system changes." )
880    protected DateTimeType date;
881
882    /**
883     * The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.
884     */
885    @Child(name = "publisher", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true)
886    @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 naming system." )
887    protected StringType publisher;
888
889    /**
890     * Contact details to assist a user in finding and communicating with the publisher.
891     */
892    @Child(name = "contact", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
893    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
894    protected List<ContactDetail> contact;
895
896    /**
897     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
898     */
899    @Child(name = "responsible", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=false)
900    @Description(shortDefinition="Who maintains system namespace?", formalDefinition="The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision." )
901    protected StringType responsible;
902
903    /**
904     * Categorizes a naming system for easier search by grouping related naming systems.
905     */
906    @Child(name = "type", type = {CodeableConcept.class}, order=12, min=0, max=1, modifier=false, summary=false)
907    @Description(shortDefinition="e.g. driver,  provider,  patient, bank etc.", formalDefinition="Categorizes a naming system for easier search by grouping related naming systems." )
908    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/namingsystem-identifier-system-type")
909    protected CodeableConcept type;
910
911    /**
912     * A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.
913     */
914    @Child(name = "description", type = {MarkdownType.class}, order=13, min=0, max=1, modifier=false, summary=false)
915    @Description(shortDefinition="Natural language description of the naming system", formalDefinition="A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc." )
916    protected MarkdownType description;
917
918    /**
919     * 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 naming system instances.
920     */
921    @Child(name = "useContext", type = {UsageContext.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
922    @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 naming system instances." )
923    protected List<UsageContext> useContext;
924
925    /**
926     * A legal or geographic region in which the naming system is intended to be used.
927     */
928    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
929    @Description(shortDefinition="Intended jurisdiction for naming system (if applicable)", formalDefinition="A legal or geographic region in which the naming system is intended to be used." )
930    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
931    protected List<CodeableConcept> jurisdiction;
932
933    /**
934     * Explanation of why this naming system is needed and why it has been designed as it has.
935     */
936    @Child(name = "purpose", type = {MarkdownType.class}, order=16, min=0, max=1, modifier=false, summary=false)
937    @Description(shortDefinition="Why this naming system is defined", formalDefinition="Explanation of why this naming system is needed and why it has been designed as it has." )
938    protected MarkdownType purpose;
939
940    /**
941     * A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.
942     */
943    @Child(name = "copyright", type = {MarkdownType.class}, order=17, min=0, max=1, modifier=false, summary=false)
944    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system." )
945    protected MarkdownType copyright;
946
947    /**
948     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
949     */
950    @Child(name = "approvalDate", type = {DateType.class}, order=18, min=0, max=1, modifier=false, summary=false)
951    @Description(shortDefinition="When the NamingSystem was approved by publisher", formalDefinition="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage." )
952    protected DateType approvalDate;
953
954    /**
955     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
956     */
957    @Child(name = "lastReviewDate", type = {DateType.class}, order=19, min=0, max=1, modifier=false, summary=false)
958    @Description(shortDefinition="When the NamingSystem was last reviewed", formalDefinition="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date." )
959    protected DateType lastReviewDate;
960
961    /**
962     * The period during which the NamingSystem content was or is planned to be in active use.
963     */
964    @Child(name = "effectivePeriod", type = {Period.class}, order=20, min=0, max=1, modifier=false, summary=true)
965    @Description(shortDefinition="When the NamingSystem is expected to be used", formalDefinition="The period during which the NamingSystem content was or is planned to be in active use." )
966    protected Period effectivePeriod;
967
968    /**
969     * Descriptions related to the content of the NamingSystem. Topics provide a high-level categorization as well as keywords for the NamingSystem that can be useful for filtering and searching.
970     */
971    @Child(name = "topic", type = {CodeableConcept.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
972    @Description(shortDefinition="E.g. Education, Treatment, Assessment, etc.", formalDefinition="Descriptions related to the content of the NamingSystem. Topics provide a high-level categorization as well as keywords for the NamingSystem that can be useful for filtering and searching." )
973    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic")
974    protected List<CodeableConcept> topic;
975
976    /**
977     * An individiual or organization primarily involved in the creation and maintenance of the NamingSystem.
978     */
979    @Child(name = "author", type = {ContactDetail.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
980    @Description(shortDefinition="Who authored the CodeSystem", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the NamingSystem." )
981    protected List<ContactDetail> author;
982
983    /**
984     * An individual or organization primarily responsible for internal coherence of the NamingSystem.
985     */
986    @Child(name = "editor", type = {ContactDetail.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
987    @Description(shortDefinition="Who edited the NamingSystem", formalDefinition="An individual or organization primarily responsible for internal coherence of the NamingSystem." )
988    protected List<ContactDetail> editor;
989
990    /**
991     * An individual or organization primarily responsible for review of some aspect of the NamingSystem.
992     */
993    @Child(name = "reviewer", type = {ContactDetail.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
994    @Description(shortDefinition="Who reviewed the NamingSystem", formalDefinition="An individual or organization primarily responsible for review of some aspect of the NamingSystem." )
995    protected List<ContactDetail> reviewer;
996
997    /**
998     * An individual or organization responsible for officially endorsing the NamingSystem for use in some setting.
999     */
1000    @Child(name = "endorser", type = {ContactDetail.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1001    @Description(shortDefinition="Who endorsed the NamingSystem", formalDefinition="An individual or organization responsible for officially endorsing the NamingSystem for use in some setting." )
1002    protected List<ContactDetail> endorser;
1003
1004    /**
1005     * Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.
1006     */
1007    @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1008    @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts." )
1009    protected List<RelatedArtifact> relatedArtifact;
1010
1011    /**
1012     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1013     */
1014    @Child(name = "usage", type = {StringType.class}, order=27, min=0, max=1, modifier=false, summary=false)
1015    @Description(shortDefinition="How/where is it used", formalDefinition="Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc." )
1016    protected StringType usage;
1017
1018    /**
1019     * Indicates how the system may be identified when referenced in electronic exchange.
1020     */
1021    @Child(name = "uniqueId", type = {}, order=28, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1022    @Description(shortDefinition="Unique identifiers used for system", formalDefinition="Indicates how the system may be identified when referenced in electronic exchange." )
1023    protected List<NamingSystemUniqueIdComponent> uniqueId;
1024
1025    private static final long serialVersionUID = -1376552858L;
1026
1027  /**
1028   * Constructor
1029   */
1030    public NamingSystem() {
1031      super();
1032    }
1033
1034  /**
1035   * Constructor
1036   */
1037    public NamingSystem(String name, PublicationStatus status, NamingSystemType kind, Date date, NamingSystemUniqueIdComponent uniqueId) {
1038      super();
1039      this.setName(name);
1040      this.setStatus(status);
1041      this.setKind(kind);
1042      this.setDate(date);
1043      this.addUniqueId(uniqueId);
1044    }
1045
1046    /**
1047     * @return {@link #url} (An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
1048     */
1049    public UriType getUrlElement() { 
1050      if (this.url == null)
1051        if (Configuration.errorOnAutoCreate())
1052          throw new Error("Attempt to auto-create NamingSystem.url");
1053        else if (Configuration.doAutoCreate())
1054          this.url = new UriType(); // bb
1055      return this.url;
1056    }
1057
1058    public boolean hasUrlElement() { 
1059      return this.url != null && !this.url.isEmpty();
1060    }
1061
1062    public boolean hasUrl() { 
1063      return this.url != null && !this.url.isEmpty();
1064    }
1065
1066    /**
1067     * @param value {@link #url} (An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
1068     */
1069    public NamingSystem setUrlElement(UriType value) { 
1070      this.url = value;
1071      return this;
1072    }
1073
1074    /**
1075     * @return An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.
1076     */
1077    public String getUrl() { 
1078      return this.url == null ? null : this.url.getValue();
1079    }
1080
1081    /**
1082     * @param value An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.
1083     */
1084    public NamingSystem setUrl(String value) { 
1085      if (Utilities.noString(value))
1086        this.url = null;
1087      else {
1088        if (this.url == null)
1089          this.url = new UriType();
1090        this.url.setValue(value);
1091      }
1092      return this;
1093    }
1094
1095    /**
1096     * @return {@link #identifier} (A formal identifier that is used to identify this naming system when it is represented in other formats, or referenced in a specification, model, design or an instance.)
1097     */
1098    public List<Identifier> getIdentifier() { 
1099      if (this.identifier == null)
1100        this.identifier = new ArrayList<Identifier>();
1101      return this.identifier;
1102    }
1103
1104    /**
1105     * @return Returns a reference to <code>this</code> for easy method chaining
1106     */
1107    public NamingSystem setIdentifier(List<Identifier> theIdentifier) { 
1108      this.identifier = theIdentifier;
1109      return this;
1110    }
1111
1112    public boolean hasIdentifier() { 
1113      if (this.identifier == null)
1114        return false;
1115      for (Identifier item : this.identifier)
1116        if (!item.isEmpty())
1117          return true;
1118      return false;
1119    }
1120
1121    public Identifier addIdentifier() { //3
1122      Identifier t = new Identifier();
1123      if (this.identifier == null)
1124        this.identifier = new ArrayList<Identifier>();
1125      this.identifier.add(t);
1126      return t;
1127    }
1128
1129    public NamingSystem addIdentifier(Identifier t) { //3
1130      if (t == null)
1131        return this;
1132      if (this.identifier == null)
1133        this.identifier = new ArrayList<Identifier>();
1134      this.identifier.add(t);
1135      return this;
1136    }
1137
1138    /**
1139     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
1140     */
1141    public Identifier getIdentifierFirstRep() { 
1142      if (getIdentifier().isEmpty()) {
1143        addIdentifier();
1144      }
1145      return getIdentifier().get(0);
1146    }
1147
1148    /**
1149     * @return {@link #version} (The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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
1150     */
1151    public StringType getVersionElement() { 
1152      if (this.version == null)
1153        if (Configuration.errorOnAutoCreate())
1154          throw new Error("Attempt to auto-create NamingSystem.version");
1155        else if (Configuration.doAutoCreate())
1156          this.version = new StringType(); // bb
1157      return this.version;
1158    }
1159
1160    public boolean hasVersionElement() { 
1161      return this.version != null && !this.version.isEmpty();
1162    }
1163
1164    public boolean hasVersion() { 
1165      return this.version != null && !this.version.isEmpty();
1166    }
1167
1168    /**
1169     * @param value {@link #version} (The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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
1170     */
1171    public NamingSystem setVersionElement(StringType value) { 
1172      this.version = value;
1173      return this;
1174    }
1175
1176    /**
1177     * @return The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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.
1178     */
1179    public String getVersion() { 
1180      return this.version == null ? null : this.version.getValue();
1181    }
1182
1183    /**
1184     * @param value The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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.
1185     */
1186    public NamingSystem setVersion(String value) { 
1187      if (Utilities.noString(value))
1188        this.version = null;
1189      else {
1190        if (this.version == null)
1191          this.version = new StringType();
1192        this.version.setValue(value);
1193      }
1194      return this;
1195    }
1196
1197    /**
1198     * @return {@link #name} (A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1199     */
1200    public StringType getNameElement() { 
1201      if (this.name == null)
1202        if (Configuration.errorOnAutoCreate())
1203          throw new Error("Attempt to auto-create NamingSystem.name");
1204        else if (Configuration.doAutoCreate())
1205          this.name = new StringType(); // bb
1206      return this.name;
1207    }
1208
1209    public boolean hasNameElement() { 
1210      return this.name != null && !this.name.isEmpty();
1211    }
1212
1213    public boolean hasName() { 
1214      return this.name != null && !this.name.isEmpty();
1215    }
1216
1217    /**
1218     * @param value {@link #name} (A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1219     */
1220    public NamingSystem setNameElement(StringType value) { 
1221      this.name = value;
1222      return this;
1223    }
1224
1225    /**
1226     * @return A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.
1227     */
1228    public String getName() { 
1229      return this.name == null ? null : this.name.getValue();
1230    }
1231
1232    /**
1233     * @param value A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.
1234     */
1235    public NamingSystem setName(String value) { 
1236        if (this.name == null)
1237          this.name = new StringType();
1238        this.name.setValue(value);
1239      return this;
1240    }
1241
1242    /**
1243     * @return {@link #title} (A short, descriptive, user-friendly title for the naming system.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1244     */
1245    public StringType getTitleElement() { 
1246      if (this.title == null)
1247        if (Configuration.errorOnAutoCreate())
1248          throw new Error("Attempt to auto-create NamingSystem.title");
1249        else if (Configuration.doAutoCreate())
1250          this.title = new StringType(); // bb
1251      return this.title;
1252    }
1253
1254    public boolean hasTitleElement() { 
1255      return this.title != null && !this.title.isEmpty();
1256    }
1257
1258    public boolean hasTitle() { 
1259      return this.title != null && !this.title.isEmpty();
1260    }
1261
1262    /**
1263     * @param value {@link #title} (A short, descriptive, user-friendly title for the naming system.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1264     */
1265    public NamingSystem setTitleElement(StringType value) { 
1266      this.title = value;
1267      return this;
1268    }
1269
1270    /**
1271     * @return A short, descriptive, user-friendly title for the naming system.
1272     */
1273    public String getTitle() { 
1274      return this.title == null ? null : this.title.getValue();
1275    }
1276
1277    /**
1278     * @param value A short, descriptive, user-friendly title for the naming system.
1279     */
1280    public NamingSystem setTitle(String value) { 
1281      if (Utilities.noString(value))
1282        this.title = null;
1283      else {
1284        if (this.title == null)
1285          this.title = new StringType();
1286        this.title.setValue(value);
1287      }
1288      return this;
1289    }
1290
1291    /**
1292     * @return {@link #status} (The status of this naming system. 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
1293     */
1294    public Enumeration<PublicationStatus> getStatusElement() { 
1295      if (this.status == null)
1296        if (Configuration.errorOnAutoCreate())
1297          throw new Error("Attempt to auto-create NamingSystem.status");
1298        else if (Configuration.doAutoCreate())
1299          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
1300      return this.status;
1301    }
1302
1303    public boolean hasStatusElement() { 
1304      return this.status != null && !this.status.isEmpty();
1305    }
1306
1307    public boolean hasStatus() { 
1308      return this.status != null && !this.status.isEmpty();
1309    }
1310
1311    /**
1312     * @param value {@link #status} (The status of this naming system. 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
1313     */
1314    public NamingSystem setStatusElement(Enumeration<PublicationStatus> value) { 
1315      this.status = value;
1316      return this;
1317    }
1318
1319    /**
1320     * @return The status of this naming system. Enables tracking the life-cycle of the content.
1321     */
1322    public PublicationStatus getStatus() { 
1323      return this.status == null ? null : this.status.getValue();
1324    }
1325
1326    /**
1327     * @param value The status of this naming system. Enables tracking the life-cycle of the content.
1328     */
1329    public NamingSystem setStatus(PublicationStatus value) { 
1330        if (this.status == null)
1331          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
1332        this.status.setValue(value);
1333      return this;
1334    }
1335
1336    /**
1337     * @return {@link #kind} (Indicates the purpose for the naming system - what kinds of things does it make unique?). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value
1338     */
1339    public Enumeration<NamingSystemType> getKindElement() { 
1340      if (this.kind == null)
1341        if (Configuration.errorOnAutoCreate())
1342          throw new Error("Attempt to auto-create NamingSystem.kind");
1343        else if (Configuration.doAutoCreate())
1344          this.kind = new Enumeration<NamingSystemType>(new NamingSystemTypeEnumFactory()); // bb
1345      return this.kind;
1346    }
1347
1348    public boolean hasKindElement() { 
1349      return this.kind != null && !this.kind.isEmpty();
1350    }
1351
1352    public boolean hasKind() { 
1353      return this.kind != null && !this.kind.isEmpty();
1354    }
1355
1356    /**
1357     * @param value {@link #kind} (Indicates the purpose for the naming system - what kinds of things does it make unique?). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value
1358     */
1359    public NamingSystem setKindElement(Enumeration<NamingSystemType> value) { 
1360      this.kind = value;
1361      return this;
1362    }
1363
1364    /**
1365     * @return Indicates the purpose for the naming system - what kinds of things does it make unique?
1366     */
1367    public NamingSystemType getKind() { 
1368      return this.kind == null ? null : this.kind.getValue();
1369    }
1370
1371    /**
1372     * @param value Indicates the purpose for the naming system - what kinds of things does it make unique?
1373     */
1374    public NamingSystem setKind(NamingSystemType value) { 
1375        if (this.kind == null)
1376          this.kind = new Enumeration<NamingSystemType>(new NamingSystemTypeEnumFactory());
1377        this.kind.setValue(value);
1378      return this;
1379    }
1380
1381    /**
1382     * @return {@link #experimental} (A Boolean value to indicate that this naming system 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
1383     */
1384    public BooleanType getExperimentalElement() { 
1385      if (this.experimental == null)
1386        if (Configuration.errorOnAutoCreate())
1387          throw new Error("Attempt to auto-create NamingSystem.experimental");
1388        else if (Configuration.doAutoCreate())
1389          this.experimental = new BooleanType(); // bb
1390      return this.experimental;
1391    }
1392
1393    public boolean hasExperimentalElement() { 
1394      return this.experimental != null && !this.experimental.isEmpty();
1395    }
1396
1397    public boolean hasExperimental() { 
1398      return this.experimental != null && !this.experimental.isEmpty();
1399    }
1400
1401    /**
1402     * @param value {@link #experimental} (A Boolean value to indicate that this naming system 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
1403     */
1404    public NamingSystem setExperimentalElement(BooleanType value) { 
1405      this.experimental = value;
1406      return this;
1407    }
1408
1409    /**
1410     * @return A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
1411     */
1412    public boolean getExperimental() { 
1413      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
1414    }
1415
1416    /**
1417     * @param value A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
1418     */
1419    public NamingSystem setExperimental(boolean value) { 
1420        if (this.experimental == null)
1421          this.experimental = new BooleanType();
1422        this.experimental.setValue(value);
1423      return this;
1424    }
1425
1426    /**
1427     * @return {@link #date} (The date  (and optionally time) when the naming system was published. 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 naming system changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
1428     */
1429    public DateTimeType getDateElement() { 
1430      if (this.date == null)
1431        if (Configuration.errorOnAutoCreate())
1432          throw new Error("Attempt to auto-create NamingSystem.date");
1433        else if (Configuration.doAutoCreate())
1434          this.date = new DateTimeType(); // bb
1435      return this.date;
1436    }
1437
1438    public boolean hasDateElement() { 
1439      return this.date != null && !this.date.isEmpty();
1440    }
1441
1442    public boolean hasDate() { 
1443      return this.date != null && !this.date.isEmpty();
1444    }
1445
1446    /**
1447     * @param value {@link #date} (The date  (and optionally time) when the naming system was published. 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 naming system changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
1448     */
1449    public NamingSystem setDateElement(DateTimeType value) { 
1450      this.date = value;
1451      return this;
1452    }
1453
1454    /**
1455     * @return The date  (and optionally time) when the naming system was published. 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 naming system changes.
1456     */
1457    public Date getDate() { 
1458      return this.date == null ? null : this.date.getValue();
1459    }
1460
1461    /**
1462     * @param value The date  (and optionally time) when the naming system was published. 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 naming system changes.
1463     */
1464    public NamingSystem setDate(Date value) { 
1465        if (this.date == null)
1466          this.date = new DateTimeType();
1467        this.date.setValue(value);
1468      return this;
1469    }
1470
1471    /**
1472     * @return {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
1473     */
1474    public StringType getPublisherElement() { 
1475      if (this.publisher == null)
1476        if (Configuration.errorOnAutoCreate())
1477          throw new Error("Attempt to auto-create NamingSystem.publisher");
1478        else if (Configuration.doAutoCreate())
1479          this.publisher = new StringType(); // bb
1480      return this.publisher;
1481    }
1482
1483    public boolean hasPublisherElement() { 
1484      return this.publisher != null && !this.publisher.isEmpty();
1485    }
1486
1487    public boolean hasPublisher() { 
1488      return this.publisher != null && !this.publisher.isEmpty();
1489    }
1490
1491    /**
1492     * @param value {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
1493     */
1494    public NamingSystem setPublisherElement(StringType value) { 
1495      this.publisher = value;
1496      return this;
1497    }
1498
1499    /**
1500     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.
1501     */
1502    public String getPublisher() { 
1503      return this.publisher == null ? null : this.publisher.getValue();
1504    }
1505
1506    /**
1507     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.
1508     */
1509    public NamingSystem setPublisher(String value) { 
1510      if (Utilities.noString(value))
1511        this.publisher = null;
1512      else {
1513        if (this.publisher == null)
1514          this.publisher = new StringType();
1515        this.publisher.setValue(value);
1516      }
1517      return this;
1518    }
1519
1520    /**
1521     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
1522     */
1523    public List<ContactDetail> getContact() { 
1524      if (this.contact == null)
1525        this.contact = new ArrayList<ContactDetail>();
1526      return this.contact;
1527    }
1528
1529    /**
1530     * @return Returns a reference to <code>this</code> for easy method chaining
1531     */
1532    public NamingSystem setContact(List<ContactDetail> theContact) { 
1533      this.contact = theContact;
1534      return this;
1535    }
1536
1537    public boolean hasContact() { 
1538      if (this.contact == null)
1539        return false;
1540      for (ContactDetail item : this.contact)
1541        if (!item.isEmpty())
1542          return true;
1543      return false;
1544    }
1545
1546    public ContactDetail addContact() { //3
1547      ContactDetail t = new ContactDetail();
1548      if (this.contact == null)
1549        this.contact = new ArrayList<ContactDetail>();
1550      this.contact.add(t);
1551      return t;
1552    }
1553
1554    public NamingSystem addContact(ContactDetail t) { //3
1555      if (t == null)
1556        return this;
1557      if (this.contact == null)
1558        this.contact = new ArrayList<ContactDetail>();
1559      this.contact.add(t);
1560      return this;
1561    }
1562
1563    /**
1564     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
1565     */
1566    public ContactDetail getContactFirstRep() { 
1567      if (getContact().isEmpty()) {
1568        addContact();
1569      }
1570      return getContact().get(0);
1571    }
1572
1573    /**
1574     * @return {@link #responsible} (The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.). This is the underlying object with id, value and extensions. The accessor "getResponsible" gives direct access to the value
1575     */
1576    public StringType getResponsibleElement() { 
1577      if (this.responsible == null)
1578        if (Configuration.errorOnAutoCreate())
1579          throw new Error("Attempt to auto-create NamingSystem.responsible");
1580        else if (Configuration.doAutoCreate())
1581          this.responsible = new StringType(); // bb
1582      return this.responsible;
1583    }
1584
1585    public boolean hasResponsibleElement() { 
1586      return this.responsible != null && !this.responsible.isEmpty();
1587    }
1588
1589    public boolean hasResponsible() { 
1590      return this.responsible != null && !this.responsible.isEmpty();
1591    }
1592
1593    /**
1594     * @param value {@link #responsible} (The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.). This is the underlying object with id, value and extensions. The accessor "getResponsible" gives direct access to the value
1595     */
1596    public NamingSystem setResponsibleElement(StringType value) { 
1597      this.responsible = value;
1598      return this;
1599    }
1600
1601    /**
1602     * @return The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1603     */
1604    public String getResponsible() { 
1605      return this.responsible == null ? null : this.responsible.getValue();
1606    }
1607
1608    /**
1609     * @param value The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1610     */
1611    public NamingSystem setResponsible(String value) { 
1612      if (Utilities.noString(value))
1613        this.responsible = null;
1614      else {
1615        if (this.responsible == null)
1616          this.responsible = new StringType();
1617        this.responsible.setValue(value);
1618      }
1619      return this;
1620    }
1621
1622    /**
1623     * @return {@link #type} (Categorizes a naming system for easier search by grouping related naming systems.)
1624     */
1625    public CodeableConcept getType() { 
1626      if (this.type == null)
1627        if (Configuration.errorOnAutoCreate())
1628          throw new Error("Attempt to auto-create NamingSystem.type");
1629        else if (Configuration.doAutoCreate())
1630          this.type = new CodeableConcept(); // cc
1631      return this.type;
1632    }
1633
1634    public boolean hasType() { 
1635      return this.type != null && !this.type.isEmpty();
1636    }
1637
1638    /**
1639     * @param value {@link #type} (Categorizes a naming system for easier search by grouping related naming systems.)
1640     */
1641    public NamingSystem setType(CodeableConcept value) { 
1642      this.type = value;
1643      return this;
1644    }
1645
1646    /**
1647     * @return {@link #description} (A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1648     */
1649    public MarkdownType getDescriptionElement() { 
1650      if (this.description == null)
1651        if (Configuration.errorOnAutoCreate())
1652          throw new Error("Attempt to auto-create NamingSystem.description");
1653        else if (Configuration.doAutoCreate())
1654          this.description = new MarkdownType(); // bb
1655      return this.description;
1656    }
1657
1658    public boolean hasDescriptionElement() { 
1659      return this.description != null && !this.description.isEmpty();
1660    }
1661
1662    public boolean hasDescription() { 
1663      return this.description != null && !this.description.isEmpty();
1664    }
1665
1666    /**
1667     * @param value {@link #description} (A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1668     */
1669    public NamingSystem setDescriptionElement(MarkdownType value) { 
1670      this.description = value;
1671      return this;
1672    }
1673
1674    /**
1675     * @return A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.
1676     */
1677    public String getDescription() { 
1678      return this.description == null ? null : this.description.getValue();
1679    }
1680
1681    /**
1682     * @param value A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.
1683     */
1684    public NamingSystem setDescription(String value) { 
1685      if (value == null)
1686        this.description = null;
1687      else {
1688        if (this.description == null)
1689          this.description = new MarkdownType();
1690        this.description.setValue(value);
1691      }
1692      return this;
1693    }
1694
1695    /**
1696     * @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 naming system instances.)
1697     */
1698    public List<UsageContext> getUseContext() { 
1699      if (this.useContext == null)
1700        this.useContext = new ArrayList<UsageContext>();
1701      return this.useContext;
1702    }
1703
1704    /**
1705     * @return Returns a reference to <code>this</code> for easy method chaining
1706     */
1707    public NamingSystem setUseContext(List<UsageContext> theUseContext) { 
1708      this.useContext = theUseContext;
1709      return this;
1710    }
1711
1712    public boolean hasUseContext() { 
1713      if (this.useContext == null)
1714        return false;
1715      for (UsageContext item : this.useContext)
1716        if (!item.isEmpty())
1717          return true;
1718      return false;
1719    }
1720
1721    public UsageContext addUseContext() { //3
1722      UsageContext t = new UsageContext();
1723      if (this.useContext == null)
1724        this.useContext = new ArrayList<UsageContext>();
1725      this.useContext.add(t);
1726      return t;
1727    }
1728
1729    public NamingSystem addUseContext(UsageContext t) { //3
1730      if (t == null)
1731        return this;
1732      if (this.useContext == null)
1733        this.useContext = new ArrayList<UsageContext>();
1734      this.useContext.add(t);
1735      return this;
1736    }
1737
1738    /**
1739     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
1740     */
1741    public UsageContext getUseContextFirstRep() { 
1742      if (getUseContext().isEmpty()) {
1743        addUseContext();
1744      }
1745      return getUseContext().get(0);
1746    }
1747
1748    /**
1749     * @return {@link #jurisdiction} (A legal or geographic region in which the naming system is intended to be used.)
1750     */
1751    public List<CodeableConcept> getJurisdiction() { 
1752      if (this.jurisdiction == null)
1753        this.jurisdiction = new ArrayList<CodeableConcept>();
1754      return this.jurisdiction;
1755    }
1756
1757    /**
1758     * @return Returns a reference to <code>this</code> for easy method chaining
1759     */
1760    public NamingSystem setJurisdiction(List<CodeableConcept> theJurisdiction) { 
1761      this.jurisdiction = theJurisdiction;
1762      return this;
1763    }
1764
1765    public boolean hasJurisdiction() { 
1766      if (this.jurisdiction == null)
1767        return false;
1768      for (CodeableConcept item : this.jurisdiction)
1769        if (!item.isEmpty())
1770          return true;
1771      return false;
1772    }
1773
1774    public CodeableConcept addJurisdiction() { //3
1775      CodeableConcept t = new CodeableConcept();
1776      if (this.jurisdiction == null)
1777        this.jurisdiction = new ArrayList<CodeableConcept>();
1778      this.jurisdiction.add(t);
1779      return t;
1780    }
1781
1782    public NamingSystem addJurisdiction(CodeableConcept t) { //3
1783      if (t == null)
1784        return this;
1785      if (this.jurisdiction == null)
1786        this.jurisdiction = new ArrayList<CodeableConcept>();
1787      this.jurisdiction.add(t);
1788      return this;
1789    }
1790
1791    /**
1792     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
1793     */
1794    public CodeableConcept getJurisdictionFirstRep() { 
1795      if (getJurisdiction().isEmpty()) {
1796        addJurisdiction();
1797      }
1798      return getJurisdiction().get(0);
1799    }
1800
1801    /**
1802     * @return {@link #purpose} (Explanation of why this naming system is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
1803     */
1804    public MarkdownType getPurposeElement() { 
1805      if (this.purpose == null)
1806        if (Configuration.errorOnAutoCreate())
1807          throw new Error("Attempt to auto-create NamingSystem.purpose");
1808        else if (Configuration.doAutoCreate())
1809          this.purpose = new MarkdownType(); // bb
1810      return this.purpose;
1811    }
1812
1813    public boolean hasPurposeElement() { 
1814      return this.purpose != null && !this.purpose.isEmpty();
1815    }
1816
1817    public boolean hasPurpose() { 
1818      return this.purpose != null && !this.purpose.isEmpty();
1819    }
1820
1821    /**
1822     * @param value {@link #purpose} (Explanation of why this naming system is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
1823     */
1824    public NamingSystem setPurposeElement(MarkdownType value) { 
1825      this.purpose = value;
1826      return this;
1827    }
1828
1829    /**
1830     * @return Explanation of why this naming system is needed and why it has been designed as it has.
1831     */
1832    public String getPurpose() { 
1833      return this.purpose == null ? null : this.purpose.getValue();
1834    }
1835
1836    /**
1837     * @param value Explanation of why this naming system is needed and why it has been designed as it has.
1838     */
1839    public NamingSystem setPurpose(String value) { 
1840      if (value == null)
1841        this.purpose = null;
1842      else {
1843        if (this.purpose == null)
1844          this.purpose = new MarkdownType();
1845        this.purpose.setValue(value);
1846      }
1847      return this;
1848    }
1849
1850    /**
1851     * @return {@link #copyright} (A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
1852     */
1853    public MarkdownType getCopyrightElement() { 
1854      if (this.copyright == null)
1855        if (Configuration.errorOnAutoCreate())
1856          throw new Error("Attempt to auto-create NamingSystem.copyright");
1857        else if (Configuration.doAutoCreate())
1858          this.copyright = new MarkdownType(); // bb
1859      return this.copyright;
1860    }
1861
1862    public boolean hasCopyrightElement() { 
1863      return this.copyright != null && !this.copyright.isEmpty();
1864    }
1865
1866    public boolean hasCopyright() { 
1867      return this.copyright != null && !this.copyright.isEmpty();
1868    }
1869
1870    /**
1871     * @param value {@link #copyright} (A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
1872     */
1873    public NamingSystem setCopyrightElement(MarkdownType value) { 
1874      this.copyright = value;
1875      return this;
1876    }
1877
1878    /**
1879     * @return A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.
1880     */
1881    public String getCopyright() { 
1882      return this.copyright == null ? null : this.copyright.getValue();
1883    }
1884
1885    /**
1886     * @param value A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.
1887     */
1888    public NamingSystem setCopyright(String value) { 
1889      if (value == null)
1890        this.copyright = null;
1891      else {
1892        if (this.copyright == null)
1893          this.copyright = new MarkdownType();
1894        this.copyright.setValue(value);
1895      }
1896      return this;
1897    }
1898
1899    /**
1900     * @return {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
1901     */
1902    public DateType getApprovalDateElement() { 
1903      if (this.approvalDate == null)
1904        if (Configuration.errorOnAutoCreate())
1905          throw new Error("Attempt to auto-create NamingSystem.approvalDate");
1906        else if (Configuration.doAutoCreate())
1907          this.approvalDate = new DateType(); // bb
1908      return this.approvalDate;
1909    }
1910
1911    public boolean hasApprovalDateElement() { 
1912      return this.approvalDate != null && !this.approvalDate.isEmpty();
1913    }
1914
1915    public boolean hasApprovalDate() { 
1916      return this.approvalDate != null && !this.approvalDate.isEmpty();
1917    }
1918
1919    /**
1920     * @param value {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
1921     */
1922    public NamingSystem setApprovalDateElement(DateType value) { 
1923      this.approvalDate = value;
1924      return this;
1925    }
1926
1927    /**
1928     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
1929     */
1930    public Date getApprovalDate() { 
1931      return this.approvalDate == null ? null : this.approvalDate.getValue();
1932    }
1933
1934    /**
1935     * @param value The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
1936     */
1937    public NamingSystem setApprovalDate(Date value) { 
1938      if (value == null)
1939        this.approvalDate = null;
1940      else {
1941        if (this.approvalDate == null)
1942          this.approvalDate = new DateType();
1943        this.approvalDate.setValue(value);
1944      }
1945      return this;
1946    }
1947
1948    /**
1949     * @return {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
1950     */
1951    public DateType getLastReviewDateElement() { 
1952      if (this.lastReviewDate == null)
1953        if (Configuration.errorOnAutoCreate())
1954          throw new Error("Attempt to auto-create NamingSystem.lastReviewDate");
1955        else if (Configuration.doAutoCreate())
1956          this.lastReviewDate = new DateType(); // bb
1957      return this.lastReviewDate;
1958    }
1959
1960    public boolean hasLastReviewDateElement() { 
1961      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
1962    }
1963
1964    public boolean hasLastReviewDate() { 
1965      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
1966    }
1967
1968    /**
1969     * @param value {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
1970     */
1971    public NamingSystem setLastReviewDateElement(DateType value) { 
1972      this.lastReviewDate = value;
1973      return this;
1974    }
1975
1976    /**
1977     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
1978     */
1979    public Date getLastReviewDate() { 
1980      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
1981    }
1982
1983    /**
1984     * @param value The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
1985     */
1986    public NamingSystem setLastReviewDate(Date value) { 
1987      if (value == null)
1988        this.lastReviewDate = null;
1989      else {
1990        if (this.lastReviewDate == null)
1991          this.lastReviewDate = new DateType();
1992        this.lastReviewDate.setValue(value);
1993      }
1994      return this;
1995    }
1996
1997    /**
1998     * @return {@link #effectivePeriod} (The period during which the NamingSystem content was or is planned to be in active use.)
1999     */
2000    public Period getEffectivePeriod() { 
2001      if (this.effectivePeriod == null)
2002        if (Configuration.errorOnAutoCreate())
2003          throw new Error("Attempt to auto-create NamingSystem.effectivePeriod");
2004        else if (Configuration.doAutoCreate())
2005          this.effectivePeriod = new Period(); // cc
2006      return this.effectivePeriod;
2007    }
2008
2009    public boolean hasEffectivePeriod() { 
2010      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
2011    }
2012
2013    /**
2014     * @param value {@link #effectivePeriod} (The period during which the NamingSystem content was or is planned to be in active use.)
2015     */
2016    public NamingSystem setEffectivePeriod(Period value) { 
2017      this.effectivePeriod = value;
2018      return this;
2019    }
2020
2021    /**
2022     * @return {@link #topic} (Descriptions related to the content of the NamingSystem. Topics provide a high-level categorization as well as keywords for the NamingSystem that can be useful for filtering and searching.)
2023     */
2024    public List<CodeableConcept> getTopic() { 
2025      if (this.topic == null)
2026        this.topic = new ArrayList<CodeableConcept>();
2027      return this.topic;
2028    }
2029
2030    /**
2031     * @return Returns a reference to <code>this</code> for easy method chaining
2032     */
2033    public NamingSystem setTopic(List<CodeableConcept> theTopic) { 
2034      this.topic = theTopic;
2035      return this;
2036    }
2037
2038    public boolean hasTopic() { 
2039      if (this.topic == null)
2040        return false;
2041      for (CodeableConcept item : this.topic)
2042        if (!item.isEmpty())
2043          return true;
2044      return false;
2045    }
2046
2047    public CodeableConcept addTopic() { //3
2048      CodeableConcept t = new CodeableConcept();
2049      if (this.topic == null)
2050        this.topic = new ArrayList<CodeableConcept>();
2051      this.topic.add(t);
2052      return t;
2053    }
2054
2055    public NamingSystem addTopic(CodeableConcept t) { //3
2056      if (t == null)
2057        return this;
2058      if (this.topic == null)
2059        this.topic = new ArrayList<CodeableConcept>();
2060      this.topic.add(t);
2061      return this;
2062    }
2063
2064    /**
2065     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist {3}
2066     */
2067    public CodeableConcept getTopicFirstRep() { 
2068      if (getTopic().isEmpty()) {
2069        addTopic();
2070      }
2071      return getTopic().get(0);
2072    }
2073
2074    /**
2075     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the NamingSystem.)
2076     */
2077    public List<ContactDetail> getAuthor() { 
2078      if (this.author == null)
2079        this.author = new ArrayList<ContactDetail>();
2080      return this.author;
2081    }
2082
2083    /**
2084     * @return Returns a reference to <code>this</code> for easy method chaining
2085     */
2086    public NamingSystem setAuthor(List<ContactDetail> theAuthor) { 
2087      this.author = theAuthor;
2088      return this;
2089    }
2090
2091    public boolean hasAuthor() { 
2092      if (this.author == null)
2093        return false;
2094      for (ContactDetail item : this.author)
2095        if (!item.isEmpty())
2096          return true;
2097      return false;
2098    }
2099
2100    public ContactDetail addAuthor() { //3
2101      ContactDetail t = new ContactDetail();
2102      if (this.author == null)
2103        this.author = new ArrayList<ContactDetail>();
2104      this.author.add(t);
2105      return t;
2106    }
2107
2108    public NamingSystem addAuthor(ContactDetail t) { //3
2109      if (t == null)
2110        return this;
2111      if (this.author == null)
2112        this.author = new ArrayList<ContactDetail>();
2113      this.author.add(t);
2114      return this;
2115    }
2116
2117    /**
2118     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3}
2119     */
2120    public ContactDetail getAuthorFirstRep() { 
2121      if (getAuthor().isEmpty()) {
2122        addAuthor();
2123      }
2124      return getAuthor().get(0);
2125    }
2126
2127    /**
2128     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the NamingSystem.)
2129     */
2130    public List<ContactDetail> getEditor() { 
2131      if (this.editor == null)
2132        this.editor = new ArrayList<ContactDetail>();
2133      return this.editor;
2134    }
2135
2136    /**
2137     * @return Returns a reference to <code>this</code> for easy method chaining
2138     */
2139    public NamingSystem setEditor(List<ContactDetail> theEditor) { 
2140      this.editor = theEditor;
2141      return this;
2142    }
2143
2144    public boolean hasEditor() { 
2145      if (this.editor == null)
2146        return false;
2147      for (ContactDetail item : this.editor)
2148        if (!item.isEmpty())
2149          return true;
2150      return false;
2151    }
2152
2153    public ContactDetail addEditor() { //3
2154      ContactDetail t = new ContactDetail();
2155      if (this.editor == null)
2156        this.editor = new ArrayList<ContactDetail>();
2157      this.editor.add(t);
2158      return t;
2159    }
2160
2161    public NamingSystem addEditor(ContactDetail t) { //3
2162      if (t == null)
2163        return this;
2164      if (this.editor == null)
2165        this.editor = new ArrayList<ContactDetail>();
2166      this.editor.add(t);
2167      return this;
2168    }
2169
2170    /**
2171     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {3}
2172     */
2173    public ContactDetail getEditorFirstRep() { 
2174      if (getEditor().isEmpty()) {
2175        addEditor();
2176      }
2177      return getEditor().get(0);
2178    }
2179
2180    /**
2181     * @return {@link #reviewer} (An individual or organization primarily responsible for review of some aspect of the NamingSystem.)
2182     */
2183    public List<ContactDetail> getReviewer() { 
2184      if (this.reviewer == null)
2185        this.reviewer = new ArrayList<ContactDetail>();
2186      return this.reviewer;
2187    }
2188
2189    /**
2190     * @return Returns a reference to <code>this</code> for easy method chaining
2191     */
2192    public NamingSystem setReviewer(List<ContactDetail> theReviewer) { 
2193      this.reviewer = theReviewer;
2194      return this;
2195    }
2196
2197    public boolean hasReviewer() { 
2198      if (this.reviewer == null)
2199        return false;
2200      for (ContactDetail item : this.reviewer)
2201        if (!item.isEmpty())
2202          return true;
2203      return false;
2204    }
2205
2206    public ContactDetail addReviewer() { //3
2207      ContactDetail t = new ContactDetail();
2208      if (this.reviewer == null)
2209        this.reviewer = new ArrayList<ContactDetail>();
2210      this.reviewer.add(t);
2211      return t;
2212    }
2213
2214    public NamingSystem addReviewer(ContactDetail t) { //3
2215      if (t == null)
2216        return this;
2217      if (this.reviewer == null)
2218        this.reviewer = new ArrayList<ContactDetail>();
2219      this.reviewer.add(t);
2220      return this;
2221    }
2222
2223    /**
2224     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {3}
2225     */
2226    public ContactDetail getReviewerFirstRep() { 
2227      if (getReviewer().isEmpty()) {
2228        addReviewer();
2229      }
2230      return getReviewer().get(0);
2231    }
2232
2233    /**
2234     * @return {@link #endorser} (An individual or organization responsible for officially endorsing the NamingSystem for use in some setting.)
2235     */
2236    public List<ContactDetail> getEndorser() { 
2237      if (this.endorser == null)
2238        this.endorser = new ArrayList<ContactDetail>();
2239      return this.endorser;
2240    }
2241
2242    /**
2243     * @return Returns a reference to <code>this</code> for easy method chaining
2244     */
2245    public NamingSystem setEndorser(List<ContactDetail> theEndorser) { 
2246      this.endorser = theEndorser;
2247      return this;
2248    }
2249
2250    public boolean hasEndorser() { 
2251      if (this.endorser == null)
2252        return false;
2253      for (ContactDetail item : this.endorser)
2254        if (!item.isEmpty())
2255          return true;
2256      return false;
2257    }
2258
2259    public ContactDetail addEndorser() { //3
2260      ContactDetail t = new ContactDetail();
2261      if (this.endorser == null)
2262        this.endorser = new ArrayList<ContactDetail>();
2263      this.endorser.add(t);
2264      return t;
2265    }
2266
2267    public NamingSystem addEndorser(ContactDetail t) { //3
2268      if (t == null)
2269        return this;
2270      if (this.endorser == null)
2271        this.endorser = new ArrayList<ContactDetail>();
2272      this.endorser.add(t);
2273      return this;
2274    }
2275
2276    /**
2277     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {3}
2278     */
2279    public ContactDetail getEndorserFirstRep() { 
2280      if (getEndorser().isEmpty()) {
2281        addEndorser();
2282      }
2283      return getEndorser().get(0);
2284    }
2285
2286    /**
2287     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.)
2288     */
2289    public List<RelatedArtifact> getRelatedArtifact() { 
2290      if (this.relatedArtifact == null)
2291        this.relatedArtifact = new ArrayList<RelatedArtifact>();
2292      return this.relatedArtifact;
2293    }
2294
2295    /**
2296     * @return Returns a reference to <code>this</code> for easy method chaining
2297     */
2298    public NamingSystem setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
2299      this.relatedArtifact = theRelatedArtifact;
2300      return this;
2301    }
2302
2303    public boolean hasRelatedArtifact() { 
2304      if (this.relatedArtifact == null)
2305        return false;
2306      for (RelatedArtifact item : this.relatedArtifact)
2307        if (!item.isEmpty())
2308          return true;
2309      return false;
2310    }
2311
2312    public RelatedArtifact addRelatedArtifact() { //3
2313      RelatedArtifact t = new RelatedArtifact();
2314      if (this.relatedArtifact == null)
2315        this.relatedArtifact = new ArrayList<RelatedArtifact>();
2316      this.relatedArtifact.add(t);
2317      return t;
2318    }
2319
2320    public NamingSystem addRelatedArtifact(RelatedArtifact t) { //3
2321      if (t == null)
2322        return this;
2323      if (this.relatedArtifact == null)
2324        this.relatedArtifact = new ArrayList<RelatedArtifact>();
2325      this.relatedArtifact.add(t);
2326      return this;
2327    }
2328
2329    /**
2330     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {3}
2331     */
2332    public RelatedArtifact getRelatedArtifactFirstRep() { 
2333      if (getRelatedArtifact().isEmpty()) {
2334        addRelatedArtifact();
2335      }
2336      return getRelatedArtifact().get(0);
2337    }
2338
2339    /**
2340     * @return {@link #usage} (Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value
2341     */
2342    public StringType getUsageElement() { 
2343      if (this.usage == null)
2344        if (Configuration.errorOnAutoCreate())
2345          throw new Error("Attempt to auto-create NamingSystem.usage");
2346        else if (Configuration.doAutoCreate())
2347          this.usage = new StringType(); // bb
2348      return this.usage;
2349    }
2350
2351    public boolean hasUsageElement() { 
2352      return this.usage != null && !this.usage.isEmpty();
2353    }
2354
2355    public boolean hasUsage() { 
2356      return this.usage != null && !this.usage.isEmpty();
2357    }
2358
2359    /**
2360     * @param value {@link #usage} (Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value
2361     */
2362    public NamingSystem setUsageElement(StringType value) { 
2363      this.usage = value;
2364      return this;
2365    }
2366
2367    /**
2368     * @return Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
2369     */
2370    public String getUsage() { 
2371      return this.usage == null ? null : this.usage.getValue();
2372    }
2373
2374    /**
2375     * @param value Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
2376     */
2377    public NamingSystem setUsage(String value) { 
2378      if (Utilities.noString(value))
2379        this.usage = null;
2380      else {
2381        if (this.usage == null)
2382          this.usage = new StringType();
2383        this.usage.setValue(value);
2384      }
2385      return this;
2386    }
2387
2388    /**
2389     * @return {@link #uniqueId} (Indicates how the system may be identified when referenced in electronic exchange.)
2390     */
2391    public List<NamingSystemUniqueIdComponent> getUniqueId() { 
2392      if (this.uniqueId == null)
2393        this.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
2394      return this.uniqueId;
2395    }
2396
2397    /**
2398     * @return Returns a reference to <code>this</code> for easy method chaining
2399     */
2400    public NamingSystem setUniqueId(List<NamingSystemUniqueIdComponent> theUniqueId) { 
2401      this.uniqueId = theUniqueId;
2402      return this;
2403    }
2404
2405    public boolean hasUniqueId() { 
2406      if (this.uniqueId == null)
2407        return false;
2408      for (NamingSystemUniqueIdComponent item : this.uniqueId)
2409        if (!item.isEmpty())
2410          return true;
2411      return false;
2412    }
2413
2414    public NamingSystemUniqueIdComponent addUniqueId() { //3
2415      NamingSystemUniqueIdComponent t = new NamingSystemUniqueIdComponent();
2416      if (this.uniqueId == null)
2417        this.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
2418      this.uniqueId.add(t);
2419      return t;
2420    }
2421
2422    public NamingSystem addUniqueId(NamingSystemUniqueIdComponent t) { //3
2423      if (t == null)
2424        return this;
2425      if (this.uniqueId == null)
2426        this.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
2427      this.uniqueId.add(t);
2428      return this;
2429    }
2430
2431    /**
2432     * @return The first repetition of repeating field {@link #uniqueId}, creating it if it does not already exist {3}
2433     */
2434    public NamingSystemUniqueIdComponent getUniqueIdFirstRep() { 
2435      if (getUniqueId().isEmpty()) {
2436        addUniqueId();
2437      }
2438      return getUniqueId().get(0);
2439    }
2440
2441    /**
2442     * not supported on this implementation
2443     */
2444    @Override
2445    public int getVersionAlgorithmMax() { 
2446      return 0;
2447    }
2448    /**
2449     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2450     */
2451    public DataType getVersionAlgorithm() { 
2452      throw new Error("The resource type \"NamingSystem\" does not implement the property \"versionAlgorithm[x]\""); 
2453    }
2454    /**
2455     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2456     */
2457    public StringType getVersionAlgorithmStringType() { 
2458      throw new Error("The resource type \"NamingSystem\" does not implement the property \"versionAlgorithm[x]\""); 
2459    }
2460    public boolean hasVersionAlgorithmStringType() { 
2461      return false;////K 
2462    }
2463    /**
2464     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2465     */
2466    public Coding getVersionAlgorithmCoding() { 
2467      throw new Error("The resource type \"NamingSystem\" does not implement the property \"versionAlgorithm[x]\""); 
2468    }
2469    public boolean hasVersionAlgorithmCoding() { 
2470      return false;////K 
2471    }
2472    public boolean hasVersionAlgorithm() { 
2473      return false;
2474    }
2475    /**
2476     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2477     */
2478    public NamingSystem setVersionAlgorithm(DataType value) { 
2479      throw new Error("The resource type \"NamingSystem\" does not implement the property \"versionAlgorithm[x]\""); 
2480    }
2481
2482    /**
2483     * not supported on this implementation
2484     */
2485    @Override
2486    public int getCopyrightLabelMax() { 
2487      return 0;
2488    }
2489    /**
2490     * @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
2491     */
2492    public StringType getCopyrightLabelElement() { 
2493      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyrightLabel\"");
2494    }
2495
2496    public boolean hasCopyrightLabelElement() { 
2497      return false;
2498    }
2499    public boolean hasCopyrightLabel() {
2500      return false;
2501    }
2502
2503    /**
2504     * @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
2505     */
2506    public NamingSystem setCopyrightLabelElement(StringType value) { 
2507      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyrightLabel\""); 
2508    }
2509    public String getCopyrightLabel() { 
2510      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyrightLabel\""); 
2511    }
2512    /**
2513     * @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').
2514     */
2515    public NamingSystem setCopyrightLabel(String value) { 
2516      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyrightLabel\""); 
2517    }
2518      protected void listChildren(List<Property> children) {
2519        super.listChildren(children);
2520        children.add(new Property("url", "uri", "An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.", 0, 1, url));
2521        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this naming system when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
2522        children.add(new Property("version", "string", "The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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));
2523        children.add(new Property("name", "string", "A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
2524        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the naming system.", 0, 1, title));
2525        children.add(new Property("status", "code", "The status of this naming system. Enables tracking the life-cycle of the content.", 0, 1, status));
2526        children.add(new Property("kind", "code", "Indicates the purpose for the naming system - what kinds of things does it make unique?", 0, 1, kind));
2527        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
2528        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the naming system was published. 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 naming system changes.", 0, 1, date));
2529        children.add(new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.", 0, 1, publisher));
2530        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));
2531        children.add(new Property("responsible", "string", "The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.", 0, 1, responsible));
2532        children.add(new Property("type", "CodeableConcept", "Categorizes a naming system for easier search by grouping related naming systems.", 0, 1, type));
2533        children.add(new Property("description", "markdown", "A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.", 0, 1, description));
2534        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 naming system instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
2535        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the naming system is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
2536        children.add(new Property("purpose", "markdown", "Explanation of why this naming system is needed and why it has been designed as it has.", 0, 1, purpose));
2537        children.add(new Property("copyright", "markdown", "A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.", 0, 1, copyright));
2538        children.add(new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate));
2539        children.add(new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate));
2540        children.add(new Property("effectivePeriod", "Period", "The period during which the NamingSystem content was or is planned to be in active use.", 0, 1, effectivePeriod));
2541        children.add(new Property("topic", "CodeableConcept", "Descriptions related to the content of the NamingSystem. Topics provide a high-level categorization as well as keywords for the NamingSystem that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic));
2542        children.add(new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the NamingSystem.", 0, java.lang.Integer.MAX_VALUE, author));
2543        children.add(new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the NamingSystem.", 0, java.lang.Integer.MAX_VALUE, editor));
2544        children.add(new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the NamingSystem.", 0, java.lang.Integer.MAX_VALUE, reviewer));
2545        children.add(new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the NamingSystem for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser));
2546        children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact));
2547        children.add(new Property("usage", "string", "Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.", 0, 1, usage));
2548        children.add(new Property("uniqueId", "", "Indicates how the system may be identified when referenced in electronic exchange.", 0, java.lang.Integer.MAX_VALUE, uniqueId));
2549      }
2550
2551      @Override
2552      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2553        switch (_hash) {
2554        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this naming system 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 naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.", 0, 1, url);
2555        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this naming system when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
2556        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system 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);
2557        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
2558        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the naming system.", 0, 1, title);
2559        case -892481550: /*status*/  return new Property("status", "code", "The status of this naming system. Enables tracking the life-cycle of the content.", 0, 1, status);
2560        case 3292052: /*kind*/  return new Property("kind", "code", "Indicates the purpose for the naming system - what kinds of things does it make unique?", 0, 1, kind);
2561        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
2562        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the naming system was published. 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 naming system changes.", 0, 1, date);
2563        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.", 0, 1, publisher);
2564        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);
2565        case 1847674614: /*responsible*/  return new Property("responsible", "string", "The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.", 0, 1, responsible);
2566        case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Categorizes a naming system for easier search by grouping related naming systems.", 0, 1, type);
2567        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.", 0, 1, description);
2568        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 naming system instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
2569        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the naming system is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
2570        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this naming system is needed and why it has been designed as it has.", 0, 1, purpose);
2571        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.", 0, 1, copyright);
2572        case 223539345: /*approvalDate*/  return new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate);
2573        case -1687512484: /*lastReviewDate*/  return new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate);
2574        case -403934648: /*effectivePeriod*/  return new Property("effectivePeriod", "Period", "The period during which the NamingSystem content was or is planned to be in active use.", 0, 1, effectivePeriod);
2575        case 110546223: /*topic*/  return new Property("topic", "CodeableConcept", "Descriptions related to the content of the NamingSystem. Topics provide a high-level categorization as well as keywords for the NamingSystem that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic);
2576        case -1406328437: /*author*/  return new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the NamingSystem.", 0, java.lang.Integer.MAX_VALUE, author);
2577        case -1307827859: /*editor*/  return new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the NamingSystem.", 0, java.lang.Integer.MAX_VALUE, editor);
2578        case -261190139: /*reviewer*/  return new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the NamingSystem.", 0, java.lang.Integer.MAX_VALUE, reviewer);
2579        case 1740277666: /*endorser*/  return new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the NamingSystem for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser);
2580        case 666807069: /*relatedArtifact*/  return new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact);
2581        case 111574433: /*usage*/  return new Property("usage", "string", "Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.", 0, 1, usage);
2582        case -294460212: /*uniqueId*/  return new Property("uniqueId", "", "Indicates how the system may be identified when referenced in electronic exchange.", 0, java.lang.Integer.MAX_VALUE, uniqueId);
2583        default: return super.getNamedProperty(_hash, _name, _checkValid);
2584        }
2585
2586      }
2587
2588      @Override
2589      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2590        switch (hash) {
2591        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
2592        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
2593        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
2594        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
2595        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
2596        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
2597        case 3292052: /*kind*/ return this.kind == null ? new Base[0] : new Base[] {this.kind}; // Enumeration<NamingSystemType>
2598        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
2599        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
2600        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
2601        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
2602        case 1847674614: /*responsible*/ return this.responsible == null ? new Base[0] : new Base[] {this.responsible}; // StringType
2603        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
2604        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
2605        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
2606        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
2607        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
2608        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
2609        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
2610        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
2611        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
2612        case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept
2613        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail
2614        case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail
2615        case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail
2616        case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail
2617        case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact
2618        case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // StringType
2619        case -294460212: /*uniqueId*/ return this.uniqueId == null ? new Base[0] : this.uniqueId.toArray(new Base[this.uniqueId.size()]); // NamingSystemUniqueIdComponent
2620        default: return super.getProperty(hash, name, checkValid);
2621        }
2622
2623      }
2624
2625      @Override
2626      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2627        switch (hash) {
2628        case 116079: // url
2629          this.url = TypeConvertor.castToUri(value); // UriType
2630          return value;
2631        case -1618432855: // identifier
2632          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
2633          return value;
2634        case 351608024: // version
2635          this.version = TypeConvertor.castToString(value); // StringType
2636          return value;
2637        case 3373707: // name
2638          this.name = TypeConvertor.castToString(value); // StringType
2639          return value;
2640        case 110371416: // title
2641          this.title = TypeConvertor.castToString(value); // StringType
2642          return value;
2643        case -892481550: // status
2644          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
2645          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
2646          return value;
2647        case 3292052: // kind
2648          value = new NamingSystemTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
2649          this.kind = (Enumeration) value; // Enumeration<NamingSystemType>
2650          return value;
2651        case -404562712: // experimental
2652          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
2653          return value;
2654        case 3076014: // date
2655          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
2656          return value;
2657        case 1447404028: // publisher
2658          this.publisher = TypeConvertor.castToString(value); // StringType
2659          return value;
2660        case 951526432: // contact
2661          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
2662          return value;
2663        case 1847674614: // responsible
2664          this.responsible = TypeConvertor.castToString(value); // StringType
2665          return value;
2666        case 3575610: // type
2667          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2668          return value;
2669        case -1724546052: // description
2670          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2671          return value;
2672        case -669707736: // useContext
2673          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
2674          return value;
2675        case -507075711: // jurisdiction
2676          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
2677          return value;
2678        case -220463842: // purpose
2679          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
2680          return value;
2681        case 1522889671: // copyright
2682          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
2683          return value;
2684        case 223539345: // approvalDate
2685          this.approvalDate = TypeConvertor.castToDate(value); // DateType
2686          return value;
2687        case -1687512484: // lastReviewDate
2688          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
2689          return value;
2690        case -403934648: // effectivePeriod
2691          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
2692          return value;
2693        case 110546223: // topic
2694          this.getTopic().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
2695          return value;
2696        case -1406328437: // author
2697          this.getAuthor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
2698          return value;
2699        case -1307827859: // editor
2700          this.getEditor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
2701          return value;
2702        case -261190139: // reviewer
2703          this.getReviewer().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
2704          return value;
2705        case 1740277666: // endorser
2706          this.getEndorser().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
2707          return value;
2708        case 666807069: // relatedArtifact
2709          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact
2710          return value;
2711        case 111574433: // usage
2712          this.usage = TypeConvertor.castToString(value); // StringType
2713          return value;
2714        case -294460212: // uniqueId
2715          this.getUniqueId().add((NamingSystemUniqueIdComponent) value); // NamingSystemUniqueIdComponent
2716          return value;
2717        default: return super.setProperty(hash, name, value);
2718        }
2719
2720      }
2721
2722      @Override
2723      public Base setProperty(String name, Base value) throws FHIRException {
2724        if (name.equals("url")) {
2725          this.url = TypeConvertor.castToUri(value); // UriType
2726        } else if (name.equals("identifier")) {
2727          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
2728        } else if (name.equals("version")) {
2729          this.version = TypeConvertor.castToString(value); // StringType
2730        } else if (name.equals("name")) {
2731          this.name = TypeConvertor.castToString(value); // StringType
2732        } else if (name.equals("title")) {
2733          this.title = TypeConvertor.castToString(value); // StringType
2734        } else if (name.equals("status")) {
2735          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
2736          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
2737        } else if (name.equals("kind")) {
2738          value = new NamingSystemTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
2739          this.kind = (Enumeration) value; // Enumeration<NamingSystemType>
2740        } else if (name.equals("experimental")) {
2741          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
2742        } else if (name.equals("date")) {
2743          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
2744        } else if (name.equals("publisher")) {
2745          this.publisher = TypeConvertor.castToString(value); // StringType
2746        } else if (name.equals("contact")) {
2747          this.getContact().add(TypeConvertor.castToContactDetail(value));
2748        } else if (name.equals("responsible")) {
2749          this.responsible = TypeConvertor.castToString(value); // StringType
2750        } else if (name.equals("type")) {
2751          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2752        } else if (name.equals("description")) {
2753          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2754        } else if (name.equals("useContext")) {
2755          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
2756        } else if (name.equals("jurisdiction")) {
2757          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
2758        } else if (name.equals("purpose")) {
2759          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
2760        } else if (name.equals("copyright")) {
2761          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
2762        } else if (name.equals("approvalDate")) {
2763          this.approvalDate = TypeConvertor.castToDate(value); // DateType
2764        } else if (name.equals("lastReviewDate")) {
2765          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
2766        } else if (name.equals("effectivePeriod")) {
2767          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
2768        } else if (name.equals("topic")) {
2769          this.getTopic().add(TypeConvertor.castToCodeableConcept(value));
2770        } else if (name.equals("author")) {
2771          this.getAuthor().add(TypeConvertor.castToContactDetail(value));
2772        } else if (name.equals("editor")) {
2773          this.getEditor().add(TypeConvertor.castToContactDetail(value));
2774        } else if (name.equals("reviewer")) {
2775          this.getReviewer().add(TypeConvertor.castToContactDetail(value));
2776        } else if (name.equals("endorser")) {
2777          this.getEndorser().add(TypeConvertor.castToContactDetail(value));
2778        } else if (name.equals("relatedArtifact")) {
2779          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value));
2780        } else if (name.equals("usage")) {
2781          this.usage = TypeConvertor.castToString(value); // StringType
2782        } else if (name.equals("uniqueId")) {
2783          this.getUniqueId().add((NamingSystemUniqueIdComponent) value);
2784        } else
2785          return super.setProperty(name, value);
2786        return value;
2787      }
2788
2789      @Override
2790      public Base makeProperty(int hash, String name) throws FHIRException {
2791        switch (hash) {
2792        case 116079:  return getUrlElement();
2793        case -1618432855:  return addIdentifier(); 
2794        case 351608024:  return getVersionElement();
2795        case 3373707:  return getNameElement();
2796        case 110371416:  return getTitleElement();
2797        case -892481550:  return getStatusElement();
2798        case 3292052:  return getKindElement();
2799        case -404562712:  return getExperimentalElement();
2800        case 3076014:  return getDateElement();
2801        case 1447404028:  return getPublisherElement();
2802        case 951526432:  return addContact(); 
2803        case 1847674614:  return getResponsibleElement();
2804        case 3575610:  return getType();
2805        case -1724546052:  return getDescriptionElement();
2806        case -669707736:  return addUseContext(); 
2807        case -507075711:  return addJurisdiction(); 
2808        case -220463842:  return getPurposeElement();
2809        case 1522889671:  return getCopyrightElement();
2810        case 223539345:  return getApprovalDateElement();
2811        case -1687512484:  return getLastReviewDateElement();
2812        case -403934648:  return getEffectivePeriod();
2813        case 110546223:  return addTopic(); 
2814        case -1406328437:  return addAuthor(); 
2815        case -1307827859:  return addEditor(); 
2816        case -261190139:  return addReviewer(); 
2817        case 1740277666:  return addEndorser(); 
2818        case 666807069:  return addRelatedArtifact(); 
2819        case 111574433:  return getUsageElement();
2820        case -294460212:  return addUniqueId(); 
2821        default: return super.makeProperty(hash, name);
2822        }
2823
2824      }
2825
2826      @Override
2827      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2828        switch (hash) {
2829        case 116079: /*url*/ return new String[] {"uri"};
2830        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
2831        case 351608024: /*version*/ return new String[] {"string"};
2832        case 3373707: /*name*/ return new String[] {"string"};
2833        case 110371416: /*title*/ return new String[] {"string"};
2834        case -892481550: /*status*/ return new String[] {"code"};
2835        case 3292052: /*kind*/ return new String[] {"code"};
2836        case -404562712: /*experimental*/ return new String[] {"boolean"};
2837        case 3076014: /*date*/ return new String[] {"dateTime"};
2838        case 1447404028: /*publisher*/ return new String[] {"string"};
2839        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
2840        case 1847674614: /*responsible*/ return new String[] {"string"};
2841        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
2842        case -1724546052: /*description*/ return new String[] {"markdown"};
2843        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
2844        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
2845        case -220463842: /*purpose*/ return new String[] {"markdown"};
2846        case 1522889671: /*copyright*/ return new String[] {"markdown"};
2847        case 223539345: /*approvalDate*/ return new String[] {"date"};
2848        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
2849        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
2850        case 110546223: /*topic*/ return new String[] {"CodeableConcept"};
2851        case -1406328437: /*author*/ return new String[] {"ContactDetail"};
2852        case -1307827859: /*editor*/ return new String[] {"ContactDetail"};
2853        case -261190139: /*reviewer*/ return new String[] {"ContactDetail"};
2854        case 1740277666: /*endorser*/ return new String[] {"ContactDetail"};
2855        case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"};
2856        case 111574433: /*usage*/ return new String[] {"string"};
2857        case -294460212: /*uniqueId*/ return new String[] {};
2858        default: return super.getTypesForProperty(hash, name);
2859        }
2860
2861      }
2862
2863      @Override
2864      public Base addChild(String name) throws FHIRException {
2865        if (name.equals("url")) {
2866          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.url");
2867        }
2868        else if (name.equals("identifier")) {
2869          return addIdentifier();
2870        }
2871        else if (name.equals("version")) {
2872          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.version");
2873        }
2874        else if (name.equals("name")) {
2875          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.name");
2876        }
2877        else if (name.equals("title")) {
2878          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.title");
2879        }
2880        else if (name.equals("status")) {
2881          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.status");
2882        }
2883        else if (name.equals("kind")) {
2884          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.kind");
2885        }
2886        else if (name.equals("experimental")) {
2887          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.experimental");
2888        }
2889        else if (name.equals("date")) {
2890          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.date");
2891        }
2892        else if (name.equals("publisher")) {
2893          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.publisher");
2894        }
2895        else if (name.equals("contact")) {
2896          return addContact();
2897        }
2898        else if (name.equals("responsible")) {
2899          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.responsible");
2900        }
2901        else if (name.equals("type")) {
2902          this.type = new CodeableConcept();
2903          return this.type;
2904        }
2905        else if (name.equals("description")) {
2906          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.description");
2907        }
2908        else if (name.equals("useContext")) {
2909          return addUseContext();
2910        }
2911        else if (name.equals("jurisdiction")) {
2912          return addJurisdiction();
2913        }
2914        else if (name.equals("purpose")) {
2915          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.purpose");
2916        }
2917        else if (name.equals("copyright")) {
2918          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.copyright");
2919        }
2920        else if (name.equals("approvalDate")) {
2921          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.approvalDate");
2922        }
2923        else if (name.equals("lastReviewDate")) {
2924          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.lastReviewDate");
2925        }
2926        else if (name.equals("effectivePeriod")) {
2927          this.effectivePeriod = new Period();
2928          return this.effectivePeriod;
2929        }
2930        else if (name.equals("topic")) {
2931          return addTopic();
2932        }
2933        else if (name.equals("author")) {
2934          return addAuthor();
2935        }
2936        else if (name.equals("editor")) {
2937          return addEditor();
2938        }
2939        else if (name.equals("reviewer")) {
2940          return addReviewer();
2941        }
2942        else if (name.equals("endorser")) {
2943          return addEndorser();
2944        }
2945        else if (name.equals("relatedArtifact")) {
2946          return addRelatedArtifact();
2947        }
2948        else if (name.equals("usage")) {
2949          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.usage");
2950        }
2951        else if (name.equals("uniqueId")) {
2952          return addUniqueId();
2953        }
2954        else
2955          return super.addChild(name);
2956      }
2957
2958  public String fhirType() {
2959    return "NamingSystem";
2960
2961  }
2962
2963      public NamingSystem copy() {
2964        NamingSystem dst = new NamingSystem();
2965        copyValues(dst);
2966        return dst;
2967      }
2968
2969      public void copyValues(NamingSystem dst) {
2970        super.copyValues(dst);
2971        dst.url = url == null ? null : url.copy();
2972        if (identifier != null) {
2973          dst.identifier = new ArrayList<Identifier>();
2974          for (Identifier i : identifier)
2975            dst.identifier.add(i.copy());
2976        };
2977        dst.version = version == null ? null : version.copy();
2978        dst.name = name == null ? null : name.copy();
2979        dst.title = title == null ? null : title.copy();
2980        dst.status = status == null ? null : status.copy();
2981        dst.kind = kind == null ? null : kind.copy();
2982        dst.experimental = experimental == null ? null : experimental.copy();
2983        dst.date = date == null ? null : date.copy();
2984        dst.publisher = publisher == null ? null : publisher.copy();
2985        if (contact != null) {
2986          dst.contact = new ArrayList<ContactDetail>();
2987          for (ContactDetail i : contact)
2988            dst.contact.add(i.copy());
2989        };
2990        dst.responsible = responsible == null ? null : responsible.copy();
2991        dst.type = type == null ? null : type.copy();
2992        dst.description = description == null ? null : description.copy();
2993        if (useContext != null) {
2994          dst.useContext = new ArrayList<UsageContext>();
2995          for (UsageContext i : useContext)
2996            dst.useContext.add(i.copy());
2997        };
2998        if (jurisdiction != null) {
2999          dst.jurisdiction = new ArrayList<CodeableConcept>();
3000          for (CodeableConcept i : jurisdiction)
3001            dst.jurisdiction.add(i.copy());
3002        };
3003        dst.purpose = purpose == null ? null : purpose.copy();
3004        dst.copyright = copyright == null ? null : copyright.copy();
3005        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
3006        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
3007        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
3008        if (topic != null) {
3009          dst.topic = new ArrayList<CodeableConcept>();
3010          for (CodeableConcept i : topic)
3011            dst.topic.add(i.copy());
3012        };
3013        if (author != null) {
3014          dst.author = new ArrayList<ContactDetail>();
3015          for (ContactDetail i : author)
3016            dst.author.add(i.copy());
3017        };
3018        if (editor != null) {
3019          dst.editor = new ArrayList<ContactDetail>();
3020          for (ContactDetail i : editor)
3021            dst.editor.add(i.copy());
3022        };
3023        if (reviewer != null) {
3024          dst.reviewer = new ArrayList<ContactDetail>();
3025          for (ContactDetail i : reviewer)
3026            dst.reviewer.add(i.copy());
3027        };
3028        if (endorser != null) {
3029          dst.endorser = new ArrayList<ContactDetail>();
3030          for (ContactDetail i : endorser)
3031            dst.endorser.add(i.copy());
3032        };
3033        if (relatedArtifact != null) {
3034          dst.relatedArtifact = new ArrayList<RelatedArtifact>();
3035          for (RelatedArtifact i : relatedArtifact)
3036            dst.relatedArtifact.add(i.copy());
3037        };
3038        dst.usage = usage == null ? null : usage.copy();
3039        if (uniqueId != null) {
3040          dst.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
3041          for (NamingSystemUniqueIdComponent i : uniqueId)
3042            dst.uniqueId.add(i.copy());
3043        };
3044      }
3045
3046      protected NamingSystem typedCopy() {
3047        return copy();
3048      }
3049
3050      @Override
3051      public boolean equalsDeep(Base other_) {
3052        if (!super.equalsDeep(other_))
3053          return false;
3054        if (!(other_ instanceof NamingSystem))
3055          return false;
3056        NamingSystem o = (NamingSystem) other_;
3057        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
3058           && compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(status, o.status, true)
3059           && compareDeep(kind, o.kind, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true)
3060           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(responsible, o.responsible, true)
3061           && compareDeep(type, o.type, true) && compareDeep(description, o.description, true) && compareDeep(useContext, o.useContext, true)
3062           && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true)
3063           && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true)
3064           && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true)
3065           && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true)
3066           && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(usage, o.usage, true) && compareDeep(uniqueId, o.uniqueId, true)
3067          ;
3068      }
3069
3070      @Override
3071      public boolean equalsShallow(Base other_) {
3072        if (!super.equalsShallow(other_))
3073          return false;
3074        if (!(other_ instanceof NamingSystem))
3075          return false;
3076        NamingSystem o = (NamingSystem) other_;
3077        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
3078           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(kind, o.kind, true)
3079           && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true)
3080           && compareValues(responsible, o.responsible, true) && compareValues(description, o.description, true)
3081           && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(approvalDate, o.approvalDate, true)
3082           && compareValues(lastReviewDate, o.lastReviewDate, true) && compareValues(usage, o.usage, true);
3083      }
3084
3085      public boolean isEmpty() {
3086        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
3087          , name, title, status, kind, experimental, date, publisher, contact, responsible
3088          , type, description, useContext, jurisdiction, purpose, copyright, approvalDate
3089          , lastReviewDate, effectivePeriod, topic, author, editor, reviewer, endorser, relatedArtifact
3090          , usage, uniqueId);
3091      }
3092
3093  @Override
3094  public ResourceType getResourceType() {
3095    return ResourceType.NamingSystem;
3096   }
3097
3098 /**
3099   * Search parameter: <b>contact</b>
3100   * <p>
3101   * Description: <b>Name of an individual to contact</b><br>
3102   * Type: <b>string</b><br>
3103   * Path: <b>NamingSystem.contact.name</b><br>
3104   * </p>
3105   */
3106  @SearchParamDefinition(name="contact", path="NamingSystem.contact.name", description="Name of an individual to contact", type="string" )
3107  public static final String SP_CONTACT = "contact";
3108 /**
3109   * <b>Fluent Client</b> search parameter constant for <b>contact</b>
3110   * <p>
3111   * Description: <b>Name of an individual to contact</b><br>
3112   * Type: <b>string</b><br>
3113   * Path: <b>NamingSystem.contact.name</b><br>
3114   * </p>
3115   */
3116  public static final ca.uhn.fhir.rest.gclient.StringClientParam CONTACT = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_CONTACT);
3117
3118 /**
3119   * Search parameter: <b>derived-from</b>
3120   * <p>
3121   * Description: <b>A resource that the NamingSystem is derived from</b><br>
3122   * Type: <b>reference</b><br>
3123   * Path: <b>NamingSystem.relatedArtifact.where(type='derived-from').resource</b><br>
3124   * </p>
3125   */
3126  @SearchParamDefinition(name="derived-from", path="NamingSystem.relatedArtifact.where(type='derived-from').resource", description="A resource that the NamingSystem is derived from", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
3127  public static final String SP_DERIVED_FROM = "derived-from";
3128 /**
3129   * <b>Fluent Client</b> search parameter constant for <b>derived-from</b>
3130   * <p>
3131   * Description: <b>A resource that the NamingSystem is derived from</b><br>
3132   * Type: <b>reference</b><br>
3133   * Path: <b>NamingSystem.relatedArtifact.where(type='derived-from').resource</b><br>
3134   * </p>
3135   */
3136  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM);
3137
3138/**
3139   * Constant for fluent queries to be used to add include statements. Specifies
3140   * the path value of "<b>NamingSystem:derived-from</b>".
3141   */
3142  public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("NamingSystem:derived-from").toLocked();
3143
3144 /**
3145   * Search parameter: <b>id-type</b>
3146   * <p>
3147   * Description: <b>oid | uuid | uri | other</b><br>
3148   * Type: <b>token</b><br>
3149   * Path: <b>NamingSystem.uniqueId.type</b><br>
3150   * </p>
3151   */
3152  @SearchParamDefinition(name="id-type", path="NamingSystem.uniqueId.type", description="oid | uuid | uri | other", type="token" )
3153  public static final String SP_ID_TYPE = "id-type";
3154 /**
3155   * <b>Fluent Client</b> search parameter constant for <b>id-type</b>
3156   * <p>
3157   * Description: <b>oid | uuid | uri | other</b><br>
3158   * Type: <b>token</b><br>
3159   * Path: <b>NamingSystem.uniqueId.type</b><br>
3160   * </p>
3161   */
3162  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ID_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ID_TYPE);
3163
3164 /**
3165   * Search parameter: <b>kind</b>
3166   * <p>
3167   * Description: <b>codesystem | identifier | root</b><br>
3168   * Type: <b>token</b><br>
3169   * Path: <b>NamingSystem.kind</b><br>
3170   * </p>
3171   */
3172  @SearchParamDefinition(name="kind", path="NamingSystem.kind", description="codesystem | identifier | root", type="token" )
3173  public static final String SP_KIND = "kind";
3174 /**
3175   * <b>Fluent Client</b> search parameter constant for <b>kind</b>
3176   * <p>
3177   * Description: <b>codesystem | identifier | root</b><br>
3178   * Type: <b>token</b><br>
3179   * Path: <b>NamingSystem.kind</b><br>
3180   * </p>
3181   */
3182  public static final ca.uhn.fhir.rest.gclient.TokenClientParam KIND = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KIND);
3183
3184 /**
3185   * Search parameter: <b>period</b>
3186   * <p>
3187   * Description: <b>When is identifier valid?</b><br>
3188   * Type: <b>date</b><br>
3189   * Path: <b>NamingSystem.uniqueId.period</b><br>
3190   * </p>
3191   */
3192  @SearchParamDefinition(name="period", path="NamingSystem.uniqueId.period", description="When is identifier valid?", type="date" )
3193  public static final String SP_PERIOD = "period";
3194 /**
3195   * <b>Fluent Client</b> search parameter constant for <b>period</b>
3196   * <p>
3197   * Description: <b>When is identifier valid?</b><br>
3198   * Type: <b>date</b><br>
3199   * Path: <b>NamingSystem.uniqueId.period</b><br>
3200   * </p>
3201   */
3202  public static final ca.uhn.fhir.rest.gclient.DateClientParam PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_PERIOD);
3203
3204 /**
3205   * Search parameter: <b>predecessor</b>
3206   * <p>
3207   * Description: <b>The predecessor of the NamingSystem</b><br>
3208   * Type: <b>reference</b><br>
3209   * Path: <b>NamingSystem.relatedArtifact.where(type='predecessor').resource</b><br>
3210   * </p>
3211   */
3212  @SearchParamDefinition(name="predecessor", path="NamingSystem.relatedArtifact.where(type='predecessor').resource", description="The predecessor of the NamingSystem", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
3213  public static final String SP_PREDECESSOR = "predecessor";
3214 /**
3215   * <b>Fluent Client</b> search parameter constant for <b>predecessor</b>
3216   * <p>
3217   * Description: <b>The predecessor of the NamingSystem</b><br>
3218   * Type: <b>reference</b><br>
3219   * Path: <b>NamingSystem.relatedArtifact.where(type='predecessor').resource</b><br>
3220   * </p>
3221   */
3222  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR);
3223
3224/**
3225   * Constant for fluent queries to be used to add include statements. Specifies
3226   * the path value of "<b>NamingSystem:predecessor</b>".
3227   */
3228  public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("NamingSystem:predecessor").toLocked();
3229
3230 /**
3231   * Search parameter: <b>responsible</b>
3232   * <p>
3233   * Description: <b>Who maintains system namespace?</b><br>
3234   * Type: <b>string</b><br>
3235   * Path: <b>NamingSystem.responsible</b><br>
3236   * </p>
3237   */
3238  @SearchParamDefinition(name="responsible", path="NamingSystem.responsible", description="Who maintains system namespace?", type="string" )
3239  public static final String SP_RESPONSIBLE = "responsible";
3240 /**
3241   * <b>Fluent Client</b> search parameter constant for <b>responsible</b>
3242   * <p>
3243   * Description: <b>Who maintains system namespace?</b><br>
3244   * Type: <b>string</b><br>
3245   * Path: <b>NamingSystem.responsible</b><br>
3246   * </p>
3247   */
3248  public static final ca.uhn.fhir.rest.gclient.StringClientParam RESPONSIBLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_RESPONSIBLE);
3249
3250 /**
3251   * Search parameter: <b>telecom</b>
3252   * <p>
3253   * Description: <b>Contact details for individual or organization</b><br>
3254   * Type: <b>token</b><br>
3255   * Path: <b>NamingSystem.contact.telecom</b><br>
3256   * </p>
3257   */
3258  @SearchParamDefinition(name="telecom", path="NamingSystem.contact.telecom", description="Contact details for individual or organization", type="token" )
3259  public static final String SP_TELECOM = "telecom";
3260 /**
3261   * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
3262   * <p>
3263   * Description: <b>Contact details for individual or organization</b><br>
3264   * Type: <b>token</b><br>
3265   * Path: <b>NamingSystem.contact.telecom</b><br>
3266   * </p>
3267   */
3268  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM);
3269
3270 /**
3271   * Search parameter: <b>topic</b>
3272   * <p>
3273   * Description: <b>Topics associated with the NamingSystem</b><br>
3274   * Type: <b>token</b><br>
3275   * Path: <b>NamingSystem.topic</b><br>
3276   * </p>
3277   */
3278  @SearchParamDefinition(name="topic", path="NamingSystem.topic", description="Topics associated with the NamingSystem", type="token" )
3279  public static final String SP_TOPIC = "topic";
3280 /**
3281   * <b>Fluent Client</b> search parameter constant for <b>topic</b>
3282   * <p>
3283   * Description: <b>Topics associated with the NamingSystem</b><br>
3284   * Type: <b>token</b><br>
3285   * Path: <b>NamingSystem.topic</b><br>
3286   * </p>
3287   */
3288  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC);
3289
3290 /**
3291   * Search parameter: <b>type</b>
3292   * <p>
3293   * Description: <b>e.g. driver,  provider,  patient, bank etc.</b><br>
3294   * Type: <b>token</b><br>
3295   * Path: <b>NamingSystem.type</b><br>
3296   * </p>
3297   */
3298  @SearchParamDefinition(name="type", path="NamingSystem.type", description="e.g. driver,  provider,  patient, bank etc.", type="token" )
3299  public static final String SP_TYPE = "type";
3300 /**
3301   * <b>Fluent Client</b> search parameter constant for <b>type</b>
3302   * <p>
3303   * Description: <b>e.g. driver,  provider,  patient, bank etc.</b><br>
3304   * Type: <b>token</b><br>
3305   * Path: <b>NamingSystem.type</b><br>
3306   * </p>
3307   */
3308  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
3309
3310 /**
3311   * Search parameter: <b>value</b>
3312   * <p>
3313   * Description: <b>The unique identifier</b><br>
3314   * Type: <b>string</b><br>
3315   * Path: <b>NamingSystem.uniqueId.value</b><br>
3316   * </p>
3317   */
3318  @SearchParamDefinition(name="value", path="NamingSystem.uniqueId.value", description="The unique identifier", type="string" )
3319  public static final String SP_VALUE = "value";
3320 /**
3321   * <b>Fluent Client</b> search parameter constant for <b>value</b>
3322   * <p>
3323   * Description: <b>The unique identifier</b><br>
3324   * Type: <b>string</b><br>
3325   * Path: <b>NamingSystem.uniqueId.value</b><br>
3326   * </p>
3327   */
3328  public static final ca.uhn.fhir.rest.gclient.StringClientParam VALUE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_VALUE);
3329
3330 /**
3331   * Search parameter: <b>context-quantity</b>
3332   * <p>
3333   * Description: <b>Multiple Resources: 
3334
3335* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
3336* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
3337* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
3338* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
3339* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
3340* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
3341* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
3342* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
3343* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
3344* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
3345* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
3346* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
3347* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
3348* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
3349</b><br>
3350   * Type: <b>quantity</b><br>
3351   * Path: <b>(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)</b><br>
3352   * </p>
3353   */
3354  @SearchParamDefinition(name="context-quantity", path="(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set\r\n", type="quantity" )
3355  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
3356 /**
3357   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
3358   * <p>
3359   * Description: <b>Multiple Resources: 
3360
3361* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
3362* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
3363* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
3364* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
3365* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
3366* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
3367* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
3368* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
3369* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
3370* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
3371* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
3372* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
3373* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
3374* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
3375</b><br>
3376   * Type: <b>quantity</b><br>
3377   * Path: <b>(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)</b><br>
3378   * </p>
3379   */
3380  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
3381
3382 /**
3383   * Search parameter: <b>context-type-quantity</b>
3384   * <p>
3385   * Description: <b>Multiple Resources: 
3386
3387* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
3388* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
3389* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
3390* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
3391* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
3392* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
3393* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
3394* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
3395* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
3396* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
3397* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
3398* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
3399* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
3400* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
3401</b><br>
3402   * Type: <b>composite</b><br>
3403   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
3404   * </p>
3405   */
3406  @SearchParamDefinition(name="context-type-quantity", path="CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement\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* [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* [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* [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* [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"} )
3407  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
3408 /**
3409   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
3410   * <p>
3411   * Description: <b>Multiple Resources: 
3412
3413* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
3414* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
3415* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
3416* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
3417* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
3418* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
3419* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
3420* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
3421* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
3422* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
3423* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
3424* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
3425* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
3426* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
3427</b><br>
3428   * Type: <b>composite</b><br>
3429   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
3430   * </p>
3431   */
3432  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);
3433
3434 /**
3435   * Search parameter: <b>context-type-value</b>
3436   * <p>
3437   * Description: <b>Multiple Resources: 
3438
3439* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
3440* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
3441* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
3442* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
3443* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
3444* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
3445* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
3446* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
3447* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
3448* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
3449* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
3450* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
3451* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
3452* [ValueSet](valueset.html): A use context type and value assigned to the value set
3453</b><br>
3454   * Type: <b>composite</b><br>
3455   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
3456   * </p>
3457   */
3458  @SearchParamDefinition(name="context-type-value", path="CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A use context type and value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context"} )
3459  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
3460 /**
3461   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
3462   * <p>
3463   * Description: <b>Multiple Resources: 
3464
3465* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
3466* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
3467* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
3468* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
3469* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
3470* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
3471* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
3472* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
3473* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
3474* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
3475* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
3476* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
3477* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
3478* [ValueSet](valueset.html): A use context type and value assigned to the value set
3479</b><br>
3480   * Type: <b>composite</b><br>
3481   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
3482   * </p>
3483   */
3484  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);
3485
3486 /**
3487   * Search parameter: <b>context-type</b>
3488   * <p>
3489   * Description: <b>Multiple Resources: 
3490
3491* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
3492* [CodeSystem](codesystem.html): A type of use context assigned to the code system
3493* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
3494* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
3495* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
3496* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
3497* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
3498* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
3499* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
3500* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
3501* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
3502* [StructureMap](structuremap.html): A type of use context assigned to the structure map
3503* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
3504* [ValueSet](valueset.html): A type of use context assigned to the value set
3505</b><br>
3506   * Type: <b>token</b><br>
3507   * Path: <b>CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code</b><br>
3508   * </p>
3509   */
3510  @SearchParamDefinition(name="context-type", path="CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A type of use context assigned to the value set\r\n", type="token" )
3511  public static final String SP_CONTEXT_TYPE = "context-type";
3512 /**
3513   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
3514   * <p>
3515   * Description: <b>Multiple Resources: 
3516
3517* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
3518* [CodeSystem](codesystem.html): A type of use context assigned to the code system
3519* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
3520* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
3521* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
3522* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
3523* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
3524* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
3525* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
3526* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
3527* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
3528* [StructureMap](structuremap.html): A type of use context assigned to the structure map
3529* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
3530* [ValueSet](valueset.html): A type of use context assigned to the value set
3531</b><br>
3532   * Type: <b>token</b><br>
3533   * Path: <b>CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code</b><br>
3534   * </p>
3535   */
3536  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
3537
3538 /**
3539   * Search parameter: <b>context</b>
3540   * <p>
3541   * Description: <b>Multiple Resources: 
3542
3543* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
3544* [CodeSystem](codesystem.html): A use context assigned to the code system
3545* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
3546* [ConceptMap](conceptmap.html): A use context assigned to the concept map
3547* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
3548* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
3549* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
3550* [NamingSystem](namingsystem.html): A use context assigned to the naming system
3551* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
3552* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
3553* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
3554* [StructureMap](structuremap.html): A use context assigned to the structure map
3555* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
3556* [ValueSet](valueset.html): A use context assigned to the value set
3557</b><br>
3558   * Type: <b>token</b><br>
3559   * Path: <b>(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)</b><br>
3560   * </p>
3561   */
3562  @SearchParamDefinition(name="context", path="(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A use context assigned to the value set\r\n", type="token" )
3563  public static final String SP_CONTEXT = "context";
3564 /**
3565   * <b>Fluent Client</b> search parameter constant for <b>context</b>
3566   * <p>
3567   * Description: <b>Multiple Resources: 
3568
3569* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
3570* [CodeSystem](codesystem.html): A use context assigned to the code system
3571* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
3572* [ConceptMap](conceptmap.html): A use context assigned to the concept map
3573* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
3574* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
3575* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
3576* [NamingSystem](namingsystem.html): A use context assigned to the naming system
3577* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
3578* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
3579* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
3580* [StructureMap](structuremap.html): A use context assigned to the structure map
3581* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
3582* [ValueSet](valueset.html): A use context assigned to the value set
3583</b><br>
3584   * Type: <b>token</b><br>
3585   * Path: <b>(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)</b><br>
3586   * </p>
3587   */
3588  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
3589
3590 /**
3591   * Search parameter: <b>date</b>
3592   * <p>
3593   * Description: <b>Multiple Resources: 
3594
3595* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
3596* [CodeSystem](codesystem.html): The code system publication date
3597* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
3598* [ConceptMap](conceptmap.html): The concept map publication date
3599* [GraphDefinition](graphdefinition.html): The graph definition publication date
3600* [ImplementationGuide](implementationguide.html): The implementation guide publication date
3601* [MessageDefinition](messagedefinition.html): The message definition publication date
3602* [NamingSystem](namingsystem.html): The naming system publication date
3603* [OperationDefinition](operationdefinition.html): The operation definition publication date
3604* [SearchParameter](searchparameter.html): The search parameter publication date
3605* [StructureDefinition](structuredefinition.html): The structure definition publication date
3606* [StructureMap](structuremap.html): The structure map publication date
3607* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
3608* [ValueSet](valueset.html): The value set publication date
3609</b><br>
3610   * Type: <b>date</b><br>
3611   * Path: <b>CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date</b><br>
3612   * </p>
3613   */
3614  @SearchParamDefinition(name="date", path="CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The capability statement 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* [GraphDefinition](graphdefinition.html): The graph definition publication date\r\n* [ImplementationGuide](implementationguide.html): The implementation guide 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* [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* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date\r\n* [ValueSet](valueset.html): The value set publication date\r\n", type="date" )
3615  public static final String SP_DATE = "date";
3616 /**
3617   * <b>Fluent Client</b> search parameter constant for <b>date</b>
3618   * <p>
3619   * Description: <b>Multiple Resources: 
3620
3621* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
3622* [CodeSystem](codesystem.html): The code system publication date
3623* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
3624* [ConceptMap](conceptmap.html): The concept map publication date
3625* [GraphDefinition](graphdefinition.html): The graph definition publication date
3626* [ImplementationGuide](implementationguide.html): The implementation guide publication date
3627* [MessageDefinition](messagedefinition.html): The message definition publication date
3628* [NamingSystem](namingsystem.html): The naming system publication date
3629* [OperationDefinition](operationdefinition.html): The operation definition publication date
3630* [SearchParameter](searchparameter.html): The search parameter publication date
3631* [StructureDefinition](structuredefinition.html): The structure definition publication date
3632* [StructureMap](structuremap.html): The structure map publication date
3633* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
3634* [ValueSet](valueset.html): The value set publication date
3635</b><br>
3636   * Type: <b>date</b><br>
3637   * Path: <b>CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date</b><br>
3638   * </p>
3639   */
3640  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
3641
3642 /**
3643   * Search parameter: <b>description</b>
3644   * <p>
3645   * Description: <b>Multiple Resources: 
3646
3647* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
3648* [CodeSystem](codesystem.html): The description of the code system
3649* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
3650* [ConceptMap](conceptmap.html): The description of the concept map
3651* [GraphDefinition](graphdefinition.html): The description of the graph definition
3652* [ImplementationGuide](implementationguide.html): The description of the implementation guide
3653* [MessageDefinition](messagedefinition.html): The description of the message definition
3654* [NamingSystem](namingsystem.html): The description of the naming system
3655* [OperationDefinition](operationdefinition.html): The description of the operation definition
3656* [SearchParameter](searchparameter.html): The description of the search parameter
3657* [StructureDefinition](structuredefinition.html): The description of the structure definition
3658* [StructureMap](structuremap.html): The description of the structure map
3659* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
3660* [ValueSet](valueset.html): The description of the value set
3661</b><br>
3662   * Type: <b>string</b><br>
3663   * Path: <b>CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description</b><br>
3664   * </p>
3665   */
3666  @SearchParamDefinition(name="description", path="CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The description of the capability statement\r\n* [CodeSystem](codesystem.html): The description of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition\r\n* [ConceptMap](conceptmap.html): The description of the concept map\r\n* [GraphDefinition](graphdefinition.html): The description of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The description of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The description of the message definition\r\n* [NamingSystem](namingsystem.html): The description of the naming system\r\n* [OperationDefinition](operationdefinition.html): The description of the operation definition\r\n* [SearchParameter](searchparameter.html): The description of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The description of the structure definition\r\n* [StructureMap](structuremap.html): The description of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities\r\n* [ValueSet](valueset.html): The description of the value set\r\n", type="string" )
3667  public static final String SP_DESCRIPTION = "description";
3668 /**
3669   * <b>Fluent Client</b> search parameter constant for <b>description</b>
3670   * <p>
3671   * Description: <b>Multiple Resources: 
3672
3673* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
3674* [CodeSystem](codesystem.html): The description of the code system
3675* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
3676* [ConceptMap](conceptmap.html): The description of the concept map
3677* [GraphDefinition](graphdefinition.html): The description of the graph definition
3678* [ImplementationGuide](implementationguide.html): The description of the implementation guide
3679* [MessageDefinition](messagedefinition.html): The description of the message definition
3680* [NamingSystem](namingsystem.html): The description of the naming system
3681* [OperationDefinition](operationdefinition.html): The description of the operation definition
3682* [SearchParameter](searchparameter.html): The description of the search parameter
3683* [StructureDefinition](structuredefinition.html): The description of the structure definition
3684* [StructureMap](structuremap.html): The description of the structure map
3685* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
3686* [ValueSet](valueset.html): The description of the value set
3687</b><br>
3688   * Type: <b>string</b><br>
3689   * Path: <b>CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description</b><br>
3690   * </p>
3691   */
3692  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
3693
3694 /**
3695   * Search parameter: <b>effective</b>
3696   * <p>
3697   * Description: <b>Multiple Resources: 
3698
3699* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
3700* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
3701* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
3702* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
3703</b><br>
3704   * Type: <b>date</b><br>
3705   * Path: <b>CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | NamingSystem.effectivePeriod | ValueSet.effectivePeriod</b><br>
3706   * </p>
3707   */
3708  @SearchParamDefinition(name="effective", path="CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | NamingSystem.effectivePeriod | ValueSet.effectivePeriod", description="Multiple Resources: \r\n\r\n* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use\r\n* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use\r\n* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use\r\n* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use\r\n", type="date" )
3709  public static final String SP_EFFECTIVE = "effective";
3710 /**
3711   * <b>Fluent Client</b> search parameter constant for <b>effective</b>
3712   * <p>
3713   * Description: <b>Multiple Resources: 
3714
3715* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
3716* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
3717* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
3718* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
3719</b><br>
3720   * Type: <b>date</b><br>
3721   * Path: <b>CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | NamingSystem.effectivePeriod | ValueSet.effectivePeriod</b><br>
3722   * </p>
3723   */
3724  public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE);
3725
3726 /**
3727   * Search parameter: <b>identifier</b>
3728   * <p>
3729   * Description: <b>Multiple Resources: 
3730
3731* [CodeSystem](codesystem.html): External identifier for the code system
3732* [ConceptMap](conceptmap.html): External identifier for the concept map
3733* [MessageDefinition](messagedefinition.html): External identifier for the message definition
3734* [NamingSystem](namingsystem.html): External identifier for the naming system
3735* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
3736* [StructureMap](structuremap.html): External identifier for the structure map
3737* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
3738* [ValueSet](valueset.html): External identifier for the value set
3739</b><br>
3740   * Type: <b>token</b><br>
3741   * Path: <b>CodeSystem.identifier | ConceptMap.identifier | MessageDefinition.identifier | NamingSystem.identifier | StructureDefinition.identifier | StructureMap.identifier | TerminologyCapabilities.identifier | ValueSet.identifier</b><br>
3742   * </p>
3743   */
3744  @SearchParamDefinition(name="identifier", path="CodeSystem.identifier | ConceptMap.identifier | MessageDefinition.identifier | NamingSystem.identifier | StructureDefinition.identifier | StructureMap.identifier | TerminologyCapabilities.identifier | ValueSet.identifier", description="Multiple Resources: \r\n\r\n* [CodeSystem](codesystem.html): External identifier for the code system\r\n* [ConceptMap](conceptmap.html): External identifier for the concept map\r\n* [MessageDefinition](messagedefinition.html): External identifier for the message definition\r\n* [NamingSystem](namingsystem.html): External identifier for the naming system\r\n* [StructureDefinition](structuredefinition.html): External identifier for the structure definition\r\n* [StructureMap](structuremap.html): External identifier for the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities\r\n* [ValueSet](valueset.html): External identifier for the value set\r\n", type="token" )
3745  public static final String SP_IDENTIFIER = "identifier";
3746 /**
3747   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
3748   * <p>
3749   * Description: <b>Multiple Resources: 
3750
3751* [CodeSystem](codesystem.html): External identifier for the code system
3752* [ConceptMap](conceptmap.html): External identifier for the concept map
3753* [MessageDefinition](messagedefinition.html): External identifier for the message definition
3754* [NamingSystem](namingsystem.html): External identifier for the naming system
3755* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
3756* [StructureMap](structuremap.html): External identifier for the structure map
3757* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
3758* [ValueSet](valueset.html): External identifier for the value set
3759</b><br>
3760   * Type: <b>token</b><br>
3761   * Path: <b>CodeSystem.identifier | ConceptMap.identifier | MessageDefinition.identifier | NamingSystem.identifier | StructureDefinition.identifier | StructureMap.identifier | TerminologyCapabilities.identifier | ValueSet.identifier</b><br>
3762   * </p>
3763   */
3764  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
3765
3766 /**
3767   * Search parameter: <b>jurisdiction</b>
3768   * <p>
3769   * Description: <b>Multiple Resources: 
3770
3771* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
3772* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
3773* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
3774* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
3775* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
3776* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
3777* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
3778* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
3779* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
3780* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
3781* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
3782* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
3783* [ValueSet](valueset.html): Intended jurisdiction for the value set
3784</b><br>
3785   * Type: <b>token</b><br>
3786   * Path: <b>CapabilityStatement.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | ValueSet.jurisdiction</b><br>
3787   * </p>
3788   */
3789  @SearchParamDefinition(name="jurisdiction", path="CapabilityStatement.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | ValueSet.jurisdiction", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement\r\n* [CodeSystem](codesystem.html): Intended jurisdiction for the code system\r\n* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map\r\n* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition\r\n* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide\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* [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* [ValueSet](valueset.html): Intended jurisdiction for the value set\r\n", type="token" )
3790  public static final String SP_JURISDICTION = "jurisdiction";
3791 /**
3792   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
3793   * <p>
3794   * Description: <b>Multiple Resources: 
3795
3796* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
3797* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
3798* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
3799* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
3800* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
3801* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
3802* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
3803* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
3804* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
3805* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
3806* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
3807* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
3808* [ValueSet](valueset.html): Intended jurisdiction for the value set
3809</b><br>
3810   * Type: <b>token</b><br>
3811   * Path: <b>CapabilityStatement.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | ValueSet.jurisdiction</b><br>
3812   * </p>
3813   */
3814  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
3815
3816 /**
3817   * Search parameter: <b>name</b>
3818   * <p>
3819   * Description: <b>Multiple Resources: 
3820
3821* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
3822* [CodeSystem](codesystem.html): Computationally friendly name of the code system
3823* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
3824* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
3825* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
3826* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
3827* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
3828* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
3829* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
3830* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
3831* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
3832* [StructureMap](structuremap.html): Computationally friendly name of the structure map
3833* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
3834* [ValueSet](valueset.html): Computationally friendly name of the value set
3835</b><br>
3836   * Type: <b>string</b><br>
3837   * Path: <b>CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name</b><br>
3838   * </p>
3839   */
3840  @SearchParamDefinition(name="name", path="CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement\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* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide\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* [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* [ValueSet](valueset.html): Computationally friendly name of the value set\r\n", type="string" )
3841  public static final String SP_NAME = "name";
3842 /**
3843   * <b>Fluent Client</b> search parameter constant for <b>name</b>
3844   * <p>
3845   * Description: <b>Multiple Resources: 
3846
3847* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
3848* [CodeSystem](codesystem.html): Computationally friendly name of the code system
3849* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
3850* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
3851* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
3852* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
3853* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
3854* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
3855* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
3856* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
3857* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
3858* [StructureMap](structuremap.html): Computationally friendly name of the structure map
3859* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
3860* [ValueSet](valueset.html): Computationally friendly name of the value set
3861</b><br>
3862   * Type: <b>string</b><br>
3863   * Path: <b>CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name</b><br>
3864   * </p>
3865   */
3866  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
3867
3868 /**
3869   * Search parameter: <b>publisher</b>
3870   * <p>
3871   * Description: <b>Multiple Resources: 
3872
3873* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
3874* [CodeSystem](codesystem.html): Name of the publisher of the code system
3875* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
3876* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
3877* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
3878* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
3879* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
3880* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
3881* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
3882* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
3883* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
3884* [StructureMap](structuremap.html): Name of the publisher of the structure map
3885* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
3886* [ValueSet](valueset.html): Name of the publisher of the value set
3887</b><br>
3888   * Type: <b>string</b><br>
3889   * Path: <b>CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher</b><br>
3890   * </p>
3891   */
3892  @SearchParamDefinition(name="publisher", path="CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): Name of the publisher of the value set\r\n", type="string" )
3893  public static final String SP_PUBLISHER = "publisher";
3894 /**
3895   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
3896   * <p>
3897   * Description: <b>Multiple Resources: 
3898
3899* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
3900* [CodeSystem](codesystem.html): Name of the publisher of the code system
3901* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
3902* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
3903* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
3904* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
3905* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
3906* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
3907* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
3908* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
3909* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
3910* [StructureMap](structuremap.html): Name of the publisher of the structure map
3911* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
3912* [ValueSet](valueset.html): Name of the publisher of the value set
3913</b><br>
3914   * Type: <b>string</b><br>
3915   * Path: <b>CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher</b><br>
3916   * </p>
3917   */
3918  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
3919
3920 /**
3921   * Search parameter: <b>status</b>
3922   * <p>
3923   * Description: <b>Multiple Resources: 
3924
3925* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
3926* [CodeSystem](codesystem.html): The current status of the code system
3927* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
3928* [ConceptMap](conceptmap.html): The current status of the concept map
3929* [GraphDefinition](graphdefinition.html): The current status of the graph definition
3930* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
3931* [MessageDefinition](messagedefinition.html): The current status of the message definition
3932* [NamingSystem](namingsystem.html): The current status of the naming system
3933* [OperationDefinition](operationdefinition.html): The current status of the operation definition
3934* [SearchParameter](searchparameter.html): The current status of the search parameter
3935* [StructureDefinition](structuredefinition.html): The current status of the structure definition
3936* [StructureMap](structuremap.html): The current status of the structure map
3937* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
3938* [ValueSet](valueset.html): The current status of the value set
3939</b><br>
3940   * Type: <b>token</b><br>
3941   * Path: <b>CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status</b><br>
3942   * </p>
3943   */
3944  @SearchParamDefinition(name="status", path="CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement\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* [GraphDefinition](graphdefinition.html): The current status of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The current status of the implementation guide\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* [OperationDefinition](operationdefinition.html): The current status of the operation definition\r\n* [SearchParameter](searchparameter.html): The current status of the search parameter\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* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities\r\n* [ValueSet](valueset.html): The current status of the value set\r\n", type="token" )
3945  public static final String SP_STATUS = "status";
3946 /**
3947   * <b>Fluent Client</b> search parameter constant for <b>status</b>
3948   * <p>
3949   * Description: <b>Multiple Resources: 
3950
3951* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
3952* [CodeSystem](codesystem.html): The current status of the code system
3953* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
3954* [ConceptMap](conceptmap.html): The current status of the concept map
3955* [GraphDefinition](graphdefinition.html): The current status of the graph definition
3956* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
3957* [MessageDefinition](messagedefinition.html): The current status of the message definition
3958* [NamingSystem](namingsystem.html): The current status of the naming system
3959* [OperationDefinition](operationdefinition.html): The current status of the operation definition
3960* [SearchParameter](searchparameter.html): The current status of the search parameter
3961* [StructureDefinition](structuredefinition.html): The current status of the structure definition
3962* [StructureMap](structuremap.html): The current status of the structure map
3963* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
3964* [ValueSet](valueset.html): The current status of the value set
3965</b><br>
3966   * Type: <b>token</b><br>
3967   * Path: <b>CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status</b><br>
3968   * </p>
3969   */
3970  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
3971
3972 /**
3973   * Search parameter: <b>url</b>
3974   * <p>
3975   * Description: <b>Multiple Resources: 
3976
3977* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
3978* [CodeSystem](codesystem.html): The uri that identifies the code system
3979* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
3980* [ConceptMap](conceptmap.html): The URI that identifies the concept map
3981* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
3982* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
3983* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
3984* [NamingSystem](namingsystem.html): The uri that identifies the naming system
3985* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
3986* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
3987* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
3988* [StructureMap](structuremap.html): The uri that identifies the structure map
3989* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
3990* [ValueSet](valueset.html): The uri that identifies the value set
3991</b><br>
3992   * Type: <b>uri</b><br>
3993   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | NamingSystem.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
3994   * </p>
3995   */
3996  @SearchParamDefinition(name="url", path="CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | NamingSystem.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement\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* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition\r\n* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide\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* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition\r\n* [SearchParameter](searchparameter.html): The uri that identifies the search parameter\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* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities\r\n* [ValueSet](valueset.html): The uri that identifies the value set\r\n", type="uri" )
3997  public static final String SP_URL = "url";
3998 /**
3999   * <b>Fluent Client</b> search parameter constant for <b>url</b>
4000   * <p>
4001   * Description: <b>Multiple Resources: 
4002
4003* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
4004* [CodeSystem](codesystem.html): The uri that identifies the code system
4005* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
4006* [ConceptMap](conceptmap.html): The URI that identifies the concept map
4007* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
4008* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
4009* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
4010* [NamingSystem](namingsystem.html): The uri that identifies the naming system
4011* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
4012* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
4013* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
4014* [StructureMap](structuremap.html): The uri that identifies the structure map
4015* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
4016* [ValueSet](valueset.html): The uri that identifies the value set
4017</b><br>
4018   * Type: <b>uri</b><br>
4019   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | NamingSystem.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
4020   * </p>
4021   */
4022  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
4023
4024 /**
4025   * Search parameter: <b>version</b>
4026   * <p>
4027   * Description: <b>Multiple Resources: 
4028
4029* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
4030* [CodeSystem](codesystem.html): The business version of the code system
4031* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
4032* [ConceptMap](conceptmap.html): The business version of the concept map
4033* [GraphDefinition](graphdefinition.html): The business version of the graph definition
4034* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
4035* [MessageDefinition](messagedefinition.html): The business version of the message definition
4036* [NamingSystem](namingsystem.html): The business version of the naming system
4037* [OperationDefinition](operationdefinition.html): The business version of the operation definition
4038* [SearchParameter](searchparameter.html): The business version of the search parameter
4039* [StructureDefinition](structuredefinition.html): The business version of the structure definition
4040* [StructureMap](structuremap.html): The business version of the structure map
4041* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
4042* [ValueSet](valueset.html): The business version of the value set
4043</b><br>
4044   * Type: <b>token</b><br>
4045   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
4046   * </p>
4047   */
4048  @SearchParamDefinition(name="version", path="CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement\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* [GraphDefinition](graphdefinition.html): The business version of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The business version of the implementation guide\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* [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* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities\r\n* [ValueSet](valueset.html): The business version of the value set\r\n", type="token" )
4049  public static final String SP_VERSION = "version";
4050 /**
4051   * <b>Fluent Client</b> search parameter constant for <b>version</b>
4052   * <p>
4053   * Description: <b>Multiple Resources: 
4054
4055* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
4056* [CodeSystem](codesystem.html): The business version of the code system
4057* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
4058* [ConceptMap](conceptmap.html): The business version of the concept map
4059* [GraphDefinition](graphdefinition.html): The business version of the graph definition
4060* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
4061* [MessageDefinition](messagedefinition.html): The business version of the message definition
4062* [NamingSystem](namingsystem.html): The business version of the naming system
4063* [OperationDefinition](operationdefinition.html): The business version of the operation definition
4064* [SearchParameter](searchparameter.html): The business version of the search parameter
4065* [StructureDefinition](structuredefinition.html): The business version of the structure definition
4066* [StructureMap](structuremap.html): The business version of the structure map
4067* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
4068* [ValueSet](valueset.html): The business version of the value set
4069</b><br>
4070   * Type: <b>token</b><br>
4071   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
4072   * </p>
4073   */
4074  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
4075
4076// Manual code (from Configuration.txt):
4077  public boolean supportsCopyright() {
4078    return false;
4079  }
4080
4081// end addition
4082
4083}
4084