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