001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.
052 */
053@ResourceDef(name="ConceptMap", profile="http://hl7.org/fhir/StructureDefinition/ConceptMap")
054public class ConceptMap extends MetadataResource {
055
056    public enum ConceptMapAttributeType {
057        /**
058         * The attribute value is a code defined in the code system in context.
059         */
060        CODE, 
061        /**
062         * The attribute value is a code defined in a code system.
063         */
064        CODING, 
065        /**
066         * The attribute value is a string.
067         */
068        STRING, 
069        /**
070         * The attribute value is a boolean true | false.
071         */
072        BOOLEAN, 
073        /**
074         * The attribute is a Quantity (may represent an integer or a decimal with no units).
075         */
076        QUANTITY, 
077        /**
078         * added to help the parsers with the generic types
079         */
080        NULL;
081        public static ConceptMapAttributeType fromCode(String codeString) throws FHIRException {
082            if (codeString == null || "".equals(codeString))
083                return null;
084        if ("code".equals(codeString))
085          return CODE;
086        if ("Coding".equals(codeString))
087          return CODING;
088        if ("string".equals(codeString))
089          return STRING;
090        if ("boolean".equals(codeString))
091          return BOOLEAN;
092        if ("Quantity".equals(codeString))
093          return QUANTITY;
094        if (Configuration.isAcceptInvalidEnums())
095          return null;
096        else
097          throw new FHIRException("Unknown ConceptMapAttributeType code '"+codeString+"'");
098        }
099        public String toCode() {
100          switch (this) {
101            case CODE: return "code";
102            case CODING: return "Coding";
103            case STRING: return "string";
104            case BOOLEAN: return "boolean";
105            case QUANTITY: return "Quantity";
106            case NULL: return null;
107            default: return "?";
108          }
109        }
110        public String getSystem() {
111          switch (this) {
112            case CODE: return "http://hl7.org/fhir/conceptmap-attribute-type";
113            case CODING: return "http://hl7.org/fhir/conceptmap-attribute-type";
114            case STRING: return "http://hl7.org/fhir/conceptmap-attribute-type";
115            case BOOLEAN: return "http://hl7.org/fhir/conceptmap-attribute-type";
116            case QUANTITY: return "http://hl7.org/fhir/conceptmap-attribute-type";
117            case NULL: return null;
118            default: return "?";
119          }
120        }
121        public String getDefinition() {
122          switch (this) {
123            case CODE: return "The attribute value is a code defined in the code system in context.";
124            case CODING: return "The attribute value is a code defined in a code system.";
125            case STRING: return "The attribute value is a string.";
126            case BOOLEAN: return "The attribute value is a boolean true | false.";
127            case QUANTITY: return "The attribute is a Quantity (may represent an integer or a decimal with no units).";
128            case NULL: return null;
129            default: return "?";
130          }
131        }
132        public String getDisplay() {
133          switch (this) {
134            case CODE: return "code";
135            case CODING: return "Coding";
136            case STRING: return "string";
137            case BOOLEAN: return "boolean";
138            case QUANTITY: return "Quantity";
139            case NULL: return null;
140            default: return "?";
141          }
142        }
143    }
144
145  public static class ConceptMapAttributeTypeEnumFactory implements EnumFactory<ConceptMapAttributeType> {
146    public ConceptMapAttributeType fromCode(String codeString) throws IllegalArgumentException {
147      if (codeString == null || "".equals(codeString))
148            if (codeString == null || "".equals(codeString))
149                return null;
150        if ("code".equals(codeString))
151          return ConceptMapAttributeType.CODE;
152        if ("Coding".equals(codeString))
153          return ConceptMapAttributeType.CODING;
154        if ("string".equals(codeString))
155          return ConceptMapAttributeType.STRING;
156        if ("boolean".equals(codeString))
157          return ConceptMapAttributeType.BOOLEAN;
158        if ("Quantity".equals(codeString))
159          return ConceptMapAttributeType.QUANTITY;
160        throw new IllegalArgumentException("Unknown ConceptMapAttributeType code '"+codeString+"'");
161        }
162        public Enumeration<ConceptMapAttributeType> fromType(PrimitiveType<?> code) throws FHIRException {
163          if (code == null)
164            return null;
165          if (code.isEmpty())
166            return new Enumeration<ConceptMapAttributeType>(this, ConceptMapAttributeType.NULL, code);
167          String codeString = ((PrimitiveType) code).asStringValue();
168          if (codeString == null || "".equals(codeString))
169            return new Enumeration<ConceptMapAttributeType>(this, ConceptMapAttributeType.NULL, code);
170        if ("code".equals(codeString))
171          return new Enumeration<ConceptMapAttributeType>(this, ConceptMapAttributeType.CODE, code);
172        if ("Coding".equals(codeString))
173          return new Enumeration<ConceptMapAttributeType>(this, ConceptMapAttributeType.CODING, code);
174        if ("string".equals(codeString))
175          return new Enumeration<ConceptMapAttributeType>(this, ConceptMapAttributeType.STRING, code);
176        if ("boolean".equals(codeString))
177          return new Enumeration<ConceptMapAttributeType>(this, ConceptMapAttributeType.BOOLEAN, code);
178        if ("Quantity".equals(codeString))
179          return new Enumeration<ConceptMapAttributeType>(this, ConceptMapAttributeType.QUANTITY, code);
180        throw new FHIRException("Unknown ConceptMapAttributeType code '"+codeString+"'");
181        }
182    public String toCode(ConceptMapAttributeType code) {
183      if (code == ConceptMapAttributeType.CODE)
184        return "code";
185      if (code == ConceptMapAttributeType.CODING)
186        return "Coding";
187      if (code == ConceptMapAttributeType.STRING)
188        return "string";
189      if (code == ConceptMapAttributeType.BOOLEAN)
190        return "boolean";
191      if (code == ConceptMapAttributeType.QUANTITY)
192        return "Quantity";
193      return "?";
194      }
195    public String toSystem(ConceptMapAttributeType code) {
196      return code.getSystem();
197      }
198    }
199
200    public enum ConceptMapGroupUnmappedMode {
201        /**
202         * Use the code as provided in the $translate request in one of the following input parameters: sourceCode, sourceCoding, sourceCodeableConcept.
203         */
204        USESOURCECODE, 
205        /**
206         * Use the code(s) explicitly provided in the group.unmapped 'code' or 'valueSet' element.
207         */
208        FIXED, 
209        /**
210         * Use the map identified by the canonical URL in the url element.
211         */
212        OTHERMAP, 
213        /**
214         * added to help the parsers with the generic types
215         */
216        NULL;
217        public static ConceptMapGroupUnmappedMode fromCode(String codeString) throws FHIRException {
218            if (codeString == null || "".equals(codeString))
219                return null;
220        if ("use-source-code".equals(codeString))
221          return USESOURCECODE;
222        if ("fixed".equals(codeString))
223          return FIXED;
224        if ("other-map".equals(codeString))
225          return OTHERMAP;
226        if (Configuration.isAcceptInvalidEnums())
227          return null;
228        else
229          throw new FHIRException("Unknown ConceptMapGroupUnmappedMode code '"+codeString+"'");
230        }
231        public String toCode() {
232          switch (this) {
233            case USESOURCECODE: return "use-source-code";
234            case FIXED: return "fixed";
235            case OTHERMAP: return "other-map";
236            case NULL: return null;
237            default: return "?";
238          }
239        }
240        public String getSystem() {
241          switch (this) {
242            case USESOURCECODE: return "http://hl7.org/fhir/conceptmap-unmapped-mode";
243            case FIXED: return "http://hl7.org/fhir/conceptmap-unmapped-mode";
244            case OTHERMAP: return "http://hl7.org/fhir/conceptmap-unmapped-mode";
245            case NULL: return null;
246            default: return "?";
247          }
248        }
249        public String getDefinition() {
250          switch (this) {
251            case USESOURCECODE: return "Use the code as provided in the $translate request in one of the following input parameters: sourceCode, sourceCoding, sourceCodeableConcept.";
252            case FIXED: return "Use the code(s) explicitly provided in the group.unmapped 'code' or 'valueSet' element.";
253            case OTHERMAP: return "Use the map identified by the canonical URL in the url element.";
254            case NULL: return null;
255            default: return "?";
256          }
257        }
258        public String getDisplay() {
259          switch (this) {
260            case USESOURCECODE: return "Use Provided Source Code";
261            case FIXED: return "Fixed Code";
262            case OTHERMAP: return "Other Map";
263            case NULL: return null;
264            default: return "?";
265          }
266        }
267    }
268
269  public static class ConceptMapGroupUnmappedModeEnumFactory implements EnumFactory<ConceptMapGroupUnmappedMode> {
270    public ConceptMapGroupUnmappedMode fromCode(String codeString) throws IllegalArgumentException {
271      if (codeString == null || "".equals(codeString))
272            if (codeString == null || "".equals(codeString))
273                return null;
274        if ("use-source-code".equals(codeString))
275          return ConceptMapGroupUnmappedMode.USESOURCECODE;
276        if ("fixed".equals(codeString))
277          return ConceptMapGroupUnmappedMode.FIXED;
278        if ("other-map".equals(codeString))
279          return ConceptMapGroupUnmappedMode.OTHERMAP;
280        throw new IllegalArgumentException("Unknown ConceptMapGroupUnmappedMode code '"+codeString+"'");
281        }
282        public Enumeration<ConceptMapGroupUnmappedMode> fromType(PrimitiveType<?> code) throws FHIRException {
283          if (code == null)
284            return null;
285          if (code.isEmpty())
286            return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.NULL, code);
287          String codeString = ((PrimitiveType) code).asStringValue();
288          if (codeString == null || "".equals(codeString))
289            return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.NULL, code);
290        if ("use-source-code".equals(codeString))
291          return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.USESOURCECODE, code);
292        if ("fixed".equals(codeString))
293          return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.FIXED, code);
294        if ("other-map".equals(codeString))
295          return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.OTHERMAP, code);
296        throw new FHIRException("Unknown ConceptMapGroupUnmappedMode code '"+codeString+"'");
297        }
298    public String toCode(ConceptMapGroupUnmappedMode code) {
299      if (code == ConceptMapGroupUnmappedMode.USESOURCECODE)
300        return "use-source-code";
301      if (code == ConceptMapGroupUnmappedMode.FIXED)
302        return "fixed";
303      if (code == ConceptMapGroupUnmappedMode.OTHERMAP)
304        return "other-map";
305      return "?";
306      }
307    public String toSystem(ConceptMapGroupUnmappedMode code) {
308      return code.getSystem();
309      }
310    }
311
312    public enum ConceptMapPropertyType {
313        /**
314         * The property  value is a code defined in an external code system. This may be used for translations, but is not the intent.
315         */
316        CODING, 
317        /**
318         * The property value is a string.
319         */
320        STRING, 
321        /**
322         * The property value is an integer (often used to assign ranking values to concepts for supporting score assessments).
323         */
324        INTEGER, 
325        /**
326         * The property value is a boolean true | false.
327         */
328        BOOLEAN, 
329        /**
330         * The property is a date or a date + time.
331         */
332        DATETIME, 
333        /**
334         * The property value is a decimal number.
335         */
336        DECIMAL, 
337        /**
338         * The property value is a code as defined in the CodeSystem in ConceptMap.property.system.
339         */
340        CODE, 
341        /**
342         * added to help the parsers with the generic types
343         */
344        NULL;
345        public static ConceptMapPropertyType fromCode(String codeString) throws FHIRException {
346            if (codeString == null || "".equals(codeString))
347                return null;
348        if ("Coding".equals(codeString))
349          return CODING;
350        if ("string".equals(codeString))
351          return STRING;
352        if ("integer".equals(codeString))
353          return INTEGER;
354        if ("boolean".equals(codeString))
355          return BOOLEAN;
356        if ("dateTime".equals(codeString))
357          return DATETIME;
358        if ("decimal".equals(codeString))
359          return DECIMAL;
360        if ("code".equals(codeString))
361          return CODE;
362        if (Configuration.isAcceptInvalidEnums())
363          return null;
364        else
365          throw new FHIRException("Unknown ConceptMapPropertyType code '"+codeString+"'");
366        }
367        public String toCode() {
368          switch (this) {
369            case CODING: return "Coding";
370            case STRING: return "string";
371            case INTEGER: return "integer";
372            case BOOLEAN: return "boolean";
373            case DATETIME: return "dateTime";
374            case DECIMAL: return "decimal";
375            case CODE: return "code";
376            case NULL: return null;
377            default: return "?";
378          }
379        }
380        public String getSystem() {
381          switch (this) {
382            case CODING: return "http://hl7.org/fhir/conceptmap-property-type";
383            case STRING: return "http://hl7.org/fhir/conceptmap-property-type";
384            case INTEGER: return "http://hl7.org/fhir/conceptmap-property-type";
385            case BOOLEAN: return "http://hl7.org/fhir/conceptmap-property-type";
386            case DATETIME: return "http://hl7.org/fhir/conceptmap-property-type";
387            case DECIMAL: return "http://hl7.org/fhir/conceptmap-property-type";
388            case CODE: return "http://hl7.org/fhir/conceptmap-property-type";
389            case NULL: return null;
390            default: return "?";
391          }
392        }
393        public String getDefinition() {
394          switch (this) {
395            case CODING: return "The property  value is a code defined in an external code system. This may be used for translations, but is not the intent.";
396            case STRING: return "The property value is a string.";
397            case INTEGER: return "The property value is an integer (often used to assign ranking values to concepts for supporting score assessments).";
398            case BOOLEAN: return "The property value is a boolean true | false.";
399            case DATETIME: return "The property is a date or a date + time.";
400            case DECIMAL: return "The property value is a decimal number.";
401            case CODE: return "The property value is a code as defined in the CodeSystem in ConceptMap.property.system.";
402            case NULL: return null;
403            default: return "?";
404          }
405        }
406        public String getDisplay() {
407          switch (this) {
408            case CODING: return "Coding (external reference)";
409            case STRING: return "string";
410            case INTEGER: return "integer";
411            case BOOLEAN: return "boolean";
412            case DATETIME: return "dateTime";
413            case DECIMAL: return "decimal";
414            case CODE: return "code";
415            case NULL: return null;
416            default: return "?";
417          }
418        }
419    }
420
421  public static class ConceptMapPropertyTypeEnumFactory implements EnumFactory<ConceptMapPropertyType> {
422    public ConceptMapPropertyType fromCode(String codeString) throws IllegalArgumentException {
423      if (codeString == null || "".equals(codeString))
424            if (codeString == null || "".equals(codeString))
425                return null;
426        if ("Coding".equals(codeString))
427          return ConceptMapPropertyType.CODING;
428        if ("string".equals(codeString))
429          return ConceptMapPropertyType.STRING;
430        if ("integer".equals(codeString))
431          return ConceptMapPropertyType.INTEGER;
432        if ("boolean".equals(codeString))
433          return ConceptMapPropertyType.BOOLEAN;
434        if ("dateTime".equals(codeString))
435          return ConceptMapPropertyType.DATETIME;
436        if ("decimal".equals(codeString))
437          return ConceptMapPropertyType.DECIMAL;
438        if ("code".equals(codeString))
439          return ConceptMapPropertyType.CODE;
440        throw new IllegalArgumentException("Unknown ConceptMapPropertyType code '"+codeString+"'");
441        }
442        public Enumeration<ConceptMapPropertyType> fromType(PrimitiveType<?> code) throws FHIRException {
443          if (code == null)
444            return null;
445          if (code.isEmpty())
446            return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.NULL, code);
447          String codeString = ((PrimitiveType) code).asStringValue();
448          if (codeString == null || "".equals(codeString))
449            return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.NULL, code);
450        if ("Coding".equals(codeString))
451          return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.CODING, code);
452        if ("string".equals(codeString))
453          return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.STRING, code);
454        if ("integer".equals(codeString))
455          return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.INTEGER, code);
456        if ("boolean".equals(codeString))
457          return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.BOOLEAN, code);
458        if ("dateTime".equals(codeString))
459          return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.DATETIME, code);
460        if ("decimal".equals(codeString))
461          return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.DECIMAL, code);
462        if ("code".equals(codeString))
463          return new Enumeration<ConceptMapPropertyType>(this, ConceptMapPropertyType.CODE, code);
464        throw new FHIRException("Unknown ConceptMapPropertyType code '"+codeString+"'");
465        }
466    public String toCode(ConceptMapPropertyType code) {
467      if (code == ConceptMapPropertyType.CODING)
468        return "Coding";
469      if (code == ConceptMapPropertyType.STRING)
470        return "string";
471      if (code == ConceptMapPropertyType.INTEGER)
472        return "integer";
473      if (code == ConceptMapPropertyType.BOOLEAN)
474        return "boolean";
475      if (code == ConceptMapPropertyType.DATETIME)
476        return "dateTime";
477      if (code == ConceptMapPropertyType.DECIMAL)
478        return "decimal";
479      if (code == ConceptMapPropertyType.CODE)
480        return "code";
481      return "?";
482      }
483    public String toSystem(ConceptMapPropertyType code) {
484      return code.getSystem();
485      }
486    }
487
488    @Block()
489    public static class PropertyComponent extends BackboneElement implements IBaseBackboneElement {
490        /**
491         * A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.
492         */
493        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
494        @Description(shortDefinition="Identifies the property on the mappings, and when referred to in the $translate operation", formalDefinition="A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation." )
495        protected CodeType code;
496
497        /**
498         * Reference to the formal meaning of the property.
499         */
500        @Child(name = "uri", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true)
501        @Description(shortDefinition="Formal identifier for the property", formalDefinition="Reference to the formal meaning of the property." )
502        protected UriType uri;
503
504        /**
505         * A description of the property - why it is defined, and how its value might be used.
506         */
507        @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
508        @Description(shortDefinition="Why the property is defined, and/or what it conveys", formalDefinition="A description of the property - why it is defined, and how its value might be used." )
509        protected StringType description;
510
511        /**
512         * The type of the property value.
513         */
514        @Child(name = "type", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=true)
515        @Description(shortDefinition="Coding | string | integer | boolean | dateTime | decimal | code", formalDefinition="The type of the property value." )
516        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/conceptmap-property-type")
517        protected Enumeration<ConceptMapPropertyType> type;
518
519        /**
520         * The CodeSystem that defines the codes from which values of type ```code``` in property values.
521         */
522        @Child(name = "system", type = {CanonicalType.class}, order=5, min=0, max=1, modifier=false, summary=true)
523        @Description(shortDefinition="The CodeSystem from which code values come", formalDefinition="The CodeSystem that defines the codes from which values of type ```code``` in property values." )
524        protected CanonicalType system;
525
526        private static final long serialVersionUID = 1693472150L;
527
528    /**
529     * Constructor
530     */
531      public PropertyComponent() {
532        super();
533      }
534
535    /**
536     * Constructor
537     */
538      public PropertyComponent(String code, ConceptMapPropertyType type) {
539        super();
540        this.setCode(code);
541        this.setType(type);
542      }
543
544        /**
545         * @return {@link #code} (A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
546         */
547        public CodeType getCodeElement() { 
548          if (this.code == null)
549            if (Configuration.errorOnAutoCreate())
550              throw new Error("Attempt to auto-create PropertyComponent.code");
551            else if (Configuration.doAutoCreate())
552              this.code = new CodeType(); // bb
553          return this.code;
554        }
555
556        public boolean hasCodeElement() { 
557          return this.code != null && !this.code.isEmpty();
558        }
559
560        public boolean hasCode() { 
561          return this.code != null && !this.code.isEmpty();
562        }
563
564        /**
565         * @param value {@link #code} (A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
566         */
567        public PropertyComponent setCodeElement(CodeType value) { 
568          this.code = value;
569          return this;
570        }
571
572        /**
573         * @return A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.
574         */
575        public String getCode() { 
576          return this.code == null ? null : this.code.getValue();
577        }
578
579        /**
580         * @param value A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.
581         */
582        public PropertyComponent setCode(String value) { 
583            if (this.code == null)
584              this.code = new CodeType();
585            this.code.setValue(value);
586          return this;
587        }
588
589        /**
590         * @return {@link #uri} (Reference to the formal meaning of the property.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
591         */
592        public UriType getUriElement() { 
593          if (this.uri == null)
594            if (Configuration.errorOnAutoCreate())
595              throw new Error("Attempt to auto-create PropertyComponent.uri");
596            else if (Configuration.doAutoCreate())
597              this.uri = new UriType(); // bb
598          return this.uri;
599        }
600
601        public boolean hasUriElement() { 
602          return this.uri != null && !this.uri.isEmpty();
603        }
604
605        public boolean hasUri() { 
606          return this.uri != null && !this.uri.isEmpty();
607        }
608
609        /**
610         * @param value {@link #uri} (Reference to the formal meaning of the property.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
611         */
612        public PropertyComponent setUriElement(UriType value) { 
613          this.uri = value;
614          return this;
615        }
616
617        /**
618         * @return Reference to the formal meaning of the property.
619         */
620        public String getUri() { 
621          return this.uri == null ? null : this.uri.getValue();
622        }
623
624        /**
625         * @param value Reference to the formal meaning of the property.
626         */
627        public PropertyComponent setUri(String value) { 
628          if (Utilities.noString(value))
629            this.uri = null;
630          else {
631            if (this.uri == null)
632              this.uri = new UriType();
633            this.uri.setValue(value);
634          }
635          return this;
636        }
637
638        /**
639         * @return {@link #description} (A description of the property - why it is defined, and how its value might be used.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
640         */
641        public StringType getDescriptionElement() { 
642          if (this.description == null)
643            if (Configuration.errorOnAutoCreate())
644              throw new Error("Attempt to auto-create PropertyComponent.description");
645            else if (Configuration.doAutoCreate())
646              this.description = new StringType(); // bb
647          return this.description;
648        }
649
650        public boolean hasDescriptionElement() { 
651          return this.description != null && !this.description.isEmpty();
652        }
653
654        public boolean hasDescription() { 
655          return this.description != null && !this.description.isEmpty();
656        }
657
658        /**
659         * @param value {@link #description} (A description of the property - why it is defined, and how its value might be used.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
660         */
661        public PropertyComponent setDescriptionElement(StringType value) { 
662          this.description = value;
663          return this;
664        }
665
666        /**
667         * @return A description of the property - why it is defined, and how its value might be used.
668         */
669        public String getDescription() { 
670          return this.description == null ? null : this.description.getValue();
671        }
672
673        /**
674         * @param value A description of the property - why it is defined, and how its value might be used.
675         */
676        public PropertyComponent setDescription(String value) { 
677          if (Utilities.noString(value))
678            this.description = null;
679          else {
680            if (this.description == null)
681              this.description = new StringType();
682            this.description.setValue(value);
683          }
684          return this;
685        }
686
687        /**
688         * @return {@link #type} (The type of the property value.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
689         */
690        public Enumeration<ConceptMapPropertyType> getTypeElement() { 
691          if (this.type == null)
692            if (Configuration.errorOnAutoCreate())
693              throw new Error("Attempt to auto-create PropertyComponent.type");
694            else if (Configuration.doAutoCreate())
695              this.type = new Enumeration<ConceptMapPropertyType>(new ConceptMapPropertyTypeEnumFactory()); // bb
696          return this.type;
697        }
698
699        public boolean hasTypeElement() { 
700          return this.type != null && !this.type.isEmpty();
701        }
702
703        public boolean hasType() { 
704          return this.type != null && !this.type.isEmpty();
705        }
706
707        /**
708         * @param value {@link #type} (The type of the property value.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
709         */
710        public PropertyComponent setTypeElement(Enumeration<ConceptMapPropertyType> value) { 
711          this.type = value;
712          return this;
713        }
714
715        /**
716         * @return The type of the property value.
717         */
718        public ConceptMapPropertyType getType() { 
719          return this.type == null ? null : this.type.getValue();
720        }
721
722        /**
723         * @param value The type of the property value.
724         */
725        public PropertyComponent setType(ConceptMapPropertyType value) { 
726            if (this.type == null)
727              this.type = new Enumeration<ConceptMapPropertyType>(new ConceptMapPropertyTypeEnumFactory());
728            this.type.setValue(value);
729          return this;
730        }
731
732        /**
733         * @return {@link #system} (The CodeSystem that defines the codes from which values of type ```code``` in property values.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value
734         */
735        public CanonicalType getSystemElement() { 
736          if (this.system == null)
737            if (Configuration.errorOnAutoCreate())
738              throw new Error("Attempt to auto-create PropertyComponent.system");
739            else if (Configuration.doAutoCreate())
740              this.system = new CanonicalType(); // bb
741          return this.system;
742        }
743
744        public boolean hasSystemElement() { 
745          return this.system != null && !this.system.isEmpty();
746        }
747
748        public boolean hasSystem() { 
749          return this.system != null && !this.system.isEmpty();
750        }
751
752        /**
753         * @param value {@link #system} (The CodeSystem that defines the codes from which values of type ```code``` in property values.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value
754         */
755        public PropertyComponent setSystemElement(CanonicalType value) { 
756          this.system = value;
757          return this;
758        }
759
760        /**
761         * @return The CodeSystem that defines the codes from which values of type ```code``` in property values.
762         */
763        public String getSystem() { 
764          return this.system == null ? null : this.system.getValue();
765        }
766
767        /**
768         * @param value The CodeSystem that defines the codes from which values of type ```code``` in property values.
769         */
770        public PropertyComponent setSystem(String value) { 
771          if (Utilities.noString(value))
772            this.system = null;
773          else {
774            if (this.system == null)
775              this.system = new CanonicalType();
776            this.system.setValue(value);
777          }
778          return this;
779        }
780
781        protected void listChildren(List<Property> children) {
782          super.listChildren(children);
783          children.add(new Property("code", "code", "A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.", 0, 1, code));
784          children.add(new Property("uri", "uri", "Reference to the formal meaning of the property.", 0, 1, uri));
785          children.add(new Property("description", "string", "A description of the property - why it is defined, and how its value might be used.", 0, 1, description));
786          children.add(new Property("type", "code", "The type of the property value.", 0, 1, type));
787          children.add(new Property("system", "canonical(CodeSystem)", "The CodeSystem that defines the codes from which values of type ```code``` in property values.", 0, 1, system));
788        }
789
790        @Override
791        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
792          switch (_hash) {
793          case 3059181: /*code*/  return new Property("code", "code", "A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.", 0, 1, code);
794          case 116076: /*uri*/  return new Property("uri", "uri", "Reference to the formal meaning of the property.", 0, 1, uri);
795          case -1724546052: /*description*/  return new Property("description", "string", "A description of the property - why it is defined, and how its value might be used.", 0, 1, description);
796          case 3575610: /*type*/  return new Property("type", "code", "The type of the property value.", 0, 1, type);
797          case -887328209: /*system*/  return new Property("system", "canonical(CodeSystem)", "The CodeSystem that defines the codes from which values of type ```code``` in property values.", 0, 1, system);
798          default: return super.getNamedProperty(_hash, _name, _checkValid);
799          }
800
801        }
802
803      @Override
804      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
805        switch (hash) {
806        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
807        case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // UriType
808        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
809        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<ConceptMapPropertyType>
810        case -887328209: /*system*/ return this.system == null ? new Base[0] : new Base[] {this.system}; // CanonicalType
811        default: return super.getProperty(hash, name, checkValid);
812        }
813
814      }
815
816      @Override
817      public Base setProperty(int hash, String name, Base value) throws FHIRException {
818        switch (hash) {
819        case 3059181: // code
820          this.code = TypeConvertor.castToCode(value); // CodeType
821          return value;
822        case 116076: // uri
823          this.uri = TypeConvertor.castToUri(value); // UriType
824          return value;
825        case -1724546052: // description
826          this.description = TypeConvertor.castToString(value); // StringType
827          return value;
828        case 3575610: // type
829          value = new ConceptMapPropertyTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
830          this.type = (Enumeration) value; // Enumeration<ConceptMapPropertyType>
831          return value;
832        case -887328209: // system
833          this.system = TypeConvertor.castToCanonical(value); // CanonicalType
834          return value;
835        default: return super.setProperty(hash, name, value);
836        }
837
838      }
839
840      @Override
841      public Base setProperty(String name, Base value) throws FHIRException {
842        if (name.equals("code")) {
843          this.code = TypeConvertor.castToCode(value); // CodeType
844        } else if (name.equals("uri")) {
845          this.uri = TypeConvertor.castToUri(value); // UriType
846        } else if (name.equals("description")) {
847          this.description = TypeConvertor.castToString(value); // StringType
848        } else if (name.equals("type")) {
849          value = new ConceptMapPropertyTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
850          this.type = (Enumeration) value; // Enumeration<ConceptMapPropertyType>
851        } else if (name.equals("system")) {
852          this.system = TypeConvertor.castToCanonical(value); // CanonicalType
853        } else
854          return super.setProperty(name, value);
855        return value;
856      }
857
858      @Override
859      public Base makeProperty(int hash, String name) throws FHIRException {
860        switch (hash) {
861        case 3059181:  return getCodeElement();
862        case 116076:  return getUriElement();
863        case -1724546052:  return getDescriptionElement();
864        case 3575610:  return getTypeElement();
865        case -887328209:  return getSystemElement();
866        default: return super.makeProperty(hash, name);
867        }
868
869      }
870
871      @Override
872      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
873        switch (hash) {
874        case 3059181: /*code*/ return new String[] {"code"};
875        case 116076: /*uri*/ return new String[] {"uri"};
876        case -1724546052: /*description*/ return new String[] {"string"};
877        case 3575610: /*type*/ return new String[] {"code"};
878        case -887328209: /*system*/ return new String[] {"canonical"};
879        default: return super.getTypesForProperty(hash, name);
880        }
881
882      }
883
884      @Override
885      public Base addChild(String name) throws FHIRException {
886        if (name.equals("code")) {
887          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.code");
888        }
889        else if (name.equals("uri")) {
890          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.uri");
891        }
892        else if (name.equals("description")) {
893          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.description");
894        }
895        else if (name.equals("type")) {
896          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.type");
897        }
898        else if (name.equals("system")) {
899          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.system");
900        }
901        else
902          return super.addChild(name);
903      }
904
905      public PropertyComponent copy() {
906        PropertyComponent dst = new PropertyComponent();
907        copyValues(dst);
908        return dst;
909      }
910
911      public void copyValues(PropertyComponent dst) {
912        super.copyValues(dst);
913        dst.code = code == null ? null : code.copy();
914        dst.uri = uri == null ? null : uri.copy();
915        dst.description = description == null ? null : description.copy();
916        dst.type = type == null ? null : type.copy();
917        dst.system = system == null ? null : system.copy();
918      }
919
920      @Override
921      public boolean equalsDeep(Base other_) {
922        if (!super.equalsDeep(other_))
923          return false;
924        if (!(other_ instanceof PropertyComponent))
925          return false;
926        PropertyComponent o = (PropertyComponent) other_;
927        return compareDeep(code, o.code, true) && compareDeep(uri, o.uri, true) && compareDeep(description, o.description, true)
928           && compareDeep(type, o.type, true) && compareDeep(system, o.system, true);
929      }
930
931      @Override
932      public boolean equalsShallow(Base other_) {
933        if (!super.equalsShallow(other_))
934          return false;
935        if (!(other_ instanceof PropertyComponent))
936          return false;
937        PropertyComponent o = (PropertyComponent) other_;
938        return compareValues(code, o.code, true) && compareValues(uri, o.uri, true) && compareValues(description, o.description, true)
939           && compareValues(type, o.type, true) && compareValues(system, o.system, true);
940      }
941
942      public boolean isEmpty() {
943        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, uri, description, type
944          , system);
945      }
946
947  public String fhirType() {
948    return "ConceptMap.property";
949
950  }
951
952  }
953
954    @Block()
955    public static class AdditionalAttributeComponent extends BackboneElement implements IBaseBackboneElement {
956        /**
957         * A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.
958         */
959        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
960        @Description(shortDefinition="Identifies this additional attribute through this resource", formalDefinition="A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute." )
961        protected CodeType code;
962
963        /**
964         * Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.
965         */
966        @Child(name = "uri", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true)
967        @Description(shortDefinition="Formal identifier for the data element referred to in this attribte", formalDefinition="Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}." )
968        protected UriType uri;
969
970        /**
971         * A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.
972         */
973        @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
974        @Description(shortDefinition="Why the additional attribute is defined, and/or what the data element it refers to is", formalDefinition="A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element." )
975        protected StringType description;
976
977        /**
978         * The type of the source data contained in this concept map for this data element.
979         */
980        @Child(name = "type", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=true)
981        @Description(shortDefinition="code | Coding | string | boolean | Quantity", formalDefinition="The type of the source data contained in this concept map for this data element." )
982        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/conceptmap-attribute-type")
983        protected Enumeration<ConceptMapAttributeType> type;
984
985        private static final long serialVersionUID = -1930701116L;
986
987    /**
988     * Constructor
989     */
990      public AdditionalAttributeComponent() {
991        super();
992      }
993
994    /**
995     * Constructor
996     */
997      public AdditionalAttributeComponent(String code, ConceptMapAttributeType type) {
998        super();
999        this.setCode(code);
1000        this.setType(type);
1001      }
1002
1003        /**
1004         * @return {@link #code} (A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1005         */
1006        public CodeType getCodeElement() { 
1007          if (this.code == null)
1008            if (Configuration.errorOnAutoCreate())
1009              throw new Error("Attempt to auto-create AdditionalAttributeComponent.code");
1010            else if (Configuration.doAutoCreate())
1011              this.code = new CodeType(); // bb
1012          return this.code;
1013        }
1014
1015        public boolean hasCodeElement() { 
1016          return this.code != null && !this.code.isEmpty();
1017        }
1018
1019        public boolean hasCode() { 
1020          return this.code != null && !this.code.isEmpty();
1021        }
1022
1023        /**
1024         * @param value {@link #code} (A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1025         */
1026        public AdditionalAttributeComponent setCodeElement(CodeType value) { 
1027          this.code = value;
1028          return this;
1029        }
1030
1031        /**
1032         * @return A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.
1033         */
1034        public String getCode() { 
1035          return this.code == null ? null : this.code.getValue();
1036        }
1037
1038        /**
1039         * @param value A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.
1040         */
1041        public AdditionalAttributeComponent setCode(String value) { 
1042            if (this.code == null)
1043              this.code = new CodeType();
1044            this.code.setValue(value);
1045          return this;
1046        }
1047
1048        /**
1049         * @return {@link #uri} (Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
1050         */
1051        public UriType getUriElement() { 
1052          if (this.uri == null)
1053            if (Configuration.errorOnAutoCreate())
1054              throw new Error("Attempt to auto-create AdditionalAttributeComponent.uri");
1055            else if (Configuration.doAutoCreate())
1056              this.uri = new UriType(); // bb
1057          return this.uri;
1058        }
1059
1060        public boolean hasUriElement() { 
1061          return this.uri != null && !this.uri.isEmpty();
1062        }
1063
1064        public boolean hasUri() { 
1065          return this.uri != null && !this.uri.isEmpty();
1066        }
1067
1068        /**
1069         * @param value {@link #uri} (Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
1070         */
1071        public AdditionalAttributeComponent setUriElement(UriType value) { 
1072          this.uri = value;
1073          return this;
1074        }
1075
1076        /**
1077         * @return Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.
1078         */
1079        public String getUri() { 
1080          return this.uri == null ? null : this.uri.getValue();
1081        }
1082
1083        /**
1084         * @param value Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.
1085         */
1086        public AdditionalAttributeComponent setUri(String value) { 
1087          if (Utilities.noString(value))
1088            this.uri = null;
1089          else {
1090            if (this.uri == null)
1091              this.uri = new UriType();
1092            this.uri.setValue(value);
1093          }
1094          return this;
1095        }
1096
1097        /**
1098         * @return {@link #description} (A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1099         */
1100        public StringType getDescriptionElement() { 
1101          if (this.description == null)
1102            if (Configuration.errorOnAutoCreate())
1103              throw new Error("Attempt to auto-create AdditionalAttributeComponent.description");
1104            else if (Configuration.doAutoCreate())
1105              this.description = new StringType(); // bb
1106          return this.description;
1107        }
1108
1109        public boolean hasDescriptionElement() { 
1110          return this.description != null && !this.description.isEmpty();
1111        }
1112
1113        public boolean hasDescription() { 
1114          return this.description != null && !this.description.isEmpty();
1115        }
1116
1117        /**
1118         * @param value {@link #description} (A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1119         */
1120        public AdditionalAttributeComponent setDescriptionElement(StringType value) { 
1121          this.description = value;
1122          return this;
1123        }
1124
1125        /**
1126         * @return A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.
1127         */
1128        public String getDescription() { 
1129          return this.description == null ? null : this.description.getValue();
1130        }
1131
1132        /**
1133         * @param value A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.
1134         */
1135        public AdditionalAttributeComponent setDescription(String value) { 
1136          if (Utilities.noString(value))
1137            this.description = null;
1138          else {
1139            if (this.description == null)
1140              this.description = new StringType();
1141            this.description.setValue(value);
1142          }
1143          return this;
1144        }
1145
1146        /**
1147         * @return {@link #type} (The type of the source data contained in this concept map for this data element.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
1148         */
1149        public Enumeration<ConceptMapAttributeType> getTypeElement() { 
1150          if (this.type == null)
1151            if (Configuration.errorOnAutoCreate())
1152              throw new Error("Attempt to auto-create AdditionalAttributeComponent.type");
1153            else if (Configuration.doAutoCreate())
1154              this.type = new Enumeration<ConceptMapAttributeType>(new ConceptMapAttributeTypeEnumFactory()); // bb
1155          return this.type;
1156        }
1157
1158        public boolean hasTypeElement() { 
1159          return this.type != null && !this.type.isEmpty();
1160        }
1161
1162        public boolean hasType() { 
1163          return this.type != null && !this.type.isEmpty();
1164        }
1165
1166        /**
1167         * @param value {@link #type} (The type of the source data contained in this concept map for this data element.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
1168         */
1169        public AdditionalAttributeComponent setTypeElement(Enumeration<ConceptMapAttributeType> value) { 
1170          this.type = value;
1171          return this;
1172        }
1173
1174        /**
1175         * @return The type of the source data contained in this concept map for this data element.
1176         */
1177        public ConceptMapAttributeType getType() { 
1178          return this.type == null ? null : this.type.getValue();
1179        }
1180
1181        /**
1182         * @param value The type of the source data contained in this concept map for this data element.
1183         */
1184        public AdditionalAttributeComponent setType(ConceptMapAttributeType value) { 
1185            if (this.type == null)
1186              this.type = new Enumeration<ConceptMapAttributeType>(new ConceptMapAttributeTypeEnumFactory());
1187            this.type.setValue(value);
1188          return this;
1189        }
1190
1191        protected void listChildren(List<Property> children) {
1192          super.listChildren(children);
1193          children.add(new Property("code", "code", "A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.", 0, 1, code));
1194          children.add(new Property("uri", "uri", "Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.", 0, 1, uri));
1195          children.add(new Property("description", "string", "A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.", 0, 1, description));
1196          children.add(new Property("type", "code", "The type of the source data contained in this concept map for this data element.", 0, 1, type));
1197        }
1198
1199        @Override
1200        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1201          switch (_hash) {
1202          case 3059181: /*code*/  return new Property("code", "code", "A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.", 0, 1, code);
1203          case 116076: /*uri*/  return new Property("uri", "uri", "Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.", 0, 1, uri);
1204          case -1724546052: /*description*/  return new Property("description", "string", "A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.", 0, 1, description);
1205          case 3575610: /*type*/  return new Property("type", "code", "The type of the source data contained in this concept map for this data element.", 0, 1, type);
1206          default: return super.getNamedProperty(_hash, _name, _checkValid);
1207          }
1208
1209        }
1210
1211      @Override
1212      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1213        switch (hash) {
1214        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
1215        case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // UriType
1216        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
1217        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<ConceptMapAttributeType>
1218        default: return super.getProperty(hash, name, checkValid);
1219        }
1220
1221      }
1222
1223      @Override
1224      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1225        switch (hash) {
1226        case 3059181: // code
1227          this.code = TypeConvertor.castToCode(value); // CodeType
1228          return value;
1229        case 116076: // uri
1230          this.uri = TypeConvertor.castToUri(value); // UriType
1231          return value;
1232        case -1724546052: // description
1233          this.description = TypeConvertor.castToString(value); // StringType
1234          return value;
1235        case 3575610: // type
1236          value = new ConceptMapAttributeTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1237          this.type = (Enumeration) value; // Enumeration<ConceptMapAttributeType>
1238          return value;
1239        default: return super.setProperty(hash, name, value);
1240        }
1241
1242      }
1243
1244      @Override
1245      public Base setProperty(String name, Base value) throws FHIRException {
1246        if (name.equals("code")) {
1247          this.code = TypeConvertor.castToCode(value); // CodeType
1248        } else if (name.equals("uri")) {
1249          this.uri = TypeConvertor.castToUri(value); // UriType
1250        } else if (name.equals("description")) {
1251          this.description = TypeConvertor.castToString(value); // StringType
1252        } else if (name.equals("type")) {
1253          value = new ConceptMapAttributeTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1254          this.type = (Enumeration) value; // Enumeration<ConceptMapAttributeType>
1255        } else
1256          return super.setProperty(name, value);
1257        return value;
1258      }
1259
1260      @Override
1261      public Base makeProperty(int hash, String name) throws FHIRException {
1262        switch (hash) {
1263        case 3059181:  return getCodeElement();
1264        case 116076:  return getUriElement();
1265        case -1724546052:  return getDescriptionElement();
1266        case 3575610:  return getTypeElement();
1267        default: return super.makeProperty(hash, name);
1268        }
1269
1270      }
1271
1272      @Override
1273      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1274        switch (hash) {
1275        case 3059181: /*code*/ return new String[] {"code"};
1276        case 116076: /*uri*/ return new String[] {"uri"};
1277        case -1724546052: /*description*/ return new String[] {"string"};
1278        case 3575610: /*type*/ return new String[] {"code"};
1279        default: return super.getTypesForProperty(hash, name);
1280        }
1281
1282      }
1283
1284      @Override
1285      public Base addChild(String name) throws FHIRException {
1286        if (name.equals("code")) {
1287          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.code");
1288        }
1289        else if (name.equals("uri")) {
1290          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.uri");
1291        }
1292        else if (name.equals("description")) {
1293          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.description");
1294        }
1295        else if (name.equals("type")) {
1296          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.type");
1297        }
1298        else
1299          return super.addChild(name);
1300      }
1301
1302      public AdditionalAttributeComponent copy() {
1303        AdditionalAttributeComponent dst = new AdditionalAttributeComponent();
1304        copyValues(dst);
1305        return dst;
1306      }
1307
1308      public void copyValues(AdditionalAttributeComponent dst) {
1309        super.copyValues(dst);
1310        dst.code = code == null ? null : code.copy();
1311        dst.uri = uri == null ? null : uri.copy();
1312        dst.description = description == null ? null : description.copy();
1313        dst.type = type == null ? null : type.copy();
1314      }
1315
1316      @Override
1317      public boolean equalsDeep(Base other_) {
1318        if (!super.equalsDeep(other_))
1319          return false;
1320        if (!(other_ instanceof AdditionalAttributeComponent))
1321          return false;
1322        AdditionalAttributeComponent o = (AdditionalAttributeComponent) other_;
1323        return compareDeep(code, o.code, true) && compareDeep(uri, o.uri, true) && compareDeep(description, o.description, true)
1324           && compareDeep(type, o.type, true);
1325      }
1326
1327      @Override
1328      public boolean equalsShallow(Base other_) {
1329        if (!super.equalsShallow(other_))
1330          return false;
1331        if (!(other_ instanceof AdditionalAttributeComponent))
1332          return false;
1333        AdditionalAttributeComponent o = (AdditionalAttributeComponent) other_;
1334        return compareValues(code, o.code, true) && compareValues(uri, o.uri, true) && compareValues(description, o.description, true)
1335           && compareValues(type, o.type, true);
1336      }
1337
1338      public boolean isEmpty() {
1339        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, uri, description, type
1340          );
1341      }
1342
1343  public String fhirType() {
1344    return "ConceptMap.additionalAttribute";
1345
1346  }
1347
1348  }
1349
1350    @Block()
1351    public static class ConceptMapGroupComponent extends BackboneElement implements IBaseBackboneElement {
1352        /**
1353         * An absolute URI that identifies the source system where the concepts to be mapped are defined.
1354         */
1355        @Child(name = "source", type = {CanonicalType.class}, order=1, min=0, max=1, modifier=false, summary=false)
1356        @Description(shortDefinition="Source system where concepts to be mapped are defined", formalDefinition="An absolute URI that identifies the source system where the concepts to be mapped are defined." )
1357        protected CanonicalType source;
1358
1359        /**
1360         * An absolute URI that identifies the target system that the concepts will be mapped to.
1361         */
1362        @Child(name = "target", type = {CanonicalType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1363        @Description(shortDefinition="Target system that the concepts are to be mapped to", formalDefinition="An absolute URI that identifies the target system that the concepts will be mapped to." )
1364        protected CanonicalType target;
1365
1366        /**
1367         * Mappings for an individual concept in the source to one or more concepts in the target.
1368         */
1369        @Child(name = "element", type = {}, order=3, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1370        @Description(shortDefinition="Mappings for a concept from the source set", formalDefinition="Mappings for an individual concept in the source to one or more concepts in the target." )
1371        protected List<SourceElementComponent> element;
1372
1373        /**
1374         * What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the "default" to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty.
1375         */
1376        @Child(name = "unmapped", type = {}, order=4, min=0, max=1, modifier=false, summary=false)
1377        @Description(shortDefinition="What to do when there is no mapping target for the source concept and ConceptMap.group.element.noMap is not true", formalDefinition="What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the \"default\" to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty." )
1378        protected ConceptMapGroupUnmappedComponent unmapped;
1379
1380        private static final long serialVersionUID = 1307192416L;
1381
1382    /**
1383     * Constructor
1384     */
1385      public ConceptMapGroupComponent() {
1386        super();
1387      }
1388
1389    /**
1390     * Constructor
1391     */
1392      public ConceptMapGroupComponent(SourceElementComponent element) {
1393        super();
1394        this.addElement(element);
1395      }
1396
1397        /**
1398         * @return {@link #source} (An absolute URI that identifies the source system where the concepts to be mapped are defined.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
1399         */
1400        public CanonicalType getSourceElement() { 
1401          if (this.source == null)
1402            if (Configuration.errorOnAutoCreate())
1403              throw new Error("Attempt to auto-create ConceptMapGroupComponent.source");
1404            else if (Configuration.doAutoCreate())
1405              this.source = new CanonicalType(); // bb
1406          return this.source;
1407        }
1408
1409        public boolean hasSourceElement() { 
1410          return this.source != null && !this.source.isEmpty();
1411        }
1412
1413        public boolean hasSource() { 
1414          return this.source != null && !this.source.isEmpty();
1415        }
1416
1417        /**
1418         * @param value {@link #source} (An absolute URI that identifies the source system where the concepts to be mapped are defined.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
1419         */
1420        public ConceptMapGroupComponent setSourceElement(CanonicalType value) { 
1421          this.source = value;
1422          return this;
1423        }
1424
1425        /**
1426         * @return An absolute URI that identifies the source system where the concepts to be mapped are defined.
1427         */
1428        public String getSource() { 
1429          return this.source == null ? null : this.source.getValue();
1430        }
1431
1432        /**
1433         * @param value An absolute URI that identifies the source system where the concepts to be mapped are defined.
1434         */
1435        public ConceptMapGroupComponent setSource(String value) { 
1436          if (Utilities.noString(value))
1437            this.source = null;
1438          else {
1439            if (this.source == null)
1440              this.source = new CanonicalType();
1441            this.source.setValue(value);
1442          }
1443          return this;
1444        }
1445
1446        /**
1447         * @return {@link #target} (An absolute URI that identifies the target system that the concepts will be mapped to.). This is the underlying object with id, value and extensions. The accessor "getTarget" gives direct access to the value
1448         */
1449        public CanonicalType getTargetElement() { 
1450          if (this.target == null)
1451            if (Configuration.errorOnAutoCreate())
1452              throw new Error("Attempt to auto-create ConceptMapGroupComponent.target");
1453            else if (Configuration.doAutoCreate())
1454              this.target = new CanonicalType(); // bb
1455          return this.target;
1456        }
1457
1458        public boolean hasTargetElement() { 
1459          return this.target != null && !this.target.isEmpty();
1460        }
1461
1462        public boolean hasTarget() { 
1463          return this.target != null && !this.target.isEmpty();
1464        }
1465
1466        /**
1467         * @param value {@link #target} (An absolute URI that identifies the target system that the concepts will be mapped to.). This is the underlying object with id, value and extensions. The accessor "getTarget" gives direct access to the value
1468         */
1469        public ConceptMapGroupComponent setTargetElement(CanonicalType value) { 
1470          this.target = value;
1471          return this;
1472        }
1473
1474        /**
1475         * @return An absolute URI that identifies the target system that the concepts will be mapped to.
1476         */
1477        public String getTarget() { 
1478          return this.target == null ? null : this.target.getValue();
1479        }
1480
1481        /**
1482         * @param value An absolute URI that identifies the target system that the concepts will be mapped to.
1483         */
1484        public ConceptMapGroupComponent setTarget(String value) { 
1485          if (Utilities.noString(value))
1486            this.target = null;
1487          else {
1488            if (this.target == null)
1489              this.target = new CanonicalType();
1490            this.target.setValue(value);
1491          }
1492          return this;
1493        }
1494
1495        /**
1496         * @return {@link #element} (Mappings for an individual concept in the source to one or more concepts in the target.)
1497         */
1498        public List<SourceElementComponent> getElement() { 
1499          if (this.element == null)
1500            this.element = new ArrayList<SourceElementComponent>();
1501          return this.element;
1502        }
1503
1504        /**
1505         * @return Returns a reference to <code>this</code> for easy method chaining
1506         */
1507        public ConceptMapGroupComponent setElement(List<SourceElementComponent> theElement) { 
1508          this.element = theElement;
1509          return this;
1510        }
1511
1512        public boolean hasElement() { 
1513          if (this.element == null)
1514            return false;
1515          for (SourceElementComponent item : this.element)
1516            if (!item.isEmpty())
1517              return true;
1518          return false;
1519        }
1520
1521        public SourceElementComponent addElement() { //3
1522          SourceElementComponent t = new SourceElementComponent();
1523          if (this.element == null)
1524            this.element = new ArrayList<SourceElementComponent>();
1525          this.element.add(t);
1526          return t;
1527        }
1528
1529        public ConceptMapGroupComponent addElement(SourceElementComponent t) { //3
1530          if (t == null)
1531            return this;
1532          if (this.element == null)
1533            this.element = new ArrayList<SourceElementComponent>();
1534          this.element.add(t);
1535          return this;
1536        }
1537
1538        /**
1539         * @return The first repetition of repeating field {@link #element}, creating it if it does not already exist {3}
1540         */
1541        public SourceElementComponent getElementFirstRep() { 
1542          if (getElement().isEmpty()) {
1543            addElement();
1544          }
1545          return getElement().get(0);
1546        }
1547
1548        /**
1549         * @return {@link #unmapped} (What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the "default" to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty.)
1550         */
1551        public ConceptMapGroupUnmappedComponent getUnmapped() { 
1552          if (this.unmapped == null)
1553            if (Configuration.errorOnAutoCreate())
1554              throw new Error("Attempt to auto-create ConceptMapGroupComponent.unmapped");
1555            else if (Configuration.doAutoCreate())
1556              this.unmapped = new ConceptMapGroupUnmappedComponent(); // cc
1557          return this.unmapped;
1558        }
1559
1560        public boolean hasUnmapped() { 
1561          return this.unmapped != null && !this.unmapped.isEmpty();
1562        }
1563
1564        /**
1565         * @param value {@link #unmapped} (What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the "default" to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty.)
1566         */
1567        public ConceptMapGroupComponent setUnmapped(ConceptMapGroupUnmappedComponent value) { 
1568          this.unmapped = value;
1569          return this;
1570        }
1571
1572        protected void listChildren(List<Property> children) {
1573          super.listChildren(children);
1574          children.add(new Property("source", "canonical(CodeSystem)", "An absolute URI that identifies the source system where the concepts to be mapped are defined.", 0, 1, source));
1575          children.add(new Property("target", "canonical(CodeSystem)", "An absolute URI that identifies the target system that the concepts will be mapped to.", 0, 1, target));
1576          children.add(new Property("element", "", "Mappings for an individual concept in the source to one or more concepts in the target.", 0, java.lang.Integer.MAX_VALUE, element));
1577          children.add(new Property("unmapped", "", "What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the \"default\" to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty.", 0, 1, unmapped));
1578        }
1579
1580        @Override
1581        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1582          switch (_hash) {
1583          case -896505829: /*source*/  return new Property("source", "canonical(CodeSystem)", "An absolute URI that identifies the source system where the concepts to be mapped are defined.", 0, 1, source);
1584          case -880905839: /*target*/  return new Property("target", "canonical(CodeSystem)", "An absolute URI that identifies the target system that the concepts will be mapped to.", 0, 1, target);
1585          case -1662836996: /*element*/  return new Property("element", "", "Mappings for an individual concept in the source to one or more concepts in the target.", 0, java.lang.Integer.MAX_VALUE, element);
1586          case -194857460: /*unmapped*/  return new Property("unmapped", "", "What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the \"default\" to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty.", 0, 1, unmapped);
1587          default: return super.getNamedProperty(_hash, _name, _checkValid);
1588          }
1589
1590        }
1591
1592      @Override
1593      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1594        switch (hash) {
1595        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // CanonicalType
1596        case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // CanonicalType
1597        case -1662836996: /*element*/ return this.element == null ? new Base[0] : this.element.toArray(new Base[this.element.size()]); // SourceElementComponent
1598        case -194857460: /*unmapped*/ return this.unmapped == null ? new Base[0] : new Base[] {this.unmapped}; // ConceptMapGroupUnmappedComponent
1599        default: return super.getProperty(hash, name, checkValid);
1600        }
1601
1602      }
1603
1604      @Override
1605      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1606        switch (hash) {
1607        case -896505829: // source
1608          this.source = TypeConvertor.castToCanonical(value); // CanonicalType
1609          return value;
1610        case -880905839: // target
1611          this.target = TypeConvertor.castToCanonical(value); // CanonicalType
1612          return value;
1613        case -1662836996: // element
1614          this.getElement().add((SourceElementComponent) value); // SourceElementComponent
1615          return value;
1616        case -194857460: // unmapped
1617          this.unmapped = (ConceptMapGroupUnmappedComponent) value; // ConceptMapGroupUnmappedComponent
1618          return value;
1619        default: return super.setProperty(hash, name, value);
1620        }
1621
1622      }
1623
1624      @Override
1625      public Base setProperty(String name, Base value) throws FHIRException {
1626        if (name.equals("source")) {
1627          this.source = TypeConvertor.castToCanonical(value); // CanonicalType
1628        } else if (name.equals("target")) {
1629          this.target = TypeConvertor.castToCanonical(value); // CanonicalType
1630        } else if (name.equals("element")) {
1631          this.getElement().add((SourceElementComponent) value);
1632        } else if (name.equals("unmapped")) {
1633          this.unmapped = (ConceptMapGroupUnmappedComponent) value; // ConceptMapGroupUnmappedComponent
1634        } else
1635          return super.setProperty(name, value);
1636        return value;
1637      }
1638
1639      @Override
1640      public Base makeProperty(int hash, String name) throws FHIRException {
1641        switch (hash) {
1642        case -896505829:  return getSourceElement();
1643        case -880905839:  return getTargetElement();
1644        case -1662836996:  return addElement(); 
1645        case -194857460:  return getUnmapped();
1646        default: return super.makeProperty(hash, name);
1647        }
1648
1649      }
1650
1651      @Override
1652      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1653        switch (hash) {
1654        case -896505829: /*source*/ return new String[] {"canonical"};
1655        case -880905839: /*target*/ return new String[] {"canonical"};
1656        case -1662836996: /*element*/ return new String[] {};
1657        case -194857460: /*unmapped*/ return new String[] {};
1658        default: return super.getTypesForProperty(hash, name);
1659        }
1660
1661      }
1662
1663      @Override
1664      public Base addChild(String name) throws FHIRException {
1665        if (name.equals("source")) {
1666          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.source");
1667        }
1668        else if (name.equals("target")) {
1669          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.target");
1670        }
1671        else if (name.equals("element")) {
1672          return addElement();
1673        }
1674        else if (name.equals("unmapped")) {
1675          this.unmapped = new ConceptMapGroupUnmappedComponent();
1676          return this.unmapped;
1677        }
1678        else
1679          return super.addChild(name);
1680      }
1681
1682      public ConceptMapGroupComponent copy() {
1683        ConceptMapGroupComponent dst = new ConceptMapGroupComponent();
1684        copyValues(dst);
1685        return dst;
1686      }
1687
1688      public void copyValues(ConceptMapGroupComponent dst) {
1689        super.copyValues(dst);
1690        dst.source = source == null ? null : source.copy();
1691        dst.target = target == null ? null : target.copy();
1692        if (element != null) {
1693          dst.element = new ArrayList<SourceElementComponent>();
1694          for (SourceElementComponent i : element)
1695            dst.element.add(i.copy());
1696        };
1697        dst.unmapped = unmapped == null ? null : unmapped.copy();
1698      }
1699
1700      @Override
1701      public boolean equalsDeep(Base other_) {
1702        if (!super.equalsDeep(other_))
1703          return false;
1704        if (!(other_ instanceof ConceptMapGroupComponent))
1705          return false;
1706        ConceptMapGroupComponent o = (ConceptMapGroupComponent) other_;
1707        return compareDeep(source, o.source, true) && compareDeep(target, o.target, true) && compareDeep(element, o.element, true)
1708           && compareDeep(unmapped, o.unmapped, true);
1709      }
1710
1711      @Override
1712      public boolean equalsShallow(Base other_) {
1713        if (!super.equalsShallow(other_))
1714          return false;
1715        if (!(other_ instanceof ConceptMapGroupComponent))
1716          return false;
1717        ConceptMapGroupComponent o = (ConceptMapGroupComponent) other_;
1718        return compareValues(source, o.source, true) && compareValues(target, o.target, true);
1719      }
1720
1721      public boolean isEmpty() {
1722        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(source, target, element
1723          , unmapped);
1724      }
1725
1726  public String fhirType() {
1727    return "ConceptMap.group";
1728
1729  }
1730
1731  }
1732
1733    @Block()
1734    public static class SourceElementComponent extends BackboneElement implements IBaseBackboneElement {
1735        /**
1736         * Identity (code or path) or the element/item being mapped.
1737         */
1738        @Child(name = "code", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false)
1739        @Description(shortDefinition="Identifies element being mapped", formalDefinition="Identity (code or path) or the element/item being mapped." )
1740        protected CodeType code;
1741
1742        /**
1743         * The display for the code. The display is only provided to help editors when editing the concept map.
1744         */
1745        @Child(name = "display", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1746        @Description(shortDefinition="Display for the code", formalDefinition="The display for the code. The display is only provided to help editors when editing the concept map." )
1747        protected StringType display;
1748
1749        /**
1750         * The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.
1751         */
1752        @Child(name = "valueSet", type = {CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
1753        @Description(shortDefinition="Identifies the set of concepts being mapped", formalDefinition="The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule." )
1754        protected CanonicalType valueSet;
1755
1756        /**
1757         * If noMap = true this indicates that no mapping to a target concept exists for this source concept.
1758         */
1759        @Child(name = "noMap", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=false)
1760        @Description(shortDefinition="No mapping to a target concept for this source concept", formalDefinition="If noMap = true this indicates that no mapping to a target concept exists for this source concept." )
1761        protected BooleanType noMap;
1762
1763        /**
1764         * A concept from the target value set that this concept maps to.
1765         */
1766        @Child(name = "target", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1767        @Description(shortDefinition="Concept in target system for element", formalDefinition="A concept from the target value set that this concept maps to." )
1768        protected List<TargetElementComponent> target;
1769
1770        private static final long serialVersionUID = 1485743554L;
1771
1772    /**
1773     * Constructor
1774     */
1775      public SourceElementComponent() {
1776        super();
1777      }
1778
1779        /**
1780         * @return {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1781         */
1782        public CodeType getCodeElement() { 
1783          if (this.code == null)
1784            if (Configuration.errorOnAutoCreate())
1785              throw new Error("Attempt to auto-create SourceElementComponent.code");
1786            else if (Configuration.doAutoCreate())
1787              this.code = new CodeType(); // bb
1788          return this.code;
1789        }
1790
1791        public boolean hasCodeElement() { 
1792          return this.code != null && !this.code.isEmpty();
1793        }
1794
1795        public boolean hasCode() { 
1796          return this.code != null && !this.code.isEmpty();
1797        }
1798
1799        /**
1800         * @param value {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1801         */
1802        public SourceElementComponent setCodeElement(CodeType value) { 
1803          this.code = value;
1804          return this;
1805        }
1806
1807        /**
1808         * @return Identity (code or path) or the element/item being mapped.
1809         */
1810        public String getCode() { 
1811          return this.code == null ? null : this.code.getValue();
1812        }
1813
1814        /**
1815         * @param value Identity (code or path) or the element/item being mapped.
1816         */
1817        public SourceElementComponent setCode(String value) { 
1818          if (Utilities.noString(value))
1819            this.code = null;
1820          else {
1821            if (this.code == null)
1822              this.code = new CodeType();
1823            this.code.setValue(value);
1824          }
1825          return this;
1826        }
1827
1828        /**
1829         * @return {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value
1830         */
1831        public StringType getDisplayElement() { 
1832          if (this.display == null)
1833            if (Configuration.errorOnAutoCreate())
1834              throw new Error("Attempt to auto-create SourceElementComponent.display");
1835            else if (Configuration.doAutoCreate())
1836              this.display = new StringType(); // bb
1837          return this.display;
1838        }
1839
1840        public boolean hasDisplayElement() { 
1841          return this.display != null && !this.display.isEmpty();
1842        }
1843
1844        public boolean hasDisplay() { 
1845          return this.display != null && !this.display.isEmpty();
1846        }
1847
1848        /**
1849         * @param value {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value
1850         */
1851        public SourceElementComponent setDisplayElement(StringType value) { 
1852          this.display = value;
1853          return this;
1854        }
1855
1856        /**
1857         * @return The display for the code. The display is only provided to help editors when editing the concept map.
1858         */
1859        public String getDisplay() { 
1860          return this.display == null ? null : this.display.getValue();
1861        }
1862
1863        /**
1864         * @param value The display for the code. The display is only provided to help editors when editing the concept map.
1865         */
1866        public SourceElementComponent setDisplay(String value) { 
1867          if (Utilities.noString(value))
1868            this.display = null;
1869          else {
1870            if (this.display == null)
1871              this.display = new StringType();
1872            this.display.setValue(value);
1873          }
1874          return this;
1875        }
1876
1877        /**
1878         * @return {@link #valueSet} (The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
1879         */
1880        public CanonicalType getValueSetElement() { 
1881          if (this.valueSet == null)
1882            if (Configuration.errorOnAutoCreate())
1883              throw new Error("Attempt to auto-create SourceElementComponent.valueSet");
1884            else if (Configuration.doAutoCreate())
1885              this.valueSet = new CanonicalType(); // bb
1886          return this.valueSet;
1887        }
1888
1889        public boolean hasValueSetElement() { 
1890          return this.valueSet != null && !this.valueSet.isEmpty();
1891        }
1892
1893        public boolean hasValueSet() { 
1894          return this.valueSet != null && !this.valueSet.isEmpty();
1895        }
1896
1897        /**
1898         * @param value {@link #valueSet} (The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
1899         */
1900        public SourceElementComponent setValueSetElement(CanonicalType value) { 
1901          this.valueSet = value;
1902          return this;
1903        }
1904
1905        /**
1906         * @return The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.
1907         */
1908        public String getValueSet() { 
1909          return this.valueSet == null ? null : this.valueSet.getValue();
1910        }
1911
1912        /**
1913         * @param value The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.
1914         */
1915        public SourceElementComponent setValueSet(String value) { 
1916          if (Utilities.noString(value))
1917            this.valueSet = null;
1918          else {
1919            if (this.valueSet == null)
1920              this.valueSet = new CanonicalType();
1921            this.valueSet.setValue(value);
1922          }
1923          return this;
1924        }
1925
1926        /**
1927         * @return {@link #noMap} (If noMap = true this indicates that no mapping to a target concept exists for this source concept.). This is the underlying object with id, value and extensions. The accessor "getNoMap" gives direct access to the value
1928         */
1929        public BooleanType getNoMapElement() { 
1930          if (this.noMap == null)
1931            if (Configuration.errorOnAutoCreate())
1932              throw new Error("Attempt to auto-create SourceElementComponent.noMap");
1933            else if (Configuration.doAutoCreate())
1934              this.noMap = new BooleanType(); // bb
1935          return this.noMap;
1936        }
1937
1938        public boolean hasNoMapElement() { 
1939          return this.noMap != null && !this.noMap.isEmpty();
1940        }
1941
1942        public boolean hasNoMap() { 
1943          return this.noMap != null && !this.noMap.isEmpty();
1944        }
1945
1946        /**
1947         * @param value {@link #noMap} (If noMap = true this indicates that no mapping to a target concept exists for this source concept.). This is the underlying object with id, value and extensions. The accessor "getNoMap" gives direct access to the value
1948         */
1949        public SourceElementComponent setNoMapElement(BooleanType value) { 
1950          this.noMap = value;
1951          return this;
1952        }
1953
1954        /**
1955         * @return If noMap = true this indicates that no mapping to a target concept exists for this source concept.
1956         */
1957        public boolean getNoMap() { 
1958          return this.noMap == null || this.noMap.isEmpty() ? false : this.noMap.getValue();
1959        }
1960
1961        /**
1962         * @param value If noMap = true this indicates that no mapping to a target concept exists for this source concept.
1963         */
1964        public SourceElementComponent setNoMap(boolean value) { 
1965            if (this.noMap == null)
1966              this.noMap = new BooleanType();
1967            this.noMap.setValue(value);
1968          return this;
1969        }
1970
1971        /**
1972         * @return {@link #target} (A concept from the target value set that this concept maps to.)
1973         */
1974        public List<TargetElementComponent> getTarget() { 
1975          if (this.target == null)
1976            this.target = new ArrayList<TargetElementComponent>();
1977          return this.target;
1978        }
1979
1980        /**
1981         * @return Returns a reference to <code>this</code> for easy method chaining
1982         */
1983        public SourceElementComponent setTarget(List<TargetElementComponent> theTarget) { 
1984          this.target = theTarget;
1985          return this;
1986        }
1987
1988        public boolean hasTarget() { 
1989          if (this.target == null)
1990            return false;
1991          for (TargetElementComponent item : this.target)
1992            if (!item.isEmpty())
1993              return true;
1994          return false;
1995        }
1996
1997        public TargetElementComponent addTarget() { //3
1998          TargetElementComponent t = new TargetElementComponent();
1999          if (this.target == null)
2000            this.target = new ArrayList<TargetElementComponent>();
2001          this.target.add(t);
2002          return t;
2003        }
2004
2005        public SourceElementComponent addTarget(TargetElementComponent t) { //3
2006          if (t == null)
2007            return this;
2008          if (this.target == null)
2009            this.target = new ArrayList<TargetElementComponent>();
2010          this.target.add(t);
2011          return this;
2012        }
2013
2014        /**
2015         * @return The first repetition of repeating field {@link #target}, creating it if it does not already exist {3}
2016         */
2017        public TargetElementComponent getTargetFirstRep() { 
2018          if (getTarget().isEmpty()) {
2019            addTarget();
2020          }
2021          return getTarget().get(0);
2022        }
2023
2024        protected void listChildren(List<Property> children) {
2025          super.listChildren(children);
2026          children.add(new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, 1, code));
2027          children.add(new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display));
2028          children.add(new Property("valueSet", "canonical(ValueSet)", "The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.", 0, 1, valueSet));
2029          children.add(new Property("noMap", "boolean", "If noMap = true this indicates that no mapping to a target concept exists for this source concept.", 0, 1, noMap));
2030          children.add(new Property("target", "", "A concept from the target value set that this concept maps to.", 0, java.lang.Integer.MAX_VALUE, target));
2031        }
2032
2033        @Override
2034        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2035          switch (_hash) {
2036          case 3059181: /*code*/  return new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, 1, code);
2037          case 1671764162: /*display*/  return new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display);
2038          case -1410174671: /*valueSet*/  return new Property("valueSet", "canonical(ValueSet)", "The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.", 0, 1, valueSet);
2039          case 104971227: /*noMap*/  return new Property("noMap", "boolean", "If noMap = true this indicates that no mapping to a target concept exists for this source concept.", 0, 1, noMap);
2040          case -880905839: /*target*/  return new Property("target", "", "A concept from the target value set that this concept maps to.", 0, java.lang.Integer.MAX_VALUE, target);
2041          default: return super.getNamedProperty(_hash, _name, _checkValid);
2042          }
2043
2044        }
2045
2046      @Override
2047      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2048        switch (hash) {
2049        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
2050        case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType
2051        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
2052        case 104971227: /*noMap*/ return this.noMap == null ? new Base[0] : new Base[] {this.noMap}; // BooleanType
2053        case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // TargetElementComponent
2054        default: return super.getProperty(hash, name, checkValid);
2055        }
2056
2057      }
2058
2059      @Override
2060      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2061        switch (hash) {
2062        case 3059181: // code
2063          this.code = TypeConvertor.castToCode(value); // CodeType
2064          return value;
2065        case 1671764162: // display
2066          this.display = TypeConvertor.castToString(value); // StringType
2067          return value;
2068        case -1410174671: // valueSet
2069          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2070          return value;
2071        case 104971227: // noMap
2072          this.noMap = TypeConvertor.castToBoolean(value); // BooleanType
2073          return value;
2074        case -880905839: // target
2075          this.getTarget().add((TargetElementComponent) value); // TargetElementComponent
2076          return value;
2077        default: return super.setProperty(hash, name, value);
2078        }
2079
2080      }
2081
2082      @Override
2083      public Base setProperty(String name, Base value) throws FHIRException {
2084        if (name.equals("code")) {
2085          this.code = TypeConvertor.castToCode(value); // CodeType
2086        } else if (name.equals("display")) {
2087          this.display = TypeConvertor.castToString(value); // StringType
2088        } else if (name.equals("valueSet")) {
2089          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2090        } else if (name.equals("noMap")) {
2091          this.noMap = TypeConvertor.castToBoolean(value); // BooleanType
2092        } else if (name.equals("target")) {
2093          this.getTarget().add((TargetElementComponent) value);
2094        } else
2095          return super.setProperty(name, value);
2096        return value;
2097      }
2098
2099      @Override
2100      public Base makeProperty(int hash, String name) throws FHIRException {
2101        switch (hash) {
2102        case 3059181:  return getCodeElement();
2103        case 1671764162:  return getDisplayElement();
2104        case -1410174671:  return getValueSetElement();
2105        case 104971227:  return getNoMapElement();
2106        case -880905839:  return addTarget(); 
2107        default: return super.makeProperty(hash, name);
2108        }
2109
2110      }
2111
2112      @Override
2113      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2114        switch (hash) {
2115        case 3059181: /*code*/ return new String[] {"code"};
2116        case 1671764162: /*display*/ return new String[] {"string"};
2117        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
2118        case 104971227: /*noMap*/ return new String[] {"boolean"};
2119        case -880905839: /*target*/ return new String[] {};
2120        default: return super.getTypesForProperty(hash, name);
2121        }
2122
2123      }
2124
2125      @Override
2126      public Base addChild(String name) throws FHIRException {
2127        if (name.equals("code")) {
2128          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.code");
2129        }
2130        else if (name.equals("display")) {
2131          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.display");
2132        }
2133        else if (name.equals("valueSet")) {
2134          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.valueSet");
2135        }
2136        else if (name.equals("noMap")) {
2137          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.noMap");
2138        }
2139        else if (name.equals("target")) {
2140          return addTarget();
2141        }
2142        else
2143          return super.addChild(name);
2144      }
2145
2146      public SourceElementComponent copy() {
2147        SourceElementComponent dst = new SourceElementComponent();
2148        copyValues(dst);
2149        return dst;
2150      }
2151
2152      public void copyValues(SourceElementComponent dst) {
2153        super.copyValues(dst);
2154        dst.code = code == null ? null : code.copy();
2155        dst.display = display == null ? null : display.copy();
2156        dst.valueSet = valueSet == null ? null : valueSet.copy();
2157        dst.noMap = noMap == null ? null : noMap.copy();
2158        if (target != null) {
2159          dst.target = new ArrayList<TargetElementComponent>();
2160          for (TargetElementComponent i : target)
2161            dst.target.add(i.copy());
2162        };
2163      }
2164
2165      @Override
2166      public boolean equalsDeep(Base other_) {
2167        if (!super.equalsDeep(other_))
2168          return false;
2169        if (!(other_ instanceof SourceElementComponent))
2170          return false;
2171        SourceElementComponent o = (SourceElementComponent) other_;
2172        return compareDeep(code, o.code, true) && compareDeep(display, o.display, true) && compareDeep(valueSet, o.valueSet, true)
2173           && compareDeep(noMap, o.noMap, true) && compareDeep(target, o.target, true);
2174      }
2175
2176      @Override
2177      public boolean equalsShallow(Base other_) {
2178        if (!super.equalsShallow(other_))
2179          return false;
2180        if (!(other_ instanceof SourceElementComponent))
2181          return false;
2182        SourceElementComponent o = (SourceElementComponent) other_;
2183        return compareValues(code, o.code, true) && compareValues(display, o.display, true) && compareValues(valueSet, o.valueSet, true)
2184           && compareValues(noMap, o.noMap, true);
2185      }
2186
2187      public boolean isEmpty() {
2188        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, display, valueSet
2189          , noMap, target);
2190      }
2191
2192  public String fhirType() {
2193    return "ConceptMap.group.element";
2194
2195  }
2196
2197  }
2198
2199    @Block()
2200    public static class TargetElementComponent extends BackboneElement implements IBaseBackboneElement {
2201        /**
2202         * Identity (code or path) or the element/item that the map refers to.
2203         */
2204        @Child(name = "code", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false)
2205        @Description(shortDefinition="Code that identifies the target element", formalDefinition="Identity (code or path) or the element/item that the map refers to." )
2206        protected CodeType code;
2207
2208        /**
2209         * The display for the code. The display is only provided to help editors when editing the concept map.
2210         */
2211        @Child(name = "display", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
2212        @Description(shortDefinition="Display for the code", formalDefinition="The display for the code. The display is only provided to help editors when editing the concept map." )
2213        protected StringType display;
2214
2215        /**
2216         * The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.
2217         */
2218        @Child(name = "valueSet", type = {CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
2219        @Description(shortDefinition="Identifies the set of target concepts", formalDefinition="The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set." )
2220        protected CanonicalType valueSet;
2221
2222        /**
2223         * The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).
2224         */
2225        @Child(name = "relationship", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=false)
2226        @Description(shortDefinition="related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to", formalDefinition="The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target)." )
2227        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/concept-map-relationship")
2228        protected Enumeration<ConceptMapRelationship> relationship;
2229
2230        /**
2231         * A description of status/issues in mapping that conveys additional information not represented in  the structured data.
2232         */
2233        @Child(name = "comment", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false)
2234        @Description(shortDefinition="Description of status/issues in mapping", formalDefinition="A description of status/issues in mapping that conveys additional information not represented in  the structured data." )
2235        protected StringType comment;
2236
2237        /**
2238         * A property value for this source -> target mapping.
2239         */
2240        @Child(name = "property", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2241        @Description(shortDefinition="Property value for the source -> target mapping", formalDefinition="A property value for this source -> target mapping." )
2242        protected List<MappingPropertyComponent> property;
2243
2244        /**
2245         * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified data attribute can be resolved, and it has the specified value.
2246         */
2247        @Child(name = "dependsOn", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2248        @Description(shortDefinition="Other properties required for this mapping", formalDefinition="A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified data attribute can be resolved, and it has the specified value." )
2249        protected List<OtherElementComponent> dependsOn;
2250
2251        /**
2252         * Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data.
2253         */
2254        @Child(name = "product", type = {OtherElementComponent.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2255        @Description(shortDefinition="Other data elements that this mapping also produces", formalDefinition="Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data." )
2256        protected List<OtherElementComponent> product;
2257
2258        private static final long serialVersionUID = 792559555L;
2259
2260    /**
2261     * Constructor
2262     */
2263      public TargetElementComponent() {
2264        super();
2265      }
2266
2267    /**
2268     * Constructor
2269     */
2270      public TargetElementComponent(ConceptMapRelationship relationship) {
2271        super();
2272        this.setRelationship(relationship);
2273      }
2274
2275        /**
2276         * @return {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
2277         */
2278        public CodeType getCodeElement() { 
2279          if (this.code == null)
2280            if (Configuration.errorOnAutoCreate())
2281              throw new Error("Attempt to auto-create TargetElementComponent.code");
2282            else if (Configuration.doAutoCreate())
2283              this.code = new CodeType(); // bb
2284          return this.code;
2285        }
2286
2287        public boolean hasCodeElement() { 
2288          return this.code != null && !this.code.isEmpty();
2289        }
2290
2291        public boolean hasCode() { 
2292          return this.code != null && !this.code.isEmpty();
2293        }
2294
2295        /**
2296         * @param value {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
2297         */
2298        public TargetElementComponent setCodeElement(CodeType value) { 
2299          this.code = value;
2300          return this;
2301        }
2302
2303        /**
2304         * @return Identity (code or path) or the element/item that the map refers to.
2305         */
2306        public String getCode() { 
2307          return this.code == null ? null : this.code.getValue();
2308        }
2309
2310        /**
2311         * @param value Identity (code or path) or the element/item that the map refers to.
2312         */
2313        public TargetElementComponent setCode(String value) { 
2314          if (Utilities.noString(value))
2315            this.code = null;
2316          else {
2317            if (this.code == null)
2318              this.code = new CodeType();
2319            this.code.setValue(value);
2320          }
2321          return this;
2322        }
2323
2324        /**
2325         * @return {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value
2326         */
2327        public StringType getDisplayElement() { 
2328          if (this.display == null)
2329            if (Configuration.errorOnAutoCreate())
2330              throw new Error("Attempt to auto-create TargetElementComponent.display");
2331            else if (Configuration.doAutoCreate())
2332              this.display = new StringType(); // bb
2333          return this.display;
2334        }
2335
2336        public boolean hasDisplayElement() { 
2337          return this.display != null && !this.display.isEmpty();
2338        }
2339
2340        public boolean hasDisplay() { 
2341          return this.display != null && !this.display.isEmpty();
2342        }
2343
2344        /**
2345         * @param value {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value
2346         */
2347        public TargetElementComponent setDisplayElement(StringType value) { 
2348          this.display = value;
2349          return this;
2350        }
2351
2352        /**
2353         * @return The display for the code. The display is only provided to help editors when editing the concept map.
2354         */
2355        public String getDisplay() { 
2356          return this.display == null ? null : this.display.getValue();
2357        }
2358
2359        /**
2360         * @param value The display for the code. The display is only provided to help editors when editing the concept map.
2361         */
2362        public TargetElementComponent setDisplay(String value) { 
2363          if (Utilities.noString(value))
2364            this.display = null;
2365          else {
2366            if (this.display == null)
2367              this.display = new StringType();
2368            this.display.setValue(value);
2369          }
2370          return this;
2371        }
2372
2373        /**
2374         * @return {@link #valueSet} (The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
2375         */
2376        public CanonicalType getValueSetElement() { 
2377          if (this.valueSet == null)
2378            if (Configuration.errorOnAutoCreate())
2379              throw new Error("Attempt to auto-create TargetElementComponent.valueSet");
2380            else if (Configuration.doAutoCreate())
2381              this.valueSet = new CanonicalType(); // bb
2382          return this.valueSet;
2383        }
2384
2385        public boolean hasValueSetElement() { 
2386          return this.valueSet != null && !this.valueSet.isEmpty();
2387        }
2388
2389        public boolean hasValueSet() { 
2390          return this.valueSet != null && !this.valueSet.isEmpty();
2391        }
2392
2393        /**
2394         * @param value {@link #valueSet} (The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
2395         */
2396        public TargetElementComponent setValueSetElement(CanonicalType value) { 
2397          this.valueSet = value;
2398          return this;
2399        }
2400
2401        /**
2402         * @return The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.
2403         */
2404        public String getValueSet() { 
2405          return this.valueSet == null ? null : this.valueSet.getValue();
2406        }
2407
2408        /**
2409         * @param value The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.
2410         */
2411        public TargetElementComponent setValueSet(String value) { 
2412          if (Utilities.noString(value))
2413            this.valueSet = null;
2414          else {
2415            if (this.valueSet == null)
2416              this.valueSet = new CanonicalType();
2417            this.valueSet.setValue(value);
2418          }
2419          return this;
2420        }
2421
2422        /**
2423         * @return {@link #relationship} (The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).). This is the underlying object with id, value and extensions. The accessor "getRelationship" gives direct access to the value
2424         */
2425        public Enumeration<ConceptMapRelationship> getRelationshipElement() { 
2426          if (this.relationship == null)
2427            if (Configuration.errorOnAutoCreate())
2428              throw new Error("Attempt to auto-create TargetElementComponent.relationship");
2429            else if (Configuration.doAutoCreate())
2430              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory()); // bb
2431          return this.relationship;
2432        }
2433
2434        public boolean hasRelationshipElement() { 
2435          return this.relationship != null && !this.relationship.isEmpty();
2436        }
2437
2438        public boolean hasRelationship() { 
2439          return this.relationship != null && !this.relationship.isEmpty();
2440        }
2441
2442        /**
2443         * @param value {@link #relationship} (The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).). This is the underlying object with id, value and extensions. The accessor "getRelationship" gives direct access to the value
2444         */
2445        public TargetElementComponent setRelationshipElement(Enumeration<ConceptMapRelationship> value) { 
2446          this.relationship = value;
2447          return this;
2448        }
2449
2450        /**
2451         * @return The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).
2452         */
2453        public ConceptMapRelationship getRelationship() { 
2454          return this.relationship == null ? null : this.relationship.getValue();
2455        }
2456
2457        /**
2458         * @param value The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).
2459         */
2460        public TargetElementComponent setRelationship(ConceptMapRelationship value) { 
2461            if (this.relationship == null)
2462              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory());
2463            this.relationship.setValue(value);
2464          return this;
2465        }
2466
2467        /**
2468         * @return {@link #comment} (A description of status/issues in mapping that conveys additional information not represented in  the structured data.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
2469         */
2470        public StringType getCommentElement() { 
2471          if (this.comment == null)
2472            if (Configuration.errorOnAutoCreate())
2473              throw new Error("Attempt to auto-create TargetElementComponent.comment");
2474            else if (Configuration.doAutoCreate())
2475              this.comment = new StringType(); // bb
2476          return this.comment;
2477        }
2478
2479        public boolean hasCommentElement() { 
2480          return this.comment != null && !this.comment.isEmpty();
2481        }
2482
2483        public boolean hasComment() { 
2484          return this.comment != null && !this.comment.isEmpty();
2485        }
2486
2487        /**
2488         * @param value {@link #comment} (A description of status/issues in mapping that conveys additional information not represented in  the structured data.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
2489         */
2490        public TargetElementComponent setCommentElement(StringType value) { 
2491          this.comment = value;
2492          return this;
2493        }
2494
2495        /**
2496         * @return A description of status/issues in mapping that conveys additional information not represented in  the structured data.
2497         */
2498        public String getComment() { 
2499          return this.comment == null ? null : this.comment.getValue();
2500        }
2501
2502        /**
2503         * @param value A description of status/issues in mapping that conveys additional information not represented in  the structured data.
2504         */
2505        public TargetElementComponent setComment(String value) { 
2506          if (Utilities.noString(value))
2507            this.comment = null;
2508          else {
2509            if (this.comment == null)
2510              this.comment = new StringType();
2511            this.comment.setValue(value);
2512          }
2513          return this;
2514        }
2515
2516        /**
2517         * @return {@link #property} (A property value for this source -> target mapping.)
2518         */
2519        public List<MappingPropertyComponent> getProperty() { 
2520          if (this.property == null)
2521            this.property = new ArrayList<MappingPropertyComponent>();
2522          return this.property;
2523        }
2524
2525        /**
2526         * @return Returns a reference to <code>this</code> for easy method chaining
2527         */
2528        public TargetElementComponent setProperty(List<MappingPropertyComponent> theProperty) { 
2529          this.property = theProperty;
2530          return this;
2531        }
2532
2533        public boolean hasProperty() { 
2534          if (this.property == null)
2535            return false;
2536          for (MappingPropertyComponent item : this.property)
2537            if (!item.isEmpty())
2538              return true;
2539          return false;
2540        }
2541
2542        public MappingPropertyComponent addProperty() { //3
2543          MappingPropertyComponent t = new MappingPropertyComponent();
2544          if (this.property == null)
2545            this.property = new ArrayList<MappingPropertyComponent>();
2546          this.property.add(t);
2547          return t;
2548        }
2549
2550        public TargetElementComponent addProperty(MappingPropertyComponent t) { //3
2551          if (t == null)
2552            return this;
2553          if (this.property == null)
2554            this.property = new ArrayList<MappingPropertyComponent>();
2555          this.property.add(t);
2556          return this;
2557        }
2558
2559        /**
2560         * @return The first repetition of repeating field {@link #property}, creating it if it does not already exist {3}
2561         */
2562        public MappingPropertyComponent getPropertyFirstRep() { 
2563          if (getProperty().isEmpty()) {
2564            addProperty();
2565          }
2566          return getProperty().get(0);
2567        }
2568
2569        /**
2570         * @return {@link #dependsOn} (A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified data attribute can be resolved, and it has the specified value.)
2571         */
2572        public List<OtherElementComponent> getDependsOn() { 
2573          if (this.dependsOn == null)
2574            this.dependsOn = new ArrayList<OtherElementComponent>();
2575          return this.dependsOn;
2576        }
2577
2578        /**
2579         * @return Returns a reference to <code>this</code> for easy method chaining
2580         */
2581        public TargetElementComponent setDependsOn(List<OtherElementComponent> theDependsOn) { 
2582          this.dependsOn = theDependsOn;
2583          return this;
2584        }
2585
2586        public boolean hasDependsOn() { 
2587          if (this.dependsOn == null)
2588            return false;
2589          for (OtherElementComponent item : this.dependsOn)
2590            if (!item.isEmpty())
2591              return true;
2592          return false;
2593        }
2594
2595        public OtherElementComponent addDependsOn() { //3
2596          OtherElementComponent t = new OtherElementComponent();
2597          if (this.dependsOn == null)
2598            this.dependsOn = new ArrayList<OtherElementComponent>();
2599          this.dependsOn.add(t);
2600          return t;
2601        }
2602
2603        public TargetElementComponent addDependsOn(OtherElementComponent t) { //3
2604          if (t == null)
2605            return this;
2606          if (this.dependsOn == null)
2607            this.dependsOn = new ArrayList<OtherElementComponent>();
2608          this.dependsOn.add(t);
2609          return this;
2610        }
2611
2612        /**
2613         * @return The first repetition of repeating field {@link #dependsOn}, creating it if it does not already exist {3}
2614         */
2615        public OtherElementComponent getDependsOnFirstRep() { 
2616          if (getDependsOn().isEmpty()) {
2617            addDependsOn();
2618          }
2619          return getDependsOn().get(0);
2620        }
2621
2622        /**
2623         * @return {@link #product} (Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data.)
2624         */
2625        public List<OtherElementComponent> getProduct() { 
2626          if (this.product == null)
2627            this.product = new ArrayList<OtherElementComponent>();
2628          return this.product;
2629        }
2630
2631        /**
2632         * @return Returns a reference to <code>this</code> for easy method chaining
2633         */
2634        public TargetElementComponent setProduct(List<OtherElementComponent> theProduct) { 
2635          this.product = theProduct;
2636          return this;
2637        }
2638
2639        public boolean hasProduct() { 
2640          if (this.product == null)
2641            return false;
2642          for (OtherElementComponent item : this.product)
2643            if (!item.isEmpty())
2644              return true;
2645          return false;
2646        }
2647
2648        public OtherElementComponent addProduct() { //3
2649          OtherElementComponent t = new OtherElementComponent();
2650          if (this.product == null)
2651            this.product = new ArrayList<OtherElementComponent>();
2652          this.product.add(t);
2653          return t;
2654        }
2655
2656        public TargetElementComponent addProduct(OtherElementComponent t) { //3
2657          if (t == null)
2658            return this;
2659          if (this.product == null)
2660            this.product = new ArrayList<OtherElementComponent>();
2661          this.product.add(t);
2662          return this;
2663        }
2664
2665        /**
2666         * @return The first repetition of repeating field {@link #product}, creating it if it does not already exist {3}
2667         */
2668        public OtherElementComponent getProductFirstRep() { 
2669          if (getProduct().isEmpty()) {
2670            addProduct();
2671          }
2672          return getProduct().get(0);
2673        }
2674
2675        protected void listChildren(List<Property> children) {
2676          super.listChildren(children);
2677          children.add(new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, 1, code));
2678          children.add(new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display));
2679          children.add(new Property("valueSet", "canonical(ValueSet)", "The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.", 0, 1, valueSet));
2680          children.add(new Property("relationship", "code", "The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).", 0, 1, relationship));
2681          children.add(new Property("comment", "string", "A description of status/issues in mapping that conveys additional information not represented in  the structured data.", 0, 1, comment));
2682          children.add(new Property("property", "", "A property value for this source -> target mapping.", 0, java.lang.Integer.MAX_VALUE, property));
2683          children.add(new Property("dependsOn", "", "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified data attribute can be resolved, and it has the specified value.", 0, java.lang.Integer.MAX_VALUE, dependsOn));
2684          children.add(new Property("product", "@ConceptMap.group.element.target.dependsOn", "Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data.", 0, java.lang.Integer.MAX_VALUE, product));
2685        }
2686
2687        @Override
2688        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2689          switch (_hash) {
2690          case 3059181: /*code*/  return new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, 1, code);
2691          case 1671764162: /*display*/  return new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display);
2692          case -1410174671: /*valueSet*/  return new Property("valueSet", "canonical(ValueSet)", "The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.", 0, 1, valueSet);
2693          case -261851592: /*relationship*/  return new Property("relationship", "code", "The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).", 0, 1, relationship);
2694          case 950398559: /*comment*/  return new Property("comment", "string", "A description of status/issues in mapping that conveys additional information not represented in  the structured data.", 0, 1, comment);
2695          case -993141291: /*property*/  return new Property("property", "", "A property value for this source -> target mapping.", 0, java.lang.Integer.MAX_VALUE, property);
2696          case -1109214266: /*dependsOn*/  return new Property("dependsOn", "", "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified data attribute can be resolved, and it has the specified value.", 0, java.lang.Integer.MAX_VALUE, dependsOn);
2697          case -309474065: /*product*/  return new Property("product", "@ConceptMap.group.element.target.dependsOn", "Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data.", 0, java.lang.Integer.MAX_VALUE, product);
2698          default: return super.getNamedProperty(_hash, _name, _checkValid);
2699          }
2700
2701        }
2702
2703      @Override
2704      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2705        switch (hash) {
2706        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
2707        case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType
2708        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
2709        case -261851592: /*relationship*/ return this.relationship == null ? new Base[0] : new Base[] {this.relationship}; // Enumeration<ConceptMapRelationship>
2710        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType
2711        case -993141291: /*property*/ return this.property == null ? new Base[0] : this.property.toArray(new Base[this.property.size()]); // MappingPropertyComponent
2712        case -1109214266: /*dependsOn*/ return this.dependsOn == null ? new Base[0] : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // OtherElementComponent
2713        case -309474065: /*product*/ return this.product == null ? new Base[0] : this.product.toArray(new Base[this.product.size()]); // OtherElementComponent
2714        default: return super.getProperty(hash, name, checkValid);
2715        }
2716
2717      }
2718
2719      @Override
2720      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2721        switch (hash) {
2722        case 3059181: // code
2723          this.code = TypeConvertor.castToCode(value); // CodeType
2724          return value;
2725        case 1671764162: // display
2726          this.display = TypeConvertor.castToString(value); // StringType
2727          return value;
2728        case -1410174671: // valueSet
2729          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2730          return value;
2731        case -261851592: // relationship
2732          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
2733          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
2734          return value;
2735        case 950398559: // comment
2736          this.comment = TypeConvertor.castToString(value); // StringType
2737          return value;
2738        case -993141291: // property
2739          this.getProperty().add((MappingPropertyComponent) value); // MappingPropertyComponent
2740          return value;
2741        case -1109214266: // dependsOn
2742          this.getDependsOn().add((OtherElementComponent) value); // OtherElementComponent
2743          return value;
2744        case -309474065: // product
2745          this.getProduct().add((OtherElementComponent) value); // OtherElementComponent
2746          return value;
2747        default: return super.setProperty(hash, name, value);
2748        }
2749
2750      }
2751
2752      @Override
2753      public Base setProperty(String name, Base value) throws FHIRException {
2754        if (name.equals("code")) {
2755          this.code = TypeConvertor.castToCode(value); // CodeType
2756        } else if (name.equals("display")) {
2757          this.display = TypeConvertor.castToString(value); // StringType
2758        } else if (name.equals("valueSet")) {
2759          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2760        } else if (name.equals("relationship")) {
2761          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
2762          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
2763        } else if (name.equals("comment")) {
2764          this.comment = TypeConvertor.castToString(value); // StringType
2765        } else if (name.equals("property")) {
2766          this.getProperty().add((MappingPropertyComponent) value);
2767        } else if (name.equals("dependsOn")) {
2768          this.getDependsOn().add((OtherElementComponent) value);
2769        } else if (name.equals("product")) {
2770          this.getProduct().add((OtherElementComponent) value);
2771        } else
2772          return super.setProperty(name, value);
2773        return value;
2774      }
2775
2776      @Override
2777      public Base makeProperty(int hash, String name) throws FHIRException {
2778        switch (hash) {
2779        case 3059181:  return getCodeElement();
2780        case 1671764162:  return getDisplayElement();
2781        case -1410174671:  return getValueSetElement();
2782        case -261851592:  return getRelationshipElement();
2783        case 950398559:  return getCommentElement();
2784        case -993141291:  return addProperty(); 
2785        case -1109214266:  return addDependsOn(); 
2786        case -309474065:  return addProduct(); 
2787        default: return super.makeProperty(hash, name);
2788        }
2789
2790      }
2791
2792      @Override
2793      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2794        switch (hash) {
2795        case 3059181: /*code*/ return new String[] {"code"};
2796        case 1671764162: /*display*/ return new String[] {"string"};
2797        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
2798        case -261851592: /*relationship*/ return new String[] {"code"};
2799        case 950398559: /*comment*/ return new String[] {"string"};
2800        case -993141291: /*property*/ return new String[] {};
2801        case -1109214266: /*dependsOn*/ return new String[] {};
2802        case -309474065: /*product*/ return new String[] {"@ConceptMap.group.element.target.dependsOn"};
2803        default: return super.getTypesForProperty(hash, name);
2804        }
2805
2806      }
2807
2808      @Override
2809      public Base addChild(String name) throws FHIRException {
2810        if (name.equals("code")) {
2811          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.code");
2812        }
2813        else if (name.equals("display")) {
2814          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.display");
2815        }
2816        else if (name.equals("valueSet")) {
2817          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.valueSet");
2818        }
2819        else if (name.equals("relationship")) {
2820          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.relationship");
2821        }
2822        else if (name.equals("comment")) {
2823          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.comment");
2824        }
2825        else if (name.equals("property")) {
2826          return addProperty();
2827        }
2828        else if (name.equals("dependsOn")) {
2829          return addDependsOn();
2830        }
2831        else if (name.equals("product")) {
2832          return addProduct();
2833        }
2834        else
2835          return super.addChild(name);
2836      }
2837
2838      public TargetElementComponent copy() {
2839        TargetElementComponent dst = new TargetElementComponent();
2840        copyValues(dst);
2841        return dst;
2842      }
2843
2844      public void copyValues(TargetElementComponent dst) {
2845        super.copyValues(dst);
2846        dst.code = code == null ? null : code.copy();
2847        dst.display = display == null ? null : display.copy();
2848        dst.valueSet = valueSet == null ? null : valueSet.copy();
2849        dst.relationship = relationship == null ? null : relationship.copy();
2850        dst.comment = comment == null ? null : comment.copy();
2851        if (property != null) {
2852          dst.property = new ArrayList<MappingPropertyComponent>();
2853          for (MappingPropertyComponent i : property)
2854            dst.property.add(i.copy());
2855        };
2856        if (dependsOn != null) {
2857          dst.dependsOn = new ArrayList<OtherElementComponent>();
2858          for (OtherElementComponent i : dependsOn)
2859            dst.dependsOn.add(i.copy());
2860        };
2861        if (product != null) {
2862          dst.product = new ArrayList<OtherElementComponent>();
2863          for (OtherElementComponent i : product)
2864            dst.product.add(i.copy());
2865        };
2866      }
2867
2868      @Override
2869      public boolean equalsDeep(Base other_) {
2870        if (!super.equalsDeep(other_))
2871          return false;
2872        if (!(other_ instanceof TargetElementComponent))
2873          return false;
2874        TargetElementComponent o = (TargetElementComponent) other_;
2875        return compareDeep(code, o.code, true) && compareDeep(display, o.display, true) && compareDeep(valueSet, o.valueSet, true)
2876           && compareDeep(relationship, o.relationship, true) && compareDeep(comment, o.comment, true) && compareDeep(property, o.property, true)
2877           && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(product, o.product, true);
2878      }
2879
2880      @Override
2881      public boolean equalsShallow(Base other_) {
2882        if (!super.equalsShallow(other_))
2883          return false;
2884        if (!(other_ instanceof TargetElementComponent))
2885          return false;
2886        TargetElementComponent o = (TargetElementComponent) other_;
2887        return compareValues(code, o.code, true) && compareValues(display, o.display, true) && compareValues(valueSet, o.valueSet, true)
2888           && compareValues(relationship, o.relationship, true) && compareValues(comment, o.comment, true);
2889      }
2890
2891      public boolean isEmpty() {
2892        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, display, valueSet
2893          , relationship, comment, property, dependsOn, product);
2894      }
2895
2896  public String fhirType() {
2897    return "ConceptMap.group.element.target";
2898
2899  }
2900
2901  }
2902
2903    @Block()
2904    public static class MappingPropertyComponent extends BackboneElement implements IBaseBackboneElement {
2905        /**
2906         * A reference to a mapping property defined in ConceptMap.property.
2907         */
2908        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
2909        @Description(shortDefinition="Reference to ConceptMap.property.code", formalDefinition="A reference to a mapping property defined in ConceptMap.property." )
2910        protected CodeType code;
2911
2912        /**
2913         * The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.
2914         */
2915        @Child(name = "value", type = {Coding.class, StringType.class, IntegerType.class, BooleanType.class, DateTimeType.class, DecimalType.class, CodeType.class}, order=2, min=1, max=1, modifier=false, summary=false)
2916        @Description(shortDefinition="Value of the property for this concept", formalDefinition="The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element." )
2917        protected DataType value;
2918
2919        private static final long serialVersionUID = -422546419L;
2920
2921    /**
2922     * Constructor
2923     */
2924      public MappingPropertyComponent() {
2925        super();
2926      }
2927
2928    /**
2929     * Constructor
2930     */
2931      public MappingPropertyComponent(String code, DataType value) {
2932        super();
2933        this.setCode(code);
2934        this.setValue(value);
2935      }
2936
2937        /**
2938         * @return {@link #code} (A reference to a mapping property defined in ConceptMap.property.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
2939         */
2940        public CodeType getCodeElement() { 
2941          if (this.code == null)
2942            if (Configuration.errorOnAutoCreate())
2943              throw new Error("Attempt to auto-create MappingPropertyComponent.code");
2944            else if (Configuration.doAutoCreate())
2945              this.code = new CodeType(); // bb
2946          return this.code;
2947        }
2948
2949        public boolean hasCodeElement() { 
2950          return this.code != null && !this.code.isEmpty();
2951        }
2952
2953        public boolean hasCode() { 
2954          return this.code != null && !this.code.isEmpty();
2955        }
2956
2957        /**
2958         * @param value {@link #code} (A reference to a mapping property defined in ConceptMap.property.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
2959         */
2960        public MappingPropertyComponent setCodeElement(CodeType value) { 
2961          this.code = value;
2962          return this;
2963        }
2964
2965        /**
2966         * @return A reference to a mapping property defined in ConceptMap.property.
2967         */
2968        public String getCode() { 
2969          return this.code == null ? null : this.code.getValue();
2970        }
2971
2972        /**
2973         * @param value A reference to a mapping property defined in ConceptMap.property.
2974         */
2975        public MappingPropertyComponent setCode(String value) { 
2976            if (this.code == null)
2977              this.code = new CodeType();
2978            this.code.setValue(value);
2979          return this;
2980        }
2981
2982        /**
2983         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
2984         */
2985        public DataType getValue() { 
2986          return this.value;
2987        }
2988
2989        /**
2990         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
2991         */
2992        public Coding getValueCoding() throws FHIRException { 
2993          if (this.value == null)
2994            this.value = new Coding();
2995          if (!(this.value instanceof Coding))
2996            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
2997          return (Coding) this.value;
2998        }
2999
3000        public boolean hasValueCoding() { 
3001          return this != null && this.value instanceof Coding;
3002        }
3003
3004        /**
3005         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
3006         */
3007        public StringType getValueStringType() throws FHIRException { 
3008          if (this.value == null)
3009            this.value = new StringType();
3010          if (!(this.value instanceof StringType))
3011            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
3012          return (StringType) this.value;
3013        }
3014
3015        public boolean hasValueStringType() { 
3016          return this != null && this.value instanceof StringType;
3017        }
3018
3019        /**
3020         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
3021         */
3022        public IntegerType getValueIntegerType() throws FHIRException { 
3023          if (this.value == null)
3024            this.value = new IntegerType();
3025          if (!(this.value instanceof IntegerType))
3026            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
3027          return (IntegerType) this.value;
3028        }
3029
3030        public boolean hasValueIntegerType() { 
3031          return this != null && this.value instanceof IntegerType;
3032        }
3033
3034        /**
3035         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
3036         */
3037        public BooleanType getValueBooleanType() throws FHIRException { 
3038          if (this.value == null)
3039            this.value = new BooleanType();
3040          if (!(this.value instanceof BooleanType))
3041            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
3042          return (BooleanType) this.value;
3043        }
3044
3045        public boolean hasValueBooleanType() { 
3046          return this != null && this.value instanceof BooleanType;
3047        }
3048
3049        /**
3050         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
3051         */
3052        public DateTimeType getValueDateTimeType() throws FHIRException { 
3053          if (this.value == null)
3054            this.value = new DateTimeType();
3055          if (!(this.value instanceof DateTimeType))
3056            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered");
3057          return (DateTimeType) this.value;
3058        }
3059
3060        public boolean hasValueDateTimeType() { 
3061          return this != null && this.value instanceof DateTimeType;
3062        }
3063
3064        /**
3065         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
3066         */
3067        public DecimalType getValueDecimalType() throws FHIRException { 
3068          if (this.value == null)
3069            this.value = new DecimalType();
3070          if (!(this.value instanceof DecimalType))
3071            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered");
3072          return (DecimalType) this.value;
3073        }
3074
3075        public boolean hasValueDecimalType() { 
3076          return this != null && this.value instanceof DecimalType;
3077        }
3078
3079        /**
3080         * @return {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
3081         */
3082        public CodeType getValueCodeType() throws FHIRException { 
3083          if (this.value == null)
3084            this.value = new CodeType();
3085          if (!(this.value instanceof CodeType))
3086            throw new FHIRException("Type mismatch: the type CodeType was expected, but "+this.value.getClass().getName()+" was encountered");
3087          return (CodeType) this.value;
3088        }
3089
3090        public boolean hasValueCodeType() { 
3091          return this != null && this.value instanceof CodeType;
3092        }
3093
3094        public boolean hasValue() { 
3095          return this.value != null && !this.value.isEmpty();
3096        }
3097
3098        /**
3099         * @param value {@link #value} (The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.)
3100         */
3101        public MappingPropertyComponent setValue(DataType value) { 
3102          if (value != null && !(value instanceof Coding || value instanceof StringType || value instanceof IntegerType || value instanceof BooleanType || value instanceof DateTimeType || value instanceof DecimalType || value instanceof CodeType))
3103            throw new FHIRException("Not the right type for ConceptMap.group.element.target.property.value[x]: "+value.fhirType());
3104          this.value = value;
3105          return this;
3106        }
3107
3108        protected void listChildren(List<Property> children) {
3109          super.listChildren(children);
3110          children.add(new Property("code", "code", "A reference to a mapping property defined in ConceptMap.property.", 0, 1, code));
3111          children.add(new Property("value[x]", "Coding|string|integer|boolean|dateTime|decimal|code", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value));
3112        }
3113
3114        @Override
3115        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3116          switch (_hash) {
3117          case 3059181: /*code*/  return new Property("code", "code", "A reference to a mapping property defined in ConceptMap.property.", 0, 1, code);
3118          case -1410166417: /*value[x]*/  return new Property("value[x]", "Coding|string|integer|boolean|dateTime|decimal|code", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3119          case 111972721: /*value*/  return new Property("value[x]", "Coding|string|integer|boolean|dateTime|decimal|code", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3120          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3121          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3122          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3123          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3124          case 1047929900: /*valueDateTime*/  return new Property("value[x]", "dateTime", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3125          case -2083993440: /*valueDecimal*/  return new Property("value[x]", "decimal", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3126          case -766209282: /*valueCode*/  return new Property("value[x]", "code", "The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.", 0, 1, value);
3127          default: return super.getNamedProperty(_hash, _name, _checkValid);
3128          }
3129
3130        }
3131
3132      @Override
3133      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3134        switch (hash) {
3135        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
3136        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3137        default: return super.getProperty(hash, name, checkValid);
3138        }
3139
3140      }
3141
3142      @Override
3143      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3144        switch (hash) {
3145        case 3059181: // code
3146          this.code = TypeConvertor.castToCode(value); // CodeType
3147          return value;
3148        case 111972721: // value
3149          this.value = TypeConvertor.castToType(value); // DataType
3150          return value;
3151        default: return super.setProperty(hash, name, value);
3152        }
3153
3154      }
3155
3156      @Override
3157      public Base setProperty(String name, Base value) throws FHIRException {
3158        if (name.equals("code")) {
3159          this.code = TypeConvertor.castToCode(value); // CodeType
3160        } else if (name.equals("value[x]")) {
3161          this.value = TypeConvertor.castToType(value); // DataType
3162        } else
3163          return super.setProperty(name, value);
3164        return value;
3165      }
3166
3167      @Override
3168      public Base makeProperty(int hash, String name) throws FHIRException {
3169        switch (hash) {
3170        case 3059181:  return getCodeElement();
3171        case -1410166417:  return getValue();
3172        case 111972721:  return getValue();
3173        default: return super.makeProperty(hash, name);
3174        }
3175
3176      }
3177
3178      @Override
3179      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3180        switch (hash) {
3181        case 3059181: /*code*/ return new String[] {"code"};
3182        case 111972721: /*value*/ return new String[] {"Coding", "string", "integer", "boolean", "dateTime", "decimal", "code"};
3183        default: return super.getTypesForProperty(hash, name);
3184        }
3185
3186      }
3187
3188      @Override
3189      public Base addChild(String name) throws FHIRException {
3190        if (name.equals("code")) {
3191          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.property.code");
3192        }
3193        else if (name.equals("valueCoding")) {
3194          this.value = new Coding();
3195          return this.value;
3196        }
3197        else if (name.equals("valueString")) {
3198          this.value = new StringType();
3199          return this.value;
3200        }
3201        else if (name.equals("valueInteger")) {
3202          this.value = new IntegerType();
3203          return this.value;
3204        }
3205        else if (name.equals("valueBoolean")) {
3206          this.value = new BooleanType();
3207          return this.value;
3208        }
3209        else if (name.equals("valueDateTime")) {
3210          this.value = new DateTimeType();
3211          return this.value;
3212        }
3213        else if (name.equals("valueDecimal")) {
3214          this.value = new DecimalType();
3215          return this.value;
3216        }
3217        else if (name.equals("valueCode")) {
3218          this.value = new CodeType();
3219          return this.value;
3220        }
3221        else
3222          return super.addChild(name);
3223      }
3224
3225      public MappingPropertyComponent copy() {
3226        MappingPropertyComponent dst = new MappingPropertyComponent();
3227        copyValues(dst);
3228        return dst;
3229      }
3230
3231      public void copyValues(MappingPropertyComponent dst) {
3232        super.copyValues(dst);
3233        dst.code = code == null ? null : code.copy();
3234        dst.value = value == null ? null : value.copy();
3235      }
3236
3237      @Override
3238      public boolean equalsDeep(Base other_) {
3239        if (!super.equalsDeep(other_))
3240          return false;
3241        if (!(other_ instanceof MappingPropertyComponent))
3242          return false;
3243        MappingPropertyComponent o = (MappingPropertyComponent) other_;
3244        return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
3245      }
3246
3247      @Override
3248      public boolean equalsShallow(Base other_) {
3249        if (!super.equalsShallow(other_))
3250          return false;
3251        if (!(other_ instanceof MappingPropertyComponent))
3252          return false;
3253        MappingPropertyComponent o = (MappingPropertyComponent) other_;
3254        return compareValues(code, o.code, true);
3255      }
3256
3257      public boolean isEmpty() {
3258        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
3259      }
3260
3261  public String fhirType() {
3262    return "ConceptMap.group.element.target.property";
3263
3264  }
3265
3266  }
3267
3268    @Block()
3269    public static class OtherElementComponent extends BackboneElement implements IBaseBackboneElement {
3270        /**
3271         * A reference to the additional attribute that holds a value the map depends on.
3272         */
3273        @Child(name = "attribute", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
3274        @Description(shortDefinition="A reference to a mapping attribute defined in ConceptMap.additionalAttribute", formalDefinition="A reference to the additional attribute that holds a value the map depends on." )
3275        protected CodeType attribute;
3276
3277        /**
3278         * Data element value that the map depends on / produces.
3279         */
3280        @Child(name = "value", type = {CodeType.class, Coding.class, StringType.class, BooleanType.class, Quantity.class}, order=2, min=0, max=1, modifier=false, summary=false)
3281        @Description(shortDefinition="Value of the referenced data element", formalDefinition="Data element value that the map depends on / produces." )
3282        protected DataType value;
3283
3284        /**
3285         * This mapping applies if the data element value is a code from this value set.
3286         */
3287        @Child(name = "valueSet", type = {CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
3288        @Description(shortDefinition="The mapping depends on a data element with a value from this value set", formalDefinition="This mapping applies if the data element value is a code from this value set." )
3289        protected CanonicalType valueSet;
3290
3291        private static final long serialVersionUID = 2103818133L;
3292
3293    /**
3294     * Constructor
3295     */
3296      public OtherElementComponent() {
3297        super();
3298      }
3299
3300    /**
3301     * Constructor
3302     */
3303      public OtherElementComponent(String attribute) {
3304        super();
3305        this.setAttribute(attribute);
3306      }
3307
3308        /**
3309         * @return {@link #attribute} (A reference to the additional attribute that holds a value the map depends on.). This is the underlying object with id, value and extensions. The accessor "getAttribute" gives direct access to the value
3310         */
3311        public CodeType getAttributeElement() { 
3312          if (this.attribute == null)
3313            if (Configuration.errorOnAutoCreate())
3314              throw new Error("Attempt to auto-create OtherElementComponent.attribute");
3315            else if (Configuration.doAutoCreate())
3316              this.attribute = new CodeType(); // bb
3317          return this.attribute;
3318        }
3319
3320        public boolean hasAttributeElement() { 
3321          return this.attribute != null && !this.attribute.isEmpty();
3322        }
3323
3324        public boolean hasAttribute() { 
3325          return this.attribute != null && !this.attribute.isEmpty();
3326        }
3327
3328        /**
3329         * @param value {@link #attribute} (A reference to the additional attribute that holds a value the map depends on.). This is the underlying object with id, value and extensions. The accessor "getAttribute" gives direct access to the value
3330         */
3331        public OtherElementComponent setAttributeElement(CodeType value) { 
3332          this.attribute = value;
3333          return this;
3334        }
3335
3336        /**
3337         * @return A reference to the additional attribute that holds a value the map depends on.
3338         */
3339        public String getAttribute() { 
3340          return this.attribute == null ? null : this.attribute.getValue();
3341        }
3342
3343        /**
3344         * @param value A reference to the additional attribute that holds a value the map depends on.
3345         */
3346        public OtherElementComponent setAttribute(String value) { 
3347            if (this.attribute == null)
3348              this.attribute = new CodeType();
3349            this.attribute.setValue(value);
3350          return this;
3351        }
3352
3353        /**
3354         * @return {@link #value} (Data element value that the map depends on / produces.)
3355         */
3356        public DataType getValue() { 
3357          return this.value;
3358        }
3359
3360        /**
3361         * @return {@link #value} (Data element value that the map depends on / produces.)
3362         */
3363        public CodeType getValueCodeType() throws FHIRException { 
3364          if (this.value == null)
3365            this.value = new CodeType();
3366          if (!(this.value instanceof CodeType))
3367            throw new FHIRException("Type mismatch: the type CodeType was expected, but "+this.value.getClass().getName()+" was encountered");
3368          return (CodeType) this.value;
3369        }
3370
3371        public boolean hasValueCodeType() { 
3372          return this != null && this.value instanceof CodeType;
3373        }
3374
3375        /**
3376         * @return {@link #value} (Data element value that the map depends on / produces.)
3377         */
3378        public Coding getValueCoding() throws FHIRException { 
3379          if (this.value == null)
3380            this.value = new Coding();
3381          if (!(this.value instanceof Coding))
3382            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
3383          return (Coding) this.value;
3384        }
3385
3386        public boolean hasValueCoding() { 
3387          return this != null && this.value instanceof Coding;
3388        }
3389
3390        /**
3391         * @return {@link #value} (Data element value that the map depends on / produces.)
3392         */
3393        public StringType getValueStringType() throws FHIRException { 
3394          if (this.value == null)
3395            this.value = new StringType();
3396          if (!(this.value instanceof StringType))
3397            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
3398          return (StringType) this.value;
3399        }
3400
3401        public boolean hasValueStringType() { 
3402          return this != null && this.value instanceof StringType;
3403        }
3404
3405        /**
3406         * @return {@link #value} (Data element value that the map depends on / produces.)
3407         */
3408        public BooleanType getValueBooleanType() throws FHIRException { 
3409          if (this.value == null)
3410            this.value = new BooleanType();
3411          if (!(this.value instanceof BooleanType))
3412            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
3413          return (BooleanType) this.value;
3414        }
3415
3416        public boolean hasValueBooleanType() { 
3417          return this != null && this.value instanceof BooleanType;
3418        }
3419
3420        /**
3421         * @return {@link #value} (Data element value that the map depends on / produces.)
3422         */
3423        public Quantity getValueQuantity() throws FHIRException { 
3424          if (this.value == null)
3425            this.value = new Quantity();
3426          if (!(this.value instanceof Quantity))
3427            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered");
3428          return (Quantity) this.value;
3429        }
3430
3431        public boolean hasValueQuantity() { 
3432          return this != null && this.value instanceof Quantity;
3433        }
3434
3435        public boolean hasValue() { 
3436          return this.value != null && !this.value.isEmpty();
3437        }
3438
3439        /**
3440         * @param value {@link #value} (Data element value that the map depends on / produces.)
3441         */
3442        public OtherElementComponent setValue(DataType value) { 
3443          if (value != null && !(value instanceof CodeType || value instanceof Coding || value instanceof StringType || value instanceof BooleanType || value instanceof Quantity))
3444            throw new FHIRException("Not the right type for ConceptMap.group.element.target.dependsOn.value[x]: "+value.fhirType());
3445          this.value = value;
3446          return this;
3447        }
3448
3449        /**
3450         * @return {@link #valueSet} (This mapping applies if the data element value is a code from this value set.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
3451         */
3452        public CanonicalType getValueSetElement() { 
3453          if (this.valueSet == null)
3454            if (Configuration.errorOnAutoCreate())
3455              throw new Error("Attempt to auto-create OtherElementComponent.valueSet");
3456            else if (Configuration.doAutoCreate())
3457              this.valueSet = new CanonicalType(); // bb
3458          return this.valueSet;
3459        }
3460
3461        public boolean hasValueSetElement() { 
3462          return this.valueSet != null && !this.valueSet.isEmpty();
3463        }
3464
3465        public boolean hasValueSet() { 
3466          return this.valueSet != null && !this.valueSet.isEmpty();
3467        }
3468
3469        /**
3470         * @param value {@link #valueSet} (This mapping applies if the data element value is a code from this value set.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
3471         */
3472        public OtherElementComponent setValueSetElement(CanonicalType value) { 
3473          this.valueSet = value;
3474          return this;
3475        }
3476
3477        /**
3478         * @return This mapping applies if the data element value is a code from this value set.
3479         */
3480        public String getValueSet() { 
3481          return this.valueSet == null ? null : this.valueSet.getValue();
3482        }
3483
3484        /**
3485         * @param value This mapping applies if the data element value is a code from this value set.
3486         */
3487        public OtherElementComponent setValueSet(String value) { 
3488          if (Utilities.noString(value))
3489            this.valueSet = null;
3490          else {
3491            if (this.valueSet == null)
3492              this.valueSet = new CanonicalType();
3493            this.valueSet.setValue(value);
3494          }
3495          return this;
3496        }
3497
3498        protected void listChildren(List<Property> children) {
3499          super.listChildren(children);
3500          children.add(new Property("attribute", "code", "A reference to the additional attribute that holds a value the map depends on.", 0, 1, attribute));
3501          children.add(new Property("value[x]", "code|Coding|string|boolean|Quantity", "Data element value that the map depends on / produces.", 0, 1, value));
3502          children.add(new Property("valueSet", "canonical(ValueSet)", "This mapping applies if the data element value is a code from this value set.", 0, 1, valueSet));
3503        }
3504
3505        @Override
3506        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3507          switch (_hash) {
3508          case 13085340: /*attribute*/  return new Property("attribute", "code", "A reference to the additional attribute that holds a value the map depends on.", 0, 1, attribute);
3509          case -1410166417: /*value[x]*/  return new Property("value[x]", "code|Coding|string|boolean|Quantity", "Data element value that the map depends on / produces.", 0, 1, value);
3510          case 111972721: /*value*/  return new Property("value[x]", "code|Coding|string|boolean|Quantity", "Data element value that the map depends on / produces.", 0, 1, value);
3511          case -766209282: /*valueCode*/  return new Property("value[x]", "code", "Data element value that the map depends on / produces.", 0, 1, value);
3512          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "Data element value that the map depends on / produces.", 0, 1, value);
3513          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "Data element value that the map depends on / produces.", 0, 1, value);
3514          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "Data element value that the map depends on / produces.", 0, 1, value);
3515          case -2029823716: /*valueQuantity*/  return new Property("value[x]", "Quantity", "Data element value that the map depends on / produces.", 0, 1, value);
3516          case -1410174671: /*valueSet*/  return new Property("valueSet", "canonical(ValueSet)", "This mapping applies if the data element value is a code from this value set.", 0, 1, valueSet);
3517          default: return super.getNamedProperty(_hash, _name, _checkValid);
3518          }
3519
3520        }
3521
3522      @Override
3523      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3524        switch (hash) {
3525        case 13085340: /*attribute*/ return this.attribute == null ? new Base[0] : new Base[] {this.attribute}; // CodeType
3526        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3527        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
3528        default: return super.getProperty(hash, name, checkValid);
3529        }
3530
3531      }
3532
3533      @Override
3534      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3535        switch (hash) {
3536        case 13085340: // attribute
3537          this.attribute = TypeConvertor.castToCode(value); // CodeType
3538          return value;
3539        case 111972721: // value
3540          this.value = TypeConvertor.castToType(value); // DataType
3541          return value;
3542        case -1410174671: // valueSet
3543          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
3544          return value;
3545        default: return super.setProperty(hash, name, value);
3546        }
3547
3548      }
3549
3550      @Override
3551      public Base setProperty(String name, Base value) throws FHIRException {
3552        if (name.equals("attribute")) {
3553          this.attribute = TypeConvertor.castToCode(value); // CodeType
3554        } else if (name.equals("value[x]")) {
3555          this.value = TypeConvertor.castToType(value); // DataType
3556        } else if (name.equals("valueSet")) {
3557          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
3558        } else
3559          return super.setProperty(name, value);
3560        return value;
3561      }
3562
3563      @Override
3564      public Base makeProperty(int hash, String name) throws FHIRException {
3565        switch (hash) {
3566        case 13085340:  return getAttributeElement();
3567        case -1410166417:  return getValue();
3568        case 111972721:  return getValue();
3569        case -1410174671:  return getValueSetElement();
3570        default: return super.makeProperty(hash, name);
3571        }
3572
3573      }
3574
3575      @Override
3576      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3577        switch (hash) {
3578        case 13085340: /*attribute*/ return new String[] {"code"};
3579        case 111972721: /*value*/ return new String[] {"code", "Coding", "string", "boolean", "Quantity"};
3580        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
3581        default: return super.getTypesForProperty(hash, name);
3582        }
3583
3584      }
3585
3586      @Override
3587      public Base addChild(String name) throws FHIRException {
3588        if (name.equals("attribute")) {
3589          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.dependsOn.attribute");
3590        }
3591        else if (name.equals("valueCode")) {
3592          this.value = new CodeType();
3593          return this.value;
3594        }
3595        else if (name.equals("valueCoding")) {
3596          this.value = new Coding();
3597          return this.value;
3598        }
3599        else if (name.equals("valueString")) {
3600          this.value = new StringType();
3601          return this.value;
3602        }
3603        else if (name.equals("valueBoolean")) {
3604          this.value = new BooleanType();
3605          return this.value;
3606        }
3607        else if (name.equals("valueQuantity")) {
3608          this.value = new Quantity();
3609          return this.value;
3610        }
3611        else if (name.equals("valueSet")) {
3612          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.dependsOn.valueSet");
3613        }
3614        else
3615          return super.addChild(name);
3616      }
3617
3618      public OtherElementComponent copy() {
3619        OtherElementComponent dst = new OtherElementComponent();
3620        copyValues(dst);
3621        return dst;
3622      }
3623
3624      public void copyValues(OtherElementComponent dst) {
3625        super.copyValues(dst);
3626        dst.attribute = attribute == null ? null : attribute.copy();
3627        dst.value = value == null ? null : value.copy();
3628        dst.valueSet = valueSet == null ? null : valueSet.copy();
3629      }
3630
3631      @Override
3632      public boolean equalsDeep(Base other_) {
3633        if (!super.equalsDeep(other_))
3634          return false;
3635        if (!(other_ instanceof OtherElementComponent))
3636          return false;
3637        OtherElementComponent o = (OtherElementComponent) other_;
3638        return compareDeep(attribute, o.attribute, true) && compareDeep(value, o.value, true) && compareDeep(valueSet, o.valueSet, true)
3639          ;
3640      }
3641
3642      @Override
3643      public boolean equalsShallow(Base other_) {
3644        if (!super.equalsShallow(other_))
3645          return false;
3646        if (!(other_ instanceof OtherElementComponent))
3647          return false;
3648        OtherElementComponent o = (OtherElementComponent) other_;
3649        return compareValues(attribute, o.attribute, true) && compareValues(valueSet, o.valueSet, true);
3650      }
3651
3652      public boolean isEmpty() {
3653        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(attribute, value, valueSet
3654          );
3655      }
3656
3657  public String fhirType() {
3658    return "ConceptMap.group.element.target.dependsOn";
3659
3660  }
3661
3662  }
3663
3664    @Block()
3665    public static class ConceptMapGroupUnmappedComponent extends BackboneElement implements IBaseBackboneElement {
3666        /**
3667         * Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).
3668         */
3669        @Child(name = "mode", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
3670        @Description(shortDefinition="use-source-code | fixed | other-map", formalDefinition="Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL)." )
3671        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/conceptmap-unmapped-mode")
3672        protected Enumeration<ConceptMapGroupUnmappedMode> mode;
3673
3674        /**
3675         * The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.
3676         */
3677        @Child(name = "code", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
3678        @Description(shortDefinition="Fixed code when mode = fixed", formalDefinition="The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code." )
3679        protected CodeType code;
3680
3681        /**
3682         * The display for the code. The display is only provided to help editors when editing the concept map.
3683         */
3684        @Child(name = "display", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
3685        @Description(shortDefinition="Display for the code", formalDefinition="The display for the code. The display is only provided to help editors when editing the concept map." )
3686        protected StringType display;
3687
3688        /**
3689         * The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.
3690         */
3691        @Child(name = "valueSet", type = {CanonicalType.class}, order=4, min=0, max=1, modifier=false, summary=false)
3692        @Description(shortDefinition="Fixed code set when mode = fixed", formalDefinition="The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes." )
3693        protected CanonicalType valueSet;
3694
3695        /**
3696         * The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.
3697         */
3698        @Child(name = "relationship", type = {CodeType.class}, order=5, min=0, max=1, modifier=true, summary=false)
3699        @Description(shortDefinition="related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to", formalDefinition="The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'." )
3700        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/concept-map-relationship")
3701        protected Enumeration<ConceptMapRelationship> relationship;
3702
3703        /**
3704         * The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.
3705         */
3706        @Child(name = "otherMap", type = {CanonicalType.class}, order=6, min=0, max=1, modifier=false, summary=false)
3707        @Description(shortDefinition="canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped", formalDefinition="The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept." )
3708        protected CanonicalType otherMap;
3709
3710        private static final long serialVersionUID = 449945387L;
3711
3712    /**
3713     * Constructor
3714     */
3715      public ConceptMapGroupUnmappedComponent() {
3716        super();
3717      }
3718
3719    /**
3720     * Constructor
3721     */
3722      public ConceptMapGroupUnmappedComponent(ConceptMapGroupUnmappedMode mode) {
3723        super();
3724        this.setMode(mode);
3725      }
3726
3727        /**
3728         * @return {@link #mode} (Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
3729         */
3730        public Enumeration<ConceptMapGroupUnmappedMode> getModeElement() { 
3731          if (this.mode == null)
3732            if (Configuration.errorOnAutoCreate())
3733              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.mode");
3734            else if (Configuration.doAutoCreate())
3735              this.mode = new Enumeration<ConceptMapGroupUnmappedMode>(new ConceptMapGroupUnmappedModeEnumFactory()); // bb
3736          return this.mode;
3737        }
3738
3739        public boolean hasModeElement() { 
3740          return this.mode != null && !this.mode.isEmpty();
3741        }
3742
3743        public boolean hasMode() { 
3744          return this.mode != null && !this.mode.isEmpty();
3745        }
3746
3747        /**
3748         * @param value {@link #mode} (Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
3749         */
3750        public ConceptMapGroupUnmappedComponent setModeElement(Enumeration<ConceptMapGroupUnmappedMode> value) { 
3751          this.mode = value;
3752          return this;
3753        }
3754
3755        /**
3756         * @return Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).
3757         */
3758        public ConceptMapGroupUnmappedMode getMode() { 
3759          return this.mode == null ? null : this.mode.getValue();
3760        }
3761
3762        /**
3763         * @param value Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).
3764         */
3765        public ConceptMapGroupUnmappedComponent setMode(ConceptMapGroupUnmappedMode value) { 
3766            if (this.mode == null)
3767              this.mode = new Enumeration<ConceptMapGroupUnmappedMode>(new ConceptMapGroupUnmappedModeEnumFactory());
3768            this.mode.setValue(value);
3769          return this;
3770        }
3771
3772        /**
3773         * @return {@link #code} (The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
3774         */
3775        public CodeType getCodeElement() { 
3776          if (this.code == null)
3777            if (Configuration.errorOnAutoCreate())
3778              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.code");
3779            else if (Configuration.doAutoCreate())
3780              this.code = new CodeType(); // bb
3781          return this.code;
3782        }
3783
3784        public boolean hasCodeElement() { 
3785          return this.code != null && !this.code.isEmpty();
3786        }
3787
3788        public boolean hasCode() { 
3789          return this.code != null && !this.code.isEmpty();
3790        }
3791
3792        /**
3793         * @param value {@link #code} (The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
3794         */
3795        public ConceptMapGroupUnmappedComponent setCodeElement(CodeType value) { 
3796          this.code = value;
3797          return this;
3798        }
3799
3800        /**
3801         * @return The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.
3802         */
3803        public String getCode() { 
3804          return this.code == null ? null : this.code.getValue();
3805        }
3806
3807        /**
3808         * @param value The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.
3809         */
3810        public ConceptMapGroupUnmappedComponent setCode(String value) { 
3811          if (Utilities.noString(value))
3812            this.code = null;
3813          else {
3814            if (this.code == null)
3815              this.code = new CodeType();
3816            this.code.setValue(value);
3817          }
3818          return this;
3819        }
3820
3821        /**
3822         * @return {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value
3823         */
3824        public StringType getDisplayElement() { 
3825          if (this.display == null)
3826            if (Configuration.errorOnAutoCreate())
3827              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.display");
3828            else if (Configuration.doAutoCreate())
3829              this.display = new StringType(); // bb
3830          return this.display;
3831        }
3832
3833        public boolean hasDisplayElement() { 
3834          return this.display != null && !this.display.isEmpty();
3835        }
3836
3837        public boolean hasDisplay() { 
3838          return this.display != null && !this.display.isEmpty();
3839        }
3840
3841        /**
3842         * @param value {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value
3843         */
3844        public ConceptMapGroupUnmappedComponent setDisplayElement(StringType value) { 
3845          this.display = value;
3846          return this;
3847        }
3848
3849        /**
3850         * @return The display for the code. The display is only provided to help editors when editing the concept map.
3851         */
3852        public String getDisplay() { 
3853          return this.display == null ? null : this.display.getValue();
3854        }
3855
3856        /**
3857         * @param value The display for the code. The display is only provided to help editors when editing the concept map.
3858         */
3859        public ConceptMapGroupUnmappedComponent setDisplay(String value) { 
3860          if (Utilities.noString(value))
3861            this.display = null;
3862          else {
3863            if (this.display == null)
3864              this.display = new StringType();
3865            this.display.setValue(value);
3866          }
3867          return this;
3868        }
3869
3870        /**
3871         * @return {@link #valueSet} (The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
3872         */
3873        public CanonicalType getValueSetElement() { 
3874          if (this.valueSet == null)
3875            if (Configuration.errorOnAutoCreate())
3876              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.valueSet");
3877            else if (Configuration.doAutoCreate())
3878              this.valueSet = new CanonicalType(); // bb
3879          return this.valueSet;
3880        }
3881
3882        public boolean hasValueSetElement() { 
3883          return this.valueSet != null && !this.valueSet.isEmpty();
3884        }
3885
3886        public boolean hasValueSet() { 
3887          return this.valueSet != null && !this.valueSet.isEmpty();
3888        }
3889
3890        /**
3891         * @param value {@link #valueSet} (The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
3892         */
3893        public ConceptMapGroupUnmappedComponent setValueSetElement(CanonicalType value) { 
3894          this.valueSet = value;
3895          return this;
3896        }
3897
3898        /**
3899         * @return The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.
3900         */
3901        public String getValueSet() { 
3902          return this.valueSet == null ? null : this.valueSet.getValue();
3903        }
3904
3905        /**
3906         * @param value The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.
3907         */
3908        public ConceptMapGroupUnmappedComponent setValueSet(String value) { 
3909          if (Utilities.noString(value))
3910            this.valueSet = null;
3911          else {
3912            if (this.valueSet == null)
3913              this.valueSet = new CanonicalType();
3914            this.valueSet.setValue(value);
3915          }
3916          return this;
3917        }
3918
3919        /**
3920         * @return {@link #relationship} (The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.). This is the underlying object with id, value and extensions. The accessor "getRelationship" gives direct access to the value
3921         */
3922        public Enumeration<ConceptMapRelationship> getRelationshipElement() { 
3923          if (this.relationship == null)
3924            if (Configuration.errorOnAutoCreate())
3925              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.relationship");
3926            else if (Configuration.doAutoCreate())
3927              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory()); // bb
3928          return this.relationship;
3929        }
3930
3931        public boolean hasRelationshipElement() { 
3932          return this.relationship != null && !this.relationship.isEmpty();
3933        }
3934
3935        public boolean hasRelationship() { 
3936          return this.relationship != null && !this.relationship.isEmpty();
3937        }
3938
3939        /**
3940         * @param value {@link #relationship} (The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.). This is the underlying object with id, value and extensions. The accessor "getRelationship" gives direct access to the value
3941         */
3942        public ConceptMapGroupUnmappedComponent setRelationshipElement(Enumeration<ConceptMapRelationship> value) { 
3943          this.relationship = value;
3944          return this;
3945        }
3946
3947        /**
3948         * @return The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.
3949         */
3950        public ConceptMapRelationship getRelationship() { 
3951          return this.relationship == null ? null : this.relationship.getValue();
3952        }
3953
3954        /**
3955         * @param value The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.
3956         */
3957        public ConceptMapGroupUnmappedComponent setRelationship(ConceptMapRelationship value) { 
3958          if (value == null)
3959            this.relationship = null;
3960          else {
3961            if (this.relationship == null)
3962              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory());
3963            this.relationship.setValue(value);
3964          }
3965          return this;
3966        }
3967
3968        /**
3969         * @return {@link #otherMap} (The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.). This is the underlying object with id, value and extensions. The accessor "getOtherMap" gives direct access to the value
3970         */
3971        public CanonicalType getOtherMapElement() { 
3972          if (this.otherMap == null)
3973            if (Configuration.errorOnAutoCreate())
3974              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.otherMap");
3975            else if (Configuration.doAutoCreate())
3976              this.otherMap = new CanonicalType(); // bb
3977          return this.otherMap;
3978        }
3979
3980        public boolean hasOtherMapElement() { 
3981          return this.otherMap != null && !this.otherMap.isEmpty();
3982        }
3983
3984        public boolean hasOtherMap() { 
3985          return this.otherMap != null && !this.otherMap.isEmpty();
3986        }
3987
3988        /**
3989         * @param value {@link #otherMap} (The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.). This is the underlying object with id, value and extensions. The accessor "getOtherMap" gives direct access to the value
3990         */
3991        public ConceptMapGroupUnmappedComponent setOtherMapElement(CanonicalType value) { 
3992          this.otherMap = value;
3993          return this;
3994        }
3995
3996        /**
3997         * @return The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.
3998         */
3999        public String getOtherMap() { 
4000          return this.otherMap == null ? null : this.otherMap.getValue();
4001        }
4002
4003        /**
4004         * @param value The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.
4005         */
4006        public ConceptMapGroupUnmappedComponent setOtherMap(String value) { 
4007          if (Utilities.noString(value))
4008            this.otherMap = null;
4009          else {
4010            if (this.otherMap == null)
4011              this.otherMap = new CanonicalType();
4012            this.otherMap.setValue(value);
4013          }
4014          return this;
4015        }
4016
4017        protected void listChildren(List<Property> children) {
4018          super.listChildren(children);
4019          children.add(new Property("mode", "code", "Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).", 0, 1, mode));
4020          children.add(new Property("code", "code", "The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.", 0, 1, code));
4021          children.add(new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display));
4022          children.add(new Property("valueSet", "canonical(ValueSet)", "The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.", 0, 1, valueSet));
4023          children.add(new Property("relationship", "code", "The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.", 0, 1, relationship));
4024          children.add(new Property("otherMap", "canonical(ConceptMap)", "The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.", 0, 1, otherMap));
4025        }
4026
4027        @Override
4028        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
4029          switch (_hash) {
4030          case 3357091: /*mode*/  return new Property("mode", "code", "Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).", 0, 1, mode);
4031          case 3059181: /*code*/  return new Property("code", "code", "The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.", 0, 1, code);
4032          case 1671764162: /*display*/  return new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display);
4033          case -1410174671: /*valueSet*/  return new Property("valueSet", "canonical(ValueSet)", "The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.", 0, 1, valueSet);
4034          case -261851592: /*relationship*/  return new Property("relationship", "code", "The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.", 0, 1, relationship);
4035          case -1171155924: /*otherMap*/  return new Property("otherMap", "canonical(ConceptMap)", "The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.", 0, 1, otherMap);
4036          default: return super.getNamedProperty(_hash, _name, _checkValid);
4037          }
4038
4039        }
4040
4041      @Override
4042      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
4043        switch (hash) {
4044        case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<ConceptMapGroupUnmappedMode>
4045        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
4046        case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType
4047        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
4048        case -261851592: /*relationship*/ return this.relationship == null ? new Base[0] : new Base[] {this.relationship}; // Enumeration<ConceptMapRelationship>
4049        case -1171155924: /*otherMap*/ return this.otherMap == null ? new Base[0] : new Base[] {this.otherMap}; // CanonicalType
4050        default: return super.getProperty(hash, name, checkValid);
4051        }
4052
4053      }
4054
4055      @Override
4056      public Base setProperty(int hash, String name, Base value) throws FHIRException {
4057        switch (hash) {
4058        case 3357091: // mode
4059          value = new ConceptMapGroupUnmappedModeEnumFactory().fromType(TypeConvertor.castToCode(value));
4060          this.mode = (Enumeration) value; // Enumeration<ConceptMapGroupUnmappedMode>
4061          return value;
4062        case 3059181: // code
4063          this.code = TypeConvertor.castToCode(value); // CodeType
4064          return value;
4065        case 1671764162: // display
4066          this.display = TypeConvertor.castToString(value); // StringType
4067          return value;
4068        case -1410174671: // valueSet
4069          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
4070          return value;
4071        case -261851592: // relationship
4072          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
4073          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
4074          return value;
4075        case -1171155924: // otherMap
4076          this.otherMap = TypeConvertor.castToCanonical(value); // CanonicalType
4077          return value;
4078        default: return super.setProperty(hash, name, value);
4079        }
4080
4081      }
4082
4083      @Override
4084      public Base setProperty(String name, Base value) throws FHIRException {
4085        if (name.equals("mode")) {
4086          value = new ConceptMapGroupUnmappedModeEnumFactory().fromType(TypeConvertor.castToCode(value));
4087          this.mode = (Enumeration) value; // Enumeration<ConceptMapGroupUnmappedMode>
4088        } else if (name.equals("code")) {
4089          this.code = TypeConvertor.castToCode(value); // CodeType
4090        } else if (name.equals("display")) {
4091          this.display = TypeConvertor.castToString(value); // StringType
4092        } else if (name.equals("valueSet")) {
4093          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
4094        } else if (name.equals("relationship")) {
4095          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
4096          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
4097        } else if (name.equals("otherMap")) {
4098          this.otherMap = TypeConvertor.castToCanonical(value); // CanonicalType
4099        } else
4100          return super.setProperty(name, value);
4101        return value;
4102      }
4103
4104      @Override
4105      public Base makeProperty(int hash, String name) throws FHIRException {
4106        switch (hash) {
4107        case 3357091:  return getModeElement();
4108        case 3059181:  return getCodeElement();
4109        case 1671764162:  return getDisplayElement();
4110        case -1410174671:  return getValueSetElement();
4111        case -261851592:  return getRelationshipElement();
4112        case -1171155924:  return getOtherMapElement();
4113        default: return super.makeProperty(hash, name);
4114        }
4115
4116      }
4117
4118      @Override
4119      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
4120        switch (hash) {
4121        case 3357091: /*mode*/ return new String[] {"code"};
4122        case 3059181: /*code*/ return new String[] {"code"};
4123        case 1671764162: /*display*/ return new String[] {"string"};
4124        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
4125        case -261851592: /*relationship*/ return new String[] {"code"};
4126        case -1171155924: /*otherMap*/ return new String[] {"canonical"};
4127        default: return super.getTypesForProperty(hash, name);
4128        }
4129
4130      }
4131
4132      @Override
4133      public Base addChild(String name) throws FHIRException {
4134        if (name.equals("mode")) {
4135          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.mode");
4136        }
4137        else if (name.equals("code")) {
4138          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.code");
4139        }
4140        else if (name.equals("display")) {
4141          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.display");
4142        }
4143        else if (name.equals("valueSet")) {
4144          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.valueSet");
4145        }
4146        else if (name.equals("relationship")) {
4147          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.relationship");
4148        }
4149        else if (name.equals("otherMap")) {
4150          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.otherMap");
4151        }
4152        else
4153          return super.addChild(name);
4154      }
4155
4156      public ConceptMapGroupUnmappedComponent copy() {
4157        ConceptMapGroupUnmappedComponent dst = new ConceptMapGroupUnmappedComponent();
4158        copyValues(dst);
4159        return dst;
4160      }
4161
4162      public void copyValues(ConceptMapGroupUnmappedComponent dst) {
4163        super.copyValues(dst);
4164        dst.mode = mode == null ? null : mode.copy();
4165        dst.code = code == null ? null : code.copy();
4166        dst.display = display == null ? null : display.copy();
4167        dst.valueSet = valueSet == null ? null : valueSet.copy();
4168        dst.relationship = relationship == null ? null : relationship.copy();
4169        dst.otherMap = otherMap == null ? null : otherMap.copy();
4170      }
4171
4172      @Override
4173      public boolean equalsDeep(Base other_) {
4174        if (!super.equalsDeep(other_))
4175          return false;
4176        if (!(other_ instanceof ConceptMapGroupUnmappedComponent))
4177          return false;
4178        ConceptMapGroupUnmappedComponent o = (ConceptMapGroupUnmappedComponent) other_;
4179        return compareDeep(mode, o.mode, true) && compareDeep(code, o.code, true) && compareDeep(display, o.display, true)
4180           && compareDeep(valueSet, o.valueSet, true) && compareDeep(relationship, o.relationship, true) && compareDeep(otherMap, o.otherMap, true)
4181          ;
4182      }
4183
4184      @Override
4185      public boolean equalsShallow(Base other_) {
4186        if (!super.equalsShallow(other_))
4187          return false;
4188        if (!(other_ instanceof ConceptMapGroupUnmappedComponent))
4189          return false;
4190        ConceptMapGroupUnmappedComponent o = (ConceptMapGroupUnmappedComponent) other_;
4191        return compareValues(mode, o.mode, true) && compareValues(code, o.code, true) && compareValues(display, o.display, true)
4192           && compareValues(valueSet, o.valueSet, true) && compareValues(relationship, o.relationship, true) && compareValues(otherMap, o.otherMap, true)
4193          ;
4194      }
4195
4196      public boolean isEmpty() {
4197        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(mode, code, display, valueSet
4198          , relationship, otherMap);
4199      }
4200
4201  public String fhirType() {
4202    return "ConceptMap.group.unmapped";
4203
4204  }
4205
4206  }
4207
4208    /**
4209     * An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.
4210     */
4211    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
4212    @Description(shortDefinition="Canonical identifier for this concept map, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers." )
4213    protected UriType url;
4214
4215    /**
4216     * A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.
4217     */
4218    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4219    @Description(shortDefinition="Additional identifier for the concept map", formalDefinition="A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance." )
4220    protected List<Identifier> identifier;
4221
4222    /**
4223     * The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
4224     */
4225    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
4226    @Description(shortDefinition="Business version of the concept map", formalDefinition="The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence." )
4227    protected StringType version;
4228
4229    /**
4230     * Indicates the mechanism used to compare versions to determine which ConceptMap is more current.
4231     */
4232    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
4233    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which ConceptMap is more current." )
4234    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
4235    protected DataType versionAlgorithm;
4236
4237    /**
4238     * A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.
4239     */
4240    @Child(name = "name", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
4241    @Description(shortDefinition="Name for this concept map (computer friendly)", formalDefinition="A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
4242    protected StringType name;
4243
4244    /**
4245     * A short, descriptive, user-friendly title for the concept map.
4246     */
4247    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
4248    @Description(shortDefinition="Name for this concept map (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the concept map." )
4249    protected StringType title;
4250
4251    /**
4252     * The status of this concept map. Enables tracking the life-cycle of the content.
4253     */
4254    @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
4255    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this concept map. Enables tracking the life-cycle of the content." )
4256    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
4257    protected Enumeration<PublicationStatus> status;
4258
4259    /**
4260     * A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
4261     */
4262    @Child(name = "experimental", type = {BooleanType.class}, order=7, min=0, max=1, modifier=false, summary=true)
4263    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
4264    protected BooleanType experimental;
4265
4266    /**
4267     * The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.
4268     */
4269    @Child(name = "date", type = {DateTimeType.class}, order=8, min=0, max=1, modifier=false, summary=true)
4270    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes." )
4271    protected DateTimeType date;
4272
4273    /**
4274     * The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.
4275     */
4276    @Child(name = "publisher", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true)
4277    @Description(shortDefinition="Name of the publisher/steward (organization or individual)", formalDefinition="The name of the organization or individual responsible for the release and ongoing maintenance of the concept map." )
4278    protected StringType publisher;
4279
4280    /**
4281     * Contact details to assist a user in finding and communicating with the publisher.
4282     */
4283    @Child(name = "contact", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4284    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
4285    protected List<ContactDetail> contact;
4286
4287    /**
4288     * A free text natural language description of the concept map from a consumer's perspective.
4289     */
4290    @Child(name = "description", type = {MarkdownType.class}, order=11, min=0, max=1, modifier=false, summary=false)
4291    @Description(shortDefinition="Natural language description of the concept map", formalDefinition="A free text natural language description of the concept map from a consumer's perspective." )
4292    protected MarkdownType description;
4293
4294    /**
4295     * 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 concept map instances.
4296     */
4297    @Child(name = "useContext", type = {UsageContext.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4298    @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 concept map instances." )
4299    protected List<UsageContext> useContext;
4300
4301    /**
4302     * A legal or geographic region in which the concept map is intended to be used.
4303     */
4304    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4305    @Description(shortDefinition="Intended jurisdiction for concept map (if applicable)", formalDefinition="A legal or geographic region in which the concept map is intended to be used." )
4306    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
4307    protected List<CodeableConcept> jurisdiction;
4308
4309    /**
4310     * Explanation of why this concept map is needed and why it has been designed as it has.
4311     */
4312    @Child(name = "purpose", type = {MarkdownType.class}, order=14, min=0, max=1, modifier=false, summary=false)
4313    @Description(shortDefinition="Why this concept map is defined", formalDefinition="Explanation of why this concept map is needed and why it has been designed as it has." )
4314    protected MarkdownType purpose;
4315
4316    /**
4317     * A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.
4318     */
4319    @Child(name = "copyright", type = {MarkdownType.class}, order=15, min=0, max=1, modifier=false, summary=false)
4320    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map." )
4321    protected MarkdownType copyright;
4322
4323    /**
4324     * A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
4325     */
4326    @Child(name = "copyrightLabel", type = {StringType.class}, order=16, min=0, max=1, modifier=false, summary=false)
4327    @Description(shortDefinition="Copyright holder and year(s)", formalDefinition="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')." )
4328    protected StringType copyrightLabel;
4329
4330    /**
4331     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
4332     */
4333    @Child(name = "approvalDate", type = {DateType.class}, order=17, min=0, max=1, modifier=false, summary=false)
4334    @Description(shortDefinition="When the ConceptMap was approved by publisher", formalDefinition="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage." )
4335    protected DateType approvalDate;
4336
4337    /**
4338     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
4339     */
4340    @Child(name = "lastReviewDate", type = {DateType.class}, order=18, min=0, max=1, modifier=false, summary=false)
4341    @Description(shortDefinition="When the ConceptMap was last reviewed by the publisher", formalDefinition="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date." )
4342    protected DateType lastReviewDate;
4343
4344    /**
4345     * The period during which the ConceptMap content was or is planned to be in active use.
4346     */
4347    @Child(name = "effectivePeriod", type = {Period.class}, order=19, min=0, max=1, modifier=false, summary=true)
4348    @Description(shortDefinition="When the ConceptMap is expected to be used", formalDefinition="The period during which the ConceptMap content was or is planned to be in active use." )
4349    protected Period effectivePeriod;
4350
4351    /**
4352     * Descriptions related to the content of the ConceptMap. Topics provide a high-level categorization as well as keywords for the ConceptMap that can be useful for filtering and searching.
4353     */
4354    @Child(name = "topic", type = {CodeableConcept.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4355    @Description(shortDefinition="E.g. Education, Treatment, Assessment, etc", formalDefinition="Descriptions related to the content of the ConceptMap. Topics provide a high-level categorization as well as keywords for the ConceptMap that can be useful for filtering and searching." )
4356    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic")
4357    protected List<CodeableConcept> topic;
4358
4359    /**
4360     * An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.
4361     */
4362    @Child(name = "author", type = {ContactDetail.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4363    @Description(shortDefinition="Who authored the ConceptMap", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the ConceptMap." )
4364    protected List<ContactDetail> author;
4365
4366    /**
4367     * An individual or organization primarily responsible for internal coherence of the ConceptMap.
4368     */
4369    @Child(name = "editor", type = {ContactDetail.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4370    @Description(shortDefinition="Who edited the ConceptMap", formalDefinition="An individual or organization primarily responsible for internal coherence of the ConceptMap." )
4371    protected List<ContactDetail> editor;
4372
4373    /**
4374     * An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.
4375     */
4376    @Child(name = "reviewer", type = {ContactDetail.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4377    @Description(shortDefinition="Who reviewed the ConceptMap", formalDefinition="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap." )
4378    protected List<ContactDetail> reviewer;
4379
4380    /**
4381     * An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.
4382     */
4383    @Child(name = "endorser", type = {ContactDetail.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4384    @Description(shortDefinition="Who endorsed the ConceptMap", formalDefinition="An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting." )
4385    protected List<ContactDetail> endorser;
4386
4387    /**
4388     * Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.
4389     */
4390    @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4391    @Description(shortDefinition="Additional documentation, citations, etc", formalDefinition="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts." )
4392    protected List<RelatedArtifact> relatedArtifact;
4393
4394    /**
4395     * A property defines a slot through which additional information can be provided about a map from source -> target.
4396     */
4397    @Child(name = "property", type = {}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4398    @Description(shortDefinition="Additional properties of the mapping", formalDefinition="A property defines a slot through which additional information can be provided about a map from source -> target." )
4399    protected List<PropertyComponent> property;
4400
4401    /**
4402     * An additionalAttribute defines an additional data element found in the source or target data model where the data will come from or be mapped to. Some mappings are based on data in addition to the source data element, where codes in multiple fields are combined to a single field (or vice versa).
4403     */
4404    @Child(name = "additionalAttribute", type = {}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4405    @Description(shortDefinition="Definition of an additional attribute to act as a data source or target", formalDefinition="An additionalAttribute defines an additional data element found in the source or target data model where the data will come from or be mapped to. Some mappings are based on data in addition to the source data element, where codes in multiple fields are combined to a single field (or vice versa)." )
4406    protected List<AdditionalAttributeComponent> additionalAttribute;
4407
4408    /**
4409     * Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.
4410     */
4411    @Child(name = "sourceScope", type = {UriType.class, CanonicalType.class}, order=28, min=0, max=1, modifier=false, summary=true)
4412    @Description(shortDefinition="The source value set that contains the concepts that are being mapped", formalDefinition="Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set." )
4413    protected DataType sourceScope;
4414
4415    /**
4416     * Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.
4417     */
4418    @Child(name = "targetScope", type = {UriType.class, CanonicalType.class}, order=29, min=0, max=1, modifier=false, summary=true)
4419    @Description(shortDefinition="The target value set which provides context for the mappings", formalDefinition="Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set." )
4420    protected DataType targetScope;
4421
4422    /**
4423     * A group of mappings that all have the same source and target system.
4424     */
4425    @Child(name = "group", type = {}, order=30, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4426    @Description(shortDefinition="Same source and target systems", formalDefinition="A group of mappings that all have the same source and target system." )
4427    protected List<ConceptMapGroupComponent> group;
4428
4429    private static final long serialVersionUID = 1990005194L;
4430
4431  /**
4432   * Constructor
4433   */
4434    public ConceptMap() {
4435      super();
4436    }
4437
4438  /**
4439   * Constructor
4440   */
4441    public ConceptMap(PublicationStatus status) {
4442      super();
4443      this.setStatus(status);
4444    }
4445
4446    /**
4447     * @return {@link #url} (An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
4448     */
4449    public UriType getUrlElement() { 
4450      if (this.url == null)
4451        if (Configuration.errorOnAutoCreate())
4452          throw new Error("Attempt to auto-create ConceptMap.url");
4453        else if (Configuration.doAutoCreate())
4454          this.url = new UriType(); // bb
4455      return this.url;
4456    }
4457
4458    public boolean hasUrlElement() { 
4459      return this.url != null && !this.url.isEmpty();
4460    }
4461
4462    public boolean hasUrl() { 
4463      return this.url != null && !this.url.isEmpty();
4464    }
4465
4466    /**
4467     * @param value {@link #url} (An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
4468     */
4469    public ConceptMap setUrlElement(UriType value) { 
4470      this.url = value;
4471      return this;
4472    }
4473
4474    /**
4475     * @return An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.
4476     */
4477    public String getUrl() { 
4478      return this.url == null ? null : this.url.getValue();
4479    }
4480
4481    /**
4482     * @param value An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.
4483     */
4484    public ConceptMap setUrl(String value) { 
4485      if (Utilities.noString(value))
4486        this.url = null;
4487      else {
4488        if (this.url == null)
4489          this.url = new UriType();
4490        this.url.setValue(value);
4491      }
4492      return this;
4493    }
4494
4495    /**
4496     * @return {@link #identifier} (A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.)
4497     */
4498    public List<Identifier> getIdentifier() { 
4499      if (this.identifier == null)
4500        this.identifier = new ArrayList<Identifier>();
4501      return this.identifier;
4502    }
4503
4504    /**
4505     * @return Returns a reference to <code>this</code> for easy method chaining
4506     */
4507    public ConceptMap setIdentifier(List<Identifier> theIdentifier) { 
4508      this.identifier = theIdentifier;
4509      return this;
4510    }
4511
4512    public boolean hasIdentifier() { 
4513      if (this.identifier == null)
4514        return false;
4515      for (Identifier item : this.identifier)
4516        if (!item.isEmpty())
4517          return true;
4518      return false;
4519    }
4520
4521    public Identifier addIdentifier() { //3
4522      Identifier t = new Identifier();
4523      if (this.identifier == null)
4524        this.identifier = new ArrayList<Identifier>();
4525      this.identifier.add(t);
4526      return t;
4527    }
4528
4529    public ConceptMap addIdentifier(Identifier t) { //3
4530      if (t == null)
4531        return this;
4532      if (this.identifier == null)
4533        this.identifier = new ArrayList<Identifier>();
4534      this.identifier.add(t);
4535      return this;
4536    }
4537
4538    /**
4539     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
4540     */
4541    public Identifier getIdentifierFirstRep() { 
4542      if (getIdentifier().isEmpty()) {
4543        addIdentifier();
4544      }
4545      return getIdentifier().get(0);
4546    }
4547
4548    /**
4549     * @return {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
4550     */
4551    public StringType getVersionElement() { 
4552      if (this.version == null)
4553        if (Configuration.errorOnAutoCreate())
4554          throw new Error("Attempt to auto-create ConceptMap.version");
4555        else if (Configuration.doAutoCreate())
4556          this.version = new StringType(); // bb
4557      return this.version;
4558    }
4559
4560    public boolean hasVersionElement() { 
4561      return this.version != null && !this.version.isEmpty();
4562    }
4563
4564    public boolean hasVersion() { 
4565      return this.version != null && !this.version.isEmpty();
4566    }
4567
4568    /**
4569     * @param value {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
4570     */
4571    public ConceptMap setVersionElement(StringType value) { 
4572      this.version = value;
4573      return this;
4574    }
4575
4576    /**
4577     * @return The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
4578     */
4579    public String getVersion() { 
4580      return this.version == null ? null : this.version.getValue();
4581    }
4582
4583    /**
4584     * @param value The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
4585     */
4586    public ConceptMap setVersion(String value) { 
4587      if (Utilities.noString(value))
4588        this.version = null;
4589      else {
4590        if (this.version == null)
4591          this.version = new StringType();
4592        this.version.setValue(value);
4593      }
4594      return this;
4595    }
4596
4597    /**
4598     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4599     */
4600    public DataType getVersionAlgorithm() { 
4601      return this.versionAlgorithm;
4602    }
4603
4604    /**
4605     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4606     */
4607    public StringType getVersionAlgorithmStringType() throws FHIRException { 
4608      if (this.versionAlgorithm == null)
4609        this.versionAlgorithm = new StringType();
4610      if (!(this.versionAlgorithm instanceof StringType))
4611        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
4612      return (StringType) this.versionAlgorithm;
4613    }
4614
4615    public boolean hasVersionAlgorithmStringType() { 
4616      return this != null && this.versionAlgorithm instanceof StringType;
4617    }
4618
4619    /**
4620     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4621     */
4622    public Coding getVersionAlgorithmCoding() throws FHIRException { 
4623      if (this.versionAlgorithm == null)
4624        this.versionAlgorithm = new Coding();
4625      if (!(this.versionAlgorithm instanceof Coding))
4626        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
4627      return (Coding) this.versionAlgorithm;
4628    }
4629
4630    public boolean hasVersionAlgorithmCoding() { 
4631      return this != null && this.versionAlgorithm instanceof Coding;
4632    }
4633
4634    public boolean hasVersionAlgorithm() { 
4635      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
4636    }
4637
4638    /**
4639     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4640     */
4641    public ConceptMap setVersionAlgorithm(DataType value) { 
4642      if (value != null && !(value instanceof StringType || value instanceof Coding))
4643        throw new FHIRException("Not the right type for ConceptMap.versionAlgorithm[x]: "+value.fhirType());
4644      this.versionAlgorithm = value;
4645      return this;
4646    }
4647
4648    /**
4649     * @return {@link #name} (A natural language name identifying the concept map. 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
4650     */
4651    public StringType getNameElement() { 
4652      if (this.name == null)
4653        if (Configuration.errorOnAutoCreate())
4654          throw new Error("Attempt to auto-create ConceptMap.name");
4655        else if (Configuration.doAutoCreate())
4656          this.name = new StringType(); // bb
4657      return this.name;
4658    }
4659
4660    public boolean hasNameElement() { 
4661      return this.name != null && !this.name.isEmpty();
4662    }
4663
4664    public boolean hasName() { 
4665      return this.name != null && !this.name.isEmpty();
4666    }
4667
4668    /**
4669     * @param value {@link #name} (A natural language name identifying the concept map. 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
4670     */
4671    public ConceptMap setNameElement(StringType value) { 
4672      this.name = value;
4673      return this;
4674    }
4675
4676    /**
4677     * @return A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.
4678     */
4679    public String getName() { 
4680      return this.name == null ? null : this.name.getValue();
4681    }
4682
4683    /**
4684     * @param value A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.
4685     */
4686    public ConceptMap setName(String value) { 
4687      if (Utilities.noString(value))
4688        this.name = null;
4689      else {
4690        if (this.name == null)
4691          this.name = new StringType();
4692        this.name.setValue(value);
4693      }
4694      return this;
4695    }
4696
4697    /**
4698     * @return {@link #title} (A short, descriptive, user-friendly title for the concept map.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
4699     */
4700    public StringType getTitleElement() { 
4701      if (this.title == null)
4702        if (Configuration.errorOnAutoCreate())
4703          throw new Error("Attempt to auto-create ConceptMap.title");
4704        else if (Configuration.doAutoCreate())
4705          this.title = new StringType(); // bb
4706      return this.title;
4707    }
4708
4709    public boolean hasTitleElement() { 
4710      return this.title != null && !this.title.isEmpty();
4711    }
4712
4713    public boolean hasTitle() { 
4714      return this.title != null && !this.title.isEmpty();
4715    }
4716
4717    /**
4718     * @param value {@link #title} (A short, descriptive, user-friendly title for the concept map.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
4719     */
4720    public ConceptMap setTitleElement(StringType value) { 
4721      this.title = value;
4722      return this;
4723    }
4724
4725    /**
4726     * @return A short, descriptive, user-friendly title for the concept map.
4727     */
4728    public String getTitle() { 
4729      return this.title == null ? null : this.title.getValue();
4730    }
4731
4732    /**
4733     * @param value A short, descriptive, user-friendly title for the concept map.
4734     */
4735    public ConceptMap setTitle(String value) { 
4736      if (Utilities.noString(value))
4737        this.title = null;
4738      else {
4739        if (this.title == null)
4740          this.title = new StringType();
4741        this.title.setValue(value);
4742      }
4743      return this;
4744    }
4745
4746    /**
4747     * @return {@link #status} (The status of this concept map. 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
4748     */
4749    public Enumeration<PublicationStatus> getStatusElement() { 
4750      if (this.status == null)
4751        if (Configuration.errorOnAutoCreate())
4752          throw new Error("Attempt to auto-create ConceptMap.status");
4753        else if (Configuration.doAutoCreate())
4754          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
4755      return this.status;
4756    }
4757
4758    public boolean hasStatusElement() { 
4759      return this.status != null && !this.status.isEmpty();
4760    }
4761
4762    public boolean hasStatus() { 
4763      return this.status != null && !this.status.isEmpty();
4764    }
4765
4766    /**
4767     * @param value {@link #status} (The status of this concept map. 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
4768     */
4769    public ConceptMap setStatusElement(Enumeration<PublicationStatus> value) { 
4770      this.status = value;
4771      return this;
4772    }
4773
4774    /**
4775     * @return The status of this concept map. Enables tracking the life-cycle of the content.
4776     */
4777    public PublicationStatus getStatus() { 
4778      return this.status == null ? null : this.status.getValue();
4779    }
4780
4781    /**
4782     * @param value The status of this concept map. Enables tracking the life-cycle of the content.
4783     */
4784    public ConceptMap setStatus(PublicationStatus value) { 
4785        if (this.status == null)
4786          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
4787        this.status.setValue(value);
4788      return this;
4789    }
4790
4791    /**
4792     * @return {@link #experimental} (A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
4793     */
4794    public BooleanType getExperimentalElement() { 
4795      if (this.experimental == null)
4796        if (Configuration.errorOnAutoCreate())
4797          throw new Error("Attempt to auto-create ConceptMap.experimental");
4798        else if (Configuration.doAutoCreate())
4799          this.experimental = new BooleanType(); // bb
4800      return this.experimental;
4801    }
4802
4803    public boolean hasExperimentalElement() { 
4804      return this.experimental != null && !this.experimental.isEmpty();
4805    }
4806
4807    public boolean hasExperimental() { 
4808      return this.experimental != null && !this.experimental.isEmpty();
4809    }
4810
4811    /**
4812     * @param value {@link #experimental} (A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
4813     */
4814    public ConceptMap setExperimentalElement(BooleanType value) { 
4815      this.experimental = value;
4816      return this;
4817    }
4818
4819    /**
4820     * @return A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
4821     */
4822    public boolean getExperimental() { 
4823      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
4824    }
4825
4826    /**
4827     * @param value A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
4828     */
4829    public ConceptMap setExperimental(boolean value) { 
4830        if (this.experimental == null)
4831          this.experimental = new BooleanType();
4832        this.experimental.setValue(value);
4833      return this;
4834    }
4835
4836    /**
4837     * @return {@link #date} (The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
4838     */
4839    public DateTimeType getDateElement() { 
4840      if (this.date == null)
4841        if (Configuration.errorOnAutoCreate())
4842          throw new Error("Attempt to auto-create ConceptMap.date");
4843        else if (Configuration.doAutoCreate())
4844          this.date = new DateTimeType(); // bb
4845      return this.date;
4846    }
4847
4848    public boolean hasDateElement() { 
4849      return this.date != null && !this.date.isEmpty();
4850    }
4851
4852    public boolean hasDate() { 
4853      return this.date != null && !this.date.isEmpty();
4854    }
4855
4856    /**
4857     * @param value {@link #date} (The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
4858     */
4859    public ConceptMap setDateElement(DateTimeType value) { 
4860      this.date = value;
4861      return this;
4862    }
4863
4864    /**
4865     * @return The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.
4866     */
4867    public Date getDate() { 
4868      return this.date == null ? null : this.date.getValue();
4869    }
4870
4871    /**
4872     * @param value The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.
4873     */
4874    public ConceptMap setDate(Date value) { 
4875      if (value == null)
4876        this.date = null;
4877      else {
4878        if (this.date == null)
4879          this.date = new DateTimeType();
4880        this.date.setValue(value);
4881      }
4882      return this;
4883    }
4884
4885    /**
4886     * @return {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4887     */
4888    public StringType getPublisherElement() { 
4889      if (this.publisher == null)
4890        if (Configuration.errorOnAutoCreate())
4891          throw new Error("Attempt to auto-create ConceptMap.publisher");
4892        else if (Configuration.doAutoCreate())
4893          this.publisher = new StringType(); // bb
4894      return this.publisher;
4895    }
4896
4897    public boolean hasPublisherElement() { 
4898      return this.publisher != null && !this.publisher.isEmpty();
4899    }
4900
4901    public boolean hasPublisher() { 
4902      return this.publisher != null && !this.publisher.isEmpty();
4903    }
4904
4905    /**
4906     * @param value {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4907     */
4908    public ConceptMap setPublisherElement(StringType value) { 
4909      this.publisher = value;
4910      return this;
4911    }
4912
4913    /**
4914     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.
4915     */
4916    public String getPublisher() { 
4917      return this.publisher == null ? null : this.publisher.getValue();
4918    }
4919
4920    /**
4921     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.
4922     */
4923    public ConceptMap setPublisher(String value) { 
4924      if (Utilities.noString(value))
4925        this.publisher = null;
4926      else {
4927        if (this.publisher == null)
4928          this.publisher = new StringType();
4929        this.publisher.setValue(value);
4930      }
4931      return this;
4932    }
4933
4934    /**
4935     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
4936     */
4937    public List<ContactDetail> getContact() { 
4938      if (this.contact == null)
4939        this.contact = new ArrayList<ContactDetail>();
4940      return this.contact;
4941    }
4942
4943    /**
4944     * @return Returns a reference to <code>this</code> for easy method chaining
4945     */
4946    public ConceptMap setContact(List<ContactDetail> theContact) { 
4947      this.contact = theContact;
4948      return this;
4949    }
4950
4951    public boolean hasContact() { 
4952      if (this.contact == null)
4953        return false;
4954      for (ContactDetail item : this.contact)
4955        if (!item.isEmpty())
4956          return true;
4957      return false;
4958    }
4959
4960    public ContactDetail addContact() { //3
4961      ContactDetail t = new ContactDetail();
4962      if (this.contact == null)
4963        this.contact = new ArrayList<ContactDetail>();
4964      this.contact.add(t);
4965      return t;
4966    }
4967
4968    public ConceptMap addContact(ContactDetail t) { //3
4969      if (t == null)
4970        return this;
4971      if (this.contact == null)
4972        this.contact = new ArrayList<ContactDetail>();
4973      this.contact.add(t);
4974      return this;
4975    }
4976
4977    /**
4978     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
4979     */
4980    public ContactDetail getContactFirstRep() { 
4981      if (getContact().isEmpty()) {
4982        addContact();
4983      }
4984      return getContact().get(0);
4985    }
4986
4987    /**
4988     * @return {@link #description} (A free text natural language description of the concept map from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4989     */
4990    public MarkdownType getDescriptionElement() { 
4991      if (this.description == null)
4992        if (Configuration.errorOnAutoCreate())
4993          throw new Error("Attempt to auto-create ConceptMap.description");
4994        else if (Configuration.doAutoCreate())
4995          this.description = new MarkdownType(); // bb
4996      return this.description;
4997    }
4998
4999    public boolean hasDescriptionElement() { 
5000      return this.description != null && !this.description.isEmpty();
5001    }
5002
5003    public boolean hasDescription() { 
5004      return this.description != null && !this.description.isEmpty();
5005    }
5006
5007    /**
5008     * @param value {@link #description} (A free text natural language description of the concept map from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
5009     */
5010    public ConceptMap setDescriptionElement(MarkdownType value) { 
5011      this.description = value;
5012      return this;
5013    }
5014
5015    /**
5016     * @return A free text natural language description of the concept map from a consumer's perspective.
5017     */
5018    public String getDescription() { 
5019      return this.description == null ? null : this.description.getValue();
5020    }
5021
5022    /**
5023     * @param value A free text natural language description of the concept map from a consumer's perspective.
5024     */
5025    public ConceptMap setDescription(String value) { 
5026      if (Utilities.noString(value))
5027        this.description = null;
5028      else {
5029        if (this.description == null)
5030          this.description = new MarkdownType();
5031        this.description.setValue(value);
5032      }
5033      return this;
5034    }
5035
5036    /**
5037     * @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 concept map instances.)
5038     */
5039    public List<UsageContext> getUseContext() { 
5040      if (this.useContext == null)
5041        this.useContext = new ArrayList<UsageContext>();
5042      return this.useContext;
5043    }
5044
5045    /**
5046     * @return Returns a reference to <code>this</code> for easy method chaining
5047     */
5048    public ConceptMap setUseContext(List<UsageContext> theUseContext) { 
5049      this.useContext = theUseContext;
5050      return this;
5051    }
5052
5053    public boolean hasUseContext() { 
5054      if (this.useContext == null)
5055        return false;
5056      for (UsageContext item : this.useContext)
5057        if (!item.isEmpty())
5058          return true;
5059      return false;
5060    }
5061
5062    public UsageContext addUseContext() { //3
5063      UsageContext t = new UsageContext();
5064      if (this.useContext == null)
5065        this.useContext = new ArrayList<UsageContext>();
5066      this.useContext.add(t);
5067      return t;
5068    }
5069
5070    public ConceptMap addUseContext(UsageContext t) { //3
5071      if (t == null)
5072        return this;
5073      if (this.useContext == null)
5074        this.useContext = new ArrayList<UsageContext>();
5075      this.useContext.add(t);
5076      return this;
5077    }
5078
5079    /**
5080     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
5081     */
5082    public UsageContext getUseContextFirstRep() { 
5083      if (getUseContext().isEmpty()) {
5084        addUseContext();
5085      }
5086      return getUseContext().get(0);
5087    }
5088
5089    /**
5090     * @return {@link #jurisdiction} (A legal or geographic region in which the concept map is intended to be used.)
5091     */
5092    public List<CodeableConcept> getJurisdiction() { 
5093      if (this.jurisdiction == null)
5094        this.jurisdiction = new ArrayList<CodeableConcept>();
5095      return this.jurisdiction;
5096    }
5097
5098    /**
5099     * @return Returns a reference to <code>this</code> for easy method chaining
5100     */
5101    public ConceptMap setJurisdiction(List<CodeableConcept> theJurisdiction) { 
5102      this.jurisdiction = theJurisdiction;
5103      return this;
5104    }
5105
5106    public boolean hasJurisdiction() { 
5107      if (this.jurisdiction == null)
5108        return false;
5109      for (CodeableConcept item : this.jurisdiction)
5110        if (!item.isEmpty())
5111          return true;
5112      return false;
5113    }
5114
5115    public CodeableConcept addJurisdiction() { //3
5116      CodeableConcept t = new CodeableConcept();
5117      if (this.jurisdiction == null)
5118        this.jurisdiction = new ArrayList<CodeableConcept>();
5119      this.jurisdiction.add(t);
5120      return t;
5121    }
5122
5123    public ConceptMap addJurisdiction(CodeableConcept t) { //3
5124      if (t == null)
5125        return this;
5126      if (this.jurisdiction == null)
5127        this.jurisdiction = new ArrayList<CodeableConcept>();
5128      this.jurisdiction.add(t);
5129      return this;
5130    }
5131
5132    /**
5133     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
5134     */
5135    public CodeableConcept getJurisdictionFirstRep() { 
5136      if (getJurisdiction().isEmpty()) {
5137        addJurisdiction();
5138      }
5139      return getJurisdiction().get(0);
5140    }
5141
5142    /**
5143     * @return {@link #purpose} (Explanation of why this concept map is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
5144     */
5145    public MarkdownType getPurposeElement() { 
5146      if (this.purpose == null)
5147        if (Configuration.errorOnAutoCreate())
5148          throw new Error("Attempt to auto-create ConceptMap.purpose");
5149        else if (Configuration.doAutoCreate())
5150          this.purpose = new MarkdownType(); // bb
5151      return this.purpose;
5152    }
5153
5154    public boolean hasPurposeElement() { 
5155      return this.purpose != null && !this.purpose.isEmpty();
5156    }
5157
5158    public boolean hasPurpose() { 
5159      return this.purpose != null && !this.purpose.isEmpty();
5160    }
5161
5162    /**
5163     * @param value {@link #purpose} (Explanation of why this concept map is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
5164     */
5165    public ConceptMap setPurposeElement(MarkdownType value) { 
5166      this.purpose = value;
5167      return this;
5168    }
5169
5170    /**
5171     * @return Explanation of why this concept map is needed and why it has been designed as it has.
5172     */
5173    public String getPurpose() { 
5174      return this.purpose == null ? null : this.purpose.getValue();
5175    }
5176
5177    /**
5178     * @param value Explanation of why this concept map is needed and why it has been designed as it has.
5179     */
5180    public ConceptMap setPurpose(String value) { 
5181      if (Utilities.noString(value))
5182        this.purpose = null;
5183      else {
5184        if (this.purpose == null)
5185          this.purpose = new MarkdownType();
5186        this.purpose.setValue(value);
5187      }
5188      return this;
5189    }
5190
5191    /**
5192     * @return {@link #copyright} (A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
5193     */
5194    public MarkdownType getCopyrightElement() { 
5195      if (this.copyright == null)
5196        if (Configuration.errorOnAutoCreate())
5197          throw new Error("Attempt to auto-create ConceptMap.copyright");
5198        else if (Configuration.doAutoCreate())
5199          this.copyright = new MarkdownType(); // bb
5200      return this.copyright;
5201    }
5202
5203    public boolean hasCopyrightElement() { 
5204      return this.copyright != null && !this.copyright.isEmpty();
5205    }
5206
5207    public boolean hasCopyright() { 
5208      return this.copyright != null && !this.copyright.isEmpty();
5209    }
5210
5211    /**
5212     * @param value {@link #copyright} (A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
5213     */
5214    public ConceptMap setCopyrightElement(MarkdownType value) { 
5215      this.copyright = value;
5216      return this;
5217    }
5218
5219    /**
5220     * @return A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.
5221     */
5222    public String getCopyright() { 
5223      return this.copyright == null ? null : this.copyright.getValue();
5224    }
5225
5226    /**
5227     * @param value A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.
5228     */
5229    public ConceptMap setCopyright(String value) { 
5230      if (Utilities.noString(value))
5231        this.copyright = null;
5232      else {
5233        if (this.copyright == null)
5234          this.copyright = new MarkdownType();
5235        this.copyright.setValue(value);
5236      }
5237      return this;
5238    }
5239
5240    /**
5241     * @return {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
5242     */
5243    public StringType getCopyrightLabelElement() { 
5244      if (this.copyrightLabel == null)
5245        if (Configuration.errorOnAutoCreate())
5246          throw new Error("Attempt to auto-create ConceptMap.copyrightLabel");
5247        else if (Configuration.doAutoCreate())
5248          this.copyrightLabel = new StringType(); // bb
5249      return this.copyrightLabel;
5250    }
5251
5252    public boolean hasCopyrightLabelElement() { 
5253      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
5254    }
5255
5256    public boolean hasCopyrightLabel() { 
5257      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
5258    }
5259
5260    /**
5261     * @param value {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
5262     */
5263    public ConceptMap setCopyrightLabelElement(StringType value) { 
5264      this.copyrightLabel = value;
5265      return this;
5266    }
5267
5268    /**
5269     * @return A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
5270     */
5271    public String getCopyrightLabel() { 
5272      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
5273    }
5274
5275    /**
5276     * @param value A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
5277     */
5278    public ConceptMap setCopyrightLabel(String value) { 
5279      if (Utilities.noString(value))
5280        this.copyrightLabel = null;
5281      else {
5282        if (this.copyrightLabel == null)
5283          this.copyrightLabel = new StringType();
5284        this.copyrightLabel.setValue(value);
5285      }
5286      return this;
5287    }
5288
5289    /**
5290     * @return {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
5291     */
5292    public DateType getApprovalDateElement() { 
5293      if (this.approvalDate == null)
5294        if (Configuration.errorOnAutoCreate())
5295          throw new Error("Attempt to auto-create ConceptMap.approvalDate");
5296        else if (Configuration.doAutoCreate())
5297          this.approvalDate = new DateType(); // bb
5298      return this.approvalDate;
5299    }
5300
5301    public boolean hasApprovalDateElement() { 
5302      return this.approvalDate != null && !this.approvalDate.isEmpty();
5303    }
5304
5305    public boolean hasApprovalDate() { 
5306      return this.approvalDate != null && !this.approvalDate.isEmpty();
5307    }
5308
5309    /**
5310     * @param value {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
5311     */
5312    public ConceptMap setApprovalDateElement(DateType value) { 
5313      this.approvalDate = value;
5314      return this;
5315    }
5316
5317    /**
5318     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
5319     */
5320    public Date getApprovalDate() { 
5321      return this.approvalDate == null ? null : this.approvalDate.getValue();
5322    }
5323
5324    /**
5325     * @param value The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
5326     */
5327    public ConceptMap setApprovalDate(Date value) { 
5328      if (value == null)
5329        this.approvalDate = null;
5330      else {
5331        if (this.approvalDate == null)
5332          this.approvalDate = new DateType();
5333        this.approvalDate.setValue(value);
5334      }
5335      return this;
5336    }
5337
5338    /**
5339     * @return {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
5340     */
5341    public DateType getLastReviewDateElement() { 
5342      if (this.lastReviewDate == null)
5343        if (Configuration.errorOnAutoCreate())
5344          throw new Error("Attempt to auto-create ConceptMap.lastReviewDate");
5345        else if (Configuration.doAutoCreate())
5346          this.lastReviewDate = new DateType(); // bb
5347      return this.lastReviewDate;
5348    }
5349
5350    public boolean hasLastReviewDateElement() { 
5351      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
5352    }
5353
5354    public boolean hasLastReviewDate() { 
5355      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
5356    }
5357
5358    /**
5359     * @param value {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
5360     */
5361    public ConceptMap setLastReviewDateElement(DateType value) { 
5362      this.lastReviewDate = value;
5363      return this;
5364    }
5365
5366    /**
5367     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
5368     */
5369    public Date getLastReviewDate() { 
5370      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
5371    }
5372
5373    /**
5374     * @param value The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
5375     */
5376    public ConceptMap setLastReviewDate(Date value) { 
5377      if (value == null)
5378        this.lastReviewDate = null;
5379      else {
5380        if (this.lastReviewDate == null)
5381          this.lastReviewDate = new DateType();
5382        this.lastReviewDate.setValue(value);
5383      }
5384      return this;
5385    }
5386
5387    /**
5388     * @return {@link #effectivePeriod} (The period during which the ConceptMap content was or is planned to be in active use.)
5389     */
5390    public Period getEffectivePeriod() { 
5391      if (this.effectivePeriod == null)
5392        if (Configuration.errorOnAutoCreate())
5393          throw new Error("Attempt to auto-create ConceptMap.effectivePeriod");
5394        else if (Configuration.doAutoCreate())
5395          this.effectivePeriod = new Period(); // cc
5396      return this.effectivePeriod;
5397    }
5398
5399    public boolean hasEffectivePeriod() { 
5400      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
5401    }
5402
5403    /**
5404     * @param value {@link #effectivePeriod} (The period during which the ConceptMap content was or is planned to be in active use.)
5405     */
5406    public ConceptMap setEffectivePeriod(Period value) { 
5407      this.effectivePeriod = value;
5408      return this;
5409    }
5410
5411    /**
5412     * @return {@link #topic} (Descriptions related to the content of the ConceptMap. Topics provide a high-level categorization as well as keywords for the ConceptMap that can be useful for filtering and searching.)
5413     */
5414    public List<CodeableConcept> getTopic() { 
5415      if (this.topic == null)
5416        this.topic = new ArrayList<CodeableConcept>();
5417      return this.topic;
5418    }
5419
5420    /**
5421     * @return Returns a reference to <code>this</code> for easy method chaining
5422     */
5423    public ConceptMap setTopic(List<CodeableConcept> theTopic) { 
5424      this.topic = theTopic;
5425      return this;
5426    }
5427
5428    public boolean hasTopic() { 
5429      if (this.topic == null)
5430        return false;
5431      for (CodeableConcept item : this.topic)
5432        if (!item.isEmpty())
5433          return true;
5434      return false;
5435    }
5436
5437    public CodeableConcept addTopic() { //3
5438      CodeableConcept t = new CodeableConcept();
5439      if (this.topic == null)
5440        this.topic = new ArrayList<CodeableConcept>();
5441      this.topic.add(t);
5442      return t;
5443    }
5444
5445    public ConceptMap addTopic(CodeableConcept t) { //3
5446      if (t == null)
5447        return this;
5448      if (this.topic == null)
5449        this.topic = new ArrayList<CodeableConcept>();
5450      this.topic.add(t);
5451      return this;
5452    }
5453
5454    /**
5455     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist {3}
5456     */
5457    public CodeableConcept getTopicFirstRep() { 
5458      if (getTopic().isEmpty()) {
5459        addTopic();
5460      }
5461      return getTopic().get(0);
5462    }
5463
5464    /**
5465     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.)
5466     */
5467    public List<ContactDetail> getAuthor() { 
5468      if (this.author == null)
5469        this.author = new ArrayList<ContactDetail>();
5470      return this.author;
5471    }
5472
5473    /**
5474     * @return Returns a reference to <code>this</code> for easy method chaining
5475     */
5476    public ConceptMap setAuthor(List<ContactDetail> theAuthor) { 
5477      this.author = theAuthor;
5478      return this;
5479    }
5480
5481    public boolean hasAuthor() { 
5482      if (this.author == null)
5483        return false;
5484      for (ContactDetail item : this.author)
5485        if (!item.isEmpty())
5486          return true;
5487      return false;
5488    }
5489
5490    public ContactDetail addAuthor() { //3
5491      ContactDetail t = new ContactDetail();
5492      if (this.author == null)
5493        this.author = new ArrayList<ContactDetail>();
5494      this.author.add(t);
5495      return t;
5496    }
5497
5498    public ConceptMap addAuthor(ContactDetail t) { //3
5499      if (t == null)
5500        return this;
5501      if (this.author == null)
5502        this.author = new ArrayList<ContactDetail>();
5503      this.author.add(t);
5504      return this;
5505    }
5506
5507    /**
5508     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3}
5509     */
5510    public ContactDetail getAuthorFirstRep() { 
5511      if (getAuthor().isEmpty()) {
5512        addAuthor();
5513      }
5514      return getAuthor().get(0);
5515    }
5516
5517    /**
5518     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the ConceptMap.)
5519     */
5520    public List<ContactDetail> getEditor() { 
5521      if (this.editor == null)
5522        this.editor = new ArrayList<ContactDetail>();
5523      return this.editor;
5524    }
5525
5526    /**
5527     * @return Returns a reference to <code>this</code> for easy method chaining
5528     */
5529    public ConceptMap setEditor(List<ContactDetail> theEditor) { 
5530      this.editor = theEditor;
5531      return this;
5532    }
5533
5534    public boolean hasEditor() { 
5535      if (this.editor == null)
5536        return false;
5537      for (ContactDetail item : this.editor)
5538        if (!item.isEmpty())
5539          return true;
5540      return false;
5541    }
5542
5543    public ContactDetail addEditor() { //3
5544      ContactDetail t = new ContactDetail();
5545      if (this.editor == null)
5546        this.editor = new ArrayList<ContactDetail>();
5547      this.editor.add(t);
5548      return t;
5549    }
5550
5551    public ConceptMap addEditor(ContactDetail t) { //3
5552      if (t == null)
5553        return this;
5554      if (this.editor == null)
5555        this.editor = new ArrayList<ContactDetail>();
5556      this.editor.add(t);
5557      return this;
5558    }
5559
5560    /**
5561     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {3}
5562     */
5563    public ContactDetail getEditorFirstRep() { 
5564      if (getEditor().isEmpty()) {
5565        addEditor();
5566      }
5567      return getEditor().get(0);
5568    }
5569
5570    /**
5571     * @return {@link #reviewer} (An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.)
5572     */
5573    public List<ContactDetail> getReviewer() { 
5574      if (this.reviewer == null)
5575        this.reviewer = new ArrayList<ContactDetail>();
5576      return this.reviewer;
5577    }
5578
5579    /**
5580     * @return Returns a reference to <code>this</code> for easy method chaining
5581     */
5582    public ConceptMap setReviewer(List<ContactDetail> theReviewer) { 
5583      this.reviewer = theReviewer;
5584      return this;
5585    }
5586
5587    public boolean hasReviewer() { 
5588      if (this.reviewer == null)
5589        return false;
5590      for (ContactDetail item : this.reviewer)
5591        if (!item.isEmpty())
5592          return true;
5593      return false;
5594    }
5595
5596    public ContactDetail addReviewer() { //3
5597      ContactDetail t = new ContactDetail();
5598      if (this.reviewer == null)
5599        this.reviewer = new ArrayList<ContactDetail>();
5600      this.reviewer.add(t);
5601      return t;
5602    }
5603
5604    public ConceptMap addReviewer(ContactDetail t) { //3
5605      if (t == null)
5606        return this;
5607      if (this.reviewer == null)
5608        this.reviewer = new ArrayList<ContactDetail>();
5609      this.reviewer.add(t);
5610      return this;
5611    }
5612
5613    /**
5614     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {3}
5615     */
5616    public ContactDetail getReviewerFirstRep() { 
5617      if (getReviewer().isEmpty()) {
5618        addReviewer();
5619      }
5620      return getReviewer().get(0);
5621    }
5622
5623    /**
5624     * @return {@link #endorser} (An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.)
5625     */
5626    public List<ContactDetail> getEndorser() { 
5627      if (this.endorser == null)
5628        this.endorser = new ArrayList<ContactDetail>();
5629      return this.endorser;
5630    }
5631
5632    /**
5633     * @return Returns a reference to <code>this</code> for easy method chaining
5634     */
5635    public ConceptMap setEndorser(List<ContactDetail> theEndorser) { 
5636      this.endorser = theEndorser;
5637      return this;
5638    }
5639
5640    public boolean hasEndorser() { 
5641      if (this.endorser == null)
5642        return false;
5643      for (ContactDetail item : this.endorser)
5644        if (!item.isEmpty())
5645          return true;
5646      return false;
5647    }
5648
5649    public ContactDetail addEndorser() { //3
5650      ContactDetail t = new ContactDetail();
5651      if (this.endorser == null)
5652        this.endorser = new ArrayList<ContactDetail>();
5653      this.endorser.add(t);
5654      return t;
5655    }
5656
5657    public ConceptMap addEndorser(ContactDetail t) { //3
5658      if (t == null)
5659        return this;
5660      if (this.endorser == null)
5661        this.endorser = new ArrayList<ContactDetail>();
5662      this.endorser.add(t);
5663      return this;
5664    }
5665
5666    /**
5667     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {3}
5668     */
5669    public ContactDetail getEndorserFirstRep() { 
5670      if (getEndorser().isEmpty()) {
5671        addEndorser();
5672      }
5673      return getEndorser().get(0);
5674    }
5675
5676    /**
5677     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.)
5678     */
5679    public List<RelatedArtifact> getRelatedArtifact() { 
5680      if (this.relatedArtifact == null)
5681        this.relatedArtifact = new ArrayList<RelatedArtifact>();
5682      return this.relatedArtifact;
5683    }
5684
5685    /**
5686     * @return Returns a reference to <code>this</code> for easy method chaining
5687     */
5688    public ConceptMap setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
5689      this.relatedArtifact = theRelatedArtifact;
5690      return this;
5691    }
5692
5693    public boolean hasRelatedArtifact() { 
5694      if (this.relatedArtifact == null)
5695        return false;
5696      for (RelatedArtifact item : this.relatedArtifact)
5697        if (!item.isEmpty())
5698          return true;
5699      return false;
5700    }
5701
5702    public RelatedArtifact addRelatedArtifact() { //3
5703      RelatedArtifact t = new RelatedArtifact();
5704      if (this.relatedArtifact == null)
5705        this.relatedArtifact = new ArrayList<RelatedArtifact>();
5706      this.relatedArtifact.add(t);
5707      return t;
5708    }
5709
5710    public ConceptMap addRelatedArtifact(RelatedArtifact t) { //3
5711      if (t == null)
5712        return this;
5713      if (this.relatedArtifact == null)
5714        this.relatedArtifact = new ArrayList<RelatedArtifact>();
5715      this.relatedArtifact.add(t);
5716      return this;
5717    }
5718
5719    /**
5720     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {3}
5721     */
5722    public RelatedArtifact getRelatedArtifactFirstRep() { 
5723      if (getRelatedArtifact().isEmpty()) {
5724        addRelatedArtifact();
5725      }
5726      return getRelatedArtifact().get(0);
5727    }
5728
5729    /**
5730     * @return {@link #property} (A property defines a slot through which additional information can be provided about a map from source -> target.)
5731     */
5732    public List<PropertyComponent> getProperty() { 
5733      if (this.property == null)
5734        this.property = new ArrayList<PropertyComponent>();
5735      return this.property;
5736    }
5737
5738    /**
5739     * @return Returns a reference to <code>this</code> for easy method chaining
5740     */
5741    public ConceptMap setProperty(List<PropertyComponent> theProperty) { 
5742      this.property = theProperty;
5743      return this;
5744    }
5745
5746    public boolean hasProperty() { 
5747      if (this.property == null)
5748        return false;
5749      for (PropertyComponent item : this.property)
5750        if (!item.isEmpty())
5751          return true;
5752      return false;
5753    }
5754
5755    public PropertyComponent addProperty() { //3
5756      PropertyComponent t = new PropertyComponent();
5757      if (this.property == null)
5758        this.property = new ArrayList<PropertyComponent>();
5759      this.property.add(t);
5760      return t;
5761    }
5762
5763    public ConceptMap addProperty(PropertyComponent t) { //3
5764      if (t == null)
5765        return this;
5766      if (this.property == null)
5767        this.property = new ArrayList<PropertyComponent>();
5768      this.property.add(t);
5769      return this;
5770    }
5771
5772    /**
5773     * @return The first repetition of repeating field {@link #property}, creating it if it does not already exist {3}
5774     */
5775    public PropertyComponent getPropertyFirstRep() { 
5776      if (getProperty().isEmpty()) {
5777        addProperty();
5778      }
5779      return getProperty().get(0);
5780    }
5781
5782    /**
5783     * @return {@link #additionalAttribute} (An additionalAttribute defines an additional data element found in the source or target data model where the data will come from or be mapped to. Some mappings are based on data in addition to the source data element, where codes in multiple fields are combined to a single field (or vice versa).)
5784     */
5785    public List<AdditionalAttributeComponent> getAdditionalAttribute() { 
5786      if (this.additionalAttribute == null)
5787        this.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
5788      return this.additionalAttribute;
5789    }
5790
5791    /**
5792     * @return Returns a reference to <code>this</code> for easy method chaining
5793     */
5794    public ConceptMap setAdditionalAttribute(List<AdditionalAttributeComponent> theAdditionalAttribute) { 
5795      this.additionalAttribute = theAdditionalAttribute;
5796      return this;
5797    }
5798
5799    public boolean hasAdditionalAttribute() { 
5800      if (this.additionalAttribute == null)
5801        return false;
5802      for (AdditionalAttributeComponent item : this.additionalAttribute)
5803        if (!item.isEmpty())
5804          return true;
5805      return false;
5806    }
5807
5808    public AdditionalAttributeComponent addAdditionalAttribute() { //3
5809      AdditionalAttributeComponent t = new AdditionalAttributeComponent();
5810      if (this.additionalAttribute == null)
5811        this.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
5812      this.additionalAttribute.add(t);
5813      return t;
5814    }
5815
5816    public ConceptMap addAdditionalAttribute(AdditionalAttributeComponent t) { //3
5817      if (t == null)
5818        return this;
5819      if (this.additionalAttribute == null)
5820        this.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
5821      this.additionalAttribute.add(t);
5822      return this;
5823    }
5824
5825    /**
5826     * @return The first repetition of repeating field {@link #additionalAttribute}, creating it if it does not already exist {3}
5827     */
5828    public AdditionalAttributeComponent getAdditionalAttributeFirstRep() { 
5829      if (getAdditionalAttribute().isEmpty()) {
5830        addAdditionalAttribute();
5831      }
5832      return getAdditionalAttribute().get(0);
5833    }
5834
5835    /**
5836     * @return {@link #sourceScope} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.)
5837     */
5838    public DataType getSourceScope() { 
5839      return this.sourceScope;
5840    }
5841
5842    /**
5843     * @return {@link #sourceScope} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.)
5844     */
5845    public UriType getSourceScopeUriType() throws FHIRException { 
5846      if (this.sourceScope == null)
5847        this.sourceScope = new UriType();
5848      if (!(this.sourceScope instanceof UriType))
5849        throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.sourceScope.getClass().getName()+" was encountered");
5850      return (UriType) this.sourceScope;
5851    }
5852
5853    public boolean hasSourceScopeUriType() { 
5854      return this != null && this.sourceScope instanceof UriType;
5855    }
5856
5857    /**
5858     * @return {@link #sourceScope} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.)
5859     */
5860    public CanonicalType getSourceScopeCanonicalType() throws FHIRException { 
5861      if (this.sourceScope == null)
5862        this.sourceScope = new CanonicalType();
5863      if (!(this.sourceScope instanceof CanonicalType))
5864        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.sourceScope.getClass().getName()+" was encountered");
5865      return (CanonicalType) this.sourceScope;
5866    }
5867
5868    public boolean hasSourceScopeCanonicalType() { 
5869      return this != null && this.sourceScope instanceof CanonicalType;
5870    }
5871
5872    public boolean hasSourceScope() { 
5873      return this.sourceScope != null && !this.sourceScope.isEmpty();
5874    }
5875
5876    /**
5877     * @param value {@link #sourceScope} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.)
5878     */
5879    public ConceptMap setSourceScope(DataType value) { 
5880      if (value != null && !(value instanceof UriType || value instanceof CanonicalType))
5881        throw new FHIRException("Not the right type for ConceptMap.sourceScope[x]: "+value.fhirType());
5882      this.sourceScope = value;
5883      return this;
5884    }
5885
5886    /**
5887     * @return {@link #targetScope} (Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.)
5888     */
5889    public DataType getTargetScope() { 
5890      return this.targetScope;
5891    }
5892
5893    /**
5894     * @return {@link #targetScope} (Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.)
5895     */
5896    public UriType getTargetScopeUriType() throws FHIRException { 
5897      if (this.targetScope == null)
5898        this.targetScope = new UriType();
5899      if (!(this.targetScope instanceof UriType))
5900        throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.targetScope.getClass().getName()+" was encountered");
5901      return (UriType) this.targetScope;
5902    }
5903
5904    public boolean hasTargetScopeUriType() { 
5905      return this != null && this.targetScope instanceof UriType;
5906    }
5907
5908    /**
5909     * @return {@link #targetScope} (Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.)
5910     */
5911    public CanonicalType getTargetScopeCanonicalType() throws FHIRException { 
5912      if (this.targetScope == null)
5913        this.targetScope = new CanonicalType();
5914      if (!(this.targetScope instanceof CanonicalType))
5915        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.targetScope.getClass().getName()+" was encountered");
5916      return (CanonicalType) this.targetScope;
5917    }
5918
5919    public boolean hasTargetScopeCanonicalType() { 
5920      return this != null && this.targetScope instanceof CanonicalType;
5921    }
5922
5923    public boolean hasTargetScope() { 
5924      return this.targetScope != null && !this.targetScope.isEmpty();
5925    }
5926
5927    /**
5928     * @param value {@link #targetScope} (Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.)
5929     */
5930    public ConceptMap setTargetScope(DataType value) { 
5931      if (value != null && !(value instanceof UriType || value instanceof CanonicalType))
5932        throw new FHIRException("Not the right type for ConceptMap.targetScope[x]: "+value.fhirType());
5933      this.targetScope = value;
5934      return this;
5935    }
5936
5937    /**
5938     * @return {@link #group} (A group of mappings that all have the same source and target system.)
5939     */
5940    public List<ConceptMapGroupComponent> getGroup() { 
5941      if (this.group == null)
5942        this.group = new ArrayList<ConceptMapGroupComponent>();
5943      return this.group;
5944    }
5945
5946    /**
5947     * @return Returns a reference to <code>this</code> for easy method chaining
5948     */
5949    public ConceptMap setGroup(List<ConceptMapGroupComponent> theGroup) { 
5950      this.group = theGroup;
5951      return this;
5952    }
5953
5954    public boolean hasGroup() { 
5955      if (this.group == null)
5956        return false;
5957      for (ConceptMapGroupComponent item : this.group)
5958        if (!item.isEmpty())
5959          return true;
5960      return false;
5961    }
5962
5963    public ConceptMapGroupComponent addGroup() { //3
5964      ConceptMapGroupComponent t = new ConceptMapGroupComponent();
5965      if (this.group == null)
5966        this.group = new ArrayList<ConceptMapGroupComponent>();
5967      this.group.add(t);
5968      return t;
5969    }
5970
5971    public ConceptMap addGroup(ConceptMapGroupComponent t) { //3
5972      if (t == null)
5973        return this;
5974      if (this.group == null)
5975        this.group = new ArrayList<ConceptMapGroupComponent>();
5976      this.group.add(t);
5977      return this;
5978    }
5979
5980    /**
5981     * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist {3}
5982     */
5983    public ConceptMapGroupComponent getGroupFirstRep() { 
5984      if (getGroup().isEmpty()) {
5985        addGroup();
5986      }
5987      return getGroup().get(0);
5988    }
5989
5990      protected void listChildren(List<Property> children) {
5991        super.listChildren(children);
5992        children.add(new Property("url", "uri", "An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.", 0, 1, url));
5993        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
5994        children.add(new Property("version", "string", "The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version));
5995        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which ConceptMap is more current.", 0, 1, versionAlgorithm));
5996        children.add(new Property("name", "string", "A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
5997        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the concept map.", 0, 1, title));
5998        children.add(new Property("status", "code", "The status of this concept map. Enables tracking the life-cycle of the content.", 0, 1, status));
5999        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
6000        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.", 0, 1, date));
6001        children.add(new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.", 0, 1, publisher));
6002        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));
6003        children.add(new Property("description", "markdown", "A free text natural language description of the concept map from a consumer's perspective.", 0, 1, description));
6004        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 concept map instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
6005        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the concept map is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
6006        children.add(new Property("purpose", "markdown", "Explanation of why this concept map is needed and why it has been designed as it has.", 0, 1, purpose));
6007        children.add(new Property("copyright", "markdown", "A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.", 0, 1, copyright));
6008        children.add(new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel));
6009        children.add(new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate));
6010        children.add(new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate));
6011        children.add(new Property("effectivePeriod", "Period", "The period during which the ConceptMap content was or is planned to be in active use.", 0, 1, effectivePeriod));
6012        children.add(new Property("topic", "CodeableConcept", "Descriptions related to the content of the ConceptMap. Topics provide a high-level categorization as well as keywords for the ConceptMap that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic));
6013        children.add(new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.", 0, java.lang.Integer.MAX_VALUE, author));
6014        children.add(new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the ConceptMap.", 0, java.lang.Integer.MAX_VALUE, editor));
6015        children.add(new Property("reviewer", "ContactDetail", "An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.", 0, java.lang.Integer.MAX_VALUE, reviewer));
6016        children.add(new Property("endorser", "ContactDetail", "An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser));
6017        children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact));
6018        children.add(new Property("property", "", "A property defines a slot through which additional information can be provided about a map from source -> target.", 0, java.lang.Integer.MAX_VALUE, property));
6019        children.add(new Property("additionalAttribute", "", "An additionalAttribute defines an additional data element found in the source or target data model where the data will come from or be mapped to. Some mappings are based on data in addition to the source data element, where codes in multiple fields are combined to a single field (or vice versa).", 0, java.lang.Integer.MAX_VALUE, additionalAttribute));
6020        children.add(new Property("sourceScope[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.", 0, 1, sourceScope));
6021        children.add(new Property("targetScope[x]", "uri|canonical(ValueSet)", "Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.", 0, 1, targetScope));
6022        children.add(new Property("group", "", "A group of mappings that all have the same source and target system.", 0, java.lang.Integer.MAX_VALUE, group));
6023      }
6024
6025      @Override
6026      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6027        switch (_hash) {
6028        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.", 0, 1, url);
6029        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
6030        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version);
6031        case -115699031: /*versionAlgorithm[x]*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which ConceptMap is more current.", 0, 1, versionAlgorithm);
6032        case 1508158071: /*versionAlgorithm*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which ConceptMap is more current.", 0, 1, versionAlgorithm);
6033        case 1836908904: /*versionAlgorithmString*/  return new Property("versionAlgorithm[x]", "string", "Indicates the mechanism used to compare versions to determine which ConceptMap is more current.", 0, 1, versionAlgorithm);
6034        case 1373807809: /*versionAlgorithmCoding*/  return new Property("versionAlgorithm[x]", "Coding", "Indicates the mechanism used to compare versions to determine which ConceptMap is more current.", 0, 1, versionAlgorithm);
6035        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
6036        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the concept map.", 0, 1, title);
6037        case -892481550: /*status*/  return new Property("status", "code", "The status of this concept map. Enables tracking the life-cycle of the content.", 0, 1, status);
6038        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
6039        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.", 0, 1, date);
6040        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.", 0, 1, publisher);
6041        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);
6042        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the concept map from a consumer's perspective.", 0, 1, description);
6043        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 concept map instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
6044        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the concept map is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
6045        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this concept map is needed and why it has been designed as it has.", 0, 1, purpose);
6046        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.", 0, 1, copyright);
6047        case 765157229: /*copyrightLabel*/  return new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel);
6048        case 223539345: /*approvalDate*/  return new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate);
6049        case -1687512484: /*lastReviewDate*/  return new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate);
6050        case -403934648: /*effectivePeriod*/  return new Property("effectivePeriod", "Period", "The period during which the ConceptMap content was or is planned to be in active use.", 0, 1, effectivePeriod);
6051        case 110546223: /*topic*/  return new Property("topic", "CodeableConcept", "Descriptions related to the content of the ConceptMap. Topics provide a high-level categorization as well as keywords for the ConceptMap that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic);
6052        case -1406328437: /*author*/  return new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.", 0, java.lang.Integer.MAX_VALUE, author);
6053        case -1307827859: /*editor*/  return new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the ConceptMap.", 0, java.lang.Integer.MAX_VALUE, editor);
6054        case -261190139: /*reviewer*/  return new Property("reviewer", "ContactDetail", "An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.", 0, java.lang.Integer.MAX_VALUE, reviewer);
6055        case 1740277666: /*endorser*/  return new Property("endorser", "ContactDetail", "An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser);
6056        case 666807069: /*relatedArtifact*/  return new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact);
6057        case -993141291: /*property*/  return new Property("property", "", "A property defines a slot through which additional information can be provided about a map from source -> target.", 0, java.lang.Integer.MAX_VALUE, property);
6058        case -1004532171: /*additionalAttribute*/  return new Property("additionalAttribute", "", "An additionalAttribute defines an additional data element found in the source or target data model where the data will come from or be mapped to. Some mappings are based on data in addition to the source data element, where codes in multiple fields are combined to a single field (or vice versa).", 0, java.lang.Integer.MAX_VALUE, additionalAttribute);
6059        case -1850861849: /*sourceScope[x]*/  return new Property("sourceScope[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.", 0, 1, sourceScope);
6060        case -96223495: /*sourceScope*/  return new Property("sourceScope[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.", 0, 1, sourceScope);
6061        case -1850867789: /*sourceScopeUri*/  return new Property("sourceScope[x]", "uri", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.", 0, 1, sourceScope);
6062        case -1487745541: /*sourceScopeCanonical*/  return new Property("sourceScope[x]", "canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.  Limits the scope of the map to source codes (ConceptMap.group.element code or valueSet) that are members of this value set.", 0, 1, sourceScope);
6063        case -2079438243: /*targetScope[x]*/  return new Property("targetScope[x]", "uri|canonical(ValueSet)", "Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.", 0, 1, targetScope);
6064        case -2096156861: /*targetScope*/  return new Property("targetScope[x]", "uri|canonical(ValueSet)", "Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.", 0, 1, targetScope);
6065        case -2079444183: /*targetScopeUri*/  return new Property("targetScope[x]", "uri", "Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.", 0, 1, targetScope);
6066        case -1851780879: /*targetScopeCanonical*/  return new Property("targetScope[x]", "canonical(ValueSet)", "Identifier for the target value set that provides important context about how the mapping choices are made.  Limits the scope of the map to target codes (ConceptMap.group.element.target code or valueSet) that are members of this value set.", 0, 1, targetScope);
6067        case 98629247: /*group*/  return new Property("group", "", "A group of mappings that all have the same source and target system.", 0, java.lang.Integer.MAX_VALUE, group);
6068        default: return super.getNamedProperty(_hash, _name, _checkValid);
6069        }
6070
6071      }
6072
6073      @Override
6074      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6075        switch (hash) {
6076        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
6077        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
6078        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
6079        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
6080        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
6081        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
6082        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
6083        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
6084        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
6085        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
6086        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
6087        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
6088        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
6089        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
6090        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
6091        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
6092        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
6093        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
6094        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
6095        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
6096        case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept
6097        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail
6098        case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail
6099        case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail
6100        case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail
6101        case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact
6102        case -993141291: /*property*/ return this.property == null ? new Base[0] : this.property.toArray(new Base[this.property.size()]); // PropertyComponent
6103        case -1004532171: /*additionalAttribute*/ return this.additionalAttribute == null ? new Base[0] : this.additionalAttribute.toArray(new Base[this.additionalAttribute.size()]); // AdditionalAttributeComponent
6104        case -96223495: /*sourceScope*/ return this.sourceScope == null ? new Base[0] : new Base[] {this.sourceScope}; // DataType
6105        case -2096156861: /*targetScope*/ return this.targetScope == null ? new Base[0] : new Base[] {this.targetScope}; // DataType
6106        case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // ConceptMapGroupComponent
6107        default: return super.getProperty(hash, name, checkValid);
6108        }
6109
6110      }
6111
6112      @Override
6113      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6114        switch (hash) {
6115        case 116079: // url
6116          this.url = TypeConvertor.castToUri(value); // UriType
6117          return value;
6118        case -1618432855: // identifier
6119          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
6120          return value;
6121        case 351608024: // version
6122          this.version = TypeConvertor.castToString(value); // StringType
6123          return value;
6124        case 1508158071: // versionAlgorithm
6125          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
6126          return value;
6127        case 3373707: // name
6128          this.name = TypeConvertor.castToString(value); // StringType
6129          return value;
6130        case 110371416: // title
6131          this.title = TypeConvertor.castToString(value); // StringType
6132          return value;
6133        case -892481550: // status
6134          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
6135          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
6136          return value;
6137        case -404562712: // experimental
6138          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
6139          return value;
6140        case 3076014: // date
6141          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
6142          return value;
6143        case 1447404028: // publisher
6144          this.publisher = TypeConvertor.castToString(value); // StringType
6145          return value;
6146        case 951526432: // contact
6147          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6148          return value;
6149        case -1724546052: // description
6150          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
6151          return value;
6152        case -669707736: // useContext
6153          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
6154          return value;
6155        case -507075711: // jurisdiction
6156          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
6157          return value;
6158        case -220463842: // purpose
6159          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
6160          return value;
6161        case 1522889671: // copyright
6162          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
6163          return value;
6164        case 765157229: // copyrightLabel
6165          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
6166          return value;
6167        case 223539345: // approvalDate
6168          this.approvalDate = TypeConvertor.castToDate(value); // DateType
6169          return value;
6170        case -1687512484: // lastReviewDate
6171          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
6172          return value;
6173        case -403934648: // effectivePeriod
6174          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
6175          return value;
6176        case 110546223: // topic
6177          this.getTopic().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
6178          return value;
6179        case -1406328437: // author
6180          this.getAuthor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6181          return value;
6182        case -1307827859: // editor
6183          this.getEditor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6184          return value;
6185        case -261190139: // reviewer
6186          this.getReviewer().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6187          return value;
6188        case 1740277666: // endorser
6189          this.getEndorser().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6190          return value;
6191        case 666807069: // relatedArtifact
6192          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact
6193          return value;
6194        case -993141291: // property
6195          this.getProperty().add((PropertyComponent) value); // PropertyComponent
6196          return value;
6197        case -1004532171: // additionalAttribute
6198          this.getAdditionalAttribute().add((AdditionalAttributeComponent) value); // AdditionalAttributeComponent
6199          return value;
6200        case -96223495: // sourceScope
6201          this.sourceScope = TypeConvertor.castToType(value); // DataType
6202          return value;
6203        case -2096156861: // targetScope
6204          this.targetScope = TypeConvertor.castToType(value); // DataType
6205          return value;
6206        case 98629247: // group
6207          this.getGroup().add((ConceptMapGroupComponent) value); // ConceptMapGroupComponent
6208          return value;
6209        default: return super.setProperty(hash, name, value);
6210        }
6211
6212      }
6213
6214      @Override
6215      public Base setProperty(String name, Base value) throws FHIRException {
6216        if (name.equals("url")) {
6217          this.url = TypeConvertor.castToUri(value); // UriType
6218        } else if (name.equals("identifier")) {
6219          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
6220        } else if (name.equals("version")) {
6221          this.version = TypeConvertor.castToString(value); // StringType
6222        } else if (name.equals("versionAlgorithm[x]")) {
6223          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
6224        } else if (name.equals("name")) {
6225          this.name = TypeConvertor.castToString(value); // StringType
6226        } else if (name.equals("title")) {
6227          this.title = TypeConvertor.castToString(value); // StringType
6228        } else if (name.equals("status")) {
6229          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
6230          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
6231        } else if (name.equals("experimental")) {
6232          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
6233        } else if (name.equals("date")) {
6234          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
6235        } else if (name.equals("publisher")) {
6236          this.publisher = TypeConvertor.castToString(value); // StringType
6237        } else if (name.equals("contact")) {
6238          this.getContact().add(TypeConvertor.castToContactDetail(value));
6239        } else if (name.equals("description")) {
6240          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
6241        } else if (name.equals("useContext")) {
6242          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
6243        } else if (name.equals("jurisdiction")) {
6244          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
6245        } else if (name.equals("purpose")) {
6246          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
6247        } else if (name.equals("copyright")) {
6248          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
6249        } else if (name.equals("copyrightLabel")) {
6250          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
6251        } else if (name.equals("approvalDate")) {
6252          this.approvalDate = TypeConvertor.castToDate(value); // DateType
6253        } else if (name.equals("lastReviewDate")) {
6254          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
6255        } else if (name.equals("effectivePeriod")) {
6256          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
6257        } else if (name.equals("topic")) {
6258          this.getTopic().add(TypeConvertor.castToCodeableConcept(value));
6259        } else if (name.equals("author")) {
6260          this.getAuthor().add(TypeConvertor.castToContactDetail(value));
6261        } else if (name.equals("editor")) {
6262          this.getEditor().add(TypeConvertor.castToContactDetail(value));
6263        } else if (name.equals("reviewer")) {
6264          this.getReviewer().add(TypeConvertor.castToContactDetail(value));
6265        } else if (name.equals("endorser")) {
6266          this.getEndorser().add(TypeConvertor.castToContactDetail(value));
6267        } else if (name.equals("relatedArtifact")) {
6268          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value));
6269        } else if (name.equals("property")) {
6270          this.getProperty().add((PropertyComponent) value);
6271        } else if (name.equals("additionalAttribute")) {
6272          this.getAdditionalAttribute().add((AdditionalAttributeComponent) value);
6273        } else if (name.equals("sourceScope[x]")) {
6274          this.sourceScope = TypeConvertor.castToType(value); // DataType
6275        } else if (name.equals("targetScope[x]")) {
6276          this.targetScope = TypeConvertor.castToType(value); // DataType
6277        } else if (name.equals("group")) {
6278          this.getGroup().add((ConceptMapGroupComponent) value);
6279        } else
6280          return super.setProperty(name, value);
6281        return value;
6282      }
6283
6284      @Override
6285      public Base makeProperty(int hash, String name) throws FHIRException {
6286        switch (hash) {
6287        case 116079:  return getUrlElement();
6288        case -1618432855:  return addIdentifier(); 
6289        case 351608024:  return getVersionElement();
6290        case -115699031:  return getVersionAlgorithm();
6291        case 1508158071:  return getVersionAlgorithm();
6292        case 3373707:  return getNameElement();
6293        case 110371416:  return getTitleElement();
6294        case -892481550:  return getStatusElement();
6295        case -404562712:  return getExperimentalElement();
6296        case 3076014:  return getDateElement();
6297        case 1447404028:  return getPublisherElement();
6298        case 951526432:  return addContact(); 
6299        case -1724546052:  return getDescriptionElement();
6300        case -669707736:  return addUseContext(); 
6301        case -507075711:  return addJurisdiction(); 
6302        case -220463842:  return getPurposeElement();
6303        case 1522889671:  return getCopyrightElement();
6304        case 765157229:  return getCopyrightLabelElement();
6305        case 223539345:  return getApprovalDateElement();
6306        case -1687512484:  return getLastReviewDateElement();
6307        case -403934648:  return getEffectivePeriod();
6308        case 110546223:  return addTopic(); 
6309        case -1406328437:  return addAuthor(); 
6310        case -1307827859:  return addEditor(); 
6311        case -261190139:  return addReviewer(); 
6312        case 1740277666:  return addEndorser(); 
6313        case 666807069:  return addRelatedArtifact(); 
6314        case -993141291:  return addProperty(); 
6315        case -1004532171:  return addAdditionalAttribute(); 
6316        case -1850861849:  return getSourceScope();
6317        case -96223495:  return getSourceScope();
6318        case -2079438243:  return getTargetScope();
6319        case -2096156861:  return getTargetScope();
6320        case 98629247:  return addGroup(); 
6321        default: return super.makeProperty(hash, name);
6322        }
6323
6324      }
6325
6326      @Override
6327      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6328        switch (hash) {
6329        case 116079: /*url*/ return new String[] {"uri"};
6330        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
6331        case 351608024: /*version*/ return new String[] {"string"};
6332        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
6333        case 3373707: /*name*/ return new String[] {"string"};
6334        case 110371416: /*title*/ return new String[] {"string"};
6335        case -892481550: /*status*/ return new String[] {"code"};
6336        case -404562712: /*experimental*/ return new String[] {"boolean"};
6337        case 3076014: /*date*/ return new String[] {"dateTime"};
6338        case 1447404028: /*publisher*/ return new String[] {"string"};
6339        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
6340        case -1724546052: /*description*/ return new String[] {"markdown"};
6341        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
6342        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
6343        case -220463842: /*purpose*/ return new String[] {"markdown"};
6344        case 1522889671: /*copyright*/ return new String[] {"markdown"};
6345        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
6346        case 223539345: /*approvalDate*/ return new String[] {"date"};
6347        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
6348        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
6349        case 110546223: /*topic*/ return new String[] {"CodeableConcept"};
6350        case -1406328437: /*author*/ return new String[] {"ContactDetail"};
6351        case -1307827859: /*editor*/ return new String[] {"ContactDetail"};
6352        case -261190139: /*reviewer*/ return new String[] {"ContactDetail"};
6353        case 1740277666: /*endorser*/ return new String[] {"ContactDetail"};
6354        case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"};
6355        case -993141291: /*property*/ return new String[] {};
6356        case -1004532171: /*additionalAttribute*/ return new String[] {};
6357        case -96223495: /*sourceScope*/ return new String[] {"uri", "canonical"};
6358        case -2096156861: /*targetScope*/ return new String[] {"uri", "canonical"};
6359        case 98629247: /*group*/ return new String[] {};
6360        default: return super.getTypesForProperty(hash, name);
6361        }
6362
6363      }
6364
6365      @Override
6366      public Base addChild(String name) throws FHIRException {
6367        if (name.equals("url")) {
6368          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.url");
6369        }
6370        else if (name.equals("identifier")) {
6371          return addIdentifier();
6372        }
6373        else if (name.equals("version")) {
6374          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.version");
6375        }
6376        else if (name.equals("versionAlgorithmString")) {
6377          this.versionAlgorithm = new StringType();
6378          return this.versionAlgorithm;
6379        }
6380        else if (name.equals("versionAlgorithmCoding")) {
6381          this.versionAlgorithm = new Coding();
6382          return this.versionAlgorithm;
6383        }
6384        else if (name.equals("name")) {
6385          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.name");
6386        }
6387        else if (name.equals("title")) {
6388          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.title");
6389        }
6390        else if (name.equals("status")) {
6391          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.status");
6392        }
6393        else if (name.equals("experimental")) {
6394          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.experimental");
6395        }
6396        else if (name.equals("date")) {
6397          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.date");
6398        }
6399        else if (name.equals("publisher")) {
6400          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.publisher");
6401        }
6402        else if (name.equals("contact")) {
6403          return addContact();
6404        }
6405        else if (name.equals("description")) {
6406          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.description");
6407        }
6408        else if (name.equals("useContext")) {
6409          return addUseContext();
6410        }
6411        else if (name.equals("jurisdiction")) {
6412          return addJurisdiction();
6413        }
6414        else if (name.equals("purpose")) {
6415          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.purpose");
6416        }
6417        else if (name.equals("copyright")) {
6418          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.copyright");
6419        }
6420        else if (name.equals("copyrightLabel")) {
6421          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.copyrightLabel");
6422        }
6423        else if (name.equals("approvalDate")) {
6424          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.approvalDate");
6425        }
6426        else if (name.equals("lastReviewDate")) {
6427          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.lastReviewDate");
6428        }
6429        else if (name.equals("effectivePeriod")) {
6430          this.effectivePeriod = new Period();
6431          return this.effectivePeriod;
6432        }
6433        else if (name.equals("topic")) {
6434          return addTopic();
6435        }
6436        else if (name.equals("author")) {
6437          return addAuthor();
6438        }
6439        else if (name.equals("editor")) {
6440          return addEditor();
6441        }
6442        else if (name.equals("reviewer")) {
6443          return addReviewer();
6444        }
6445        else if (name.equals("endorser")) {
6446          return addEndorser();
6447        }
6448        else if (name.equals("relatedArtifact")) {
6449          return addRelatedArtifact();
6450        }
6451        else if (name.equals("property")) {
6452          return addProperty();
6453        }
6454        else if (name.equals("additionalAttribute")) {
6455          return addAdditionalAttribute();
6456        }
6457        else if (name.equals("sourceScopeUri")) {
6458          this.sourceScope = new UriType();
6459          return this.sourceScope;
6460        }
6461        else if (name.equals("sourceScopeCanonical")) {
6462          this.sourceScope = new CanonicalType();
6463          return this.sourceScope;
6464        }
6465        else if (name.equals("targetScopeUri")) {
6466          this.targetScope = new UriType();
6467          return this.targetScope;
6468        }
6469        else if (name.equals("targetScopeCanonical")) {
6470          this.targetScope = new CanonicalType();
6471          return this.targetScope;
6472        }
6473        else if (name.equals("group")) {
6474          return addGroup();
6475        }
6476        else
6477          return super.addChild(name);
6478      }
6479
6480  public String fhirType() {
6481    return "ConceptMap";
6482
6483  }
6484
6485      public ConceptMap copy() {
6486        ConceptMap dst = new ConceptMap();
6487        copyValues(dst);
6488        return dst;
6489      }
6490
6491      public void copyValues(ConceptMap dst) {
6492        super.copyValues(dst);
6493        dst.url = url == null ? null : url.copy();
6494        if (identifier != null) {
6495          dst.identifier = new ArrayList<Identifier>();
6496          for (Identifier i : identifier)
6497            dst.identifier.add(i.copy());
6498        };
6499        dst.version = version == null ? null : version.copy();
6500        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
6501        dst.name = name == null ? null : name.copy();
6502        dst.title = title == null ? null : title.copy();
6503        dst.status = status == null ? null : status.copy();
6504        dst.experimental = experimental == null ? null : experimental.copy();
6505        dst.date = date == null ? null : date.copy();
6506        dst.publisher = publisher == null ? null : publisher.copy();
6507        if (contact != null) {
6508          dst.contact = new ArrayList<ContactDetail>();
6509          for (ContactDetail i : contact)
6510            dst.contact.add(i.copy());
6511        };
6512        dst.description = description == null ? null : description.copy();
6513        if (useContext != null) {
6514          dst.useContext = new ArrayList<UsageContext>();
6515          for (UsageContext i : useContext)
6516            dst.useContext.add(i.copy());
6517        };
6518        if (jurisdiction != null) {
6519          dst.jurisdiction = new ArrayList<CodeableConcept>();
6520          for (CodeableConcept i : jurisdiction)
6521            dst.jurisdiction.add(i.copy());
6522        };
6523        dst.purpose = purpose == null ? null : purpose.copy();
6524        dst.copyright = copyright == null ? null : copyright.copy();
6525        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
6526        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
6527        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
6528        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
6529        if (topic != null) {
6530          dst.topic = new ArrayList<CodeableConcept>();
6531          for (CodeableConcept i : topic)
6532            dst.topic.add(i.copy());
6533        };
6534        if (author != null) {
6535          dst.author = new ArrayList<ContactDetail>();
6536          for (ContactDetail i : author)
6537            dst.author.add(i.copy());
6538        };
6539        if (editor != null) {
6540          dst.editor = new ArrayList<ContactDetail>();
6541          for (ContactDetail i : editor)
6542            dst.editor.add(i.copy());
6543        };
6544        if (reviewer != null) {
6545          dst.reviewer = new ArrayList<ContactDetail>();
6546          for (ContactDetail i : reviewer)
6547            dst.reviewer.add(i.copy());
6548        };
6549        if (endorser != null) {
6550          dst.endorser = new ArrayList<ContactDetail>();
6551          for (ContactDetail i : endorser)
6552            dst.endorser.add(i.copy());
6553        };
6554        if (relatedArtifact != null) {
6555          dst.relatedArtifact = new ArrayList<RelatedArtifact>();
6556          for (RelatedArtifact i : relatedArtifact)
6557            dst.relatedArtifact.add(i.copy());
6558        };
6559        if (property != null) {
6560          dst.property = new ArrayList<PropertyComponent>();
6561          for (PropertyComponent i : property)
6562            dst.property.add(i.copy());
6563        };
6564        if (additionalAttribute != null) {
6565          dst.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
6566          for (AdditionalAttributeComponent i : additionalAttribute)
6567            dst.additionalAttribute.add(i.copy());
6568        };
6569        dst.sourceScope = sourceScope == null ? null : sourceScope.copy();
6570        dst.targetScope = targetScope == null ? null : targetScope.copy();
6571        if (group != null) {
6572          dst.group = new ArrayList<ConceptMapGroupComponent>();
6573          for (ConceptMapGroupComponent i : group)
6574            dst.group.add(i.copy());
6575        };
6576      }
6577
6578      protected ConceptMap typedCopy() {
6579        return copy();
6580      }
6581
6582      @Override
6583      public boolean equalsDeep(Base other_) {
6584        if (!super.equalsDeep(other_))
6585          return false;
6586        if (!(other_ instanceof ConceptMap))
6587          return false;
6588        ConceptMap o = (ConceptMap) other_;
6589        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
6590           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
6591           && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true)
6592           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true)
6593           && compareDeep(useContext, o.useContext, true) && compareDeep(jurisdiction, o.jurisdiction, true)
6594           && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true) && compareDeep(copyrightLabel, o.copyrightLabel, true)
6595           && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true)
6596           && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true)
6597           && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true)
6598           && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(property, o.property, true)
6599           && compareDeep(additionalAttribute, o.additionalAttribute, true) && compareDeep(sourceScope, o.sourceScope, true)
6600           && compareDeep(targetScope, o.targetScope, true) && compareDeep(group, o.group, true);
6601      }
6602
6603      @Override
6604      public boolean equalsShallow(Base other_) {
6605        if (!super.equalsShallow(other_))
6606          return false;
6607        if (!(other_ instanceof ConceptMap))
6608          return false;
6609        ConceptMap o = (ConceptMap) other_;
6610        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
6611           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true)
6612           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true)
6613           && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(copyrightLabel, o.copyrightLabel, true)
6614           && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true)
6615          ;
6616      }
6617
6618      public boolean isEmpty() {
6619        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
6620          , versionAlgorithm, name, title, status, experimental, date, publisher, contact
6621          , description, useContext, jurisdiction, purpose, copyright, copyrightLabel, approvalDate
6622          , lastReviewDate, effectivePeriod, topic, author, editor, reviewer, endorser, relatedArtifact
6623          , property, additionalAttribute, sourceScope, targetScope, group);
6624      }
6625
6626  @Override
6627  public ResourceType getResourceType() {
6628    return ResourceType.ConceptMap;
6629   }
6630
6631 /**
6632   * Search parameter: <b>context-quantity</b>
6633   * <p>
6634   * Description: <b>Multiple Resources: 
6635
6636* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
6637* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
6638* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
6639* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
6640* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
6641* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
6642* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
6643* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
6644* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
6645* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
6646* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
6647* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
6648* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
6649* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
6650* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
6651* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
6652* [Library](library.html): A quantity- or range-valued use context assigned to the library
6653* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
6654* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
6655* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
6656* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
6657* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
6658* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
6659* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
6660* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
6661* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
6662* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
6663* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
6664* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
6665* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
6666</b><br>
6667   * Type: <b>quantity</b><br>
6668   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
6669   * </p>
6670   */
6671  @SearchParamDefinition(name="context-quantity", path="(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition\r\n* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition\r\n* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide\r\n* [Library](library.html): A quantity- or range-valued use context assigned to the library\r\n* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script\r\n* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set\r\n", type="quantity" )
6672  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
6673 /**
6674   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
6675   * <p>
6676   * Description: <b>Multiple Resources: 
6677
6678* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
6679* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
6680* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
6681* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
6682* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
6683* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
6684* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
6685* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
6686* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
6687* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
6688* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
6689* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
6690* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
6691* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
6692* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
6693* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
6694* [Library](library.html): A quantity- or range-valued use context assigned to the library
6695* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
6696* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
6697* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
6698* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
6699* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
6700* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
6701* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
6702* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
6703* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
6704* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
6705* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
6706* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
6707* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
6708</b><br>
6709   * Type: <b>quantity</b><br>
6710   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
6711   * </p>
6712   */
6713  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
6714
6715 /**
6716   * Search parameter: <b>context-type-quantity</b>
6717   * <p>
6718   * Description: <b>Multiple Resources: 
6719
6720* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
6721* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
6722* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
6723* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
6724* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
6725* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
6726* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
6727* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
6728* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
6729* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
6730* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
6731* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
6732* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
6733* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
6734* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
6735* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
6736* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
6737* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
6738* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
6739* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
6740* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
6741* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
6742* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
6743* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
6744* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
6745* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
6746* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
6747* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
6748* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
6749* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
6750</b><br>
6751   * Type: <b>composite</b><br>
6752   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
6753   * </p>
6754   */
6755  @SearchParamDefinition(name="context-type-quantity", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide\r\n* [Library](library.html): A use context type and quantity- or range-based value assigned to the library\r\n* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context-quantity"} )
6756  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
6757 /**
6758   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
6759   * <p>
6760   * Description: <b>Multiple Resources: 
6761
6762* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
6763* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
6764* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
6765* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
6766* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
6767* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
6768* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
6769* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
6770* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
6771* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
6772* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
6773* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
6774* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
6775* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
6776* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
6777* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
6778* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
6779* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
6780* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
6781* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
6782* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
6783* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
6784* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
6785* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
6786* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
6787* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
6788* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
6789* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
6790* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
6791* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
6792</b><br>
6793   * Type: <b>composite</b><br>
6794   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
6795   * </p>
6796   */
6797  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);
6798
6799 /**
6800   * Search parameter: <b>context-type-value</b>
6801   * <p>
6802   * Description: <b>Multiple Resources: 
6803
6804* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
6805* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
6806* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
6807* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
6808* [Citation](citation.html): A use context type and value assigned to the citation
6809* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
6810* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
6811* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
6812* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
6813* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
6814* [Evidence](evidence.html): A use context type and value assigned to the evidence
6815* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
6816* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
6817* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
6818* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
6819* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
6820* [Library](library.html): A use context type and value assigned to the library
6821* [Measure](measure.html): A use context type and value assigned to the measure
6822* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
6823* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
6824* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
6825* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
6826* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
6827* [Requirements](requirements.html): A use context type and value assigned to the requirements
6828* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
6829* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
6830* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
6831* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
6832* [TestScript](testscript.html): A use context type and value assigned to the test script
6833* [ValueSet](valueset.html): A use context type and value assigned to the value set
6834</b><br>
6835   * Type: <b>composite</b><br>
6836   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
6837   * </p>
6838   */
6839  @SearchParamDefinition(name="context-type-value", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide\r\n* [Library](library.html): A use context type and value assigned to the library\r\n* [Measure](measure.html): A use context type and value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context"} )
6840  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
6841 /**
6842   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
6843   * <p>
6844   * Description: <b>Multiple Resources: 
6845
6846* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
6847* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
6848* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
6849* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
6850* [Citation](citation.html): A use context type and value assigned to the citation
6851* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
6852* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
6853* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
6854* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
6855* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
6856* [Evidence](evidence.html): A use context type and value assigned to the evidence
6857* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
6858* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
6859* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
6860* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
6861* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
6862* [Library](library.html): A use context type and value assigned to the library
6863* [Measure](measure.html): A use context type and value assigned to the measure
6864* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
6865* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
6866* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
6867* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
6868* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
6869* [Requirements](requirements.html): A use context type and value assigned to the requirements
6870* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
6871* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
6872* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
6873* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
6874* [TestScript](testscript.html): A use context type and value assigned to the test script
6875* [ValueSet](valueset.html): A use context type and value assigned to the value set
6876</b><br>
6877   * Type: <b>composite</b><br>
6878   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
6879   * </p>
6880   */
6881  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);
6882
6883 /**
6884   * Search parameter: <b>context-type</b>
6885   * <p>
6886   * Description: <b>Multiple Resources: 
6887
6888* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
6889* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
6890* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
6891* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
6892* [Citation](citation.html): A type of use context assigned to the citation
6893* [CodeSystem](codesystem.html): A type of use context assigned to the code system
6894* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
6895* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
6896* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
6897* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
6898* [Evidence](evidence.html): A type of use context assigned to the evidence
6899* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
6900* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
6901* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
6902* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
6903* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
6904* [Library](library.html): A type of use context assigned to the library
6905* [Measure](measure.html): A type of use context assigned to the measure
6906* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
6907* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
6908* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
6909* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
6910* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
6911* [Requirements](requirements.html): A type of use context assigned to the requirements
6912* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
6913* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
6914* [StructureMap](structuremap.html): A type of use context assigned to the structure map
6915* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
6916* [TestScript](testscript.html): A type of use context assigned to the test script
6917* [ValueSet](valueset.html): A type of use context assigned to the value set
6918</b><br>
6919   * Type: <b>token</b><br>
6920   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
6921   * </p>
6922   */
6923  @SearchParamDefinition(name="context-type", path="ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition\r\n* [Citation](citation.html): A type of use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A type of use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition\r\n* [Evidence](evidence.html): A type of use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide\r\n* [Library](library.html): A type of use context assigned to the library\r\n* [Measure](measure.html): A type of use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A type of use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A type of use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A type of use context assigned to the test script\r\n* [ValueSet](valueset.html): A type of use context assigned to the value set\r\n", type="token" )
6924  public static final String SP_CONTEXT_TYPE = "context-type";
6925 /**
6926   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
6927   * <p>
6928   * Description: <b>Multiple Resources: 
6929
6930* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
6931* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
6932* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
6933* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
6934* [Citation](citation.html): A type of use context assigned to the citation
6935* [CodeSystem](codesystem.html): A type of use context assigned to the code system
6936* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
6937* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
6938* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
6939* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
6940* [Evidence](evidence.html): A type of use context assigned to the evidence
6941* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
6942* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
6943* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
6944* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
6945* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
6946* [Library](library.html): A type of use context assigned to the library
6947* [Measure](measure.html): A type of use context assigned to the measure
6948* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
6949* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
6950* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
6951* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
6952* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
6953* [Requirements](requirements.html): A type of use context assigned to the requirements
6954* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
6955* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
6956* [StructureMap](structuremap.html): A type of use context assigned to the structure map
6957* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
6958* [TestScript](testscript.html): A type of use context assigned to the test script
6959* [ValueSet](valueset.html): A type of use context assigned to the value set
6960</b><br>
6961   * Type: <b>token</b><br>
6962   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
6963   * </p>
6964   */
6965  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
6966
6967 /**
6968   * Search parameter: <b>context</b>
6969   * <p>
6970   * Description: <b>Multiple Resources: 
6971
6972* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
6973* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
6974* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
6975* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
6976* [Citation](citation.html): A use context assigned to the citation
6977* [CodeSystem](codesystem.html): A use context assigned to the code system
6978* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
6979* [ConceptMap](conceptmap.html): A use context assigned to the concept map
6980* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
6981* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
6982* [Evidence](evidence.html): A use context assigned to the evidence
6983* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
6984* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
6985* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
6986* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
6987* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
6988* [Library](library.html): A use context assigned to the library
6989* [Measure](measure.html): A use context assigned to the measure
6990* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
6991* [NamingSystem](namingsystem.html): A use context assigned to the naming system
6992* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
6993* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
6994* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
6995* [Requirements](requirements.html): A use context assigned to the requirements
6996* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
6997* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
6998* [StructureMap](structuremap.html): A use context assigned to the structure map
6999* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
7000* [TestScript](testscript.html): A use context assigned to the test script
7001* [ValueSet](valueset.html): A use context assigned to the value set
7002</b><br>
7003   * Type: <b>token</b><br>
7004   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
7005   * </p>
7006   */
7007  @SearchParamDefinition(name="context", path="(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition\r\n* [Citation](citation.html): A use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context assigned to the event definition\r\n* [Evidence](evidence.html): A use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide\r\n* [Library](library.html): A use context assigned to the library\r\n* [Measure](measure.html): A use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context assigned to the test script\r\n* [ValueSet](valueset.html): A use context assigned to the value set\r\n", type="token" )
7008  public static final String SP_CONTEXT = "context";
7009 /**
7010   * <b>Fluent Client</b> search parameter constant for <b>context</b>
7011   * <p>
7012   * Description: <b>Multiple Resources: 
7013
7014* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
7015* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
7016* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
7017* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
7018* [Citation](citation.html): A use context assigned to the citation
7019* [CodeSystem](codesystem.html): A use context assigned to the code system
7020* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
7021* [ConceptMap](conceptmap.html): A use context assigned to the concept map
7022* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
7023* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
7024* [Evidence](evidence.html): A use context assigned to the evidence
7025* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
7026* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
7027* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
7028* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
7029* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
7030* [Library](library.html): A use context assigned to the library
7031* [Measure](measure.html): A use context assigned to the measure
7032* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
7033* [NamingSystem](namingsystem.html): A use context assigned to the naming system
7034* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
7035* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
7036* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
7037* [Requirements](requirements.html): A use context assigned to the requirements
7038* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
7039* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
7040* [StructureMap](structuremap.html): A use context assigned to the structure map
7041* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
7042* [TestScript](testscript.html): A use context assigned to the test script
7043* [ValueSet](valueset.html): A use context assigned to the value set
7044</b><br>
7045   * Type: <b>token</b><br>
7046   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
7047   * </p>
7048   */
7049  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
7050
7051 /**
7052   * Search parameter: <b>date</b>
7053   * <p>
7054   * Description: <b>Multiple Resources: 
7055
7056* [ActivityDefinition](activitydefinition.html): The activity definition publication date
7057* [ActorDefinition](actordefinition.html): The Actor Definition publication date
7058* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
7059* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
7060* [Citation](citation.html): The citation publication date
7061* [CodeSystem](codesystem.html): The code system publication date
7062* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
7063* [ConceptMap](conceptmap.html): The concept map publication date
7064* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
7065* [EventDefinition](eventdefinition.html): The event definition publication date
7066* [Evidence](evidence.html): The evidence publication date
7067* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
7068* [ExampleScenario](examplescenario.html): The example scenario publication date
7069* [GraphDefinition](graphdefinition.html): The graph definition publication date
7070* [ImplementationGuide](implementationguide.html): The implementation guide publication date
7071* [Library](library.html): The library publication date
7072* [Measure](measure.html): The measure publication date
7073* [MessageDefinition](messagedefinition.html): The message definition publication date
7074* [NamingSystem](namingsystem.html): The naming system publication date
7075* [OperationDefinition](operationdefinition.html): The operation definition publication date
7076* [PlanDefinition](plandefinition.html): The plan definition publication date
7077* [Questionnaire](questionnaire.html): The questionnaire publication date
7078* [Requirements](requirements.html): The requirements publication date
7079* [SearchParameter](searchparameter.html): The search parameter publication date
7080* [StructureDefinition](structuredefinition.html): The structure definition publication date
7081* [StructureMap](structuremap.html): The structure map publication date
7082* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
7083* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
7084* [TestScript](testscript.html): The test script publication date
7085* [ValueSet](valueset.html): The value set publication date
7086</b><br>
7087   * Type: <b>date</b><br>
7088   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
7089   * </p>
7090   */
7091  @SearchParamDefinition(name="date", path="ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The activity definition publication date\r\n* [ActorDefinition](actordefinition.html): The Actor Definition publication date\r\n* [CapabilityStatement](capabilitystatement.html): The capability statement publication date\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date\r\n* [Citation](citation.html): The citation publication date\r\n* [CodeSystem](codesystem.html): The code system publication date\r\n* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date\r\n* [ConceptMap](conceptmap.html): The concept map publication date\r\n* [ConditionDefinition](conditiondefinition.html): The condition definition publication date\r\n* [EventDefinition](eventdefinition.html): The event definition publication date\r\n* [Evidence](evidence.html): The evidence publication date\r\n* [EvidenceVariable](evidencevariable.html): The evidence variable publication date\r\n* [ExampleScenario](examplescenario.html): The example scenario publication date\r\n* [GraphDefinition](graphdefinition.html): The graph definition publication date\r\n* [ImplementationGuide](implementationguide.html): The implementation guide publication date\r\n* [Library](library.html): The library publication date\r\n* [Measure](measure.html): The measure publication date\r\n* [MessageDefinition](messagedefinition.html): The message definition publication date\r\n* [NamingSystem](namingsystem.html): The naming system publication date\r\n* [OperationDefinition](operationdefinition.html): The operation definition publication date\r\n* [PlanDefinition](plandefinition.html): The plan definition publication date\r\n* [Questionnaire](questionnaire.html): The questionnaire publication date\r\n* [Requirements](requirements.html): The requirements publication date\r\n* [SearchParameter](searchparameter.html): The search parameter publication date\r\n* [StructureDefinition](structuredefinition.html): The structure definition publication date\r\n* [StructureMap](structuremap.html): The structure map publication date\r\n* [SubscriptionTopic](subscriptiontopic.html): Date status first applied\r\n* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date\r\n* [TestScript](testscript.html): The test script publication date\r\n* [ValueSet](valueset.html): The value set publication date\r\n", type="date" )
7092  public static final String SP_DATE = "date";
7093 /**
7094   * <b>Fluent Client</b> search parameter constant for <b>date</b>
7095   * <p>
7096   * Description: <b>Multiple Resources: 
7097
7098* [ActivityDefinition](activitydefinition.html): The activity definition publication date
7099* [ActorDefinition](actordefinition.html): The Actor Definition publication date
7100* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
7101* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
7102* [Citation](citation.html): The citation publication date
7103* [CodeSystem](codesystem.html): The code system publication date
7104* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
7105* [ConceptMap](conceptmap.html): The concept map publication date
7106* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
7107* [EventDefinition](eventdefinition.html): The event definition publication date
7108* [Evidence](evidence.html): The evidence publication date
7109* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
7110* [ExampleScenario](examplescenario.html): The example scenario publication date
7111* [GraphDefinition](graphdefinition.html): The graph definition publication date
7112* [ImplementationGuide](implementationguide.html): The implementation guide publication date
7113* [Library](library.html): The library publication date
7114* [Measure](measure.html): The measure publication date
7115* [MessageDefinition](messagedefinition.html): The message definition publication date
7116* [NamingSystem](namingsystem.html): The naming system publication date
7117* [OperationDefinition](operationdefinition.html): The operation definition publication date
7118* [PlanDefinition](plandefinition.html): The plan definition publication date
7119* [Questionnaire](questionnaire.html): The questionnaire publication date
7120* [Requirements](requirements.html): The requirements publication date
7121* [SearchParameter](searchparameter.html): The search parameter publication date
7122* [StructureDefinition](structuredefinition.html): The structure definition publication date
7123* [StructureMap](structuremap.html): The structure map publication date
7124* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
7125* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
7126* [TestScript](testscript.html): The test script publication date
7127* [ValueSet](valueset.html): The value set publication date
7128</b><br>
7129   * Type: <b>date</b><br>
7130   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
7131   * </p>
7132   */
7133  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
7134
7135 /**
7136   * Search parameter: <b>description</b>
7137   * <p>
7138   * Description: <b>Multiple Resources: 
7139
7140* [ActivityDefinition](activitydefinition.html): The description of the activity definition
7141* [ActorDefinition](actordefinition.html): The description of the Actor Definition
7142* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
7143* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
7144* [Citation](citation.html): The description of the citation
7145* [CodeSystem](codesystem.html): The description of the code system
7146* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
7147* [ConceptMap](conceptmap.html): The description of the concept map
7148* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
7149* [EventDefinition](eventdefinition.html): The description of the event definition
7150* [Evidence](evidence.html): The description of the evidence
7151* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
7152* [GraphDefinition](graphdefinition.html): The description of the graph definition
7153* [ImplementationGuide](implementationguide.html): The description of the implementation guide
7154* [Library](library.html): The description of the library
7155* [Measure](measure.html): The description of the measure
7156* [MessageDefinition](messagedefinition.html): The description of the message definition
7157* [NamingSystem](namingsystem.html): The description of the naming system
7158* [OperationDefinition](operationdefinition.html): The description of the operation definition
7159* [PlanDefinition](plandefinition.html): The description of the plan definition
7160* [Questionnaire](questionnaire.html): The description of the questionnaire
7161* [Requirements](requirements.html): The description of the requirements
7162* [SearchParameter](searchparameter.html): The description of the search parameter
7163* [StructureDefinition](structuredefinition.html): The description of the structure definition
7164* [StructureMap](structuremap.html): The description of the structure map
7165* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
7166* [TestScript](testscript.html): The description of the test script
7167* [ValueSet](valueset.html): The description of the value set
7168</b><br>
7169   * Type: <b>string</b><br>
7170   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
7171   * </p>
7172   */
7173  @SearchParamDefinition(name="description", path="ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The description of the activity definition\r\n* [ActorDefinition](actordefinition.html): The description of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The description of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition\r\n* [Citation](citation.html): The description of the citation\r\n* [CodeSystem](codesystem.html): The description of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition\r\n* [ConceptMap](conceptmap.html): The description of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The description of the condition definition\r\n* [EventDefinition](eventdefinition.html): The description of the event definition\r\n* [Evidence](evidence.html): The description of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The description of the evidence variable\r\n* [GraphDefinition](graphdefinition.html): The description of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The description of the implementation guide\r\n* [Library](library.html): The description of the library\r\n* [Measure](measure.html): The description of the measure\r\n* [MessageDefinition](messagedefinition.html): The description of the message definition\r\n* [NamingSystem](namingsystem.html): The description of the naming system\r\n* [OperationDefinition](operationdefinition.html): The description of the operation definition\r\n* [PlanDefinition](plandefinition.html): The description of the plan definition\r\n* [Questionnaire](questionnaire.html): The description of the questionnaire\r\n* [Requirements](requirements.html): The description of the requirements\r\n* [SearchParameter](searchparameter.html): The description of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The description of the structure definition\r\n* [StructureMap](structuremap.html): The description of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities\r\n* [TestScript](testscript.html): The description of the test script\r\n* [ValueSet](valueset.html): The description of the value set\r\n", type="string" )
7174  public static final String SP_DESCRIPTION = "description";
7175 /**
7176   * <b>Fluent Client</b> search parameter constant for <b>description</b>
7177   * <p>
7178   * Description: <b>Multiple Resources: 
7179
7180* [ActivityDefinition](activitydefinition.html): The description of the activity definition
7181* [ActorDefinition](actordefinition.html): The description of the Actor Definition
7182* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
7183* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
7184* [Citation](citation.html): The description of the citation
7185* [CodeSystem](codesystem.html): The description of the code system
7186* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
7187* [ConceptMap](conceptmap.html): The description of the concept map
7188* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
7189* [EventDefinition](eventdefinition.html): The description of the event definition
7190* [Evidence](evidence.html): The description of the evidence
7191* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
7192* [GraphDefinition](graphdefinition.html): The description of the graph definition
7193* [ImplementationGuide](implementationguide.html): The description of the implementation guide
7194* [Library](library.html): The description of the library
7195* [Measure](measure.html): The description of the measure
7196* [MessageDefinition](messagedefinition.html): The description of the message definition
7197* [NamingSystem](namingsystem.html): The description of the naming system
7198* [OperationDefinition](operationdefinition.html): The description of the operation definition
7199* [PlanDefinition](plandefinition.html): The description of the plan definition
7200* [Questionnaire](questionnaire.html): The description of the questionnaire
7201* [Requirements](requirements.html): The description of the requirements
7202* [SearchParameter](searchparameter.html): The description of the search parameter
7203* [StructureDefinition](structuredefinition.html): The description of the structure definition
7204* [StructureMap](structuremap.html): The description of the structure map
7205* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
7206* [TestScript](testscript.html): The description of the test script
7207* [ValueSet](valueset.html): The description of the value set
7208</b><br>
7209   * Type: <b>string</b><br>
7210   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
7211   * </p>
7212   */
7213  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
7214
7215 /**
7216   * Search parameter: <b>identifier</b>
7217   * <p>
7218   * Description: <b>Multiple Resources: 
7219
7220* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7221* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7222* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7223* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7224* [Citation](citation.html): External identifier for the citation
7225* [CodeSystem](codesystem.html): External identifier for the code system
7226* [ConceptMap](conceptmap.html): External identifier for the concept map
7227* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7228* [EventDefinition](eventdefinition.html): External identifier for the event definition
7229* [Evidence](evidence.html): External identifier for the evidence
7230* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7231* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7232* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7233* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7234* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7235* [Library](library.html): External identifier for the library
7236* [Measure](measure.html): External identifier for the measure
7237* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7238* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7239* [NamingSystem](namingsystem.html): External identifier for the naming system
7240* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7241* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7242* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7243* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7244* [Requirements](requirements.html): External identifier for the requirements
7245* [SearchParameter](searchparameter.html): External identifier for the search parameter
7246* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7247* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7248* [StructureMap](structuremap.html): External identifier for the structure map
7249* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7250* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7251* [TestPlan](testplan.html): An identifier for the test plan
7252* [TestScript](testscript.html): External identifier for the test script
7253* [ValueSet](valueset.html): External identifier for the value set
7254</b><br>
7255   * Type: <b>token</b><br>
7256   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
7257   * </p>
7258   */
7259  @SearchParamDefinition(name="identifier", path="ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition\r\n* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition\r\n* [Citation](citation.html): External identifier for the citation\r\n* [CodeSystem](codesystem.html): External identifier for the code system\r\n* [ConceptMap](conceptmap.html): External identifier for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition\r\n* [EventDefinition](eventdefinition.html): External identifier for the event definition\r\n* [Evidence](evidence.html): External identifier for the evidence\r\n* [EvidenceReport](evidencereport.html): External identifier for the evidence report\r\n* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable\r\n* [ExampleScenario](examplescenario.html): External identifier for the example scenario\r\n* [GraphDefinition](graphdefinition.html): External identifier for the graph definition\r\n* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide\r\n* [Library](library.html): External identifier for the library\r\n* [Measure](measure.html): External identifier for the measure\r\n* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication\r\n* [MessageDefinition](messagedefinition.html): External identifier for the message definition\r\n* [NamingSystem](namingsystem.html): External identifier for the naming system\r\n* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition\r\n* [OperationDefinition](operationdefinition.html): External identifier for the search parameter\r\n* [PlanDefinition](plandefinition.html): External identifier for the plan definition\r\n* [Questionnaire](questionnaire.html): External identifier for the questionnaire\r\n* [Requirements](requirements.html): External identifier for the requirements\r\n* [SearchParameter](searchparameter.html): External identifier for the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): External identifier for the structure definition\r\n* [StructureMap](structuremap.html): External identifier for the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic\r\n* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities\r\n* [TestPlan](testplan.html): An identifier for the test plan\r\n* [TestScript](testscript.html): External identifier for the test script\r\n* [ValueSet](valueset.html): External identifier for the value set\r\n", type="token" )
7260  public static final String SP_IDENTIFIER = "identifier";
7261 /**
7262   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
7263   * <p>
7264   * Description: <b>Multiple Resources: 
7265
7266* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7267* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7268* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7269* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7270* [Citation](citation.html): External identifier for the citation
7271* [CodeSystem](codesystem.html): External identifier for the code system
7272* [ConceptMap](conceptmap.html): External identifier for the concept map
7273* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7274* [EventDefinition](eventdefinition.html): External identifier for the event definition
7275* [Evidence](evidence.html): External identifier for the evidence
7276* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7277* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7278* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7279* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7280* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7281* [Library](library.html): External identifier for the library
7282* [Measure](measure.html): External identifier for the measure
7283* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7284* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7285* [NamingSystem](namingsystem.html): External identifier for the naming system
7286* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7287* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7288* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7289* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7290* [Requirements](requirements.html): External identifier for the requirements
7291* [SearchParameter](searchparameter.html): External identifier for the search parameter
7292* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7293* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7294* [StructureMap](structuremap.html): External identifier for the structure map
7295* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7296* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7297* [TestPlan](testplan.html): An identifier for the test plan
7298* [TestScript](testscript.html): External identifier for the test script
7299* [ValueSet](valueset.html): External identifier for the value set
7300</b><br>
7301   * Type: <b>token</b><br>
7302   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
7303   * </p>
7304   */
7305  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
7306
7307 /**
7308   * Search parameter: <b>jurisdiction</b>
7309   * <p>
7310   * Description: <b>Multiple Resources: 
7311
7312* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7313* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7314* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7315* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7316* [Citation](citation.html): Intended jurisdiction for the citation
7317* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7318* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7319* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7320* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7321* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7322* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7323* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7324* [Library](library.html): Intended jurisdiction for the library
7325* [Measure](measure.html): Intended jurisdiction for the measure
7326* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7327* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7328* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7329* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7330* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7331* [Requirements](requirements.html): Intended jurisdiction for the requirements
7332* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7333* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7334* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7335* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7336* [TestScript](testscript.html): Intended jurisdiction for the test script
7337* [ValueSet](valueset.html): Intended jurisdiction for the value set
7338</b><br>
7339   * Type: <b>token</b><br>
7340   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
7341   * </p>
7342   */
7343  @SearchParamDefinition(name="jurisdiction", path="ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition\r\n* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition\r\n* [Citation](citation.html): Intended jurisdiction for the citation\r\n* [CodeSystem](codesystem.html): Intended jurisdiction for the code system\r\n* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition\r\n* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition\r\n* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario\r\n* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition\r\n* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide\r\n* [Library](library.html): Intended jurisdiction for the library\r\n* [Measure](measure.html): Intended jurisdiction for the measure\r\n* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition\r\n* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system\r\n* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition\r\n* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition\r\n* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire\r\n* [Requirements](requirements.html): Intended jurisdiction for the requirements\r\n* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter\r\n* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition\r\n* [StructureMap](structuremap.html): Intended jurisdiction for the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities\r\n* [TestScript](testscript.html): Intended jurisdiction for the test script\r\n* [ValueSet](valueset.html): Intended jurisdiction for the value set\r\n", type="token" )
7344  public static final String SP_JURISDICTION = "jurisdiction";
7345 /**
7346   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
7347   * <p>
7348   * Description: <b>Multiple Resources: 
7349
7350* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7351* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7352* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7353* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7354* [Citation](citation.html): Intended jurisdiction for the citation
7355* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7356* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7357* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7358* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7359* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7360* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7361* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7362* [Library](library.html): Intended jurisdiction for the library
7363* [Measure](measure.html): Intended jurisdiction for the measure
7364* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7365* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7366* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7367* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7368* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7369* [Requirements](requirements.html): Intended jurisdiction for the requirements
7370* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7371* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7372* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7373* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7374* [TestScript](testscript.html): Intended jurisdiction for the test script
7375* [ValueSet](valueset.html): Intended jurisdiction for the value set
7376</b><br>
7377   * Type: <b>token</b><br>
7378   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
7379   * </p>
7380   */
7381  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
7382
7383 /**
7384   * Search parameter: <b>name</b>
7385   * <p>
7386   * Description: <b>Multiple Resources: 
7387
7388* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7389* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7390* [Citation](citation.html): Computationally friendly name of the citation
7391* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7392* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7393* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7394* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7395* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7396* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7397* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7398* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7399* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7400* [Library](library.html): Computationally friendly name of the library
7401* [Measure](measure.html): Computationally friendly name of the measure
7402* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7403* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7404* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7405* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7406* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7407* [Requirements](requirements.html): Computationally friendly name of the requirements
7408* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7409* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7410* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7411* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7412* [TestScript](testscript.html): Computationally friendly name of the test script
7413* [ValueSet](valueset.html): Computationally friendly name of the value set
7414</b><br>
7415   * Type: <b>string</b><br>
7416   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
7417   * </p>
7418   */
7419  @SearchParamDefinition(name="name", path="ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition\r\n* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement\r\n* [Citation](citation.html): Computationally friendly name of the citation\r\n* [CodeSystem](codesystem.html): Computationally friendly name of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition\r\n* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition\r\n* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide\r\n* [Library](library.html): Computationally friendly name of the library\r\n* [Measure](measure.html): Computationally friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition\r\n* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system\r\n* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire\r\n* [Requirements](requirements.html): Computationally friendly name of the requirements\r\n* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition\r\n* [StructureMap](structuremap.html): Computationally friendly name of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): Computationally friendly name of the test script\r\n* [ValueSet](valueset.html): Computationally friendly name of the value set\r\n", type="string" )
7420  public static final String SP_NAME = "name";
7421 /**
7422   * <b>Fluent Client</b> search parameter constant for <b>name</b>
7423   * <p>
7424   * Description: <b>Multiple Resources: 
7425
7426* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7427* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7428* [Citation](citation.html): Computationally friendly name of the citation
7429* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7430* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7431* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7432* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7433* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7434* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7435* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7436* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7437* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7438* [Library](library.html): Computationally friendly name of the library
7439* [Measure](measure.html): Computationally friendly name of the measure
7440* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7441* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7442* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7443* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7444* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7445* [Requirements](requirements.html): Computationally friendly name of the requirements
7446* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7447* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7448* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7449* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7450* [TestScript](testscript.html): Computationally friendly name of the test script
7451* [ValueSet](valueset.html): Computationally friendly name of the value set
7452</b><br>
7453   * Type: <b>string</b><br>
7454   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
7455   * </p>
7456   */
7457  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
7458
7459 /**
7460   * Search parameter: <b>publisher</b>
7461   * <p>
7462   * Description: <b>Multiple Resources: 
7463
7464* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7465* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7466* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7467* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7468* [Citation](citation.html): Name of the publisher of the citation
7469* [CodeSystem](codesystem.html): Name of the publisher of the code system
7470* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7471* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7472* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7473* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7474* [Evidence](evidence.html): Name of the publisher of the evidence
7475* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7476* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7477* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7478* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7479* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7480* [Library](library.html): Name of the publisher of the library
7481* [Measure](measure.html): Name of the publisher of the measure
7482* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7483* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7484* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7485* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7486* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7487* [Requirements](requirements.html): Name of the publisher of the requirements
7488* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7489* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7490* [StructureMap](structuremap.html): Name of the publisher of the structure map
7491* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7492* [TestScript](testscript.html): Name of the publisher of the test script
7493* [ValueSet](valueset.html): Name of the publisher of the value set
7494</b><br>
7495   * Type: <b>string</b><br>
7496   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
7497   * </p>
7498   */
7499  @SearchParamDefinition(name="publisher", path="ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition\r\n* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition\r\n* [Citation](citation.html): Name of the publisher of the citation\r\n* [CodeSystem](codesystem.html): Name of the publisher of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition\r\n* [ConceptMap](conceptmap.html): Name of the publisher of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition\r\n* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition\r\n* [Evidence](evidence.html): Name of the publisher of the evidence\r\n* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide\r\n* [Library](library.html): Name of the publisher of the library\r\n* [Measure](measure.html): Name of the publisher of the measure\r\n* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition\r\n* [NamingSystem](namingsystem.html): Name of the publisher of the naming system\r\n* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition\r\n* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition\r\n* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire\r\n* [Requirements](requirements.html): Name of the publisher of the requirements\r\n* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition\r\n* [StructureMap](structuremap.html): Name of the publisher of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities\r\n* [TestScript](testscript.html): Name of the publisher of the test script\r\n* [ValueSet](valueset.html): Name of the publisher of the value set\r\n", type="string" )
7500  public static final String SP_PUBLISHER = "publisher";
7501 /**
7502   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
7503   * <p>
7504   * Description: <b>Multiple Resources: 
7505
7506* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7507* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7508* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7509* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7510* [Citation](citation.html): Name of the publisher of the citation
7511* [CodeSystem](codesystem.html): Name of the publisher of the code system
7512* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7513* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7514* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7515* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7516* [Evidence](evidence.html): Name of the publisher of the evidence
7517* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7518* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7519* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7520* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7521* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7522* [Library](library.html): Name of the publisher of the library
7523* [Measure](measure.html): Name of the publisher of the measure
7524* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7525* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7526* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7527* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7528* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7529* [Requirements](requirements.html): Name of the publisher of the requirements
7530* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7531* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7532* [StructureMap](structuremap.html): Name of the publisher of the structure map
7533* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7534* [TestScript](testscript.html): Name of the publisher of the test script
7535* [ValueSet](valueset.html): Name of the publisher of the value set
7536</b><br>
7537   * Type: <b>string</b><br>
7538   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
7539   * </p>
7540   */
7541  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
7542
7543 /**
7544   * Search parameter: <b>status</b>
7545   * <p>
7546   * Description: <b>Multiple Resources: 
7547
7548* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7549* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7550* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7551* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7552* [Citation](citation.html): The current status of the citation
7553* [CodeSystem](codesystem.html): The current status of the code system
7554* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7555* [ConceptMap](conceptmap.html): The current status of the concept map
7556* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7557* [EventDefinition](eventdefinition.html): The current status of the event definition
7558* [Evidence](evidence.html): The current status of the evidence
7559* [EvidenceReport](evidencereport.html): The current status of the evidence report
7560* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7561* [ExampleScenario](examplescenario.html): The current status of the example scenario
7562* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7563* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7564* [Library](library.html): The current status of the library
7565* [Measure](measure.html): The current status of the measure
7566* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7567* [MessageDefinition](messagedefinition.html): The current status of the message definition
7568* [NamingSystem](namingsystem.html): The current status of the naming system
7569* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7570* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7571* [PlanDefinition](plandefinition.html): The current status of the plan definition
7572* [Questionnaire](questionnaire.html): The current status of the questionnaire
7573* [Requirements](requirements.html): The current status of the requirements
7574* [SearchParameter](searchparameter.html): The current status of the search parameter
7575* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7576* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7577* [StructureMap](structuremap.html): The current status of the structure map
7578* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7579* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7580* [TestPlan](testplan.html): The current status of the test plan
7581* [TestScript](testscript.html): The current status of the test script
7582* [ValueSet](valueset.html): The current status of the value set
7583</b><br>
7584   * Type: <b>token</b><br>
7585   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
7586   * </p>
7587   */
7588  @SearchParamDefinition(name="status", path="ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The current status of the activity definition\r\n* [ActorDefinition](actordefinition.html): The current status of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition\r\n* [Citation](citation.html): The current status of the citation\r\n* [CodeSystem](codesystem.html): The current status of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition\r\n* [ConceptMap](conceptmap.html): The current status of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition\r\n* [EventDefinition](eventdefinition.html): The current status of the event definition\r\n* [Evidence](evidence.html): The current status of the evidence\r\n* [EvidenceReport](evidencereport.html): The current status of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable\r\n* [ExampleScenario](examplescenario.html): The current status of the example scenario\r\n* [GraphDefinition](graphdefinition.html): The current status of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The current status of the implementation guide\r\n* [Library](library.html): The current status of the library\r\n* [Measure](measure.html): The current status of the measure\r\n* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error\r\n* [MessageDefinition](messagedefinition.html): The current status of the message definition\r\n* [NamingSystem](namingsystem.html): The current status of the naming system\r\n* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown\r\n* [OperationDefinition](operationdefinition.html): The current status of the operation definition\r\n* [PlanDefinition](plandefinition.html): The current status of the plan definition\r\n* [Questionnaire](questionnaire.html): The current status of the questionnaire\r\n* [Requirements](requirements.html): The current status of the requirements\r\n* [SearchParameter](searchparameter.html): The current status of the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown\r\n* [StructureDefinition](structuredefinition.html): The current status of the structure definition\r\n* [StructureMap](structuremap.html): The current status of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown\r\n* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities\r\n* [TestPlan](testplan.html): The current status of the test plan\r\n* [TestScript](testscript.html): The current status of the test script\r\n* [ValueSet](valueset.html): The current status of the value set\r\n", type="token" )
7589  public static final String SP_STATUS = "status";
7590 /**
7591   * <b>Fluent Client</b> search parameter constant for <b>status</b>
7592   * <p>
7593   * Description: <b>Multiple Resources: 
7594
7595* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7596* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7597* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7598* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7599* [Citation](citation.html): The current status of the citation
7600* [CodeSystem](codesystem.html): The current status of the code system
7601* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7602* [ConceptMap](conceptmap.html): The current status of the concept map
7603* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7604* [EventDefinition](eventdefinition.html): The current status of the event definition
7605* [Evidence](evidence.html): The current status of the evidence
7606* [EvidenceReport](evidencereport.html): The current status of the evidence report
7607* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7608* [ExampleScenario](examplescenario.html): The current status of the example scenario
7609* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7610* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7611* [Library](library.html): The current status of the library
7612* [Measure](measure.html): The current status of the measure
7613* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7614* [MessageDefinition](messagedefinition.html): The current status of the message definition
7615* [NamingSystem](namingsystem.html): The current status of the naming system
7616* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7617* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7618* [PlanDefinition](plandefinition.html): The current status of the plan definition
7619* [Questionnaire](questionnaire.html): The current status of the questionnaire
7620* [Requirements](requirements.html): The current status of the requirements
7621* [SearchParameter](searchparameter.html): The current status of the search parameter
7622* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7623* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7624* [StructureMap](structuremap.html): The current status of the structure map
7625* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7626* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7627* [TestPlan](testplan.html): The current status of the test plan
7628* [TestScript](testscript.html): The current status of the test script
7629* [ValueSet](valueset.html): The current status of the value set
7630</b><br>
7631   * Type: <b>token</b><br>
7632   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
7633   * </p>
7634   */
7635  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
7636
7637 /**
7638   * Search parameter: <b>title</b>
7639   * <p>
7640   * Description: <b>Multiple Resources: 
7641
7642* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
7643* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
7644* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
7645* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
7646* [Citation](citation.html): The human-friendly name of the citation
7647* [CodeSystem](codesystem.html): The human-friendly name of the code system
7648* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
7649* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
7650* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
7651* [Evidence](evidence.html): The human-friendly name of the evidence
7652* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
7653* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
7654* [Library](library.html): The human-friendly name of the library
7655* [Measure](measure.html): The human-friendly name of the measure
7656* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
7657* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
7658* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
7659* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
7660* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
7661* [Requirements](requirements.html): The human-friendly name of the requirements
7662* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
7663* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
7664* [StructureMap](structuremap.html): The human-friendly name of the structure map
7665* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
7666* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
7667* [TestScript](testscript.html): The human-friendly name of the test script
7668* [ValueSet](valueset.html): The human-friendly name of the value set
7669</b><br>
7670   * Type: <b>string</b><br>
7671   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
7672   * </p>
7673   */
7674  @SearchParamDefinition(name="title", path="ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition\r\n* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition\r\n* [Citation](citation.html): The human-friendly name of the citation\r\n* [CodeSystem](codesystem.html): The human-friendly name of the code system\r\n* [ConceptMap](conceptmap.html): The human-friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition\r\n* [Evidence](evidence.html): The human-friendly name of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable\r\n* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide\r\n* [Library](library.html): The human-friendly name of the library\r\n* [Measure](measure.html): The human-friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition\r\n* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition\r\n* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire\r\n* [Requirements](requirements.html): The human-friendly name of the requirements\r\n* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition\r\n* [StructureMap](structuremap.html): The human-friendly name of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): The human-friendly name of the test script\r\n* [ValueSet](valueset.html): The human-friendly name of the value set\r\n", type="string" )
7675  public static final String SP_TITLE = "title";
7676 /**
7677   * <b>Fluent Client</b> search parameter constant for <b>title</b>
7678   * <p>
7679   * Description: <b>Multiple Resources: 
7680
7681* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
7682* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
7683* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
7684* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
7685* [Citation](citation.html): The human-friendly name of the citation
7686* [CodeSystem](codesystem.html): The human-friendly name of the code system
7687* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
7688* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
7689* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
7690* [Evidence](evidence.html): The human-friendly name of the evidence
7691* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
7692* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
7693* [Library](library.html): The human-friendly name of the library
7694* [Measure](measure.html): The human-friendly name of the measure
7695* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
7696* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
7697* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
7698* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
7699* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
7700* [Requirements](requirements.html): The human-friendly name of the requirements
7701* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
7702* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
7703* [StructureMap](structuremap.html): The human-friendly name of the structure map
7704* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
7705* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
7706* [TestScript](testscript.html): The human-friendly name of the test script
7707* [ValueSet](valueset.html): The human-friendly name of the value set
7708</b><br>
7709   * Type: <b>string</b><br>
7710   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
7711   * </p>
7712   */
7713  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
7714
7715 /**
7716   * Search parameter: <b>url</b>
7717   * <p>
7718   * Description: <b>Multiple Resources: 
7719
7720* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
7721* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
7722* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
7723* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
7724* [Citation](citation.html): The uri that identifies the citation
7725* [CodeSystem](codesystem.html): The uri that identifies the code system
7726* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
7727* [ConceptMap](conceptmap.html): The URI that identifies the concept map
7728* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
7729* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
7730* [Evidence](evidence.html): The uri that identifies the evidence
7731* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
7732* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
7733* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
7734* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
7735* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
7736* [Library](library.html): The uri that identifies the library
7737* [Measure](measure.html): The uri that identifies the measure
7738* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
7739* [NamingSystem](namingsystem.html): The uri that identifies the naming system
7740* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
7741* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
7742* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
7743* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
7744* [Requirements](requirements.html): The uri that identifies the requirements
7745* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
7746* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
7747* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
7748* [StructureMap](structuremap.html): The uri that identifies the structure map
7749* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
7750* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
7751* [TestPlan](testplan.html): The uri that identifies the test plan
7752* [TestScript](testscript.html): The uri that identifies the test script
7753* [ValueSet](valueset.html): The uri that identifies the value set
7754</b><br>
7755   * Type: <b>uri</b><br>
7756   * Path: <b>ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url</b><br>
7757   * </p>
7758   */
7759  @SearchParamDefinition(name="url", path="ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition\r\n* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition\r\n* [Citation](citation.html): The uri that identifies the citation\r\n* [CodeSystem](codesystem.html): The uri that identifies the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition\r\n* [ConceptMap](conceptmap.html): The URI that identifies the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition\r\n* [EventDefinition](eventdefinition.html): The uri that identifies the event definition\r\n* [Evidence](evidence.html): The uri that identifies the evidence\r\n* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable\r\n* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario\r\n* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition\r\n* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide\r\n* [Library](library.html): The uri that identifies the library\r\n* [Measure](measure.html): The uri that identifies the measure\r\n* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition\r\n* [NamingSystem](namingsystem.html): The uri that identifies the naming system\r\n* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition\r\n* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition\r\n* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition\r\n* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire\r\n* [Requirements](requirements.html): The uri that identifies the requirements\r\n* [SearchParameter](searchparameter.html): The uri that identifies the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition\r\n* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition\r\n* [StructureMap](structuremap.html): The uri that identifies the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities\r\n* [TestPlan](testplan.html): The uri that identifies the test plan\r\n* [TestScript](testscript.html): The uri that identifies the test script\r\n* [ValueSet](valueset.html): The uri that identifies the value set\r\n", type="uri" )
7760  public static final String SP_URL = "url";
7761 /**
7762   * <b>Fluent Client</b> search parameter constant for <b>url</b>
7763   * <p>
7764   * Description: <b>Multiple Resources: 
7765
7766* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
7767* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
7768* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
7769* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
7770* [Citation](citation.html): The uri that identifies the citation
7771* [CodeSystem](codesystem.html): The uri that identifies the code system
7772* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
7773* [ConceptMap](conceptmap.html): The URI that identifies the concept map
7774* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
7775* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
7776* [Evidence](evidence.html): The uri that identifies the evidence
7777* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
7778* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
7779* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
7780* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
7781* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
7782* [Library](library.html): The uri that identifies the library
7783* [Measure](measure.html): The uri that identifies the measure
7784* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
7785* [NamingSystem](namingsystem.html): The uri that identifies the naming system
7786* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
7787* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
7788* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
7789* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
7790* [Requirements](requirements.html): The uri that identifies the requirements
7791* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
7792* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
7793* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
7794* [StructureMap](structuremap.html): The uri that identifies the structure map
7795* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
7796* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
7797* [TestPlan](testplan.html): The uri that identifies the test plan
7798* [TestScript](testscript.html): The uri that identifies the test script
7799* [ValueSet](valueset.html): The uri that identifies the value set
7800</b><br>
7801   * Type: <b>uri</b><br>
7802   * Path: <b>ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url</b><br>
7803   * </p>
7804   */
7805  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
7806
7807 /**
7808   * Search parameter: <b>version</b>
7809   * <p>
7810   * Description: <b>Multiple Resources: 
7811
7812* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
7813* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
7814* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
7815* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
7816* [Citation](citation.html): The business version of the citation
7817* [CodeSystem](codesystem.html): The business version of the code system
7818* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
7819* [ConceptMap](conceptmap.html): The business version of the concept map
7820* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
7821* [EventDefinition](eventdefinition.html): The business version of the event definition
7822* [Evidence](evidence.html): The business version of the evidence
7823* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
7824* [ExampleScenario](examplescenario.html): The business version of the example scenario
7825* [GraphDefinition](graphdefinition.html): The business version of the graph definition
7826* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
7827* [Library](library.html): The business version of the library
7828* [Measure](measure.html): The business version of the measure
7829* [MessageDefinition](messagedefinition.html): The business version of the message definition
7830* [NamingSystem](namingsystem.html): The business version of the naming system
7831* [OperationDefinition](operationdefinition.html): The business version of the operation definition
7832* [PlanDefinition](plandefinition.html): The business version of the plan definition
7833* [Questionnaire](questionnaire.html): The business version of the questionnaire
7834* [Requirements](requirements.html): The business version of the requirements
7835* [SearchParameter](searchparameter.html): The business version of the search parameter
7836* [StructureDefinition](structuredefinition.html): The business version of the structure definition
7837* [StructureMap](structuremap.html): The business version of the structure map
7838* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
7839* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
7840* [TestScript](testscript.html): The business version of the test script
7841* [ValueSet](valueset.html): The business version of the value set
7842</b><br>
7843   * Type: <b>token</b><br>
7844   * Path: <b>ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version</b><br>
7845   * </p>
7846   */
7847  @SearchParamDefinition(name="version", path="ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The business version of the activity definition\r\n* [ActorDefinition](actordefinition.html): The business version of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition\r\n* [Citation](citation.html): The business version of the citation\r\n* [CodeSystem](codesystem.html): The business version of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition\r\n* [ConceptMap](conceptmap.html): The business version of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition\r\n* [EventDefinition](eventdefinition.html): The business version of the event definition\r\n* [Evidence](evidence.html): The business version of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable\r\n* [ExampleScenario](examplescenario.html): The business version of the example scenario\r\n* [GraphDefinition](graphdefinition.html): The business version of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The business version of the implementation guide\r\n* [Library](library.html): The business version of the library\r\n* [Measure](measure.html): The business version of the measure\r\n* [MessageDefinition](messagedefinition.html): The business version of the message definition\r\n* [NamingSystem](namingsystem.html): The business version of the naming system\r\n* [OperationDefinition](operationdefinition.html): The business version of the operation definition\r\n* [PlanDefinition](plandefinition.html): The business version of the plan definition\r\n* [Questionnaire](questionnaire.html): The business version of the questionnaire\r\n* [Requirements](requirements.html): The business version of the requirements\r\n* [SearchParameter](searchparameter.html): The business version of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The business version of the structure definition\r\n* [StructureMap](structuremap.html): The business version of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic\r\n* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities\r\n* [TestScript](testscript.html): The business version of the test script\r\n* [ValueSet](valueset.html): The business version of the value set\r\n", type="token" )
7848  public static final String SP_VERSION = "version";
7849 /**
7850   * <b>Fluent Client</b> search parameter constant for <b>version</b>
7851   * <p>
7852   * Description: <b>Multiple Resources: 
7853
7854* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
7855* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
7856* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
7857* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
7858* [Citation](citation.html): The business version of the citation
7859* [CodeSystem](codesystem.html): The business version of the code system
7860* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
7861* [ConceptMap](conceptmap.html): The business version of the concept map
7862* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
7863* [EventDefinition](eventdefinition.html): The business version of the event definition
7864* [Evidence](evidence.html): The business version of the evidence
7865* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
7866* [ExampleScenario](examplescenario.html): The business version of the example scenario
7867* [GraphDefinition](graphdefinition.html): The business version of the graph definition
7868* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
7869* [Library](library.html): The business version of the library
7870* [Measure](measure.html): The business version of the measure
7871* [MessageDefinition](messagedefinition.html): The business version of the message definition
7872* [NamingSystem](namingsystem.html): The business version of the naming system
7873* [OperationDefinition](operationdefinition.html): The business version of the operation definition
7874* [PlanDefinition](plandefinition.html): The business version of the plan definition
7875* [Questionnaire](questionnaire.html): The business version of the questionnaire
7876* [Requirements](requirements.html): The business version of the requirements
7877* [SearchParameter](searchparameter.html): The business version of the search parameter
7878* [StructureDefinition](structuredefinition.html): The business version of the structure definition
7879* [StructureMap](structuremap.html): The business version of the structure map
7880* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
7881* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
7882* [TestScript](testscript.html): The business version of the test script
7883* [ValueSet](valueset.html): The business version of the value set
7884</b><br>
7885   * Type: <b>token</b><br>
7886   * Path: <b>ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version</b><br>
7887   * </p>
7888   */
7889  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
7890
7891 /**
7892   * Search parameter: <b>mapping-property</b>
7893   * <p>
7894   * Description: <b>Other properties required for this mapping</b><br>
7895   * Type: <b>uri</b><br>
7896   * Path: <b>ConceptMap.property.uri</b><br>
7897   * </p>
7898   */
7899  @SearchParamDefinition(name="mapping-property", path="ConceptMap.property.uri", description="Other properties required for this mapping", type="uri" )
7900  public static final String SP_MAPPING_PROPERTY = "mapping-property";
7901 /**
7902   * <b>Fluent Client</b> search parameter constant for <b>mapping-property</b>
7903   * <p>
7904   * Description: <b>Other properties required for this mapping</b><br>
7905   * Type: <b>uri</b><br>
7906   * Path: <b>ConceptMap.property.uri</b><br>
7907   * </p>
7908   */
7909  public static final ca.uhn.fhir.rest.gclient.UriClientParam MAPPING_PROPERTY = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_MAPPING_PROPERTY);
7910
7911 /**
7912   * Search parameter: <b>other-map</b>
7913   * <p>
7914   * Description: <b>canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped</b><br>
7915   * Type: <b>reference</b><br>
7916   * Path: <b>ConceptMap.group.unmapped.otherMap</b><br>
7917   * </p>
7918   */
7919  @SearchParamDefinition(name="other-map", path="ConceptMap.group.unmapped.otherMap", description="canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped", type="reference", target={ConceptMap.class } )
7920  public static final String SP_OTHER_MAP = "other-map";
7921 /**
7922   * <b>Fluent Client</b> search parameter constant for <b>other-map</b>
7923   * <p>
7924   * Description: <b>canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped</b><br>
7925   * Type: <b>reference</b><br>
7926   * Path: <b>ConceptMap.group.unmapped.otherMap</b><br>
7927   * </p>
7928   */
7929  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam OTHER_MAP = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_OTHER_MAP);
7930
7931/**
7932   * Constant for fluent queries to be used to add include statements. Specifies
7933   * the path value of "<b>ConceptMap:other-map</b>".
7934   */
7935  public static final ca.uhn.fhir.model.api.Include INCLUDE_OTHER_MAP = new ca.uhn.fhir.model.api.Include("ConceptMap:other-map").toLocked();
7936
7937 /**
7938   * Search parameter: <b>source-code</b>
7939   * <p>
7940   * Description: <b>Identifies elements being mapped</b><br>
7941   * Type: <b>token</b><br>
7942   * Path: <b>ConceptMap.group.element.code</b><br>
7943   * </p>
7944   */
7945  @SearchParamDefinition(name="source-code", path="ConceptMap.group.element.code", description="Identifies elements being mapped", type="token" )
7946  public static final String SP_SOURCE_CODE = "source-code";
7947 /**
7948   * <b>Fluent Client</b> search parameter constant for <b>source-code</b>
7949   * <p>
7950   * Description: <b>Identifies elements being mapped</b><br>
7951   * Type: <b>token</b><br>
7952   * Path: <b>ConceptMap.group.element.code</b><br>
7953   * </p>
7954   */
7955  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SOURCE_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SOURCE_CODE);
7956
7957 /**
7958   * Search parameter: <b>source-group-system</b>
7959   * <p>
7960   * Description: <b>Source system where concepts to be mapped are defined</b><br>
7961   * Type: <b>reference</b><br>
7962   * Path: <b>ConceptMap.group.source</b><br>
7963   * </p>
7964   */
7965  @SearchParamDefinition(name="source-group-system", path="ConceptMap.group.source", description="Source system where concepts to be mapped are defined", type="reference", target={CodeSystem.class } )
7966  public static final String SP_SOURCE_GROUP_SYSTEM = "source-group-system";
7967 /**
7968   * <b>Fluent Client</b> search parameter constant for <b>source-group-system</b>
7969   * <p>
7970   * Description: <b>Source system where concepts to be mapped are defined</b><br>
7971   * Type: <b>reference</b><br>
7972   * Path: <b>ConceptMap.group.source</b><br>
7973   * </p>
7974   */
7975  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE_GROUP_SYSTEM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE_GROUP_SYSTEM);
7976
7977/**
7978   * Constant for fluent queries to be used to add include statements. Specifies
7979   * the path value of "<b>ConceptMap:source-group-system</b>".
7980   */
7981  public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE_GROUP_SYSTEM = new ca.uhn.fhir.model.api.Include("ConceptMap:source-group-system").toLocked();
7982
7983 /**
7984   * Search parameter: <b>source-scope-uri</b>
7985   * <p>
7986   * Description: <b>The URI for the source value set that contains the concepts being mapped</b><br>
7987   * Type: <b>uri</b><br>
7988   * Path: <b>(ConceptMap.sourceScope as uri)</b><br>
7989   * </p>
7990   */
7991  @SearchParamDefinition(name="source-scope-uri", path="(ConceptMap.sourceScope as uri)", description="The URI for the source value set that contains the concepts being mapped", type="uri" )
7992  public static final String SP_SOURCE_SCOPE_URI = "source-scope-uri";
7993 /**
7994   * <b>Fluent Client</b> search parameter constant for <b>source-scope-uri</b>
7995   * <p>
7996   * Description: <b>The URI for the source value set that contains the concepts being mapped</b><br>
7997   * Type: <b>uri</b><br>
7998   * Path: <b>(ConceptMap.sourceScope as uri)</b><br>
7999   * </p>
8000   */
8001  public static final ca.uhn.fhir.rest.gclient.UriClientParam SOURCE_SCOPE_URI = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_SOURCE_SCOPE_URI);
8002
8003 /**
8004   * Search parameter: <b>source-scope</b>
8005   * <p>
8006   * Description: <b>The source value set that contains the concepts that are being mapped</b><br>
8007   * Type: <b>reference</b><br>
8008   * Path: <b>(ConceptMap.sourceScope as canonical)</b><br>
8009   * </p>
8010   */
8011  @SearchParamDefinition(name="source-scope", path="(ConceptMap.sourceScope as canonical)", description="The source value set that contains the concepts that are being mapped", type="reference", target={ValueSet.class } )
8012  public static final String SP_SOURCE_SCOPE = "source-scope";
8013 /**
8014   * <b>Fluent Client</b> search parameter constant for <b>source-scope</b>
8015   * <p>
8016   * Description: <b>The source value set that contains the concepts that are being mapped</b><br>
8017   * Type: <b>reference</b><br>
8018   * Path: <b>(ConceptMap.sourceScope as canonical)</b><br>
8019   * </p>
8020   */
8021  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE_SCOPE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE_SCOPE);
8022
8023/**
8024   * Constant for fluent queries to be used to add include statements. Specifies
8025   * the path value of "<b>ConceptMap:source-scope</b>".
8026   */
8027  public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE_SCOPE = new ca.uhn.fhir.model.api.Include("ConceptMap:source-scope").toLocked();
8028
8029 /**
8030   * Search parameter: <b>target-code</b>
8031   * <p>
8032   * Description: <b>Code that identifies the target element</b><br>
8033   * Type: <b>token</b><br>
8034   * Path: <b>ConceptMap.group.element.target.code</b><br>
8035   * </p>
8036   */
8037  @SearchParamDefinition(name="target-code", path="ConceptMap.group.element.target.code", description="Code that identifies the target element", type="token" )
8038  public static final String SP_TARGET_CODE = "target-code";
8039 /**
8040   * <b>Fluent Client</b> search parameter constant for <b>target-code</b>
8041   * <p>
8042   * Description: <b>Code that identifies the target element</b><br>
8043   * Type: <b>token</b><br>
8044   * Path: <b>ConceptMap.group.element.target.code</b><br>
8045   * </p>
8046   */
8047  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TARGET_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TARGET_CODE);
8048
8049 /**
8050   * Search parameter: <b>target-group-system</b>
8051   * <p>
8052   * Description: <b>Target system that the concepts are to be mapped to</b><br>
8053   * Type: <b>reference</b><br>
8054   * Path: <b>ConceptMap.group.target</b><br>
8055   * </p>
8056   */
8057  @SearchParamDefinition(name="target-group-system", path="ConceptMap.group.target", description="Target system that the concepts are to be mapped to", type="reference", target={CodeSystem.class } )
8058  public static final String SP_TARGET_GROUP_SYSTEM = "target-group-system";
8059 /**
8060   * <b>Fluent Client</b> search parameter constant for <b>target-group-system</b>
8061   * <p>
8062   * Description: <b>Target system that the concepts are to be mapped to</b><br>
8063   * Type: <b>reference</b><br>
8064   * Path: <b>ConceptMap.group.target</b><br>
8065   * </p>
8066   */
8067  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam TARGET_GROUP_SYSTEM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_TARGET_GROUP_SYSTEM);
8068
8069/**
8070   * Constant for fluent queries to be used to add include statements. Specifies
8071   * the path value of "<b>ConceptMap:target-group-system</b>".
8072   */
8073  public static final ca.uhn.fhir.model.api.Include INCLUDE_TARGET_GROUP_SYSTEM = new ca.uhn.fhir.model.api.Include("ConceptMap:target-group-system").toLocked();
8074
8075 /**
8076   * Search parameter: <b>target-scope-uri</b>
8077   * <p>
8078   * Description: <b>The URI for the target value set that contains the concepts being mapped.</b><br>
8079   * Type: <b>uri</b><br>
8080   * Path: <b>(ConceptMap.targetScope as uri)</b><br>
8081   * </p>
8082   */
8083  @SearchParamDefinition(name="target-scope-uri", path="(ConceptMap.targetScope as uri)", description="The URI for the target value set that contains the concepts being mapped.", type="uri" )
8084  public static final String SP_TARGET_SCOPE_URI = "target-scope-uri";
8085 /**
8086   * <b>Fluent Client</b> search parameter constant for <b>target-scope-uri</b>
8087   * <p>
8088   * Description: <b>The URI for the target value set that contains the concepts being mapped.</b><br>
8089   * Type: <b>uri</b><br>
8090   * Path: <b>(ConceptMap.targetScope as uri)</b><br>
8091   * </p>
8092   */
8093  public static final ca.uhn.fhir.rest.gclient.UriClientParam TARGET_SCOPE_URI = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_TARGET_SCOPE_URI);
8094
8095 /**
8096   * Search parameter: <b>target-scope</b>
8097   * <p>
8098   * Description: <b>The target value set which provides context for the mappings</b><br>
8099   * Type: <b>reference</b><br>
8100   * Path: <b>(ConceptMap.targetScope as canonical)</b><br>
8101   * </p>
8102   */
8103  @SearchParamDefinition(name="target-scope", path="(ConceptMap.targetScope as canonical)", description="The target value set which provides context for the mappings", type="reference", target={ValueSet.class } )
8104  public static final String SP_TARGET_SCOPE = "target-scope";
8105 /**
8106   * <b>Fluent Client</b> search parameter constant for <b>target-scope</b>
8107   * <p>
8108   * Description: <b>The target value set which provides context for the mappings</b><br>
8109   * Type: <b>reference</b><br>
8110   * Path: <b>(ConceptMap.targetScope as canonical)</b><br>
8111   * </p>
8112   */
8113  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam TARGET_SCOPE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_TARGET_SCOPE);
8114
8115/**
8116   * Constant for fluent queries to be used to add include statements. Specifies
8117   * the path value of "<b>ConceptMap:target-scope</b>".
8118   */
8119  public static final ca.uhn.fhir.model.api.Include INCLUDE_TARGET_SCOPE = new ca.uhn.fhir.model.api.Include("ConceptMap:target-scope").toLocked();
8120
8121 /**
8122   * Search parameter: <b>derived-from</b>
8123   * <p>
8124   * Description: <b>Multiple Resources: 
8125
8126* [ActivityDefinition](activitydefinition.html): What resource is being referenced
8127* [CodeSystem](codesystem.html): A resource that the CodeSystem is derived from
8128* [ConceptMap](conceptmap.html): A resource that the ConceptMap is derived from
8129* [EventDefinition](eventdefinition.html): What resource is being referenced
8130* [EvidenceVariable](evidencevariable.html): What resource is being referenced
8131* [Library](library.html): What resource is being referenced
8132* [Measure](measure.html): What resource is being referenced
8133* [NamingSystem](namingsystem.html): A resource that the NamingSystem is derived from
8134* [PlanDefinition](plandefinition.html): What resource is being referenced
8135* [ValueSet](valueset.html): A resource that the ValueSet is derived from
8136</b><br>
8137   * Type: <b>reference</b><br>
8138   * Path: <b>ActivityDefinition.relatedArtifact.where(type='derived-from').resource | CodeSystem.relatedArtifact.where(type='derived-from').resource | ConceptMap.relatedArtifact.where(type='derived-from').resource | EventDefinition.relatedArtifact.where(type='derived-from').resource | EvidenceVariable.relatedArtifact.where(type='derived-from').resource | Library.relatedArtifact.where(type='derived-from').resource | Measure.relatedArtifact.where(type='derived-from').resource | NamingSystem.relatedArtifact.where(type='derived-from').resource | PlanDefinition.relatedArtifact.where(type='derived-from').resource | ValueSet.relatedArtifact.where(type='derived-from').resource</b><br>
8139   * </p>
8140   */
8141  @SearchParamDefinition(name="derived-from", path="ActivityDefinition.relatedArtifact.where(type='derived-from').resource | CodeSystem.relatedArtifact.where(type='derived-from').resource | ConceptMap.relatedArtifact.where(type='derived-from').resource | EventDefinition.relatedArtifact.where(type='derived-from').resource | EvidenceVariable.relatedArtifact.where(type='derived-from').resource | Library.relatedArtifact.where(type='derived-from').resource | Measure.relatedArtifact.where(type='derived-from').resource | NamingSystem.relatedArtifact.where(type='derived-from').resource | PlanDefinition.relatedArtifact.where(type='derived-from').resource | ValueSet.relatedArtifact.where(type='derived-from').resource", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): What resource is being referenced\r\n* [CodeSystem](codesystem.html): A resource that the CodeSystem is derived from\r\n* [ConceptMap](conceptmap.html): A resource that the ConceptMap is derived from\r\n* [EventDefinition](eventdefinition.html): What resource is being referenced\r\n* [EvidenceVariable](evidencevariable.html): What resource is being referenced\r\n* [Library](library.html): What resource is being referenced\r\n* [Measure](measure.html): What resource is being referenced\r\n* [NamingSystem](namingsystem.html): A resource that the NamingSystem is derived from\r\n* [PlanDefinition](plandefinition.html): What resource is being referenced\r\n* [ValueSet](valueset.html): A resource that the ValueSet is derived from\r\n", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
8142  public static final String SP_DERIVED_FROM = "derived-from";
8143 /**
8144   * <b>Fluent Client</b> search parameter constant for <b>derived-from</b>
8145   * <p>
8146   * Description: <b>Multiple Resources: 
8147
8148* [ActivityDefinition](activitydefinition.html): What resource is being referenced
8149* [CodeSystem](codesystem.html): A resource that the CodeSystem is derived from
8150* [ConceptMap](conceptmap.html): A resource that the ConceptMap is derived from
8151* [EventDefinition](eventdefinition.html): What resource is being referenced
8152* [EvidenceVariable](evidencevariable.html): What resource is being referenced
8153* [Library](library.html): What resource is being referenced
8154* [Measure](measure.html): What resource is being referenced
8155* [NamingSystem](namingsystem.html): A resource that the NamingSystem is derived from
8156* [PlanDefinition](plandefinition.html): What resource is being referenced
8157* [ValueSet](valueset.html): A resource that the ValueSet is derived from
8158</b><br>
8159   * Type: <b>reference</b><br>
8160   * Path: <b>ActivityDefinition.relatedArtifact.where(type='derived-from').resource | CodeSystem.relatedArtifact.where(type='derived-from').resource | ConceptMap.relatedArtifact.where(type='derived-from').resource | EventDefinition.relatedArtifact.where(type='derived-from').resource | EvidenceVariable.relatedArtifact.where(type='derived-from').resource | Library.relatedArtifact.where(type='derived-from').resource | Measure.relatedArtifact.where(type='derived-from').resource | NamingSystem.relatedArtifact.where(type='derived-from').resource | PlanDefinition.relatedArtifact.where(type='derived-from').resource | ValueSet.relatedArtifact.where(type='derived-from').resource</b><br>
8161   * </p>
8162   */
8163  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM);
8164
8165/**
8166   * Constant for fluent queries to be used to add include statements. Specifies
8167   * the path value of "<b>ConceptMap:derived-from</b>".
8168   */
8169  public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("ConceptMap:derived-from").toLocked();
8170
8171 /**
8172   * Search parameter: <b>effective</b>
8173   * <p>
8174   * Description: <b>Multiple Resources: 
8175
8176* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use
8177* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use
8178* [Citation](citation.html): The time during which the citation is intended to be in use
8179* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
8180* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
8181* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use
8182* [Library](library.html): The time during which the library is intended to be in use
8183* [Measure](measure.html): The time during which the measure is intended to be in use
8184* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
8185* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use
8186* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use
8187* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
8188</b><br>
8189   * Type: <b>date</b><br>
8190   * Path: <b>ActivityDefinition.effectivePeriod | ChargeItemDefinition.applicability.effectivePeriod | Citation.effectivePeriod | CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | EventDefinition.effectivePeriod | Library.effectivePeriod | Measure.effectivePeriod | NamingSystem.effectivePeriod | PlanDefinition.effectivePeriod | Questionnaire.effectivePeriod | ValueSet.effectivePeriod</b><br>
8191   * </p>
8192   */
8193  @SearchParamDefinition(name="effective", path="ActivityDefinition.effectivePeriod | ChargeItemDefinition.applicability.effectivePeriod | Citation.effectivePeriod | CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | EventDefinition.effectivePeriod | Library.effectivePeriod | Measure.effectivePeriod | NamingSystem.effectivePeriod | PlanDefinition.effectivePeriod | Questionnaire.effectivePeriod | ValueSet.effectivePeriod", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use\r\n* [Citation](citation.html): The time during which the citation is intended to be in use\r\n* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use\r\n* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use\r\n* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use\r\n* [Library](library.html): The time during which the library is intended to be in use\r\n* [Measure](measure.html): The time during which the measure is intended to be in use\r\n* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use\r\n* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use\r\n* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use\r\n* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use\r\n", type="date" )
8194  public static final String SP_EFFECTIVE = "effective";
8195 /**
8196   * <b>Fluent Client</b> search parameter constant for <b>effective</b>
8197   * <p>
8198   * Description: <b>Multiple Resources: 
8199
8200* [ActivityDefinition](activitydefinition.html): The time during which the activity definition is intended to be in use
8201* [ChargeItemDefinition](chargeitemdefinition.html): The time during which the charge item definition is intended to be in use
8202* [Citation](citation.html): The time during which the citation is intended to be in use
8203* [CodeSystem](codesystem.html): The time during which the CodeSystem is intended to be in use
8204* [ConceptMap](conceptmap.html): The time during which the ConceptMap is intended to be in use
8205* [EventDefinition](eventdefinition.html): The time during which the event definition is intended to be in use
8206* [Library](library.html): The time during which the library is intended to be in use
8207* [Measure](measure.html): The time during which the measure is intended to be in use
8208* [NamingSystem](namingsystem.html): The time during which the NamingSystem is intended to be in use
8209* [PlanDefinition](plandefinition.html): The time during which the plan definition is intended to be in use
8210* [Questionnaire](questionnaire.html): The time during which the questionnaire is intended to be in use
8211* [ValueSet](valueset.html): The time during which the ValueSet is intended to be in use
8212</b><br>
8213   * Type: <b>date</b><br>
8214   * Path: <b>ActivityDefinition.effectivePeriod | ChargeItemDefinition.applicability.effectivePeriod | Citation.effectivePeriod | CodeSystem.effectivePeriod | ConceptMap.effectivePeriod | EventDefinition.effectivePeriod | Library.effectivePeriod | Measure.effectivePeriod | NamingSystem.effectivePeriod | PlanDefinition.effectivePeriod | Questionnaire.effectivePeriod | ValueSet.effectivePeriod</b><br>
8215   * </p>
8216   */
8217  public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE);
8218
8219 /**
8220   * Search parameter: <b>predecessor</b>
8221   * <p>
8222   * Description: <b>Multiple Resources: 
8223
8224* [ActivityDefinition](activitydefinition.html): What resource is being referenced
8225* [CodeSystem](codesystem.html): The predecessor of the CodeSystem
8226* [ConceptMap](conceptmap.html): The predecessor of the ConceptMap
8227* [EventDefinition](eventdefinition.html): What resource is being referenced
8228* [EvidenceVariable](evidencevariable.html): What resource is being referenced
8229* [Library](library.html): What resource is being referenced
8230* [Measure](measure.html): What resource is being referenced
8231* [NamingSystem](namingsystem.html): The predecessor of the NamingSystem
8232* [PlanDefinition](plandefinition.html): What resource is being referenced
8233* [ValueSet](valueset.html): The predecessor of the ValueSet
8234</b><br>
8235   * Type: <b>reference</b><br>
8236   * Path: <b>ActivityDefinition.relatedArtifact.where(type='predecessor').resource | CodeSystem.relatedArtifact.where(type='predecessor').resource | ConceptMap.relatedArtifact.where(type='predecessor').resource | EventDefinition.relatedArtifact.where(type='predecessor').resource | EvidenceVariable.relatedArtifact.where(type='predecessor').resource | Library.relatedArtifact.where(type='predecessor').resource | Measure.relatedArtifact.where(type='predecessor').resource | NamingSystem.relatedArtifact.where(type='predecessor').resource | PlanDefinition.relatedArtifact.where(type='predecessor').resource | ValueSet.relatedArtifact.where(type='predecessor').resource</b><br>
8237   * </p>
8238   */
8239  @SearchParamDefinition(name="predecessor", path="ActivityDefinition.relatedArtifact.where(type='predecessor').resource | CodeSystem.relatedArtifact.where(type='predecessor').resource | ConceptMap.relatedArtifact.where(type='predecessor').resource | EventDefinition.relatedArtifact.where(type='predecessor').resource | EvidenceVariable.relatedArtifact.where(type='predecessor').resource | Library.relatedArtifact.where(type='predecessor').resource | Measure.relatedArtifact.where(type='predecessor').resource | NamingSystem.relatedArtifact.where(type='predecessor').resource | PlanDefinition.relatedArtifact.where(type='predecessor').resource | ValueSet.relatedArtifact.where(type='predecessor').resource", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): What resource is being referenced\r\n* [CodeSystem](codesystem.html): The predecessor of the CodeSystem\r\n* [ConceptMap](conceptmap.html): The predecessor of the ConceptMap\r\n* [EventDefinition](eventdefinition.html): What resource is being referenced\r\n* [EvidenceVariable](evidencevariable.html): What resource is being referenced\r\n* [Library](library.html): What resource is being referenced\r\n* [Measure](measure.html): What resource is being referenced\r\n* [NamingSystem](namingsystem.html): The predecessor of the NamingSystem\r\n* [PlanDefinition](plandefinition.html): What resource is being referenced\r\n* [ValueSet](valueset.html): The predecessor of the ValueSet\r\n", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
8240  public static final String SP_PREDECESSOR = "predecessor";
8241 /**
8242   * <b>Fluent Client</b> search parameter constant for <b>predecessor</b>
8243   * <p>
8244   * Description: <b>Multiple Resources: 
8245
8246* [ActivityDefinition](activitydefinition.html): What resource is being referenced
8247* [CodeSystem](codesystem.html): The predecessor of the CodeSystem
8248* [ConceptMap](conceptmap.html): The predecessor of the ConceptMap
8249* [EventDefinition](eventdefinition.html): What resource is being referenced
8250* [EvidenceVariable](evidencevariable.html): What resource is being referenced
8251* [Library](library.html): What resource is being referenced
8252* [Measure](measure.html): What resource is being referenced
8253* [NamingSystem](namingsystem.html): The predecessor of the NamingSystem
8254* [PlanDefinition](plandefinition.html): What resource is being referenced
8255* [ValueSet](valueset.html): The predecessor of the ValueSet
8256</b><br>
8257   * Type: <b>reference</b><br>
8258   * Path: <b>ActivityDefinition.relatedArtifact.where(type='predecessor').resource | CodeSystem.relatedArtifact.where(type='predecessor').resource | ConceptMap.relatedArtifact.where(type='predecessor').resource | EventDefinition.relatedArtifact.where(type='predecessor').resource | EvidenceVariable.relatedArtifact.where(type='predecessor').resource | Library.relatedArtifact.where(type='predecessor').resource | Measure.relatedArtifact.where(type='predecessor').resource | NamingSystem.relatedArtifact.where(type='predecessor').resource | PlanDefinition.relatedArtifact.where(type='predecessor').resource | ValueSet.relatedArtifact.where(type='predecessor').resource</b><br>
8259   * </p>
8260   */
8261  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR);
8262
8263/**
8264   * Constant for fluent queries to be used to add include statements. Specifies
8265   * the path value of "<b>ConceptMap:predecessor</b>".
8266   */
8267  public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("ConceptMap:predecessor").toLocked();
8268
8269 /**
8270   * Search parameter: <b>topic</b>
8271   * <p>
8272   * Description: <b>Multiple Resources: 
8273
8274* [ActivityDefinition](activitydefinition.html): Topics associated with the module
8275* [CodeSystem](codesystem.html): Topics associated with the CodeSystem
8276* [ConceptMap](conceptmap.html): Topics associated with the ConceptMap
8277* [EventDefinition](eventdefinition.html): Topics associated with the module
8278* [EvidenceVariable](evidencevariable.html): Topics associated with the EvidenceVariable
8279* [Library](library.html): Topics associated with the module
8280* [Measure](measure.html): Topics associated with the measure
8281* [NamingSystem](namingsystem.html): Topics associated with the NamingSystem
8282* [PlanDefinition](plandefinition.html): Topics associated with the module
8283* [ValueSet](valueset.html): Topics associated with the ValueSet
8284</b><br>
8285   * Type: <b>token</b><br>
8286   * Path: <b>ActivityDefinition.topic | CodeSystem.topic | ConceptMap.topic | EventDefinition.topic | Library.topic | Measure.topic | NamingSystem.topic | PlanDefinition.topic | ValueSet.topic</b><br>
8287   * </p>
8288   */
8289  @SearchParamDefinition(name="topic", path="ActivityDefinition.topic | CodeSystem.topic | ConceptMap.topic | EventDefinition.topic | Library.topic | Measure.topic | NamingSystem.topic | PlanDefinition.topic | ValueSet.topic", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Topics associated with the module\r\n* [CodeSystem](codesystem.html): Topics associated with the CodeSystem\r\n* [ConceptMap](conceptmap.html): Topics associated with the ConceptMap\r\n* [EventDefinition](eventdefinition.html): Topics associated with the module\r\n* [EvidenceVariable](evidencevariable.html): Topics associated with the EvidenceVariable\r\n* [Library](library.html): Topics associated with the module\r\n* [Measure](measure.html): Topics associated with the measure\r\n* [NamingSystem](namingsystem.html): Topics associated with the NamingSystem\r\n* [PlanDefinition](plandefinition.html): Topics associated with the module\r\n* [ValueSet](valueset.html): Topics associated with the ValueSet\r\n", type="token" )
8290  public static final String SP_TOPIC = "topic";
8291 /**
8292   * <b>Fluent Client</b> search parameter constant for <b>topic</b>
8293   * <p>
8294   * Description: <b>Multiple Resources: 
8295
8296* [ActivityDefinition](activitydefinition.html): Topics associated with the module
8297* [CodeSystem](codesystem.html): Topics associated with the CodeSystem
8298* [ConceptMap](conceptmap.html): Topics associated with the ConceptMap
8299* [EventDefinition](eventdefinition.html): Topics associated with the module
8300* [EvidenceVariable](evidencevariable.html): Topics associated with the EvidenceVariable
8301* [Library](library.html): Topics associated with the module
8302* [Measure](measure.html): Topics associated with the measure
8303* [NamingSystem](namingsystem.html): Topics associated with the NamingSystem
8304* [PlanDefinition](plandefinition.html): Topics associated with the module
8305* [ValueSet](valueset.html): Topics associated with the ValueSet
8306</b><br>
8307   * Type: <b>token</b><br>
8308   * Path: <b>ActivityDefinition.topic | CodeSystem.topic | ConceptMap.topic | EventDefinition.topic | Library.topic | Measure.topic | NamingSystem.topic | PlanDefinition.topic | ValueSet.topic</b><br>
8309   * </p>
8310   */
8311  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC);
8312
8313// Manual code (from Configuration.txt):
8314  public String getAttributeUri(String code) {
8315    if (code == null) {
8316      return null;
8317    }
8318    for (AdditionalAttributeComponent aa : getAdditionalAttribute()) {
8319      if (code.equals(aa.getCode())) {
8320        return aa.hasUri() ? aa.getUri() : code;
8321      }
8322    }
8323    return code;
8324  }
8325
8326  public String registerAttribute(String uri) {
8327    if (uri == null) {
8328      return null;
8329    }
8330    // determine a default code
8331    String t = tail(uri).replace("-", "");
8332    if (Utilities.noString(t))
8333      t = "code";      
8334    String code = t;
8335    int i = 0;
8336    while (alreadyExistsAsCode(code)) {
8337      i++;
8338      code = t + i;
8339    }
8340    
8341    for (AdditionalAttributeComponent aa : getAdditionalAttribute()) {
8342      if (uri.equals(aa.getUri())) {
8343        if (!aa.hasCode()) {
8344          aa.setCode(code);
8345        }
8346        return aa.getCode();
8347      }
8348    }
8349    addAdditionalAttribute().setUri(uri).setCode(code);
8350    return code;
8351  }
8352
8353  private boolean alreadyExistsAsCode(String code) {
8354    for (PropertyComponent prop : getProperty()) {
8355      if (code.equals(prop.getCode())) {
8356        return true;
8357      }          
8358    }
8359    for (AdditionalAttributeComponent prop : getAdditionalAttribute()) {
8360      if (code.equals(prop.getCode())) {
8361        return true;
8362      }          
8363    }
8364    return false;
8365  }
8366
8367  private String tail(String uri) {
8368    return uri.contains("/") ? uri.substring(uri.lastIndexOf("/")+1) : uri;
8369  }
8370// end addition
8371
8372}
8373