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 * This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.
052 */
053@ResourceDef(name="Medication", profile="http://hl7.org/fhir/StructureDefinition/Medication")
054public class Medication extends DomainResource {
055
056    public enum MedicationStatusCodes {
057        /**
058         * The medication record is current and is appropriate for reference in new instances.
059         */
060        ACTIVE, 
061        /**
062         * The medication record is not current and is not is appropriate for reference in new instances.
063         */
064        INACTIVE, 
065        /**
066         * The medication record was created erroneously and is not appropriated for reference in new instances.
067         */
068        ENTEREDINERROR, 
069        /**
070         * added to help the parsers with the generic types
071         */
072        NULL;
073        public static MedicationStatusCodes fromCode(String codeString) throws FHIRException {
074            if (codeString == null || "".equals(codeString))
075                return null;
076        if ("active".equals(codeString))
077          return ACTIVE;
078        if ("inactive".equals(codeString))
079          return INACTIVE;
080        if ("entered-in-error".equals(codeString))
081          return ENTEREDINERROR;
082        if (Configuration.isAcceptInvalidEnums())
083          return null;
084        else
085          throw new FHIRException("Unknown MedicationStatusCodes code '"+codeString+"'");
086        }
087        public String toCode() {
088          switch (this) {
089            case ACTIVE: return "active";
090            case INACTIVE: return "inactive";
091            case ENTEREDINERROR: return "entered-in-error";
092            case NULL: return null;
093            default: return "?";
094          }
095        }
096        public String getSystem() {
097          switch (this) {
098            case ACTIVE: return "http://hl7.org/fhir/CodeSystem/medication-status";
099            case INACTIVE: return "http://hl7.org/fhir/CodeSystem/medication-status";
100            case ENTEREDINERROR: return "http://hl7.org/fhir/CodeSystem/medication-status";
101            case NULL: return null;
102            default: return "?";
103          }
104        }
105        public String getDefinition() {
106          switch (this) {
107            case ACTIVE: return "The medication record is current and is appropriate for reference in new instances.";
108            case INACTIVE: return "The medication record is not current and is not is appropriate for reference in new instances.";
109            case ENTEREDINERROR: return "The medication record was created erroneously and is not appropriated for reference in new instances.";
110            case NULL: return null;
111            default: return "?";
112          }
113        }
114        public String getDisplay() {
115          switch (this) {
116            case ACTIVE: return "Active";
117            case INACTIVE: return "Inactive";
118            case ENTEREDINERROR: return "Entered in Error";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123    }
124
125  public static class MedicationStatusCodesEnumFactory implements EnumFactory<MedicationStatusCodes> {
126    public MedicationStatusCodes fromCode(String codeString) throws IllegalArgumentException {
127      if (codeString == null || "".equals(codeString))
128            if (codeString == null || "".equals(codeString))
129                return null;
130        if ("active".equals(codeString))
131          return MedicationStatusCodes.ACTIVE;
132        if ("inactive".equals(codeString))
133          return MedicationStatusCodes.INACTIVE;
134        if ("entered-in-error".equals(codeString))
135          return MedicationStatusCodes.ENTEREDINERROR;
136        throw new IllegalArgumentException("Unknown MedicationStatusCodes code '"+codeString+"'");
137        }
138        public Enumeration<MedicationStatusCodes> fromType(PrimitiveType<?> code) throws FHIRException {
139          if (code == null)
140            return null;
141          if (code.isEmpty())
142            return new Enumeration<MedicationStatusCodes>(this, MedicationStatusCodes.NULL, code);
143          String codeString = ((PrimitiveType) code).asStringValue();
144          if (codeString == null || "".equals(codeString))
145            return new Enumeration<MedicationStatusCodes>(this, MedicationStatusCodes.NULL, code);
146        if ("active".equals(codeString))
147          return new Enumeration<MedicationStatusCodes>(this, MedicationStatusCodes.ACTIVE, code);
148        if ("inactive".equals(codeString))
149          return new Enumeration<MedicationStatusCodes>(this, MedicationStatusCodes.INACTIVE, code);
150        if ("entered-in-error".equals(codeString))
151          return new Enumeration<MedicationStatusCodes>(this, MedicationStatusCodes.ENTEREDINERROR, code);
152        throw new FHIRException("Unknown MedicationStatusCodes code '"+codeString+"'");
153        }
154    public String toCode(MedicationStatusCodes code) {
155      if (code == MedicationStatusCodes.ACTIVE)
156        return "active";
157      if (code == MedicationStatusCodes.INACTIVE)
158        return "inactive";
159      if (code == MedicationStatusCodes.ENTEREDINERROR)
160        return "entered-in-error";
161      return "?";
162      }
163    public String toSystem(MedicationStatusCodes code) {
164      return code.getSystem();
165      }
166    }
167
168    @Block()
169    public static class MedicationIngredientComponent extends BackboneElement implements IBaseBackboneElement {
170        /**
171         * The ingredient (substance or medication) that the ingredient.strength relates to.  This is represented as a concept from a code system or described in another resource (Substance or Medication).
172         */
173        @Child(name = "item", type = {CodeableReference.class}, order=1, min=1, max=1, modifier=false, summary=false)
174        @Description(shortDefinition="The ingredient (substance or medication) that the ingredient.strength relates to", formalDefinition="The ingredient (substance or medication) that the ingredient.strength relates to.  This is represented as a concept from a code system or described in another resource (Substance or Medication)." )
175        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-codes")
176        protected CodeableReference item;
177
178        /**
179         * Indication of whether this ingredient affects the therapeutic action of the drug.
180         */
181        @Child(name = "isActive", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false)
182        @Description(shortDefinition="Active ingredient indicator", formalDefinition="Indication of whether this ingredient affects the therapeutic action of the drug." )
183        protected BooleanType isActive;
184
185        /**
186         * Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.
187         */
188        @Child(name = "strength", type = {Ratio.class, CodeableConcept.class, Quantity.class}, order=3, min=0, max=1, modifier=false, summary=false)
189        @Description(shortDefinition="Quantity of ingredient present", formalDefinition="Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet." )
190        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-ingredientstrength")
191        protected DataType strength;
192
193        private static final long serialVersionUID = -979760018L;
194
195    /**
196     * Constructor
197     */
198      public MedicationIngredientComponent() {
199        super();
200      }
201
202    /**
203     * Constructor
204     */
205      public MedicationIngredientComponent(CodeableReference item) {
206        super();
207        this.setItem(item);
208      }
209
210        /**
211         * @return {@link #item} (The ingredient (substance or medication) that the ingredient.strength relates to.  This is represented as a concept from a code system or described in another resource (Substance or Medication).)
212         */
213        public CodeableReference getItem() { 
214          if (this.item == null)
215            if (Configuration.errorOnAutoCreate())
216              throw new Error("Attempt to auto-create MedicationIngredientComponent.item");
217            else if (Configuration.doAutoCreate())
218              this.item = new CodeableReference(); // cc
219          return this.item;
220        }
221
222        public boolean hasItem() { 
223          return this.item != null && !this.item.isEmpty();
224        }
225
226        /**
227         * @param value {@link #item} (The ingredient (substance or medication) that the ingredient.strength relates to.  This is represented as a concept from a code system or described in another resource (Substance or Medication).)
228         */
229        public MedicationIngredientComponent setItem(CodeableReference value) { 
230          this.item = value;
231          return this;
232        }
233
234        /**
235         * @return {@link #isActive} (Indication of whether this ingredient affects the therapeutic action of the drug.). This is the underlying object with id, value and extensions. The accessor "getIsActive" gives direct access to the value
236         */
237        public BooleanType getIsActiveElement() { 
238          if (this.isActive == null)
239            if (Configuration.errorOnAutoCreate())
240              throw new Error("Attempt to auto-create MedicationIngredientComponent.isActive");
241            else if (Configuration.doAutoCreate())
242              this.isActive = new BooleanType(); // bb
243          return this.isActive;
244        }
245
246        public boolean hasIsActiveElement() { 
247          return this.isActive != null && !this.isActive.isEmpty();
248        }
249
250        public boolean hasIsActive() { 
251          return this.isActive != null && !this.isActive.isEmpty();
252        }
253
254        /**
255         * @param value {@link #isActive} (Indication of whether this ingredient affects the therapeutic action of the drug.). This is the underlying object with id, value and extensions. The accessor "getIsActive" gives direct access to the value
256         */
257        public MedicationIngredientComponent setIsActiveElement(BooleanType value) { 
258          this.isActive = value;
259          return this;
260        }
261
262        /**
263         * @return Indication of whether this ingredient affects the therapeutic action of the drug.
264         */
265        public boolean getIsActive() { 
266          return this.isActive == null || this.isActive.isEmpty() ? false : this.isActive.getValue();
267        }
268
269        /**
270         * @param value Indication of whether this ingredient affects the therapeutic action of the drug.
271         */
272        public MedicationIngredientComponent setIsActive(boolean value) { 
273            if (this.isActive == null)
274              this.isActive = new BooleanType();
275            this.isActive.setValue(value);
276          return this;
277        }
278
279        /**
280         * @return {@link #strength} (Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.)
281         */
282        public DataType getStrength() { 
283          return this.strength;
284        }
285
286        /**
287         * @return {@link #strength} (Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.)
288         */
289        public Ratio getStrengthRatio() throws FHIRException { 
290          if (this.strength == null)
291            this.strength = new Ratio();
292          if (!(this.strength instanceof Ratio))
293            throw new FHIRException("Type mismatch: the type Ratio was expected, but "+this.strength.getClass().getName()+" was encountered");
294          return (Ratio) this.strength;
295        }
296
297        public boolean hasStrengthRatio() { 
298          return this != null && this.strength instanceof Ratio;
299        }
300
301        /**
302         * @return {@link #strength} (Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.)
303         */
304        public CodeableConcept getStrengthCodeableConcept() throws FHIRException { 
305          if (this.strength == null)
306            this.strength = new CodeableConcept();
307          if (!(this.strength instanceof CodeableConcept))
308            throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.strength.getClass().getName()+" was encountered");
309          return (CodeableConcept) this.strength;
310        }
311
312        public boolean hasStrengthCodeableConcept() { 
313          return this != null && this.strength instanceof CodeableConcept;
314        }
315
316        /**
317         * @return {@link #strength} (Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.)
318         */
319        public Quantity getStrengthQuantity() throws FHIRException { 
320          if (this.strength == null)
321            this.strength = new Quantity();
322          if (!(this.strength instanceof Quantity))
323            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.strength.getClass().getName()+" was encountered");
324          return (Quantity) this.strength;
325        }
326
327        public boolean hasStrengthQuantity() { 
328          return this != null && this.strength instanceof Quantity;
329        }
330
331        public boolean hasStrength() { 
332          return this.strength != null && !this.strength.isEmpty();
333        }
334
335        /**
336         * @param value {@link #strength} (Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.)
337         */
338        public MedicationIngredientComponent setStrength(DataType value) { 
339          if (value != null && !(value instanceof Ratio || value instanceof CodeableConcept || value instanceof Quantity))
340            throw new FHIRException("Not the right type for Medication.ingredient.strength[x]: "+value.fhirType());
341          this.strength = value;
342          return this;
343        }
344
345        protected void listChildren(List<Property> children) {
346          super.listChildren(children);
347          children.add(new Property("item", "CodeableReference(Substance|Medication)", "The ingredient (substance or medication) that the ingredient.strength relates to.  This is represented as a concept from a code system or described in another resource (Substance or Medication).", 0, 1, item));
348          children.add(new Property("isActive", "boolean", "Indication of whether this ingredient affects the therapeutic action of the drug.", 0, 1, isActive));
349          children.add(new Property("strength[x]", "Ratio|CodeableConcept|Quantity", "Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.", 0, 1, strength));
350        }
351
352        @Override
353        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
354          switch (_hash) {
355          case 3242771: /*item*/  return new Property("item", "CodeableReference(Substance|Medication)", "The ingredient (substance or medication) that the ingredient.strength relates to.  This is represented as a concept from a code system or described in another resource (Substance or Medication).", 0, 1, item);
356          case -748916528: /*isActive*/  return new Property("isActive", "boolean", "Indication of whether this ingredient affects the therapeutic action of the drug.", 0, 1, isActive);
357          case 127377567: /*strength[x]*/  return new Property("strength[x]", "Ratio|CodeableConcept|Quantity", "Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.", 0, 1, strength);
358          case 1791316033: /*strength*/  return new Property("strength[x]", "Ratio|CodeableConcept|Quantity", "Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.", 0, 1, strength);
359          case 2141786186: /*strengthRatio*/  return new Property("strength[x]", "Ratio", "Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.", 0, 1, strength);
360          case -1455903456: /*strengthCodeableConcept*/  return new Property("strength[x]", "CodeableConcept", "Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.", 0, 1, strength);
361          case -1793570836: /*strengthQuantity*/  return new Property("strength[x]", "Quantity", "Specifies how many (or how much) of the items there are in this Medication.  For example, 250 mg per tablet.  This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.", 0, 1, strength);
362          default: return super.getNamedProperty(_hash, _name, _checkValid);
363          }
364
365        }
366
367      @Override
368      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
369        switch (hash) {
370        case 3242771: /*item*/ return this.item == null ? new Base[0] : new Base[] {this.item}; // CodeableReference
371        case -748916528: /*isActive*/ return this.isActive == null ? new Base[0] : new Base[] {this.isActive}; // BooleanType
372        case 1791316033: /*strength*/ return this.strength == null ? new Base[0] : new Base[] {this.strength}; // DataType
373        default: return super.getProperty(hash, name, checkValid);
374        }
375
376      }
377
378      @Override
379      public Base setProperty(int hash, String name, Base value) throws FHIRException {
380        switch (hash) {
381        case 3242771: // item
382          this.item = TypeConvertor.castToCodeableReference(value); // CodeableReference
383          return value;
384        case -748916528: // isActive
385          this.isActive = TypeConvertor.castToBoolean(value); // BooleanType
386          return value;
387        case 1791316033: // strength
388          this.strength = TypeConvertor.castToType(value); // DataType
389          return value;
390        default: return super.setProperty(hash, name, value);
391        }
392
393      }
394
395      @Override
396      public Base setProperty(String name, Base value) throws FHIRException {
397        if (name.equals("item")) {
398          this.item = TypeConvertor.castToCodeableReference(value); // CodeableReference
399        } else if (name.equals("isActive")) {
400          this.isActive = TypeConvertor.castToBoolean(value); // BooleanType
401        } else if (name.equals("strength[x]")) {
402          this.strength = TypeConvertor.castToType(value); // DataType
403        } else
404          return super.setProperty(name, value);
405        return value;
406      }
407
408      @Override
409      public Base makeProperty(int hash, String name) throws FHIRException {
410        switch (hash) {
411        case 3242771:  return getItem();
412        case -748916528:  return getIsActiveElement();
413        case 127377567:  return getStrength();
414        case 1791316033:  return getStrength();
415        default: return super.makeProperty(hash, name);
416        }
417
418      }
419
420      @Override
421      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
422        switch (hash) {
423        case 3242771: /*item*/ return new String[] {"CodeableReference"};
424        case -748916528: /*isActive*/ return new String[] {"boolean"};
425        case 1791316033: /*strength*/ return new String[] {"Ratio", "CodeableConcept", "Quantity"};
426        default: return super.getTypesForProperty(hash, name);
427        }
428
429      }
430
431      @Override
432      public Base addChild(String name) throws FHIRException {
433        if (name.equals("item")) {
434          this.item = new CodeableReference();
435          return this.item;
436        }
437        else if (name.equals("isActive")) {
438          throw new FHIRException("Cannot call addChild on a singleton property Medication.ingredient.isActive");
439        }
440        else if (name.equals("strengthRatio")) {
441          this.strength = new Ratio();
442          return this.strength;
443        }
444        else if (name.equals("strengthCodeableConcept")) {
445          this.strength = new CodeableConcept();
446          return this.strength;
447        }
448        else if (name.equals("strengthQuantity")) {
449          this.strength = new Quantity();
450          return this.strength;
451        }
452        else
453          return super.addChild(name);
454      }
455
456      public MedicationIngredientComponent copy() {
457        MedicationIngredientComponent dst = new MedicationIngredientComponent();
458        copyValues(dst);
459        return dst;
460      }
461
462      public void copyValues(MedicationIngredientComponent dst) {
463        super.copyValues(dst);
464        dst.item = item == null ? null : item.copy();
465        dst.isActive = isActive == null ? null : isActive.copy();
466        dst.strength = strength == null ? null : strength.copy();
467      }
468
469      @Override
470      public boolean equalsDeep(Base other_) {
471        if (!super.equalsDeep(other_))
472          return false;
473        if (!(other_ instanceof MedicationIngredientComponent))
474          return false;
475        MedicationIngredientComponent o = (MedicationIngredientComponent) other_;
476        return compareDeep(item, o.item, true) && compareDeep(isActive, o.isActive, true) && compareDeep(strength, o.strength, true)
477          ;
478      }
479
480      @Override
481      public boolean equalsShallow(Base other_) {
482        if (!super.equalsShallow(other_))
483          return false;
484        if (!(other_ instanceof MedicationIngredientComponent))
485          return false;
486        MedicationIngredientComponent o = (MedicationIngredientComponent) other_;
487        return compareValues(isActive, o.isActive, true);
488      }
489
490      public boolean isEmpty() {
491        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(item, isActive, strength
492          );
493      }
494
495  public String fhirType() {
496    return "Medication.ingredient";
497
498  }
499
500  }
501
502    @Block()
503    public static class MedicationBatchComponent extends BackboneElement implements IBaseBackboneElement {
504        /**
505         * The assigned lot number of a batch of the specified product.
506         */
507        @Child(name = "lotNumber", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
508        @Description(shortDefinition="Identifier assigned to batch", formalDefinition="The assigned lot number of a batch of the specified product." )
509        protected StringType lotNumber;
510
511        /**
512         * When this specific batch of product will expire.
513         */
514        @Child(name = "expirationDate", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
515        @Description(shortDefinition="When batch will expire", formalDefinition="When this specific batch of product will expire." )
516        protected DateTimeType expirationDate;
517
518        private static final long serialVersionUID = 1982738755L;
519
520    /**
521     * Constructor
522     */
523      public MedicationBatchComponent() {
524        super();
525      }
526
527        /**
528         * @return {@link #lotNumber} (The assigned lot number of a batch of the specified product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value
529         */
530        public StringType getLotNumberElement() { 
531          if (this.lotNumber == null)
532            if (Configuration.errorOnAutoCreate())
533              throw new Error("Attempt to auto-create MedicationBatchComponent.lotNumber");
534            else if (Configuration.doAutoCreate())
535              this.lotNumber = new StringType(); // bb
536          return this.lotNumber;
537        }
538
539        public boolean hasLotNumberElement() { 
540          return this.lotNumber != null && !this.lotNumber.isEmpty();
541        }
542
543        public boolean hasLotNumber() { 
544          return this.lotNumber != null && !this.lotNumber.isEmpty();
545        }
546
547        /**
548         * @param value {@link #lotNumber} (The assigned lot number of a batch of the specified product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value
549         */
550        public MedicationBatchComponent setLotNumberElement(StringType value) { 
551          this.lotNumber = value;
552          return this;
553        }
554
555        /**
556         * @return The assigned lot number of a batch of the specified product.
557         */
558        public String getLotNumber() { 
559          return this.lotNumber == null ? null : this.lotNumber.getValue();
560        }
561
562        /**
563         * @param value The assigned lot number of a batch of the specified product.
564         */
565        public MedicationBatchComponent setLotNumber(String value) { 
566          if (Utilities.noString(value))
567            this.lotNumber = null;
568          else {
569            if (this.lotNumber == null)
570              this.lotNumber = new StringType();
571            this.lotNumber.setValue(value);
572          }
573          return this;
574        }
575
576        /**
577         * @return {@link #expirationDate} (When this specific batch of product will expire.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value
578         */
579        public DateTimeType getExpirationDateElement() { 
580          if (this.expirationDate == null)
581            if (Configuration.errorOnAutoCreate())
582              throw new Error("Attempt to auto-create MedicationBatchComponent.expirationDate");
583            else if (Configuration.doAutoCreate())
584              this.expirationDate = new DateTimeType(); // bb
585          return this.expirationDate;
586        }
587
588        public boolean hasExpirationDateElement() { 
589          return this.expirationDate != null && !this.expirationDate.isEmpty();
590        }
591
592        public boolean hasExpirationDate() { 
593          return this.expirationDate != null && !this.expirationDate.isEmpty();
594        }
595
596        /**
597         * @param value {@link #expirationDate} (When this specific batch of product will expire.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value
598         */
599        public MedicationBatchComponent setExpirationDateElement(DateTimeType value) { 
600          this.expirationDate = value;
601          return this;
602        }
603
604        /**
605         * @return When this specific batch of product will expire.
606         */
607        public Date getExpirationDate() { 
608          return this.expirationDate == null ? null : this.expirationDate.getValue();
609        }
610
611        /**
612         * @param value When this specific batch of product will expire.
613         */
614        public MedicationBatchComponent setExpirationDate(Date value) { 
615          if (value == null)
616            this.expirationDate = null;
617          else {
618            if (this.expirationDate == null)
619              this.expirationDate = new DateTimeType();
620            this.expirationDate.setValue(value);
621          }
622          return this;
623        }
624
625        protected void listChildren(List<Property> children) {
626          super.listChildren(children);
627          children.add(new Property("lotNumber", "string", "The assigned lot number of a batch of the specified product.", 0, 1, lotNumber));
628          children.add(new Property("expirationDate", "dateTime", "When this specific batch of product will expire.", 0, 1, expirationDate));
629        }
630
631        @Override
632        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
633          switch (_hash) {
634          case 462547450: /*lotNumber*/  return new Property("lotNumber", "string", "The assigned lot number of a batch of the specified product.", 0, 1, lotNumber);
635          case -668811523: /*expirationDate*/  return new Property("expirationDate", "dateTime", "When this specific batch of product will expire.", 0, 1, expirationDate);
636          default: return super.getNamedProperty(_hash, _name, _checkValid);
637          }
638
639        }
640
641      @Override
642      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
643        switch (hash) {
644        case 462547450: /*lotNumber*/ return this.lotNumber == null ? new Base[0] : new Base[] {this.lotNumber}; // StringType
645        case -668811523: /*expirationDate*/ return this.expirationDate == null ? new Base[0] : new Base[] {this.expirationDate}; // DateTimeType
646        default: return super.getProperty(hash, name, checkValid);
647        }
648
649      }
650
651      @Override
652      public Base setProperty(int hash, String name, Base value) throws FHIRException {
653        switch (hash) {
654        case 462547450: // lotNumber
655          this.lotNumber = TypeConvertor.castToString(value); // StringType
656          return value;
657        case -668811523: // expirationDate
658          this.expirationDate = TypeConvertor.castToDateTime(value); // DateTimeType
659          return value;
660        default: return super.setProperty(hash, name, value);
661        }
662
663      }
664
665      @Override
666      public Base setProperty(String name, Base value) throws FHIRException {
667        if (name.equals("lotNumber")) {
668          this.lotNumber = TypeConvertor.castToString(value); // StringType
669        } else if (name.equals("expirationDate")) {
670          this.expirationDate = TypeConvertor.castToDateTime(value); // DateTimeType
671        } else
672          return super.setProperty(name, value);
673        return value;
674      }
675
676      @Override
677      public Base makeProperty(int hash, String name) throws FHIRException {
678        switch (hash) {
679        case 462547450:  return getLotNumberElement();
680        case -668811523:  return getExpirationDateElement();
681        default: return super.makeProperty(hash, name);
682        }
683
684      }
685
686      @Override
687      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
688        switch (hash) {
689        case 462547450: /*lotNumber*/ return new String[] {"string"};
690        case -668811523: /*expirationDate*/ return new String[] {"dateTime"};
691        default: return super.getTypesForProperty(hash, name);
692        }
693
694      }
695
696      @Override
697      public Base addChild(String name) throws FHIRException {
698        if (name.equals("lotNumber")) {
699          throw new FHIRException("Cannot call addChild on a singleton property Medication.batch.lotNumber");
700        }
701        else if (name.equals("expirationDate")) {
702          throw new FHIRException("Cannot call addChild on a singleton property Medication.batch.expirationDate");
703        }
704        else
705          return super.addChild(name);
706      }
707
708      public MedicationBatchComponent copy() {
709        MedicationBatchComponent dst = new MedicationBatchComponent();
710        copyValues(dst);
711        return dst;
712      }
713
714      public void copyValues(MedicationBatchComponent dst) {
715        super.copyValues(dst);
716        dst.lotNumber = lotNumber == null ? null : lotNumber.copy();
717        dst.expirationDate = expirationDate == null ? null : expirationDate.copy();
718      }
719
720      @Override
721      public boolean equalsDeep(Base other_) {
722        if (!super.equalsDeep(other_))
723          return false;
724        if (!(other_ instanceof MedicationBatchComponent))
725          return false;
726        MedicationBatchComponent o = (MedicationBatchComponent) other_;
727        return compareDeep(lotNumber, o.lotNumber, true) && compareDeep(expirationDate, o.expirationDate, true)
728          ;
729      }
730
731      @Override
732      public boolean equalsShallow(Base other_) {
733        if (!super.equalsShallow(other_))
734          return false;
735        if (!(other_ instanceof MedicationBatchComponent))
736          return false;
737        MedicationBatchComponent o = (MedicationBatchComponent) other_;
738        return compareValues(lotNumber, o.lotNumber, true) && compareValues(expirationDate, o.expirationDate, true)
739          ;
740      }
741
742      public boolean isEmpty() {
743        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(lotNumber, expirationDate
744          );
745      }
746
747  public String fhirType() {
748    return "Medication.batch";
749
750  }
751
752  }
753
754    /**
755     * Business identifier for this medication.
756     */
757    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
758    @Description(shortDefinition="Business identifier for this medication", formalDefinition="Business identifier for this medication." )
759    protected List<Identifier> identifier;
760
761    /**
762     * A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.
763     */
764    @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true)
765    @Description(shortDefinition="Codes that identify this medication", formalDefinition="A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems." )
766    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-codes")
767    protected CodeableConcept code;
768
769    /**
770     * A code to indicate if the medication is in active use.
771     */
772    @Child(name = "status", type = {CodeType.class}, order=2, min=0, max=1, modifier=true, summary=true)
773    @Description(shortDefinition="active | inactive | entered-in-error", formalDefinition="A code to indicate if the medication is in active use." )
774    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-status")
775    protected Enumeration<MedicationStatusCodes> status;
776
777    /**
778     * The company or other legal entity that has authorization, from the appropriate drug regulatory authority,  to market a medicine in one or more jurisdictions.  Typically abbreviated MAH.Note:  The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).
779     */
780    @Child(name = "marketingAuthorizationHolder", type = {Organization.class}, order=3, min=0, max=1, modifier=false, summary=true)
781    @Description(shortDefinition="Organization that has authorization to market medication", formalDefinition="The company or other legal entity that has authorization, from the appropriate drug regulatory authority,  to market a medicine in one or more jurisdictions.  Typically abbreviated MAH.Note:  The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations)." )
782    protected Reference marketingAuthorizationHolder;
783
784    /**
785     * Describes the form of the item.  Powder; tablets; capsule.
786     */
787    @Child(name = "doseForm", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=false)
788    @Description(shortDefinition="powder | tablets | capsule +", formalDefinition="Describes the form of the item.  Powder; tablets; capsule." )
789    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-form-codes")
790    protected CodeableConcept doseForm;
791
792    /**
793     * When the specified product code does not infer a package size, this is the specific amount of drug in the product.  For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).
794     */
795    @Child(name = "totalVolume", type = {Quantity.class}, order=5, min=0, max=1, modifier=false, summary=true)
796    @Description(shortDefinition="When the specified product code does not infer a package size, this is the specific amount of drug in the product", formalDefinition="When the specified product code does not infer a package size, this is the specific amount of drug in the product.  For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.)." )
797    protected Quantity totalVolume;
798
799    /**
800     * Identifies a particular constituent of interest in the product.
801     */
802    @Child(name = "ingredient", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
803    @Description(shortDefinition="Active or inactive ingredient", formalDefinition="Identifies a particular constituent of interest in the product." )
804    protected List<MedicationIngredientComponent> ingredient;
805
806    /**
807     * Information that only applies to packages (not products).
808     */
809    @Child(name = "batch", type = {}, order=7, min=0, max=1, modifier=false, summary=false)
810    @Description(shortDefinition="Details about packaged medications", formalDefinition="Information that only applies to packages (not products)." )
811    protected MedicationBatchComponent batch;
812
813    /**
814     * A reference to a knowledge resource that provides more information about this medication.
815     */
816    @Child(name = "definition", type = {MedicationKnowledge.class}, order=8, min=0, max=1, modifier=false, summary=false)
817    @Description(shortDefinition="Knowledge about this medication", formalDefinition="A reference to a knowledge resource that provides more information about this medication." )
818    protected Reference definition;
819
820    private static final long serialVersionUID = 603813239L;
821
822  /**
823   * Constructor
824   */
825    public Medication() {
826      super();
827    }
828
829    /**
830     * @return {@link #identifier} (Business identifier for this medication.)
831     */
832    public List<Identifier> getIdentifier() { 
833      if (this.identifier == null)
834        this.identifier = new ArrayList<Identifier>();
835      return this.identifier;
836    }
837
838    /**
839     * @return Returns a reference to <code>this</code> for easy method chaining
840     */
841    public Medication setIdentifier(List<Identifier> theIdentifier) { 
842      this.identifier = theIdentifier;
843      return this;
844    }
845
846    public boolean hasIdentifier() { 
847      if (this.identifier == null)
848        return false;
849      for (Identifier item : this.identifier)
850        if (!item.isEmpty())
851          return true;
852      return false;
853    }
854
855    public Identifier addIdentifier() { //3
856      Identifier t = new Identifier();
857      if (this.identifier == null)
858        this.identifier = new ArrayList<Identifier>();
859      this.identifier.add(t);
860      return t;
861    }
862
863    public Medication addIdentifier(Identifier t) { //3
864      if (t == null)
865        return this;
866      if (this.identifier == null)
867        this.identifier = new ArrayList<Identifier>();
868      this.identifier.add(t);
869      return this;
870    }
871
872    /**
873     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
874     */
875    public Identifier getIdentifierFirstRep() { 
876      if (getIdentifier().isEmpty()) {
877        addIdentifier();
878      }
879      return getIdentifier().get(0);
880    }
881
882    /**
883     * @return {@link #code} (A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.)
884     */
885    public CodeableConcept getCode() { 
886      if (this.code == null)
887        if (Configuration.errorOnAutoCreate())
888          throw new Error("Attempt to auto-create Medication.code");
889        else if (Configuration.doAutoCreate())
890          this.code = new CodeableConcept(); // cc
891      return this.code;
892    }
893
894    public boolean hasCode() { 
895      return this.code != null && !this.code.isEmpty();
896    }
897
898    /**
899     * @param value {@link #code} (A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.)
900     */
901    public Medication setCode(CodeableConcept value) { 
902      this.code = value;
903      return this;
904    }
905
906    /**
907     * @return {@link #status} (A code to indicate if the medication is in active use.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
908     */
909    public Enumeration<MedicationStatusCodes> getStatusElement() { 
910      if (this.status == null)
911        if (Configuration.errorOnAutoCreate())
912          throw new Error("Attempt to auto-create Medication.status");
913        else if (Configuration.doAutoCreate())
914          this.status = new Enumeration<MedicationStatusCodes>(new MedicationStatusCodesEnumFactory()); // bb
915      return this.status;
916    }
917
918    public boolean hasStatusElement() { 
919      return this.status != null && !this.status.isEmpty();
920    }
921
922    public boolean hasStatus() { 
923      return this.status != null && !this.status.isEmpty();
924    }
925
926    /**
927     * @param value {@link #status} (A code to indicate if the medication is in active use.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
928     */
929    public Medication setStatusElement(Enumeration<MedicationStatusCodes> value) { 
930      this.status = value;
931      return this;
932    }
933
934    /**
935     * @return A code to indicate if the medication is in active use.
936     */
937    public MedicationStatusCodes getStatus() { 
938      return this.status == null ? null : this.status.getValue();
939    }
940
941    /**
942     * @param value A code to indicate if the medication is in active use.
943     */
944    public Medication setStatus(MedicationStatusCodes value) { 
945      if (value == null)
946        this.status = null;
947      else {
948        if (this.status == null)
949          this.status = new Enumeration<MedicationStatusCodes>(new MedicationStatusCodesEnumFactory());
950        this.status.setValue(value);
951      }
952      return this;
953    }
954
955    /**
956     * @return {@link #marketingAuthorizationHolder} (The company or other legal entity that has authorization, from the appropriate drug regulatory authority,  to market a medicine in one or more jurisdictions.  Typically abbreviated MAH.Note:  The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).)
957     */
958    public Reference getMarketingAuthorizationHolder() { 
959      if (this.marketingAuthorizationHolder == null)
960        if (Configuration.errorOnAutoCreate())
961          throw new Error("Attempt to auto-create Medication.marketingAuthorizationHolder");
962        else if (Configuration.doAutoCreate())
963          this.marketingAuthorizationHolder = new Reference(); // cc
964      return this.marketingAuthorizationHolder;
965    }
966
967    public boolean hasMarketingAuthorizationHolder() { 
968      return this.marketingAuthorizationHolder != null && !this.marketingAuthorizationHolder.isEmpty();
969    }
970
971    /**
972     * @param value {@link #marketingAuthorizationHolder} (The company or other legal entity that has authorization, from the appropriate drug regulatory authority,  to market a medicine in one or more jurisdictions.  Typically abbreviated MAH.Note:  The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).)
973     */
974    public Medication setMarketingAuthorizationHolder(Reference value) { 
975      this.marketingAuthorizationHolder = value;
976      return this;
977    }
978
979    /**
980     * @return {@link #doseForm} (Describes the form of the item.  Powder; tablets; capsule.)
981     */
982    public CodeableConcept getDoseForm() { 
983      if (this.doseForm == null)
984        if (Configuration.errorOnAutoCreate())
985          throw new Error("Attempt to auto-create Medication.doseForm");
986        else if (Configuration.doAutoCreate())
987          this.doseForm = new CodeableConcept(); // cc
988      return this.doseForm;
989    }
990
991    public boolean hasDoseForm() { 
992      return this.doseForm != null && !this.doseForm.isEmpty();
993    }
994
995    /**
996     * @param value {@link #doseForm} (Describes the form of the item.  Powder; tablets; capsule.)
997     */
998    public Medication setDoseForm(CodeableConcept value) { 
999      this.doseForm = value;
1000      return this;
1001    }
1002
1003    /**
1004     * @return {@link #totalVolume} (When the specified product code does not infer a package size, this is the specific amount of drug in the product.  For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).)
1005     */
1006    public Quantity getTotalVolume() { 
1007      if (this.totalVolume == null)
1008        if (Configuration.errorOnAutoCreate())
1009          throw new Error("Attempt to auto-create Medication.totalVolume");
1010        else if (Configuration.doAutoCreate())
1011          this.totalVolume = new Quantity(); // cc
1012      return this.totalVolume;
1013    }
1014
1015    public boolean hasTotalVolume() { 
1016      return this.totalVolume != null && !this.totalVolume.isEmpty();
1017    }
1018
1019    /**
1020     * @param value {@link #totalVolume} (When the specified product code does not infer a package size, this is the specific amount of drug in the product.  For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).)
1021     */
1022    public Medication setTotalVolume(Quantity value) { 
1023      this.totalVolume = value;
1024      return this;
1025    }
1026
1027    /**
1028     * @return {@link #ingredient} (Identifies a particular constituent of interest in the product.)
1029     */
1030    public List<MedicationIngredientComponent> getIngredient() { 
1031      if (this.ingredient == null)
1032        this.ingredient = new ArrayList<MedicationIngredientComponent>();
1033      return this.ingredient;
1034    }
1035
1036    /**
1037     * @return Returns a reference to <code>this</code> for easy method chaining
1038     */
1039    public Medication setIngredient(List<MedicationIngredientComponent> theIngredient) { 
1040      this.ingredient = theIngredient;
1041      return this;
1042    }
1043
1044    public boolean hasIngredient() { 
1045      if (this.ingredient == null)
1046        return false;
1047      for (MedicationIngredientComponent item : this.ingredient)
1048        if (!item.isEmpty())
1049          return true;
1050      return false;
1051    }
1052
1053    public MedicationIngredientComponent addIngredient() { //3
1054      MedicationIngredientComponent t = new MedicationIngredientComponent();
1055      if (this.ingredient == null)
1056        this.ingredient = new ArrayList<MedicationIngredientComponent>();
1057      this.ingredient.add(t);
1058      return t;
1059    }
1060
1061    public Medication addIngredient(MedicationIngredientComponent t) { //3
1062      if (t == null)
1063        return this;
1064      if (this.ingredient == null)
1065        this.ingredient = new ArrayList<MedicationIngredientComponent>();
1066      this.ingredient.add(t);
1067      return this;
1068    }
1069
1070    /**
1071     * @return The first repetition of repeating field {@link #ingredient}, creating it if it does not already exist {3}
1072     */
1073    public MedicationIngredientComponent getIngredientFirstRep() { 
1074      if (getIngredient().isEmpty()) {
1075        addIngredient();
1076      }
1077      return getIngredient().get(0);
1078    }
1079
1080    /**
1081     * @return {@link #batch} (Information that only applies to packages (not products).)
1082     */
1083    public MedicationBatchComponent getBatch() { 
1084      if (this.batch == null)
1085        if (Configuration.errorOnAutoCreate())
1086          throw new Error("Attempt to auto-create Medication.batch");
1087        else if (Configuration.doAutoCreate())
1088          this.batch = new MedicationBatchComponent(); // cc
1089      return this.batch;
1090    }
1091
1092    public boolean hasBatch() { 
1093      return this.batch != null && !this.batch.isEmpty();
1094    }
1095
1096    /**
1097     * @param value {@link #batch} (Information that only applies to packages (not products).)
1098     */
1099    public Medication setBatch(MedicationBatchComponent value) { 
1100      this.batch = value;
1101      return this;
1102    }
1103
1104    /**
1105     * @return {@link #definition} (A reference to a knowledge resource that provides more information about this medication.)
1106     */
1107    public Reference getDefinition() { 
1108      if (this.definition == null)
1109        if (Configuration.errorOnAutoCreate())
1110          throw new Error("Attempt to auto-create Medication.definition");
1111        else if (Configuration.doAutoCreate())
1112          this.definition = new Reference(); // cc
1113      return this.definition;
1114    }
1115
1116    public boolean hasDefinition() { 
1117      return this.definition != null && !this.definition.isEmpty();
1118    }
1119
1120    /**
1121     * @param value {@link #definition} (A reference to a knowledge resource that provides more information about this medication.)
1122     */
1123    public Medication setDefinition(Reference value) { 
1124      this.definition = value;
1125      return this;
1126    }
1127
1128      protected void listChildren(List<Property> children) {
1129        super.listChildren(children);
1130        children.add(new Property("identifier", "Identifier", "Business identifier for this medication.", 0, java.lang.Integer.MAX_VALUE, identifier));
1131        children.add(new Property("code", "CodeableConcept", "A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.", 0, 1, code));
1132        children.add(new Property("status", "code", "A code to indicate if the medication is in active use.", 0, 1, status));
1133        children.add(new Property("marketingAuthorizationHolder", "Reference(Organization)", "The company or other legal entity that has authorization, from the appropriate drug regulatory authority,  to market a medicine in one or more jurisdictions.  Typically abbreviated MAH.Note:  The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).", 0, 1, marketingAuthorizationHolder));
1134        children.add(new Property("doseForm", "CodeableConcept", "Describes the form of the item.  Powder; tablets; capsule.", 0, 1, doseForm));
1135        children.add(new Property("totalVolume", "Quantity", "When the specified product code does not infer a package size, this is the specific amount of drug in the product.  For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).", 0, 1, totalVolume));
1136        children.add(new Property("ingredient", "", "Identifies a particular constituent of interest in the product.", 0, java.lang.Integer.MAX_VALUE, ingredient));
1137        children.add(new Property("batch", "", "Information that only applies to packages (not products).", 0, 1, batch));
1138        children.add(new Property("definition", "Reference(MedicationKnowledge)", "A reference to a knowledge resource that provides more information about this medication.", 0, 1, definition));
1139      }
1140
1141      @Override
1142      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1143        switch (_hash) {
1144        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifier for this medication.", 0, java.lang.Integer.MAX_VALUE, identifier);
1145        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.", 0, 1, code);
1146        case -892481550: /*status*/  return new Property("status", "code", "A code to indicate if the medication is in active use.", 0, 1, status);
1147        case -1565971585: /*marketingAuthorizationHolder*/  return new Property("marketingAuthorizationHolder", "Reference(Organization)", "The company or other legal entity that has authorization, from the appropriate drug regulatory authority,  to market a medicine in one or more jurisdictions.  Typically abbreviated MAH.Note:  The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).", 0, 1, marketingAuthorizationHolder);
1148        case 1303858817: /*doseForm*/  return new Property("doseForm", "CodeableConcept", "Describes the form of the item.  Powder; tablets; capsule.", 0, 1, doseForm);
1149        case -654431362: /*totalVolume*/  return new Property("totalVolume", "Quantity", "When the specified product code does not infer a package size, this is the specific amount of drug in the product.  For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).", 0, 1, totalVolume);
1150        case -206409263: /*ingredient*/  return new Property("ingredient", "", "Identifies a particular constituent of interest in the product.", 0, java.lang.Integer.MAX_VALUE, ingredient);
1151        case 93509434: /*batch*/  return new Property("batch", "", "Information that only applies to packages (not products).", 0, 1, batch);
1152        case -1014418093: /*definition*/  return new Property("definition", "Reference(MedicationKnowledge)", "A reference to a knowledge resource that provides more information about this medication.", 0, 1, definition);
1153        default: return super.getNamedProperty(_hash, _name, _checkValid);
1154        }
1155
1156      }
1157
1158      @Override
1159      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1160        switch (hash) {
1161        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1162        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1163        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<MedicationStatusCodes>
1164        case -1565971585: /*marketingAuthorizationHolder*/ return this.marketingAuthorizationHolder == null ? new Base[0] : new Base[] {this.marketingAuthorizationHolder}; // Reference
1165        case 1303858817: /*doseForm*/ return this.doseForm == null ? new Base[0] : new Base[] {this.doseForm}; // CodeableConcept
1166        case -654431362: /*totalVolume*/ return this.totalVolume == null ? new Base[0] : new Base[] {this.totalVolume}; // Quantity
1167        case -206409263: /*ingredient*/ return this.ingredient == null ? new Base[0] : this.ingredient.toArray(new Base[this.ingredient.size()]); // MedicationIngredientComponent
1168        case 93509434: /*batch*/ return this.batch == null ? new Base[0] : new Base[] {this.batch}; // MedicationBatchComponent
1169        case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // Reference
1170        default: return super.getProperty(hash, name, checkValid);
1171        }
1172
1173      }
1174
1175      @Override
1176      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1177        switch (hash) {
1178        case -1618432855: // identifier
1179          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1180          return value;
1181        case 3059181: // code
1182          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1183          return value;
1184        case -892481550: // status
1185          value = new MedicationStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value));
1186          this.status = (Enumeration) value; // Enumeration<MedicationStatusCodes>
1187          return value;
1188        case -1565971585: // marketingAuthorizationHolder
1189          this.marketingAuthorizationHolder = TypeConvertor.castToReference(value); // Reference
1190          return value;
1191        case 1303858817: // doseForm
1192          this.doseForm = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1193          return value;
1194        case -654431362: // totalVolume
1195          this.totalVolume = TypeConvertor.castToQuantity(value); // Quantity
1196          return value;
1197        case -206409263: // ingredient
1198          this.getIngredient().add((MedicationIngredientComponent) value); // MedicationIngredientComponent
1199          return value;
1200        case 93509434: // batch
1201          this.batch = (MedicationBatchComponent) value; // MedicationBatchComponent
1202          return value;
1203        case -1014418093: // definition
1204          this.definition = TypeConvertor.castToReference(value); // Reference
1205          return value;
1206        default: return super.setProperty(hash, name, value);
1207        }
1208
1209      }
1210
1211      @Override
1212      public Base setProperty(String name, Base value) throws FHIRException {
1213        if (name.equals("identifier")) {
1214          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1215        } else if (name.equals("code")) {
1216          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1217        } else if (name.equals("status")) {
1218          value = new MedicationStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value));
1219          this.status = (Enumeration) value; // Enumeration<MedicationStatusCodes>
1220        } else if (name.equals("marketingAuthorizationHolder")) {
1221          this.marketingAuthorizationHolder = TypeConvertor.castToReference(value); // Reference
1222        } else if (name.equals("doseForm")) {
1223          this.doseForm = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1224        } else if (name.equals("totalVolume")) {
1225          this.totalVolume = TypeConvertor.castToQuantity(value); // Quantity
1226        } else if (name.equals("ingredient")) {
1227          this.getIngredient().add((MedicationIngredientComponent) value);
1228        } else if (name.equals("batch")) {
1229          this.batch = (MedicationBatchComponent) value; // MedicationBatchComponent
1230        } else if (name.equals("definition")) {
1231          this.definition = TypeConvertor.castToReference(value); // Reference
1232        } else
1233          return super.setProperty(name, value);
1234        return value;
1235      }
1236
1237      @Override
1238      public Base makeProperty(int hash, String name) throws FHIRException {
1239        switch (hash) {
1240        case -1618432855:  return addIdentifier(); 
1241        case 3059181:  return getCode();
1242        case -892481550:  return getStatusElement();
1243        case -1565971585:  return getMarketingAuthorizationHolder();
1244        case 1303858817:  return getDoseForm();
1245        case -654431362:  return getTotalVolume();
1246        case -206409263:  return addIngredient(); 
1247        case 93509434:  return getBatch();
1248        case -1014418093:  return getDefinition();
1249        default: return super.makeProperty(hash, name);
1250        }
1251
1252      }
1253
1254      @Override
1255      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1256        switch (hash) {
1257        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1258        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1259        case -892481550: /*status*/ return new String[] {"code"};
1260        case -1565971585: /*marketingAuthorizationHolder*/ return new String[] {"Reference"};
1261        case 1303858817: /*doseForm*/ return new String[] {"CodeableConcept"};
1262        case -654431362: /*totalVolume*/ return new String[] {"Quantity"};
1263        case -206409263: /*ingredient*/ return new String[] {};
1264        case 93509434: /*batch*/ return new String[] {};
1265        case -1014418093: /*definition*/ return new String[] {"Reference"};
1266        default: return super.getTypesForProperty(hash, name);
1267        }
1268
1269      }
1270
1271      @Override
1272      public Base addChild(String name) throws FHIRException {
1273        if (name.equals("identifier")) {
1274          return addIdentifier();
1275        }
1276        else if (name.equals("code")) {
1277          this.code = new CodeableConcept();
1278          return this.code;
1279        }
1280        else if (name.equals("status")) {
1281          throw new FHIRException("Cannot call addChild on a singleton property Medication.status");
1282        }
1283        else if (name.equals("marketingAuthorizationHolder")) {
1284          this.marketingAuthorizationHolder = new Reference();
1285          return this.marketingAuthorizationHolder;
1286        }
1287        else if (name.equals("doseForm")) {
1288          this.doseForm = new CodeableConcept();
1289          return this.doseForm;
1290        }
1291        else if (name.equals("totalVolume")) {
1292          this.totalVolume = new Quantity();
1293          return this.totalVolume;
1294        }
1295        else if (name.equals("ingredient")) {
1296          return addIngredient();
1297        }
1298        else if (name.equals("batch")) {
1299          this.batch = new MedicationBatchComponent();
1300          return this.batch;
1301        }
1302        else if (name.equals("definition")) {
1303          this.definition = new Reference();
1304          return this.definition;
1305        }
1306        else
1307          return super.addChild(name);
1308      }
1309
1310  public String fhirType() {
1311    return "Medication";
1312
1313  }
1314
1315      public Medication copy() {
1316        Medication dst = new Medication();
1317        copyValues(dst);
1318        return dst;
1319      }
1320
1321      public void copyValues(Medication dst) {
1322        super.copyValues(dst);
1323        if (identifier != null) {
1324          dst.identifier = new ArrayList<Identifier>();
1325          for (Identifier i : identifier)
1326            dst.identifier.add(i.copy());
1327        };
1328        dst.code = code == null ? null : code.copy();
1329        dst.status = status == null ? null : status.copy();
1330        dst.marketingAuthorizationHolder = marketingAuthorizationHolder == null ? null : marketingAuthorizationHolder.copy();
1331        dst.doseForm = doseForm == null ? null : doseForm.copy();
1332        dst.totalVolume = totalVolume == null ? null : totalVolume.copy();
1333        if (ingredient != null) {
1334          dst.ingredient = new ArrayList<MedicationIngredientComponent>();
1335          for (MedicationIngredientComponent i : ingredient)
1336            dst.ingredient.add(i.copy());
1337        };
1338        dst.batch = batch == null ? null : batch.copy();
1339        dst.definition = definition == null ? null : definition.copy();
1340      }
1341
1342      protected Medication typedCopy() {
1343        return copy();
1344      }
1345
1346      @Override
1347      public boolean equalsDeep(Base other_) {
1348        if (!super.equalsDeep(other_))
1349          return false;
1350        if (!(other_ instanceof Medication))
1351          return false;
1352        Medication o = (Medication) other_;
1353        return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(status, o.status, true)
1354           && compareDeep(marketingAuthorizationHolder, o.marketingAuthorizationHolder, true) && compareDeep(doseForm, o.doseForm, true)
1355           && compareDeep(totalVolume, o.totalVolume, true) && compareDeep(ingredient, o.ingredient, true)
1356           && compareDeep(batch, o.batch, true) && compareDeep(definition, o.definition, true);
1357      }
1358
1359      @Override
1360      public boolean equalsShallow(Base other_) {
1361        if (!super.equalsShallow(other_))
1362          return false;
1363        if (!(other_ instanceof Medication))
1364          return false;
1365        Medication o = (Medication) other_;
1366        return compareValues(status, o.status, true);
1367      }
1368
1369      public boolean isEmpty() {
1370        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, code, status
1371          , marketingAuthorizationHolder, doseForm, totalVolume, ingredient, batch, definition
1372          );
1373      }
1374
1375  @Override
1376  public ResourceType getResourceType() {
1377    return ResourceType.Medication;
1378   }
1379
1380 /**
1381   * Search parameter: <b>expiration-date</b>
1382   * <p>
1383   * Description: <b>Returns medications in a batch with this expiration date</b><br>
1384   * Type: <b>date</b><br>
1385   * Path: <b>Medication.batch.expirationDate</b><br>
1386   * </p>
1387   */
1388  @SearchParamDefinition(name="expiration-date", path="Medication.batch.expirationDate", description="Returns medications in a batch with this expiration date", type="date" )
1389  public static final String SP_EXPIRATION_DATE = "expiration-date";
1390 /**
1391   * <b>Fluent Client</b> search parameter constant for <b>expiration-date</b>
1392   * <p>
1393   * Description: <b>Returns medications in a batch with this expiration date</b><br>
1394   * Type: <b>date</b><br>
1395   * Path: <b>Medication.batch.expirationDate</b><br>
1396   * </p>
1397   */
1398  public static final ca.uhn.fhir.rest.gclient.DateClientParam EXPIRATION_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EXPIRATION_DATE);
1399
1400 /**
1401   * Search parameter: <b>form</b>
1402   * <p>
1403   * Description: <b>Returns medications for a specific dose form</b><br>
1404   * Type: <b>token</b><br>
1405   * Path: <b>null</b><br>
1406   * </p>
1407   */
1408  @SearchParamDefinition(name="form", path="", description="Returns medications for a specific dose form", type="token" )
1409  public static final String SP_FORM = "form";
1410 /**
1411   * <b>Fluent Client</b> search parameter constant for <b>form</b>
1412   * <p>
1413   * Description: <b>Returns medications for a specific dose form</b><br>
1414   * Type: <b>token</b><br>
1415   * Path: <b>null</b><br>
1416   * </p>
1417   */
1418  public static final ca.uhn.fhir.rest.gclient.TokenClientParam FORM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_FORM);
1419
1420 /**
1421   * Search parameter: <b>ingredient-code</b>
1422   * <p>
1423   * Description: <b>Returns medications for this ingredient code</b><br>
1424   * Type: <b>token</b><br>
1425   * Path: <b>Medication.ingredient.item.concept</b><br>
1426   * </p>
1427   */
1428  @SearchParamDefinition(name="ingredient-code", path="Medication.ingredient.item.concept", description="Returns medications for this ingredient code", type="token" )
1429  public static final String SP_INGREDIENT_CODE = "ingredient-code";
1430 /**
1431   * <b>Fluent Client</b> search parameter constant for <b>ingredient-code</b>
1432   * <p>
1433   * Description: <b>Returns medications for this ingredient code</b><br>
1434   * Type: <b>token</b><br>
1435   * Path: <b>Medication.ingredient.item.concept</b><br>
1436   * </p>
1437   */
1438  public static final ca.uhn.fhir.rest.gclient.TokenClientParam INGREDIENT_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_INGREDIENT_CODE);
1439
1440 /**
1441   * Search parameter: <b>ingredient</b>
1442   * <p>
1443   * Description: <b>Returns medications for this ingredient reference</b><br>
1444   * Type: <b>reference</b><br>
1445   * Path: <b>Medication.ingredient.item.reference</b><br>
1446   * </p>
1447   */
1448  @SearchParamDefinition(name="ingredient", path="Medication.ingredient.item.reference", description="Returns medications for this ingredient reference", type="reference", target={Medication.class, Substance.class } )
1449  public static final String SP_INGREDIENT = "ingredient";
1450 /**
1451   * <b>Fluent Client</b> search parameter constant for <b>ingredient</b>
1452   * <p>
1453   * Description: <b>Returns medications for this ingredient reference</b><br>
1454   * Type: <b>reference</b><br>
1455   * Path: <b>Medication.ingredient.item.reference</b><br>
1456   * </p>
1457   */
1458  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INGREDIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INGREDIENT);
1459
1460/**
1461   * Constant for fluent queries to be used to add include statements. Specifies
1462   * the path value of "<b>Medication:ingredient</b>".
1463   */
1464  public static final ca.uhn.fhir.model.api.Include INCLUDE_INGREDIENT = new ca.uhn.fhir.model.api.Include("Medication:ingredient").toLocked();
1465
1466 /**
1467   * Search parameter: <b>lot-number</b>
1468   * <p>
1469   * Description: <b>Returns medications in a batch with this lot number</b><br>
1470   * Type: <b>token</b><br>
1471   * Path: <b>Medication.batch.lotNumber</b><br>
1472   * </p>
1473   */
1474  @SearchParamDefinition(name="lot-number", path="Medication.batch.lotNumber", description="Returns medications in a batch with this lot number", type="token" )
1475  public static final String SP_LOT_NUMBER = "lot-number";
1476 /**
1477   * <b>Fluent Client</b> search parameter constant for <b>lot-number</b>
1478   * <p>
1479   * Description: <b>Returns medications in a batch with this lot number</b><br>
1480   * Type: <b>token</b><br>
1481   * Path: <b>Medication.batch.lotNumber</b><br>
1482   * </p>
1483   */
1484  public static final ca.uhn.fhir.rest.gclient.TokenClientParam LOT_NUMBER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_LOT_NUMBER);
1485
1486 /**
1487   * Search parameter: <b>marketingauthorizationholder</b>
1488   * <p>
1489   * Description: <b>Returns medications made or sold for this marketing authorization holder</b><br>
1490   * Type: <b>reference</b><br>
1491   * Path: <b>Medication.marketingAuthorizationHolder</b><br>
1492   * </p>
1493   */
1494  @SearchParamDefinition(name="marketingauthorizationholder", path="Medication.marketingAuthorizationHolder", description="Returns medications made or sold for this marketing authorization holder", type="reference", target={Organization.class } )
1495  public static final String SP_MARKETINGAUTHORIZATIONHOLDER = "marketingauthorizationholder";
1496 /**
1497   * <b>Fluent Client</b> search parameter constant for <b>marketingauthorizationholder</b>
1498   * <p>
1499   * Description: <b>Returns medications made or sold for this marketing authorization holder</b><br>
1500   * Type: <b>reference</b><br>
1501   * Path: <b>Medication.marketingAuthorizationHolder</b><br>
1502   * </p>
1503   */
1504  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MARKETINGAUTHORIZATIONHOLDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MARKETINGAUTHORIZATIONHOLDER);
1505
1506/**
1507   * Constant for fluent queries to be used to add include statements. Specifies
1508   * the path value of "<b>Medication:marketingauthorizationholder</b>".
1509   */
1510  public static final ca.uhn.fhir.model.api.Include INCLUDE_MARKETINGAUTHORIZATIONHOLDER = new ca.uhn.fhir.model.api.Include("Medication:marketingauthorizationholder").toLocked();
1511
1512 /**
1513   * Search parameter: <b>serial-number</b>
1514   * <p>
1515   * Description: <b>Returns medications in a batch with this lot number</b><br>
1516   * Type: <b>token</b><br>
1517   * Path: <b>Medication.identifier</b><br>
1518   * </p>
1519   */
1520  @SearchParamDefinition(name="serial-number", path="Medication.identifier", description="Returns medications in a batch with this lot number", type="token" )
1521  public static final String SP_SERIAL_NUMBER = "serial-number";
1522 /**
1523   * <b>Fluent Client</b> search parameter constant for <b>serial-number</b>
1524   * <p>
1525   * Description: <b>Returns medications in a batch with this lot number</b><br>
1526   * Type: <b>token</b><br>
1527   * Path: <b>Medication.identifier</b><br>
1528   * </p>
1529   */
1530  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERIAL_NUMBER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERIAL_NUMBER);
1531
1532 /**
1533   * Search parameter: <b>status</b>
1534   * <p>
1535   * Description: <b>Returns medications for this status</b><br>
1536   * Type: <b>token</b><br>
1537   * Path: <b>Medication.status</b><br>
1538   * </p>
1539   */
1540  @SearchParamDefinition(name="status", path="Medication.status", description="Returns medications for this status", type="token" )
1541  public static final String SP_STATUS = "status";
1542 /**
1543   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1544   * <p>
1545   * Description: <b>Returns medications for this status</b><br>
1546   * Type: <b>token</b><br>
1547   * Path: <b>Medication.status</b><br>
1548   * </p>
1549   */
1550  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1551
1552 /**
1553   * Search parameter: <b>code</b>
1554   * <p>
1555   * Description: <b>Multiple Resources: 
1556
1557* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
1558* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
1559* [AuditEvent](auditevent.html): More specific code for the event
1560* [Basic](basic.html): Kind of Resource
1561* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
1562* [Condition](condition.html): Code for the condition
1563* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
1564* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
1565* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
1566* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
1567* [ImagingSelection](imagingselection.html): The imaging selection status
1568* [List](list.html): What the purpose of this list is
1569* [Medication](medication.html): Returns medications for a specific code
1570* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
1571* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
1572* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
1573* [MedicationStatement](medicationstatement.html): Return statements of this medication code
1574* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
1575* [Observation](observation.html): The code of the observation type
1576* [Procedure](procedure.html): A code to identify a  procedure
1577* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
1578* [Task](task.html): Search by task code
1579</b><br>
1580   * Type: <b>token</b><br>
1581   * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br>
1582   * </p>
1583   */
1584  @SearchParamDefinition(name="code", path="AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted\r\n* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance\r\n* [AuditEvent](auditevent.html): More specific code for the event\r\n* [Basic](basic.html): Kind of Resource\r\n* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code\r\n* [Condition](condition.html): Code for the condition\r\n* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.\r\n* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered\r\n* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code\r\n* [ImagingSelection](imagingselection.html): The imaging selection status\r\n* [List](list.html): What the purpose of this list is\r\n* [Medication](medication.html): Returns medications for a specific code\r\n* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code\r\n* [MedicationStatement](medicationstatement.html): Return statements of this medication code\r\n* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake\r\n* [Observation](observation.html): The code of the observation type\r\n* [Procedure](procedure.html): A code to identify a  procedure\r\n* [RequestOrchestration](requestorchestration.html): The code of the request orchestration\r\n* [Task](task.html): Search by task code\r\n", type="token" )
1585  public static final String SP_CODE = "code";
1586 /**
1587   * <b>Fluent Client</b> search parameter constant for <b>code</b>
1588   * <p>
1589   * Description: <b>Multiple Resources: 
1590
1591* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
1592* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
1593* [AuditEvent](auditevent.html): More specific code for the event
1594* [Basic](basic.html): Kind of Resource
1595* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
1596* [Condition](condition.html): Code for the condition
1597* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
1598* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
1599* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
1600* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
1601* [ImagingSelection](imagingselection.html): The imaging selection status
1602* [List](list.html): What the purpose of this list is
1603* [Medication](medication.html): Returns medications for a specific code
1604* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
1605* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
1606* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
1607* [MedicationStatement](medicationstatement.html): Return statements of this medication code
1608* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
1609* [Observation](observation.html): The code of the observation type
1610* [Procedure](procedure.html): A code to identify a  procedure
1611* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
1612* [Task](task.html): Search by task code
1613</b><br>
1614   * Type: <b>token</b><br>
1615   * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br>
1616   * </p>
1617   */
1618  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
1619
1620 /**
1621   * Search parameter: <b>identifier</b>
1622   * <p>
1623   * Description: <b>Multiple Resources: 
1624
1625* [Account](account.html): Account number
1626* [AdverseEvent](adverseevent.html): Business identifier for the event
1627* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1628* [Appointment](appointment.html): An Identifier of the Appointment
1629* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1630* [Basic](basic.html): Business identifier
1631* [BodyStructure](bodystructure.html): Bodystructure identifier
1632* [CarePlan](careplan.html): External Ids for this plan
1633* [CareTeam](careteam.html): External Ids for this team
1634* [ChargeItem](chargeitem.html): Business Identifier for item
1635* [Claim](claim.html): The primary identifier of the financial resource
1636* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1637* [ClinicalImpression](clinicalimpression.html): Business identifier
1638* [Communication](communication.html): Unique identifier
1639* [CommunicationRequest](communicationrequest.html): Unique identifier
1640* [Composition](composition.html): Version-independent identifier for the Composition
1641* [Condition](condition.html): A unique identifier of the condition record
1642* [Consent](consent.html): Identifier for this record (external references)
1643* [Contract](contract.html): The identity of the contract
1644* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1645* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1646* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1647* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1648* [DeviceRequest](devicerequest.html): Business identifier for request/order
1649* [DeviceUsage](deviceusage.html): Search by identifier
1650* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1651* [DocumentReference](documentreference.html): Identifier of the attachment binary
1652* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1653* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1654* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1655* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1656* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1657* [Flag](flag.html): Business identifier
1658* [Goal](goal.html): External Ids for this goal
1659* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1660* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1661* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1662* [Immunization](immunization.html): Business identifier
1663* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1664* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1665* [Invoice](invoice.html): Business Identifier for item
1666* [List](list.html): Business identifier
1667* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1668* [Medication](medication.html): Returns medications with this external identifier
1669* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1670* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1671* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1672* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1673* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1674* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1675* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1676* [Observation](observation.html): The unique id for a particular observation
1677* [Person](person.html): A person Identifier
1678* [Procedure](procedure.html): A unique identifier for a procedure
1679* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1680* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1681* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1682* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1683* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1684* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1685* [Specimen](specimen.html): The unique identifier associated with the specimen
1686* [SupplyDelivery](supplydelivery.html): External identifier
1687* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1688* [Task](task.html): Search for a task instance by its business identifier
1689* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1690</b><br>
1691   * Type: <b>token</b><br>
1692   * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br>
1693   * </p>
1694   */
1695  @SearchParamDefinition(name="identifier", path="Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [Account](account.html): Account number\r\n* [AdverseEvent](adverseevent.html): Business identifier for the event\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [Appointment](appointment.html): An Identifier of the Appointment\r\n* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response\r\n* [Basic](basic.html): Business identifier\r\n* [BodyStructure](bodystructure.html): Bodystructure identifier\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [ChargeItem](chargeitem.html): Business Identifier for item\r\n* [Claim](claim.html): The primary identifier of the financial resource\r\n* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse\r\n* [ClinicalImpression](clinicalimpression.html): Business identifier\r\n* [Communication](communication.html): Unique identifier\r\n* [CommunicationRequest](communicationrequest.html): Unique identifier\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [Contract](contract.html): The identity of the contract\r\n* [Coverage](coverage.html): The primary identifier of the insured and the coverage\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DeviceUsage](deviceusage.html): Search by identifier\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Flag](flag.html): Business identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response\r\n* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier\r\n* [Invoice](invoice.html): Business Identifier for item\r\n* [List](list.html): Business identifier\r\n* [MeasureReport](measurereport.html): External identifier of the measure report to be returned\r\n* [Medication](medication.html): Returns medications with this external identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationStatement](medicationstatement.html): Return statements with this external identifier\r\n* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence\r\n* [NutritionIntake](nutritionintake.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Person](person.html): A person Identifier\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response\r\n* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson\r\n* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration\r\n* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [Specimen](specimen.html): The unique identifier associated with the specimen\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [Task](task.html): Search for a task instance by its business identifier\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" )
1696  public static final String SP_IDENTIFIER = "identifier";
1697 /**
1698   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1699   * <p>
1700   * Description: <b>Multiple Resources: 
1701
1702* [Account](account.html): Account number
1703* [AdverseEvent](adverseevent.html): Business identifier for the event
1704* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1705* [Appointment](appointment.html): An Identifier of the Appointment
1706* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1707* [Basic](basic.html): Business identifier
1708* [BodyStructure](bodystructure.html): Bodystructure identifier
1709* [CarePlan](careplan.html): External Ids for this plan
1710* [CareTeam](careteam.html): External Ids for this team
1711* [ChargeItem](chargeitem.html): Business Identifier for item
1712* [Claim](claim.html): The primary identifier of the financial resource
1713* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1714* [ClinicalImpression](clinicalimpression.html): Business identifier
1715* [Communication](communication.html): Unique identifier
1716* [CommunicationRequest](communicationrequest.html): Unique identifier
1717* [Composition](composition.html): Version-independent identifier for the Composition
1718* [Condition](condition.html): A unique identifier of the condition record
1719* [Consent](consent.html): Identifier for this record (external references)
1720* [Contract](contract.html): The identity of the contract
1721* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1722* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1723* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1724* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1725* [DeviceRequest](devicerequest.html): Business identifier for request/order
1726* [DeviceUsage](deviceusage.html): Search by identifier
1727* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1728* [DocumentReference](documentreference.html): Identifier of the attachment binary
1729* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1730* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1731* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1732* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1733* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1734* [Flag](flag.html): Business identifier
1735* [Goal](goal.html): External Ids for this goal
1736* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1737* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1738* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1739* [Immunization](immunization.html): Business identifier
1740* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1741* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1742* [Invoice](invoice.html): Business Identifier for item
1743* [List](list.html): Business identifier
1744* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1745* [Medication](medication.html): Returns medications with this external identifier
1746* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1747* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1748* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1749* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1750* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1751* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1752* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1753* [Observation](observation.html): The unique id for a particular observation
1754* [Person](person.html): A person Identifier
1755* [Procedure](procedure.html): A unique identifier for a procedure
1756* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1757* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1758* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1759* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1760* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1761* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1762* [Specimen](specimen.html): The unique identifier associated with the specimen
1763* [SupplyDelivery](supplydelivery.html): External identifier
1764* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1765* [Task](task.html): Search for a task instance by its business identifier
1766* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1767</b><br>
1768   * Type: <b>token</b><br>
1769   * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br>
1770   * </p>
1771   */
1772  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1773
1774
1775}
1776