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 void removeChild(String name, Base value) throws FHIRException {
860        if (name.equals("code")) {
861          this.code = null;
862        } else if (name.equals("uri")) {
863          this.uri = null;
864        } else if (name.equals("description")) {
865          this.description = null;
866        } else if (name.equals("type")) {
867          value = new ConceptMapPropertyTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
868          this.type = (Enumeration) value; // Enumeration<ConceptMapPropertyType>
869        } else if (name.equals("system")) {
870          this.system = null;
871        } else
872          super.removeChild(name, value);
873        
874      }
875
876      @Override
877      public Base makeProperty(int hash, String name) throws FHIRException {
878        switch (hash) {
879        case 3059181:  return getCodeElement();
880        case 116076:  return getUriElement();
881        case -1724546052:  return getDescriptionElement();
882        case 3575610:  return getTypeElement();
883        case -887328209:  return getSystemElement();
884        default: return super.makeProperty(hash, name);
885        }
886
887      }
888
889      @Override
890      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
891        switch (hash) {
892        case 3059181: /*code*/ return new String[] {"code"};
893        case 116076: /*uri*/ return new String[] {"uri"};
894        case -1724546052: /*description*/ return new String[] {"string"};
895        case 3575610: /*type*/ return new String[] {"code"};
896        case -887328209: /*system*/ return new String[] {"canonical"};
897        default: return super.getTypesForProperty(hash, name);
898        }
899
900      }
901
902      @Override
903      public Base addChild(String name) throws FHIRException {
904        if (name.equals("code")) {
905          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.code");
906        }
907        else if (name.equals("uri")) {
908          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.uri");
909        }
910        else if (name.equals("description")) {
911          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.description");
912        }
913        else if (name.equals("type")) {
914          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.type");
915        }
916        else if (name.equals("system")) {
917          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.property.system");
918        }
919        else
920          return super.addChild(name);
921      }
922
923      public PropertyComponent copy() {
924        PropertyComponent dst = new PropertyComponent();
925        copyValues(dst);
926        return dst;
927      }
928
929      public void copyValues(PropertyComponent dst) {
930        super.copyValues(dst);
931        dst.code = code == null ? null : code.copy();
932        dst.uri = uri == null ? null : uri.copy();
933        dst.description = description == null ? null : description.copy();
934        dst.type = type == null ? null : type.copy();
935        dst.system = system == null ? null : system.copy();
936      }
937
938      @Override
939      public boolean equalsDeep(Base other_) {
940        if (!super.equalsDeep(other_))
941          return false;
942        if (!(other_ instanceof PropertyComponent))
943          return false;
944        PropertyComponent o = (PropertyComponent) other_;
945        return compareDeep(code, o.code, true) && compareDeep(uri, o.uri, true) && compareDeep(description, o.description, true)
946           && compareDeep(type, o.type, true) && compareDeep(system, o.system, true);
947      }
948
949      @Override
950      public boolean equalsShallow(Base other_) {
951        if (!super.equalsShallow(other_))
952          return false;
953        if (!(other_ instanceof PropertyComponent))
954          return false;
955        PropertyComponent o = (PropertyComponent) other_;
956        return compareValues(code, o.code, true) && compareValues(uri, o.uri, true) && compareValues(description, o.description, true)
957           && compareValues(type, o.type, true) && compareValues(system, o.system, true);
958      }
959
960      public boolean isEmpty() {
961        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, uri, description, type
962          , system);
963      }
964
965  public String fhirType() {
966    return "ConceptMap.property";
967
968  }
969
970  }
971
972    @Block()
973    public static class AdditionalAttributeComponent extends BackboneElement implements IBaseBackboneElement {
974        /**
975         * 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.
976         */
977        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
978        @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." )
979        protected CodeType code;
980
981        /**
982         * 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}.
983         */
984        @Child(name = "uri", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true)
985        @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}." )
986        protected UriType uri;
987
988        /**
989         * 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.
990         */
991        @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
992        @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." )
993        protected StringType description;
994
995        /**
996         * The type of the source data contained in this concept map for this data element.
997         */
998        @Child(name = "type", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=true)
999        @Description(shortDefinition="code | Coding | string | boolean | Quantity", formalDefinition="The type of the source data contained in this concept map for this data element." )
1000        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/conceptmap-attribute-type")
1001        protected Enumeration<ConceptMapAttributeType> type;
1002
1003        private static final long serialVersionUID = -1930701116L;
1004
1005    /**
1006     * Constructor
1007     */
1008      public AdditionalAttributeComponent() {
1009        super();
1010      }
1011
1012    /**
1013     * Constructor
1014     */
1015      public AdditionalAttributeComponent(String code, ConceptMapAttributeType type) {
1016        super();
1017        this.setCode(code);
1018        this.setType(type);
1019      }
1020
1021        /**
1022         * @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
1023         */
1024        public CodeType getCodeElement() { 
1025          if (this.code == null)
1026            if (Configuration.errorOnAutoCreate())
1027              throw new Error("Attempt to auto-create AdditionalAttributeComponent.code");
1028            else if (Configuration.doAutoCreate())
1029              this.code = new CodeType(); // bb
1030          return this.code;
1031        }
1032
1033        public boolean hasCodeElement() { 
1034          return this.code != null && !this.code.isEmpty();
1035        }
1036
1037        public boolean hasCode() { 
1038          return this.code != null && !this.code.isEmpty();
1039        }
1040
1041        /**
1042         * @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
1043         */
1044        public AdditionalAttributeComponent setCodeElement(CodeType value) { 
1045          this.code = value;
1046          return this;
1047        }
1048
1049        /**
1050         * @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.
1051         */
1052        public String getCode() { 
1053          return this.code == null ? null : this.code.getValue();
1054        }
1055
1056        /**
1057         * @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.
1058         */
1059        public AdditionalAttributeComponent setCode(String value) { 
1060            if (this.code == null)
1061              this.code = new CodeType();
1062            this.code.setValue(value);
1063          return this;
1064        }
1065
1066        /**
1067         * @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
1068         */
1069        public UriType getUriElement() { 
1070          if (this.uri == null)
1071            if (Configuration.errorOnAutoCreate())
1072              throw new Error("Attempt to auto-create AdditionalAttributeComponent.uri");
1073            else if (Configuration.doAutoCreate())
1074              this.uri = new UriType(); // bb
1075          return this.uri;
1076        }
1077
1078        public boolean hasUriElement() { 
1079          return this.uri != null && !this.uri.isEmpty();
1080        }
1081
1082        public boolean hasUri() { 
1083          return this.uri != null && !this.uri.isEmpty();
1084        }
1085
1086        /**
1087         * @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
1088         */
1089        public AdditionalAttributeComponent setUriElement(UriType value) { 
1090          this.uri = value;
1091          return this;
1092        }
1093
1094        /**
1095         * @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}.
1096         */
1097        public String getUri() { 
1098          return this.uri == null ? null : this.uri.getValue();
1099        }
1100
1101        /**
1102         * @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}.
1103         */
1104        public AdditionalAttributeComponent setUri(String value) { 
1105          if (Utilities.noString(value))
1106            this.uri = null;
1107          else {
1108            if (this.uri == null)
1109              this.uri = new UriType();
1110            this.uri.setValue(value);
1111          }
1112          return this;
1113        }
1114
1115        /**
1116         * @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
1117         */
1118        public StringType getDescriptionElement() { 
1119          if (this.description == null)
1120            if (Configuration.errorOnAutoCreate())
1121              throw new Error("Attempt to auto-create AdditionalAttributeComponent.description");
1122            else if (Configuration.doAutoCreate())
1123              this.description = new StringType(); // bb
1124          return this.description;
1125        }
1126
1127        public boolean hasDescriptionElement() { 
1128          return this.description != null && !this.description.isEmpty();
1129        }
1130
1131        public boolean hasDescription() { 
1132          return this.description != null && !this.description.isEmpty();
1133        }
1134
1135        /**
1136         * @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
1137         */
1138        public AdditionalAttributeComponent setDescriptionElement(StringType value) { 
1139          this.description = value;
1140          return this;
1141        }
1142
1143        /**
1144         * @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.
1145         */
1146        public String getDescription() { 
1147          return this.description == null ? null : this.description.getValue();
1148        }
1149
1150        /**
1151         * @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.
1152         */
1153        public AdditionalAttributeComponent setDescription(String value) { 
1154          if (Utilities.noString(value))
1155            this.description = null;
1156          else {
1157            if (this.description == null)
1158              this.description = new StringType();
1159            this.description.setValue(value);
1160          }
1161          return this;
1162        }
1163
1164        /**
1165         * @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
1166         */
1167        public Enumeration<ConceptMapAttributeType> getTypeElement() { 
1168          if (this.type == null)
1169            if (Configuration.errorOnAutoCreate())
1170              throw new Error("Attempt to auto-create AdditionalAttributeComponent.type");
1171            else if (Configuration.doAutoCreate())
1172              this.type = new Enumeration<ConceptMapAttributeType>(new ConceptMapAttributeTypeEnumFactory()); // bb
1173          return this.type;
1174        }
1175
1176        public boolean hasTypeElement() { 
1177          return this.type != null && !this.type.isEmpty();
1178        }
1179
1180        public boolean hasType() { 
1181          return this.type != null && !this.type.isEmpty();
1182        }
1183
1184        /**
1185         * @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
1186         */
1187        public AdditionalAttributeComponent setTypeElement(Enumeration<ConceptMapAttributeType> value) { 
1188          this.type = value;
1189          return this;
1190        }
1191
1192        /**
1193         * @return The type of the source data contained in this concept map for this data element.
1194         */
1195        public ConceptMapAttributeType getType() { 
1196          return this.type == null ? null : this.type.getValue();
1197        }
1198
1199        /**
1200         * @param value The type of the source data contained in this concept map for this data element.
1201         */
1202        public AdditionalAttributeComponent setType(ConceptMapAttributeType value) { 
1203            if (this.type == null)
1204              this.type = new Enumeration<ConceptMapAttributeType>(new ConceptMapAttributeTypeEnumFactory());
1205            this.type.setValue(value);
1206          return this;
1207        }
1208
1209        protected void listChildren(List<Property> children) {
1210          super.listChildren(children);
1211          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));
1212          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));
1213          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));
1214          children.add(new Property("type", "code", "The type of the source data contained in this concept map for this data element.", 0, 1, type));
1215        }
1216
1217        @Override
1218        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1219          switch (_hash) {
1220          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);
1221          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);
1222          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);
1223          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);
1224          default: return super.getNamedProperty(_hash, _name, _checkValid);
1225          }
1226
1227        }
1228
1229      @Override
1230      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1231        switch (hash) {
1232        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
1233        case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // UriType
1234        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
1235        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<ConceptMapAttributeType>
1236        default: return super.getProperty(hash, name, checkValid);
1237        }
1238
1239      }
1240
1241      @Override
1242      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1243        switch (hash) {
1244        case 3059181: // code
1245          this.code = TypeConvertor.castToCode(value); // CodeType
1246          return value;
1247        case 116076: // uri
1248          this.uri = TypeConvertor.castToUri(value); // UriType
1249          return value;
1250        case -1724546052: // description
1251          this.description = TypeConvertor.castToString(value); // StringType
1252          return value;
1253        case 3575610: // type
1254          value = new ConceptMapAttributeTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1255          this.type = (Enumeration) value; // Enumeration<ConceptMapAttributeType>
1256          return value;
1257        default: return super.setProperty(hash, name, value);
1258        }
1259
1260      }
1261
1262      @Override
1263      public Base setProperty(String name, Base value) throws FHIRException {
1264        if (name.equals("code")) {
1265          this.code = TypeConvertor.castToCode(value); // CodeType
1266        } else if (name.equals("uri")) {
1267          this.uri = TypeConvertor.castToUri(value); // UriType
1268        } else if (name.equals("description")) {
1269          this.description = TypeConvertor.castToString(value); // StringType
1270        } else if (name.equals("type")) {
1271          value = new ConceptMapAttributeTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1272          this.type = (Enumeration) value; // Enumeration<ConceptMapAttributeType>
1273        } else
1274          return super.setProperty(name, value);
1275        return value;
1276      }
1277
1278  @Override
1279  public void removeChild(String name, Base value) throws FHIRException {
1280        if (name.equals("code")) {
1281          this.code = null;
1282        } else if (name.equals("uri")) {
1283          this.uri = null;
1284        } else if (name.equals("description")) {
1285          this.description = null;
1286        } else if (name.equals("type")) {
1287          value = new ConceptMapAttributeTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1288          this.type = (Enumeration) value; // Enumeration<ConceptMapAttributeType>
1289        } else
1290          super.removeChild(name, value);
1291        
1292      }
1293
1294      @Override
1295      public Base makeProperty(int hash, String name) throws FHIRException {
1296        switch (hash) {
1297        case 3059181:  return getCodeElement();
1298        case 116076:  return getUriElement();
1299        case -1724546052:  return getDescriptionElement();
1300        case 3575610:  return getTypeElement();
1301        default: return super.makeProperty(hash, name);
1302        }
1303
1304      }
1305
1306      @Override
1307      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1308        switch (hash) {
1309        case 3059181: /*code*/ return new String[] {"code"};
1310        case 116076: /*uri*/ return new String[] {"uri"};
1311        case -1724546052: /*description*/ return new String[] {"string"};
1312        case 3575610: /*type*/ return new String[] {"code"};
1313        default: return super.getTypesForProperty(hash, name);
1314        }
1315
1316      }
1317
1318      @Override
1319      public Base addChild(String name) throws FHIRException {
1320        if (name.equals("code")) {
1321          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.code");
1322        }
1323        else if (name.equals("uri")) {
1324          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.uri");
1325        }
1326        else if (name.equals("description")) {
1327          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.description");
1328        }
1329        else if (name.equals("type")) {
1330          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.additionalAttribute.type");
1331        }
1332        else
1333          return super.addChild(name);
1334      }
1335
1336      public AdditionalAttributeComponent copy() {
1337        AdditionalAttributeComponent dst = new AdditionalAttributeComponent();
1338        copyValues(dst);
1339        return dst;
1340      }
1341
1342      public void copyValues(AdditionalAttributeComponent dst) {
1343        super.copyValues(dst);
1344        dst.code = code == null ? null : code.copy();
1345        dst.uri = uri == null ? null : uri.copy();
1346        dst.description = description == null ? null : description.copy();
1347        dst.type = type == null ? null : type.copy();
1348      }
1349
1350      @Override
1351      public boolean equalsDeep(Base other_) {
1352        if (!super.equalsDeep(other_))
1353          return false;
1354        if (!(other_ instanceof AdditionalAttributeComponent))
1355          return false;
1356        AdditionalAttributeComponent o = (AdditionalAttributeComponent) other_;
1357        return compareDeep(code, o.code, true) && compareDeep(uri, o.uri, true) && compareDeep(description, o.description, true)
1358           && compareDeep(type, o.type, true);
1359      }
1360
1361      @Override
1362      public boolean equalsShallow(Base other_) {
1363        if (!super.equalsShallow(other_))
1364          return false;
1365        if (!(other_ instanceof AdditionalAttributeComponent))
1366          return false;
1367        AdditionalAttributeComponent o = (AdditionalAttributeComponent) other_;
1368        return compareValues(code, o.code, true) && compareValues(uri, o.uri, true) && compareValues(description, o.description, true)
1369           && compareValues(type, o.type, true);
1370      }
1371
1372      public boolean isEmpty() {
1373        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, uri, description, type
1374          );
1375      }
1376
1377  public String fhirType() {
1378    return "ConceptMap.additionalAttribute";
1379
1380  }
1381
1382  }
1383
1384    @Block()
1385    public static class ConceptMapGroupComponent extends BackboneElement implements IBaseBackboneElement {
1386        /**
1387         * An absolute URI that identifies the source system where the concepts to be mapped are defined.
1388         */
1389        @Child(name = "source", type = {CanonicalType.class}, order=1, min=0, max=1, modifier=false, summary=false)
1390        @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." )
1391        protected CanonicalType source;
1392
1393        /**
1394         * An absolute URI that identifies the target system that the concepts will be mapped to.
1395         */
1396        @Child(name = "target", type = {CanonicalType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1397        @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." )
1398        protected CanonicalType target;
1399
1400        /**
1401         * Mappings for an individual concept in the source to one or more concepts in the target.
1402         */
1403        @Child(name = "element", type = {}, order=3, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1404        @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." )
1405        protected List<SourceElementComponent> element;
1406
1407        /**
1408         * 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.
1409         */
1410        @Child(name = "unmapped", type = {}, order=4, min=0, max=1, modifier=false, summary=false)
1411        @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." )
1412        protected ConceptMapGroupUnmappedComponent unmapped;
1413
1414        private static final long serialVersionUID = 1307192416L;
1415
1416    /**
1417     * Constructor
1418     */
1419      public ConceptMapGroupComponent() {
1420        super();
1421      }
1422
1423    /**
1424     * Constructor
1425     */
1426      public ConceptMapGroupComponent(SourceElementComponent element) {
1427        super();
1428        this.addElement(element);
1429      }
1430
1431        /**
1432         * @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
1433         */
1434        public CanonicalType getSourceElement() { 
1435          if (this.source == null)
1436            if (Configuration.errorOnAutoCreate())
1437              throw new Error("Attempt to auto-create ConceptMapGroupComponent.source");
1438            else if (Configuration.doAutoCreate())
1439              this.source = new CanonicalType(); // bb
1440          return this.source;
1441        }
1442
1443        public boolean hasSourceElement() { 
1444          return this.source != null && !this.source.isEmpty();
1445        }
1446
1447        public boolean hasSource() { 
1448          return this.source != null && !this.source.isEmpty();
1449        }
1450
1451        /**
1452         * @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
1453         */
1454        public ConceptMapGroupComponent setSourceElement(CanonicalType value) { 
1455          this.source = value;
1456          return this;
1457        }
1458
1459        /**
1460         * @return An absolute URI that identifies the source system where the concepts to be mapped are defined.
1461         */
1462        public String getSource() { 
1463          return this.source == null ? null : this.source.getValue();
1464        }
1465
1466        /**
1467         * @param value An absolute URI that identifies the source system where the concepts to be mapped are defined.
1468         */
1469        public ConceptMapGroupComponent setSource(String value) { 
1470          if (Utilities.noString(value))
1471            this.source = null;
1472          else {
1473            if (this.source == null)
1474              this.source = new CanonicalType();
1475            this.source.setValue(value);
1476          }
1477          return this;
1478        }
1479
1480        /**
1481         * @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
1482         */
1483        public CanonicalType getTargetElement() { 
1484          if (this.target == null)
1485            if (Configuration.errorOnAutoCreate())
1486              throw new Error("Attempt to auto-create ConceptMapGroupComponent.target");
1487            else if (Configuration.doAutoCreate())
1488              this.target = new CanonicalType(); // bb
1489          return this.target;
1490        }
1491
1492        public boolean hasTargetElement() { 
1493          return this.target != null && !this.target.isEmpty();
1494        }
1495
1496        public boolean hasTarget() { 
1497          return this.target != null && !this.target.isEmpty();
1498        }
1499
1500        /**
1501         * @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
1502         */
1503        public ConceptMapGroupComponent setTargetElement(CanonicalType value) { 
1504          this.target = value;
1505          return this;
1506        }
1507
1508        /**
1509         * @return An absolute URI that identifies the target system that the concepts will be mapped to.
1510         */
1511        public String getTarget() { 
1512          return this.target == null ? null : this.target.getValue();
1513        }
1514
1515        /**
1516         * @param value An absolute URI that identifies the target system that the concepts will be mapped to.
1517         */
1518        public ConceptMapGroupComponent setTarget(String value) { 
1519          if (Utilities.noString(value))
1520            this.target = null;
1521          else {
1522            if (this.target == null)
1523              this.target = new CanonicalType();
1524            this.target.setValue(value);
1525          }
1526          return this;
1527        }
1528
1529        /**
1530         * @return {@link #element} (Mappings for an individual concept in the source to one or more concepts in the target.)
1531         */
1532        public List<SourceElementComponent> getElement() { 
1533          if (this.element == null)
1534            this.element = new ArrayList<SourceElementComponent>();
1535          return this.element;
1536        }
1537
1538        /**
1539         * @return Returns a reference to <code>this</code> for easy method chaining
1540         */
1541        public ConceptMapGroupComponent setElement(List<SourceElementComponent> theElement) { 
1542          this.element = theElement;
1543          return this;
1544        }
1545
1546        public boolean hasElement() { 
1547          if (this.element == null)
1548            return false;
1549          for (SourceElementComponent item : this.element)
1550            if (!item.isEmpty())
1551              return true;
1552          return false;
1553        }
1554
1555        public SourceElementComponent addElement() { //3
1556          SourceElementComponent t = new SourceElementComponent();
1557          if (this.element == null)
1558            this.element = new ArrayList<SourceElementComponent>();
1559          this.element.add(t);
1560          return t;
1561        }
1562
1563        public ConceptMapGroupComponent addElement(SourceElementComponent t) { //3
1564          if (t == null)
1565            return this;
1566          if (this.element == null)
1567            this.element = new ArrayList<SourceElementComponent>();
1568          this.element.add(t);
1569          return this;
1570        }
1571
1572        /**
1573         * @return The first repetition of repeating field {@link #element}, creating it if it does not already exist {3}
1574         */
1575        public SourceElementComponent getElementFirstRep() { 
1576          if (getElement().isEmpty()) {
1577            addElement();
1578          }
1579          return getElement().get(0);
1580        }
1581
1582        /**
1583         * @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.)
1584         */
1585        public ConceptMapGroupUnmappedComponent getUnmapped() { 
1586          if (this.unmapped == null)
1587            if (Configuration.errorOnAutoCreate())
1588              throw new Error("Attempt to auto-create ConceptMapGroupComponent.unmapped");
1589            else if (Configuration.doAutoCreate())
1590              this.unmapped = new ConceptMapGroupUnmappedComponent(); // cc
1591          return this.unmapped;
1592        }
1593
1594        public boolean hasUnmapped() { 
1595          return this.unmapped != null && !this.unmapped.isEmpty();
1596        }
1597
1598        /**
1599         * @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.)
1600         */
1601        public ConceptMapGroupComponent setUnmapped(ConceptMapGroupUnmappedComponent value) { 
1602          this.unmapped = value;
1603          return this;
1604        }
1605
1606        protected void listChildren(List<Property> children) {
1607          super.listChildren(children);
1608          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));
1609          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));
1610          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));
1611          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));
1612        }
1613
1614        @Override
1615        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1616          switch (_hash) {
1617          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);
1618          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);
1619          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);
1620          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);
1621          default: return super.getNamedProperty(_hash, _name, _checkValid);
1622          }
1623
1624        }
1625
1626      @Override
1627      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1628        switch (hash) {
1629        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // CanonicalType
1630        case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // CanonicalType
1631        case -1662836996: /*element*/ return this.element == null ? new Base[0] : this.element.toArray(new Base[this.element.size()]); // SourceElementComponent
1632        case -194857460: /*unmapped*/ return this.unmapped == null ? new Base[0] : new Base[] {this.unmapped}; // ConceptMapGroupUnmappedComponent
1633        default: return super.getProperty(hash, name, checkValid);
1634        }
1635
1636      }
1637
1638      @Override
1639      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1640        switch (hash) {
1641        case -896505829: // source
1642          this.source = TypeConvertor.castToCanonical(value); // CanonicalType
1643          return value;
1644        case -880905839: // target
1645          this.target = TypeConvertor.castToCanonical(value); // CanonicalType
1646          return value;
1647        case -1662836996: // element
1648          this.getElement().add((SourceElementComponent) value); // SourceElementComponent
1649          return value;
1650        case -194857460: // unmapped
1651          this.unmapped = (ConceptMapGroupUnmappedComponent) value; // ConceptMapGroupUnmappedComponent
1652          return value;
1653        default: return super.setProperty(hash, name, value);
1654        }
1655
1656      }
1657
1658      @Override
1659      public Base setProperty(String name, Base value) throws FHIRException {
1660        if (name.equals("source")) {
1661          this.source = TypeConvertor.castToCanonical(value); // CanonicalType
1662        } else if (name.equals("target")) {
1663          this.target = TypeConvertor.castToCanonical(value); // CanonicalType
1664        } else if (name.equals("element")) {
1665          this.getElement().add((SourceElementComponent) value);
1666        } else if (name.equals("unmapped")) {
1667          this.unmapped = (ConceptMapGroupUnmappedComponent) value; // ConceptMapGroupUnmappedComponent
1668        } else
1669          return super.setProperty(name, value);
1670        return value;
1671      }
1672
1673  @Override
1674  public void removeChild(String name, Base value) throws FHIRException {
1675        if (name.equals("source")) {
1676          this.source = null;
1677        } else if (name.equals("target")) {
1678          this.target = null;
1679        } else if (name.equals("element")) {
1680          this.getElement().remove((SourceElementComponent) value);
1681        } else if (name.equals("unmapped")) {
1682          this.unmapped = (ConceptMapGroupUnmappedComponent) value; // ConceptMapGroupUnmappedComponent
1683        } else
1684          super.removeChild(name, value);
1685        
1686      }
1687
1688      @Override
1689      public Base makeProperty(int hash, String name) throws FHIRException {
1690        switch (hash) {
1691        case -896505829:  return getSourceElement();
1692        case -880905839:  return getTargetElement();
1693        case -1662836996:  return addElement(); 
1694        case -194857460:  return getUnmapped();
1695        default: return super.makeProperty(hash, name);
1696        }
1697
1698      }
1699
1700      @Override
1701      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1702        switch (hash) {
1703        case -896505829: /*source*/ return new String[] {"canonical"};
1704        case -880905839: /*target*/ return new String[] {"canonical"};
1705        case -1662836996: /*element*/ return new String[] {};
1706        case -194857460: /*unmapped*/ return new String[] {};
1707        default: return super.getTypesForProperty(hash, name);
1708        }
1709
1710      }
1711
1712      @Override
1713      public Base addChild(String name) throws FHIRException {
1714        if (name.equals("source")) {
1715          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.source");
1716        }
1717        else if (name.equals("target")) {
1718          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.target");
1719        }
1720        else if (name.equals("element")) {
1721          return addElement();
1722        }
1723        else if (name.equals("unmapped")) {
1724          this.unmapped = new ConceptMapGroupUnmappedComponent();
1725          return this.unmapped;
1726        }
1727        else
1728          return super.addChild(name);
1729      }
1730
1731      public ConceptMapGroupComponent copy() {
1732        ConceptMapGroupComponent dst = new ConceptMapGroupComponent();
1733        copyValues(dst);
1734        return dst;
1735      }
1736
1737      public void copyValues(ConceptMapGroupComponent dst) {
1738        super.copyValues(dst);
1739        dst.source = source == null ? null : source.copy();
1740        dst.target = target == null ? null : target.copy();
1741        if (element != null) {
1742          dst.element = new ArrayList<SourceElementComponent>();
1743          for (SourceElementComponent i : element)
1744            dst.element.add(i.copy());
1745        };
1746        dst.unmapped = unmapped == null ? null : unmapped.copy();
1747      }
1748
1749      @Override
1750      public boolean equalsDeep(Base other_) {
1751        if (!super.equalsDeep(other_))
1752          return false;
1753        if (!(other_ instanceof ConceptMapGroupComponent))
1754          return false;
1755        ConceptMapGroupComponent o = (ConceptMapGroupComponent) other_;
1756        return compareDeep(source, o.source, true) && compareDeep(target, o.target, true) && compareDeep(element, o.element, true)
1757           && compareDeep(unmapped, o.unmapped, true);
1758      }
1759
1760      @Override
1761      public boolean equalsShallow(Base other_) {
1762        if (!super.equalsShallow(other_))
1763          return false;
1764        if (!(other_ instanceof ConceptMapGroupComponent))
1765          return false;
1766        ConceptMapGroupComponent o = (ConceptMapGroupComponent) other_;
1767        return compareValues(source, o.source, true) && compareValues(target, o.target, true);
1768      }
1769
1770      public boolean isEmpty() {
1771        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(source, target, element
1772          , unmapped);
1773      }
1774
1775  public String fhirType() {
1776    return "ConceptMap.group";
1777
1778  }
1779
1780  public SourceElementComponent getOrAddElement(String code) {
1781    for (SourceElementComponent e : getElement()) {
1782      if (code.equals(e.getCode())) {
1783        return e;  
1784      }
1785    }
1786    return addElement().setCode(code);
1787  }
1788
1789  }
1790
1791    @Block()
1792    public static class SourceElementComponent extends BackboneElement implements IBaseBackboneElement {
1793        @Override
1794      public String toString() {
1795        return "SourceElementComponent [code=" + code + ", display=" + display + ", noMap=" + noMap + "]";
1796      }
1797
1798        /**
1799         * Identity (code or path) or the element/item being mapped.
1800         */
1801        @Child(name = "code", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false)
1802        @Description(shortDefinition="Identifies element being mapped", formalDefinition="Identity (code or path) or the element/item being mapped." )
1803        protected CodeType code;
1804
1805        /**
1806         * The display for the code. The display is only provided to help editors when editing the concept map.
1807         */
1808        @Child(name = "display", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1809        @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." )
1810        protected StringType display;
1811
1812        /**
1813         * 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.
1814         */
1815        @Child(name = "valueSet", type = {CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
1816        @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." )
1817        protected CanonicalType valueSet;
1818
1819        /**
1820         * If noMap = true this indicates that no mapping to a target concept exists for this source concept.
1821         */
1822        @Child(name = "noMap", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=false)
1823        @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." )
1824        protected BooleanType noMap;
1825
1826        /**
1827         * A concept from the target value set that this concept maps to.
1828         */
1829        @Child(name = "target", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1830        @Description(shortDefinition="Concept in target system for element", formalDefinition="A concept from the target value set that this concept maps to." )
1831        protected List<TargetElementComponent> target;
1832
1833        private static final long serialVersionUID = 1485743554L;
1834
1835    /**
1836     * Constructor
1837     */
1838      public SourceElementComponent() {
1839        super();
1840      }
1841
1842        /**
1843         * @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
1844         */
1845        public CodeType getCodeElement() { 
1846          if (this.code == null)
1847            if (Configuration.errorOnAutoCreate())
1848              throw new Error("Attempt to auto-create SourceElementComponent.code");
1849            else if (Configuration.doAutoCreate())
1850              this.code = new CodeType(); // bb
1851          return this.code;
1852        }
1853
1854        public boolean hasCodeElement() { 
1855          return this.code != null && !this.code.isEmpty();
1856        }
1857
1858        public boolean hasCode() { 
1859          return this.code != null && !this.code.isEmpty();
1860        }
1861
1862        /**
1863         * @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
1864         */
1865        public SourceElementComponent setCodeElement(CodeType value) { 
1866          this.code = value;
1867          return this;
1868        }
1869
1870        /**
1871         * @return Identity (code or path) or the element/item being mapped.
1872         */
1873        public String getCode() { 
1874          return this.code == null ? null : this.code.getValue();
1875        }
1876
1877        /**
1878         * @param value Identity (code or path) or the element/item being mapped.
1879         */
1880        public SourceElementComponent setCode(String value) { 
1881          if (Utilities.noString(value))
1882            this.code = null;
1883          else {
1884            if (this.code == null)
1885              this.code = new CodeType();
1886            this.code.setValue(value);
1887          }
1888          return this;
1889        }
1890
1891        /**
1892         * @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
1893         */
1894        public StringType getDisplayElement() { 
1895          if (this.display == null)
1896            if (Configuration.errorOnAutoCreate())
1897              throw new Error("Attempt to auto-create SourceElementComponent.display");
1898            else if (Configuration.doAutoCreate())
1899              this.display = new StringType(); // bb
1900          return this.display;
1901        }
1902
1903        public boolean hasDisplayElement() { 
1904          return this.display != null && !this.display.isEmpty();
1905        }
1906
1907        public boolean hasDisplay() { 
1908          return this.display != null && !this.display.isEmpty();
1909        }
1910
1911        /**
1912         * @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
1913         */
1914        public SourceElementComponent setDisplayElement(StringType value) { 
1915          this.display = value;
1916          return this;
1917        }
1918
1919        /**
1920         * @return The display for the code. The display is only provided to help editors when editing the concept map.
1921         */
1922        public String getDisplay() { 
1923          return this.display == null ? null : this.display.getValue();
1924        }
1925
1926        /**
1927         * @param value The display for the code. The display is only provided to help editors when editing the concept map.
1928         */
1929        public SourceElementComponent setDisplay(String value) { 
1930          if (Utilities.noString(value))
1931            this.display = null;
1932          else {
1933            if (this.display == null)
1934              this.display = new StringType();
1935            this.display.setValue(value);
1936          }
1937          return this;
1938        }
1939
1940        /**
1941         * @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
1942         */
1943        public CanonicalType getValueSetElement() { 
1944          if (this.valueSet == null)
1945            if (Configuration.errorOnAutoCreate())
1946              throw new Error("Attempt to auto-create SourceElementComponent.valueSet");
1947            else if (Configuration.doAutoCreate())
1948              this.valueSet = new CanonicalType(); // bb
1949          return this.valueSet;
1950        }
1951
1952        public boolean hasValueSetElement() { 
1953          return this.valueSet != null && !this.valueSet.isEmpty();
1954        }
1955
1956        public boolean hasValueSet() { 
1957          return this.valueSet != null && !this.valueSet.isEmpty();
1958        }
1959
1960        /**
1961         * @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
1962         */
1963        public SourceElementComponent setValueSetElement(CanonicalType value) { 
1964          this.valueSet = value;
1965          return this;
1966        }
1967
1968        /**
1969         * @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.
1970         */
1971        public String getValueSet() { 
1972          return this.valueSet == null ? null : this.valueSet.getValue();
1973        }
1974
1975        /**
1976         * @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.
1977         */
1978        public SourceElementComponent setValueSet(String value) { 
1979          if (Utilities.noString(value))
1980            this.valueSet = null;
1981          else {
1982            if (this.valueSet == null)
1983              this.valueSet = new CanonicalType();
1984            this.valueSet.setValue(value);
1985          }
1986          return this;
1987        }
1988
1989        /**
1990         * @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
1991         */
1992        public BooleanType getNoMapElement() { 
1993          if (this.noMap == null)
1994            if (Configuration.errorOnAutoCreate())
1995              throw new Error("Attempt to auto-create SourceElementComponent.noMap");
1996            else if (Configuration.doAutoCreate())
1997              this.noMap = new BooleanType(); // bb
1998          return this.noMap;
1999        }
2000
2001        public boolean hasNoMapElement() { 
2002          return this.noMap != null && !this.noMap.isEmpty();
2003        }
2004
2005        public boolean hasNoMap() { 
2006          return this.noMap != null && !this.noMap.isEmpty();
2007        }
2008
2009        /**
2010         * @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
2011         */
2012        public SourceElementComponent setNoMapElement(BooleanType value) { 
2013          this.noMap = value;
2014          return this;
2015        }
2016
2017        /**
2018         * @return If noMap = true this indicates that no mapping to a target concept exists for this source concept.
2019         */
2020        public boolean getNoMap() { 
2021          return this.noMap == null || this.noMap.isEmpty() ? false : this.noMap.getValue();
2022        }
2023
2024        /**
2025         * @param value If noMap = true this indicates that no mapping to a target concept exists for this source concept.
2026         */
2027        public SourceElementComponent setNoMap(boolean value) { 
2028            if (this.noMap == null)
2029              this.noMap = new BooleanType();
2030            this.noMap.setValue(value);
2031          return this;
2032        }
2033
2034        /**
2035         * @return {@link #target} (A concept from the target value set that this concept maps to.)
2036         */
2037        public List<TargetElementComponent> getTarget() { 
2038          if (this.target == null)
2039            this.target = new ArrayList<TargetElementComponent>();
2040          return this.target;
2041        }
2042
2043        /**
2044         * @return Returns a reference to <code>this</code> for easy method chaining
2045         */
2046        public SourceElementComponent setTarget(List<TargetElementComponent> theTarget) { 
2047          this.target = theTarget;
2048          return this;
2049        }
2050
2051        public boolean hasTarget() { 
2052          if (this.target == null)
2053            return false;
2054          for (TargetElementComponent item : this.target)
2055            if (!item.isEmpty())
2056              return true;
2057          return false;
2058        }
2059
2060        public TargetElementComponent addTarget() { //3
2061          TargetElementComponent t = new TargetElementComponent();
2062          if (this.target == null)
2063            this.target = new ArrayList<TargetElementComponent>();
2064          this.target.add(t);
2065          return t;
2066        }
2067
2068        public SourceElementComponent addTarget(TargetElementComponent t) { //3
2069          if (t == null)
2070            return this;
2071          if (this.target == null)
2072            this.target = new ArrayList<TargetElementComponent>();
2073          this.target.add(t);
2074          return this;
2075        }
2076
2077        /**
2078         * @return The first repetition of repeating field {@link #target}, creating it if it does not already exist {3}
2079         */
2080        public TargetElementComponent getTargetFirstRep() { 
2081          if (getTarget().isEmpty()) {
2082            addTarget();
2083          }
2084          return getTarget().get(0);
2085        }
2086
2087        protected void listChildren(List<Property> children) {
2088          super.listChildren(children);
2089          children.add(new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, 1, code));
2090          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));
2091          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));
2092          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));
2093          children.add(new Property("target", "", "A concept from the target value set that this concept maps to.", 0, java.lang.Integer.MAX_VALUE, target));
2094        }
2095
2096        @Override
2097        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2098          switch (_hash) {
2099          case 3059181: /*code*/  return new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, 1, code);
2100          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);
2101          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);
2102          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);
2103          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);
2104          default: return super.getNamedProperty(_hash, _name, _checkValid);
2105          }
2106
2107        }
2108
2109      @Override
2110      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2111        switch (hash) {
2112        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
2113        case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType
2114        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
2115        case 104971227: /*noMap*/ return this.noMap == null ? new Base[0] : new Base[] {this.noMap}; // BooleanType
2116        case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // TargetElementComponent
2117        default: return super.getProperty(hash, name, checkValid);
2118        }
2119
2120      }
2121
2122      @Override
2123      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2124        switch (hash) {
2125        case 3059181: // code
2126          this.code = TypeConvertor.castToCode(value); // CodeType
2127          return value;
2128        case 1671764162: // display
2129          this.display = TypeConvertor.castToString(value); // StringType
2130          return value;
2131        case -1410174671: // valueSet
2132          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2133          return value;
2134        case 104971227: // noMap
2135          this.noMap = TypeConvertor.castToBoolean(value); // BooleanType
2136          return value;
2137        case -880905839: // target
2138          this.getTarget().add((TargetElementComponent) value); // TargetElementComponent
2139          return value;
2140        default: return super.setProperty(hash, name, value);
2141        }
2142
2143      }
2144
2145      @Override
2146      public Base setProperty(String name, Base value) throws FHIRException {
2147        if (name.equals("code")) {
2148          this.code = TypeConvertor.castToCode(value); // CodeType
2149        } else if (name.equals("display")) {
2150          this.display = TypeConvertor.castToString(value); // StringType
2151        } else if (name.equals("valueSet")) {
2152          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2153        } else if (name.equals("noMap")) {
2154          this.noMap = TypeConvertor.castToBoolean(value); // BooleanType
2155        } else if (name.equals("target")) {
2156          this.getTarget().add((TargetElementComponent) value);
2157        } else
2158          return super.setProperty(name, value);
2159        return value;
2160      }
2161
2162  @Override
2163  public void removeChild(String name, Base value) throws FHIRException {
2164        if (name.equals("code")) {
2165          this.code = null;
2166        } else if (name.equals("display")) {
2167          this.display = null;
2168        } else if (name.equals("valueSet")) {
2169          this.valueSet = null;
2170        } else if (name.equals("noMap")) {
2171          this.noMap = null;
2172        } else if (name.equals("target")) {
2173          this.getTarget().remove((TargetElementComponent) value);
2174        } else
2175          super.removeChild(name, value);
2176        
2177      }
2178
2179      @Override
2180      public Base makeProperty(int hash, String name) throws FHIRException {
2181        switch (hash) {
2182        case 3059181:  return getCodeElement();
2183        case 1671764162:  return getDisplayElement();
2184        case -1410174671:  return getValueSetElement();
2185        case 104971227:  return getNoMapElement();
2186        case -880905839:  return addTarget(); 
2187        default: return super.makeProperty(hash, name);
2188        }
2189
2190      }
2191
2192      @Override
2193      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2194        switch (hash) {
2195        case 3059181: /*code*/ return new String[] {"code"};
2196        case 1671764162: /*display*/ return new String[] {"string"};
2197        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
2198        case 104971227: /*noMap*/ return new String[] {"boolean"};
2199        case -880905839: /*target*/ return new String[] {};
2200        default: return super.getTypesForProperty(hash, name);
2201        }
2202
2203      }
2204
2205      @Override
2206      public Base addChild(String name) throws FHIRException {
2207        if (name.equals("code")) {
2208          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.code");
2209        }
2210        else if (name.equals("display")) {
2211          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.display");
2212        }
2213        else if (name.equals("valueSet")) {
2214          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.valueSet");
2215        }
2216        else if (name.equals("noMap")) {
2217          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.noMap");
2218        }
2219        else if (name.equals("target")) {
2220          return addTarget();
2221        }
2222        else
2223          return super.addChild(name);
2224      }
2225
2226      public SourceElementComponent copy() {
2227        SourceElementComponent dst = new SourceElementComponent();
2228        copyValues(dst);
2229        return dst;
2230      }
2231
2232      public void copyValues(SourceElementComponent dst) {
2233        super.copyValues(dst);
2234        dst.code = code == null ? null : code.copy();
2235        dst.display = display == null ? null : display.copy();
2236        dst.valueSet = valueSet == null ? null : valueSet.copy();
2237        dst.noMap = noMap == null ? null : noMap.copy();
2238        if (target != null) {
2239          dst.target = new ArrayList<TargetElementComponent>();
2240          for (TargetElementComponent i : target)
2241            dst.target.add(i.copy());
2242        };
2243      }
2244
2245      @Override
2246      public boolean equalsDeep(Base other_) {
2247        if (!super.equalsDeep(other_))
2248          return false;
2249        if (!(other_ instanceof SourceElementComponent))
2250          return false;
2251        SourceElementComponent o = (SourceElementComponent) other_;
2252        return compareDeep(code, o.code, true) && compareDeep(display, o.display, true) && compareDeep(valueSet, o.valueSet, true)
2253           && compareDeep(noMap, o.noMap, true) && compareDeep(target, o.target, true);
2254      }
2255
2256      @Override
2257      public boolean equalsShallow(Base other_) {
2258        if (!super.equalsShallow(other_))
2259          return false;
2260        if (!(other_ instanceof SourceElementComponent))
2261          return false;
2262        SourceElementComponent o = (SourceElementComponent) other_;
2263        return compareValues(code, o.code, true) && compareValues(display, o.display, true) && compareValues(valueSet, o.valueSet, true)
2264           && compareValues(noMap, o.noMap, true);
2265      }
2266
2267      public boolean isEmpty() {
2268        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, display, valueSet
2269          , noMap, target);
2270      }
2271
2272  public String fhirType() {
2273    return "ConceptMap.group.element";
2274
2275  }
2276
2277  public boolean hasTargetCode(String code) {
2278    for (TargetElementComponent tgt : getTarget()) {
2279      if (code.equals(tgt.getCode())) {
2280        return true;
2281      }
2282    }
2283    return false;
2284  }
2285
2286  public TargetElementComponent addTarget(String code, ConceptMapRelationship relationship) {
2287    TargetElementComponent tgt = addTarget();
2288    tgt.setCode(code);
2289    tgt.setRelationship(relationship);
2290    return tgt;
2291  }
2292  }
2293
2294    @Block()
2295    public static class TargetElementComponent extends BackboneElement implements IBaseBackboneElement {
2296        @Override
2297      public String toString() {
2298        return "TargetElementComponent [code=" + code + ", relationship=" + relationship + "]";
2299      }
2300
2301        /**
2302         * Identity (code or path) or the element/item that the map refers to.
2303         */
2304        @Child(name = "code", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false)
2305        @Description(shortDefinition="Code that identifies the target element", formalDefinition="Identity (code or path) or the element/item that the map refers to." )
2306        protected CodeType code;
2307
2308        /**
2309         * The display for the code. The display is only provided to help editors when editing the concept map.
2310         */
2311        @Child(name = "display", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
2312        @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." )
2313        protected StringType display;
2314
2315        /**
2316         * 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.
2317         */
2318        @Child(name = "valueSet", type = {CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
2319        @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." )
2320        protected CanonicalType valueSet;
2321
2322        /**
2323         * The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).
2324         */
2325        @Child(name = "relationship", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=false)
2326        @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)." )
2327        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/concept-map-relationship")
2328        protected Enumeration<ConceptMapRelationship> relationship;
2329
2330        /**
2331         * A description of status/issues in mapping that conveys additional information not represented in  the structured data.
2332         */
2333        @Child(name = "comment", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false)
2334        @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." )
2335        protected StringType comment;
2336
2337        /**
2338         * A property value for this source -> target mapping.
2339         */
2340        @Child(name = "property", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2341        @Description(shortDefinition="Property value for the source -> target mapping", formalDefinition="A property value for this source -> target mapping." )
2342        protected List<MappingPropertyComponent> property;
2343
2344        /**
2345         * 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.
2346         */
2347        @Child(name = "dependsOn", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2348        @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." )
2349        protected List<OtherElementComponent> dependsOn;
2350
2351        /**
2352         * Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data.
2353         */
2354        @Child(name = "product", type = {OtherElementComponent.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2355        @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." )
2356        protected List<OtherElementComponent> product;
2357
2358        private static final long serialVersionUID = 792559555L;
2359
2360    /**
2361     * Constructor
2362     */
2363      public TargetElementComponent() {
2364        super();
2365      }
2366
2367    /**
2368     * Constructor
2369     */
2370      public TargetElementComponent(ConceptMapRelationship relationship) {
2371        super();
2372        this.setRelationship(relationship);
2373      }
2374
2375        /**
2376         * @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
2377         */
2378        public CodeType getCodeElement() { 
2379          if (this.code == null)
2380            if (Configuration.errorOnAutoCreate())
2381              throw new Error("Attempt to auto-create TargetElementComponent.code");
2382            else if (Configuration.doAutoCreate())
2383              this.code = new CodeType(); // bb
2384          return this.code;
2385        }
2386
2387        public boolean hasCodeElement() { 
2388          return this.code != null && !this.code.isEmpty();
2389        }
2390
2391        public boolean hasCode() { 
2392          return this.code != null && !this.code.isEmpty();
2393        }
2394
2395        /**
2396         * @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
2397         */
2398        public TargetElementComponent setCodeElement(CodeType value) { 
2399          this.code = value;
2400          return this;
2401        }
2402
2403        /**
2404         * @return Identity (code or path) or the element/item that the map refers to.
2405         */
2406        public String getCode() { 
2407          return this.code == null ? null : this.code.getValue();
2408        }
2409
2410        /**
2411         * @param value Identity (code or path) or the element/item that the map refers to.
2412         */
2413        public TargetElementComponent setCode(String value) { 
2414          if (Utilities.noString(value))
2415            this.code = null;
2416          else {
2417            if (this.code == null)
2418              this.code = new CodeType();
2419            this.code.setValue(value);
2420          }
2421          return this;
2422        }
2423
2424        /**
2425         * @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
2426         */
2427        public StringType getDisplayElement() { 
2428          if (this.display == null)
2429            if (Configuration.errorOnAutoCreate())
2430              throw new Error("Attempt to auto-create TargetElementComponent.display");
2431            else if (Configuration.doAutoCreate())
2432              this.display = new StringType(); // bb
2433          return this.display;
2434        }
2435
2436        public boolean hasDisplayElement() { 
2437          return this.display != null && !this.display.isEmpty();
2438        }
2439
2440        public boolean hasDisplay() { 
2441          return this.display != null && !this.display.isEmpty();
2442        }
2443
2444        /**
2445         * @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
2446         */
2447        public TargetElementComponent setDisplayElement(StringType value) { 
2448          this.display = value;
2449          return this;
2450        }
2451
2452        /**
2453         * @return The display for the code. The display is only provided to help editors when editing the concept map.
2454         */
2455        public String getDisplay() { 
2456          return this.display == null ? null : this.display.getValue();
2457        }
2458
2459        /**
2460         * @param value The display for the code. The display is only provided to help editors when editing the concept map.
2461         */
2462        public TargetElementComponent setDisplay(String value) { 
2463          if (Utilities.noString(value))
2464            this.display = null;
2465          else {
2466            if (this.display == null)
2467              this.display = new StringType();
2468            this.display.setValue(value);
2469          }
2470          return this;
2471        }
2472
2473        /**
2474         * @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
2475         */
2476        public CanonicalType getValueSetElement() { 
2477          if (this.valueSet == null)
2478            if (Configuration.errorOnAutoCreate())
2479              throw new Error("Attempt to auto-create TargetElementComponent.valueSet");
2480            else if (Configuration.doAutoCreate())
2481              this.valueSet = new CanonicalType(); // bb
2482          return this.valueSet;
2483        }
2484
2485        public boolean hasValueSetElement() { 
2486          return this.valueSet != null && !this.valueSet.isEmpty();
2487        }
2488
2489        public boolean hasValueSet() { 
2490          return this.valueSet != null && !this.valueSet.isEmpty();
2491        }
2492
2493        /**
2494         * @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
2495         */
2496        public TargetElementComponent setValueSetElement(CanonicalType value) { 
2497          this.valueSet = value;
2498          return this;
2499        }
2500
2501        /**
2502         * @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.
2503         */
2504        public String getValueSet() { 
2505          return this.valueSet == null ? null : this.valueSet.getValue();
2506        }
2507
2508        /**
2509         * @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.
2510         */
2511        public TargetElementComponent setValueSet(String value) { 
2512          if (Utilities.noString(value))
2513            this.valueSet = null;
2514          else {
2515            if (this.valueSet == null)
2516              this.valueSet = new CanonicalType();
2517            this.valueSet.setValue(value);
2518          }
2519          return this;
2520        }
2521
2522        /**
2523         * @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
2524         */
2525        public Enumeration<ConceptMapRelationship> getRelationshipElement() { 
2526          if (this.relationship == null)
2527            if (Configuration.errorOnAutoCreate())
2528              throw new Error("Attempt to auto-create TargetElementComponent.relationship");
2529            else if (Configuration.doAutoCreate())
2530              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory()); // bb
2531          return this.relationship;
2532        }
2533
2534        public boolean hasRelationshipElement() { 
2535          return this.relationship != null && !this.relationship.isEmpty();
2536        }
2537
2538        public boolean hasRelationship() { 
2539          return this.relationship != null && !this.relationship.isEmpty();
2540        }
2541
2542        /**
2543         * @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
2544         */
2545        public TargetElementComponent setRelationshipElement(Enumeration<ConceptMapRelationship> value) { 
2546          this.relationship = value;
2547          return this;
2548        }
2549
2550        /**
2551         * @return The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).
2552         */
2553        public ConceptMapRelationship getRelationship() { 
2554          return this.relationship == null ? null : this.relationship.getValue();
2555        }
2556
2557        /**
2558         * @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).
2559         */
2560        public TargetElementComponent setRelationship(ConceptMapRelationship value) { 
2561            if (this.relationship == null)
2562              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory());
2563            this.relationship.setValue(value);
2564          return this;
2565        }
2566
2567        /**
2568         * @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
2569         */
2570        public StringType getCommentElement() { 
2571          if (this.comment == null)
2572            if (Configuration.errorOnAutoCreate())
2573              throw new Error("Attempt to auto-create TargetElementComponent.comment");
2574            else if (Configuration.doAutoCreate())
2575              this.comment = new StringType(); // bb
2576          return this.comment;
2577        }
2578
2579        public boolean hasCommentElement() { 
2580          return this.comment != null && !this.comment.isEmpty();
2581        }
2582
2583        public boolean hasComment() { 
2584          return this.comment != null && !this.comment.isEmpty();
2585        }
2586
2587        /**
2588         * @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
2589         */
2590        public TargetElementComponent setCommentElement(StringType value) { 
2591          this.comment = value;
2592          return this;
2593        }
2594
2595        /**
2596         * @return A description of status/issues in mapping that conveys additional information not represented in  the structured data.
2597         */
2598        public String getComment() { 
2599          return this.comment == null ? null : this.comment.getValue();
2600        }
2601
2602        /**
2603         * @param value A description of status/issues in mapping that conveys additional information not represented in  the structured data.
2604         */
2605        public TargetElementComponent setComment(String value) { 
2606          if (Utilities.noString(value))
2607            this.comment = null;
2608          else {
2609            if (this.comment == null)
2610              this.comment = new StringType();
2611            this.comment.setValue(value);
2612          }
2613          return this;
2614        }
2615
2616        /**
2617         * @return {@link #property} (A property value for this source -> target mapping.)
2618         */
2619        public List<MappingPropertyComponent> getProperty() { 
2620          if (this.property == null)
2621            this.property = new ArrayList<MappingPropertyComponent>();
2622          return this.property;
2623        }
2624
2625        /**
2626         * @return Returns a reference to <code>this</code> for easy method chaining
2627         */
2628        public TargetElementComponent setProperty(List<MappingPropertyComponent> theProperty) { 
2629          this.property = theProperty;
2630          return this;
2631        }
2632
2633        public boolean hasProperty() { 
2634          if (this.property == null)
2635            return false;
2636          for (MappingPropertyComponent item : this.property)
2637            if (!item.isEmpty())
2638              return true;
2639          return false;
2640        }
2641
2642        public MappingPropertyComponent addProperty() { //3
2643          MappingPropertyComponent t = new MappingPropertyComponent();
2644          if (this.property == null)
2645            this.property = new ArrayList<MappingPropertyComponent>();
2646          this.property.add(t);
2647          return t;
2648        }
2649
2650        public TargetElementComponent addProperty(MappingPropertyComponent t) { //3
2651          if (t == null)
2652            return this;
2653          if (this.property == null)
2654            this.property = new ArrayList<MappingPropertyComponent>();
2655          this.property.add(t);
2656          return this;
2657        }
2658
2659        /**
2660         * @return The first repetition of repeating field {@link #property}, creating it if it does not already exist {3}
2661         */
2662        public MappingPropertyComponent getPropertyFirstRep() { 
2663          if (getProperty().isEmpty()) {
2664            addProperty();
2665          }
2666          return getProperty().get(0);
2667        }
2668
2669        /**
2670         * @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.)
2671         */
2672        public List<OtherElementComponent> getDependsOn() { 
2673          if (this.dependsOn == null)
2674            this.dependsOn = new ArrayList<OtherElementComponent>();
2675          return this.dependsOn;
2676        }
2677
2678        /**
2679         * @return Returns a reference to <code>this</code> for easy method chaining
2680         */
2681        public TargetElementComponent setDependsOn(List<OtherElementComponent> theDependsOn) { 
2682          this.dependsOn = theDependsOn;
2683          return this;
2684        }
2685
2686        public boolean hasDependsOn() { 
2687          if (this.dependsOn == null)
2688            return false;
2689          for (OtherElementComponent item : this.dependsOn)
2690            if (!item.isEmpty())
2691              return true;
2692          return false;
2693        }
2694
2695        public OtherElementComponent addDependsOn() { //3
2696          OtherElementComponent t = new OtherElementComponent();
2697          if (this.dependsOn == null)
2698            this.dependsOn = new ArrayList<OtherElementComponent>();
2699          this.dependsOn.add(t);
2700          return t;
2701        }
2702
2703        public TargetElementComponent addDependsOn(OtherElementComponent t) { //3
2704          if (t == null)
2705            return this;
2706          if (this.dependsOn == null)
2707            this.dependsOn = new ArrayList<OtherElementComponent>();
2708          this.dependsOn.add(t);
2709          return this;
2710        }
2711
2712        /**
2713         * @return The first repetition of repeating field {@link #dependsOn}, creating it if it does not already exist {3}
2714         */
2715        public OtherElementComponent getDependsOnFirstRep() { 
2716          if (getDependsOn().isEmpty()) {
2717            addDependsOn();
2718          }
2719          return getDependsOn().get(0);
2720        }
2721
2722        /**
2723         * @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.)
2724         */
2725        public List<OtherElementComponent> getProduct() { 
2726          if (this.product == null)
2727            this.product = new ArrayList<OtherElementComponent>();
2728          return this.product;
2729        }
2730
2731        /**
2732         * @return Returns a reference to <code>this</code> for easy method chaining
2733         */
2734        public TargetElementComponent setProduct(List<OtherElementComponent> theProduct) { 
2735          this.product = theProduct;
2736          return this;
2737        }
2738
2739        public boolean hasProduct() { 
2740          if (this.product == null)
2741            return false;
2742          for (OtherElementComponent item : this.product)
2743            if (!item.isEmpty())
2744              return true;
2745          return false;
2746        }
2747
2748        public OtherElementComponent addProduct() { //3
2749          OtherElementComponent t = new OtherElementComponent();
2750          if (this.product == null)
2751            this.product = new ArrayList<OtherElementComponent>();
2752          this.product.add(t);
2753          return t;
2754        }
2755
2756        public TargetElementComponent addProduct(OtherElementComponent t) { //3
2757          if (t == null)
2758            return this;
2759          if (this.product == null)
2760            this.product = new ArrayList<OtherElementComponent>();
2761          this.product.add(t);
2762          return this;
2763        }
2764
2765        /**
2766         * @return The first repetition of repeating field {@link #product}, creating it if it does not already exist {3}
2767         */
2768        public OtherElementComponent getProductFirstRep() { 
2769          if (getProduct().isEmpty()) {
2770            addProduct();
2771          }
2772          return getProduct().get(0);
2773        }
2774
2775        protected void listChildren(List<Property> children) {
2776          super.listChildren(children);
2777          children.add(new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, 1, code));
2778          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));
2779          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));
2780          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));
2781          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));
2782          children.add(new Property("property", "", "A property value for this source -> target mapping.", 0, java.lang.Integer.MAX_VALUE, property));
2783          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));
2784          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));
2785        }
2786
2787        @Override
2788        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2789          switch (_hash) {
2790          case 3059181: /*code*/  return new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, 1, code);
2791          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);
2792          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);
2793          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);
2794          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);
2795          case -993141291: /*property*/  return new Property("property", "", "A property value for this source -> target mapping.", 0, java.lang.Integer.MAX_VALUE, property);
2796          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);
2797          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);
2798          default: return super.getNamedProperty(_hash, _name, _checkValid);
2799          }
2800
2801        }
2802
2803      @Override
2804      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2805        switch (hash) {
2806        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
2807        case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType
2808        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
2809        case -261851592: /*relationship*/ return this.relationship == null ? new Base[0] : new Base[] {this.relationship}; // Enumeration<ConceptMapRelationship>
2810        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType
2811        case -993141291: /*property*/ return this.property == null ? new Base[0] : this.property.toArray(new Base[this.property.size()]); // MappingPropertyComponent
2812        case -1109214266: /*dependsOn*/ return this.dependsOn == null ? new Base[0] : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // OtherElementComponent
2813        case -309474065: /*product*/ return this.product == null ? new Base[0] : this.product.toArray(new Base[this.product.size()]); // OtherElementComponent
2814        default: return super.getProperty(hash, name, checkValid);
2815        }
2816
2817      }
2818
2819      @Override
2820      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2821        switch (hash) {
2822        case 3059181: // code
2823          this.code = TypeConvertor.castToCode(value); // CodeType
2824          return value;
2825        case 1671764162: // display
2826          this.display = TypeConvertor.castToString(value); // StringType
2827          return value;
2828        case -1410174671: // valueSet
2829          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2830          return value;
2831        case -261851592: // relationship
2832          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
2833          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
2834          return value;
2835        case 950398559: // comment
2836          this.comment = TypeConvertor.castToString(value); // StringType
2837          return value;
2838        case -993141291: // property
2839          this.getProperty().add((MappingPropertyComponent) value); // MappingPropertyComponent
2840          return value;
2841        case -1109214266: // dependsOn
2842          this.getDependsOn().add((OtherElementComponent) value); // OtherElementComponent
2843          return value;
2844        case -309474065: // product
2845          this.getProduct().add((OtherElementComponent) value); // OtherElementComponent
2846          return value;
2847        default: return super.setProperty(hash, name, value);
2848        }
2849
2850      }
2851
2852      @Override
2853      public Base setProperty(String name, Base value) throws FHIRException {
2854        if (name.equals("code")) {
2855          this.code = TypeConvertor.castToCode(value); // CodeType
2856        } else if (name.equals("display")) {
2857          this.display = TypeConvertor.castToString(value); // StringType
2858        } else if (name.equals("valueSet")) {
2859          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
2860        } else if (name.equals("relationship")) {
2861          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
2862          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
2863        } else if (name.equals("comment")) {
2864          this.comment = TypeConvertor.castToString(value); // StringType
2865        } else if (name.equals("property")) {
2866          this.getProperty().add((MappingPropertyComponent) value);
2867        } else if (name.equals("dependsOn")) {
2868          this.getDependsOn().add((OtherElementComponent) value);
2869        } else if (name.equals("product")) {
2870          this.getProduct().add((OtherElementComponent) value);
2871        } else
2872          return super.setProperty(name, value);
2873        return value;
2874      }
2875
2876  @Override
2877  public void removeChild(String name, Base value) throws FHIRException {
2878        if (name.equals("code")) {
2879          this.code = null;
2880        } else if (name.equals("display")) {
2881          this.display = null;
2882        } else if (name.equals("valueSet")) {
2883          this.valueSet = null;
2884        } else if (name.equals("relationship")) {
2885          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
2886          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
2887        } else if (name.equals("comment")) {
2888          this.comment = null;
2889        } else if (name.equals("property")) {
2890          this.getProperty().remove((MappingPropertyComponent) value);
2891        } else if (name.equals("dependsOn")) {
2892          this.getDependsOn().remove((OtherElementComponent) value);
2893        } else if (name.equals("product")) {
2894          this.getProduct().remove((OtherElementComponent) value);
2895        } else
2896          super.removeChild(name, value);
2897        
2898      }
2899
2900      @Override
2901      public Base makeProperty(int hash, String name) throws FHIRException {
2902        switch (hash) {
2903        case 3059181:  return getCodeElement();
2904        case 1671764162:  return getDisplayElement();
2905        case -1410174671:  return getValueSetElement();
2906        case -261851592:  return getRelationshipElement();
2907        case 950398559:  return getCommentElement();
2908        case -993141291:  return addProperty(); 
2909        case -1109214266:  return addDependsOn(); 
2910        case -309474065:  return addProduct(); 
2911        default: return super.makeProperty(hash, name);
2912        }
2913
2914      }
2915
2916      @Override
2917      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2918        switch (hash) {
2919        case 3059181: /*code*/ return new String[] {"code"};
2920        case 1671764162: /*display*/ return new String[] {"string"};
2921        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
2922        case -261851592: /*relationship*/ return new String[] {"code"};
2923        case 950398559: /*comment*/ return new String[] {"string"};
2924        case -993141291: /*property*/ return new String[] {};
2925        case -1109214266: /*dependsOn*/ return new String[] {};
2926        case -309474065: /*product*/ return new String[] {"@ConceptMap.group.element.target.dependsOn"};
2927        default: return super.getTypesForProperty(hash, name);
2928        }
2929
2930      }
2931
2932      @Override
2933      public Base addChild(String name) throws FHIRException {
2934        if (name.equals("code")) {
2935          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.code");
2936        }
2937        else if (name.equals("display")) {
2938          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.display");
2939        }
2940        else if (name.equals("valueSet")) {
2941          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.valueSet");
2942        }
2943        else if (name.equals("relationship")) {
2944          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.relationship");
2945        }
2946        else if (name.equals("comment")) {
2947          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.comment");
2948        }
2949        else if (name.equals("property")) {
2950          return addProperty();
2951        }
2952        else if (name.equals("dependsOn")) {
2953          return addDependsOn();
2954        }
2955        else if (name.equals("product")) {
2956          return addProduct();
2957        }
2958        else
2959          return super.addChild(name);
2960      }
2961
2962      public TargetElementComponent copy() {
2963        TargetElementComponent dst = new TargetElementComponent();
2964        copyValues(dst);
2965        return dst;
2966      }
2967
2968      public void copyValues(TargetElementComponent dst) {
2969        super.copyValues(dst);
2970        dst.code = code == null ? null : code.copy();
2971        dst.display = display == null ? null : display.copy();
2972        dst.valueSet = valueSet == null ? null : valueSet.copy();
2973        dst.relationship = relationship == null ? null : relationship.copy();
2974        dst.comment = comment == null ? null : comment.copy();
2975        if (property != null) {
2976          dst.property = new ArrayList<MappingPropertyComponent>();
2977          for (MappingPropertyComponent i : property)
2978            dst.property.add(i.copy());
2979        };
2980        if (dependsOn != null) {
2981          dst.dependsOn = new ArrayList<OtherElementComponent>();
2982          for (OtherElementComponent i : dependsOn)
2983            dst.dependsOn.add(i.copy());
2984        };
2985        if (product != null) {
2986          dst.product = new ArrayList<OtherElementComponent>();
2987          for (OtherElementComponent i : product)
2988            dst.product.add(i.copy());
2989        };
2990      }
2991
2992      @Override
2993      public boolean equalsDeep(Base other_) {
2994        if (!super.equalsDeep(other_))
2995          return false;
2996        if (!(other_ instanceof TargetElementComponent))
2997          return false;
2998        TargetElementComponent o = (TargetElementComponent) other_;
2999        return compareDeep(code, o.code, true) && compareDeep(display, o.display, true) && compareDeep(valueSet, o.valueSet, true)
3000           && compareDeep(relationship, o.relationship, true) && compareDeep(comment, o.comment, true) && compareDeep(property, o.property, true)
3001           && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(product, o.product, true);
3002      }
3003
3004      @Override
3005      public boolean equalsShallow(Base other_) {
3006        if (!super.equalsShallow(other_))
3007          return false;
3008        if (!(other_ instanceof TargetElementComponent))
3009          return false;
3010        TargetElementComponent o = (TargetElementComponent) other_;
3011        return compareValues(code, o.code, true) && compareValues(display, o.display, true) && compareValues(valueSet, o.valueSet, true)
3012           && compareValues(relationship, o.relationship, true) && compareValues(comment, o.comment, true);
3013      }
3014
3015      public boolean isEmpty() {
3016        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, display, valueSet
3017          , relationship, comment, property, dependsOn, product);
3018      }
3019
3020  public String fhirType() {
3021    return "ConceptMap.group.element.target";
3022
3023  }
3024
3025  }
3026
3027    @Block()
3028    public static class MappingPropertyComponent extends BackboneElement implements IBaseBackboneElement {
3029        /**
3030         * A reference to a mapping property defined in ConceptMap.property.
3031         */
3032        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
3033        @Description(shortDefinition="Reference to ConceptMap.property.code", formalDefinition="A reference to a mapping property defined in ConceptMap.property." )
3034        protected CodeType code;
3035
3036        /**
3037         * 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.
3038         */
3039        @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)
3040        @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." )
3041        protected DataType value;
3042
3043        private static final long serialVersionUID = -422546419L;
3044
3045    /**
3046     * Constructor
3047     */
3048      public MappingPropertyComponent() {
3049        super();
3050      }
3051
3052    /**
3053     * Constructor
3054     */
3055      public MappingPropertyComponent(String code, DataType value) {
3056        super();
3057        this.setCode(code);
3058        this.setValue(value);
3059      }
3060
3061        /**
3062         * @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
3063         */
3064        public CodeType getCodeElement() { 
3065          if (this.code == null)
3066            if (Configuration.errorOnAutoCreate())
3067              throw new Error("Attempt to auto-create MappingPropertyComponent.code");
3068            else if (Configuration.doAutoCreate())
3069              this.code = new CodeType(); // bb
3070          return this.code;
3071        }
3072
3073        public boolean hasCodeElement() { 
3074          return this.code != null && !this.code.isEmpty();
3075        }
3076
3077        public boolean hasCode() { 
3078          return this.code != null && !this.code.isEmpty();
3079        }
3080
3081        /**
3082         * @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
3083         */
3084        public MappingPropertyComponent setCodeElement(CodeType value) { 
3085          this.code = value;
3086          return this;
3087        }
3088
3089        /**
3090         * @return A reference to a mapping property defined in ConceptMap.property.
3091         */
3092        public String getCode() { 
3093          return this.code == null ? null : this.code.getValue();
3094        }
3095
3096        /**
3097         * @param value A reference to a mapping property defined in ConceptMap.property.
3098         */
3099        public MappingPropertyComponent setCode(String value) { 
3100            if (this.code == null)
3101              this.code = new CodeType();
3102            this.code.setValue(value);
3103          return this;
3104        }
3105
3106        /**
3107         * @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.)
3108         */
3109        public DataType getValue() { 
3110          return this.value;
3111        }
3112
3113        /**
3114         * @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.)
3115         */
3116        public Coding getValueCoding() throws FHIRException { 
3117          if (this.value == null)
3118            this.value = new Coding();
3119          if (!(this.value instanceof Coding))
3120            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
3121          return (Coding) this.value;
3122        }
3123
3124        public boolean hasValueCoding() { 
3125          return this != null && this.value instanceof Coding;
3126        }
3127
3128        /**
3129         * @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.)
3130         */
3131        public StringType getValueStringType() throws FHIRException { 
3132          if (this.value == null)
3133            this.value = new StringType();
3134          if (!(this.value instanceof StringType))
3135            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
3136          return (StringType) this.value;
3137        }
3138
3139        public boolean hasValueStringType() { 
3140          return this != null && this.value instanceof StringType;
3141        }
3142
3143        /**
3144         * @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.)
3145         */
3146        public IntegerType getValueIntegerType() throws FHIRException { 
3147          if (this.value == null)
3148            this.value = new IntegerType();
3149          if (!(this.value instanceof IntegerType))
3150            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
3151          return (IntegerType) this.value;
3152        }
3153
3154        public boolean hasValueIntegerType() { 
3155          return this != null && this.value instanceof IntegerType;
3156        }
3157
3158        /**
3159         * @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.)
3160         */
3161        public BooleanType getValueBooleanType() throws FHIRException { 
3162          if (this.value == null)
3163            this.value = new BooleanType();
3164          if (!(this.value instanceof BooleanType))
3165            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
3166          return (BooleanType) this.value;
3167        }
3168
3169        public boolean hasValueBooleanType() { 
3170          return this != null && this.value instanceof BooleanType;
3171        }
3172
3173        /**
3174         * @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.)
3175         */
3176        public DateTimeType getValueDateTimeType() throws FHIRException { 
3177          if (this.value == null)
3178            this.value = new DateTimeType();
3179          if (!(this.value instanceof DateTimeType))
3180            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered");
3181          return (DateTimeType) this.value;
3182        }
3183
3184        public boolean hasValueDateTimeType() { 
3185          return this != null && this.value instanceof DateTimeType;
3186        }
3187
3188        /**
3189         * @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.)
3190         */
3191        public DecimalType getValueDecimalType() throws FHIRException { 
3192          if (this.value == null)
3193            this.value = new DecimalType();
3194          if (!(this.value instanceof DecimalType))
3195            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered");
3196          return (DecimalType) this.value;
3197        }
3198
3199        public boolean hasValueDecimalType() { 
3200          return this != null && this.value instanceof DecimalType;
3201        }
3202
3203        /**
3204         * @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.)
3205         */
3206        public CodeType getValueCodeType() throws FHIRException { 
3207          if (this.value == null)
3208            this.value = new CodeType();
3209          if (!(this.value instanceof CodeType))
3210            throw new FHIRException("Type mismatch: the type CodeType was expected, but "+this.value.getClass().getName()+" was encountered");
3211          return (CodeType) this.value;
3212        }
3213
3214        public boolean hasValueCodeType() { 
3215          return this != null && this.value instanceof CodeType;
3216        }
3217
3218        public boolean hasValue() { 
3219          return this.value != null && !this.value.isEmpty();
3220        }
3221
3222        /**
3223         * @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.)
3224         */
3225        public MappingPropertyComponent setValue(DataType value) { 
3226          if (value != null && !(value instanceof Coding || value instanceof StringType || value instanceof IntegerType || value instanceof BooleanType || value instanceof DateTimeType || value instanceof DecimalType || value instanceof CodeType))
3227            throw new FHIRException("Not the right type for ConceptMap.group.element.target.property.value[x]: "+value.fhirType());
3228          this.value = value;
3229          return this;
3230        }
3231
3232        protected void listChildren(List<Property> children) {
3233          super.listChildren(children);
3234          children.add(new Property("code", "code", "A reference to a mapping property defined in ConceptMap.property.", 0, 1, code));
3235          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));
3236        }
3237
3238        @Override
3239        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3240          switch (_hash) {
3241          case 3059181: /*code*/  return new Property("code", "code", "A reference to a mapping property defined in ConceptMap.property.", 0, 1, code);
3242          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);
3243          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);
3244          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);
3245          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);
3246          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);
3247          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);
3248          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);
3249          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);
3250          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);
3251          default: return super.getNamedProperty(_hash, _name, _checkValid);
3252          }
3253
3254        }
3255
3256      @Override
3257      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3258        switch (hash) {
3259        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
3260        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3261        default: return super.getProperty(hash, name, checkValid);
3262        }
3263
3264      }
3265
3266      @Override
3267      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3268        switch (hash) {
3269        case 3059181: // code
3270          this.code = TypeConvertor.castToCode(value); // CodeType
3271          return value;
3272        case 111972721: // value
3273          this.value = TypeConvertor.castToType(value); // DataType
3274          return value;
3275        default: return super.setProperty(hash, name, value);
3276        }
3277
3278      }
3279
3280      @Override
3281      public Base setProperty(String name, Base value) throws FHIRException {
3282        if (name.equals("code")) {
3283          this.code = TypeConvertor.castToCode(value); // CodeType
3284        } else if (name.equals("value[x]")) {
3285          this.value = TypeConvertor.castToType(value); // DataType
3286        } else
3287          return super.setProperty(name, value);
3288        return value;
3289      }
3290
3291  @Override
3292  public void removeChild(String name, Base value) throws FHIRException {
3293        if (name.equals("code")) {
3294          this.code = null;
3295        } else if (name.equals("value[x]")) {
3296          this.value = null;
3297        } else
3298          super.removeChild(name, value);
3299        
3300      }
3301
3302      @Override
3303      public Base makeProperty(int hash, String name) throws FHIRException {
3304        switch (hash) {
3305        case 3059181:  return getCodeElement();
3306        case -1410166417:  return getValue();
3307        case 111972721:  return getValue();
3308        default: return super.makeProperty(hash, name);
3309        }
3310
3311      }
3312
3313      @Override
3314      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3315        switch (hash) {
3316        case 3059181: /*code*/ return new String[] {"code"};
3317        case 111972721: /*value*/ return new String[] {"Coding", "string", "integer", "boolean", "dateTime", "decimal", "code"};
3318        default: return super.getTypesForProperty(hash, name);
3319        }
3320
3321      }
3322
3323      @Override
3324      public Base addChild(String name) throws FHIRException {
3325        if (name.equals("code")) {
3326          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.property.code");
3327        }
3328        else if (name.equals("valueCoding")) {
3329          this.value = new Coding();
3330          return this.value;
3331        }
3332        else if (name.equals("valueString")) {
3333          this.value = new StringType();
3334          return this.value;
3335        }
3336        else if (name.equals("valueInteger")) {
3337          this.value = new IntegerType();
3338          return this.value;
3339        }
3340        else if (name.equals("valueBoolean")) {
3341          this.value = new BooleanType();
3342          return this.value;
3343        }
3344        else if (name.equals("valueDateTime")) {
3345          this.value = new DateTimeType();
3346          return this.value;
3347        }
3348        else if (name.equals("valueDecimal")) {
3349          this.value = new DecimalType();
3350          return this.value;
3351        }
3352        else if (name.equals("valueCode")) {
3353          this.value = new CodeType();
3354          return this.value;
3355        }
3356        else
3357          return super.addChild(name);
3358      }
3359
3360      public MappingPropertyComponent copy() {
3361        MappingPropertyComponent dst = new MappingPropertyComponent();
3362        copyValues(dst);
3363        return dst;
3364      }
3365
3366      public void copyValues(MappingPropertyComponent dst) {
3367        super.copyValues(dst);
3368        dst.code = code == null ? null : code.copy();
3369        dst.value = value == null ? null : value.copy();
3370      }
3371
3372      @Override
3373      public boolean equalsDeep(Base other_) {
3374        if (!super.equalsDeep(other_))
3375          return false;
3376        if (!(other_ instanceof MappingPropertyComponent))
3377          return false;
3378        MappingPropertyComponent o = (MappingPropertyComponent) other_;
3379        return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
3380      }
3381
3382      @Override
3383      public boolean equalsShallow(Base other_) {
3384        if (!super.equalsShallow(other_))
3385          return false;
3386        if (!(other_ instanceof MappingPropertyComponent))
3387          return false;
3388        MappingPropertyComponent o = (MappingPropertyComponent) other_;
3389        return compareValues(code, o.code, true);
3390      }
3391
3392      public boolean isEmpty() {
3393        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
3394      }
3395
3396  public String fhirType() {
3397    return "ConceptMap.group.element.target.property";
3398
3399  }
3400
3401  }
3402
3403    @Block()
3404    public static class OtherElementComponent extends BackboneElement implements IBaseBackboneElement {
3405        /**
3406         * A reference to the additional attribute that holds a value the map depends on.
3407         */
3408        @Child(name = "attribute", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
3409        @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." )
3410        protected CodeType attribute;
3411
3412        /**
3413         * Data element value that the map depends on / produces.
3414         */
3415        @Child(name = "value", type = {CodeType.class, Coding.class, StringType.class, BooleanType.class, Quantity.class}, order=2, min=0, max=1, modifier=false, summary=false)
3416        @Description(shortDefinition="Value of the referenced data element", formalDefinition="Data element value that the map depends on / produces." )
3417        protected DataType value;
3418
3419        /**
3420         * This mapping applies if the data element value is a code from this value set.
3421         */
3422        @Child(name = "valueSet", type = {CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
3423        @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." )
3424        protected CanonicalType valueSet;
3425
3426        private static final long serialVersionUID = 2103818133L;
3427
3428    /**
3429     * Constructor
3430     */
3431      public OtherElementComponent() {
3432        super();
3433      }
3434
3435    /**
3436     * Constructor
3437     */
3438      public OtherElementComponent(String attribute) {
3439        super();
3440        this.setAttribute(attribute);
3441      }
3442
3443        /**
3444         * @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
3445         */
3446        public CodeType getAttributeElement() { 
3447          if (this.attribute == null)
3448            if (Configuration.errorOnAutoCreate())
3449              throw new Error("Attempt to auto-create OtherElementComponent.attribute");
3450            else if (Configuration.doAutoCreate())
3451              this.attribute = new CodeType(); // bb
3452          return this.attribute;
3453        }
3454
3455        public boolean hasAttributeElement() { 
3456          return this.attribute != null && !this.attribute.isEmpty();
3457        }
3458
3459        public boolean hasAttribute() { 
3460          return this.attribute != null && !this.attribute.isEmpty();
3461        }
3462
3463        /**
3464         * @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
3465         */
3466        public OtherElementComponent setAttributeElement(CodeType value) { 
3467          this.attribute = value;
3468          return this;
3469        }
3470
3471        /**
3472         * @return A reference to the additional attribute that holds a value the map depends on.
3473         */
3474        public String getAttribute() { 
3475          return this.attribute == null ? null : this.attribute.getValue();
3476        }
3477
3478        /**
3479         * @param value A reference to the additional attribute that holds a value the map depends on.
3480         */
3481        public OtherElementComponent setAttribute(String value) { 
3482            if (this.attribute == null)
3483              this.attribute = new CodeType();
3484            this.attribute.setValue(value);
3485          return this;
3486        }
3487
3488        /**
3489         * @return {@link #value} (Data element value that the map depends on / produces.)
3490         */
3491        public DataType getValue() { 
3492          return this.value;
3493        }
3494
3495        /**
3496         * @return {@link #value} (Data element value that the map depends on / produces.)
3497         */
3498        public CodeType getValueCodeType() throws FHIRException { 
3499          if (this.value == null)
3500            this.value = new CodeType();
3501          if (!(this.value instanceof CodeType))
3502            throw new FHIRException("Type mismatch: the type CodeType was expected, but "+this.value.getClass().getName()+" was encountered");
3503          return (CodeType) this.value;
3504        }
3505
3506        public boolean hasValueCodeType() { 
3507          return this != null && this.value instanceof CodeType;
3508        }
3509
3510        /**
3511         * @return {@link #value} (Data element value that the map depends on / produces.)
3512         */
3513        public Coding getValueCoding() throws FHIRException { 
3514          if (this.value == null)
3515            this.value = new Coding();
3516          if (!(this.value instanceof Coding))
3517            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
3518          return (Coding) this.value;
3519        }
3520
3521        public boolean hasValueCoding() { 
3522          return this != null && this.value instanceof Coding;
3523        }
3524
3525        /**
3526         * @return {@link #value} (Data element value that the map depends on / produces.)
3527         */
3528        public StringType getValueStringType() throws FHIRException { 
3529          if (this.value == null)
3530            this.value = new StringType();
3531          if (!(this.value instanceof StringType))
3532            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
3533          return (StringType) this.value;
3534        }
3535
3536        public boolean hasValueStringType() { 
3537          return this != null && this.value instanceof StringType;
3538        }
3539
3540        /**
3541         * @return {@link #value} (Data element value that the map depends on / produces.)
3542         */
3543        public BooleanType getValueBooleanType() throws FHIRException { 
3544          if (this.value == null)
3545            this.value = new BooleanType();
3546          if (!(this.value instanceof BooleanType))
3547            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
3548          return (BooleanType) this.value;
3549        }
3550
3551        public boolean hasValueBooleanType() { 
3552          return this != null && this.value instanceof BooleanType;
3553        }
3554
3555        /**
3556         * @return {@link #value} (Data element value that the map depends on / produces.)
3557         */
3558        public Quantity getValueQuantity() throws FHIRException { 
3559          if (this.value == null)
3560            this.value = new Quantity();
3561          if (!(this.value instanceof Quantity))
3562            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered");
3563          return (Quantity) this.value;
3564        }
3565
3566        public boolean hasValueQuantity() { 
3567          return this != null && this.value instanceof Quantity;
3568        }
3569
3570        public boolean hasValue() { 
3571          return this.value != null && !this.value.isEmpty();
3572        }
3573
3574        /**
3575         * @param value {@link #value} (Data element value that the map depends on / produces.)
3576         */
3577        public OtherElementComponent setValue(DataType value) { 
3578          if (value != null && !(value instanceof CodeType || value instanceof Coding || value instanceof StringType || value instanceof BooleanType || value instanceof Quantity))
3579            throw new FHIRException("Not the right type for ConceptMap.group.element.target.dependsOn.value[x]: "+value.fhirType());
3580          this.value = value;
3581          return this;
3582        }
3583
3584        /**
3585         * @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
3586         */
3587        public CanonicalType getValueSetElement() { 
3588          if (this.valueSet == null)
3589            if (Configuration.errorOnAutoCreate())
3590              throw new Error("Attempt to auto-create OtherElementComponent.valueSet");
3591            else if (Configuration.doAutoCreate())
3592              this.valueSet = new CanonicalType(); // bb
3593          return this.valueSet;
3594        }
3595
3596        public boolean hasValueSetElement() { 
3597          return this.valueSet != null && !this.valueSet.isEmpty();
3598        }
3599
3600        public boolean hasValueSet() { 
3601          return this.valueSet != null && !this.valueSet.isEmpty();
3602        }
3603
3604        /**
3605         * @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
3606         */
3607        public OtherElementComponent setValueSetElement(CanonicalType value) { 
3608          this.valueSet = value;
3609          return this;
3610        }
3611
3612        /**
3613         * @return This mapping applies if the data element value is a code from this value set.
3614         */
3615        public String getValueSet() { 
3616          return this.valueSet == null ? null : this.valueSet.getValue();
3617        }
3618
3619        /**
3620         * @param value This mapping applies if the data element value is a code from this value set.
3621         */
3622        public OtherElementComponent setValueSet(String value) { 
3623          if (Utilities.noString(value))
3624            this.valueSet = null;
3625          else {
3626            if (this.valueSet == null)
3627              this.valueSet = new CanonicalType();
3628            this.valueSet.setValue(value);
3629          }
3630          return this;
3631        }
3632
3633        protected void listChildren(List<Property> children) {
3634          super.listChildren(children);
3635          children.add(new Property("attribute", "code", "A reference to the additional attribute that holds a value the map depends on.", 0, 1, attribute));
3636          children.add(new Property("value[x]", "code|Coding|string|boolean|Quantity", "Data element value that the map depends on / produces.", 0, 1, value));
3637          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));
3638        }
3639
3640        @Override
3641        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3642          switch (_hash) {
3643          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);
3644          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);
3645          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);
3646          case -766209282: /*valueCode*/  return new Property("value[x]", "code", "Data element value that the map depends on / produces.", 0, 1, value);
3647          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "Data element value that the map depends on / produces.", 0, 1, value);
3648          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "Data element value that the map depends on / produces.", 0, 1, value);
3649          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "Data element value that the map depends on / produces.", 0, 1, value);
3650          case -2029823716: /*valueQuantity*/  return new Property("value[x]", "Quantity", "Data element value that the map depends on / produces.", 0, 1, value);
3651          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);
3652          default: return super.getNamedProperty(_hash, _name, _checkValid);
3653          }
3654
3655        }
3656
3657      @Override
3658      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3659        switch (hash) {
3660        case 13085340: /*attribute*/ return this.attribute == null ? new Base[0] : new Base[] {this.attribute}; // CodeType
3661        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
3662        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
3663        default: return super.getProperty(hash, name, checkValid);
3664        }
3665
3666      }
3667
3668      @Override
3669      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3670        switch (hash) {
3671        case 13085340: // attribute
3672          this.attribute = TypeConvertor.castToCode(value); // CodeType
3673          return value;
3674        case 111972721: // value
3675          this.value = TypeConvertor.castToType(value); // DataType
3676          return value;
3677        case -1410174671: // valueSet
3678          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
3679          return value;
3680        default: return super.setProperty(hash, name, value);
3681        }
3682
3683      }
3684
3685      @Override
3686      public Base setProperty(String name, Base value) throws FHIRException {
3687        if (name.equals("attribute")) {
3688          this.attribute = TypeConvertor.castToCode(value); // CodeType
3689        } else if (name.equals("value[x]")) {
3690          this.value = TypeConvertor.castToType(value); // DataType
3691        } else if (name.equals("valueSet")) {
3692          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
3693        } else
3694          return super.setProperty(name, value);
3695        return value;
3696      }
3697
3698  @Override
3699  public void removeChild(String name, Base value) throws FHIRException {
3700        if (name.equals("attribute")) {
3701          this.attribute = null;
3702        } else if (name.equals("value[x]")) {
3703          this.value = null;
3704        } else if (name.equals("valueSet")) {
3705          this.valueSet = null;
3706        } else
3707          super.removeChild(name, value);
3708        
3709      }
3710
3711      @Override
3712      public Base makeProperty(int hash, String name) throws FHIRException {
3713        switch (hash) {
3714        case 13085340:  return getAttributeElement();
3715        case -1410166417:  return getValue();
3716        case 111972721:  return getValue();
3717        case -1410174671:  return getValueSetElement();
3718        default: return super.makeProperty(hash, name);
3719        }
3720
3721      }
3722
3723      @Override
3724      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3725        switch (hash) {
3726        case 13085340: /*attribute*/ return new String[] {"code"};
3727        case 111972721: /*value*/ return new String[] {"code", "Coding", "string", "boolean", "Quantity"};
3728        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
3729        default: return super.getTypesForProperty(hash, name);
3730        }
3731
3732      }
3733
3734      @Override
3735      public Base addChild(String name) throws FHIRException {
3736        if (name.equals("attribute")) {
3737          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.dependsOn.attribute");
3738        }
3739        else if (name.equals("valueCode")) {
3740          this.value = new CodeType();
3741          return this.value;
3742        }
3743        else if (name.equals("valueCoding")) {
3744          this.value = new Coding();
3745          return this.value;
3746        }
3747        else if (name.equals("valueString")) {
3748          this.value = new StringType();
3749          return this.value;
3750        }
3751        else if (name.equals("valueBoolean")) {
3752          this.value = new BooleanType();
3753          return this.value;
3754        }
3755        else if (name.equals("valueQuantity")) {
3756          this.value = new Quantity();
3757          return this.value;
3758        }
3759        else if (name.equals("valueSet")) {
3760          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.element.target.dependsOn.valueSet");
3761        }
3762        else
3763          return super.addChild(name);
3764      }
3765
3766      public OtherElementComponent copy() {
3767        OtherElementComponent dst = new OtherElementComponent();
3768        copyValues(dst);
3769        return dst;
3770      }
3771
3772      public void copyValues(OtherElementComponent dst) {
3773        super.copyValues(dst);
3774        dst.attribute = attribute == null ? null : attribute.copy();
3775        dst.value = value == null ? null : value.copy();
3776        dst.valueSet = valueSet == null ? null : valueSet.copy();
3777      }
3778
3779      @Override
3780      public boolean equalsDeep(Base other_) {
3781        if (!super.equalsDeep(other_))
3782          return false;
3783        if (!(other_ instanceof OtherElementComponent))
3784          return false;
3785        OtherElementComponent o = (OtherElementComponent) other_;
3786        return compareDeep(attribute, o.attribute, true) && compareDeep(value, o.value, true) && compareDeep(valueSet, o.valueSet, true)
3787          ;
3788      }
3789
3790      @Override
3791      public boolean equalsShallow(Base other_) {
3792        if (!super.equalsShallow(other_))
3793          return false;
3794        if (!(other_ instanceof OtherElementComponent))
3795          return false;
3796        OtherElementComponent o = (OtherElementComponent) other_;
3797        return compareValues(attribute, o.attribute, true) && compareValues(valueSet, o.valueSet, true);
3798      }
3799
3800      public boolean isEmpty() {
3801        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(attribute, value, valueSet
3802          );
3803      }
3804
3805  public String fhirType() {
3806    return "ConceptMap.group.element.target.dependsOn";
3807
3808  }
3809
3810  }
3811
3812    @Block()
3813    public static class ConceptMapGroupUnmappedComponent extends BackboneElement implements IBaseBackboneElement {
3814        /**
3815         * 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).
3816         */
3817        @Child(name = "mode", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
3818        @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)." )
3819        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/conceptmap-unmapped-mode")
3820        protected Enumeration<ConceptMapGroupUnmappedMode> mode;
3821
3822        /**
3823         * The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.
3824         */
3825        @Child(name = "code", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
3826        @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." )
3827        protected CodeType code;
3828
3829        /**
3830         * The display for the code. The display is only provided to help editors when editing the concept map.
3831         */
3832        @Child(name = "display", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
3833        @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." )
3834        protected StringType display;
3835
3836        /**
3837         * The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.
3838         */
3839        @Child(name = "valueSet", type = {CanonicalType.class}, order=4, min=0, max=1, modifier=false, summary=false)
3840        @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." )
3841        protected CanonicalType valueSet;
3842
3843        /**
3844         * 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'.
3845         */
3846        @Child(name = "relationship", type = {CodeType.class}, order=5, min=0, max=1, modifier=true, summary=false)
3847        @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'." )
3848        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/concept-map-relationship")
3849        protected Enumeration<ConceptMapRelationship> relationship;
3850
3851        /**
3852         * 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.
3853         */
3854        @Child(name = "otherMap", type = {CanonicalType.class}, order=6, min=0, max=1, modifier=false, summary=false)
3855        @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." )
3856        protected CanonicalType otherMap;
3857
3858        private static final long serialVersionUID = 449945387L;
3859
3860    /**
3861     * Constructor
3862     */
3863      public ConceptMapGroupUnmappedComponent() {
3864        super();
3865      }
3866
3867    /**
3868     * Constructor
3869     */
3870      public ConceptMapGroupUnmappedComponent(ConceptMapGroupUnmappedMode mode) {
3871        super();
3872        this.setMode(mode);
3873      }
3874
3875        /**
3876         * @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
3877         */
3878        public Enumeration<ConceptMapGroupUnmappedMode> getModeElement() { 
3879          if (this.mode == null)
3880            if (Configuration.errorOnAutoCreate())
3881              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.mode");
3882            else if (Configuration.doAutoCreate())
3883              this.mode = new Enumeration<ConceptMapGroupUnmappedMode>(new ConceptMapGroupUnmappedModeEnumFactory()); // bb
3884          return this.mode;
3885        }
3886
3887        public boolean hasModeElement() { 
3888          return this.mode != null && !this.mode.isEmpty();
3889        }
3890
3891        public boolean hasMode() { 
3892          return this.mode != null && !this.mode.isEmpty();
3893        }
3894
3895        /**
3896         * @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
3897         */
3898        public ConceptMapGroupUnmappedComponent setModeElement(Enumeration<ConceptMapGroupUnmappedMode> value) { 
3899          this.mode = value;
3900          return this;
3901        }
3902
3903        /**
3904         * @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).
3905         */
3906        public ConceptMapGroupUnmappedMode getMode() { 
3907          return this.mode == null ? null : this.mode.getValue();
3908        }
3909
3910        /**
3911         * @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).
3912         */
3913        public ConceptMapGroupUnmappedComponent setMode(ConceptMapGroupUnmappedMode value) { 
3914            if (this.mode == null)
3915              this.mode = new Enumeration<ConceptMapGroupUnmappedMode>(new ConceptMapGroupUnmappedModeEnumFactory());
3916            this.mode.setValue(value);
3917          return this;
3918        }
3919
3920        /**
3921         * @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
3922         */
3923        public CodeType getCodeElement() { 
3924          if (this.code == null)
3925            if (Configuration.errorOnAutoCreate())
3926              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.code");
3927            else if (Configuration.doAutoCreate())
3928              this.code = new CodeType(); // bb
3929          return this.code;
3930        }
3931
3932        public boolean hasCodeElement() { 
3933          return this.code != null && !this.code.isEmpty();
3934        }
3935
3936        public boolean hasCode() { 
3937          return this.code != null && !this.code.isEmpty();
3938        }
3939
3940        /**
3941         * @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
3942         */
3943        public ConceptMapGroupUnmappedComponent setCodeElement(CodeType value) { 
3944          this.code = value;
3945          return this;
3946        }
3947
3948        /**
3949         * @return The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.
3950         */
3951        public String getCode() { 
3952          return this.code == null ? null : this.code.getValue();
3953        }
3954
3955        /**
3956         * @param value The fixed code to use when the mode = 'fixed'  - all unmapped codes are mapped to a single fixed code.
3957         */
3958        public ConceptMapGroupUnmappedComponent setCode(String value) { 
3959          if (Utilities.noString(value))
3960            this.code = null;
3961          else {
3962            if (this.code == null)
3963              this.code = new CodeType();
3964            this.code.setValue(value);
3965          }
3966          return this;
3967        }
3968
3969        /**
3970         * @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
3971         */
3972        public StringType getDisplayElement() { 
3973          if (this.display == null)
3974            if (Configuration.errorOnAutoCreate())
3975              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.display");
3976            else if (Configuration.doAutoCreate())
3977              this.display = new StringType(); // bb
3978          return this.display;
3979        }
3980
3981        public boolean hasDisplayElement() { 
3982          return this.display != null && !this.display.isEmpty();
3983        }
3984
3985        public boolean hasDisplay() { 
3986          return this.display != null && !this.display.isEmpty();
3987        }
3988
3989        /**
3990         * @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
3991         */
3992        public ConceptMapGroupUnmappedComponent setDisplayElement(StringType value) { 
3993          this.display = value;
3994          return this;
3995        }
3996
3997        /**
3998         * @return The display for the code. The display is only provided to help editors when editing the concept map.
3999         */
4000        public String getDisplay() { 
4001          return this.display == null ? null : this.display.getValue();
4002        }
4003
4004        /**
4005         * @param value The display for the code. The display is only provided to help editors when editing the concept map.
4006         */
4007        public ConceptMapGroupUnmappedComponent setDisplay(String value) { 
4008          if (Utilities.noString(value))
4009            this.display = null;
4010          else {
4011            if (this.display == null)
4012              this.display = new StringType();
4013            this.display.setValue(value);
4014          }
4015          return this;
4016        }
4017
4018        /**
4019         * @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
4020         */
4021        public CanonicalType getValueSetElement() { 
4022          if (this.valueSet == null)
4023            if (Configuration.errorOnAutoCreate())
4024              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.valueSet");
4025            else if (Configuration.doAutoCreate())
4026              this.valueSet = new CanonicalType(); // bb
4027          return this.valueSet;
4028        }
4029
4030        public boolean hasValueSetElement() { 
4031          return this.valueSet != null && !this.valueSet.isEmpty();
4032        }
4033
4034        public boolean hasValueSet() { 
4035          return this.valueSet != null && !this.valueSet.isEmpty();
4036        }
4037
4038        /**
4039         * @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
4040         */
4041        public ConceptMapGroupUnmappedComponent setValueSetElement(CanonicalType value) { 
4042          this.valueSet = value;
4043          return this;
4044        }
4045
4046        /**
4047         * @return The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.
4048         */
4049        public String getValueSet() { 
4050          return this.valueSet == null ? null : this.valueSet.getValue();
4051        }
4052
4053        /**
4054         * @param value The set of fixed codes to use when the mode = 'fixed'  - all unmapped codes are mapped to each of the fixed codes.
4055         */
4056        public ConceptMapGroupUnmappedComponent setValueSet(String value) { 
4057          if (Utilities.noString(value))
4058            this.valueSet = null;
4059          else {
4060            if (this.valueSet == null)
4061              this.valueSet = new CanonicalType();
4062            this.valueSet.setValue(value);
4063          }
4064          return this;
4065        }
4066
4067        /**
4068         * @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
4069         */
4070        public Enumeration<ConceptMapRelationship> getRelationshipElement() { 
4071          if (this.relationship == null)
4072            if (Configuration.errorOnAutoCreate())
4073              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.relationship");
4074            else if (Configuration.doAutoCreate())
4075              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory()); // bb
4076          return this.relationship;
4077        }
4078
4079        public boolean hasRelationshipElement() { 
4080          return this.relationship != null && !this.relationship.isEmpty();
4081        }
4082
4083        public boolean hasRelationship() { 
4084          return this.relationship != null && !this.relationship.isEmpty();
4085        }
4086
4087        /**
4088         * @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
4089         */
4090        public ConceptMapGroupUnmappedComponent setRelationshipElement(Enumeration<ConceptMapRelationship> value) { 
4091          this.relationship = value;
4092          return this;
4093        }
4094
4095        /**
4096         * @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'.
4097         */
4098        public ConceptMapRelationship getRelationship() { 
4099          return this.relationship == null ? null : this.relationship.getValue();
4100        }
4101
4102        /**
4103         * @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'.
4104         */
4105        public ConceptMapGroupUnmappedComponent setRelationship(ConceptMapRelationship value) { 
4106          if (value == null)
4107            this.relationship = null;
4108          else {
4109            if (this.relationship == null)
4110              this.relationship = new Enumeration<ConceptMapRelationship>(new ConceptMapRelationshipEnumFactory());
4111            this.relationship.setValue(value);
4112          }
4113          return this;
4114        }
4115
4116        /**
4117         * @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
4118         */
4119        public CanonicalType getOtherMapElement() { 
4120          if (this.otherMap == null)
4121            if (Configuration.errorOnAutoCreate())
4122              throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.otherMap");
4123            else if (Configuration.doAutoCreate())
4124              this.otherMap = new CanonicalType(); // bb
4125          return this.otherMap;
4126        }
4127
4128        public boolean hasOtherMapElement() { 
4129          return this.otherMap != null && !this.otherMap.isEmpty();
4130        }
4131
4132        public boolean hasOtherMap() { 
4133          return this.otherMap != null && !this.otherMap.isEmpty();
4134        }
4135
4136        /**
4137         * @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
4138         */
4139        public ConceptMapGroupUnmappedComponent setOtherMapElement(CanonicalType value) { 
4140          this.otherMap = value;
4141          return this;
4142        }
4143
4144        /**
4145         * @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.
4146         */
4147        public String getOtherMap() { 
4148          return this.otherMap == null ? null : this.otherMap.getValue();
4149        }
4150
4151        /**
4152         * @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.
4153         */
4154        public ConceptMapGroupUnmappedComponent setOtherMap(String value) { 
4155          if (Utilities.noString(value))
4156            this.otherMap = null;
4157          else {
4158            if (this.otherMap == null)
4159              this.otherMap = new CanonicalType();
4160            this.otherMap.setValue(value);
4161          }
4162          return this;
4163        }
4164
4165        protected void listChildren(List<Property> children) {
4166          super.listChildren(children);
4167          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));
4168          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));
4169          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));
4170          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));
4171          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));
4172          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));
4173        }
4174
4175        @Override
4176        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
4177          switch (_hash) {
4178          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);
4179          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);
4180          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);
4181          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);
4182          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);
4183          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);
4184          default: return super.getNamedProperty(_hash, _name, _checkValid);
4185          }
4186
4187        }
4188
4189      @Override
4190      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
4191        switch (hash) {
4192        case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<ConceptMapGroupUnmappedMode>
4193        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
4194        case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType
4195        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
4196        case -261851592: /*relationship*/ return this.relationship == null ? new Base[0] : new Base[] {this.relationship}; // Enumeration<ConceptMapRelationship>
4197        case -1171155924: /*otherMap*/ return this.otherMap == null ? new Base[0] : new Base[] {this.otherMap}; // CanonicalType
4198        default: return super.getProperty(hash, name, checkValid);
4199        }
4200
4201      }
4202
4203      @Override
4204      public Base setProperty(int hash, String name, Base value) throws FHIRException {
4205        switch (hash) {
4206        case 3357091: // mode
4207          value = new ConceptMapGroupUnmappedModeEnumFactory().fromType(TypeConvertor.castToCode(value));
4208          this.mode = (Enumeration) value; // Enumeration<ConceptMapGroupUnmappedMode>
4209          return value;
4210        case 3059181: // code
4211          this.code = TypeConvertor.castToCode(value); // CodeType
4212          return value;
4213        case 1671764162: // display
4214          this.display = TypeConvertor.castToString(value); // StringType
4215          return value;
4216        case -1410174671: // valueSet
4217          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
4218          return value;
4219        case -261851592: // relationship
4220          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
4221          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
4222          return value;
4223        case -1171155924: // otherMap
4224          this.otherMap = TypeConvertor.castToCanonical(value); // CanonicalType
4225          return value;
4226        default: return super.setProperty(hash, name, value);
4227        }
4228
4229      }
4230
4231      @Override
4232      public Base setProperty(String name, Base value) throws FHIRException {
4233        if (name.equals("mode")) {
4234          value = new ConceptMapGroupUnmappedModeEnumFactory().fromType(TypeConvertor.castToCode(value));
4235          this.mode = (Enumeration) value; // Enumeration<ConceptMapGroupUnmappedMode>
4236        } else if (name.equals("code")) {
4237          this.code = TypeConvertor.castToCode(value); // CodeType
4238        } else if (name.equals("display")) {
4239          this.display = TypeConvertor.castToString(value); // StringType
4240        } else if (name.equals("valueSet")) {
4241          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
4242        } else if (name.equals("relationship")) {
4243          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
4244          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
4245        } else if (name.equals("otherMap")) {
4246          this.otherMap = TypeConvertor.castToCanonical(value); // CanonicalType
4247        } else
4248          return super.setProperty(name, value);
4249        return value;
4250      }
4251
4252  @Override
4253  public void removeChild(String name, Base value) throws FHIRException {
4254        if (name.equals("mode")) {
4255          value = new ConceptMapGroupUnmappedModeEnumFactory().fromType(TypeConvertor.castToCode(value));
4256          this.mode = (Enumeration) value; // Enumeration<ConceptMapGroupUnmappedMode>
4257        } else if (name.equals("code")) {
4258          this.code = null;
4259        } else if (name.equals("display")) {
4260          this.display = null;
4261        } else if (name.equals("valueSet")) {
4262          this.valueSet = null;
4263        } else if (name.equals("relationship")) {
4264          value = new ConceptMapRelationshipEnumFactory().fromType(TypeConvertor.castToCode(value));
4265          this.relationship = (Enumeration) value; // Enumeration<ConceptMapRelationship>
4266        } else if (name.equals("otherMap")) {
4267          this.otherMap = null;
4268        } else
4269          super.removeChild(name, value);
4270        
4271      }
4272
4273      @Override
4274      public Base makeProperty(int hash, String name) throws FHIRException {
4275        switch (hash) {
4276        case 3357091:  return getModeElement();
4277        case 3059181:  return getCodeElement();
4278        case 1671764162:  return getDisplayElement();
4279        case -1410174671:  return getValueSetElement();
4280        case -261851592:  return getRelationshipElement();
4281        case -1171155924:  return getOtherMapElement();
4282        default: return super.makeProperty(hash, name);
4283        }
4284
4285      }
4286
4287      @Override
4288      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
4289        switch (hash) {
4290        case 3357091: /*mode*/ return new String[] {"code"};
4291        case 3059181: /*code*/ return new String[] {"code"};
4292        case 1671764162: /*display*/ return new String[] {"string"};
4293        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
4294        case -261851592: /*relationship*/ return new String[] {"code"};
4295        case -1171155924: /*otherMap*/ return new String[] {"canonical"};
4296        default: return super.getTypesForProperty(hash, name);
4297        }
4298
4299      }
4300
4301      @Override
4302      public Base addChild(String name) throws FHIRException {
4303        if (name.equals("mode")) {
4304          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.mode");
4305        }
4306        else if (name.equals("code")) {
4307          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.code");
4308        }
4309        else if (name.equals("display")) {
4310          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.display");
4311        }
4312        else if (name.equals("valueSet")) {
4313          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.valueSet");
4314        }
4315        else if (name.equals("relationship")) {
4316          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.relationship");
4317        }
4318        else if (name.equals("otherMap")) {
4319          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.group.unmapped.otherMap");
4320        }
4321        else
4322          return super.addChild(name);
4323      }
4324
4325      public ConceptMapGroupUnmappedComponent copy() {
4326        ConceptMapGroupUnmappedComponent dst = new ConceptMapGroupUnmappedComponent();
4327        copyValues(dst);
4328        return dst;
4329      }
4330
4331      public void copyValues(ConceptMapGroupUnmappedComponent dst) {
4332        super.copyValues(dst);
4333        dst.mode = mode == null ? null : mode.copy();
4334        dst.code = code == null ? null : code.copy();
4335        dst.display = display == null ? null : display.copy();
4336        dst.valueSet = valueSet == null ? null : valueSet.copy();
4337        dst.relationship = relationship == null ? null : relationship.copy();
4338        dst.otherMap = otherMap == null ? null : otherMap.copy();
4339      }
4340
4341      @Override
4342      public boolean equalsDeep(Base other_) {
4343        if (!super.equalsDeep(other_))
4344          return false;
4345        if (!(other_ instanceof ConceptMapGroupUnmappedComponent))
4346          return false;
4347        ConceptMapGroupUnmappedComponent o = (ConceptMapGroupUnmappedComponent) other_;
4348        return compareDeep(mode, o.mode, true) && compareDeep(code, o.code, true) && compareDeep(display, o.display, true)
4349           && compareDeep(valueSet, o.valueSet, true) && compareDeep(relationship, o.relationship, true) && compareDeep(otherMap, o.otherMap, true)
4350          ;
4351      }
4352
4353      @Override
4354      public boolean equalsShallow(Base other_) {
4355        if (!super.equalsShallow(other_))
4356          return false;
4357        if (!(other_ instanceof ConceptMapGroupUnmappedComponent))
4358          return false;
4359        ConceptMapGroupUnmappedComponent o = (ConceptMapGroupUnmappedComponent) other_;
4360        return compareValues(mode, o.mode, true) && compareValues(code, o.code, true) && compareValues(display, o.display, true)
4361           && compareValues(valueSet, o.valueSet, true) && compareValues(relationship, o.relationship, true) && compareValues(otherMap, o.otherMap, true)
4362          ;
4363      }
4364
4365      public boolean isEmpty() {
4366        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(mode, code, display, valueSet
4367          , relationship, otherMap);
4368      }
4369
4370  public String fhirType() {
4371    return "ConceptMap.group.unmapped";
4372
4373  }
4374
4375  }
4376
4377    /**
4378     * 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.
4379     */
4380    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
4381    @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." )
4382    protected UriType url;
4383
4384    /**
4385     * 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.
4386     */
4387    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4388    @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." )
4389    protected List<Identifier> identifier;
4390
4391    /**
4392     * 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.
4393     */
4394    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
4395    @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." )
4396    protected StringType version;
4397
4398    /**
4399     * Indicates the mechanism used to compare versions to determine which ConceptMap is more current.
4400     */
4401    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
4402    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which ConceptMap is more current." )
4403    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
4404    protected DataType versionAlgorithm;
4405
4406    /**
4407     * 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.
4408     */
4409    @Child(name = "name", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
4410    @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." )
4411    protected StringType name;
4412
4413    /**
4414     * A short, descriptive, user-friendly title for the concept map.
4415     */
4416    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
4417    @Description(shortDefinition="Name for this concept map (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the concept map." )
4418    protected StringType title;
4419
4420    /**
4421     * The status of this concept map. Enables tracking the life-cycle of the content.
4422     */
4423    @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
4424    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this concept map. Enables tracking the life-cycle of the content." )
4425    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
4426    protected Enumeration<PublicationStatus> status;
4427
4428    /**
4429     * 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.
4430     */
4431    @Child(name = "experimental", type = {BooleanType.class}, order=7, min=0, max=1, modifier=false, summary=true)
4432    @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." )
4433    protected BooleanType experimental;
4434
4435    /**
4436     * 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.
4437     */
4438    @Child(name = "date", type = {DateTimeType.class}, order=8, min=0, max=1, modifier=false, summary=true)
4439    @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." )
4440    protected DateTimeType date;
4441
4442    /**
4443     * The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.
4444     */
4445    @Child(name = "publisher", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true)
4446    @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." )
4447    protected StringType publisher;
4448
4449    /**
4450     * Contact details to assist a user in finding and communicating with the publisher.
4451     */
4452    @Child(name = "contact", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4453    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
4454    protected List<ContactDetail> contact;
4455
4456    /**
4457     * A free text natural language description of the concept map from a consumer's perspective.
4458     */
4459    @Child(name = "description", type = {MarkdownType.class}, order=11, min=0, max=1, modifier=false, summary=false)
4460    @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." )
4461    protected MarkdownType description;
4462
4463    /**
4464     * 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.
4465     */
4466    @Child(name = "useContext", type = {UsageContext.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4467    @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." )
4468    protected List<UsageContext> useContext;
4469
4470    /**
4471     * A legal or geographic region in which the concept map is intended to be used.
4472     */
4473    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4474    @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." )
4475    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
4476    protected List<CodeableConcept> jurisdiction;
4477
4478    /**
4479     * Explanation of why this concept map is needed and why it has been designed as it has.
4480     */
4481    @Child(name = "purpose", type = {MarkdownType.class}, order=14, min=0, max=1, modifier=false, summary=false)
4482    @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." )
4483    protected MarkdownType purpose;
4484
4485    /**
4486     * 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.
4487     */
4488    @Child(name = "copyright", type = {MarkdownType.class}, order=15, min=0, max=1, modifier=false, summary=false)
4489    @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." )
4490    protected MarkdownType copyright;
4491
4492    /**
4493     * 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').
4494     */
4495    @Child(name = "copyrightLabel", type = {StringType.class}, order=16, min=0, max=1, modifier=false, summary=false)
4496    @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')." )
4497    protected StringType copyrightLabel;
4498
4499    /**
4500     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
4501     */
4502    @Child(name = "approvalDate", type = {DateType.class}, order=17, min=0, max=1, modifier=false, summary=false)
4503    @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." )
4504    protected DateType approvalDate;
4505
4506    /**
4507     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
4508     */
4509    @Child(name = "lastReviewDate", type = {DateType.class}, order=18, min=0, max=1, modifier=false, summary=false)
4510    @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." )
4511    protected DateType lastReviewDate;
4512
4513    /**
4514     * The period during which the ConceptMap content was or is planned to be in active use.
4515     */
4516    @Child(name = "effectivePeriod", type = {Period.class}, order=19, min=0, max=1, modifier=false, summary=true)
4517    @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." )
4518    protected Period effectivePeriod;
4519
4520    /**
4521     * 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.
4522     */
4523    @Child(name = "topic", type = {CodeableConcept.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4524    @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." )
4525    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic")
4526    protected List<CodeableConcept> topic;
4527
4528    /**
4529     * An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.
4530     */
4531    @Child(name = "author", type = {ContactDetail.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4532    @Description(shortDefinition="Who authored the ConceptMap", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the ConceptMap." )
4533    protected List<ContactDetail> author;
4534
4535    /**
4536     * An individual or organization primarily responsible for internal coherence of the ConceptMap.
4537     */
4538    @Child(name = "editor", type = {ContactDetail.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4539    @Description(shortDefinition="Who edited the ConceptMap", formalDefinition="An individual or organization primarily responsible for internal coherence of the ConceptMap." )
4540    protected List<ContactDetail> editor;
4541
4542    /**
4543     * An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.
4544     */
4545    @Child(name = "reviewer", type = {ContactDetail.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4546    @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." )
4547    protected List<ContactDetail> reviewer;
4548
4549    /**
4550     * An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.
4551     */
4552    @Child(name = "endorser", type = {ContactDetail.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4553    @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." )
4554    protected List<ContactDetail> endorser;
4555
4556    /**
4557     * Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.
4558     */
4559    @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4560    @Description(shortDefinition="Additional documentation, citations, etc", formalDefinition="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts." )
4561    protected List<RelatedArtifact> relatedArtifact;
4562
4563    /**
4564     * A property defines a slot through which additional information can be provided about a map from source -> target.
4565     */
4566    @Child(name = "property", type = {}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4567    @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." )
4568    protected List<PropertyComponent> property;
4569
4570    /**
4571     * 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).
4572     */
4573    @Child(name = "additionalAttribute", type = {}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4574    @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)." )
4575    protected List<AdditionalAttributeComponent> additionalAttribute;
4576
4577    /**
4578     * 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.
4579     */
4580    @Child(name = "sourceScope", type = {UriType.class, CanonicalType.class}, order=28, min=0, max=1, modifier=false, summary=true)
4581    @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." )
4582    protected DataType sourceScope;
4583
4584    /**
4585     * 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.
4586     */
4587    @Child(name = "targetScope", type = {UriType.class, CanonicalType.class}, order=29, min=0, max=1, modifier=false, summary=true)
4588    @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." )
4589    protected DataType targetScope;
4590
4591    /**
4592     * A group of mappings that all have the same source and target system.
4593     */
4594    @Child(name = "group", type = {}, order=30, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
4595    @Description(shortDefinition="Same source and target systems", formalDefinition="A group of mappings that all have the same source and target system." )
4596    protected List<ConceptMapGroupComponent> group;
4597
4598    private static final long serialVersionUID = 1990005194L;
4599
4600  /**
4601   * Constructor
4602   */
4603    public ConceptMap() {
4604      super();
4605    }
4606
4607  /**
4608   * Constructor
4609   */
4610    public ConceptMap(PublicationStatus status) {
4611      super();
4612      this.setStatus(status);
4613    }
4614
4615    /**
4616     * @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
4617     */
4618    public UriType getUrlElement() { 
4619      if (this.url == null)
4620        if (Configuration.errorOnAutoCreate())
4621          throw new Error("Attempt to auto-create ConceptMap.url");
4622        else if (Configuration.doAutoCreate())
4623          this.url = new UriType(); // bb
4624      return this.url;
4625    }
4626
4627    public boolean hasUrlElement() { 
4628      return this.url != null && !this.url.isEmpty();
4629    }
4630
4631    public boolean hasUrl() { 
4632      return this.url != null && !this.url.isEmpty();
4633    }
4634
4635    /**
4636     * @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
4637     */
4638    public ConceptMap setUrlElement(UriType value) { 
4639      this.url = value;
4640      return this;
4641    }
4642
4643    /**
4644     * @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.
4645     */
4646    public String getUrl() { 
4647      return this.url == null ? null : this.url.getValue();
4648    }
4649
4650    /**
4651     * @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.
4652     */
4653    public ConceptMap setUrl(String value) { 
4654      if (Utilities.noString(value))
4655        this.url = null;
4656      else {
4657        if (this.url == null)
4658          this.url = new UriType();
4659        this.url.setValue(value);
4660      }
4661      return this;
4662    }
4663
4664    /**
4665     * @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.)
4666     */
4667    public List<Identifier> getIdentifier() { 
4668      if (this.identifier == null)
4669        this.identifier = new ArrayList<Identifier>();
4670      return this.identifier;
4671    }
4672
4673    /**
4674     * @return Returns a reference to <code>this</code> for easy method chaining
4675     */
4676    public ConceptMap setIdentifier(List<Identifier> theIdentifier) { 
4677      this.identifier = theIdentifier;
4678      return this;
4679    }
4680
4681    public boolean hasIdentifier() { 
4682      if (this.identifier == null)
4683        return false;
4684      for (Identifier item : this.identifier)
4685        if (!item.isEmpty())
4686          return true;
4687      return false;
4688    }
4689
4690    public Identifier addIdentifier() { //3
4691      Identifier t = new Identifier();
4692      if (this.identifier == null)
4693        this.identifier = new ArrayList<Identifier>();
4694      this.identifier.add(t);
4695      return t;
4696    }
4697
4698    public ConceptMap addIdentifier(Identifier t) { //3
4699      if (t == null)
4700        return this;
4701      if (this.identifier == null)
4702        this.identifier = new ArrayList<Identifier>();
4703      this.identifier.add(t);
4704      return this;
4705    }
4706
4707    /**
4708     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
4709     */
4710    public Identifier getIdentifierFirstRep() { 
4711      if (getIdentifier().isEmpty()) {
4712        addIdentifier();
4713      }
4714      return getIdentifier().get(0);
4715    }
4716
4717    /**
4718     * @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
4719     */
4720    public StringType getVersionElement() { 
4721      if (this.version == null)
4722        if (Configuration.errorOnAutoCreate())
4723          throw new Error("Attempt to auto-create ConceptMap.version");
4724        else if (Configuration.doAutoCreate())
4725          this.version = new StringType(); // bb
4726      return this.version;
4727    }
4728
4729    public boolean hasVersionElement() { 
4730      return this.version != null && !this.version.isEmpty();
4731    }
4732
4733    public boolean hasVersion() { 
4734      return this.version != null && !this.version.isEmpty();
4735    }
4736
4737    /**
4738     * @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
4739     */
4740    public ConceptMap setVersionElement(StringType value) { 
4741      this.version = value;
4742      return this;
4743    }
4744
4745    /**
4746     * @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.
4747     */
4748    public String getVersion() { 
4749      return this.version == null ? null : this.version.getValue();
4750    }
4751
4752    /**
4753     * @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.
4754     */
4755    public ConceptMap setVersion(String value) { 
4756      if (Utilities.noString(value))
4757        this.version = null;
4758      else {
4759        if (this.version == null)
4760          this.version = new StringType();
4761        this.version.setValue(value);
4762      }
4763      return this;
4764    }
4765
4766    /**
4767     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4768     */
4769    public DataType getVersionAlgorithm() { 
4770      return this.versionAlgorithm;
4771    }
4772
4773    /**
4774     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4775     */
4776    public StringType getVersionAlgorithmStringType() throws FHIRException { 
4777      if (this.versionAlgorithm == null)
4778        this.versionAlgorithm = new StringType();
4779      if (!(this.versionAlgorithm instanceof StringType))
4780        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
4781      return (StringType) this.versionAlgorithm;
4782    }
4783
4784    public boolean hasVersionAlgorithmStringType() { 
4785      return this != null && this.versionAlgorithm instanceof StringType;
4786    }
4787
4788    /**
4789     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4790     */
4791    public Coding getVersionAlgorithmCoding() throws FHIRException { 
4792      if (this.versionAlgorithm == null)
4793        this.versionAlgorithm = new Coding();
4794      if (!(this.versionAlgorithm instanceof Coding))
4795        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
4796      return (Coding) this.versionAlgorithm;
4797    }
4798
4799    public boolean hasVersionAlgorithmCoding() { 
4800      return this != null && this.versionAlgorithm instanceof Coding;
4801    }
4802
4803    public boolean hasVersionAlgorithm() { 
4804      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
4805    }
4806
4807    /**
4808     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which ConceptMap is more current.)
4809     */
4810    public ConceptMap setVersionAlgorithm(DataType value) { 
4811      if (value != null && !(value instanceof StringType || value instanceof Coding))
4812        throw new FHIRException("Not the right type for ConceptMap.versionAlgorithm[x]: "+value.fhirType());
4813      this.versionAlgorithm = value;
4814      return this;
4815    }
4816
4817    /**
4818     * @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
4819     */
4820    public StringType getNameElement() { 
4821      if (this.name == null)
4822        if (Configuration.errorOnAutoCreate())
4823          throw new Error("Attempt to auto-create ConceptMap.name");
4824        else if (Configuration.doAutoCreate())
4825          this.name = new StringType(); // bb
4826      return this.name;
4827    }
4828
4829    public boolean hasNameElement() { 
4830      return this.name != null && !this.name.isEmpty();
4831    }
4832
4833    public boolean hasName() { 
4834      return this.name != null && !this.name.isEmpty();
4835    }
4836
4837    /**
4838     * @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
4839     */
4840    public ConceptMap setNameElement(StringType value) { 
4841      this.name = value;
4842      return this;
4843    }
4844
4845    /**
4846     * @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.
4847     */
4848    public String getName() { 
4849      return this.name == null ? null : this.name.getValue();
4850    }
4851
4852    /**
4853     * @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.
4854     */
4855    public ConceptMap setName(String value) { 
4856      if (Utilities.noString(value))
4857        this.name = null;
4858      else {
4859        if (this.name == null)
4860          this.name = new StringType();
4861        this.name.setValue(value);
4862      }
4863      return this;
4864    }
4865
4866    /**
4867     * @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
4868     */
4869    public StringType getTitleElement() { 
4870      if (this.title == null)
4871        if (Configuration.errorOnAutoCreate())
4872          throw new Error("Attempt to auto-create ConceptMap.title");
4873        else if (Configuration.doAutoCreate())
4874          this.title = new StringType(); // bb
4875      return this.title;
4876    }
4877
4878    public boolean hasTitleElement() { 
4879      return this.title != null && !this.title.isEmpty();
4880    }
4881
4882    public boolean hasTitle() { 
4883      return this.title != null && !this.title.isEmpty();
4884    }
4885
4886    /**
4887     * @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
4888     */
4889    public ConceptMap setTitleElement(StringType value) { 
4890      this.title = value;
4891      return this;
4892    }
4893
4894    /**
4895     * @return A short, descriptive, user-friendly title for the concept map.
4896     */
4897    public String getTitle() { 
4898      return this.title == null ? null : this.title.getValue();
4899    }
4900
4901    /**
4902     * @param value A short, descriptive, user-friendly title for the concept map.
4903     */
4904    public ConceptMap setTitle(String value) { 
4905      if (Utilities.noString(value))
4906        this.title = null;
4907      else {
4908        if (this.title == null)
4909          this.title = new StringType();
4910        this.title.setValue(value);
4911      }
4912      return this;
4913    }
4914
4915    /**
4916     * @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
4917     */
4918    public Enumeration<PublicationStatus> getStatusElement() { 
4919      if (this.status == null)
4920        if (Configuration.errorOnAutoCreate())
4921          throw new Error("Attempt to auto-create ConceptMap.status");
4922        else if (Configuration.doAutoCreate())
4923          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
4924      return this.status;
4925    }
4926
4927    public boolean hasStatusElement() { 
4928      return this.status != null && !this.status.isEmpty();
4929    }
4930
4931    public boolean hasStatus() { 
4932      return this.status != null && !this.status.isEmpty();
4933    }
4934
4935    /**
4936     * @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
4937     */
4938    public ConceptMap setStatusElement(Enumeration<PublicationStatus> value) { 
4939      this.status = value;
4940      return this;
4941    }
4942
4943    /**
4944     * @return The status of this concept map. Enables tracking the life-cycle of the content.
4945     */
4946    public PublicationStatus getStatus() { 
4947      return this.status == null ? null : this.status.getValue();
4948    }
4949
4950    /**
4951     * @param value The status of this concept map. Enables tracking the life-cycle of the content.
4952     */
4953    public ConceptMap setStatus(PublicationStatus value) { 
4954        if (this.status == null)
4955          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
4956        this.status.setValue(value);
4957      return this;
4958    }
4959
4960    /**
4961     * @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
4962     */
4963    public BooleanType getExperimentalElement() { 
4964      if (this.experimental == null)
4965        if (Configuration.errorOnAutoCreate())
4966          throw new Error("Attempt to auto-create ConceptMap.experimental");
4967        else if (Configuration.doAutoCreate())
4968          this.experimental = new BooleanType(); // bb
4969      return this.experimental;
4970    }
4971
4972    public boolean hasExperimentalElement() { 
4973      return this.experimental != null && !this.experimental.isEmpty();
4974    }
4975
4976    public boolean hasExperimental() { 
4977      return this.experimental != null && !this.experimental.isEmpty();
4978    }
4979
4980    /**
4981     * @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
4982     */
4983    public ConceptMap setExperimentalElement(BooleanType value) { 
4984      this.experimental = value;
4985      return this;
4986    }
4987
4988    /**
4989     * @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.
4990     */
4991    public boolean getExperimental() { 
4992      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
4993    }
4994
4995    /**
4996     * @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.
4997     */
4998    public ConceptMap setExperimental(boolean value) { 
4999        if (this.experimental == null)
5000          this.experimental = new BooleanType();
5001        this.experimental.setValue(value);
5002      return this;
5003    }
5004
5005    /**
5006     * @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
5007     */
5008    public DateTimeType getDateElement() { 
5009      if (this.date == null)
5010        if (Configuration.errorOnAutoCreate())
5011          throw new Error("Attempt to auto-create ConceptMap.date");
5012        else if (Configuration.doAutoCreate())
5013          this.date = new DateTimeType(); // bb
5014      return this.date;
5015    }
5016
5017    public boolean hasDateElement() { 
5018      return this.date != null && !this.date.isEmpty();
5019    }
5020
5021    public boolean hasDate() { 
5022      return this.date != null && !this.date.isEmpty();
5023    }
5024
5025    /**
5026     * @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
5027     */
5028    public ConceptMap setDateElement(DateTimeType value) { 
5029      this.date = value;
5030      return this;
5031    }
5032
5033    /**
5034     * @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.
5035     */
5036    public Date getDate() { 
5037      return this.date == null ? null : this.date.getValue();
5038    }
5039
5040    /**
5041     * @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.
5042     */
5043    public ConceptMap setDate(Date value) { 
5044      if (value == null)
5045        this.date = null;
5046      else {
5047        if (this.date == null)
5048          this.date = new DateTimeType();
5049        this.date.setValue(value);
5050      }
5051      return this;
5052    }
5053
5054    /**
5055     * @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
5056     */
5057    public StringType getPublisherElement() { 
5058      if (this.publisher == null)
5059        if (Configuration.errorOnAutoCreate())
5060          throw new Error("Attempt to auto-create ConceptMap.publisher");
5061        else if (Configuration.doAutoCreate())
5062          this.publisher = new StringType(); // bb
5063      return this.publisher;
5064    }
5065
5066    public boolean hasPublisherElement() { 
5067      return this.publisher != null && !this.publisher.isEmpty();
5068    }
5069
5070    public boolean hasPublisher() { 
5071      return this.publisher != null && !this.publisher.isEmpty();
5072    }
5073
5074    /**
5075     * @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
5076     */
5077    public ConceptMap setPublisherElement(StringType value) { 
5078      this.publisher = value;
5079      return this;
5080    }
5081
5082    /**
5083     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.
5084     */
5085    public String getPublisher() { 
5086      return this.publisher == null ? null : this.publisher.getValue();
5087    }
5088
5089    /**
5090     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.
5091     */
5092    public ConceptMap setPublisher(String value) { 
5093      if (Utilities.noString(value))
5094        this.publisher = null;
5095      else {
5096        if (this.publisher == null)
5097          this.publisher = new StringType();
5098        this.publisher.setValue(value);
5099      }
5100      return this;
5101    }
5102
5103    /**
5104     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
5105     */
5106    public List<ContactDetail> getContact() { 
5107      if (this.contact == null)
5108        this.contact = new ArrayList<ContactDetail>();
5109      return this.contact;
5110    }
5111
5112    /**
5113     * @return Returns a reference to <code>this</code> for easy method chaining
5114     */
5115    public ConceptMap setContact(List<ContactDetail> theContact) { 
5116      this.contact = theContact;
5117      return this;
5118    }
5119
5120    public boolean hasContact() { 
5121      if (this.contact == null)
5122        return false;
5123      for (ContactDetail item : this.contact)
5124        if (!item.isEmpty())
5125          return true;
5126      return false;
5127    }
5128
5129    public ContactDetail addContact() { //3
5130      ContactDetail t = new ContactDetail();
5131      if (this.contact == null)
5132        this.contact = new ArrayList<ContactDetail>();
5133      this.contact.add(t);
5134      return t;
5135    }
5136
5137    public ConceptMap addContact(ContactDetail t) { //3
5138      if (t == null)
5139        return this;
5140      if (this.contact == null)
5141        this.contact = new ArrayList<ContactDetail>();
5142      this.contact.add(t);
5143      return this;
5144    }
5145
5146    /**
5147     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
5148     */
5149    public ContactDetail getContactFirstRep() { 
5150      if (getContact().isEmpty()) {
5151        addContact();
5152      }
5153      return getContact().get(0);
5154    }
5155
5156    /**
5157     * @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
5158     */
5159    public MarkdownType getDescriptionElement() { 
5160      if (this.description == null)
5161        if (Configuration.errorOnAutoCreate())
5162          throw new Error("Attempt to auto-create ConceptMap.description");
5163        else if (Configuration.doAutoCreate())
5164          this.description = new MarkdownType(); // bb
5165      return this.description;
5166    }
5167
5168    public boolean hasDescriptionElement() { 
5169      return this.description != null && !this.description.isEmpty();
5170    }
5171
5172    public boolean hasDescription() { 
5173      return this.description != null && !this.description.isEmpty();
5174    }
5175
5176    /**
5177     * @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
5178     */
5179    public ConceptMap setDescriptionElement(MarkdownType value) { 
5180      this.description = value;
5181      return this;
5182    }
5183
5184    /**
5185     * @return A free text natural language description of the concept map from a consumer's perspective.
5186     */
5187    public String getDescription() { 
5188      return this.description == null ? null : this.description.getValue();
5189    }
5190
5191    /**
5192     * @param value A free text natural language description of the concept map from a consumer's perspective.
5193     */
5194    public ConceptMap setDescription(String value) { 
5195      if (Utilities.noString(value))
5196        this.description = null;
5197      else {
5198        if (this.description == null)
5199          this.description = new MarkdownType();
5200        this.description.setValue(value);
5201      }
5202      return this;
5203    }
5204
5205    /**
5206     * @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.)
5207     */
5208    public List<UsageContext> getUseContext() { 
5209      if (this.useContext == null)
5210        this.useContext = new ArrayList<UsageContext>();
5211      return this.useContext;
5212    }
5213
5214    /**
5215     * @return Returns a reference to <code>this</code> for easy method chaining
5216     */
5217    public ConceptMap setUseContext(List<UsageContext> theUseContext) { 
5218      this.useContext = theUseContext;
5219      return this;
5220    }
5221
5222    public boolean hasUseContext() { 
5223      if (this.useContext == null)
5224        return false;
5225      for (UsageContext item : this.useContext)
5226        if (!item.isEmpty())
5227          return true;
5228      return false;
5229    }
5230
5231    public UsageContext addUseContext() { //3
5232      UsageContext t = new UsageContext();
5233      if (this.useContext == null)
5234        this.useContext = new ArrayList<UsageContext>();
5235      this.useContext.add(t);
5236      return t;
5237    }
5238
5239    public ConceptMap addUseContext(UsageContext t) { //3
5240      if (t == null)
5241        return this;
5242      if (this.useContext == null)
5243        this.useContext = new ArrayList<UsageContext>();
5244      this.useContext.add(t);
5245      return this;
5246    }
5247
5248    /**
5249     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
5250     */
5251    public UsageContext getUseContextFirstRep() { 
5252      if (getUseContext().isEmpty()) {
5253        addUseContext();
5254      }
5255      return getUseContext().get(0);
5256    }
5257
5258    /**
5259     * @return {@link #jurisdiction} (A legal or geographic region in which the concept map is intended to be used.)
5260     */
5261    public List<CodeableConcept> getJurisdiction() { 
5262      if (this.jurisdiction == null)
5263        this.jurisdiction = new ArrayList<CodeableConcept>();
5264      return this.jurisdiction;
5265    }
5266
5267    /**
5268     * @return Returns a reference to <code>this</code> for easy method chaining
5269     */
5270    public ConceptMap setJurisdiction(List<CodeableConcept> theJurisdiction) { 
5271      this.jurisdiction = theJurisdiction;
5272      return this;
5273    }
5274
5275    public boolean hasJurisdiction() { 
5276      if (this.jurisdiction == null)
5277        return false;
5278      for (CodeableConcept item : this.jurisdiction)
5279        if (!item.isEmpty())
5280          return true;
5281      return false;
5282    }
5283
5284    public CodeableConcept addJurisdiction() { //3
5285      CodeableConcept t = new CodeableConcept();
5286      if (this.jurisdiction == null)
5287        this.jurisdiction = new ArrayList<CodeableConcept>();
5288      this.jurisdiction.add(t);
5289      return t;
5290    }
5291
5292    public ConceptMap addJurisdiction(CodeableConcept t) { //3
5293      if (t == null)
5294        return this;
5295      if (this.jurisdiction == null)
5296        this.jurisdiction = new ArrayList<CodeableConcept>();
5297      this.jurisdiction.add(t);
5298      return this;
5299    }
5300
5301    /**
5302     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
5303     */
5304    public CodeableConcept getJurisdictionFirstRep() { 
5305      if (getJurisdiction().isEmpty()) {
5306        addJurisdiction();
5307      }
5308      return getJurisdiction().get(0);
5309    }
5310
5311    /**
5312     * @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
5313     */
5314    public MarkdownType getPurposeElement() { 
5315      if (this.purpose == null)
5316        if (Configuration.errorOnAutoCreate())
5317          throw new Error("Attempt to auto-create ConceptMap.purpose");
5318        else if (Configuration.doAutoCreate())
5319          this.purpose = new MarkdownType(); // bb
5320      return this.purpose;
5321    }
5322
5323    public boolean hasPurposeElement() { 
5324      return this.purpose != null && !this.purpose.isEmpty();
5325    }
5326
5327    public boolean hasPurpose() { 
5328      return this.purpose != null && !this.purpose.isEmpty();
5329    }
5330
5331    /**
5332     * @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
5333     */
5334    public ConceptMap setPurposeElement(MarkdownType value) { 
5335      this.purpose = value;
5336      return this;
5337    }
5338
5339    /**
5340     * @return Explanation of why this concept map is needed and why it has been designed as it has.
5341     */
5342    public String getPurpose() { 
5343      return this.purpose == null ? null : this.purpose.getValue();
5344    }
5345
5346    /**
5347     * @param value Explanation of why this concept map is needed and why it has been designed as it has.
5348     */
5349    public ConceptMap setPurpose(String value) { 
5350      if (Utilities.noString(value))
5351        this.purpose = null;
5352      else {
5353        if (this.purpose == null)
5354          this.purpose = new MarkdownType();
5355        this.purpose.setValue(value);
5356      }
5357      return this;
5358    }
5359
5360    /**
5361     * @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
5362     */
5363    public MarkdownType getCopyrightElement() { 
5364      if (this.copyright == null)
5365        if (Configuration.errorOnAutoCreate())
5366          throw new Error("Attempt to auto-create ConceptMap.copyright");
5367        else if (Configuration.doAutoCreate())
5368          this.copyright = new MarkdownType(); // bb
5369      return this.copyright;
5370    }
5371
5372    public boolean hasCopyrightElement() { 
5373      return this.copyright != null && !this.copyright.isEmpty();
5374    }
5375
5376    public boolean hasCopyright() { 
5377      return this.copyright != null && !this.copyright.isEmpty();
5378    }
5379
5380    /**
5381     * @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
5382     */
5383    public ConceptMap setCopyrightElement(MarkdownType value) { 
5384      this.copyright = value;
5385      return this;
5386    }
5387
5388    /**
5389     * @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.
5390     */
5391    public String getCopyright() { 
5392      return this.copyright == null ? null : this.copyright.getValue();
5393    }
5394
5395    /**
5396     * @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.
5397     */
5398    public ConceptMap setCopyright(String value) { 
5399      if (Utilities.noString(value))
5400        this.copyright = null;
5401      else {
5402        if (this.copyright == null)
5403          this.copyright = new MarkdownType();
5404        this.copyright.setValue(value);
5405      }
5406      return this;
5407    }
5408
5409    /**
5410     * @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
5411     */
5412    public StringType getCopyrightLabelElement() { 
5413      if (this.copyrightLabel == null)
5414        if (Configuration.errorOnAutoCreate())
5415          throw new Error("Attempt to auto-create ConceptMap.copyrightLabel");
5416        else if (Configuration.doAutoCreate())
5417          this.copyrightLabel = new StringType(); // bb
5418      return this.copyrightLabel;
5419    }
5420
5421    public boolean hasCopyrightLabelElement() { 
5422      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
5423    }
5424
5425    public boolean hasCopyrightLabel() { 
5426      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
5427    }
5428
5429    /**
5430     * @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
5431     */
5432    public ConceptMap setCopyrightLabelElement(StringType value) { 
5433      this.copyrightLabel = value;
5434      return this;
5435    }
5436
5437    /**
5438     * @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').
5439     */
5440    public String getCopyrightLabel() { 
5441      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
5442    }
5443
5444    /**
5445     * @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').
5446     */
5447    public ConceptMap setCopyrightLabel(String value) { 
5448      if (Utilities.noString(value))
5449        this.copyrightLabel = null;
5450      else {
5451        if (this.copyrightLabel == null)
5452          this.copyrightLabel = new StringType();
5453        this.copyrightLabel.setValue(value);
5454      }
5455      return this;
5456    }
5457
5458    /**
5459     * @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
5460     */
5461    public DateType getApprovalDateElement() { 
5462      if (this.approvalDate == null)
5463        if (Configuration.errorOnAutoCreate())
5464          throw new Error("Attempt to auto-create ConceptMap.approvalDate");
5465        else if (Configuration.doAutoCreate())
5466          this.approvalDate = new DateType(); // bb
5467      return this.approvalDate;
5468    }
5469
5470    public boolean hasApprovalDateElement() { 
5471      return this.approvalDate != null && !this.approvalDate.isEmpty();
5472    }
5473
5474    public boolean hasApprovalDate() { 
5475      return this.approvalDate != null && !this.approvalDate.isEmpty();
5476    }
5477
5478    /**
5479     * @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
5480     */
5481    public ConceptMap setApprovalDateElement(DateType value) { 
5482      this.approvalDate = value;
5483      return this;
5484    }
5485
5486    /**
5487     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
5488     */
5489    public Date getApprovalDate() { 
5490      return this.approvalDate == null ? null : this.approvalDate.getValue();
5491    }
5492
5493    /**
5494     * @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.
5495     */
5496    public ConceptMap setApprovalDate(Date value) { 
5497      if (value == null)
5498        this.approvalDate = null;
5499      else {
5500        if (this.approvalDate == null)
5501          this.approvalDate = new DateType();
5502        this.approvalDate.setValue(value);
5503      }
5504      return this;
5505    }
5506
5507    /**
5508     * @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
5509     */
5510    public DateType getLastReviewDateElement() { 
5511      if (this.lastReviewDate == null)
5512        if (Configuration.errorOnAutoCreate())
5513          throw new Error("Attempt to auto-create ConceptMap.lastReviewDate");
5514        else if (Configuration.doAutoCreate())
5515          this.lastReviewDate = new DateType(); // bb
5516      return this.lastReviewDate;
5517    }
5518
5519    public boolean hasLastReviewDateElement() { 
5520      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
5521    }
5522
5523    public boolean hasLastReviewDate() { 
5524      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
5525    }
5526
5527    /**
5528     * @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
5529     */
5530    public ConceptMap setLastReviewDateElement(DateType value) { 
5531      this.lastReviewDate = value;
5532      return this;
5533    }
5534
5535    /**
5536     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
5537     */
5538    public Date getLastReviewDate() { 
5539      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
5540    }
5541
5542    /**
5543     * @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.
5544     */
5545    public ConceptMap setLastReviewDate(Date value) { 
5546      if (value == null)
5547        this.lastReviewDate = null;
5548      else {
5549        if (this.lastReviewDate == null)
5550          this.lastReviewDate = new DateType();
5551        this.lastReviewDate.setValue(value);
5552      }
5553      return this;
5554    }
5555
5556    /**
5557     * @return {@link #effectivePeriod} (The period during which the ConceptMap content was or is planned to be in active use.)
5558     */
5559    public Period getEffectivePeriod() { 
5560      if (this.effectivePeriod == null)
5561        if (Configuration.errorOnAutoCreate())
5562          throw new Error("Attempt to auto-create ConceptMap.effectivePeriod");
5563        else if (Configuration.doAutoCreate())
5564          this.effectivePeriod = new Period(); // cc
5565      return this.effectivePeriod;
5566    }
5567
5568    public boolean hasEffectivePeriod() { 
5569      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
5570    }
5571
5572    /**
5573     * @param value {@link #effectivePeriod} (The period during which the ConceptMap content was or is planned to be in active use.)
5574     */
5575    public ConceptMap setEffectivePeriod(Period value) { 
5576      this.effectivePeriod = value;
5577      return this;
5578    }
5579
5580    /**
5581     * @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.)
5582     */
5583    public List<CodeableConcept> getTopic() { 
5584      if (this.topic == null)
5585        this.topic = new ArrayList<CodeableConcept>();
5586      return this.topic;
5587    }
5588
5589    /**
5590     * @return Returns a reference to <code>this</code> for easy method chaining
5591     */
5592    public ConceptMap setTopic(List<CodeableConcept> theTopic) { 
5593      this.topic = theTopic;
5594      return this;
5595    }
5596
5597    public boolean hasTopic() { 
5598      if (this.topic == null)
5599        return false;
5600      for (CodeableConcept item : this.topic)
5601        if (!item.isEmpty())
5602          return true;
5603      return false;
5604    }
5605
5606    public CodeableConcept addTopic() { //3
5607      CodeableConcept t = new CodeableConcept();
5608      if (this.topic == null)
5609        this.topic = new ArrayList<CodeableConcept>();
5610      this.topic.add(t);
5611      return t;
5612    }
5613
5614    public ConceptMap addTopic(CodeableConcept t) { //3
5615      if (t == null)
5616        return this;
5617      if (this.topic == null)
5618        this.topic = new ArrayList<CodeableConcept>();
5619      this.topic.add(t);
5620      return this;
5621    }
5622
5623    /**
5624     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist {3}
5625     */
5626    public CodeableConcept getTopicFirstRep() { 
5627      if (getTopic().isEmpty()) {
5628        addTopic();
5629      }
5630      return getTopic().get(0);
5631    }
5632
5633    /**
5634     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.)
5635     */
5636    public List<ContactDetail> getAuthor() { 
5637      if (this.author == null)
5638        this.author = new ArrayList<ContactDetail>();
5639      return this.author;
5640    }
5641
5642    /**
5643     * @return Returns a reference to <code>this</code> for easy method chaining
5644     */
5645    public ConceptMap setAuthor(List<ContactDetail> theAuthor) { 
5646      this.author = theAuthor;
5647      return this;
5648    }
5649
5650    public boolean hasAuthor() { 
5651      if (this.author == null)
5652        return false;
5653      for (ContactDetail item : this.author)
5654        if (!item.isEmpty())
5655          return true;
5656      return false;
5657    }
5658
5659    public ContactDetail addAuthor() { //3
5660      ContactDetail t = new ContactDetail();
5661      if (this.author == null)
5662        this.author = new ArrayList<ContactDetail>();
5663      this.author.add(t);
5664      return t;
5665    }
5666
5667    public ConceptMap addAuthor(ContactDetail t) { //3
5668      if (t == null)
5669        return this;
5670      if (this.author == null)
5671        this.author = new ArrayList<ContactDetail>();
5672      this.author.add(t);
5673      return this;
5674    }
5675
5676    /**
5677     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3}
5678     */
5679    public ContactDetail getAuthorFirstRep() { 
5680      if (getAuthor().isEmpty()) {
5681        addAuthor();
5682      }
5683      return getAuthor().get(0);
5684    }
5685
5686    /**
5687     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the ConceptMap.)
5688     */
5689    public List<ContactDetail> getEditor() { 
5690      if (this.editor == null)
5691        this.editor = new ArrayList<ContactDetail>();
5692      return this.editor;
5693    }
5694
5695    /**
5696     * @return Returns a reference to <code>this</code> for easy method chaining
5697     */
5698    public ConceptMap setEditor(List<ContactDetail> theEditor) { 
5699      this.editor = theEditor;
5700      return this;
5701    }
5702
5703    public boolean hasEditor() { 
5704      if (this.editor == null)
5705        return false;
5706      for (ContactDetail item : this.editor)
5707        if (!item.isEmpty())
5708          return true;
5709      return false;
5710    }
5711
5712    public ContactDetail addEditor() { //3
5713      ContactDetail t = new ContactDetail();
5714      if (this.editor == null)
5715        this.editor = new ArrayList<ContactDetail>();
5716      this.editor.add(t);
5717      return t;
5718    }
5719
5720    public ConceptMap addEditor(ContactDetail t) { //3
5721      if (t == null)
5722        return this;
5723      if (this.editor == null)
5724        this.editor = new ArrayList<ContactDetail>();
5725      this.editor.add(t);
5726      return this;
5727    }
5728
5729    /**
5730     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {3}
5731     */
5732    public ContactDetail getEditorFirstRep() { 
5733      if (getEditor().isEmpty()) {
5734        addEditor();
5735      }
5736      return getEditor().get(0);
5737    }
5738
5739    /**
5740     * @return {@link #reviewer} (An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.)
5741     */
5742    public List<ContactDetail> getReviewer() { 
5743      if (this.reviewer == null)
5744        this.reviewer = new ArrayList<ContactDetail>();
5745      return this.reviewer;
5746    }
5747
5748    /**
5749     * @return Returns a reference to <code>this</code> for easy method chaining
5750     */
5751    public ConceptMap setReviewer(List<ContactDetail> theReviewer) { 
5752      this.reviewer = theReviewer;
5753      return this;
5754    }
5755
5756    public boolean hasReviewer() { 
5757      if (this.reviewer == null)
5758        return false;
5759      for (ContactDetail item : this.reviewer)
5760        if (!item.isEmpty())
5761          return true;
5762      return false;
5763    }
5764
5765    public ContactDetail addReviewer() { //3
5766      ContactDetail t = new ContactDetail();
5767      if (this.reviewer == null)
5768        this.reviewer = new ArrayList<ContactDetail>();
5769      this.reviewer.add(t);
5770      return t;
5771    }
5772
5773    public ConceptMap addReviewer(ContactDetail t) { //3
5774      if (t == null)
5775        return this;
5776      if (this.reviewer == null)
5777        this.reviewer = new ArrayList<ContactDetail>();
5778      this.reviewer.add(t);
5779      return this;
5780    }
5781
5782    /**
5783     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {3}
5784     */
5785    public ContactDetail getReviewerFirstRep() { 
5786      if (getReviewer().isEmpty()) {
5787        addReviewer();
5788      }
5789      return getReviewer().get(0);
5790    }
5791
5792    /**
5793     * @return {@link #endorser} (An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.)
5794     */
5795    public List<ContactDetail> getEndorser() { 
5796      if (this.endorser == null)
5797        this.endorser = new ArrayList<ContactDetail>();
5798      return this.endorser;
5799    }
5800
5801    /**
5802     * @return Returns a reference to <code>this</code> for easy method chaining
5803     */
5804    public ConceptMap setEndorser(List<ContactDetail> theEndorser) { 
5805      this.endorser = theEndorser;
5806      return this;
5807    }
5808
5809    public boolean hasEndorser() { 
5810      if (this.endorser == null)
5811        return false;
5812      for (ContactDetail item : this.endorser)
5813        if (!item.isEmpty())
5814          return true;
5815      return false;
5816    }
5817
5818    public ContactDetail addEndorser() { //3
5819      ContactDetail t = new ContactDetail();
5820      if (this.endorser == null)
5821        this.endorser = new ArrayList<ContactDetail>();
5822      this.endorser.add(t);
5823      return t;
5824    }
5825
5826    public ConceptMap addEndorser(ContactDetail t) { //3
5827      if (t == null)
5828        return this;
5829      if (this.endorser == null)
5830        this.endorser = new ArrayList<ContactDetail>();
5831      this.endorser.add(t);
5832      return this;
5833    }
5834
5835    /**
5836     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {3}
5837     */
5838    public ContactDetail getEndorserFirstRep() { 
5839      if (getEndorser().isEmpty()) {
5840        addEndorser();
5841      }
5842      return getEndorser().get(0);
5843    }
5844
5845    /**
5846     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.)
5847     */
5848    public List<RelatedArtifact> getRelatedArtifact() { 
5849      if (this.relatedArtifact == null)
5850        this.relatedArtifact = new ArrayList<RelatedArtifact>();
5851      return this.relatedArtifact;
5852    }
5853
5854    /**
5855     * @return Returns a reference to <code>this</code> for easy method chaining
5856     */
5857    public ConceptMap setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
5858      this.relatedArtifact = theRelatedArtifact;
5859      return this;
5860    }
5861
5862    public boolean hasRelatedArtifact() { 
5863      if (this.relatedArtifact == null)
5864        return false;
5865      for (RelatedArtifact item : this.relatedArtifact)
5866        if (!item.isEmpty())
5867          return true;
5868      return false;
5869    }
5870
5871    public RelatedArtifact addRelatedArtifact() { //3
5872      RelatedArtifact t = new RelatedArtifact();
5873      if (this.relatedArtifact == null)
5874        this.relatedArtifact = new ArrayList<RelatedArtifact>();
5875      this.relatedArtifact.add(t);
5876      return t;
5877    }
5878
5879    public ConceptMap addRelatedArtifact(RelatedArtifact t) { //3
5880      if (t == null)
5881        return this;
5882      if (this.relatedArtifact == null)
5883        this.relatedArtifact = new ArrayList<RelatedArtifact>();
5884      this.relatedArtifact.add(t);
5885      return this;
5886    }
5887
5888    /**
5889     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {3}
5890     */
5891    public RelatedArtifact getRelatedArtifactFirstRep() { 
5892      if (getRelatedArtifact().isEmpty()) {
5893        addRelatedArtifact();
5894      }
5895      return getRelatedArtifact().get(0);
5896    }
5897
5898    /**
5899     * @return {@link #property} (A property defines a slot through which additional information can be provided about a map from source -> target.)
5900     */
5901    public List<PropertyComponent> getProperty() { 
5902      if (this.property == null)
5903        this.property = new ArrayList<PropertyComponent>();
5904      return this.property;
5905    }
5906
5907    /**
5908     * @return Returns a reference to <code>this</code> for easy method chaining
5909     */
5910    public ConceptMap setProperty(List<PropertyComponent> theProperty) { 
5911      this.property = theProperty;
5912      return this;
5913    }
5914
5915    public boolean hasProperty() { 
5916      if (this.property == null)
5917        return false;
5918      for (PropertyComponent item : this.property)
5919        if (!item.isEmpty())
5920          return true;
5921      return false;
5922    }
5923
5924    public PropertyComponent addProperty() { //3
5925      PropertyComponent t = new PropertyComponent();
5926      if (this.property == null)
5927        this.property = new ArrayList<PropertyComponent>();
5928      this.property.add(t);
5929      return t;
5930    }
5931
5932    public ConceptMap addProperty(PropertyComponent t) { //3
5933      if (t == null)
5934        return this;
5935      if (this.property == null)
5936        this.property = new ArrayList<PropertyComponent>();
5937      this.property.add(t);
5938      return this;
5939    }
5940
5941    /**
5942     * @return The first repetition of repeating field {@link #property}, creating it if it does not already exist {3}
5943     */
5944    public PropertyComponent getPropertyFirstRep() { 
5945      if (getProperty().isEmpty()) {
5946        addProperty();
5947      }
5948      return getProperty().get(0);
5949    }
5950
5951    /**
5952     * @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).)
5953     */
5954    public List<AdditionalAttributeComponent> getAdditionalAttribute() { 
5955      if (this.additionalAttribute == null)
5956        this.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
5957      return this.additionalAttribute;
5958    }
5959
5960    /**
5961     * @return Returns a reference to <code>this</code> for easy method chaining
5962     */
5963    public ConceptMap setAdditionalAttribute(List<AdditionalAttributeComponent> theAdditionalAttribute) { 
5964      this.additionalAttribute = theAdditionalAttribute;
5965      return this;
5966    }
5967
5968    public boolean hasAdditionalAttribute() { 
5969      if (this.additionalAttribute == null)
5970        return false;
5971      for (AdditionalAttributeComponent item : this.additionalAttribute)
5972        if (!item.isEmpty())
5973          return true;
5974      return false;
5975    }
5976
5977    public AdditionalAttributeComponent addAdditionalAttribute() { //3
5978      AdditionalAttributeComponent t = new AdditionalAttributeComponent();
5979      if (this.additionalAttribute == null)
5980        this.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
5981      this.additionalAttribute.add(t);
5982      return t;
5983    }
5984
5985    public ConceptMap addAdditionalAttribute(AdditionalAttributeComponent t) { //3
5986      if (t == null)
5987        return this;
5988      if (this.additionalAttribute == null)
5989        this.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
5990      this.additionalAttribute.add(t);
5991      return this;
5992    }
5993
5994    /**
5995     * @return The first repetition of repeating field {@link #additionalAttribute}, creating it if it does not already exist {3}
5996     */
5997    public AdditionalAttributeComponent getAdditionalAttributeFirstRep() { 
5998      if (getAdditionalAttribute().isEmpty()) {
5999        addAdditionalAttribute();
6000      }
6001      return getAdditionalAttribute().get(0);
6002    }
6003
6004    /**
6005     * @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.)
6006     */
6007    public DataType getSourceScope() { 
6008      return this.sourceScope;
6009    }
6010
6011    /**
6012     * @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.)
6013     */
6014    public UriType getSourceScopeUriType() throws FHIRException { 
6015      if (this.sourceScope == null)
6016        this.sourceScope = new UriType();
6017      if (!(this.sourceScope instanceof UriType))
6018        throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.sourceScope.getClass().getName()+" was encountered");
6019      return (UriType) this.sourceScope;
6020    }
6021
6022    public boolean hasSourceScopeUriType() { 
6023      return this != null && this.sourceScope instanceof UriType;
6024    }
6025
6026    /**
6027     * @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.)
6028     */
6029    public CanonicalType getSourceScopeCanonicalType() throws FHIRException { 
6030      if (this.sourceScope == null)
6031        this.sourceScope = new CanonicalType();
6032      if (!(this.sourceScope instanceof CanonicalType))
6033        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.sourceScope.getClass().getName()+" was encountered");
6034      return (CanonicalType) this.sourceScope;
6035    }
6036
6037    public boolean hasSourceScopeCanonicalType() { 
6038      return this != null && this.sourceScope instanceof CanonicalType;
6039    }
6040
6041    public boolean hasSourceScope() { 
6042      return this.sourceScope != null && !this.sourceScope.isEmpty();
6043    }
6044
6045    /**
6046     * @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.)
6047     */
6048    public ConceptMap setSourceScope(DataType value) { 
6049      if (value != null && !(value instanceof UriType || value instanceof CanonicalType))
6050        throw new FHIRException("Not the right type for ConceptMap.sourceScope[x]: "+value.fhirType());
6051      this.sourceScope = value;
6052      return this;
6053    }
6054
6055    /**
6056     * @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.)
6057     */
6058    public DataType getTargetScope() { 
6059      return this.targetScope;
6060    }
6061
6062    /**
6063     * @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.)
6064     */
6065    public UriType getTargetScopeUriType() throws FHIRException { 
6066      if (this.targetScope == null)
6067        this.targetScope = new UriType();
6068      if (!(this.targetScope instanceof UriType))
6069        throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.targetScope.getClass().getName()+" was encountered");
6070      return (UriType) this.targetScope;
6071    }
6072
6073    public boolean hasTargetScopeUriType() { 
6074      return this != null && this.targetScope instanceof UriType;
6075    }
6076
6077    /**
6078     * @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.)
6079     */
6080    public CanonicalType getTargetScopeCanonicalType() throws FHIRException { 
6081      if (this.targetScope == null)
6082        this.targetScope = new CanonicalType();
6083      if (!(this.targetScope instanceof CanonicalType))
6084        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.targetScope.getClass().getName()+" was encountered");
6085      return (CanonicalType) this.targetScope;
6086    }
6087
6088    public boolean hasTargetScopeCanonicalType() { 
6089      return this != null && this.targetScope instanceof CanonicalType;
6090    }
6091
6092    public boolean hasTargetScope() { 
6093      return this.targetScope != null && !this.targetScope.isEmpty();
6094    }
6095
6096    /**
6097     * @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.)
6098     */
6099    public ConceptMap setTargetScope(DataType value) { 
6100      if (value != null && !(value instanceof UriType || value instanceof CanonicalType))
6101        throw new FHIRException("Not the right type for ConceptMap.targetScope[x]: "+value.fhirType());
6102      this.targetScope = value;
6103      return this;
6104    }
6105
6106    /**
6107     * @return {@link #group} (A group of mappings that all have the same source and target system.)
6108     */
6109    public List<ConceptMapGroupComponent> getGroup() { 
6110      if (this.group == null)
6111        this.group = new ArrayList<ConceptMapGroupComponent>();
6112      return this.group;
6113    }
6114
6115    /**
6116     * @return Returns a reference to <code>this</code> for easy method chaining
6117     */
6118    public ConceptMap setGroup(List<ConceptMapGroupComponent> theGroup) { 
6119      this.group = theGroup;
6120      return this;
6121    }
6122
6123    public boolean hasGroup() { 
6124      if (this.group == null)
6125        return false;
6126      for (ConceptMapGroupComponent item : this.group)
6127        if (!item.isEmpty())
6128          return true;
6129      return false;
6130    }
6131
6132    public ConceptMapGroupComponent addGroup() { //3
6133      ConceptMapGroupComponent t = new ConceptMapGroupComponent();
6134      if (this.group == null)
6135        this.group = new ArrayList<ConceptMapGroupComponent>();
6136      this.group.add(t);
6137      return t;
6138    }
6139
6140    public ConceptMap addGroup(ConceptMapGroupComponent t) { //3
6141      if (t == null)
6142        return this;
6143      if (this.group == null)
6144        this.group = new ArrayList<ConceptMapGroupComponent>();
6145      this.group.add(t);
6146      return this;
6147    }
6148
6149    /**
6150     * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist {3}
6151     */
6152    public ConceptMapGroupComponent getGroupFirstRep() { 
6153      if (getGroup().isEmpty()) {
6154        addGroup();
6155      }
6156      return getGroup().get(0);
6157    }
6158
6159      protected void listChildren(List<Property> children) {
6160        super.listChildren(children);
6161        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));
6162        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));
6163        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));
6164        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));
6165        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));
6166        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the concept map.", 0, 1, title));
6167        children.add(new Property("status", "code", "The status of this concept map. Enables tracking the life-cycle of the content.", 0, 1, status));
6168        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));
6169        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));
6170        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));
6171        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));
6172        children.add(new Property("description", "markdown", "A free text natural language description of the concept map from a consumer's perspective.", 0, 1, description));
6173        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));
6174        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));
6175        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));
6176        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));
6177        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));
6178        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));
6179        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));
6180        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));
6181        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));
6182        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));
6183        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));
6184        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));
6185        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));
6186        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));
6187        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));
6188        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));
6189        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));
6190        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));
6191        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));
6192      }
6193
6194      @Override
6195      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6196        switch (_hash) {
6197        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);
6198        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);
6199        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);
6200        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);
6201        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);
6202        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);
6203        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);
6204        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);
6205        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the concept map.", 0, 1, title);
6206        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);
6207        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);
6208        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);
6209        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);
6210        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);
6211        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);
6212        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);
6213        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);
6214        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);
6215        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);
6216        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);
6217        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);
6218        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);
6219        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);
6220        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);
6221        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);
6222        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);
6223        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);
6224        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);
6225        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);
6226        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);
6227        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);
6228        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);
6229        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);
6230        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);
6231        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);
6232        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);
6233        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);
6234        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);
6235        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);
6236        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);
6237        default: return super.getNamedProperty(_hash, _name, _checkValid);
6238        }
6239
6240      }
6241
6242      @Override
6243      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6244        switch (hash) {
6245        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
6246        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
6247        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
6248        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
6249        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
6250        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
6251        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
6252        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
6253        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
6254        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
6255        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
6256        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
6257        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
6258        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
6259        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
6260        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
6261        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
6262        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
6263        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
6264        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
6265        case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept
6266        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail
6267        case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail
6268        case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail
6269        case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail
6270        case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact
6271        case -993141291: /*property*/ return this.property == null ? new Base[0] : this.property.toArray(new Base[this.property.size()]); // PropertyComponent
6272        case -1004532171: /*additionalAttribute*/ return this.additionalAttribute == null ? new Base[0] : this.additionalAttribute.toArray(new Base[this.additionalAttribute.size()]); // AdditionalAttributeComponent
6273        case -96223495: /*sourceScope*/ return this.sourceScope == null ? new Base[0] : new Base[] {this.sourceScope}; // DataType
6274        case -2096156861: /*targetScope*/ return this.targetScope == null ? new Base[0] : new Base[] {this.targetScope}; // DataType
6275        case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // ConceptMapGroupComponent
6276        default: return super.getProperty(hash, name, checkValid);
6277        }
6278
6279      }
6280
6281      @Override
6282      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6283        switch (hash) {
6284        case 116079: // url
6285          this.url = TypeConvertor.castToUri(value); // UriType
6286          return value;
6287        case -1618432855: // identifier
6288          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
6289          return value;
6290        case 351608024: // version
6291          this.version = TypeConvertor.castToString(value); // StringType
6292          return value;
6293        case 1508158071: // versionAlgorithm
6294          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
6295          return value;
6296        case 3373707: // name
6297          this.name = TypeConvertor.castToString(value); // StringType
6298          return value;
6299        case 110371416: // title
6300          this.title = TypeConvertor.castToString(value); // StringType
6301          return value;
6302        case -892481550: // status
6303          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
6304          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
6305          return value;
6306        case -404562712: // experimental
6307          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
6308          return value;
6309        case 3076014: // date
6310          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
6311          return value;
6312        case 1447404028: // publisher
6313          this.publisher = TypeConvertor.castToString(value); // StringType
6314          return value;
6315        case 951526432: // contact
6316          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6317          return value;
6318        case -1724546052: // description
6319          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
6320          return value;
6321        case -669707736: // useContext
6322          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
6323          return value;
6324        case -507075711: // jurisdiction
6325          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
6326          return value;
6327        case -220463842: // purpose
6328          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
6329          return value;
6330        case 1522889671: // copyright
6331          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
6332          return value;
6333        case 765157229: // copyrightLabel
6334          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
6335          return value;
6336        case 223539345: // approvalDate
6337          this.approvalDate = TypeConvertor.castToDate(value); // DateType
6338          return value;
6339        case -1687512484: // lastReviewDate
6340          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
6341          return value;
6342        case -403934648: // effectivePeriod
6343          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
6344          return value;
6345        case 110546223: // topic
6346          this.getTopic().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
6347          return value;
6348        case -1406328437: // author
6349          this.getAuthor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6350          return value;
6351        case -1307827859: // editor
6352          this.getEditor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6353          return value;
6354        case -261190139: // reviewer
6355          this.getReviewer().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6356          return value;
6357        case 1740277666: // endorser
6358          this.getEndorser().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6359          return value;
6360        case 666807069: // relatedArtifact
6361          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact
6362          return value;
6363        case -993141291: // property
6364          this.getProperty().add((PropertyComponent) value); // PropertyComponent
6365          return value;
6366        case -1004532171: // additionalAttribute
6367          this.getAdditionalAttribute().add((AdditionalAttributeComponent) value); // AdditionalAttributeComponent
6368          return value;
6369        case -96223495: // sourceScope
6370          this.sourceScope = TypeConvertor.castToType(value); // DataType
6371          return value;
6372        case -2096156861: // targetScope
6373          this.targetScope = TypeConvertor.castToType(value); // DataType
6374          return value;
6375        case 98629247: // group
6376          this.getGroup().add((ConceptMapGroupComponent) value); // ConceptMapGroupComponent
6377          return value;
6378        default: return super.setProperty(hash, name, value);
6379        }
6380
6381      }
6382
6383      @Override
6384      public Base setProperty(String name, Base value) throws FHIRException {
6385        if (name.equals("url")) {
6386          this.url = TypeConvertor.castToUri(value); // UriType
6387        } else if (name.equals("identifier")) {
6388          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
6389        } else if (name.equals("version")) {
6390          this.version = TypeConvertor.castToString(value); // StringType
6391        } else if (name.equals("versionAlgorithm[x]")) {
6392          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
6393        } else if (name.equals("name")) {
6394          this.name = TypeConvertor.castToString(value); // StringType
6395        } else if (name.equals("title")) {
6396          this.title = TypeConvertor.castToString(value); // StringType
6397        } else if (name.equals("status")) {
6398          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
6399          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
6400        } else if (name.equals("experimental")) {
6401          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
6402        } else if (name.equals("date")) {
6403          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
6404        } else if (name.equals("publisher")) {
6405          this.publisher = TypeConvertor.castToString(value); // StringType
6406        } else if (name.equals("contact")) {
6407          this.getContact().add(TypeConvertor.castToContactDetail(value));
6408        } else if (name.equals("description")) {
6409          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
6410        } else if (name.equals("useContext")) {
6411          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
6412        } else if (name.equals("jurisdiction")) {
6413          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
6414        } else if (name.equals("purpose")) {
6415          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
6416        } else if (name.equals("copyright")) {
6417          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
6418        } else if (name.equals("copyrightLabel")) {
6419          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
6420        } else if (name.equals("approvalDate")) {
6421          this.approvalDate = TypeConvertor.castToDate(value); // DateType
6422        } else if (name.equals("lastReviewDate")) {
6423          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
6424        } else if (name.equals("effectivePeriod")) {
6425          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
6426        } else if (name.equals("topic")) {
6427          this.getTopic().add(TypeConvertor.castToCodeableConcept(value));
6428        } else if (name.equals("author")) {
6429          this.getAuthor().add(TypeConvertor.castToContactDetail(value));
6430        } else if (name.equals("editor")) {
6431          this.getEditor().add(TypeConvertor.castToContactDetail(value));
6432        } else if (name.equals("reviewer")) {
6433          this.getReviewer().add(TypeConvertor.castToContactDetail(value));
6434        } else if (name.equals("endorser")) {
6435          this.getEndorser().add(TypeConvertor.castToContactDetail(value));
6436        } else if (name.equals("relatedArtifact")) {
6437          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value));
6438        } else if (name.equals("property")) {
6439          this.getProperty().add((PropertyComponent) value);
6440        } else if (name.equals("additionalAttribute")) {
6441          this.getAdditionalAttribute().add((AdditionalAttributeComponent) value);
6442        } else if (name.equals("sourceScope[x]")) {
6443          this.sourceScope = TypeConvertor.castToType(value); // DataType
6444        } else if (name.equals("targetScope[x]")) {
6445          this.targetScope = TypeConvertor.castToType(value); // DataType
6446        } else if (name.equals("group")) {
6447          this.getGroup().add((ConceptMapGroupComponent) value);
6448        } else
6449          return super.setProperty(name, value);
6450        return value;
6451      }
6452
6453  @Override
6454  public void removeChild(String name, Base value) throws FHIRException {
6455        if (name.equals("url")) {
6456          this.url = null;
6457        } else if (name.equals("identifier")) {
6458          this.getIdentifier().remove(value);
6459        } else if (name.equals("version")) {
6460          this.version = null;
6461        } else if (name.equals("versionAlgorithm[x]")) {
6462          this.versionAlgorithm = null;
6463        } else if (name.equals("name")) {
6464          this.name = null;
6465        } else if (name.equals("title")) {
6466          this.title = null;
6467        } else if (name.equals("status")) {
6468          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
6469          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
6470        } else if (name.equals("experimental")) {
6471          this.experimental = null;
6472        } else if (name.equals("date")) {
6473          this.date = null;
6474        } else if (name.equals("publisher")) {
6475          this.publisher = null;
6476        } else if (name.equals("contact")) {
6477          this.getContact().remove(value);
6478        } else if (name.equals("description")) {
6479          this.description = null;
6480        } else if (name.equals("useContext")) {
6481          this.getUseContext().remove(value);
6482        } else if (name.equals("jurisdiction")) {
6483          this.getJurisdiction().remove(value);
6484        } else if (name.equals("purpose")) {
6485          this.purpose = null;
6486        } else if (name.equals("copyright")) {
6487          this.copyright = null;
6488        } else if (name.equals("copyrightLabel")) {
6489          this.copyrightLabel = null;
6490        } else if (name.equals("approvalDate")) {
6491          this.approvalDate = null;
6492        } else if (name.equals("lastReviewDate")) {
6493          this.lastReviewDate = null;
6494        } else if (name.equals("effectivePeriod")) {
6495          this.effectivePeriod = null;
6496        } else if (name.equals("topic")) {
6497          this.getTopic().remove(value);
6498        } else if (name.equals("author")) {
6499          this.getAuthor().remove(value);
6500        } else if (name.equals("editor")) {
6501          this.getEditor().remove(value);
6502        } else if (name.equals("reviewer")) {
6503          this.getReviewer().remove(value);
6504        } else if (name.equals("endorser")) {
6505          this.getEndorser().remove(value);
6506        } else if (name.equals("relatedArtifact")) {
6507          this.getRelatedArtifact().remove(value);
6508        } else if (name.equals("property")) {
6509          this.getProperty().remove((PropertyComponent) value);
6510        } else if (name.equals("additionalAttribute")) {
6511          this.getAdditionalAttribute().remove((AdditionalAttributeComponent) value);
6512        } else if (name.equals("sourceScope[x]")) {
6513          this.sourceScope = null;
6514        } else if (name.equals("targetScope[x]")) {
6515          this.targetScope = null;
6516        } else if (name.equals("group")) {
6517          this.getGroup().remove((ConceptMapGroupComponent) value);
6518        } else
6519          super.removeChild(name, value);
6520        
6521      }
6522
6523      @Override
6524      public Base makeProperty(int hash, String name) throws FHIRException {
6525        switch (hash) {
6526        case 116079:  return getUrlElement();
6527        case -1618432855:  return addIdentifier(); 
6528        case 351608024:  return getVersionElement();
6529        case -115699031:  return getVersionAlgorithm();
6530        case 1508158071:  return getVersionAlgorithm();
6531        case 3373707:  return getNameElement();
6532        case 110371416:  return getTitleElement();
6533        case -892481550:  return getStatusElement();
6534        case -404562712:  return getExperimentalElement();
6535        case 3076014:  return getDateElement();
6536        case 1447404028:  return getPublisherElement();
6537        case 951526432:  return addContact(); 
6538        case -1724546052:  return getDescriptionElement();
6539        case -669707736:  return addUseContext(); 
6540        case -507075711:  return addJurisdiction(); 
6541        case -220463842:  return getPurposeElement();
6542        case 1522889671:  return getCopyrightElement();
6543        case 765157229:  return getCopyrightLabelElement();
6544        case 223539345:  return getApprovalDateElement();
6545        case -1687512484:  return getLastReviewDateElement();
6546        case -403934648:  return getEffectivePeriod();
6547        case 110546223:  return addTopic(); 
6548        case -1406328437:  return addAuthor(); 
6549        case -1307827859:  return addEditor(); 
6550        case -261190139:  return addReviewer(); 
6551        case 1740277666:  return addEndorser(); 
6552        case 666807069:  return addRelatedArtifact(); 
6553        case -993141291:  return addProperty(); 
6554        case -1004532171:  return addAdditionalAttribute(); 
6555        case -1850861849:  return getSourceScope();
6556        case -96223495:  return getSourceScope();
6557        case -2079438243:  return getTargetScope();
6558        case -2096156861:  return getTargetScope();
6559        case 98629247:  return addGroup(); 
6560        default: return super.makeProperty(hash, name);
6561        }
6562
6563      }
6564
6565      @Override
6566      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6567        switch (hash) {
6568        case 116079: /*url*/ return new String[] {"uri"};
6569        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
6570        case 351608024: /*version*/ return new String[] {"string"};
6571        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
6572        case 3373707: /*name*/ return new String[] {"string"};
6573        case 110371416: /*title*/ return new String[] {"string"};
6574        case -892481550: /*status*/ return new String[] {"code"};
6575        case -404562712: /*experimental*/ return new String[] {"boolean"};
6576        case 3076014: /*date*/ return new String[] {"dateTime"};
6577        case 1447404028: /*publisher*/ return new String[] {"string"};
6578        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
6579        case -1724546052: /*description*/ return new String[] {"markdown"};
6580        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
6581        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
6582        case -220463842: /*purpose*/ return new String[] {"markdown"};
6583        case 1522889671: /*copyright*/ return new String[] {"markdown"};
6584        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
6585        case 223539345: /*approvalDate*/ return new String[] {"date"};
6586        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
6587        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
6588        case 110546223: /*topic*/ return new String[] {"CodeableConcept"};
6589        case -1406328437: /*author*/ return new String[] {"ContactDetail"};
6590        case -1307827859: /*editor*/ return new String[] {"ContactDetail"};
6591        case -261190139: /*reviewer*/ return new String[] {"ContactDetail"};
6592        case 1740277666: /*endorser*/ return new String[] {"ContactDetail"};
6593        case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"};
6594        case -993141291: /*property*/ return new String[] {};
6595        case -1004532171: /*additionalAttribute*/ return new String[] {};
6596        case -96223495: /*sourceScope*/ return new String[] {"uri", "canonical"};
6597        case -2096156861: /*targetScope*/ return new String[] {"uri", "canonical"};
6598        case 98629247: /*group*/ return new String[] {};
6599        default: return super.getTypesForProperty(hash, name);
6600        }
6601
6602      }
6603
6604      @Override
6605      public Base addChild(String name) throws FHIRException {
6606        if (name.equals("url")) {
6607          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.url");
6608        }
6609        else if (name.equals("identifier")) {
6610          return addIdentifier();
6611        }
6612        else if (name.equals("version")) {
6613          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.version");
6614        }
6615        else if (name.equals("versionAlgorithmString")) {
6616          this.versionAlgorithm = new StringType();
6617          return this.versionAlgorithm;
6618        }
6619        else if (name.equals("versionAlgorithmCoding")) {
6620          this.versionAlgorithm = new Coding();
6621          return this.versionAlgorithm;
6622        }
6623        else if (name.equals("name")) {
6624          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.name");
6625        }
6626        else if (name.equals("title")) {
6627          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.title");
6628        }
6629        else if (name.equals("status")) {
6630          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.status");
6631        }
6632        else if (name.equals("experimental")) {
6633          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.experimental");
6634        }
6635        else if (name.equals("date")) {
6636          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.date");
6637        }
6638        else if (name.equals("publisher")) {
6639          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.publisher");
6640        }
6641        else if (name.equals("contact")) {
6642          return addContact();
6643        }
6644        else if (name.equals("description")) {
6645          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.description");
6646        }
6647        else if (name.equals("useContext")) {
6648          return addUseContext();
6649        }
6650        else if (name.equals("jurisdiction")) {
6651          return addJurisdiction();
6652        }
6653        else if (name.equals("purpose")) {
6654          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.purpose");
6655        }
6656        else if (name.equals("copyright")) {
6657          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.copyright");
6658        }
6659        else if (name.equals("copyrightLabel")) {
6660          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.copyrightLabel");
6661        }
6662        else if (name.equals("approvalDate")) {
6663          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.approvalDate");
6664        }
6665        else if (name.equals("lastReviewDate")) {
6666          throw new FHIRException("Cannot call addChild on a singleton property ConceptMap.lastReviewDate");
6667        }
6668        else if (name.equals("effectivePeriod")) {
6669          this.effectivePeriod = new Period();
6670          return this.effectivePeriod;
6671        }
6672        else if (name.equals("topic")) {
6673          return addTopic();
6674        }
6675        else if (name.equals("author")) {
6676          return addAuthor();
6677        }
6678        else if (name.equals("editor")) {
6679          return addEditor();
6680        }
6681        else if (name.equals("reviewer")) {
6682          return addReviewer();
6683        }
6684        else if (name.equals("endorser")) {
6685          return addEndorser();
6686        }
6687        else if (name.equals("relatedArtifact")) {
6688          return addRelatedArtifact();
6689        }
6690        else if (name.equals("property")) {
6691          return addProperty();
6692        }
6693        else if (name.equals("additionalAttribute")) {
6694          return addAdditionalAttribute();
6695        }
6696        else if (name.equals("sourceScopeUri")) {
6697          this.sourceScope = new UriType();
6698          return this.sourceScope;
6699        }
6700        else if (name.equals("sourceScopeCanonical")) {
6701          this.sourceScope = new CanonicalType();
6702          return this.sourceScope;
6703        }
6704        else if (name.equals("targetScopeUri")) {
6705          this.targetScope = new UriType();
6706          return this.targetScope;
6707        }
6708        else if (name.equals("targetScopeCanonical")) {
6709          this.targetScope = new CanonicalType();
6710          return this.targetScope;
6711        }
6712        else if (name.equals("group")) {
6713          return addGroup();
6714        }
6715        else
6716          return super.addChild(name);
6717      }
6718
6719  public String fhirType() {
6720    return "ConceptMap";
6721
6722  }
6723
6724      public ConceptMap copy() {
6725        ConceptMap dst = new ConceptMap();
6726        copyValues(dst);
6727        return dst;
6728      }
6729
6730      public void copyValues(ConceptMap dst) {
6731        super.copyValues(dst);
6732        dst.url = url == null ? null : url.copy();
6733        if (identifier != null) {
6734          dst.identifier = new ArrayList<Identifier>();
6735          for (Identifier i : identifier)
6736            dst.identifier.add(i.copy());
6737        };
6738        dst.version = version == null ? null : version.copy();
6739        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
6740        dst.name = name == null ? null : name.copy();
6741        dst.title = title == null ? null : title.copy();
6742        dst.status = status == null ? null : status.copy();
6743        dst.experimental = experimental == null ? null : experimental.copy();
6744        dst.date = date == null ? null : date.copy();
6745        dst.publisher = publisher == null ? null : publisher.copy();
6746        if (contact != null) {
6747          dst.contact = new ArrayList<ContactDetail>();
6748          for (ContactDetail i : contact)
6749            dst.contact.add(i.copy());
6750        };
6751        dst.description = description == null ? null : description.copy();
6752        if (useContext != null) {
6753          dst.useContext = new ArrayList<UsageContext>();
6754          for (UsageContext i : useContext)
6755            dst.useContext.add(i.copy());
6756        };
6757        if (jurisdiction != null) {
6758          dst.jurisdiction = new ArrayList<CodeableConcept>();
6759          for (CodeableConcept i : jurisdiction)
6760            dst.jurisdiction.add(i.copy());
6761        };
6762        dst.purpose = purpose == null ? null : purpose.copy();
6763        dst.copyright = copyright == null ? null : copyright.copy();
6764        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
6765        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
6766        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
6767        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
6768        if (topic != null) {
6769          dst.topic = new ArrayList<CodeableConcept>();
6770          for (CodeableConcept i : topic)
6771            dst.topic.add(i.copy());
6772        };
6773        if (author != null) {
6774          dst.author = new ArrayList<ContactDetail>();
6775          for (ContactDetail i : author)
6776            dst.author.add(i.copy());
6777        };
6778        if (editor != null) {
6779          dst.editor = new ArrayList<ContactDetail>();
6780          for (ContactDetail i : editor)
6781            dst.editor.add(i.copy());
6782        };
6783        if (reviewer != null) {
6784          dst.reviewer = new ArrayList<ContactDetail>();
6785          for (ContactDetail i : reviewer)
6786            dst.reviewer.add(i.copy());
6787        };
6788        if (endorser != null) {
6789          dst.endorser = new ArrayList<ContactDetail>();
6790          for (ContactDetail i : endorser)
6791            dst.endorser.add(i.copy());
6792        };
6793        if (relatedArtifact != null) {
6794          dst.relatedArtifact = new ArrayList<RelatedArtifact>();
6795          for (RelatedArtifact i : relatedArtifact)
6796            dst.relatedArtifact.add(i.copy());
6797        };
6798        if (property != null) {
6799          dst.property = new ArrayList<PropertyComponent>();
6800          for (PropertyComponent i : property)
6801            dst.property.add(i.copy());
6802        };
6803        if (additionalAttribute != null) {
6804          dst.additionalAttribute = new ArrayList<AdditionalAttributeComponent>();
6805          for (AdditionalAttributeComponent i : additionalAttribute)
6806            dst.additionalAttribute.add(i.copy());
6807        };
6808        dst.sourceScope = sourceScope == null ? null : sourceScope.copy();
6809        dst.targetScope = targetScope == null ? null : targetScope.copy();
6810        if (group != null) {
6811          dst.group = new ArrayList<ConceptMapGroupComponent>();
6812          for (ConceptMapGroupComponent i : group)
6813            dst.group.add(i.copy());
6814        };
6815      }
6816
6817      protected ConceptMap typedCopy() {
6818        return copy();
6819      }
6820
6821      @Override
6822      public boolean equalsDeep(Base other_) {
6823        if (!super.equalsDeep(other_))
6824          return false;
6825        if (!(other_ instanceof ConceptMap))
6826          return false;
6827        ConceptMap o = (ConceptMap) other_;
6828        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
6829           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
6830           && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true)
6831           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true)
6832           && compareDeep(useContext, o.useContext, true) && compareDeep(jurisdiction, o.jurisdiction, true)
6833           && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true) && compareDeep(copyrightLabel, o.copyrightLabel, true)
6834           && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true)
6835           && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true)
6836           && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true)
6837           && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(property, o.property, true)
6838           && compareDeep(additionalAttribute, o.additionalAttribute, true) && compareDeep(sourceScope, o.sourceScope, true)
6839           && compareDeep(targetScope, o.targetScope, true) && compareDeep(group, o.group, true);
6840      }
6841
6842      @Override
6843      public boolean equalsShallow(Base other_) {
6844        if (!super.equalsShallow(other_))
6845          return false;
6846        if (!(other_ instanceof ConceptMap))
6847          return false;
6848        ConceptMap o = (ConceptMap) other_;
6849        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
6850           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true)
6851           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true)
6852           && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(copyrightLabel, o.copyrightLabel, true)
6853           && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true)
6854          ;
6855      }
6856
6857      public boolean isEmpty() {
6858        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
6859          , versionAlgorithm, name, title, status, experimental, date, publisher, contact
6860          , description, useContext, jurisdiction, purpose, copyright, copyrightLabel, approvalDate
6861          , lastReviewDate, effectivePeriod, topic, author, editor, reviewer, endorser, relatedArtifact
6862          , property, additionalAttribute, sourceScope, targetScope, group);
6863      }
6864
6865  @Override
6866  public ResourceType getResourceType() {
6867    return ResourceType.ConceptMap;
6868   }
6869
6870 /**
6871   * Search parameter: <b>context-quantity</b>
6872   * <p>
6873   * Description: <b>Multiple Resources: 
6874
6875* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
6876* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
6877* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
6878* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
6879* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
6880* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
6881* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
6882* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
6883* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
6884* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
6885* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
6886* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
6887* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
6888* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
6889* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
6890* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
6891* [Library](library.html): A quantity- or range-valued use context assigned to the library
6892* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
6893* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
6894* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
6895* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
6896* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
6897* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
6898* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
6899* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
6900* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
6901* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
6902* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
6903* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
6904* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
6905</b><br>
6906   * Type: <b>quantity</b><br>
6907   * 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>
6908   * </p>
6909   */
6910  @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" )
6911  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
6912 /**
6913   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
6914   * <p>
6915   * Description: <b>Multiple Resources: 
6916
6917* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
6918* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
6919* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
6920* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
6921* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
6922* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
6923* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
6924* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
6925* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
6926* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
6927* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
6928* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
6929* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
6930* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
6931* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
6932* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
6933* [Library](library.html): A quantity- or range-valued use context assigned to the library
6934* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
6935* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
6936* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
6937* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
6938* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
6939* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
6940* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
6941* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
6942* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
6943* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
6944* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
6945* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
6946* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
6947</b><br>
6948   * Type: <b>quantity</b><br>
6949   * 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>
6950   * </p>
6951   */
6952  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
6953
6954 /**
6955   * Search parameter: <b>context-type-quantity</b>
6956   * <p>
6957   * Description: <b>Multiple Resources: 
6958
6959* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
6960* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
6961* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
6962* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
6963* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
6964* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
6965* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
6966* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
6967* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
6968* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
6969* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
6970* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
6971* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
6972* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
6973* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
6974* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
6975* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
6976* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
6977* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
6978* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
6979* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
6980* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
6981* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
6982* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
6983* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
6984* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
6985* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
6986* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
6987* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
6988* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
6989</b><br>
6990   * Type: <b>composite</b><br>
6991   * 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>
6992   * </p>
6993   */
6994  @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"} )
6995  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
6996 /**
6997   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
6998   * <p>
6999   * Description: <b>Multiple Resources: 
7000
7001* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
7002* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
7003* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
7004* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
7005* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
7006* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
7007* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
7008* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
7009* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
7010* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
7011* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
7012* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
7013* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
7014* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
7015* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
7016* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
7017* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
7018* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
7019* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
7020* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
7021* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
7022* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
7023* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
7024* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
7025* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
7026* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
7027* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
7028* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
7029* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
7030* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
7031</b><br>
7032   * Type: <b>composite</b><br>
7033   * 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>
7034   * </p>
7035   */
7036  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);
7037
7038 /**
7039   * Search parameter: <b>context-type-value</b>
7040   * <p>
7041   * Description: <b>Multiple Resources: 
7042
7043* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
7044* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
7045* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
7046* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
7047* [Citation](citation.html): A use context type and value assigned to the citation
7048* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
7049* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
7050* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
7051* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
7052* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
7053* [Evidence](evidence.html): A use context type and value assigned to the evidence
7054* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
7055* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
7056* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
7057* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
7058* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
7059* [Library](library.html): A use context type and value assigned to the library
7060* [Measure](measure.html): A use context type and value assigned to the measure
7061* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
7062* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
7063* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
7064* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
7065* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
7066* [Requirements](requirements.html): A use context type and value assigned to the requirements
7067* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
7068* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
7069* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
7070* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
7071* [TestScript](testscript.html): A use context type and value assigned to the test script
7072* [ValueSet](valueset.html): A use context type and value assigned to the value set
7073</b><br>
7074   * Type: <b>composite</b><br>
7075   * 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>
7076   * </p>
7077   */
7078  @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"} )
7079  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
7080 /**
7081   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
7082   * <p>
7083   * Description: <b>Multiple Resources: 
7084
7085* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
7086* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
7087* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
7088* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
7089* [Citation](citation.html): A use context type and value assigned to the citation
7090* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
7091* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
7092* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
7093* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
7094* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
7095* [Evidence](evidence.html): A use context type and value assigned to the evidence
7096* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
7097* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
7098* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
7099* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
7100* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
7101* [Library](library.html): A use context type and value assigned to the library
7102* [Measure](measure.html): A use context type and value assigned to the measure
7103* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
7104* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
7105* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
7106* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
7107* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
7108* [Requirements](requirements.html): A use context type and value assigned to the requirements
7109* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
7110* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
7111* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
7112* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
7113* [TestScript](testscript.html): A use context type and value assigned to the test script
7114* [ValueSet](valueset.html): A use context type and value assigned to the value set
7115</b><br>
7116   * Type: <b>composite</b><br>
7117   * 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>
7118   * </p>
7119   */
7120  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);
7121
7122 /**
7123   * Search parameter: <b>context-type</b>
7124   * <p>
7125   * Description: <b>Multiple Resources: 
7126
7127* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
7128* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
7129* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
7130* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
7131* [Citation](citation.html): A type of use context assigned to the citation
7132* [CodeSystem](codesystem.html): A type of use context assigned to the code system
7133* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
7134* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
7135* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
7136* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
7137* [Evidence](evidence.html): A type of use context assigned to the evidence
7138* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
7139* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
7140* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
7141* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
7142* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
7143* [Library](library.html): A type of use context assigned to the library
7144* [Measure](measure.html): A type of use context assigned to the measure
7145* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
7146* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
7147* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
7148* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
7149* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
7150* [Requirements](requirements.html): A type of use context assigned to the requirements
7151* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
7152* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
7153* [StructureMap](structuremap.html): A type of use context assigned to the structure map
7154* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
7155* [TestScript](testscript.html): A type of use context assigned to the test script
7156* [ValueSet](valueset.html): A type of use context assigned to the value set
7157</b><br>
7158   * Type: <b>token</b><br>
7159   * 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>
7160   * </p>
7161   */
7162  @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" )
7163  public static final String SP_CONTEXT_TYPE = "context-type";
7164 /**
7165   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
7166   * <p>
7167   * Description: <b>Multiple Resources: 
7168
7169* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
7170* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
7171* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
7172* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
7173* [Citation](citation.html): A type of use context assigned to the citation
7174* [CodeSystem](codesystem.html): A type of use context assigned to the code system
7175* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
7176* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
7177* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
7178* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
7179* [Evidence](evidence.html): A type of use context assigned to the evidence
7180* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
7181* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
7182* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
7183* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
7184* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
7185* [Library](library.html): A type of use context assigned to the library
7186* [Measure](measure.html): A type of use context assigned to the measure
7187* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
7188* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
7189* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
7190* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
7191* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
7192* [Requirements](requirements.html): A type of use context assigned to the requirements
7193* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
7194* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
7195* [StructureMap](structuremap.html): A type of use context assigned to the structure map
7196* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
7197* [TestScript](testscript.html): A type of use context assigned to the test script
7198* [ValueSet](valueset.html): A type of use context assigned to the value set
7199</b><br>
7200   * Type: <b>token</b><br>
7201   * 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>
7202   * </p>
7203   */
7204  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
7205
7206 /**
7207   * Search parameter: <b>context</b>
7208   * <p>
7209   * Description: <b>Multiple Resources: 
7210
7211* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
7212* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
7213* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
7214* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
7215* [Citation](citation.html): A use context assigned to the citation
7216* [CodeSystem](codesystem.html): A use context assigned to the code system
7217* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
7218* [ConceptMap](conceptmap.html): A use context assigned to the concept map
7219* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
7220* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
7221* [Evidence](evidence.html): A use context assigned to the evidence
7222* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
7223* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
7224* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
7225* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
7226* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
7227* [Library](library.html): A use context assigned to the library
7228* [Measure](measure.html): A use context assigned to the measure
7229* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
7230* [NamingSystem](namingsystem.html): A use context assigned to the naming system
7231* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
7232* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
7233* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
7234* [Requirements](requirements.html): A use context assigned to the requirements
7235* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
7236* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
7237* [StructureMap](structuremap.html): A use context assigned to the structure map
7238* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
7239* [TestScript](testscript.html): A use context assigned to the test script
7240* [ValueSet](valueset.html): A use context assigned to the value set
7241</b><br>
7242   * Type: <b>token</b><br>
7243   * 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>
7244   * </p>
7245   */
7246  @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" )
7247  public static final String SP_CONTEXT = "context";
7248 /**
7249   * <b>Fluent Client</b> search parameter constant for <b>context</b>
7250   * <p>
7251   * Description: <b>Multiple Resources: 
7252
7253* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
7254* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
7255* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
7256* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
7257* [Citation](citation.html): A use context assigned to the citation
7258* [CodeSystem](codesystem.html): A use context assigned to the code system
7259* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
7260* [ConceptMap](conceptmap.html): A use context assigned to the concept map
7261* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
7262* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
7263* [Evidence](evidence.html): A use context assigned to the evidence
7264* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
7265* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
7266* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
7267* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
7268* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
7269* [Library](library.html): A use context assigned to the library
7270* [Measure](measure.html): A use context assigned to the measure
7271* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
7272* [NamingSystem](namingsystem.html): A use context assigned to the naming system
7273* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
7274* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
7275* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
7276* [Requirements](requirements.html): A use context assigned to the requirements
7277* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
7278* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
7279* [StructureMap](structuremap.html): A use context assigned to the structure map
7280* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
7281* [TestScript](testscript.html): A use context assigned to the test script
7282* [ValueSet](valueset.html): A use context assigned to the value set
7283</b><br>
7284   * Type: <b>token</b><br>
7285   * 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>
7286   * </p>
7287   */
7288  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
7289
7290 /**
7291   * Search parameter: <b>date</b>
7292   * <p>
7293   * Description: <b>Multiple Resources: 
7294
7295* [ActivityDefinition](activitydefinition.html): The activity definition publication date
7296* [ActorDefinition](actordefinition.html): The Actor Definition publication date
7297* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
7298* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
7299* [Citation](citation.html): The citation publication date
7300* [CodeSystem](codesystem.html): The code system publication date
7301* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
7302* [ConceptMap](conceptmap.html): The concept map publication date
7303* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
7304* [EventDefinition](eventdefinition.html): The event definition publication date
7305* [Evidence](evidence.html): The evidence publication date
7306* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
7307* [ExampleScenario](examplescenario.html): The example scenario publication date
7308* [GraphDefinition](graphdefinition.html): The graph definition publication date
7309* [ImplementationGuide](implementationguide.html): The implementation guide publication date
7310* [Library](library.html): The library publication date
7311* [Measure](measure.html): The measure publication date
7312* [MessageDefinition](messagedefinition.html): The message definition publication date
7313* [NamingSystem](namingsystem.html): The naming system publication date
7314* [OperationDefinition](operationdefinition.html): The operation definition publication date
7315* [PlanDefinition](plandefinition.html): The plan definition publication date
7316* [Questionnaire](questionnaire.html): The questionnaire publication date
7317* [Requirements](requirements.html): The requirements publication date
7318* [SearchParameter](searchparameter.html): The search parameter publication date
7319* [StructureDefinition](structuredefinition.html): The structure definition publication date
7320* [StructureMap](structuremap.html): The structure map publication date
7321* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
7322* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
7323* [TestScript](testscript.html): The test script publication date
7324* [ValueSet](valueset.html): The value set publication date
7325</b><br>
7326   * Type: <b>date</b><br>
7327   * 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>
7328   * </p>
7329   */
7330  @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" )
7331  public static final String SP_DATE = "date";
7332 /**
7333   * <b>Fluent Client</b> search parameter constant for <b>date</b>
7334   * <p>
7335   * Description: <b>Multiple Resources: 
7336
7337* [ActivityDefinition](activitydefinition.html): The activity definition publication date
7338* [ActorDefinition](actordefinition.html): The Actor Definition publication date
7339* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
7340* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
7341* [Citation](citation.html): The citation publication date
7342* [CodeSystem](codesystem.html): The code system publication date
7343* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
7344* [ConceptMap](conceptmap.html): The concept map publication date
7345* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
7346* [EventDefinition](eventdefinition.html): The event definition publication date
7347* [Evidence](evidence.html): The evidence publication date
7348* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
7349* [ExampleScenario](examplescenario.html): The example scenario publication date
7350* [GraphDefinition](graphdefinition.html): The graph definition publication date
7351* [ImplementationGuide](implementationguide.html): The implementation guide publication date
7352* [Library](library.html): The library publication date
7353* [Measure](measure.html): The measure publication date
7354* [MessageDefinition](messagedefinition.html): The message definition publication date
7355* [NamingSystem](namingsystem.html): The naming system publication date
7356* [OperationDefinition](operationdefinition.html): The operation definition publication date
7357* [PlanDefinition](plandefinition.html): The plan definition publication date
7358* [Questionnaire](questionnaire.html): The questionnaire publication date
7359* [Requirements](requirements.html): The requirements publication date
7360* [SearchParameter](searchparameter.html): The search parameter publication date
7361* [StructureDefinition](structuredefinition.html): The structure definition publication date
7362* [StructureMap](structuremap.html): The structure map publication date
7363* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
7364* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
7365* [TestScript](testscript.html): The test script publication date
7366* [ValueSet](valueset.html): The value set publication date
7367</b><br>
7368   * Type: <b>date</b><br>
7369   * 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>
7370   * </p>
7371   */
7372  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
7373
7374 /**
7375   * Search parameter: <b>description</b>
7376   * <p>
7377   * Description: <b>Multiple Resources: 
7378
7379* [ActivityDefinition](activitydefinition.html): The description of the activity definition
7380* [ActorDefinition](actordefinition.html): The description of the Actor Definition
7381* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
7382* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
7383* [Citation](citation.html): The description of the citation
7384* [CodeSystem](codesystem.html): The description of the code system
7385* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
7386* [ConceptMap](conceptmap.html): The description of the concept map
7387* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
7388* [EventDefinition](eventdefinition.html): The description of the event definition
7389* [Evidence](evidence.html): The description of the evidence
7390* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
7391* [GraphDefinition](graphdefinition.html): The description of the graph definition
7392* [ImplementationGuide](implementationguide.html): The description of the implementation guide
7393* [Library](library.html): The description of the library
7394* [Measure](measure.html): The description of the measure
7395* [MessageDefinition](messagedefinition.html): The description of the message definition
7396* [NamingSystem](namingsystem.html): The description of the naming system
7397* [OperationDefinition](operationdefinition.html): The description of the operation definition
7398* [PlanDefinition](plandefinition.html): The description of the plan definition
7399* [Questionnaire](questionnaire.html): The description of the questionnaire
7400* [Requirements](requirements.html): The description of the requirements
7401* [SearchParameter](searchparameter.html): The description of the search parameter
7402* [StructureDefinition](structuredefinition.html): The description of the structure definition
7403* [StructureMap](structuremap.html): The description of the structure map
7404* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
7405* [TestScript](testscript.html): The description of the test script
7406* [ValueSet](valueset.html): The description of the value set
7407</b><br>
7408   * Type: <b>string</b><br>
7409   * 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>
7410   * </p>
7411   */
7412  @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" )
7413  public static final String SP_DESCRIPTION = "description";
7414 /**
7415   * <b>Fluent Client</b> search parameter constant for <b>description</b>
7416   * <p>
7417   * Description: <b>Multiple Resources: 
7418
7419* [ActivityDefinition](activitydefinition.html): The description of the activity definition
7420* [ActorDefinition](actordefinition.html): The description of the Actor Definition
7421* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
7422* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
7423* [Citation](citation.html): The description of the citation
7424* [CodeSystem](codesystem.html): The description of the code system
7425* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
7426* [ConceptMap](conceptmap.html): The description of the concept map
7427* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
7428* [EventDefinition](eventdefinition.html): The description of the event definition
7429* [Evidence](evidence.html): The description of the evidence
7430* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
7431* [GraphDefinition](graphdefinition.html): The description of the graph definition
7432* [ImplementationGuide](implementationguide.html): The description of the implementation guide
7433* [Library](library.html): The description of the library
7434* [Measure](measure.html): The description of the measure
7435* [MessageDefinition](messagedefinition.html): The description of the message definition
7436* [NamingSystem](namingsystem.html): The description of the naming system
7437* [OperationDefinition](operationdefinition.html): The description of the operation definition
7438* [PlanDefinition](plandefinition.html): The description of the plan definition
7439* [Questionnaire](questionnaire.html): The description of the questionnaire
7440* [Requirements](requirements.html): The description of the requirements
7441* [SearchParameter](searchparameter.html): The description of the search parameter
7442* [StructureDefinition](structuredefinition.html): The description of the structure definition
7443* [StructureMap](structuremap.html): The description of the structure map
7444* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
7445* [TestScript](testscript.html): The description of the test script
7446* [ValueSet](valueset.html): The description of the value set
7447</b><br>
7448   * Type: <b>string</b><br>
7449   * 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>
7450   * </p>
7451   */
7452  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
7453
7454 /**
7455   * Search parameter: <b>identifier</b>
7456   * <p>
7457   * Description: <b>Multiple Resources: 
7458
7459* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7460* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7461* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7462* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7463* [Citation](citation.html): External identifier for the citation
7464* [CodeSystem](codesystem.html): External identifier for the code system
7465* [ConceptMap](conceptmap.html): External identifier for the concept map
7466* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7467* [EventDefinition](eventdefinition.html): External identifier for the event definition
7468* [Evidence](evidence.html): External identifier for the evidence
7469* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7470* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7471* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7472* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7473* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7474* [Library](library.html): External identifier for the library
7475* [Measure](measure.html): External identifier for the measure
7476* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7477* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7478* [NamingSystem](namingsystem.html): External identifier for the naming system
7479* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7480* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7481* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7482* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7483* [Requirements](requirements.html): External identifier for the requirements
7484* [SearchParameter](searchparameter.html): External identifier for the search parameter
7485* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7486* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7487* [StructureMap](structuremap.html): External identifier for the structure map
7488* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7489* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7490* [TestPlan](testplan.html): An identifier for the test plan
7491* [TestScript](testscript.html): External identifier for the test script
7492* [ValueSet](valueset.html): External identifier for the value set
7493</b><br>
7494   * Type: <b>token</b><br>
7495   * 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>
7496   * </p>
7497   */
7498  @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" )
7499  public static final String SP_IDENTIFIER = "identifier";
7500 /**
7501   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
7502   * <p>
7503   * Description: <b>Multiple Resources: 
7504
7505* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7506* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7507* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7508* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7509* [Citation](citation.html): External identifier for the citation
7510* [CodeSystem](codesystem.html): External identifier for the code system
7511* [ConceptMap](conceptmap.html): External identifier for the concept map
7512* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7513* [EventDefinition](eventdefinition.html): External identifier for the event definition
7514* [Evidence](evidence.html): External identifier for the evidence
7515* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7516* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7517* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7518* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7519* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7520* [Library](library.html): External identifier for the library
7521* [Measure](measure.html): External identifier for the measure
7522* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7523* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7524* [NamingSystem](namingsystem.html): External identifier for the naming system
7525* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7526* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7527* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7528* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7529* [Requirements](requirements.html): External identifier for the requirements
7530* [SearchParameter](searchparameter.html): External identifier for the search parameter
7531* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7532* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7533* [StructureMap](structuremap.html): External identifier for the structure map
7534* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7535* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7536* [TestPlan](testplan.html): An identifier for the test plan
7537* [TestScript](testscript.html): External identifier for the test script
7538* [ValueSet](valueset.html): External identifier for the value set
7539</b><br>
7540   * Type: <b>token</b><br>
7541   * 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>
7542   * </p>
7543   */
7544  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
7545
7546 /**
7547   * Search parameter: <b>jurisdiction</b>
7548   * <p>
7549   * Description: <b>Multiple Resources: 
7550
7551* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7552* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7553* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7554* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7555* [Citation](citation.html): Intended jurisdiction for the citation
7556* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7557* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7558* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7559* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7560* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7561* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7562* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7563* [Library](library.html): Intended jurisdiction for the library
7564* [Measure](measure.html): Intended jurisdiction for the measure
7565* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7566* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7567* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7568* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7569* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7570* [Requirements](requirements.html): Intended jurisdiction for the requirements
7571* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7572* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7573* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7574* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7575* [TestScript](testscript.html): Intended jurisdiction for the test script
7576* [ValueSet](valueset.html): Intended jurisdiction for the value set
7577</b><br>
7578   * Type: <b>token</b><br>
7579   * 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>
7580   * </p>
7581   */
7582  @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" )
7583  public static final String SP_JURISDICTION = "jurisdiction";
7584 /**
7585   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
7586   * <p>
7587   * Description: <b>Multiple Resources: 
7588
7589* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7590* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7591* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7592* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7593* [Citation](citation.html): Intended jurisdiction for the citation
7594* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7595* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7596* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7597* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7598* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7599* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7600* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7601* [Library](library.html): Intended jurisdiction for the library
7602* [Measure](measure.html): Intended jurisdiction for the measure
7603* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7604* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7605* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7606* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7607* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7608* [Requirements](requirements.html): Intended jurisdiction for the requirements
7609* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7610* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7611* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7612* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7613* [TestScript](testscript.html): Intended jurisdiction for the test script
7614* [ValueSet](valueset.html): Intended jurisdiction for the value set
7615</b><br>
7616   * Type: <b>token</b><br>
7617   * 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>
7618   * </p>
7619   */
7620  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
7621
7622 /**
7623   * Search parameter: <b>name</b>
7624   * <p>
7625   * Description: <b>Multiple Resources: 
7626
7627* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7628* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7629* [Citation](citation.html): Computationally friendly name of the citation
7630* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7631* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7632* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7633* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7634* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7635* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7636* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7637* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7638* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7639* [Library](library.html): Computationally friendly name of the library
7640* [Measure](measure.html): Computationally friendly name of the measure
7641* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7642* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7643* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7644* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7645* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7646* [Requirements](requirements.html): Computationally friendly name of the requirements
7647* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7648* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7649* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7650* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7651* [TestScript](testscript.html): Computationally friendly name of the test script
7652* [ValueSet](valueset.html): Computationally friendly name of the value set
7653</b><br>
7654   * Type: <b>string</b><br>
7655   * 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>
7656   * </p>
7657   */
7658  @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" )
7659  public static final String SP_NAME = "name";
7660 /**
7661   * <b>Fluent Client</b> search parameter constant for <b>name</b>
7662   * <p>
7663   * Description: <b>Multiple Resources: 
7664
7665* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7666* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7667* [Citation](citation.html): Computationally friendly name of the citation
7668* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7669* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7670* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7671* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7672* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7673* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7674* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7675* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7676* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7677* [Library](library.html): Computationally friendly name of the library
7678* [Measure](measure.html): Computationally friendly name of the measure
7679* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7680* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7681* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7682* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7683* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7684* [Requirements](requirements.html): Computationally friendly name of the requirements
7685* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7686* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7687* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7688* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7689* [TestScript](testscript.html): Computationally friendly name of the test script
7690* [ValueSet](valueset.html): Computationally friendly name of the value set
7691</b><br>
7692   * Type: <b>string</b><br>
7693   * 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>
7694   * </p>
7695   */
7696  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
7697
7698 /**
7699   * Search parameter: <b>publisher</b>
7700   * <p>
7701   * Description: <b>Multiple Resources: 
7702
7703* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7704* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7705* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7706* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7707* [Citation](citation.html): Name of the publisher of the citation
7708* [CodeSystem](codesystem.html): Name of the publisher of the code system
7709* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7710* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7711* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7712* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7713* [Evidence](evidence.html): Name of the publisher of the evidence
7714* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7715* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7716* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7717* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7718* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7719* [Library](library.html): Name of the publisher of the library
7720* [Measure](measure.html): Name of the publisher of the measure
7721* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7722* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7723* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7724* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7725* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7726* [Requirements](requirements.html): Name of the publisher of the requirements
7727* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7728* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7729* [StructureMap](structuremap.html): Name of the publisher of the structure map
7730* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7731* [TestScript](testscript.html): Name of the publisher of the test script
7732* [ValueSet](valueset.html): Name of the publisher of the value set
7733</b><br>
7734   * Type: <b>string</b><br>
7735   * 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>
7736   * </p>
7737   */
7738  @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" )
7739  public static final String SP_PUBLISHER = "publisher";
7740 /**
7741   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
7742   * <p>
7743   * Description: <b>Multiple Resources: 
7744
7745* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7746* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7747* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7748* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7749* [Citation](citation.html): Name of the publisher of the citation
7750* [CodeSystem](codesystem.html): Name of the publisher of the code system
7751* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7752* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7753* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7754* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7755* [Evidence](evidence.html): Name of the publisher of the evidence
7756* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7757* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7758* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7759* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7760* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7761* [Library](library.html): Name of the publisher of the library
7762* [Measure](measure.html): Name of the publisher of the measure
7763* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7764* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7765* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7766* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7767* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7768* [Requirements](requirements.html): Name of the publisher of the requirements
7769* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7770* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7771* [StructureMap](structuremap.html): Name of the publisher of the structure map
7772* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7773* [TestScript](testscript.html): Name of the publisher of the test script
7774* [ValueSet](valueset.html): Name of the publisher of the value set
7775</b><br>
7776   * Type: <b>string</b><br>
7777   * 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>
7778   * </p>
7779   */
7780  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
7781
7782 /**
7783   * Search parameter: <b>status</b>
7784   * <p>
7785   * Description: <b>Multiple Resources: 
7786
7787* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7788* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7789* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7790* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7791* [Citation](citation.html): The current status of the citation
7792* [CodeSystem](codesystem.html): The current status of the code system
7793* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7794* [ConceptMap](conceptmap.html): The current status of the concept map
7795* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7796* [EventDefinition](eventdefinition.html): The current status of the event definition
7797* [Evidence](evidence.html): The current status of the evidence
7798* [EvidenceReport](evidencereport.html): The current status of the evidence report
7799* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7800* [ExampleScenario](examplescenario.html): The current status of the example scenario
7801* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7802* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7803* [Library](library.html): The current status of the library
7804* [Measure](measure.html): The current status of the measure
7805* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7806* [MessageDefinition](messagedefinition.html): The current status of the message definition
7807* [NamingSystem](namingsystem.html): The current status of the naming system
7808* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7809* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7810* [PlanDefinition](plandefinition.html): The current status of the plan definition
7811* [Questionnaire](questionnaire.html): The current status of the questionnaire
7812* [Requirements](requirements.html): The current status of the requirements
7813* [SearchParameter](searchparameter.html): The current status of the search parameter
7814* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7815* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7816* [StructureMap](structuremap.html): The current status of the structure map
7817* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7818* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7819* [TestPlan](testplan.html): The current status of the test plan
7820* [TestScript](testscript.html): The current status of the test script
7821* [ValueSet](valueset.html): The current status of the value set
7822</b><br>
7823   * Type: <b>token</b><br>
7824   * 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>
7825   * </p>
7826   */
7827  @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" )
7828  public static final String SP_STATUS = "status";
7829 /**
7830   * <b>Fluent Client</b> search parameter constant for <b>status</b>
7831   * <p>
7832   * Description: <b>Multiple Resources: 
7833
7834* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7835* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7836* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7837* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7838* [Citation](citation.html): The current status of the citation
7839* [CodeSystem](codesystem.html): The current status of the code system
7840* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7841* [ConceptMap](conceptmap.html): The current status of the concept map
7842* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7843* [EventDefinition](eventdefinition.html): The current status of the event definition
7844* [Evidence](evidence.html): The current status of the evidence
7845* [EvidenceReport](evidencereport.html): The current status of the evidence report
7846* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7847* [ExampleScenario](examplescenario.html): The current status of the example scenario
7848* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7849* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7850* [Library](library.html): The current status of the library
7851* [Measure](measure.html): The current status of the measure
7852* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7853* [MessageDefinition](messagedefinition.html): The current status of the message definition
7854* [NamingSystem](namingsystem.html): The current status of the naming system
7855* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7856* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7857* [PlanDefinition](plandefinition.html): The current status of the plan definition
7858* [Questionnaire](questionnaire.html): The current status of the questionnaire
7859* [Requirements](requirements.html): The current status of the requirements
7860* [SearchParameter](searchparameter.html): The current status of the search parameter
7861* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7862* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7863* [StructureMap](structuremap.html): The current status of the structure map
7864* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7865* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7866* [TestPlan](testplan.html): The current status of the test plan
7867* [TestScript](testscript.html): The current status of the test script
7868* [ValueSet](valueset.html): The current status of the value set
7869</b><br>
7870   * Type: <b>token</b><br>
7871   * 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>
7872   * </p>
7873   */
7874  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
7875
7876 /**
7877   * Search parameter: <b>title</b>
7878   * <p>
7879   * Description: <b>Multiple Resources: 
7880
7881* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
7882* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
7883* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
7884* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
7885* [Citation](citation.html): The human-friendly name of the citation
7886* [CodeSystem](codesystem.html): The human-friendly name of the code system
7887* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
7888* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
7889* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
7890* [Evidence](evidence.html): The human-friendly name of the evidence
7891* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
7892* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
7893* [Library](library.html): The human-friendly name of the library
7894* [Measure](measure.html): The human-friendly name of the measure
7895* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
7896* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
7897* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
7898* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
7899* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
7900* [Requirements](requirements.html): The human-friendly name of the requirements
7901* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
7902* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
7903* [StructureMap](structuremap.html): The human-friendly name of the structure map
7904* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
7905* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
7906* [TestScript](testscript.html): The human-friendly name of the test script
7907* [ValueSet](valueset.html): The human-friendly name of the value set
7908</b><br>
7909   * Type: <b>string</b><br>
7910   * 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>
7911   * </p>
7912   */
7913  @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" )
7914  public static final String SP_TITLE = "title";
7915 /**
7916   * <b>Fluent Client</b> search parameter constant for <b>title</b>
7917   * <p>
7918   * Description: <b>Multiple Resources: 
7919
7920* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
7921* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
7922* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
7923* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
7924* [Citation](citation.html): The human-friendly name of the citation
7925* [CodeSystem](codesystem.html): The human-friendly name of the code system
7926* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
7927* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
7928* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
7929* [Evidence](evidence.html): The human-friendly name of the evidence
7930* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
7931* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
7932* [Library](library.html): The human-friendly name of the library
7933* [Measure](measure.html): The human-friendly name of the measure
7934* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
7935* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
7936* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
7937* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
7938* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
7939* [Requirements](requirements.html): The human-friendly name of the requirements
7940* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
7941* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
7942* [StructureMap](structuremap.html): The human-friendly name of the structure map
7943* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)