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 Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1
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 CanonicalResource {
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            default: return "?";
107          }
108        }
109        public String getSystem() {
110          switch (this) {
111            case OID: return "http://hl7.org/fhir/namingsystem-identifier-type";
112            case UUID: return "http://hl7.org/fhir/namingsystem-identifier-type";
113            case URI: return "http://hl7.org/fhir/namingsystem-identifier-type";
114            case V2CSMNEMONIC: return "http://hl7.org/fhir/namingsystem-identifier-type";
115            case OTHER: return "http://hl7.org/fhir/namingsystem-identifier-type";
116            default: return "?";
117          }
118        }
119        public String getDefinition() {
120          switch (this) {
121            case OID: return "An ISO object identifier; e.g. 1.2.3.4.5.";
122            case UUID: return "A universally unique identifier of the form a5afddf4-e880-459b-876e-e4591b0acc11.";
123            case URI: return "A uniform resource identifier (ideally a URL - uniform resource locator); e.g. http://unitsofmeasure.org.";
124            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";
125            case OTHER: return "Some other type of unique identifier; e.g. HL7-assigned reserved string such as LN for LOINC.";
126            default: return "?";
127          }
128        }
129        public String getDisplay() {
130          switch (this) {
131            case OID: return "OID";
132            case UUID: return "UUID";
133            case URI: return "URI";
134            case V2CSMNEMONIC: return "V2CSMNemonic";
135            case OTHER: return "Other";
136            default: return "?";
137          }
138        }
139    }
140
141  public static class NamingSystemIdentifierTypeEnumFactory implements EnumFactory<NamingSystemIdentifierType> {
142    public NamingSystemIdentifierType fromCode(String codeString) throws IllegalArgumentException {
143      if (codeString == null || "".equals(codeString))
144            if (codeString == null || "".equals(codeString))
145                return null;
146        if ("oid".equals(codeString))
147          return NamingSystemIdentifierType.OID;
148        if ("uuid".equals(codeString))
149          return NamingSystemIdentifierType.UUID;
150        if ("uri".equals(codeString))
151          return NamingSystemIdentifierType.URI;
152        if ("v2csmnemonic".equals(codeString))
153          return NamingSystemIdentifierType.V2CSMNEMONIC;
154        if ("other".equals(codeString))
155          return NamingSystemIdentifierType.OTHER;
156        throw new IllegalArgumentException("Unknown NamingSystemIdentifierType code '"+codeString+"'");
157        }
158        public Enumeration<NamingSystemIdentifierType> fromType(Base code) throws FHIRException {
159          if (code == null)
160            return null;
161          if (code.isEmpty())
162            return new Enumeration<NamingSystemIdentifierType>(this);
163          String codeString = ((PrimitiveType) code).asStringValue();
164          if (codeString == null || "".equals(codeString))
165            return null;
166        if ("oid".equals(codeString))
167          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.OID);
168        if ("uuid".equals(codeString))
169          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.UUID);
170        if ("uri".equals(codeString))
171          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.URI);
172        if ("v2csmnemonic".equals(codeString))
173          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.V2CSMNEMONIC);
174        if ("other".equals(codeString))
175          return new Enumeration<NamingSystemIdentifierType>(this, NamingSystemIdentifierType.OTHER);
176        throw new FHIRException("Unknown NamingSystemIdentifierType code '"+codeString+"'");
177        }
178    public String toCode(NamingSystemIdentifierType code) {
179      if (code == NamingSystemIdentifierType.OID)
180        return "oid";
181      if (code == NamingSystemIdentifierType.UUID)
182        return "uuid";
183      if (code == NamingSystemIdentifierType.URI)
184        return "uri";
185      if (code == NamingSystemIdentifierType.V2CSMNEMONIC)
186        return "v2csmnemonic";
187      if (code == NamingSystemIdentifierType.OTHER)
188        return "other";
189      return "?";
190      }
191    public String toSystem(NamingSystemIdentifierType code) {
192      return code.getSystem();
193      }
194    }
195
196    public enum NamingSystemType {
197        /**
198         * The naming system is used to define concepts and symbols to represent those concepts; e.g. UCUM, LOINC, NDC code, local lab codes, etc.
199         */
200        CODESYSTEM, 
201        /**
202         * The naming system is used to manage identifiers (e.g. license numbers, order numbers, etc.).
203         */
204        IDENTIFIER, 
205        /**
206         * The naming system is used as the root for other identifiers and naming systems.
207         */
208        ROOT, 
209        /**
210         * added to help the parsers with the generic types
211         */
212        NULL;
213        public static NamingSystemType fromCode(String codeString) throws FHIRException {
214            if (codeString == null || "".equals(codeString))
215                return null;
216        if ("codesystem".equals(codeString))
217          return CODESYSTEM;
218        if ("identifier".equals(codeString))
219          return IDENTIFIER;
220        if ("root".equals(codeString))
221          return ROOT;
222        if (Configuration.isAcceptInvalidEnums())
223          return null;
224        else
225          throw new FHIRException("Unknown NamingSystemType code '"+codeString+"'");
226        }
227        public String toCode() {
228          switch (this) {
229            case CODESYSTEM: return "codesystem";
230            case IDENTIFIER: return "identifier";
231            case ROOT: return "root";
232            default: return "?";
233          }
234        }
235        public String getSystem() {
236          switch (this) {
237            case CODESYSTEM: return "http://hl7.org/fhir/namingsystem-type";
238            case IDENTIFIER: return "http://hl7.org/fhir/namingsystem-type";
239            case ROOT: return "http://hl7.org/fhir/namingsystem-type";
240            default: return "?";
241          }
242        }
243        public String getDefinition() {
244          switch (this) {
245            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.";
246            case IDENTIFIER: return "The naming system is used to manage identifiers (e.g. license numbers, order numbers, etc.).";
247            case ROOT: return "The naming system is used as the root for other identifiers and naming systems.";
248            default: return "?";
249          }
250        }
251        public String getDisplay() {
252          switch (this) {
253            case CODESYSTEM: return "Code System";
254            case IDENTIFIER: return "Identifier";
255            case ROOT: return "Root";
256            default: return "?";
257          }
258        }
259    }
260
261  public static class NamingSystemTypeEnumFactory implements EnumFactory<NamingSystemType> {
262    public NamingSystemType fromCode(String codeString) throws IllegalArgumentException {
263      if (codeString == null || "".equals(codeString))
264            if (codeString == null || "".equals(codeString))
265                return null;
266        if ("codesystem".equals(codeString))
267          return NamingSystemType.CODESYSTEM;
268        if ("identifier".equals(codeString))
269          return NamingSystemType.IDENTIFIER;
270        if ("root".equals(codeString))
271          return NamingSystemType.ROOT;
272        throw new IllegalArgumentException("Unknown NamingSystemType code '"+codeString+"'");
273        }
274        public Enumeration<NamingSystemType> fromType(Base code) throws FHIRException {
275          if (code == null)
276            return null;
277          if (code.isEmpty())
278            return new Enumeration<NamingSystemType>(this);
279          String codeString = ((PrimitiveType) code).asStringValue();
280          if (codeString == null || "".equals(codeString))
281            return null;
282        if ("codesystem".equals(codeString))
283          return new Enumeration<NamingSystemType>(this, NamingSystemType.CODESYSTEM);
284        if ("identifier".equals(codeString))
285          return new Enumeration<NamingSystemType>(this, NamingSystemType.IDENTIFIER);
286        if ("root".equals(codeString))
287          return new Enumeration<NamingSystemType>(this, NamingSystemType.ROOT);
288        throw new FHIRException("Unknown NamingSystemType code '"+codeString+"'");
289        }
290    public String toCode(NamingSystemType code) {
291      if (code == NamingSystemType.CODESYSTEM)
292        return "codesystem";
293      if (code == NamingSystemType.IDENTIFIER)
294        return "identifier";
295      if (code == NamingSystemType.ROOT)
296        return "root";
297      return "?";
298      }
299    public String toSystem(NamingSystemType code) {
300      return code.getSystem();
301      }
302    }
303
304    @Block()
305    public static class NamingSystemUniqueIdComponent extends BackboneElement implements IBaseBackboneElement {
306        /**
307         * Identifies the unique identifier scheme used for this particular identifier.
308         */
309        @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
310        @Description(shortDefinition="oid | uuid | uri | v2csmnemonic | other", formalDefinition="Identifies the unique identifier scheme used for this particular identifier." )
311        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/namingsystem-identifier-type")
312        protected Enumeration<NamingSystemIdentifierType> type;
313
314        /**
315         * The string that should be sent over the wire to identify the code system or identifier system.
316         */
317        @Child(name = "value", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=true)
318        @Description(shortDefinition="The unique identifier", formalDefinition="The string that should be sent over the wire to identify the code system or identifier system." )
319        protected StringType value;
320
321        /**
322         * Indicates whether this identifier is the "preferred" identifier of this type.
323         */
324        @Child(name = "preferred", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false)
325        @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." )
326        protected BooleanType preferred;
327
328        /**
329         * Notes about the past or intended usage of this identifier.
330         */
331        @Child(name = "comment", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
332        @Description(shortDefinition="Notes about identifier usage", formalDefinition="Notes about the past or intended usage of this identifier." )
333        protected StringType comment;
334
335        /**
336         * 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.
337         */
338        @Child(name = "period", type = {Period.class}, order=5, min=0, max=1, modifier=false, summary=false)
339        @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." )
340        protected Period period;
341
342        /**
343         * Indicates whether this identifier ie endorsed by the official owner of the associated naming system.
344         */
345        @Child(name = "authoritative", type = {BooleanType.class}, order=6, min=0, max=1, modifier=false, summary=false)
346        @Description(shortDefinition="Whether the identifier is authoritative", formalDefinition="Indicates whether this identifier ie endorsed by the official owner of the associated naming system." )
347        protected BooleanType authoritative;
348
349        private static final long serialVersionUID = -166953751L;
350
351    /**
352     * Constructor
353     */
354      public NamingSystemUniqueIdComponent() {
355        super();
356      }
357
358    /**
359     * Constructor
360     */
361      public NamingSystemUniqueIdComponent(NamingSystemIdentifierType type, String value) {
362        super();
363        this.setType(type);
364        this.setValue(value);
365      }
366
367        /**
368         * @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
369         */
370        public Enumeration<NamingSystemIdentifierType> getTypeElement() { 
371          if (this.type == null)
372            if (Configuration.errorOnAutoCreate())
373              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.type");
374            else if (Configuration.doAutoCreate())
375              this.type = new Enumeration<NamingSystemIdentifierType>(new NamingSystemIdentifierTypeEnumFactory()); // bb
376          return this.type;
377        }
378
379        public boolean hasTypeElement() { 
380          return this.type != null && !this.type.isEmpty();
381        }
382
383        public boolean hasType() { 
384          return this.type != null && !this.type.isEmpty();
385        }
386
387        /**
388         * @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
389         */
390        public NamingSystemUniqueIdComponent setTypeElement(Enumeration<NamingSystemIdentifierType> value) { 
391          this.type = value;
392          return this;
393        }
394
395        /**
396         * @return Identifies the unique identifier scheme used for this particular identifier.
397         */
398        public NamingSystemIdentifierType getType() { 
399          return this.type == null ? null : this.type.getValue();
400        }
401
402        /**
403         * @param value Identifies the unique identifier scheme used for this particular identifier.
404         */
405        public NamingSystemUniqueIdComponent setType(NamingSystemIdentifierType value) { 
406            if (this.type == null)
407              this.type = new Enumeration<NamingSystemIdentifierType>(new NamingSystemIdentifierTypeEnumFactory());
408            this.type.setValue(value);
409          return this;
410        }
411
412        /**
413         * @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
414         */
415        public StringType getValueElement() { 
416          if (this.value == null)
417            if (Configuration.errorOnAutoCreate())
418              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.value");
419            else if (Configuration.doAutoCreate())
420              this.value = new StringType(); // bb
421          return this.value;
422        }
423
424        public boolean hasValueElement() { 
425          return this.value != null && !this.value.isEmpty();
426        }
427
428        public boolean hasValue() { 
429          return this.value != null && !this.value.isEmpty();
430        }
431
432        /**
433         * @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
434         */
435        public NamingSystemUniqueIdComponent setValueElement(StringType value) { 
436          this.value = value;
437          return this;
438        }
439
440        /**
441         * @return The string that should be sent over the wire to identify the code system or identifier system.
442         */
443        public String getValue() { 
444          return this.value == null ? null : this.value.getValue();
445        }
446
447        /**
448         * @param value The string that should be sent over the wire to identify the code system or identifier system.
449         */
450        public NamingSystemUniqueIdComponent setValue(String value) { 
451            if (this.value == null)
452              this.value = new StringType();
453            this.value.setValue(value);
454          return this;
455        }
456
457        /**
458         * @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
459         */
460        public BooleanType getPreferredElement() { 
461          if (this.preferred == null)
462            if (Configuration.errorOnAutoCreate())
463              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.preferred");
464            else if (Configuration.doAutoCreate())
465              this.preferred = new BooleanType(); // bb
466          return this.preferred;
467        }
468
469        public boolean hasPreferredElement() { 
470          return this.preferred != null && !this.preferred.isEmpty();
471        }
472
473        public boolean hasPreferred() { 
474          return this.preferred != null && !this.preferred.isEmpty();
475        }
476
477        /**
478         * @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
479         */
480        public NamingSystemUniqueIdComponent setPreferredElement(BooleanType value) { 
481          this.preferred = value;
482          return this;
483        }
484
485        /**
486         * @return Indicates whether this identifier is the "preferred" identifier of this type.
487         */
488        public boolean getPreferred() { 
489          return this.preferred == null || this.preferred.isEmpty() ? false : this.preferred.getValue();
490        }
491
492        /**
493         * @param value Indicates whether this identifier is the "preferred" identifier of this type.
494         */
495        public NamingSystemUniqueIdComponent setPreferred(boolean value) { 
496            if (this.preferred == null)
497              this.preferred = new BooleanType();
498            this.preferred.setValue(value);
499          return this;
500        }
501
502        /**
503         * @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
504         */
505        public StringType getCommentElement() { 
506          if (this.comment == null)
507            if (Configuration.errorOnAutoCreate())
508              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.comment");
509            else if (Configuration.doAutoCreate())
510              this.comment = new StringType(); // bb
511          return this.comment;
512        }
513
514        public boolean hasCommentElement() { 
515          return this.comment != null && !this.comment.isEmpty();
516        }
517
518        public boolean hasComment() { 
519          return this.comment != null && !this.comment.isEmpty();
520        }
521
522        /**
523         * @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
524         */
525        public NamingSystemUniqueIdComponent setCommentElement(StringType value) { 
526          this.comment = value;
527          return this;
528        }
529
530        /**
531         * @return Notes about the past or intended usage of this identifier.
532         */
533        public String getComment() { 
534          return this.comment == null ? null : this.comment.getValue();
535        }
536
537        /**
538         * @param value Notes about the past or intended usage of this identifier.
539         */
540        public NamingSystemUniqueIdComponent setComment(String value) { 
541          if (Utilities.noString(value))
542            this.comment = null;
543          else {
544            if (this.comment == null)
545              this.comment = new StringType();
546            this.comment.setValue(value);
547          }
548          return this;
549        }
550
551        /**
552         * @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.)
553         */
554        public Period getPeriod() { 
555          if (this.period == null)
556            if (Configuration.errorOnAutoCreate())
557              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.period");
558            else if (Configuration.doAutoCreate())
559              this.period = new Period(); // cc
560          return this.period;
561        }
562
563        public boolean hasPeriod() { 
564          return this.period != null && !this.period.isEmpty();
565        }
566
567        /**
568         * @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.)
569         */
570        public NamingSystemUniqueIdComponent setPeriod(Period value) { 
571          this.period = value;
572          return this;
573        }
574
575        /**
576         * @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
577         */
578        public BooleanType getAuthoritativeElement() { 
579          if (this.authoritative == null)
580            if (Configuration.errorOnAutoCreate())
581              throw new Error("Attempt to auto-create NamingSystemUniqueIdComponent.authoritative");
582            else if (Configuration.doAutoCreate())
583              this.authoritative = new BooleanType(); // bb
584          return this.authoritative;
585        }
586
587        public boolean hasAuthoritativeElement() { 
588          return this.authoritative != null && !this.authoritative.isEmpty();
589        }
590
591        public boolean hasAuthoritative() { 
592          return this.authoritative != null && !this.authoritative.isEmpty();
593        }
594
595        /**
596         * @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
597         */
598        public NamingSystemUniqueIdComponent setAuthoritativeElement(BooleanType value) { 
599          this.authoritative = value;
600          return this;
601        }
602
603        /**
604         * @return Indicates whether this identifier ie endorsed by the official owner of the associated naming system.
605         */
606        public boolean getAuthoritative() { 
607          return this.authoritative == null || this.authoritative.isEmpty() ? false : this.authoritative.getValue();
608        }
609
610        /**
611         * @param value Indicates whether this identifier ie endorsed by the official owner of the associated naming system.
612         */
613        public NamingSystemUniqueIdComponent setAuthoritative(boolean value) { 
614            if (this.authoritative == null)
615              this.authoritative = new BooleanType();
616            this.authoritative.setValue(value);
617          return this;
618        }
619
620        protected void listChildren(List<Property> children) {
621          super.listChildren(children);
622          children.add(new Property("type", "code", "Identifies the unique identifier scheme used for this particular identifier.", 0, 1, type));
623          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));
624          children.add(new Property("preferred", "boolean", "Indicates whether this identifier is the \"preferred\" identifier of this type.", 0, 1, preferred));
625          children.add(new Property("comment", "string", "Notes about the past or intended usage of this identifier.", 0, 1, comment));
626          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));
627          children.add(new Property("authoritative", "boolean", "Indicates whether this identifier ie endorsed by the official owner of the associated naming system.", 0, 1, authoritative));
628        }
629
630        @Override
631        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
632          switch (_hash) {
633          case 3575610: /*type*/  return new Property("type", "code", "Identifies the unique identifier scheme used for this particular identifier.", 0, 1, type);
634          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);
635          case -1294005119: /*preferred*/  return new Property("preferred", "boolean", "Indicates whether this identifier is the \"preferred\" identifier of this type.", 0, 1, preferred);
636          case 950398559: /*comment*/  return new Property("comment", "string", "Notes about the past or intended usage of this identifier.", 0, 1, comment);
637          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);
638          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);
639          default: return super.getNamedProperty(_hash, _name, _checkValid);
640          }
641
642        }
643
644      @Override
645      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
646        switch (hash) {
647        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<NamingSystemIdentifierType>
648        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType
649        case -1294005119: /*preferred*/ return this.preferred == null ? new Base[0] : new Base[] {this.preferred}; // BooleanType
650        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType
651        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
652        case -1557344881: /*authoritative*/ return this.authoritative == null ? new Base[0] : new Base[] {this.authoritative}; // BooleanType
653        default: return super.getProperty(hash, name, checkValid);
654        }
655
656      }
657
658      @Override
659      public Base setProperty(int hash, String name, Base value) throws FHIRException {
660        switch (hash) {
661        case 3575610: // type
662          value = new NamingSystemIdentifierTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
663          this.type = (Enumeration) value; // Enumeration<NamingSystemIdentifierType>
664          return value;
665        case 111972721: // value
666          this.value = TypeConvertor.castToString(value); // StringType
667          return value;
668        case -1294005119: // preferred
669          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
670          return value;
671        case 950398559: // comment
672          this.comment = TypeConvertor.castToString(value); // StringType
673          return value;
674        case -991726143: // period
675          this.period = TypeConvertor.castToPeriod(value); // Period
676          return value;
677        case -1557344881: // authoritative
678          this.authoritative = TypeConvertor.castToBoolean(value); // BooleanType
679          return value;
680        default: return super.setProperty(hash, name, value);
681        }
682
683      }
684
685      @Override
686      public Base setProperty(String name, Base value) throws FHIRException {
687        if (name.equals("type")) {
688          value = new NamingSystemIdentifierTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
689          this.type = (Enumeration) value; // Enumeration<NamingSystemIdentifierType>
690        } else if (name.equals("value")) {
691          this.value = TypeConvertor.castToString(value); // StringType
692        } else if (name.equals("preferred")) {
693          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
694        } else if (name.equals("comment")) {
695          this.comment = TypeConvertor.castToString(value); // StringType
696        } else if (name.equals("period")) {
697          this.period = TypeConvertor.castToPeriod(value); // Period
698        } else if (name.equals("authoritative")) {
699          this.authoritative = TypeConvertor.castToBoolean(value); // BooleanType
700        } else
701          return super.setProperty(name, value);
702        return value;
703      }
704
705      @Override
706      public Base makeProperty(int hash, String name) throws FHIRException {
707        switch (hash) {
708        case 3575610:  return getTypeElement();
709        case 111972721:  return getValueElement();
710        case -1294005119:  return getPreferredElement();
711        case 950398559:  return getCommentElement();
712        case -991726143:  return getPeriod();
713        case -1557344881:  return getAuthoritativeElement();
714        default: return super.makeProperty(hash, name);
715        }
716
717      }
718
719      @Override
720      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
721        switch (hash) {
722        case 3575610: /*type*/ return new String[] {"code"};
723        case 111972721: /*value*/ return new String[] {"string"};
724        case -1294005119: /*preferred*/ return new String[] {"boolean"};
725        case 950398559: /*comment*/ return new String[] {"string"};
726        case -991726143: /*period*/ return new String[] {"Period"};
727        case -1557344881: /*authoritative*/ return new String[] {"boolean"};
728        default: return super.getTypesForProperty(hash, name);
729        }
730
731      }
732
733      @Override
734      public Base addChild(String name) throws FHIRException {
735        if (name.equals("type")) {
736          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.type");
737        }
738        else if (name.equals("value")) {
739          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.value");
740        }
741        else if (name.equals("preferred")) {
742          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.preferred");
743        }
744        else if (name.equals("comment")) {
745          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.comment");
746        }
747        else if (name.equals("period")) {
748          this.period = new Period();
749          return this.period;
750        }
751        else if (name.equals("authoritative")) {
752          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.uniqueId.authoritative");
753        }
754        else
755          return super.addChild(name);
756      }
757
758      public NamingSystemUniqueIdComponent copy() {
759        NamingSystemUniqueIdComponent dst = new NamingSystemUniqueIdComponent();
760        copyValues(dst);
761        return dst;
762      }
763
764      public void copyValues(NamingSystemUniqueIdComponent dst) {
765        super.copyValues(dst);
766        dst.type = type == null ? null : type.copy();
767        dst.value = value == null ? null : value.copy();
768        dst.preferred = preferred == null ? null : preferred.copy();
769        dst.comment = comment == null ? null : comment.copy();
770        dst.period = period == null ? null : period.copy();
771        dst.authoritative = authoritative == null ? null : authoritative.copy();
772      }
773
774      @Override
775      public boolean equalsDeep(Base other_) {
776        if (!super.equalsDeep(other_))
777          return false;
778        if (!(other_ instanceof NamingSystemUniqueIdComponent))
779          return false;
780        NamingSystemUniqueIdComponent o = (NamingSystemUniqueIdComponent) other_;
781        return compareDeep(type, o.type, true) && compareDeep(value, o.value, true) && compareDeep(preferred, o.preferred, true)
782           && compareDeep(comment, o.comment, true) && compareDeep(period, o.period, true) && compareDeep(authoritative, o.authoritative, true)
783          ;
784      }
785
786      @Override
787      public boolean equalsShallow(Base other_) {
788        if (!super.equalsShallow(other_))
789          return false;
790        if (!(other_ instanceof NamingSystemUniqueIdComponent))
791          return false;
792        NamingSystemUniqueIdComponent o = (NamingSystemUniqueIdComponent) other_;
793        return compareValues(type, o.type, true) && compareValues(value, o.value, true) && compareValues(preferred, o.preferred, true)
794           && compareValues(comment, o.comment, true) && compareValues(authoritative, o.authoritative, true);
795      }
796
797      public boolean isEmpty() {
798        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value, preferred, comment
799          , period, authoritative);
800      }
801
802  public String fhirType() {
803    return "NamingSystem.uniqueId";
804
805  }
806
807  }
808
809    /**
810     * 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 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.
811     */
812    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
813    @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 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." )
814    protected UriType url;
815
816    /**
817     * 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.
818     */
819    @Child(name = "version", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true)
820    @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." )
821    protected StringType version;
822
823    /**
824     * 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.
825     */
826    @Child(name = "name", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=true)
827    @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." )
828    protected StringType name;
829
830    /**
831     * A short, descriptive, user-friendly title for the naming system.
832     */
833    @Child(name = "title", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
834    @Description(shortDefinition="Title for this naming system (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the naming system." )
835    protected StringType title;
836
837    /**
838     * The status of this naming system. Enables tracking the life-cycle of the content.
839     */
840    @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=true)
841    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this naming system. Enables tracking the life-cycle of the content." )
842    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
843    protected Enumeration<PublicationStatus> status;
844
845    /**
846     * Indicates the purpose for the naming system - what kinds of things does it make unique?
847     */
848    @Child(name = "kind", type = {CodeType.class}, order=5, min=1, max=1, modifier=false, summary=true)
849    @Description(shortDefinition="codesystem | identifier | root", formalDefinition="Indicates the purpose for the naming system - what kinds of things does it make unique?" )
850    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/namingsystem-type")
851    protected Enumeration<NamingSystemType> kind;
852
853    /**
854     * 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.
855     */
856    @Child(name = "date", type = {DateTimeType.class}, order=6, min=1, max=1, modifier=false, summary=true)
857    @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." )
858    protected DateTimeType date;
859
860    /**
861     * The name of the organization or individual that published the naming system.
862     */
863    @Child(name = "publisher", type = {StringType.class}, order=7, min=0, max=1, modifier=false, summary=true)
864    @Description(shortDefinition="Name of the publisher (organization or individual)", formalDefinition="The name of the organization or individual that published the naming system." )
865    protected StringType publisher;
866
867    /**
868     * Contact details to assist a user in finding and communicating with the publisher.
869     */
870    @Child(name = "contact", type = {ContactDetail.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
871    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
872    protected List<ContactDetail> contact;
873
874    /**
875     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
876     */
877    @Child(name = "responsible", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=false)
878    @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." )
879    protected StringType responsible;
880
881    /**
882     * Categorizes a naming system for easier search by grouping related naming systems.
883     */
884    @Child(name = "type", type = {CodeableConcept.class}, order=10, min=0, max=1, modifier=false, summary=false)
885    @Description(shortDefinition="e.g. driver,  provider,  patient, bank etc.", formalDefinition="Categorizes a naming system for easier search by grouping related naming systems." )
886    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/identifier-type")
887    protected CodeableConcept type;
888
889    /**
890     * 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.
891     */
892    @Child(name = "description", type = {MarkdownType.class}, order=11, min=0, max=1, modifier=false, summary=false)
893    @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." )
894    protected MarkdownType description;
895
896    /**
897     * 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.
898     */
899    @Child(name = "useContext", type = {UsageContext.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
900    @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." )
901    protected List<UsageContext> useContext;
902
903    /**
904     * A legal or geographic region in which the naming system is intended to be used.
905     */
906    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
907    @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." )
908    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
909    protected List<CodeableConcept> jurisdiction;
910
911    /**
912     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
913     */
914    @Child(name = "usage", type = {StringType.class}, order=14, min=0, max=1, modifier=false, summary=false)
915    @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." )
916    protected StringType usage;
917
918    /**
919     * Indicates how the system may be identified when referenced in electronic exchange.
920     */
921    @Child(name = "uniqueId", type = {}, order=15, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
922    @Description(shortDefinition="Unique identifiers used for system", formalDefinition="Indicates how the system may be identified when referenced in electronic exchange." )
923    protected List<NamingSystemUniqueIdComponent> uniqueId;
924
925    private static final long serialVersionUID = 329180848L;
926
927  /**
928   * Constructor
929   */
930    public NamingSystem() {
931      super();
932    }
933
934  /**
935   * Constructor
936   */
937    public NamingSystem(String name, PublicationStatus status, NamingSystemType kind, Date date, NamingSystemUniqueIdComponent uniqueId) {
938      super();
939      this.setName(name);
940      this.setStatus(status);
941      this.setKind(kind);
942      this.setDate(date);
943      this.addUniqueId(uniqueId);
944    }
945
946    /**
947     * @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 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
948     */
949    public UriType getUrlElement() { 
950      if (this.url == null)
951        if (Configuration.errorOnAutoCreate())
952          throw new Error("Attempt to auto-create NamingSystem.url");
953        else if (Configuration.doAutoCreate())
954          this.url = new UriType(); // bb
955      return this.url;
956    }
957
958    public boolean hasUrlElement() { 
959      return this.url != null && !this.url.isEmpty();
960    }
961
962    public boolean hasUrl() { 
963      return this.url != null && !this.url.isEmpty();
964    }
965
966    /**
967     * @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 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
968     */
969    public NamingSystem setUrlElement(UriType value) { 
970      this.url = value;
971      return this;
972    }
973
974    /**
975     * @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 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.
976     */
977    public String getUrl() { 
978      return this.url == null ? null : this.url.getValue();
979    }
980
981    /**
982     * @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 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.
983     */
984    public NamingSystem setUrl(String value) { 
985      if (Utilities.noString(value))
986        this.url = null;
987      else {
988        if (this.url == null)
989          this.url = new UriType();
990        this.url.setValue(value);
991      }
992      return this;
993    }
994
995    /**
996     * @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
997     */
998    public StringType getVersionElement() { 
999      if (this.version == null)
1000        if (Configuration.errorOnAutoCreate())
1001          throw new Error("Attempt to auto-create NamingSystem.version");
1002        else if (Configuration.doAutoCreate())
1003          this.version = new StringType(); // bb
1004      return this.version;
1005    }
1006
1007    public boolean hasVersionElement() { 
1008      return this.version != null && !this.version.isEmpty();
1009    }
1010
1011    public boolean hasVersion() { 
1012      return this.version != null && !this.version.isEmpty();
1013    }
1014
1015    /**
1016     * @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
1017     */
1018    public NamingSystem setVersionElement(StringType value) { 
1019      this.version = value;
1020      return this;
1021    }
1022
1023    /**
1024     * @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.
1025     */
1026    public String getVersion() { 
1027      return this.version == null ? null : this.version.getValue();
1028    }
1029
1030    /**
1031     * @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.
1032     */
1033    public NamingSystem setVersion(String value) { 
1034      if (Utilities.noString(value))
1035        this.version = null;
1036      else {
1037        if (this.version == null)
1038          this.version = new StringType();
1039        this.version.setValue(value);
1040      }
1041      return this;
1042    }
1043
1044    /**
1045     * @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
1046     */
1047    public StringType getNameElement() { 
1048      if (this.name == null)
1049        if (Configuration.errorOnAutoCreate())
1050          throw new Error("Attempt to auto-create NamingSystem.name");
1051        else if (Configuration.doAutoCreate())
1052          this.name = new StringType(); // bb
1053      return this.name;
1054    }
1055
1056    public boolean hasNameElement() { 
1057      return this.name != null && !this.name.isEmpty();
1058    }
1059
1060    public boolean hasName() { 
1061      return this.name != null && !this.name.isEmpty();
1062    }
1063
1064    /**
1065     * @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
1066     */
1067    public NamingSystem setNameElement(StringType value) { 
1068      this.name = value;
1069      return this;
1070    }
1071
1072    /**
1073     * @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.
1074     */
1075    public String getName() { 
1076      return this.name == null ? null : this.name.getValue();
1077    }
1078
1079    /**
1080     * @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.
1081     */
1082    public NamingSystem setName(String value) { 
1083        if (this.name == null)
1084          this.name = new StringType();
1085        this.name.setValue(value);
1086      return this;
1087    }
1088
1089    /**
1090     * @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
1091     */
1092    public StringType getTitleElement() { 
1093      if (this.title == null)
1094        if (Configuration.errorOnAutoCreate())
1095          throw new Error("Attempt to auto-create NamingSystem.title");
1096        else if (Configuration.doAutoCreate())
1097          this.title = new StringType(); // bb
1098      return this.title;
1099    }
1100
1101    public boolean hasTitleElement() { 
1102      return this.title != null && !this.title.isEmpty();
1103    }
1104
1105    public boolean hasTitle() { 
1106      return this.title != null && !this.title.isEmpty();
1107    }
1108
1109    /**
1110     * @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
1111     */
1112    public NamingSystem setTitleElement(StringType value) { 
1113      this.title = value;
1114      return this;
1115    }
1116
1117    /**
1118     * @return A short, descriptive, user-friendly title for the naming system.
1119     */
1120    public String getTitle() { 
1121      return this.title == null ? null : this.title.getValue();
1122    }
1123
1124    /**
1125     * @param value A short, descriptive, user-friendly title for the naming system.
1126     */
1127    public NamingSystem setTitle(String value) { 
1128      if (Utilities.noString(value))
1129        this.title = null;
1130      else {
1131        if (this.title == null)
1132          this.title = new StringType();
1133        this.title.setValue(value);
1134      }
1135      return this;
1136    }
1137
1138    /**
1139     * @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
1140     */
1141    public Enumeration<PublicationStatus> getStatusElement() { 
1142      if (this.status == null)
1143        if (Configuration.errorOnAutoCreate())
1144          throw new Error("Attempt to auto-create NamingSystem.status");
1145        else if (Configuration.doAutoCreate())
1146          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
1147      return this.status;
1148    }
1149
1150    public boolean hasStatusElement() { 
1151      return this.status != null && !this.status.isEmpty();
1152    }
1153
1154    public boolean hasStatus() { 
1155      return this.status != null && !this.status.isEmpty();
1156    }
1157
1158    /**
1159     * @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
1160     */
1161    public NamingSystem setStatusElement(Enumeration<PublicationStatus> value) { 
1162      this.status = value;
1163      return this;
1164    }
1165
1166    /**
1167     * @return The status of this naming system. Enables tracking the life-cycle of the content.
1168     */
1169    public PublicationStatus getStatus() { 
1170      return this.status == null ? null : this.status.getValue();
1171    }
1172
1173    /**
1174     * @param value The status of this naming system. Enables tracking the life-cycle of the content.
1175     */
1176    public NamingSystem setStatus(PublicationStatus value) { 
1177        if (this.status == null)
1178          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
1179        this.status.setValue(value);
1180      return this;
1181    }
1182
1183    /**
1184     * @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
1185     */
1186    public Enumeration<NamingSystemType> getKindElement() { 
1187      if (this.kind == null)
1188        if (Configuration.errorOnAutoCreate())
1189          throw new Error("Attempt to auto-create NamingSystem.kind");
1190        else if (Configuration.doAutoCreate())
1191          this.kind = new Enumeration<NamingSystemType>(new NamingSystemTypeEnumFactory()); // bb
1192      return this.kind;
1193    }
1194
1195    public boolean hasKindElement() { 
1196      return this.kind != null && !this.kind.isEmpty();
1197    }
1198
1199    public boolean hasKind() { 
1200      return this.kind != null && !this.kind.isEmpty();
1201    }
1202
1203    /**
1204     * @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
1205     */
1206    public NamingSystem setKindElement(Enumeration<NamingSystemType> value) { 
1207      this.kind = value;
1208      return this;
1209    }
1210
1211    /**
1212     * @return Indicates the purpose for the naming system - what kinds of things does it make unique?
1213     */
1214    public NamingSystemType getKind() { 
1215      return this.kind == null ? null : this.kind.getValue();
1216    }
1217
1218    /**
1219     * @param value Indicates the purpose for the naming system - what kinds of things does it make unique?
1220     */
1221    public NamingSystem setKind(NamingSystemType value) { 
1222        if (this.kind == null)
1223          this.kind = new Enumeration<NamingSystemType>(new NamingSystemTypeEnumFactory());
1224        this.kind.setValue(value);
1225      return this;
1226    }
1227
1228    /**
1229     * @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
1230     */
1231    public DateTimeType getDateElement() { 
1232      if (this.date == null)
1233        if (Configuration.errorOnAutoCreate())
1234          throw new Error("Attempt to auto-create NamingSystem.date");
1235        else if (Configuration.doAutoCreate())
1236          this.date = new DateTimeType(); // bb
1237      return this.date;
1238    }
1239
1240    public boolean hasDateElement() { 
1241      return this.date != null && !this.date.isEmpty();
1242    }
1243
1244    public boolean hasDate() { 
1245      return this.date != null && !this.date.isEmpty();
1246    }
1247
1248    /**
1249     * @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
1250     */
1251    public NamingSystem setDateElement(DateTimeType value) { 
1252      this.date = value;
1253      return this;
1254    }
1255
1256    /**
1257     * @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.
1258     */
1259    public Date getDate() { 
1260      return this.date == null ? null : this.date.getValue();
1261    }
1262
1263    /**
1264     * @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.
1265     */
1266    public NamingSystem setDate(Date value) { 
1267        if (this.date == null)
1268          this.date = new DateTimeType();
1269        this.date.setValue(value);
1270      return this;
1271    }
1272
1273    /**
1274     * @return {@link #publisher} (The name of the organization or individual that published the naming system.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
1275     */
1276    public StringType getPublisherElement() { 
1277      if (this.publisher == null)
1278        if (Configuration.errorOnAutoCreate())
1279          throw new Error("Attempt to auto-create NamingSystem.publisher");
1280        else if (Configuration.doAutoCreate())
1281          this.publisher = new StringType(); // bb
1282      return this.publisher;
1283    }
1284
1285    public boolean hasPublisherElement() { 
1286      return this.publisher != null && !this.publisher.isEmpty();
1287    }
1288
1289    public boolean hasPublisher() { 
1290      return this.publisher != null && !this.publisher.isEmpty();
1291    }
1292
1293    /**
1294     * @param value {@link #publisher} (The name of the organization or individual that published the naming system.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
1295     */
1296    public NamingSystem setPublisherElement(StringType value) { 
1297      this.publisher = value;
1298      return this;
1299    }
1300
1301    /**
1302     * @return The name of the organization or individual that published the naming system.
1303     */
1304    public String getPublisher() { 
1305      return this.publisher == null ? null : this.publisher.getValue();
1306    }
1307
1308    /**
1309     * @param value The name of the organization or individual that published the naming system.
1310     */
1311    public NamingSystem setPublisher(String value) { 
1312      if (Utilities.noString(value))
1313        this.publisher = null;
1314      else {
1315        if (this.publisher == null)
1316          this.publisher = new StringType();
1317        this.publisher.setValue(value);
1318      }
1319      return this;
1320    }
1321
1322    /**
1323     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
1324     */
1325    public List<ContactDetail> getContact() { 
1326      if (this.contact == null)
1327        this.contact = new ArrayList<ContactDetail>();
1328      return this.contact;
1329    }
1330
1331    /**
1332     * @return Returns a reference to <code>this</code> for easy method chaining
1333     */
1334    public NamingSystem setContact(List<ContactDetail> theContact) { 
1335      this.contact = theContact;
1336      return this;
1337    }
1338
1339    public boolean hasContact() { 
1340      if (this.contact == null)
1341        return false;
1342      for (ContactDetail item : this.contact)
1343        if (!item.isEmpty())
1344          return true;
1345      return false;
1346    }
1347
1348    public ContactDetail addContact() { //3
1349      ContactDetail t = new ContactDetail();
1350      if (this.contact == null)
1351        this.contact = new ArrayList<ContactDetail>();
1352      this.contact.add(t);
1353      return t;
1354    }
1355
1356    public NamingSystem addContact(ContactDetail t) { //3
1357      if (t == null)
1358        return this;
1359      if (this.contact == null)
1360        this.contact = new ArrayList<ContactDetail>();
1361      this.contact.add(t);
1362      return this;
1363    }
1364
1365    /**
1366     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
1367     */
1368    public ContactDetail getContactFirstRep() { 
1369      if (getContact().isEmpty()) {
1370        addContact();
1371      }
1372      return getContact().get(0);
1373    }
1374
1375    /**
1376     * @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
1377     */
1378    public StringType getResponsibleElement() { 
1379      if (this.responsible == null)
1380        if (Configuration.errorOnAutoCreate())
1381          throw new Error("Attempt to auto-create NamingSystem.responsible");
1382        else if (Configuration.doAutoCreate())
1383          this.responsible = new StringType(); // bb
1384      return this.responsible;
1385    }
1386
1387    public boolean hasResponsibleElement() { 
1388      return this.responsible != null && !this.responsible.isEmpty();
1389    }
1390
1391    public boolean hasResponsible() { 
1392      return this.responsible != null && !this.responsible.isEmpty();
1393    }
1394
1395    /**
1396     * @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
1397     */
1398    public NamingSystem setResponsibleElement(StringType value) { 
1399      this.responsible = value;
1400      return this;
1401    }
1402
1403    /**
1404     * @return The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1405     */
1406    public String getResponsible() { 
1407      return this.responsible == null ? null : this.responsible.getValue();
1408    }
1409
1410    /**
1411     * @param value The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1412     */
1413    public NamingSystem setResponsible(String value) { 
1414      if (Utilities.noString(value))
1415        this.responsible = null;
1416      else {
1417        if (this.responsible == null)
1418          this.responsible = new StringType();
1419        this.responsible.setValue(value);
1420      }
1421      return this;
1422    }
1423
1424    /**
1425     * @return {@link #type} (Categorizes a naming system for easier search by grouping related naming systems.)
1426     */
1427    public CodeableConcept getType() { 
1428      if (this.type == null)
1429        if (Configuration.errorOnAutoCreate())
1430          throw new Error("Attempt to auto-create NamingSystem.type");
1431        else if (Configuration.doAutoCreate())
1432          this.type = new CodeableConcept(); // cc
1433      return this.type;
1434    }
1435
1436    public boolean hasType() { 
1437      return this.type != null && !this.type.isEmpty();
1438    }
1439
1440    /**
1441     * @param value {@link #type} (Categorizes a naming system for easier search by grouping related naming systems.)
1442     */
1443    public NamingSystem setType(CodeableConcept value) { 
1444      this.type = value;
1445      return this;
1446    }
1447
1448    /**
1449     * @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
1450     */
1451    public MarkdownType getDescriptionElement() { 
1452      if (this.description == null)
1453        if (Configuration.errorOnAutoCreate())
1454          throw new Error("Attempt to auto-create NamingSystem.description");
1455        else if (Configuration.doAutoCreate())
1456          this.description = new MarkdownType(); // bb
1457      return this.description;
1458    }
1459
1460    public boolean hasDescriptionElement() { 
1461      return this.description != null && !this.description.isEmpty();
1462    }
1463
1464    public boolean hasDescription() { 
1465      return this.description != null && !this.description.isEmpty();
1466    }
1467
1468    /**
1469     * @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
1470     */
1471    public NamingSystem setDescriptionElement(MarkdownType value) { 
1472      this.description = value;
1473      return this;
1474    }
1475
1476    /**
1477     * @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.
1478     */
1479    public String getDescription() { 
1480      return this.description == null ? null : this.description.getValue();
1481    }
1482
1483    /**
1484     * @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.
1485     */
1486    public NamingSystem setDescription(String value) { 
1487      if (value == null)
1488        this.description = null;
1489      else {
1490        if (this.description == null)
1491          this.description = new MarkdownType();
1492        this.description.setValue(value);
1493      }
1494      return this;
1495    }
1496
1497    /**
1498     * @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.)
1499     */
1500    public List<UsageContext> getUseContext() { 
1501      if (this.useContext == null)
1502        this.useContext = new ArrayList<UsageContext>();
1503      return this.useContext;
1504    }
1505
1506    /**
1507     * @return Returns a reference to <code>this</code> for easy method chaining
1508     */
1509    public NamingSystem setUseContext(List<UsageContext> theUseContext) { 
1510      this.useContext = theUseContext;
1511      return this;
1512    }
1513
1514    public boolean hasUseContext() { 
1515      if (this.useContext == null)
1516        return false;
1517      for (UsageContext item : this.useContext)
1518        if (!item.isEmpty())
1519          return true;
1520      return false;
1521    }
1522
1523    public UsageContext addUseContext() { //3
1524      UsageContext t = new UsageContext();
1525      if (this.useContext == null)
1526        this.useContext = new ArrayList<UsageContext>();
1527      this.useContext.add(t);
1528      return t;
1529    }
1530
1531    public NamingSystem addUseContext(UsageContext t) { //3
1532      if (t == null)
1533        return this;
1534      if (this.useContext == null)
1535        this.useContext = new ArrayList<UsageContext>();
1536      this.useContext.add(t);
1537      return this;
1538    }
1539
1540    /**
1541     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
1542     */
1543    public UsageContext getUseContextFirstRep() { 
1544      if (getUseContext().isEmpty()) {
1545        addUseContext();
1546      }
1547      return getUseContext().get(0);
1548    }
1549
1550    /**
1551     * @return {@link #jurisdiction} (A legal or geographic region in which the naming system is intended to be used.)
1552     */
1553    public List<CodeableConcept> getJurisdiction() { 
1554      if (this.jurisdiction == null)
1555        this.jurisdiction = new ArrayList<CodeableConcept>();
1556      return this.jurisdiction;
1557    }
1558
1559    /**
1560     * @return Returns a reference to <code>this</code> for easy method chaining
1561     */
1562    public NamingSystem setJurisdiction(List<CodeableConcept> theJurisdiction) { 
1563      this.jurisdiction = theJurisdiction;
1564      return this;
1565    }
1566
1567    public boolean hasJurisdiction() { 
1568      if (this.jurisdiction == null)
1569        return false;
1570      for (CodeableConcept item : this.jurisdiction)
1571        if (!item.isEmpty())
1572          return true;
1573      return false;
1574    }
1575
1576    public CodeableConcept addJurisdiction() { //3
1577      CodeableConcept t = new CodeableConcept();
1578      if (this.jurisdiction == null)
1579        this.jurisdiction = new ArrayList<CodeableConcept>();
1580      this.jurisdiction.add(t);
1581      return t;
1582    }
1583
1584    public NamingSystem addJurisdiction(CodeableConcept t) { //3
1585      if (t == null)
1586        return this;
1587      if (this.jurisdiction == null)
1588        this.jurisdiction = new ArrayList<CodeableConcept>();
1589      this.jurisdiction.add(t);
1590      return this;
1591    }
1592
1593    /**
1594     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
1595     */
1596    public CodeableConcept getJurisdictionFirstRep() { 
1597      if (getJurisdiction().isEmpty()) {
1598        addJurisdiction();
1599      }
1600      return getJurisdiction().get(0);
1601    }
1602
1603    /**
1604     * @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
1605     */
1606    public StringType getUsageElement() { 
1607      if (this.usage == null)
1608        if (Configuration.errorOnAutoCreate())
1609          throw new Error("Attempt to auto-create NamingSystem.usage");
1610        else if (Configuration.doAutoCreate())
1611          this.usage = new StringType(); // bb
1612      return this.usage;
1613    }
1614
1615    public boolean hasUsageElement() { 
1616      return this.usage != null && !this.usage.isEmpty();
1617    }
1618
1619    public boolean hasUsage() { 
1620      return this.usage != null && !this.usage.isEmpty();
1621    }
1622
1623    /**
1624     * @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
1625     */
1626    public NamingSystem setUsageElement(StringType value) { 
1627      this.usage = value;
1628      return this;
1629    }
1630
1631    /**
1632     * @return Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1633     */
1634    public String getUsage() { 
1635      return this.usage == null ? null : this.usage.getValue();
1636    }
1637
1638    /**
1639     * @param value Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1640     */
1641    public NamingSystem setUsage(String value) { 
1642      if (Utilities.noString(value))
1643        this.usage = null;
1644      else {
1645        if (this.usage == null)
1646          this.usage = new StringType();
1647        this.usage.setValue(value);
1648      }
1649      return this;
1650    }
1651
1652    /**
1653     * @return {@link #uniqueId} (Indicates how the system may be identified when referenced in electronic exchange.)
1654     */
1655    public List<NamingSystemUniqueIdComponent> getUniqueId() { 
1656      if (this.uniqueId == null)
1657        this.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
1658      return this.uniqueId;
1659    }
1660
1661    /**
1662     * @return Returns a reference to <code>this</code> for easy method chaining
1663     */
1664    public NamingSystem setUniqueId(List<NamingSystemUniqueIdComponent> theUniqueId) { 
1665      this.uniqueId = theUniqueId;
1666      return this;
1667    }
1668
1669    public boolean hasUniqueId() { 
1670      if (this.uniqueId == null)
1671        return false;
1672      for (NamingSystemUniqueIdComponent item : this.uniqueId)
1673        if (!item.isEmpty())
1674          return true;
1675      return false;
1676    }
1677
1678    public NamingSystemUniqueIdComponent addUniqueId() { //3
1679      NamingSystemUniqueIdComponent t = new NamingSystemUniqueIdComponent();
1680      if (this.uniqueId == null)
1681        this.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
1682      this.uniqueId.add(t);
1683      return t;
1684    }
1685
1686    public NamingSystem addUniqueId(NamingSystemUniqueIdComponent t) { //3
1687      if (t == null)
1688        return this;
1689      if (this.uniqueId == null)
1690        this.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
1691      this.uniqueId.add(t);
1692      return this;
1693    }
1694
1695    /**
1696     * @return The first repetition of repeating field {@link #uniqueId}, creating it if it does not already exist {3}
1697     */
1698    public NamingSystemUniqueIdComponent getUniqueIdFirstRep() { 
1699      if (getUniqueId().isEmpty()) {
1700        addUniqueId();
1701      }
1702      return getUniqueId().get(0);
1703    }
1704
1705    /**
1706     * not supported on this implementation
1707     */
1708    @Override
1709    public int getIdentifierMax() { 
1710      return 0;
1711    }
1712    /**
1713     * @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.)
1714     */
1715    public List<Identifier> getIdentifier() { 
1716      return new ArrayList<>();
1717    }
1718    /**
1719     * @return Returns a reference to <code>this</code> for easy method chaining
1720     */
1721    public NamingSystem setIdentifier(List<Identifier> theIdentifier) { 
1722      throw new Error("The resource type \"NamingSystem\" does not implement the property \"identifier\"");
1723    }
1724    public boolean hasIdentifier() { 
1725      return false;
1726    }
1727
1728    public Identifier addIdentifier() { //3
1729      throw new Error("The resource type \"NamingSystem\" does not implement the property \"identifier\"");
1730    }
1731    public NamingSystem addIdentifier(Identifier t) { //3
1732      throw new Error("The resource type \"NamingSystem\" does not implement the property \"identifier\"");
1733    }
1734    /**
1735     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {2}
1736     */
1737    public Identifier getIdentifierFirstRep() { 
1738      throw new Error("The resource type \"NamingSystem\" does not implement the property \"identifier\"");
1739    }
1740    /**
1741     * not supported on this implementation
1742     */
1743    @Override
1744    public int getExperimentalMax() { 
1745      return 0;
1746    }
1747    /**
1748     * @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
1749     */
1750    public BooleanType getExperimentalElement() { 
1751      throw new Error("The resource type \"NamingSystem\" does not implement the property \"experimental\"");
1752    }
1753
1754    public boolean hasExperimentalElement() { 
1755      return false;
1756    }
1757    public boolean hasExperimental() {
1758      return false;
1759    }
1760
1761    /**
1762     * @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
1763     */
1764    public NamingSystem setExperimentalElement(BooleanType value) { 
1765      throw new Error("The resource type \"NamingSystem\" does not implement the property \"experimental\"");
1766    }
1767    public boolean getExperimental() { 
1768      throw new Error("The resource type \"NamingSystem\" does not implement the property \"experimental\"");
1769    }
1770    /**
1771     * @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.
1772     */
1773    public NamingSystem setExperimental(boolean value) { 
1774      throw new Error("The resource type \"NamingSystem\" does not implement the property \"experimental\"");
1775    }
1776    /**
1777     * not supported on this implementation
1778     */
1779    @Override
1780    public int getPurposeMax() { 
1781      return 0;
1782    }
1783    /**
1784     * @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
1785     */
1786    public MarkdownType getPurposeElement() { 
1787      throw new Error("The resource type \"NamingSystem\" does not implement the property \"purpose\"");
1788    }
1789
1790    public boolean hasPurposeElement() { 
1791      return false;
1792    }
1793    public boolean hasPurpose() {
1794      return false;
1795    }
1796
1797    /**
1798     * @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
1799     */
1800    public NamingSystem setPurposeElement(MarkdownType value) { 
1801      throw new Error("The resource type \"NamingSystem\" does not implement the property \"purpose\"");
1802    }
1803    public String getPurpose() { 
1804      throw new Error("The resource type \"NamingSystem\" does not implement the property \"purpose\"");
1805    }
1806    /**
1807     * @param value Explanation of why this naming system is needed and why it has been designed as it has.
1808     */
1809    public NamingSystem setPurpose(String value) { 
1810      throw new Error("The resource type \"NamingSystem\" does not implement the property \"purpose\"");
1811    }
1812    /**
1813     * not supported on this implementation
1814     */
1815    @Override
1816    public int getCopyrightMax() { 
1817      return 0;
1818    }
1819    /**
1820     * @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
1821     */
1822    public MarkdownType getCopyrightElement() { 
1823      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyright\"");
1824    }
1825
1826    public boolean hasCopyrightElement() { 
1827      return false;
1828    }
1829    public boolean hasCopyright() {
1830      return false;
1831    }
1832
1833    /**
1834     * @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
1835     */
1836    public NamingSystem setCopyrightElement(MarkdownType value) { 
1837      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyright\"");
1838    }
1839    public String getCopyright() { 
1840      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyright\"");
1841    }
1842    /**
1843     * @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.
1844     */
1845    public NamingSystem setCopyright(String value) { 
1846      throw new Error("The resource type \"NamingSystem\" does not implement the property \"copyright\"");
1847    }
1848      protected void listChildren(List<Property> children) {
1849        super.listChildren(children);
1850        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 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));
1851        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));
1852        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));
1853        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the naming system.", 0, 1, title));
1854        children.add(new Property("status", "code", "The status of this naming system. Enables tracking the life-cycle of the content.", 0, 1, status));
1855        children.add(new Property("kind", "code", "Indicates the purpose for the naming system - what kinds of things does it make unique?", 0, 1, kind));
1856        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));
1857        children.add(new Property("publisher", "string", "The name of the organization or individual that published the naming system.", 0, 1, publisher));
1858        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));
1859        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));
1860        children.add(new Property("type", "CodeableConcept", "Categorizes a naming system for easier search by grouping related naming systems.", 0, 1, type));
1861        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));
1862        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));
1863        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));
1864        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));
1865        children.add(new Property("uniqueId", "", "Indicates how the system may be identified when referenced in electronic exchange.", 0, java.lang.Integer.MAX_VALUE, uniqueId));
1866      }
1867
1868      @Override
1869      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1870        switch (_hash) {
1871        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 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);
1872        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);
1873        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);
1874        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the naming system.", 0, 1, title);
1875        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);
1876        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);
1877        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);
1878        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the naming system.", 0, 1, publisher);
1879        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);
1880        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);
1881        case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Categorizes a naming system for easier search by grouping related naming systems.", 0, 1, type);
1882        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);
1883        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);
1884        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);
1885        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);
1886        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);
1887        default: return super.getNamedProperty(_hash, _name, _checkValid);
1888        }
1889
1890      }
1891
1892      @Override
1893      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1894        switch (hash) {
1895        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
1896        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
1897        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
1898        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
1899        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
1900        case 3292052: /*kind*/ return this.kind == null ? new Base[0] : new Base[] {this.kind}; // Enumeration<NamingSystemType>
1901        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
1902        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
1903        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
1904        case 1847674614: /*responsible*/ return this.responsible == null ? new Base[0] : new Base[] {this.responsible}; // StringType
1905        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
1906        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1907        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
1908        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
1909        case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // StringType
1910        case -294460212: /*uniqueId*/ return this.uniqueId == null ? new Base[0] : this.uniqueId.toArray(new Base[this.uniqueId.size()]); // NamingSystemUniqueIdComponent
1911        default: return super.getProperty(hash, name, checkValid);
1912        }
1913
1914      }
1915
1916      @Override
1917      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1918        switch (hash) {
1919        case 116079: // url
1920          this.url = TypeConvertor.castToUri(value); // UriType
1921          return value;
1922        case 351608024: // version
1923          this.version = TypeConvertor.castToString(value); // StringType
1924          return value;
1925        case 3373707: // name
1926          this.name = TypeConvertor.castToString(value); // StringType
1927          return value;
1928        case 110371416: // title
1929          this.title = TypeConvertor.castToString(value); // StringType
1930          return value;
1931        case -892481550: // status
1932          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1933          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1934          return value;
1935        case 3292052: // kind
1936          value = new NamingSystemTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1937          this.kind = (Enumeration) value; // Enumeration<NamingSystemType>
1938          return value;
1939        case 3076014: // date
1940          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1941          return value;
1942        case 1447404028: // publisher
1943          this.publisher = TypeConvertor.castToString(value); // StringType
1944          return value;
1945        case 951526432: // contact
1946          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
1947          return value;
1948        case 1847674614: // responsible
1949          this.responsible = TypeConvertor.castToString(value); // StringType
1950          return value;
1951        case 3575610: // type
1952          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1953          return value;
1954        case -1724546052: // description
1955          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1956          return value;
1957        case -669707736: // useContext
1958          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
1959          return value;
1960        case -507075711: // jurisdiction
1961          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1962          return value;
1963        case 111574433: // usage
1964          this.usage = TypeConvertor.castToString(value); // StringType
1965          return value;
1966        case -294460212: // uniqueId
1967          this.getUniqueId().add((NamingSystemUniqueIdComponent) value); // NamingSystemUniqueIdComponent
1968          return value;
1969        default: return super.setProperty(hash, name, value);
1970        }
1971
1972      }
1973
1974      @Override
1975      public Base setProperty(String name, Base value) throws FHIRException {
1976        if (name.equals("url")) {
1977          this.url = TypeConvertor.castToUri(value); // UriType
1978        } else if (name.equals("version")) {
1979          this.version = TypeConvertor.castToString(value); // StringType
1980        } else if (name.equals("name")) {
1981          this.name = TypeConvertor.castToString(value); // StringType
1982        } else if (name.equals("title")) {
1983          this.title = TypeConvertor.castToString(value); // StringType
1984        } else if (name.equals("status")) {
1985          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1986          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1987        } else if (name.equals("kind")) {
1988          value = new NamingSystemTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1989          this.kind = (Enumeration) value; // Enumeration<NamingSystemType>
1990        } else if (name.equals("date")) {
1991          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1992        } else if (name.equals("publisher")) {
1993          this.publisher = TypeConvertor.castToString(value); // StringType
1994        } else if (name.equals("contact")) {
1995          this.getContact().add(TypeConvertor.castToContactDetail(value));
1996        } else if (name.equals("responsible")) {
1997          this.responsible = TypeConvertor.castToString(value); // StringType
1998        } else if (name.equals("type")) {
1999          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2000        } else if (name.equals("description")) {
2001          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2002        } else if (name.equals("useContext")) {
2003          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
2004        } else if (name.equals("jurisdiction")) {
2005          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
2006        } else if (name.equals("usage")) {
2007          this.usage = TypeConvertor.castToString(value); // StringType
2008        } else if (name.equals("uniqueId")) {
2009          this.getUniqueId().add((NamingSystemUniqueIdComponent) value);
2010        } else
2011          return super.setProperty(name, value);
2012        return value;
2013      }
2014
2015      @Override
2016      public Base makeProperty(int hash, String name) throws FHIRException {
2017        switch (hash) {
2018        case 116079:  return getUrlElement();
2019        case 351608024:  return getVersionElement();
2020        case 3373707:  return getNameElement();
2021        case 110371416:  return getTitleElement();
2022        case -892481550:  return getStatusElement();
2023        case 3292052:  return getKindElement();
2024        case 3076014:  return getDateElement();
2025        case 1447404028:  return getPublisherElement();
2026        case 951526432:  return addContact(); 
2027        case 1847674614:  return getResponsibleElement();
2028        case 3575610:  return getType();
2029        case -1724546052:  return getDescriptionElement();
2030        case -669707736:  return addUseContext(); 
2031        case -507075711:  return addJurisdiction(); 
2032        case 111574433:  return getUsageElement();
2033        case -294460212:  return addUniqueId(); 
2034        default: return super.makeProperty(hash, name);
2035        }
2036
2037      }
2038
2039      @Override
2040      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2041        switch (hash) {
2042        case 116079: /*url*/ return new String[] {"uri"};
2043        case 351608024: /*version*/ return new String[] {"string"};
2044        case 3373707: /*name*/ return new String[] {"string"};
2045        case 110371416: /*title*/ return new String[] {"string"};
2046        case -892481550: /*status*/ return new String[] {"code"};
2047        case 3292052: /*kind*/ return new String[] {"code"};
2048        case 3076014: /*date*/ return new String[] {"dateTime"};
2049        case 1447404028: /*publisher*/ return new String[] {"string"};
2050        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
2051        case 1847674614: /*responsible*/ return new String[] {"string"};
2052        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
2053        case -1724546052: /*description*/ return new String[] {"markdown"};
2054        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
2055        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
2056        case 111574433: /*usage*/ return new String[] {"string"};
2057        case -294460212: /*uniqueId*/ return new String[] {};
2058        default: return super.getTypesForProperty(hash, name);
2059        }
2060
2061      }
2062
2063      @Override
2064      public Base addChild(String name) throws FHIRException {
2065        if (name.equals("url")) {
2066          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.url");
2067        }
2068        else if (name.equals("version")) {
2069          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.version");
2070        }
2071        else if (name.equals("name")) {
2072          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.name");
2073        }
2074        else if (name.equals("title")) {
2075          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.title");
2076        }
2077        else if (name.equals("status")) {
2078          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.status");
2079        }
2080        else if (name.equals("kind")) {
2081          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.kind");
2082        }
2083        else if (name.equals("date")) {
2084          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.date");
2085        }
2086        else if (name.equals("publisher")) {
2087          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.publisher");
2088        }
2089        else if (name.equals("contact")) {
2090          return addContact();
2091        }
2092        else if (name.equals("responsible")) {
2093          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.responsible");
2094        }
2095        else if (name.equals("type")) {
2096          this.type = new CodeableConcept();
2097          return this.type;
2098        }
2099        else if (name.equals("description")) {
2100          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.description");
2101        }
2102        else if (name.equals("useContext")) {
2103          return addUseContext();
2104        }
2105        else if (name.equals("jurisdiction")) {
2106          return addJurisdiction();
2107        }
2108        else if (name.equals("usage")) {
2109          throw new FHIRException("Cannot call addChild on a primitive type NamingSystem.usage");
2110        }
2111        else if (name.equals("uniqueId")) {
2112          return addUniqueId();
2113        }
2114        else
2115          return super.addChild(name);
2116      }
2117
2118  public String fhirType() {
2119    return "NamingSystem";
2120
2121  }
2122
2123      public NamingSystem copy() {
2124        NamingSystem dst = new NamingSystem();
2125        copyValues(dst);
2126        return dst;
2127      }
2128
2129      public void copyValues(NamingSystem dst) {
2130        super.copyValues(dst);
2131        dst.url = url == null ? null : url.copy();
2132        dst.version = version == null ? null : version.copy();
2133        dst.name = name == null ? null : name.copy();
2134        dst.title = title == null ? null : title.copy();
2135        dst.status = status == null ? null : status.copy();
2136        dst.kind = kind == null ? null : kind.copy();
2137        dst.date = date == null ? null : date.copy();
2138        dst.publisher = publisher == null ? null : publisher.copy();
2139        if (contact != null) {
2140          dst.contact = new ArrayList<ContactDetail>();
2141          for (ContactDetail i : contact)
2142            dst.contact.add(i.copy());
2143        };
2144        dst.responsible = responsible == null ? null : responsible.copy();
2145        dst.type = type == null ? null : type.copy();
2146        dst.description = description == null ? null : description.copy();
2147        if (useContext != null) {
2148          dst.useContext = new ArrayList<UsageContext>();
2149          for (UsageContext i : useContext)
2150            dst.useContext.add(i.copy());
2151        };
2152        if (jurisdiction != null) {
2153          dst.jurisdiction = new ArrayList<CodeableConcept>();
2154          for (CodeableConcept i : jurisdiction)
2155            dst.jurisdiction.add(i.copy());
2156        };
2157        dst.usage = usage == null ? null : usage.copy();
2158        if (uniqueId != null) {
2159          dst.uniqueId = new ArrayList<NamingSystemUniqueIdComponent>();
2160          for (NamingSystemUniqueIdComponent i : uniqueId)
2161            dst.uniqueId.add(i.copy());
2162        };
2163      }
2164
2165      protected NamingSystem typedCopy() {
2166        return copy();
2167      }
2168
2169      @Override
2170      public boolean equalsDeep(Base other_) {
2171        if (!super.equalsDeep(other_))
2172          return false;
2173        if (!(other_ instanceof NamingSystem))
2174          return false;
2175        NamingSystem o = (NamingSystem) other_;
2176        return compareDeep(url, o.url, true) && compareDeep(version, o.version, true) && compareDeep(name, o.name, true)
2177           && compareDeep(title, o.title, true) && compareDeep(status, o.status, true) && compareDeep(kind, o.kind, true)
2178           && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true)
2179           && compareDeep(responsible, o.responsible, true) && compareDeep(type, o.type, true) && compareDeep(description, o.description, true)
2180           && compareDeep(useContext, o.useContext, true) && compareDeep(jurisdiction, o.jurisdiction, true)
2181           && compareDeep(usage, o.usage, true) && compareDeep(uniqueId, o.uniqueId, true);
2182      }
2183
2184      @Override
2185      public boolean equalsShallow(Base other_) {
2186        if (!super.equalsShallow(other_))
2187          return false;
2188        if (!(other_ instanceof NamingSystem))
2189          return false;
2190        NamingSystem o = (NamingSystem) other_;
2191        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
2192           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(kind, o.kind, true)
2193           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(responsible, o.responsible, true)
2194           && compareValues(description, o.description, true) && compareValues(usage, o.usage, true);
2195      }
2196
2197      public boolean isEmpty() {
2198        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, version, name, title
2199          , status, kind, date, publisher, contact, responsible, type, description, useContext
2200          , jurisdiction, usage, uniqueId);
2201      }
2202
2203  @Override
2204  public ResourceType getResourceType() {
2205    return ResourceType.NamingSystem;
2206   }
2207
2208 /**
2209   * Search parameter: <b>contact</b>
2210   * <p>
2211   * Description: <b>Name of an individual to contact</b><br>
2212   * Type: <b>string</b><br>
2213   * Path: <b>NamingSystem.contact.name</b><br>
2214   * </p>
2215   */
2216  @SearchParamDefinition(name="contact", path="NamingSystem.contact.name", description="Name of an individual to contact", type="string" )
2217  public static final String SP_CONTACT = "contact";
2218 /**
2219   * <b>Fluent Client</b> search parameter constant for <b>contact</b>
2220   * <p>
2221   * Description: <b>Name of an individual to contact</b><br>
2222   * Type: <b>string</b><br>
2223   * Path: <b>NamingSystem.contact.name</b><br>
2224   * </p>
2225   */
2226  public static final ca.uhn.fhir.rest.gclient.StringClientParam CONTACT = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_CONTACT);
2227
2228 /**
2229   * Search parameter: <b>id-type</b>
2230   * <p>
2231   * Description: <b>oid | uuid | uri | other</b><br>
2232   * Type: <b>token</b><br>
2233   * Path: <b>NamingSystem.uniqueId.type</b><br>
2234   * </p>
2235   */
2236  @SearchParamDefinition(name="id-type", path="NamingSystem.uniqueId.type", description="oid | uuid | uri | other", type="token" )
2237  public static final String SP_ID_TYPE = "id-type";
2238 /**
2239   * <b>Fluent Client</b> search parameter constant for <b>id-type</b>
2240   * <p>
2241   * Description: <b>oid | uuid | uri | other</b><br>
2242   * Type: <b>token</b><br>
2243   * Path: <b>NamingSystem.uniqueId.type</b><br>
2244   * </p>
2245   */
2246  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ID_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ID_TYPE);
2247
2248 /**
2249   * Search parameter: <b>kind</b>
2250   * <p>
2251   * Description: <b>codesystem | identifier | root</b><br>
2252   * Type: <b>token</b><br>
2253   * Path: <b>NamingSystem.kind</b><br>
2254   * </p>
2255   */
2256  @SearchParamDefinition(name="kind", path="NamingSystem.kind", description="codesystem | identifier | root", type="token" )
2257  public static final String SP_KIND = "kind";
2258 /**
2259   * <b>Fluent Client</b> search parameter constant for <b>kind</b>
2260   * <p>
2261   * Description: <b>codesystem | identifier | root</b><br>
2262   * Type: <b>token</b><br>
2263   * Path: <b>NamingSystem.kind</b><br>
2264   * </p>
2265   */
2266  public static final ca.uhn.fhir.rest.gclient.TokenClientParam KIND = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KIND);
2267
2268 /**
2269   * Search parameter: <b>period</b>
2270   * <p>
2271   * Description: <b>When is identifier valid?</b><br>
2272   * Type: <b>date</b><br>
2273   * Path: <b>NamingSystem.uniqueId.period</b><br>
2274   * </p>
2275   */
2276  @SearchParamDefinition(name="period", path="NamingSystem.uniqueId.period", description="When is identifier valid?", type="date" )
2277  public static final String SP_PERIOD = "period";
2278 /**
2279   * <b>Fluent Client</b> search parameter constant for <b>period</b>
2280   * <p>
2281   * Description: <b>When is identifier valid?</b><br>
2282   * Type: <b>date</b><br>
2283   * Path: <b>NamingSystem.uniqueId.period</b><br>
2284   * </p>
2285   */
2286  public static final ca.uhn.fhir.rest.gclient.DateClientParam PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_PERIOD);
2287
2288 /**
2289   * Search parameter: <b>responsible</b>
2290   * <p>
2291   * Description: <b>Who maintains system namespace?</b><br>
2292   * Type: <b>string</b><br>
2293   * Path: <b>NamingSystem.responsible</b><br>
2294   * </p>
2295   */
2296  @SearchParamDefinition(name="responsible", path="NamingSystem.responsible", description="Who maintains system namespace?", type="string" )
2297  public static final String SP_RESPONSIBLE = "responsible";
2298 /**
2299   * <b>Fluent Client</b> search parameter constant for <b>responsible</b>
2300   * <p>
2301   * Description: <b>Who maintains system namespace?</b><br>
2302   * Type: <b>string</b><br>
2303   * Path: <b>NamingSystem.responsible</b><br>
2304   * </p>
2305   */
2306  public static final ca.uhn.fhir.rest.gclient.StringClientParam RESPONSIBLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_RESPONSIBLE);
2307
2308 /**
2309   * Search parameter: <b>telecom</b>
2310   * <p>
2311   * Description: <b>Contact details for individual or organization</b><br>
2312   * Type: <b>token</b><br>
2313   * Path: <b>NamingSystem.contact.telecom</b><br>
2314   * </p>
2315   */
2316  @SearchParamDefinition(name="telecom", path="NamingSystem.contact.telecom", description="Contact details for individual or organization", type="token" )
2317  public static final String SP_TELECOM = "telecom";
2318 /**
2319   * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
2320   * <p>
2321   * Description: <b>Contact details for individual or organization</b><br>
2322   * Type: <b>token</b><br>
2323   * Path: <b>NamingSystem.contact.telecom</b><br>
2324   * </p>
2325   */
2326  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM);
2327
2328 /**
2329   * Search parameter: <b>type</b>
2330   * <p>
2331   * Description: <b>e.g. driver,  provider,  patient, bank etc.</b><br>
2332   * Type: <b>token</b><br>
2333   * Path: <b>NamingSystem.type</b><br>
2334   * </p>
2335   */
2336  @SearchParamDefinition(name="type", path="NamingSystem.type", description="e.g. driver,  provider,  patient, bank etc.", type="token" )
2337  public static final String SP_TYPE = "type";
2338 /**
2339   * <b>Fluent Client</b> search parameter constant for <b>type</b>
2340   * <p>
2341   * Description: <b>e.g. driver,  provider,  patient, bank etc.</b><br>
2342   * Type: <b>token</b><br>
2343   * Path: <b>NamingSystem.type</b><br>
2344   * </p>
2345   */
2346  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
2347
2348 /**
2349   * Search parameter: <b>value</b>
2350   * <p>
2351   * Description: <b>The unique identifier</b><br>
2352   * Type: <b>string</b><br>
2353   * Path: <b>NamingSystem.uniqueId.value</b><br>
2354   * </p>
2355   */
2356  @SearchParamDefinition(name="value", path="NamingSystem.uniqueId.value", description="The unique identifier", type="string" )
2357  public static final String SP_VALUE = "value";
2358 /**
2359   * <b>Fluent Client</b> search parameter constant for <b>value</b>
2360   * <p>
2361   * Description: <b>The unique identifier</b><br>
2362   * Type: <b>string</b><br>
2363   * Path: <b>NamingSystem.uniqueId.value</b><br>
2364   * </p>
2365   */
2366  public static final ca.uhn.fhir.rest.gclient.StringClientParam VALUE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_VALUE);
2367
2368 /**
2369   * Search parameter: <b>context-quantity</b>
2370   * <p>
2371   * Description: <b>Multiple Resources: 
2372
2373* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
2374* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
2375* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
2376* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
2377* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
2378* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
2379* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
2380* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
2381* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
2382* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
2383* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
2384* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
2385* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
2386* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
2387</b><br>
2388   * Type: <b>quantity</b><br>
2389   * 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>
2390   * </p>
2391   */
2392  @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" )
2393  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
2394 /**
2395   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
2396   * <p>
2397   * Description: <b>Multiple Resources: 
2398
2399* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
2400* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
2401* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
2402* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
2403* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
2404* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
2405* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
2406* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
2407* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
2408* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
2409* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
2410* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
2411* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
2412* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
2413</b><br>
2414   * Type: <b>quantity</b><br>
2415   * 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>
2416   * </p>
2417   */
2418  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
2419
2420 /**
2421   * Search parameter: <b>context-type-quantity</b>
2422   * <p>
2423   * Description: <b>Multiple Resources: 
2424
2425* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
2426* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
2427* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
2428* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
2429* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
2430* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
2431* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
2432* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
2433* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
2434* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
2435* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
2436* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
2437* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
2438* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
2439</b><br>
2440   * Type: <b>composite</b><br>
2441   * 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>
2442   * </p>
2443   */
2444  @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"} )
2445  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
2446 /**
2447   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
2448   * <p>
2449   * Description: <b>Multiple Resources: 
2450
2451* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
2452* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
2453* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
2454* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
2455* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
2456* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
2457* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
2458* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
2459* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
2460* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
2461* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
2462* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
2463* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
2464* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
2465</b><br>
2466   * Type: <b>composite</b><br>
2467   * 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>
2468   * </p>
2469   */
2470  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);
2471
2472 /**
2473   * Search parameter: <b>context-type-value</b>
2474   * <p>
2475   * Description: <b>Multiple Resources: 
2476
2477* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
2478* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
2479* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
2480* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
2481* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
2482* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
2483* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
2484* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
2485* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
2486* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
2487* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
2488* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
2489* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
2490* [ValueSet](valueset.html): A use context type and value assigned to the value set
2491</b><br>
2492   * Type: <b>composite</b><br>
2493   * 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>
2494   * </p>
2495   */
2496  @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"} )
2497  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
2498 /**
2499   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
2500   * <p>
2501   * Description: <b>Multiple Resources: 
2502
2503* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
2504* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
2505* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
2506* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
2507* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
2508* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
2509* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
2510* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
2511* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
2512* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
2513* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
2514* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
2515* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
2516* [ValueSet](valueset.html): A use context type and value assigned to the value set
2517</b><br>
2518   * Type: <b>composite</b><br>
2519   * 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>
2520   * </p>
2521   */
2522  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);
2523
2524 /**
2525   * Search parameter: <b>context-type</b>
2526   * <p>
2527   * Description: <b>Multiple Resources: 
2528
2529* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
2530* [CodeSystem](codesystem.html): A type of use context assigned to the code system
2531* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
2532* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
2533* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
2534* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
2535* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
2536* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
2537* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
2538* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
2539* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
2540* [StructureMap](structuremap.html): A type of use context assigned to the structure map
2541* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
2542* [ValueSet](valueset.html): A type of use context assigned to the value set
2543</b><br>
2544   * Type: <b>token</b><br>
2545   * 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>
2546   * </p>
2547   */
2548  @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" )
2549  public static final String SP_CONTEXT_TYPE = "context-type";
2550 /**
2551   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
2552   * <p>
2553   * Description: <b>Multiple Resources: 
2554
2555* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
2556* [CodeSystem](codesystem.html): A type of use context assigned to the code system
2557* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
2558* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
2559* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
2560* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
2561* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
2562* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
2563* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
2564* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
2565* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
2566* [StructureMap](structuremap.html): A type of use context assigned to the structure map
2567* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
2568* [ValueSet](valueset.html): A type of use context assigned to the value set
2569</b><br>
2570   * Type: <b>token</b><br>
2571   * 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>
2572   * </p>
2573   */
2574  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
2575
2576 /**
2577   * Search parameter: <b>context</b>
2578   * <p>
2579   * Description: <b>Multiple Resources: 
2580
2581* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
2582* [CodeSystem](codesystem.html): A use context assigned to the code system
2583* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
2584* [ConceptMap](conceptmap.html): A use context assigned to the concept map
2585* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
2586* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
2587* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
2588* [NamingSystem](namingsystem.html): A use context assigned to the naming system
2589* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
2590* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
2591* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
2592* [StructureMap](structuremap.html): A use context assigned to the structure map
2593* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
2594* [ValueSet](valueset.html): A use context assigned to the value set
2595</b><br>
2596   * Type: <b>token</b><br>
2597   * 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>
2598   * </p>
2599   */
2600  @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" )
2601  public static final String SP_CONTEXT = "context";
2602 /**
2603   * <b>Fluent Client</b> search parameter constant for <b>context</b>
2604   * <p>
2605   * Description: <b>Multiple Resources: 
2606
2607* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
2608* [CodeSystem](codesystem.html): A use context assigned to the code system
2609* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
2610* [ConceptMap](conceptmap.html): A use context assigned to the concept map
2611* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
2612* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
2613* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
2614* [NamingSystem](namingsystem.html): A use context assigned to the naming system
2615* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
2616* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
2617* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
2618* [StructureMap](structuremap.html): A use context assigned to the structure map
2619* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
2620* [ValueSet](valueset.html): A use context assigned to the value set
2621</b><br>
2622   * Type: <b>token</b><br>
2623   * 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>
2624   * </p>
2625   */
2626  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
2627
2628 /**
2629   * Search parameter: <b>date</b>
2630   * <p>
2631   * Description: <b>Multiple Resources: 
2632
2633* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
2634* [CodeSystem](codesystem.html): The code system publication date
2635* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
2636* [ConceptMap](conceptmap.html): The concept map publication date
2637* [GraphDefinition](graphdefinition.html): The graph definition publication date
2638* [ImplementationGuide](implementationguide.html): The implementation guide publication date
2639* [MessageDefinition](messagedefinition.html): The message definition publication date
2640* [NamingSystem](namingsystem.html): The naming system publication date
2641* [OperationDefinition](operationdefinition.html): The operation definition publication date
2642* [SearchParameter](searchparameter.html): The search parameter publication date
2643* [StructureDefinition](structuredefinition.html): The structure definition publication date
2644* [StructureMap](structuremap.html): The structure map publication date
2645* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
2646* [ValueSet](valueset.html): The value set publication date
2647</b><br>
2648   * Type: <b>date</b><br>
2649   * 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>
2650   * </p>
2651   */
2652  @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" )
2653  public static final String SP_DATE = "date";
2654 /**
2655   * <b>Fluent Client</b> search parameter constant for <b>date</b>
2656   * <p>
2657   * Description: <b>Multiple Resources: 
2658
2659* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
2660* [CodeSystem](codesystem.html): The code system publication date
2661* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
2662* [ConceptMap](conceptmap.html): The concept map publication date
2663* [GraphDefinition](graphdefinition.html): The graph definition publication date
2664* [ImplementationGuide](implementationguide.html): The implementation guide publication date
2665* [MessageDefinition](messagedefinition.html): The message definition publication date
2666* [NamingSystem](namingsystem.html): The naming system publication date
2667* [OperationDefinition](operationdefinition.html): The operation definition publication date
2668* [SearchParameter](searchparameter.html): The search parameter publication date
2669* [StructureDefinition](structuredefinition.html): The structure definition publication date
2670* [StructureMap](structuremap.html): The structure map publication date
2671* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
2672* [ValueSet](valueset.html): The value set publication date
2673</b><br>
2674   * Type: <b>date</b><br>
2675   * 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>
2676   * </p>
2677   */
2678  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
2679
2680 /**
2681   * Search parameter: <b>description</b>
2682   * <p>
2683   * Description: <b>Multiple Resources: 
2684
2685* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
2686* [CodeSystem](codesystem.html): The description of the code system
2687* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
2688* [ConceptMap](conceptmap.html): The description of the concept map
2689* [GraphDefinition](graphdefinition.html): The description of the graph definition
2690* [ImplementationGuide](implementationguide.html): The description of the implementation guide
2691* [MessageDefinition](messagedefinition.html): The description of the message definition
2692* [NamingSystem](namingsystem.html): The description of the naming system
2693* [OperationDefinition](operationdefinition.html): The description of the operation definition
2694* [SearchParameter](searchparameter.html): The description of the search parameter
2695* [StructureDefinition](structuredefinition.html): The description of the structure definition
2696* [StructureMap](structuremap.html): The description of the structure map
2697* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
2698* [ValueSet](valueset.html): The description of the value set
2699</b><br>
2700   * Type: <b>string</b><br>
2701   * 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>
2702   * </p>
2703   */
2704  @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" )
2705  public static final String SP_DESCRIPTION = "description";
2706 /**
2707   * <b>Fluent Client</b> search parameter constant for <b>description</b>
2708   * <p>
2709   * Description: <b>Multiple Resources: 
2710
2711* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
2712* [CodeSystem](codesystem.html): The description of the code system
2713* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
2714* [ConceptMap](conceptmap.html): The description of the concept map
2715* [GraphDefinition](graphdefinition.html): The description of the graph definition
2716* [ImplementationGuide](implementationguide.html): The description of the implementation guide
2717* [MessageDefinition](messagedefinition.html): The description of the message definition
2718* [NamingSystem](namingsystem.html): The description of the naming system
2719* [OperationDefinition](operationdefinition.html): The description of the operation definition
2720* [SearchParameter](searchparameter.html): The description of the search parameter
2721* [StructureDefinition](structuredefinition.html): The description of the structure definition
2722* [StructureMap](structuremap.html): The description of the structure map
2723* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
2724* [ValueSet](valueset.html): The description of the value set
2725</b><br>
2726   * Type: <b>string</b><br>
2727   * 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>
2728   * </p>
2729   */
2730  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
2731
2732 /**
2733   * Search parameter: <b>jurisdiction</b>
2734   * <p>
2735   * Description: <b>Multiple Resources: 
2736
2737* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
2738* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
2739* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
2740* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
2741* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
2742* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
2743* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
2744* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
2745* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
2746* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
2747* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
2748* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
2749* [ValueSet](valueset.html): Intended jurisdiction for the value set
2750</b><br>
2751   * Type: <b>token</b><br>
2752   * 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>
2753   * </p>
2754   */
2755  @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" )
2756  public static final String SP_JURISDICTION = "jurisdiction";
2757 /**
2758   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
2759   * <p>
2760   * Description: <b>Multiple Resources: 
2761
2762* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
2763* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
2764* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
2765* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
2766* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
2767* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
2768* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
2769* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
2770* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
2771* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
2772* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
2773* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
2774* [ValueSet](valueset.html): Intended jurisdiction for the value set
2775</b><br>
2776   * Type: <b>token</b><br>
2777   * 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>
2778   * </p>
2779   */
2780  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
2781
2782 /**
2783   * Search parameter: <b>name</b>
2784   * <p>
2785   * Description: <b>Multiple Resources: 
2786
2787* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
2788* [CodeSystem](codesystem.html): Computationally friendly name of the code system
2789* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
2790* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
2791* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
2792* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
2793* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
2794* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
2795* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
2796* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
2797* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
2798* [StructureMap](structuremap.html): Computationally friendly name of the structure map
2799* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
2800* [ValueSet](valueset.html): Computationally friendly name of the value set
2801</b><br>
2802   * Type: <b>string</b><br>
2803   * 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>
2804   * </p>
2805   */
2806  @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" )
2807  public static final String SP_NAME = "name";
2808 /**
2809   * <b>Fluent Client</b> search parameter constant for <b>name</b>
2810   * <p>
2811   * Description: <b>Multiple Resources: 
2812
2813* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
2814* [CodeSystem](codesystem.html): Computationally friendly name of the code system
2815* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
2816* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
2817* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
2818* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
2819* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
2820* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
2821* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
2822* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
2823* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
2824* [StructureMap](structuremap.html): Computationally friendly name of the structure map
2825* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
2826* [ValueSet](valueset.html): Computationally friendly name of the value set
2827</b><br>
2828   * Type: <b>string</b><br>
2829   * 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>
2830   * </p>
2831   */
2832  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
2833
2834 /**
2835   * Search parameter: <b>publisher</b>
2836   * <p>
2837   * Description: <b>Multiple Resources: 
2838
2839* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
2840* [CodeSystem](codesystem.html): Name of the publisher of the code system
2841* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
2842* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
2843* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
2844* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
2845* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
2846* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
2847* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
2848* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
2849* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
2850* [StructureMap](structuremap.html): Name of the publisher of the structure map
2851* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
2852* [ValueSet](valueset.html): Name of the publisher of the value set
2853</b><br>
2854   * Type: <b>string</b><br>
2855   * 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>
2856   * </p>
2857   */
2858  @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" )
2859  public static final String SP_PUBLISHER = "publisher";
2860 /**
2861   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
2862   * <p>
2863   * Description: <b>Multiple Resources: 
2864
2865* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
2866* [CodeSystem](codesystem.html): Name of the publisher of the code system
2867* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
2868* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
2869* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
2870* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
2871* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
2872* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
2873* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
2874* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
2875* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
2876* [StructureMap](structuremap.html): Name of the publisher of the structure map
2877* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
2878* [ValueSet](valueset.html): Name of the publisher of the value set
2879</b><br>
2880   * Type: <b>string</b><br>
2881   * 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>
2882   * </p>
2883   */
2884  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
2885
2886 /**
2887   * Search parameter: <b>status</b>
2888   * <p>
2889   * Description: <b>Multiple Resources: 
2890
2891* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
2892* [CodeSystem](codesystem.html): The current status of the code system
2893* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
2894* [ConceptMap](conceptmap.html): The current status of the concept map
2895* [GraphDefinition](graphdefinition.html): The current status of the graph definition
2896* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
2897* [MessageDefinition](messagedefinition.html): The current status of the message definition
2898* [NamingSystem](namingsystem.html): The current status of the naming system
2899* [OperationDefinition](operationdefinition.html): The current status of the operation definition
2900* [SearchParameter](searchparameter.html): The current status of the search parameter
2901* [StructureDefinition](structuredefinition.html): The current status of the structure definition
2902* [StructureMap](structuremap.html): The current status of the structure map
2903* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
2904* [ValueSet](valueset.html): The current status of the value set
2905</b><br>
2906   * Type: <b>token</b><br>
2907   * 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>
2908   * </p>
2909   */
2910  @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" )
2911  public static final String SP_STATUS = "status";
2912 /**
2913   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2914   * <p>
2915   * Description: <b>Multiple Resources: 
2916
2917* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
2918* [CodeSystem](codesystem.html): The current status of the code system
2919* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
2920* [ConceptMap](conceptmap.html): The current status of the concept map
2921* [GraphDefinition](graphdefinition.html): The current status of the graph definition
2922* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
2923* [MessageDefinition](messagedefinition.html): The current status of the message definition
2924* [NamingSystem](namingsystem.html): The current status of the naming system
2925* [OperationDefinition](operationdefinition.html): The current status of the operation definition
2926* [SearchParameter](searchparameter.html): The current status of the search parameter
2927* [StructureDefinition](structuredefinition.html): The current status of the structure definition
2928* [StructureMap](structuremap.html): The current status of the structure map
2929* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
2930* [ValueSet](valueset.html): The current status of the value set
2931</b><br>
2932   * Type: <b>token</b><br>
2933   * 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>
2934   * </p>
2935   */
2936  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2937
2938 /**
2939   * Search parameter: <b>url</b>
2940   * <p>
2941   * Description: <b>Multiple Resources: 
2942
2943* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
2944* [CodeSystem](codesystem.html): The uri that identifies the code system
2945* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
2946* [ConceptMap](conceptmap.html): The uri that identifies the concept map
2947* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
2948* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
2949* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
2950* [NamingSystem](namingsystem.html): The uri that identifies the naming system
2951* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
2952* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
2953* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
2954* [StructureMap](structuremap.html): The uri that identifies the structure map
2955* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
2956* [ValueSet](valueset.html): The uri that identifies the value set
2957</b><br>
2958   * Type: <b>uri</b><br>
2959   * 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>
2960   * </p>
2961   */
2962  @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" )
2963  public static final String SP_URL = "url";
2964 /**
2965   * <b>Fluent Client</b> search parameter constant for <b>url</b>
2966   * <p>
2967   * Description: <b>Multiple Resources: 
2968
2969* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
2970* [CodeSystem](codesystem.html): The uri that identifies the code system
2971* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
2972* [ConceptMap](conceptmap.html): The uri that identifies the concept map
2973* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
2974* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
2975* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
2976* [NamingSystem](namingsystem.html): The uri that identifies the naming system
2977* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
2978* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
2979* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
2980* [StructureMap](structuremap.html): The uri that identifies the structure map
2981* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
2982* [ValueSet](valueset.html): The uri that identifies the value set
2983</b><br>
2984   * Type: <b>uri</b><br>
2985   * 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>
2986   * </p>
2987   */
2988  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
2989
2990 /**
2991   * Search parameter: <b>version</b>
2992   * <p>
2993   * Description: <b>Multiple Resources: 
2994
2995* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
2996* [CodeSystem](codesystem.html): The business version of the code system
2997* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
2998* [ConceptMap](conceptmap.html): The business version of the concept map
2999* [GraphDefinition](graphdefinition.html): The business version of the graph definition
3000* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
3001* [MessageDefinition](messagedefinition.html): The business version of the message definition
3002* [NamingSystem](namingsystem.html): The business version of the naming system
3003* [OperationDefinition](operationdefinition.html): The business version of the operation definition
3004* [SearchParameter](searchparameter.html): The business version of the search parameter
3005* [StructureDefinition](structuredefinition.html): The business version of the structure definition
3006* [StructureMap](structuremap.html): The business version of the structure map
3007* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
3008* [ValueSet](valueset.html): The business version of the value set
3009</b><br>
3010   * Type: <b>token</b><br>
3011   * 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>
3012   * </p>
3013   */
3014  @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" )
3015  public static final String SP_VERSION = "version";
3016 /**
3017   * <b>Fluent Client</b> search parameter constant for <b>version</b>
3018   * <p>
3019   * Description: <b>Multiple Resources: 
3020
3021* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
3022* [CodeSystem](codesystem.html): The business version of the code system
3023* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
3024* [ConceptMap](conceptmap.html): The business version of the concept map
3025* [GraphDefinition](graphdefinition.html): The business version of the graph definition
3026* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
3027* [MessageDefinition](messagedefinition.html): The business version of the message definition
3028* [NamingSystem](namingsystem.html): The business version of the naming system
3029* [OperationDefinition](operationdefinition.html): The business version of the operation definition
3030* [SearchParameter](searchparameter.html): The business version of the search parameter
3031* [StructureDefinition](structuredefinition.html): The business version of the structure definition
3032* [StructureMap](structuremap.html): The business version of the structure map
3033* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
3034* [ValueSet](valueset.html): The business version of the value set
3035</b><br>
3036   * Type: <b>token</b><br>
3037   * 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>
3038   * </p>
3039   */
3040  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
3041
3042// Manual code (from Configuration.txt):
3043  public boolean supportsCopyright() {
3044    return false;
3045  }
3046
3047  public boolean supportsExperimental() {
3048    return false;
3049  }
3050  
3051// end addition
3052
3053}
3054