001package org.hl7.fhir.dstu2016may.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009    
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030 */
031
032
033
034import org.hl7.fhir.exceptions.FHIRException;
035
036public class Enumerations {
037
038// In here: 
039//   AbstractType: A type defined by FHIR that is an abstract type
040//   AdministrativeGender: The gender of a person used for administrative purposes.
041//   AgeUnits: A valueSet of UCUM codes for representing age value units.
042//   BindingStrength: Indication of the degree of conformance expectations associated with a binding.
043//   ConceptMapEquivalence: The degree of equivalence between concepts.
044//   ConformanceResourceStatus: The lifecycle status of a Value Set or Concept Map.
045//   DataAbsentReason: Used to specify why the normally expected content of the data element is missing.
046//   DataType: The type of an element - one of the FHIR data types.
047//   DocumentReferenceStatus: The status of the document reference.
048//   FHIRAllTypes: Either an abstract type, a resource or a data type.
049//   FHIRDefinedType: Either a resource or a data type.
050//   MessageEvent: One of the message events defined as part of FHIR.
051//   NoteType: The presentation types of notes.
052//   RemittanceOutcome: The outcome of the processing.
053//   ResourceType: One of the resource types defined as part of FHIR.
054//   SearchParamType: Data types allowed to be used for search parameters.
055//   SpecialValues: A set of generally useful codes defined so they can be included in value sets.
056
057
058    public enum AbstractType {
059        /**
060         * A place holder that means any kind of data type
061         */
062        TYPE, 
063        /**
064         * A place holder that means any kind of resource
065         */
066        ANY, 
067        /**
068         * added to help the parsers
069         */
070        NULL;
071        public static AbstractType fromCode(String codeString) throws FHIRException {
072            if (codeString == null || "".equals(codeString))
073                return null;
074        if ("Type".equals(codeString))
075          return TYPE;
076        if ("Any".equals(codeString))
077          return ANY;
078        throw new FHIRException("Unknown AbstractType code '"+codeString+"'");
079        }
080        public String toCode() {
081          switch (this) {
082            case TYPE: return "Type";
083            case ANY: return "Any";
084            case NULL: return null;
085            default: return "?";
086          }
087        }
088        public String getSystem() {
089          switch (this) {
090            case TYPE: return "http://hl7.org/fhir/abstract-types";
091            case ANY: return "http://hl7.org/fhir/abstract-types";
092            case NULL: return null;
093            default: return "?";
094          }
095        }
096        public String getDefinition() {
097          switch (this) {
098            case TYPE: return "A place holder that means any kind of data type";
099            case ANY: return "A place holder that means any kind of resource";
100            case NULL: return null;
101            default: return "?";
102          }
103        }
104        public String getDisplay() {
105          switch (this) {
106            case TYPE: return "Type";
107            case ANY: return "Any";
108            case NULL: return null;
109            default: return "?";
110          }
111        }
112    }
113
114  public static class AbstractTypeEnumFactory implements EnumFactory<AbstractType> {
115    public AbstractType fromCode(String codeString) throws IllegalArgumentException {
116      if (codeString == null || "".equals(codeString))
117            if (codeString == null || "".equals(codeString))
118                return null;
119        if ("Type".equals(codeString))
120          return AbstractType.TYPE;
121        if ("Any".equals(codeString))
122          return AbstractType.ANY;
123        throw new IllegalArgumentException("Unknown AbstractType code '"+codeString+"'");
124        }
125        public Enumeration<AbstractType> fromType(Base code) throws FHIRException {
126          if (code == null || code.isEmpty())
127            return null;
128          String codeString = ((PrimitiveType) code).asStringValue();
129          if (codeString == null || "".equals(codeString))
130            return null;
131        if ("Type".equals(codeString))
132          return new Enumeration<AbstractType>(this, AbstractType.TYPE);
133        if ("Any".equals(codeString))
134          return new Enumeration<AbstractType>(this, AbstractType.ANY);
135        throw new FHIRException("Unknown AbstractType code '"+codeString+"'");
136        }
137    public String toCode(AbstractType code) {
138      if (code == AbstractType.TYPE)
139        return "Type";
140      if (code == AbstractType.ANY)
141        return "Any";
142      return "?";
143      }
144    public String toSystem(AbstractType code) {
145      return code.getSystem();
146      }
147    }
148
149    public enum AdministrativeGender {
150        /**
151         * Male
152         */
153        MALE, 
154        /**
155         * Female
156         */
157        FEMALE, 
158        /**
159         * Other
160         */
161        OTHER, 
162        /**
163         * Unknown
164         */
165        UNKNOWN, 
166        /**
167         * added to help the parsers
168         */
169        NULL;
170        public static AdministrativeGender fromCode(String codeString) throws FHIRException {
171            if (codeString == null || "".equals(codeString))
172                return null;
173        if ("male".equals(codeString))
174          return MALE;
175        if ("female".equals(codeString))
176          return FEMALE;
177        if ("other".equals(codeString))
178          return OTHER;
179        if ("unknown".equals(codeString))
180          return UNKNOWN;
181        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
182        }
183        public String toCode() {
184          switch (this) {
185            case MALE: return "male";
186            case FEMALE: return "female";
187            case OTHER: return "other";
188            case UNKNOWN: return "unknown";
189            case NULL: return null;
190            default: return "?";
191          }
192        }
193        public String getSystem() {
194          switch (this) {
195            case MALE: return "http://hl7.org/fhir/administrative-gender";
196            case FEMALE: return "http://hl7.org/fhir/administrative-gender";
197            case OTHER: return "http://hl7.org/fhir/administrative-gender";
198            case UNKNOWN: return "http://hl7.org/fhir/administrative-gender";
199            case NULL: return null;
200            default: return "?";
201          }
202        }
203        public String getDefinition() {
204          switch (this) {
205            case MALE: return "Male";
206            case FEMALE: return "Female";
207            case OTHER: return "Other";
208            case UNKNOWN: return "Unknown";
209            case NULL: return null;
210            default: return "?";
211          }
212        }
213        public String getDisplay() {
214          switch (this) {
215            case MALE: return "Male";
216            case FEMALE: return "Female";
217            case OTHER: return "Other";
218            case UNKNOWN: return "Unknown";
219            case NULL: return null;
220            default: return "?";
221          }
222        }
223    }
224
225  public static class AdministrativeGenderEnumFactory implements EnumFactory<AdministrativeGender> {
226    public AdministrativeGender fromCode(String codeString) throws IllegalArgumentException {
227      if (codeString == null || "".equals(codeString))
228            if (codeString == null || "".equals(codeString))
229                return null;
230        if ("male".equals(codeString))
231          return AdministrativeGender.MALE;
232        if ("female".equals(codeString))
233          return AdministrativeGender.FEMALE;
234        if ("other".equals(codeString))
235          return AdministrativeGender.OTHER;
236        if ("unknown".equals(codeString))
237          return AdministrativeGender.UNKNOWN;
238        throw new IllegalArgumentException("Unknown AdministrativeGender code '"+codeString+"'");
239        }
240        public Enumeration<AdministrativeGender> fromType(Base code) throws FHIRException {
241          if (code == null || code.isEmpty())
242            return null;
243          String codeString = ((PrimitiveType) code).asStringValue();
244          if (codeString == null || "".equals(codeString))
245            return null;
246        if ("male".equals(codeString))
247          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.MALE);
248        if ("female".equals(codeString))
249          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.FEMALE);
250        if ("other".equals(codeString))
251          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.OTHER);
252        if ("unknown".equals(codeString))
253          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.UNKNOWN);
254        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
255        }
256    public String toCode(AdministrativeGender code) {
257      if (code == AdministrativeGender.MALE)
258        return "male";
259      if (code == AdministrativeGender.FEMALE)
260        return "female";
261      if (code == AdministrativeGender.OTHER)
262        return "other";
263      if (code == AdministrativeGender.UNKNOWN)
264        return "unknown";
265      return "?";
266      }
267    public String toSystem(AdministrativeGender code) {
268      return code.getSystem();
269      }
270    }
271
272    public enum AgeUnits {
273        /**
274         * null
275         */
276        MIN, 
277        /**
278         * null
279         */
280        H, 
281        /**
282         * null
283         */
284        D, 
285        /**
286         * null
287         */
288        WK, 
289        /**
290         * null
291         */
292        MO, 
293        /**
294         * null
295         */
296        A, 
297        /**
298         * added to help the parsers
299         */
300        NULL;
301        public static AgeUnits fromCode(String codeString) throws FHIRException {
302            if (codeString == null || "".equals(codeString))
303                return null;
304        if ("min".equals(codeString))
305          return MIN;
306        if ("h".equals(codeString))
307          return H;
308        if ("d".equals(codeString))
309          return D;
310        if ("wk".equals(codeString))
311          return WK;
312        if ("mo".equals(codeString))
313          return MO;
314        if ("a".equals(codeString))
315          return A;
316        throw new FHIRException("Unknown AgeUnits code '"+codeString+"'");
317        }
318        public String toCode() {
319          switch (this) {
320            case MIN: return "min";
321            case H: return "h";
322            case D: return "d";
323            case WK: return "wk";
324            case MO: return "mo";
325            case A: return "a";
326            case NULL: return null;
327            default: return "?";
328          }
329        }
330        public String getSystem() {
331          switch (this) {
332            case MIN: return "http://unitsofmeasure.org";
333            case H: return "http://unitsofmeasure.org";
334            case D: return "http://unitsofmeasure.org";
335            case WK: return "http://unitsofmeasure.org";
336            case MO: return "http://unitsofmeasure.org";
337            case A: return "http://unitsofmeasure.org";
338            case NULL: return null;
339            default: return "?";
340          }
341        }
342        public String getDefinition() {
343          switch (this) {
344            case MIN: return "";
345            case H: return "";
346            case D: return "";
347            case WK: return "";
348            case MO: return "";
349            case A: return "";
350            case NULL: return null;
351            default: return "?";
352          }
353        }
354        public String getDisplay() {
355          switch (this) {
356            case MIN: return "Minute";
357            case H: return "Hour";
358            case D: return "Day";
359            case WK: return "Week";
360            case MO: return "Month";
361            case A: return "Year";
362            case NULL: return null;
363            default: return "?";
364          }
365        }
366    }
367
368  public static class AgeUnitsEnumFactory implements EnumFactory<AgeUnits> {
369    public AgeUnits fromCode(String codeString) throws IllegalArgumentException {
370      if (codeString == null || "".equals(codeString))
371            if (codeString == null || "".equals(codeString))
372                return null;
373        if ("min".equals(codeString))
374          return AgeUnits.MIN;
375        if ("h".equals(codeString))
376          return AgeUnits.H;
377        if ("d".equals(codeString))
378          return AgeUnits.D;
379        if ("wk".equals(codeString))
380          return AgeUnits.WK;
381        if ("mo".equals(codeString))
382          return AgeUnits.MO;
383        if ("a".equals(codeString))
384          return AgeUnits.A;
385        throw new IllegalArgumentException("Unknown AgeUnits code '"+codeString+"'");
386        }
387        public Enumeration<AgeUnits> fromType(Base code) throws FHIRException {
388          if (code == null || code.isEmpty())
389            return null;
390          String codeString = ((PrimitiveType) code).asStringValue();
391          if (codeString == null || "".equals(codeString))
392            return null;
393        if ("min".equals(codeString))
394          return new Enumeration<AgeUnits>(this, AgeUnits.MIN);
395        if ("h".equals(codeString))
396          return new Enumeration<AgeUnits>(this, AgeUnits.H);
397        if ("d".equals(codeString))
398          return new Enumeration<AgeUnits>(this, AgeUnits.D);
399        if ("wk".equals(codeString))
400          return new Enumeration<AgeUnits>(this, AgeUnits.WK);
401        if ("mo".equals(codeString))
402          return new Enumeration<AgeUnits>(this, AgeUnits.MO);
403        if ("a".equals(codeString))
404          return new Enumeration<AgeUnits>(this, AgeUnits.A);
405        throw new FHIRException("Unknown AgeUnits code '"+codeString+"'");
406        }
407    public String toCode(AgeUnits code) {
408      if (code == AgeUnits.MIN)
409        return "min";
410      if (code == AgeUnits.H)
411        return "h";
412      if (code == AgeUnits.D)
413        return "d";
414      if (code == AgeUnits.WK)
415        return "wk";
416      if (code == AgeUnits.MO)
417        return "mo";
418      if (code == AgeUnits.A)
419        return "a";
420      return "?";
421      }
422    public String toSystem(AgeUnits code) {
423      return code.getSystem();
424      }
425    }
426
427    public enum BindingStrength {
428        /**
429         * To be conformant, instances of this element SHALL include a code from the specified value set.
430         */
431        REQUIRED, 
432        /**
433         * To be conformant, instances of this element SHALL include a code from the specified value set if any of the codes within the value set can apply to the concept being communicated.  If the value set does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead.
434         */
435        EXTENSIBLE, 
436        /**
437         * Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.
438         */
439        PREFERRED, 
440        /**
441         * Instances are not expected or even encouraged to draw from the specified value set.  The value set merely provides examples of the types of concepts intended to be included.
442         */
443        EXAMPLE, 
444        /**
445         * added to help the parsers
446         */
447        NULL;
448        public static BindingStrength fromCode(String codeString) throws FHIRException {
449            if (codeString == null || "".equals(codeString))
450                return null;
451        if ("required".equals(codeString))
452          return REQUIRED;
453        if ("extensible".equals(codeString))
454          return EXTENSIBLE;
455        if ("preferred".equals(codeString))
456          return PREFERRED;
457        if ("example".equals(codeString))
458          return EXAMPLE;
459        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
460        }
461        public String toCode() {
462          switch (this) {
463            case REQUIRED: return "required";
464            case EXTENSIBLE: return "extensible";
465            case PREFERRED: return "preferred";
466            case EXAMPLE: return "example";
467            case NULL: return null;
468            default: return "?";
469          }
470        }
471        public String getSystem() {
472          switch (this) {
473            case REQUIRED: return "http://hl7.org/fhir/binding-strength";
474            case EXTENSIBLE: return "http://hl7.org/fhir/binding-strength";
475            case PREFERRED: return "http://hl7.org/fhir/binding-strength";
476            case EXAMPLE: return "http://hl7.org/fhir/binding-strength";
477            case NULL: return null;
478            default: return "?";
479          }
480        }
481        public String getDefinition() {
482          switch (this) {
483            case REQUIRED: return "To be conformant, instances of this element SHALL include a code from the specified value set.";
484            case EXTENSIBLE: return "To be conformant, instances of this element SHALL include a code from the specified value set if any of the codes within the value set can apply to the concept being communicated.  If the value set does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead.";
485            case PREFERRED: return "Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.";
486            case EXAMPLE: return "Instances are not expected or even encouraged to draw from the specified value set.  The value set merely provides examples of the types of concepts intended to be included.";
487            case NULL: return null;
488            default: return "?";
489          }
490        }
491        public String getDisplay() {
492          switch (this) {
493            case REQUIRED: return "Required";
494            case EXTENSIBLE: return "Extensible";
495            case PREFERRED: return "Preferred";
496            case EXAMPLE: return "Example";
497            case NULL: return null;
498            default: return "?";
499          }
500        }
501    }
502
503  public static class BindingStrengthEnumFactory implements EnumFactory<BindingStrength> {
504    public BindingStrength fromCode(String codeString) throws IllegalArgumentException {
505      if (codeString == null || "".equals(codeString))
506            if (codeString == null || "".equals(codeString))
507                return null;
508        if ("required".equals(codeString))
509          return BindingStrength.REQUIRED;
510        if ("extensible".equals(codeString))
511          return BindingStrength.EXTENSIBLE;
512        if ("preferred".equals(codeString))
513          return BindingStrength.PREFERRED;
514        if ("example".equals(codeString))
515          return BindingStrength.EXAMPLE;
516        throw new IllegalArgumentException("Unknown BindingStrength code '"+codeString+"'");
517        }
518        public Enumeration<BindingStrength> fromType(Base code) throws FHIRException {
519          if (code == null || code.isEmpty())
520            return null;
521          String codeString = ((PrimitiveType) code).asStringValue();
522          if (codeString == null || "".equals(codeString))
523            return null;
524        if ("required".equals(codeString))
525          return new Enumeration<BindingStrength>(this, BindingStrength.REQUIRED);
526        if ("extensible".equals(codeString))
527          return new Enumeration<BindingStrength>(this, BindingStrength.EXTENSIBLE);
528        if ("preferred".equals(codeString))
529          return new Enumeration<BindingStrength>(this, BindingStrength.PREFERRED);
530        if ("example".equals(codeString))
531          return new Enumeration<BindingStrength>(this, BindingStrength.EXAMPLE);
532        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
533        }
534    public String toCode(BindingStrength code) {
535      if (code == BindingStrength.REQUIRED)
536        return "required";
537      if (code == BindingStrength.EXTENSIBLE)
538        return "extensible";
539      if (code == BindingStrength.PREFERRED)
540        return "preferred";
541      if (code == BindingStrength.EXAMPLE)
542        return "example";
543      return "?";
544      }
545    public String toSystem(BindingStrength code) {
546      return code.getSystem();
547      }
548    }
549
550    public enum ConceptMapEquivalence {
551        /**
552         * The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical).
553         */
554        EQUIVALENT, 
555        /**
556         * The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identical or irrelevant (i.e. intentionally identical).
557         */
558        EQUAL, 
559        /**
560         * The target mapping is wider in meaning than the source concept.
561         */
562        WIDER, 
563        /**
564         * The target mapping subsumes the meaning of the source concept (e.g. the source is-a target).
565         */
566        SUBSUMES, 
567        /**
568         * The target mapping is narrower in meaning that the source concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally.
569         */
570        NARROWER, 
571        /**
572         * The target mapping specializes the meaning of the source concept (e.g. the target is-a source).
573         */
574        SPECIALIZES, 
575        /**
576         * The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally.
577         */
578        INEXACT, 
579        /**
580         * There is no match for this concept in the destination concept system.
581         */
582        UNMATCHED, 
583        /**
584         * This is an explicit assertion that there is no mapping between the source and target concept.
585         */
586        DISJOINT, 
587        /**
588         * added to help the parsers
589         */
590        NULL;
591        public static ConceptMapEquivalence fromCode(String codeString) throws FHIRException {
592            if (codeString == null || "".equals(codeString))
593                return null;
594        if ("equivalent".equals(codeString))
595          return EQUIVALENT;
596        if ("equal".equals(codeString))
597          return EQUAL;
598        if ("wider".equals(codeString))
599          return WIDER;
600        if ("subsumes".equals(codeString))
601          return SUBSUMES;
602        if ("narrower".equals(codeString))
603          return NARROWER;
604        if ("specializes".equals(codeString))
605          return SPECIALIZES;
606        if ("inexact".equals(codeString))
607          return INEXACT;
608        if ("unmatched".equals(codeString))
609          return UNMATCHED;
610        if ("disjoint".equals(codeString))
611          return DISJOINT;
612        throw new FHIRException("Unknown ConceptMapEquivalence code '"+codeString+"'");
613        }
614        public String toCode() {
615          switch (this) {
616            case EQUIVALENT: return "equivalent";
617            case EQUAL: return "equal";
618            case WIDER: return "wider";
619            case SUBSUMES: return "subsumes";
620            case NARROWER: return "narrower";
621            case SPECIALIZES: return "specializes";
622            case INEXACT: return "inexact";
623            case UNMATCHED: return "unmatched";
624            case DISJOINT: return "disjoint";
625            case NULL: return null;
626            default: return "?";
627          }
628        }
629        public String getSystem() {
630          switch (this) {
631            case EQUIVALENT: return "http://hl7.org/fhir/concept-map-equivalence";
632            case EQUAL: return "http://hl7.org/fhir/concept-map-equivalence";
633            case WIDER: return "http://hl7.org/fhir/concept-map-equivalence";
634            case SUBSUMES: return "http://hl7.org/fhir/concept-map-equivalence";
635            case NARROWER: return "http://hl7.org/fhir/concept-map-equivalence";
636            case SPECIALIZES: return "http://hl7.org/fhir/concept-map-equivalence";
637            case INEXACT: return "http://hl7.org/fhir/concept-map-equivalence";
638            case UNMATCHED: return "http://hl7.org/fhir/concept-map-equivalence";
639            case DISJOINT: return "http://hl7.org/fhir/concept-map-equivalence";
640            case NULL: return null;
641            default: return "?";
642          }
643        }
644        public String getDefinition() {
645          switch (this) {
646            case EQUIVALENT: return "The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical).";
647            case EQUAL: return "The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identical or irrelevant (i.e. intentionally identical).";
648            case WIDER: return "The target mapping is wider in meaning than the source concept.";
649            case SUBSUMES: return "The target mapping subsumes the meaning of the source concept (e.g. the source is-a target).";
650            case NARROWER: return "The target mapping is narrower in meaning that the source concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally.";
651            case SPECIALIZES: return "The target mapping specializes the meaning of the source concept (e.g. the target is-a source).";
652            case INEXACT: return "The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally.";
653            case UNMATCHED: return "There is no match for this concept in the destination concept system.";
654            case DISJOINT: return "This is an explicit assertion that there is no mapping between the source and target concept.";
655            case NULL: return null;
656            default: return "?";
657          }
658        }
659        public String getDisplay() {
660          switch (this) {
661            case EQUIVALENT: return "Equivalent";
662            case EQUAL: return "Equal";
663            case WIDER: return "Wider";
664            case SUBSUMES: return "Subsumes";
665            case NARROWER: return "Narrower";
666            case SPECIALIZES: return "Specializes";
667            case INEXACT: return "Inexact";
668            case UNMATCHED: return "Unmatched";
669            case DISJOINT: return "Disjoint";
670            case NULL: return null;
671            default: return "?";
672          }
673        }
674    }
675
676  public static class ConceptMapEquivalenceEnumFactory implements EnumFactory<ConceptMapEquivalence> {
677    public ConceptMapEquivalence fromCode(String codeString) throws IllegalArgumentException {
678      if (codeString == null || "".equals(codeString))
679            if (codeString == null || "".equals(codeString))
680                return null;
681        if ("equivalent".equals(codeString))
682          return ConceptMapEquivalence.EQUIVALENT;
683        if ("equal".equals(codeString))
684          return ConceptMapEquivalence.EQUAL;
685        if ("wider".equals(codeString))
686          return ConceptMapEquivalence.WIDER;
687        if ("subsumes".equals(codeString))
688          return ConceptMapEquivalence.SUBSUMES;
689        if ("narrower".equals(codeString))
690          return ConceptMapEquivalence.NARROWER;
691        if ("specializes".equals(codeString))
692          return ConceptMapEquivalence.SPECIALIZES;
693        if ("inexact".equals(codeString))
694          return ConceptMapEquivalence.INEXACT;
695        if ("unmatched".equals(codeString))
696          return ConceptMapEquivalence.UNMATCHED;
697        if ("disjoint".equals(codeString))
698          return ConceptMapEquivalence.DISJOINT;
699        throw new IllegalArgumentException("Unknown ConceptMapEquivalence code '"+codeString+"'");
700        }
701        public Enumeration<ConceptMapEquivalence> fromType(Base code) throws FHIRException {
702          if (code == null || code.isEmpty())
703            return null;
704          String codeString = ((PrimitiveType) code).asStringValue();
705          if (codeString == null || "".equals(codeString))
706            return null;
707        if ("equivalent".equals(codeString))
708          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.EQUIVALENT);
709        if ("equal".equals(codeString))
710          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.EQUAL);
711        if ("wider".equals(codeString))
712          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.WIDER);
713        if ("subsumes".equals(codeString))
714          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.SUBSUMES);
715        if ("narrower".equals(codeString))
716          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.NARROWER);
717        if ("specializes".equals(codeString))
718          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.SPECIALIZES);
719        if ("inexact".equals(codeString))
720          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.INEXACT);
721        if ("unmatched".equals(codeString))
722          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.UNMATCHED);
723        if ("disjoint".equals(codeString))
724          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.DISJOINT);
725        throw new FHIRException("Unknown ConceptMapEquivalence code '"+codeString+"'");
726        }
727    public String toCode(ConceptMapEquivalence code) {
728      if (code == ConceptMapEquivalence.EQUIVALENT)
729        return "equivalent";
730      if (code == ConceptMapEquivalence.EQUAL)
731        return "equal";
732      if (code == ConceptMapEquivalence.WIDER)
733        return "wider";
734      if (code == ConceptMapEquivalence.SUBSUMES)
735        return "subsumes";
736      if (code == ConceptMapEquivalence.NARROWER)
737        return "narrower";
738      if (code == ConceptMapEquivalence.SPECIALIZES)
739        return "specializes";
740      if (code == ConceptMapEquivalence.INEXACT)
741        return "inexact";
742      if (code == ConceptMapEquivalence.UNMATCHED)
743        return "unmatched";
744      if (code == ConceptMapEquivalence.DISJOINT)
745        return "disjoint";
746      return "?";
747      }
748    public String toSystem(ConceptMapEquivalence code) {
749      return code.getSystem();
750      }
751    }
752
753    public enum ConformanceResourceStatus {
754        /**
755         * This resource is still under development.
756         */
757        DRAFT, 
758        /**
759         * This resource is ready for normal use.
760         */
761        ACTIVE, 
762        /**
763         * This resource has been withdrawn or superseded and should no longer be used.
764         */
765        RETIRED, 
766        /**
767         * added to help the parsers
768         */
769        NULL;
770        public static ConformanceResourceStatus fromCode(String codeString) throws FHIRException {
771            if (codeString == null || "".equals(codeString))
772                return null;
773        if ("draft".equals(codeString))
774          return DRAFT;
775        if ("active".equals(codeString))
776          return ACTIVE;
777        if ("retired".equals(codeString))
778          return RETIRED;
779        throw new FHIRException("Unknown ConformanceResourceStatus code '"+codeString+"'");
780        }
781        public String toCode() {
782          switch (this) {
783            case DRAFT: return "draft";
784            case ACTIVE: return "active";
785            case RETIRED: return "retired";
786            case NULL: return null;
787            default: return "?";
788          }
789        }
790        public String getSystem() {
791          switch (this) {
792            case DRAFT: return "http://hl7.org/fhir/conformance-resource-status";
793            case ACTIVE: return "http://hl7.org/fhir/conformance-resource-status";
794            case RETIRED: return "http://hl7.org/fhir/conformance-resource-status";
795            case NULL: return null;
796            default: return "?";
797          }
798        }
799        public String getDefinition() {
800          switch (this) {
801            case DRAFT: return "This resource is still under development.";
802            case ACTIVE: return "This resource is ready for normal use.";
803            case RETIRED: return "This resource has been withdrawn or superseded and should no longer be used.";
804            case NULL: return null;
805            default: return "?";
806          }
807        }
808        public String getDisplay() {
809          switch (this) {
810            case DRAFT: return "Draft";
811            case ACTIVE: return "Active";
812            case RETIRED: return "Retired";
813            case NULL: return null;
814            default: return "?";
815          }
816        }
817    }
818
819  public static class ConformanceResourceStatusEnumFactory implements EnumFactory<ConformanceResourceStatus> {
820    public ConformanceResourceStatus fromCode(String codeString) throws IllegalArgumentException {
821      if (codeString == null || "".equals(codeString))
822            if (codeString == null || "".equals(codeString))
823                return null;
824        if ("draft".equals(codeString))
825          return ConformanceResourceStatus.DRAFT;
826        if ("active".equals(codeString))
827          return ConformanceResourceStatus.ACTIVE;
828        if ("retired".equals(codeString))
829          return ConformanceResourceStatus.RETIRED;
830        throw new IllegalArgumentException("Unknown ConformanceResourceStatus code '"+codeString+"'");
831        }
832        public Enumeration<ConformanceResourceStatus> fromType(Base code) throws FHIRException {
833          if (code == null || code.isEmpty())
834            return null;
835          String codeString = ((PrimitiveType) code).asStringValue();
836          if (codeString == null || "".equals(codeString))
837            return null;
838        if ("draft".equals(codeString))
839          return new Enumeration<ConformanceResourceStatus>(this, ConformanceResourceStatus.DRAFT);
840        if ("active".equals(codeString))
841          return new Enumeration<ConformanceResourceStatus>(this, ConformanceResourceStatus.ACTIVE);
842        if ("retired".equals(codeString))
843          return new Enumeration<ConformanceResourceStatus>(this, ConformanceResourceStatus.RETIRED);
844        throw new FHIRException("Unknown ConformanceResourceStatus code '"+codeString+"'");
845        }
846    public String toCode(ConformanceResourceStatus code) {
847      if (code == ConformanceResourceStatus.DRAFT)
848        return "draft";
849      if (code == ConformanceResourceStatus.ACTIVE)
850        return "active";
851      if (code == ConformanceResourceStatus.RETIRED)
852        return "retired";
853      return "?";
854      }
855    public String toSystem(ConformanceResourceStatus code) {
856      return code.getSystem();
857      }
858    }
859
860    public enum DataAbsentReason {
861        /**
862         * The value is not known.
863         */
864        UNKNOWN, 
865        /**
866         * The source human does not know the value.
867         */
868        ASKED, 
869        /**
870         * There is reason to expect (from the workflow) that the value may become known.
871         */
872        TEMP, 
873        /**
874         * The workflow didn't lead to this value being known.
875         */
876        NOTASKED, 
877        /**
878         * The information is not available due to security, privacy or related reasons.
879         */
880        MASKED, 
881        /**
882         * The source system wasn't capable of supporting this element.
883         */
884        UNSUPPORTED, 
885        /**
886         * The content of the data is represented in the resource narrative.
887         */
888        ASTEXT, 
889        /**
890         * Some system or workflow process error means that the information is not available.
891         */
892        ERROR, 
893        /**
894         * NaN, standing for not a number, is a numeric data type value representing an undefined or unrepresentable value.
895         */
896        NAN, 
897        /**
898         * added to help the parsers
899         */
900        NULL;
901        public static DataAbsentReason fromCode(String codeString) throws FHIRException {
902            if (codeString == null || "".equals(codeString))
903                return null;
904        if ("unknown".equals(codeString))
905          return UNKNOWN;
906        if ("asked".equals(codeString))
907          return ASKED;
908        if ("temp".equals(codeString))
909          return TEMP;
910        if ("not-asked".equals(codeString))
911          return NOTASKED;
912        if ("masked".equals(codeString))
913          return MASKED;
914        if ("unsupported".equals(codeString))
915          return UNSUPPORTED;
916        if ("astext".equals(codeString))
917          return ASTEXT;
918        if ("error".equals(codeString))
919          return ERROR;
920        if ("NaN".equals(codeString))
921          return NAN;
922        throw new FHIRException("Unknown DataAbsentReason code '"+codeString+"'");
923        }
924        public String toCode() {
925          switch (this) {
926            case UNKNOWN: return "unknown";
927            case ASKED: return "asked";
928            case TEMP: return "temp";
929            case NOTASKED: return "not-asked";
930            case MASKED: return "masked";
931            case UNSUPPORTED: return "unsupported";
932            case ASTEXT: return "astext";
933            case ERROR: return "error";
934            case NAN: return "NaN";
935            case NULL: return null;
936            default: return "?";
937          }
938        }
939        public String getSystem() {
940          switch (this) {
941            case UNKNOWN: return "http://hl7.org/fhir/data-absent-reason";
942            case ASKED: return "http://hl7.org/fhir/data-absent-reason";
943            case TEMP: return "http://hl7.org/fhir/data-absent-reason";
944            case NOTASKED: return "http://hl7.org/fhir/data-absent-reason";
945            case MASKED: return "http://hl7.org/fhir/data-absent-reason";
946            case UNSUPPORTED: return "http://hl7.org/fhir/data-absent-reason";
947            case ASTEXT: return "http://hl7.org/fhir/data-absent-reason";
948            case ERROR: return "http://hl7.org/fhir/data-absent-reason";
949            case NAN: return "http://hl7.org/fhir/data-absent-reason";
950            case NULL: return null;
951            default: return "?";
952          }
953        }
954        public String getDefinition() {
955          switch (this) {
956            case UNKNOWN: return "The value is not known.";
957            case ASKED: return "The source human does not know the value.";
958            case TEMP: return "There is reason to expect (from the workflow) that the value may become known.";
959            case NOTASKED: return "The workflow didn't lead to this value being known.";
960            case MASKED: return "The information is not available due to security, privacy or related reasons.";
961            case UNSUPPORTED: return "The source system wasn't capable of supporting this element.";
962            case ASTEXT: return "The content of the data is represented in the resource narrative.";
963            case ERROR: return "Some system or workflow process error means that the information is not available.";
964            case NAN: return "NaN, standing for not a number, is a numeric data type value representing an undefined or unrepresentable value.";
965            case NULL: return null;
966            default: return "?";
967          }
968        }
969        public String getDisplay() {
970          switch (this) {
971            case UNKNOWN: return "Unknown";
972            case ASKED: return "Asked";
973            case TEMP: return "Temp";
974            case NOTASKED: return "Not Asked";
975            case MASKED: return "Masked";
976            case UNSUPPORTED: return "Unsupported";
977            case ASTEXT: return "As Text";
978            case ERROR: return "Error";
979            case NAN: return "Not a Number";
980            case NULL: return null;
981            default: return "?";
982          }
983        }
984    }
985
986  public static class DataAbsentReasonEnumFactory implements EnumFactory<DataAbsentReason> {
987    public DataAbsentReason fromCode(String codeString) throws IllegalArgumentException {
988      if (codeString == null || "".equals(codeString))
989            if (codeString == null || "".equals(codeString))
990                return null;
991        if ("unknown".equals(codeString))
992          return DataAbsentReason.UNKNOWN;
993        if ("asked".equals(codeString))
994          return DataAbsentReason.ASKED;
995        if ("temp".equals(codeString))
996          return DataAbsentReason.TEMP;
997        if ("not-asked".equals(codeString))
998          return DataAbsentReason.NOTASKED;
999        if ("masked".equals(codeString))
1000          return DataAbsentReason.MASKED;
1001        if ("unsupported".equals(codeString))
1002          return DataAbsentReason.UNSUPPORTED;
1003        if ("astext".equals(codeString))
1004          return DataAbsentReason.ASTEXT;
1005        if ("error".equals(codeString))
1006          return DataAbsentReason.ERROR;
1007        if ("NaN".equals(codeString))
1008          return DataAbsentReason.NAN;
1009        throw new IllegalArgumentException("Unknown DataAbsentReason code '"+codeString+"'");
1010        }
1011        public Enumeration<DataAbsentReason> fromType(Base code) throws FHIRException {
1012          if (code == null || code.isEmpty())
1013            return null;
1014          String codeString = ((PrimitiveType) code).asStringValue();
1015          if (codeString == null || "".equals(codeString))
1016            return null;
1017        if ("unknown".equals(codeString))
1018          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.UNKNOWN);
1019        if ("asked".equals(codeString))
1020          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ASKED);
1021        if ("temp".equals(codeString))
1022          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.TEMP);
1023        if ("not-asked".equals(codeString))
1024          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTASKED);
1025        if ("masked".equals(codeString))
1026          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.MASKED);
1027        if ("unsupported".equals(codeString))
1028          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.UNSUPPORTED);
1029        if ("astext".equals(codeString))
1030          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ASTEXT);
1031        if ("error".equals(codeString))
1032          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ERROR);
1033        if ("NaN".equals(codeString))
1034          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NAN);
1035        throw new FHIRException("Unknown DataAbsentReason code '"+codeString+"'");
1036        }
1037    public String toCode(DataAbsentReason code) {
1038      if (code == DataAbsentReason.UNKNOWN)
1039        return "unknown";
1040      if (code == DataAbsentReason.ASKED)
1041        return "asked";
1042      if (code == DataAbsentReason.TEMP)
1043        return "temp";
1044      if (code == DataAbsentReason.NOTASKED)
1045        return "not-asked";
1046      if (code == DataAbsentReason.MASKED)
1047        return "masked";
1048      if (code == DataAbsentReason.UNSUPPORTED)
1049        return "unsupported";
1050      if (code == DataAbsentReason.ASTEXT)
1051        return "astext";
1052      if (code == DataAbsentReason.ERROR)
1053        return "error";
1054      if (code == DataAbsentReason.NAN)
1055        return "NaN";
1056      return "?";
1057      }
1058    public String toSystem(DataAbsentReason code) {
1059      return code.getSystem();
1060      }
1061    }
1062
1063    public enum DataType {
1064        /**
1065         * The definition of an action to be performed. Some aspects of the definition are specified statically, and some aspects can be specified dynamically by referencing logic defined in a library.
1066         */
1067        ACTIONDEFINITION, 
1068        /**
1069         * An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations and which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.
1070         */
1071        ADDRESS, 
1072        /**
1073         * null
1074         */
1075        AGE, 
1076        /**
1077         * A  text note which also  contains information about who made the statement and when.
1078         */
1079        ANNOTATION, 
1080        /**
1081         * For referring to data content defined in other formats.
1082         */
1083        ATTACHMENT, 
1084        /**
1085         * Base definition for all elements that are defined inside a resource - but not those in a data type.
1086         */
1087        BACKBONEELEMENT, 
1088        /**
1089         * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
1090         */
1091        CODEABLECONCEPT, 
1092        /**
1093         * A reference to a code defined by a terminology system.
1094         */
1095        CODING, 
1096        /**
1097         * Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
1098         */
1099        CONTACTPOINT, 
1100        /**
1101         * null
1102         */
1103        COUNT, 
1104        /**
1105         * Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the data.
1106         */
1107        DATAREQUIREMENT, 
1108        /**
1109         * null
1110         */
1111        DISTANCE, 
1112        /**
1113         * null
1114         */
1115        DURATION, 
1116        /**
1117         * Base definition for all elements in a resource.
1118         */
1119        ELEMENT, 
1120        /**
1121         * Captures constraints on each element within the resource, profile, or extension.
1122         */
1123        ELEMENTDEFINITION, 
1124        /**
1125         * Optional Extensions Element - found in all resources.
1126         */
1127        EXTENSION, 
1128        /**
1129         * A human's name with the ability to identify parts and usage.
1130         */
1131        HUMANNAME, 
1132        /**
1133         * A technical identifier - identifies some entity uniquely and unambiguously.
1134         */
1135        IDENTIFIER, 
1136        /**
1137         * The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.
1138         */
1139        META, 
1140        /**
1141         * The ModuleMetadata structure defines the common metadata elements used by quality improvement artifacts. This information includes descriptive and topical metadata to enable repository searches, as well as governance and evidentiary support information.
1142         */
1143        MODULEMETADATA, 
1144        /**
1145         * null
1146         */
1147        MONEY, 
1148        /**
1149         * A human-readable formatted text, including images.
1150         */
1151        NARRATIVE, 
1152        /**
1153         * The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.
1154         */
1155        PARAMETERDEFINITION, 
1156        /**
1157         * A time period defined by a start and end date and optionally time.
1158         */
1159        PERIOD, 
1160        /**
1161         * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.
1162         */
1163        QUANTITY, 
1164        /**
1165         * A set of ordered Quantities defined by a low and high limit.
1166         */
1167        RANGE, 
1168        /**
1169         * A relationship of two Quantity values - expressed as a numerator and a denominator.
1170         */
1171        RATIO, 
1172        /**
1173         * A reference from one resource to another.
1174         */
1175        REFERENCE, 
1176        /**
1177         * A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
1178         */
1179        SAMPLEDDATA, 
1180        /**
1181         * A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different Signature approaches have different utilities.
1182         */
1183        SIGNATURE, 
1184        /**
1185         * null
1186         */
1187        SIMPLEQUANTITY, 
1188        /**
1189         * Specifies an event that may occur multiple times. Timing schedules are used to record when things are expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds.
1190         */
1191        TIMING, 
1192        /**
1193         * A description of a triggering event.
1194         */
1195        TRIGGERDEFINITION, 
1196        /**
1197         * A stream of bytes
1198         */
1199        BASE64BINARY, 
1200        /**
1201         * Value of "true" or "false"
1202         */
1203        BOOLEAN, 
1204        /**
1205         * A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents
1206         */
1207        CODE, 
1208        /**
1209         * A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.
1210         */
1211        DATE, 
1212        /**
1213         * A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.
1214         */
1215        DATETIME, 
1216        /**
1217         * A rational number with implicit precision
1218         */
1219        DECIMAL, 
1220        /**
1221         * Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.
1222         */
1223        ID, 
1224        /**
1225         * An instant in time - known at least to the second
1226         */
1227        INSTANT, 
1228        /**
1229         * A whole number
1230         */
1231        INTEGER, 
1232        /**
1233         * A string that may contain markdown syntax for optional processing by a mark down presentation engine
1234         */
1235        MARKDOWN, 
1236        /**
1237         * An oid represented as a URI
1238         */
1239        OID, 
1240        /**
1241         * An integer with a value that is positive (e.g. >0)
1242         */
1243        POSITIVEINT, 
1244        /**
1245         * A sequence of Unicode characters
1246         */
1247        STRING, 
1248        /**
1249         * A time during the day, with no date specified
1250         */
1251        TIME, 
1252        /**
1253         * An integer with a value that is not negative (e.g. >= 0)
1254         */
1255        UNSIGNEDINT, 
1256        /**
1257         * String of characters used to identify a name or a resource
1258         */
1259        URI, 
1260        /**
1261         * A UUID, represented as a URI
1262         */
1263        UUID, 
1264        /**
1265         * XHTML format, as defined by W3C, but restricted usage (mainly, no active content)
1266         */
1267        XHTML, 
1268        /**
1269         * added to help the parsers
1270         */
1271        NULL;
1272        public static DataType fromCode(String codeString) throws FHIRException {
1273            if (codeString == null || "".equals(codeString))
1274                return null;
1275        if ("ActionDefinition".equals(codeString))
1276          return ACTIONDEFINITION;
1277        if ("Address".equals(codeString))
1278          return ADDRESS;
1279        if ("Age".equals(codeString))
1280          return AGE;
1281        if ("Annotation".equals(codeString))
1282          return ANNOTATION;
1283        if ("Attachment".equals(codeString))
1284          return ATTACHMENT;
1285        if ("BackboneElement".equals(codeString))
1286          return BACKBONEELEMENT;
1287        if ("CodeableConcept".equals(codeString))
1288          return CODEABLECONCEPT;
1289        if ("Coding".equals(codeString))
1290          return CODING;
1291        if ("ContactPoint".equals(codeString))
1292          return CONTACTPOINT;
1293        if ("Count".equals(codeString))
1294          return COUNT;
1295        if ("DataRequirement".equals(codeString))
1296          return DATAREQUIREMENT;
1297        if ("Distance".equals(codeString))
1298          return DISTANCE;
1299        if ("Duration".equals(codeString))
1300          return DURATION;
1301        if ("Element".equals(codeString))
1302          return ELEMENT;
1303        if ("ElementDefinition".equals(codeString))
1304          return ELEMENTDEFINITION;
1305        if ("Extension".equals(codeString))
1306          return EXTENSION;
1307        if ("HumanName".equals(codeString))
1308          return HUMANNAME;
1309        if ("Identifier".equals(codeString))
1310          return IDENTIFIER;
1311        if ("Meta".equals(codeString))
1312          return META;
1313        if ("ModuleMetadata".equals(codeString))
1314          return MODULEMETADATA;
1315        if ("Money".equals(codeString))
1316          return MONEY;
1317        if ("Narrative".equals(codeString))
1318          return NARRATIVE;
1319        if ("ParameterDefinition".equals(codeString))
1320          return PARAMETERDEFINITION;
1321        if ("Period".equals(codeString))
1322          return PERIOD;
1323        if ("Quantity".equals(codeString))
1324          return QUANTITY;
1325        if ("Range".equals(codeString))
1326          return RANGE;
1327        if ("Ratio".equals(codeString))
1328          return RATIO;
1329        if ("Reference".equals(codeString))
1330          return REFERENCE;
1331        if ("SampledData".equals(codeString))
1332          return SAMPLEDDATA;
1333        if ("Signature".equals(codeString))
1334          return SIGNATURE;
1335        if ("SimpleQuantity".equals(codeString))
1336          return SIMPLEQUANTITY;
1337        if ("Timing".equals(codeString))
1338          return TIMING;
1339        if ("TriggerDefinition".equals(codeString))
1340          return TRIGGERDEFINITION;
1341        if ("base64Binary".equals(codeString))
1342          return BASE64BINARY;
1343        if ("boolean".equals(codeString))
1344          return BOOLEAN;
1345        if ("code".equals(codeString))
1346          return CODE;
1347        if ("date".equals(codeString))
1348          return DATE;
1349        if ("dateTime".equals(codeString))
1350          return DATETIME;
1351        if ("decimal".equals(codeString))
1352          return DECIMAL;
1353        if ("id".equals(codeString))
1354          return ID;
1355        if ("instant".equals(codeString))
1356          return INSTANT;
1357        if ("integer".equals(codeString))
1358          return INTEGER;
1359        if ("markdown".equals(codeString))
1360          return MARKDOWN;
1361        if ("oid".equals(codeString))
1362          return OID;
1363        if ("positiveInt".equals(codeString))
1364          return POSITIVEINT;
1365        if ("string".equals(codeString))
1366          return STRING;
1367        if ("time".equals(codeString))
1368          return TIME;
1369        if ("unsignedInt".equals(codeString))
1370          return UNSIGNEDINT;
1371        if ("uri".equals(codeString))
1372          return URI;
1373        if ("uuid".equals(codeString))
1374          return UUID;
1375        if ("xhtml".equals(codeString))
1376          return XHTML;
1377        throw new FHIRException("Unknown DataType code '"+codeString+"'");
1378        }
1379        public String toCode() {
1380          switch (this) {
1381            case ACTIONDEFINITION: return "ActionDefinition";
1382            case ADDRESS: return "Address";
1383            case AGE: return "Age";
1384            case ANNOTATION: return "Annotation";
1385            case ATTACHMENT: return "Attachment";
1386            case BACKBONEELEMENT: return "BackboneElement";
1387            case CODEABLECONCEPT: return "CodeableConcept";
1388            case CODING: return "Coding";
1389            case CONTACTPOINT: return "ContactPoint";
1390            case COUNT: return "Count";
1391            case DATAREQUIREMENT: return "DataRequirement";
1392            case DISTANCE: return "Distance";
1393            case DURATION: return "Duration";
1394            case ELEMENT: return "Element";
1395            case ELEMENTDEFINITION: return "ElementDefinition";
1396            case EXTENSION: return "Extension";
1397            case HUMANNAME: return "HumanName";
1398            case IDENTIFIER: return "Identifier";
1399            case META: return "Meta";
1400            case MODULEMETADATA: return "ModuleMetadata";
1401            case MONEY: return "Money";
1402            case NARRATIVE: return "Narrative";
1403            case PARAMETERDEFINITION: return "ParameterDefinition";
1404            case PERIOD: return "Period";
1405            case QUANTITY: return "Quantity";
1406            case RANGE: return "Range";
1407            case RATIO: return "Ratio";
1408            case REFERENCE: return "Reference";
1409            case SAMPLEDDATA: return "SampledData";
1410            case SIGNATURE: return "Signature";
1411            case SIMPLEQUANTITY: return "SimpleQuantity";
1412            case TIMING: return "Timing";
1413            case TRIGGERDEFINITION: return "TriggerDefinition";
1414            case BASE64BINARY: return "base64Binary";
1415            case BOOLEAN: return "boolean";
1416            case CODE: return "code";
1417            case DATE: return "date";
1418            case DATETIME: return "dateTime";
1419            case DECIMAL: return "decimal";
1420            case ID: return "id";
1421            case INSTANT: return "instant";
1422            case INTEGER: return "integer";
1423            case MARKDOWN: return "markdown";
1424            case OID: return "oid";
1425            case POSITIVEINT: return "positiveInt";
1426            case STRING: return "string";
1427            case TIME: return "time";
1428            case UNSIGNEDINT: return "unsignedInt";
1429            case URI: return "uri";
1430            case UUID: return "uuid";
1431            case XHTML: return "xhtml";
1432            case NULL: return null;
1433            default: return "?";
1434          }
1435        }
1436        public String getSystem() {
1437          switch (this) {
1438            case ACTIONDEFINITION: return "http://hl7.org/fhir/data-types";
1439            case ADDRESS: return "http://hl7.org/fhir/data-types";
1440            case AGE: return "http://hl7.org/fhir/data-types";
1441            case ANNOTATION: return "http://hl7.org/fhir/data-types";
1442            case ATTACHMENT: return "http://hl7.org/fhir/data-types";
1443            case BACKBONEELEMENT: return "http://hl7.org/fhir/data-types";
1444            case CODEABLECONCEPT: return "http://hl7.org/fhir/data-types";
1445            case CODING: return "http://hl7.org/fhir/data-types";
1446            case CONTACTPOINT: return "http://hl7.org/fhir/data-types";
1447            case COUNT: return "http://hl7.org/fhir/data-types";
1448            case DATAREQUIREMENT: return "http://hl7.org/fhir/data-types";
1449            case DISTANCE: return "http://hl7.org/fhir/data-types";
1450            case DURATION: return "http://hl7.org/fhir/data-types";
1451            case ELEMENT: return "http://hl7.org/fhir/data-types";
1452            case ELEMENTDEFINITION: return "http://hl7.org/fhir/data-types";
1453            case EXTENSION: return "http://hl7.org/fhir/data-types";
1454            case HUMANNAME: return "http://hl7.org/fhir/data-types";
1455            case IDENTIFIER: return "http://hl7.org/fhir/data-types";
1456            case META: return "http://hl7.org/fhir/data-types";
1457            case MODULEMETADATA: return "http://hl7.org/fhir/data-types";
1458            case MONEY: return "http://hl7.org/fhir/data-types";
1459            case NARRATIVE: return "http://hl7.org/fhir/data-types";
1460            case PARAMETERDEFINITION: return "http://hl7.org/fhir/data-types";
1461            case PERIOD: return "http://hl7.org/fhir/data-types";
1462            case QUANTITY: return "http://hl7.org/fhir/data-types";
1463            case RANGE: return "http://hl7.org/fhir/data-types";
1464            case RATIO: return "http://hl7.org/fhir/data-types";
1465            case REFERENCE: return "http://hl7.org/fhir/data-types";
1466            case SAMPLEDDATA: return "http://hl7.org/fhir/data-types";
1467            case SIGNATURE: return "http://hl7.org/fhir/data-types";
1468            case SIMPLEQUANTITY: return "http://hl7.org/fhir/data-types";
1469            case TIMING: return "http://hl7.org/fhir/data-types";
1470            case TRIGGERDEFINITION: return "http://hl7.org/fhir/data-types";
1471            case BASE64BINARY: return "http://hl7.org/fhir/data-types";
1472            case BOOLEAN: return "http://hl7.org/fhir/data-types";
1473            case CODE: return "http://hl7.org/fhir/data-types";
1474            case DATE: return "http://hl7.org/fhir/data-types";
1475            case DATETIME: return "http://hl7.org/fhir/data-types";
1476            case DECIMAL: return "http://hl7.org/fhir/data-types";
1477            case ID: return "http://hl7.org/fhir/data-types";
1478            case INSTANT: return "http://hl7.org/fhir/data-types";
1479            case INTEGER: return "http://hl7.org/fhir/data-types";
1480            case MARKDOWN: return "http://hl7.org/fhir/data-types";
1481            case OID: return "http://hl7.org/fhir/data-types";
1482            case POSITIVEINT: return "http://hl7.org/fhir/data-types";
1483            case STRING: return "http://hl7.org/fhir/data-types";
1484            case TIME: return "http://hl7.org/fhir/data-types";
1485            case UNSIGNEDINT: return "http://hl7.org/fhir/data-types";
1486            case URI: return "http://hl7.org/fhir/data-types";
1487            case UUID: return "http://hl7.org/fhir/data-types";
1488            case XHTML: return "http://hl7.org/fhir/data-types";
1489            case NULL: return null;
1490            default: return "?";
1491          }
1492        }
1493        public String getDefinition() {
1494          switch (this) {
1495            case ACTIONDEFINITION: return "The definition of an action to be performed. Some aspects of the definition are specified statically, and some aspects can be specified dynamically by referencing logic defined in a library.";
1496            case ADDRESS: return "An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations and which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
1497            case AGE: return "";
1498            case ANNOTATION: return "A  text note which also  contains information about who made the statement and when.";
1499            case ATTACHMENT: return "For referring to data content defined in other formats.";
1500            case BACKBONEELEMENT: return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
1501            case CODEABLECONCEPT: return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
1502            case CODING: return "A reference to a code defined by a terminology system.";
1503            case CONTACTPOINT: return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
1504            case COUNT: return "";
1505            case DATAREQUIREMENT: return "Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the data.";
1506            case DISTANCE: return "";
1507            case DURATION: return "";
1508            case ELEMENT: return "Base definition for all elements in a resource.";
1509            case ELEMENTDEFINITION: return "Captures constraints on each element within the resource, profile, or extension.";
1510            case EXTENSION: return "Optional Extensions Element - found in all resources.";
1511            case HUMANNAME: return "A human's name with the ability to identify parts and usage.";
1512            case IDENTIFIER: return "A technical identifier - identifies some entity uniquely and unambiguously.";
1513            case META: return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.";
1514            case MODULEMETADATA: return "The ModuleMetadata structure defines the common metadata elements used by quality improvement artifacts. This information includes descriptive and topical metadata to enable repository searches, as well as governance and evidentiary support information.";
1515            case MONEY: return "";
1516            case NARRATIVE: return "A human-readable formatted text, including images.";
1517            case PARAMETERDEFINITION: return "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.";
1518            case PERIOD: return "A time period defined by a start and end date and optionally time.";
1519            case QUANTITY: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
1520            case RANGE: return "A set of ordered Quantities defined by a low and high limit.";
1521            case RATIO: return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
1522            case REFERENCE: return "A reference from one resource to another.";
1523            case SAMPLEDDATA: return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
1524            case SIGNATURE: return "A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different Signature approaches have different utilities.";
1525            case SIMPLEQUANTITY: return "";
1526            case TIMING: return "Specifies an event that may occur multiple times. Timing schedules are used to record when things are expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds.";
1527            case TRIGGERDEFINITION: return "A description of a triggering event.";
1528            case BASE64BINARY: return "A stream of bytes";
1529            case BOOLEAN: return "Value of \"true\" or \"false\"";
1530            case CODE: return "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents";
1531            case DATE: return "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
1532            case DATETIME: return "A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.";
1533            case DECIMAL: return "A rational number with implicit precision";
1534            case ID: return "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.";
1535            case INSTANT: return "An instant in time - known at least to the second";
1536            case INTEGER: return "A whole number";
1537            case MARKDOWN: return "A string that may contain markdown syntax for optional processing by a mark down presentation engine";
1538            case OID: return "An oid represented as a URI";
1539            case POSITIVEINT: return "An integer with a value that is positive (e.g. >0)";
1540            case STRING: return "A sequence of Unicode characters";
1541            case TIME: return "A time during the day, with no date specified";
1542            case UNSIGNEDINT: return "An integer with a value that is not negative (e.g. >= 0)";
1543            case URI: return "String of characters used to identify a name or a resource";
1544            case UUID: return "A UUID, represented as a URI";
1545            case XHTML: return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
1546            case NULL: return null;
1547            default: return "?";
1548          }
1549        }
1550        public String getDisplay() {
1551          switch (this) {
1552            case ACTIONDEFINITION: return "ActionDefinition";
1553            case ADDRESS: return "Address";
1554            case AGE: return "Age";
1555            case ANNOTATION: return "Annotation";
1556            case ATTACHMENT: return "Attachment";
1557            case BACKBONEELEMENT: return "BackboneElement";
1558            case CODEABLECONCEPT: return "CodeableConcept";
1559            case CODING: return "Coding";
1560            case CONTACTPOINT: return "ContactPoint";
1561            case COUNT: return "Count";
1562            case DATAREQUIREMENT: return "DataRequirement";
1563            case DISTANCE: return "Distance";
1564            case DURATION: return "Duration";
1565            case ELEMENT: return "Element";
1566            case ELEMENTDEFINITION: return "ElementDefinition";
1567            case EXTENSION: return "Extension";
1568            case HUMANNAME: return "HumanName";
1569            case IDENTIFIER: return "Identifier";
1570            case META: return "Meta";
1571            case MODULEMETADATA: return "ModuleMetadata";
1572            case MONEY: return "Money";
1573            case NARRATIVE: return "Narrative";
1574            case PARAMETERDEFINITION: return "ParameterDefinition";
1575            case PERIOD: return "Period";
1576            case QUANTITY: return "Quantity";
1577            case RANGE: return "Range";
1578            case RATIO: return "Ratio";
1579            case REFERENCE: return "Reference";
1580            case SAMPLEDDATA: return "SampledData";
1581            case SIGNATURE: return "Signature";
1582            case SIMPLEQUANTITY: return "SimpleQuantity";
1583            case TIMING: return "Timing";
1584            case TRIGGERDEFINITION: return "TriggerDefinition";
1585            case BASE64BINARY: return "base64Binary";
1586            case BOOLEAN: return "boolean";
1587            case CODE: return "code";
1588            case DATE: return "date";
1589            case DATETIME: return "dateTime";
1590            case DECIMAL: return "decimal";
1591            case ID: return "id";
1592            case INSTANT: return "instant";
1593            case INTEGER: return "integer";
1594            case MARKDOWN: return "markdown";
1595            case OID: return "oid";
1596            case POSITIVEINT: return "positiveInt";
1597            case STRING: return "string";
1598            case TIME: return "time";
1599            case UNSIGNEDINT: return "unsignedInt";
1600            case URI: return "uri";
1601            case UUID: return "uuid";
1602            case XHTML: return "XHTML";
1603            case NULL: return null;
1604            default: return "?";
1605          }
1606        }
1607    }
1608
1609  public static class DataTypeEnumFactory implements EnumFactory<DataType> {
1610    public DataType fromCode(String codeString) throws IllegalArgumentException {
1611      if (codeString == null || "".equals(codeString))
1612            if (codeString == null || "".equals(codeString))
1613                return null;
1614        if ("ActionDefinition".equals(codeString))
1615          return DataType.ACTIONDEFINITION;
1616        if ("Address".equals(codeString))
1617          return DataType.ADDRESS;
1618        if ("Age".equals(codeString))
1619          return DataType.AGE;
1620        if ("Annotation".equals(codeString))
1621          return DataType.ANNOTATION;
1622        if ("Attachment".equals(codeString))
1623          return DataType.ATTACHMENT;
1624        if ("BackboneElement".equals(codeString))
1625          return DataType.BACKBONEELEMENT;
1626        if ("CodeableConcept".equals(codeString))
1627          return DataType.CODEABLECONCEPT;
1628        if ("Coding".equals(codeString))
1629          return DataType.CODING;
1630        if ("ContactPoint".equals(codeString))
1631          return DataType.CONTACTPOINT;
1632        if ("Count".equals(codeString))
1633          return DataType.COUNT;
1634        if ("DataRequirement".equals(codeString))
1635          return DataType.DATAREQUIREMENT;
1636        if ("Distance".equals(codeString))
1637          return DataType.DISTANCE;
1638        if ("Duration".equals(codeString))
1639          return DataType.DURATION;
1640        if ("Element".equals(codeString))
1641          return DataType.ELEMENT;
1642        if ("ElementDefinition".equals(codeString))
1643          return DataType.ELEMENTDEFINITION;
1644        if ("Extension".equals(codeString))
1645          return DataType.EXTENSION;
1646        if ("HumanName".equals(codeString))
1647          return DataType.HUMANNAME;
1648        if ("Identifier".equals(codeString))
1649          return DataType.IDENTIFIER;
1650        if ("Meta".equals(codeString))
1651          return DataType.META;
1652        if ("ModuleMetadata".equals(codeString))
1653          return DataType.MODULEMETADATA;
1654        if ("Money".equals(codeString))
1655          return DataType.MONEY;
1656        if ("Narrative".equals(codeString))
1657          return DataType.NARRATIVE;
1658        if ("ParameterDefinition".equals(codeString))
1659          return DataType.PARAMETERDEFINITION;
1660        if ("Period".equals(codeString))
1661          return DataType.PERIOD;
1662        if ("Quantity".equals(codeString))
1663          return DataType.QUANTITY;
1664        if ("Range".equals(codeString))
1665          return DataType.RANGE;
1666        if ("Ratio".equals(codeString))
1667          return DataType.RATIO;
1668        if ("Reference".equals(codeString))
1669          return DataType.REFERENCE;
1670        if ("SampledData".equals(codeString))
1671          return DataType.SAMPLEDDATA;
1672        if ("Signature".equals(codeString))
1673          return DataType.SIGNATURE;
1674        if ("SimpleQuantity".equals(codeString))
1675          return DataType.SIMPLEQUANTITY;
1676        if ("Timing".equals(codeString))
1677          return DataType.TIMING;
1678        if ("TriggerDefinition".equals(codeString))
1679          return DataType.TRIGGERDEFINITION;
1680        if ("base64Binary".equals(codeString))
1681          return DataType.BASE64BINARY;
1682        if ("boolean".equals(codeString))
1683          return DataType.BOOLEAN;
1684        if ("code".equals(codeString))
1685          return DataType.CODE;
1686        if ("date".equals(codeString))
1687          return DataType.DATE;
1688        if ("dateTime".equals(codeString))
1689          return DataType.DATETIME;
1690        if ("decimal".equals(codeString))
1691          return DataType.DECIMAL;
1692        if ("id".equals(codeString))
1693          return DataType.ID;
1694        if ("instant".equals(codeString))
1695          return DataType.INSTANT;
1696        if ("integer".equals(codeString))
1697          return DataType.INTEGER;
1698        if ("markdown".equals(codeString))
1699          return DataType.MARKDOWN;
1700        if ("oid".equals(codeString))
1701          return DataType.OID;
1702        if ("positiveInt".equals(codeString))
1703          return DataType.POSITIVEINT;
1704        if ("string".equals(codeString))
1705          return DataType.STRING;
1706        if ("time".equals(codeString))
1707          return DataType.TIME;
1708        if ("unsignedInt".equals(codeString))
1709          return DataType.UNSIGNEDINT;
1710        if ("uri".equals(codeString))
1711          return DataType.URI;
1712        if ("uuid".equals(codeString))
1713          return DataType.UUID;
1714        if ("xhtml".equals(codeString))
1715          return DataType.XHTML;
1716        throw new IllegalArgumentException("Unknown DataType code '"+codeString+"'");
1717        }
1718        public Enumeration<DataType> fromType(Base code) throws FHIRException {
1719          if (code == null || code.isEmpty())
1720            return null;
1721          String codeString = ((PrimitiveType) code).asStringValue();
1722          if (codeString == null || "".equals(codeString))
1723            return null;
1724        if ("ActionDefinition".equals(codeString))
1725          return new Enumeration<DataType>(this, DataType.ACTIONDEFINITION);
1726        if ("Address".equals(codeString))
1727          return new Enumeration<DataType>(this, DataType.ADDRESS);
1728        if ("Age".equals(codeString))
1729          return new Enumeration<DataType>(this, DataType.AGE);
1730        if ("Annotation".equals(codeString))
1731          return new Enumeration<DataType>(this, DataType.ANNOTATION);
1732        if ("Attachment".equals(codeString))
1733          return new Enumeration<DataType>(this, DataType.ATTACHMENT);
1734        if ("BackboneElement".equals(codeString))
1735          return new Enumeration<DataType>(this, DataType.BACKBONEELEMENT);
1736        if ("CodeableConcept".equals(codeString))
1737          return new Enumeration<DataType>(this, DataType.CODEABLECONCEPT);
1738        if ("Coding".equals(codeString))
1739          return new Enumeration<DataType>(this, DataType.CODING);
1740        if ("ContactPoint".equals(codeString))
1741          return new Enumeration<DataType>(this, DataType.CONTACTPOINT);
1742        if ("Count".equals(codeString))
1743          return new Enumeration<DataType>(this, DataType.COUNT);
1744        if ("DataRequirement".equals(codeString))
1745          return new Enumeration<DataType>(this, DataType.DATAREQUIREMENT);
1746        if ("Distance".equals(codeString))
1747          return new Enumeration<DataType>(this, DataType.DISTANCE);
1748        if ("Duration".equals(codeString))
1749          return new Enumeration<DataType>(this, DataType.DURATION);
1750        if ("Element".equals(codeString))
1751          return new Enumeration<DataType>(this, DataType.ELEMENT);
1752        if ("ElementDefinition".equals(codeString))
1753          return new Enumeration<DataType>(this, DataType.ELEMENTDEFINITION);
1754        if ("Extension".equals(codeString))
1755          return new Enumeration<DataType>(this, DataType.EXTENSION);
1756        if ("HumanName".equals(codeString))
1757          return new Enumeration<DataType>(this, DataType.HUMANNAME);
1758        if ("Identifier".equals(codeString))
1759          return new Enumeration<DataType>(this, DataType.IDENTIFIER);
1760        if ("Meta".equals(codeString))
1761          return new Enumeration<DataType>(this, DataType.META);
1762        if ("ModuleMetadata".equals(codeString))
1763          return new Enumeration<DataType>(this, DataType.MODULEMETADATA);
1764        if ("Money".equals(codeString))
1765          return new Enumeration<DataType>(this, DataType.MONEY);
1766        if ("Narrative".equals(codeString))
1767          return new Enumeration<DataType>(this, DataType.NARRATIVE);
1768        if ("ParameterDefinition".equals(codeString))
1769          return new Enumeration<DataType>(this, DataType.PARAMETERDEFINITION);
1770        if ("Period".equals(codeString))
1771          return new Enumeration<DataType>(this, DataType.PERIOD);
1772        if ("Quantity".equals(codeString))
1773          return new Enumeration<DataType>(this, DataType.QUANTITY);
1774        if ("Range".equals(codeString))
1775          return new Enumeration<DataType>(this, DataType.RANGE);
1776        if ("Ratio".equals(codeString))
1777          return new Enumeration<DataType>(this, DataType.RATIO);
1778        if ("Reference".equals(codeString))
1779          return new Enumeration<DataType>(this, DataType.REFERENCE);
1780        if ("SampledData".equals(codeString))
1781          return new Enumeration<DataType>(this, DataType.SAMPLEDDATA);
1782        if ("Signature".equals(codeString))
1783          return new Enumeration<DataType>(this, DataType.SIGNATURE);
1784        if ("SimpleQuantity".equals(codeString))
1785          return new Enumeration<DataType>(this, DataType.SIMPLEQUANTITY);
1786        if ("Timing".equals(codeString))
1787          return new Enumeration<DataType>(this, DataType.TIMING);
1788        if ("TriggerDefinition".equals(codeString))
1789          return new Enumeration<DataType>(this, DataType.TRIGGERDEFINITION);
1790        if ("base64Binary".equals(codeString))
1791          return new Enumeration<DataType>(this, DataType.BASE64BINARY);
1792        if ("boolean".equals(codeString))
1793          return new Enumeration<DataType>(this, DataType.BOOLEAN);
1794        if ("code".equals(codeString))
1795          return new Enumeration<DataType>(this, DataType.CODE);
1796        if ("date".equals(codeString))
1797          return new Enumeration<DataType>(this, DataType.DATE);
1798        if ("dateTime".equals(codeString))
1799          return new Enumeration<DataType>(this, DataType.DATETIME);
1800        if ("decimal".equals(codeString))
1801          return new Enumeration<DataType>(this, DataType.DECIMAL);
1802        if ("id".equals(codeString))
1803          return new Enumeration<DataType>(this, DataType.ID);
1804        if ("instant".equals(codeString))
1805          return new Enumeration<DataType>(this, DataType.INSTANT);
1806        if ("integer".equals(codeString))
1807          return new Enumeration<DataType>(this, DataType.INTEGER);
1808        if ("markdown".equals(codeString))
1809          return new Enumeration<DataType>(this, DataType.MARKDOWN);
1810        if ("oid".equals(codeString))
1811          return new Enumeration<DataType>(this, DataType.OID);
1812        if ("positiveInt".equals(codeString))
1813          return new Enumeration<DataType>(this, DataType.POSITIVEINT);
1814        if ("string".equals(codeString))
1815          return new Enumeration<DataType>(this, DataType.STRING);
1816        if ("time".equals(codeString))
1817          return new Enumeration<DataType>(this, DataType.TIME);
1818        if ("unsignedInt".equals(codeString))
1819          return new Enumeration<DataType>(this, DataType.UNSIGNEDINT);
1820        if ("uri".equals(codeString))
1821          return new Enumeration<DataType>(this, DataType.URI);
1822        if ("uuid".equals(codeString))
1823          return new Enumeration<DataType>(this, DataType.UUID);
1824        if ("xhtml".equals(codeString))
1825          return new Enumeration<DataType>(this, DataType.XHTML);
1826        throw new FHIRException("Unknown DataType code '"+codeString+"'");
1827        }
1828    public String toCode(DataType code) {
1829      if (code == DataType.ACTIONDEFINITION)
1830        return "ActionDefinition";
1831      if (code == DataType.ADDRESS)
1832        return "Address";
1833      if (code == DataType.AGE)
1834        return "Age";
1835      if (code == DataType.ANNOTATION)
1836        return "Annotation";
1837      if (code == DataType.ATTACHMENT)
1838        return "Attachment";
1839      if (code == DataType.BACKBONEELEMENT)
1840        return "BackboneElement";
1841      if (code == DataType.CODEABLECONCEPT)
1842        return "CodeableConcept";
1843      if (code == DataType.CODING)
1844        return "Coding";
1845      if (code == DataType.CONTACTPOINT)
1846        return "ContactPoint";
1847      if (code == DataType.COUNT)
1848        return "Count";
1849      if (code == DataType.DATAREQUIREMENT)
1850        return "DataRequirement";
1851      if (code == DataType.DISTANCE)
1852        return "Distance";
1853      if (code == DataType.DURATION)
1854        return "Duration";
1855      if (code == DataType.ELEMENT)
1856        return "Element";
1857      if (code == DataType.ELEMENTDEFINITION)
1858        return "ElementDefinition";
1859      if (code == DataType.EXTENSION)
1860        return "Extension";
1861      if (code == DataType.HUMANNAME)
1862        return "HumanName";
1863      if (code == DataType.IDENTIFIER)
1864        return "Identifier";
1865      if (code == DataType.META)
1866        return "Meta";
1867      if (code == DataType.MODULEMETADATA)
1868        return "ModuleMetadata";
1869      if (code == DataType.MONEY)
1870        return "Money";
1871      if (code == DataType.NARRATIVE)
1872        return "Narrative";
1873      if (code == DataType.PARAMETERDEFINITION)
1874        return "ParameterDefinition";
1875      if (code == DataType.PERIOD)
1876        return "Period";
1877      if (code == DataType.QUANTITY)
1878        return "Quantity";
1879      if (code == DataType.RANGE)
1880        return "Range";
1881      if (code == DataType.RATIO)
1882        return "Ratio";
1883      if (code == DataType.REFERENCE)
1884        return "Reference";
1885      if (code == DataType.SAMPLEDDATA)
1886        return "SampledData";
1887      if (code == DataType.SIGNATURE)
1888        return "Signature";
1889      if (code == DataType.SIMPLEQUANTITY)
1890        return "SimpleQuantity";
1891      if (code == DataType.TIMING)
1892        return "Timing";
1893      if (code == DataType.TRIGGERDEFINITION)
1894        return "TriggerDefinition";
1895      if (code == DataType.BASE64BINARY)
1896        return "base64Binary";
1897      if (code == DataType.BOOLEAN)
1898        return "boolean";
1899      if (code == DataType.CODE)
1900        return "code";
1901      if (code == DataType.DATE)
1902        return "date";
1903      if (code == DataType.DATETIME)
1904        return "dateTime";
1905      if (code == DataType.DECIMAL)
1906        return "decimal";
1907      if (code == DataType.ID)
1908        return "id";
1909      if (code == DataType.INSTANT)
1910        return "instant";
1911      if (code == DataType.INTEGER)
1912        return "integer";
1913      if (code == DataType.MARKDOWN)
1914        return "markdown";
1915      if (code == DataType.OID)
1916        return "oid";
1917      if (code == DataType.POSITIVEINT)
1918        return "positiveInt";
1919      if (code == DataType.STRING)
1920        return "string";
1921      if (code == DataType.TIME)
1922        return "time";
1923      if (code == DataType.UNSIGNEDINT)
1924        return "unsignedInt";
1925      if (code == DataType.URI)
1926        return "uri";
1927      if (code == DataType.UUID)
1928        return "uuid";
1929      if (code == DataType.XHTML)
1930        return "xhtml";
1931      return "?";
1932      }
1933    public String toSystem(DataType code) {
1934      return code.getSystem();
1935      }
1936    }
1937
1938    public enum DocumentReferenceStatus {
1939        /**
1940         * This is the current reference for this document.
1941         */
1942        CURRENT, 
1943        /**
1944         * This reference has been superseded by another reference.
1945         */
1946        SUPERSEDED, 
1947        /**
1948         * This reference was created in error.
1949         */
1950        ENTEREDINERROR, 
1951        /**
1952         * added to help the parsers
1953         */
1954        NULL;
1955        public static DocumentReferenceStatus fromCode(String codeString) throws FHIRException {
1956            if (codeString == null || "".equals(codeString))
1957                return null;
1958        if ("current".equals(codeString))
1959          return CURRENT;
1960        if ("superseded".equals(codeString))
1961          return SUPERSEDED;
1962        if ("entered-in-error".equals(codeString))
1963          return ENTEREDINERROR;
1964        throw new FHIRException("Unknown DocumentReferenceStatus code '"+codeString+"'");
1965        }
1966        public String toCode() {
1967          switch (this) {
1968            case CURRENT: return "current";
1969            case SUPERSEDED: return "superseded";
1970            case ENTEREDINERROR: return "entered-in-error";
1971            case NULL: return null;
1972            default: return "?";
1973          }
1974        }
1975        public String getSystem() {
1976          switch (this) {
1977            case CURRENT: return "http://hl7.org/fhir/document-reference-status";
1978            case SUPERSEDED: return "http://hl7.org/fhir/document-reference-status";
1979            case ENTEREDINERROR: return "http://hl7.org/fhir/document-reference-status";
1980            case NULL: return null;
1981            default: return "?";
1982          }
1983        }
1984        public String getDefinition() {
1985          switch (this) {
1986            case CURRENT: return "This is the current reference for this document.";
1987            case SUPERSEDED: return "This reference has been superseded by another reference.";
1988            case ENTEREDINERROR: return "This reference was created in error.";
1989            case NULL: return null;
1990            default: return "?";
1991          }
1992        }
1993        public String getDisplay() {
1994          switch (this) {
1995            case CURRENT: return "Current";
1996            case SUPERSEDED: return "Superseded";
1997            case ENTEREDINERROR: return "Entered in Error";
1998            case NULL: return null;
1999            default: return "?";
2000          }
2001        }
2002    }
2003
2004  public static class DocumentReferenceStatusEnumFactory implements EnumFactory<DocumentReferenceStatus> {
2005    public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException {
2006      if (codeString == null || "".equals(codeString))
2007            if (codeString == null || "".equals(codeString))
2008                return null;
2009        if ("current".equals(codeString))
2010          return DocumentReferenceStatus.CURRENT;
2011        if ("superseded".equals(codeString))
2012          return DocumentReferenceStatus.SUPERSEDED;
2013        if ("entered-in-error".equals(codeString))
2014          return DocumentReferenceStatus.ENTEREDINERROR;
2015        throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'");
2016        }
2017        public Enumeration<DocumentReferenceStatus> fromType(Base code) throws FHIRException {
2018          if (code == null || code.isEmpty())
2019            return null;
2020          String codeString = ((PrimitiveType) code).asStringValue();
2021          if (codeString == null || "".equals(codeString))
2022            return null;
2023        if ("current".equals(codeString))
2024          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.CURRENT);
2025        if ("superseded".equals(codeString))
2026          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.SUPERSEDED);
2027        if ("entered-in-error".equals(codeString))
2028          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.ENTEREDINERROR);
2029        throw new FHIRException("Unknown DocumentReferenceStatus code '"+codeString+"'");
2030        }
2031    public String toCode(DocumentReferenceStatus code) {
2032      if (code == DocumentReferenceStatus.CURRENT)
2033        return "current";
2034      if (code == DocumentReferenceStatus.SUPERSEDED)
2035        return "superseded";
2036      if (code == DocumentReferenceStatus.ENTEREDINERROR)
2037        return "entered-in-error";
2038      return "?";
2039      }
2040    public String toSystem(DocumentReferenceStatus code) {
2041      return code.getSystem();
2042      }
2043    }
2044
2045    public enum FHIRAllTypes {
2046        /**
2047         * The definition of an action to be performed. Some aspects of the definition are specified statically, and some aspects can be specified dynamically by referencing logic defined in a library.
2048         */
2049        ACTIONDEFINITION, 
2050        /**
2051         * An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations and which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.
2052         */
2053        ADDRESS, 
2054        /**
2055         * null
2056         */
2057        AGE, 
2058        /**
2059         * A  text note which also  contains information about who made the statement and when.
2060         */
2061        ANNOTATION, 
2062        /**
2063         * For referring to data content defined in other formats.
2064         */
2065        ATTACHMENT, 
2066        /**
2067         * Base definition for all elements that are defined inside a resource - but not those in a data type.
2068         */
2069        BACKBONEELEMENT, 
2070        /**
2071         * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
2072         */
2073        CODEABLECONCEPT, 
2074        /**
2075         * A reference to a code defined by a terminology system.
2076         */
2077        CODING, 
2078        /**
2079         * Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
2080         */
2081        CONTACTPOINT, 
2082        /**
2083         * null
2084         */
2085        COUNT, 
2086        /**
2087         * Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the data.
2088         */
2089        DATAREQUIREMENT, 
2090        /**
2091         * null
2092         */
2093        DISTANCE, 
2094        /**
2095         * null
2096         */
2097        DURATION, 
2098        /**
2099         * Base definition for all elements in a resource.
2100         */
2101        ELEMENT, 
2102        /**
2103         * Captures constraints on each element within the resource, profile, or extension.
2104         */
2105        ELEMENTDEFINITION, 
2106        /**
2107         * Optional Extensions Element - found in all resources.
2108         */
2109        EXTENSION, 
2110        /**
2111         * A human's name with the ability to identify parts and usage.
2112         */
2113        HUMANNAME, 
2114        /**
2115         * A technical identifier - identifies some entity uniquely and unambiguously.
2116         */
2117        IDENTIFIER, 
2118        /**
2119         * The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.
2120         */
2121        META, 
2122        /**
2123         * The ModuleMetadata structure defines the common metadata elements used by quality improvement artifacts. This information includes descriptive and topical metadata to enable repository searches, as well as governance and evidentiary support information.
2124         */
2125        MODULEMETADATA, 
2126        /**
2127         * null
2128         */
2129        MONEY, 
2130        /**
2131         * A human-readable formatted text, including images.
2132         */
2133        NARRATIVE, 
2134        /**
2135         * The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.
2136         */
2137        PARAMETERDEFINITION, 
2138        /**
2139         * A time period defined by a start and end date and optionally time.
2140         */
2141        PERIOD, 
2142        /**
2143         * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.
2144         */
2145        QUANTITY, 
2146        /**
2147         * A set of ordered Quantities defined by a low and high limit.
2148         */
2149        RANGE, 
2150        /**
2151         * A relationship of two Quantity values - expressed as a numerator and a denominator.
2152         */
2153        RATIO, 
2154        /**
2155         * A reference from one resource to another.
2156         */
2157        REFERENCE, 
2158        /**
2159         * A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
2160         */
2161        SAMPLEDDATA, 
2162        /**
2163         * A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different Signature approaches have different utilities.
2164         */
2165        SIGNATURE, 
2166        /**
2167         * null
2168         */
2169        SIMPLEQUANTITY, 
2170        /**
2171         * Specifies an event that may occur multiple times. Timing schedules are used to record when things are expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds.
2172         */
2173        TIMING, 
2174        /**
2175         * A description of a triggering event.
2176         */
2177        TRIGGERDEFINITION, 
2178        /**
2179         * A stream of bytes
2180         */
2181        BASE64BINARY, 
2182        /**
2183         * Value of "true" or "false"
2184         */
2185        BOOLEAN, 
2186        /**
2187         * A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents
2188         */
2189        CODE, 
2190        /**
2191         * A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.
2192         */
2193        DATE, 
2194        /**
2195         * A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.
2196         */
2197        DATETIME, 
2198        /**
2199         * A rational number with implicit precision
2200         */
2201        DECIMAL, 
2202        /**
2203         * Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.
2204         */
2205        ID, 
2206        /**
2207         * An instant in time - known at least to the second
2208         */
2209        INSTANT, 
2210        /**
2211         * A whole number
2212         */
2213        INTEGER, 
2214        /**
2215         * A string that may contain markdown syntax for optional processing by a mark down presentation engine
2216         */
2217        MARKDOWN, 
2218        /**
2219         * An oid represented as a URI
2220         */
2221        OID, 
2222        /**
2223         * An integer with a value that is positive (e.g. >0)
2224         */
2225        POSITIVEINT, 
2226        /**
2227         * A sequence of Unicode characters
2228         */
2229        STRING, 
2230        /**
2231         * A time during the day, with no date specified
2232         */
2233        TIME, 
2234        /**
2235         * An integer with a value that is not negative (e.g. >= 0)
2236         */
2237        UNSIGNEDINT, 
2238        /**
2239         * String of characters used to identify a name or a resource
2240         */
2241        URI, 
2242        /**
2243         * A UUID, represented as a URI
2244         */
2245        UUID, 
2246        /**
2247         * XHTML format, as defined by W3C, but restricted usage (mainly, no active content)
2248         */
2249        XHTML, 
2250        /**
2251         * A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centres, etc.
2252         */
2253        ACCOUNT, 
2254        /**
2255         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
2256         */
2257        ALLERGYINTOLERANCE, 
2258        /**
2259         * A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).
2260         */
2261        APPOINTMENT, 
2262        /**
2263         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
2264         */
2265        APPOINTMENTRESPONSE, 
2266        /**
2267         * A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.
2268         */
2269        AUDITEVENT, 
2270        /**
2271         * Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.
2272         */
2273        BASIC, 
2274        /**
2275         * A binary resource can contain any content, whether text, image, pdf, zip archive, etc.
2276         */
2277        BINARY, 
2278        /**
2279         * Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
2280         */
2281        BODYSITE, 
2282        /**
2283         * A container for a collection of resources.
2284         */
2285        BUNDLE, 
2286        /**
2287         * Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.
2288         */
2289        CAREPLAN, 
2290        /**
2291         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
2292         */
2293        CARETEAM, 
2294        /**
2295         * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
2296         */
2297        CLAIM, 
2298        /**
2299         * This resource provides the adjudication details from the processing of a Claim resource.
2300         */
2301        CLAIMRESPONSE, 
2302        /**
2303         * A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called "ClinicalImpression" rather than "ClinicalAssessment" to avoid confusion with the recording of assessment tools such as Apgar score.
2304         */
2305        CLINICALIMPRESSION, 
2306        /**
2307         * A code system resource specifies a set of codes drawn from one or more code systems.
2308         */
2309        CODESYSTEM, 
2310        /**
2311         * An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.
2312         */
2313        COMMUNICATION, 
2314        /**
2315         * A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.
2316         */
2317        COMMUNICATIONREQUEST, 
2318        /**
2319         * A compartment definition that defines how resources are accessed on a server.
2320         */
2321        COMPARTMENTDEFINITION, 
2322        /**
2323         * A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.
2324         */
2325        COMPOSITION, 
2326        /**
2327         * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.
2328         */
2329        CONCEPTMAP, 
2330        /**
2331         * Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a diagnosis during an encounter; populating a problem list or a summary statement, such as a discharge summary.
2332         */
2333        CONDITION, 
2334        /**
2335         * A conformance statement is a set of capabilities of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
2336         */
2337        CONFORMANCE, 
2338        /**
2339         * A formal agreement between parties regarding the conduct of business, exchange of information or other matters.
2340         */
2341        CONTRACT, 
2342        /**
2343         * Financial instrument which may be used to pay for or reimburse health care products and services.
2344         */
2345        COVERAGE, 
2346        /**
2347         * The formal description of a single piece of information that can be gathered and reported.
2348         */
2349        DATAELEMENT, 
2350        /**
2351         * This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.
2352         */
2353        DECISIONSUPPORTRULE, 
2354        /**
2355         * The DecisionSupportServiceModule describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.
2356         */
2357        DECISIONSUPPORTSERVICEMODULE, 
2358        /**
2359         * Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.
2360         */
2361        DETECTEDISSUE, 
2362        /**
2363         * This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.
2364         */
2365        DEVICE, 
2366        /**
2367         * Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.
2368         */
2369        DEVICECOMPONENT, 
2370        /**
2371         * Describes a measurement, calculation or setting capability of a medical device.
2372         */
2373        DEVICEMETRIC, 
2374        /**
2375         * Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker.
2376         */
2377        DEVICEUSEREQUEST, 
2378        /**
2379         * A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.
2380         */
2381        DEVICEUSESTATEMENT, 
2382        /**
2383         * A record of a request for a diagnostic investigation service to be performed.
2384         */
2385        DIAGNOSTICORDER, 
2386        /**
2387         * The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.
2388         */
2389        DIAGNOSTICREPORT, 
2390        /**
2391         * A manifest that defines a set of documents.
2392         */
2393        DOCUMENTMANIFEST, 
2394        /**
2395         * A reference to a document .
2396         */
2397        DOCUMENTREFERENCE, 
2398        /**
2399         * A resource that includes narrative, extensions, and contained resources.
2400         */
2401        DOMAINRESOURCE, 
2402        /**
2403         * This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service.
2404         */
2405        ELIGIBILITYREQUEST, 
2406        /**
2407         * This resource provides eligibility and plan details from the processing of an Eligibility resource.
2408         */
2409        ELIGIBILITYRESPONSE, 
2410        /**
2411         * An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.
2412         */
2413        ENCOUNTER, 
2414        /**
2415         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
2416         */
2417        ENROLLMENTREQUEST, 
2418        /**
2419         * This resource provides enrollment and plan details from the processing of an Enrollment resource.
2420         */
2421        ENROLLMENTRESPONSE, 
2422        /**
2423         * An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.
2424         */
2425        EPISODEOFCARE, 
2426        /**
2427         * Resource to define constraints on the Expansion of a FHIR ValueSet.
2428         */
2429        EXPANSIONPROFILE, 
2430        /**
2431         * This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.
2432         */
2433        EXPLANATIONOFBENEFIT, 
2434        /**
2435         * Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.
2436         */
2437        FAMILYMEMBERHISTORY, 
2438        /**
2439         * Prospective warnings of potential issues when providing care to the patient.
2440         */
2441        FLAG, 
2442        /**
2443         * Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.
2444         */
2445        GOAL, 
2446        /**
2447         * Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.
2448         */
2449        GROUP, 
2450        /**
2451         * A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.
2452         */
2453        GUIDANCERESPONSE, 
2454        /**
2455         * The details of a healthcare service available at a location.
2456         */
2457        HEALTHCARESERVICE, 
2458        /**
2459         * A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingExcerpt resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance ("cine" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
2460         */
2461        IMAGINGEXCERPT, 
2462        /**
2463         * A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance ("cine" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
2464         */
2465        IMAGINGOBJECTSELECTION, 
2466        /**
2467         * Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.
2468         */
2469        IMAGINGSTUDY, 
2470        /**
2471         * Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
2472         */
2473        IMMUNIZATION, 
2474        /**
2475         * A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.
2476         */
2477        IMMUNIZATIONRECOMMENDATION, 
2478        /**
2479         * A set of rules or how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole, and to publish a computable definition of all the parts.
2480         */
2481        IMPLEMENTATIONGUIDE, 
2482        /**
2483         * The Library resource provides a representation container for knowledge artifact component definitions. It is effectively an exposure of the header information for a CQL/ELM library.
2484         */
2485        LIBRARY, 
2486        /**
2487         * Identifies two or more records (resource instances) that are referring to the same real-world "occurrence".
2488         */
2489        LINKAGE, 
2490        /**
2491         * A set of information summarized from a list of other resources.
2492         */
2493        LIST, 
2494        /**
2495         * Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.
2496         */
2497        LOCATION, 
2498        /**
2499         * The Measure resource provides the definition of a quality measure.
2500         */
2501        MEASURE, 
2502        /**
2503         * The MeasureReport resource contains the results of evaluating a measure.
2504         */
2505        MEASUREREPORT, 
2506        /**
2507         * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
2508         */
2509        MEDIA, 
2510        /**
2511         * This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.
2512         */
2513        MEDICATION, 
2514        /**
2515         * Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.
2516         */
2517        MEDICATIONADMINISTRATION, 
2518        /**
2519         * Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.
2520         */
2521        MEDICATIONDISPENSE, 
2522        /**
2523         * An order for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationOrder" rather than "MedicationPrescription" to generalize the use across inpatient and outpatient settings as well as for care plans, etc.
2524         */
2525        MEDICATIONORDER, 
2526        /**
2527         * A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from e.g. the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains 
2528
2529The primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.
2530         */
2531        MEDICATIONSTATEMENT, 
2532        /**
2533         * The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.
2534         */
2535        MESSAGEHEADER, 
2536        /**
2537         * The ModuleDefinition resource defines the data requirements for a quality artifact.
2538         */
2539        MODULEDEFINITION, 
2540        /**
2541         * A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a "System" used within the Identifier and Coding data types.
2542         */
2543        NAMINGSYSTEM, 
2544        /**
2545         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
2546         */
2547        NUTRITIONORDER, 
2548        /**
2549         * Measurements and simple assertions made about a patient, device or other subject.
2550         */
2551        OBSERVATION, 
2552        /**
2553         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
2554         */
2555        OPERATIONDEFINITION, 
2556        /**
2557         * A collection of error, warning or information messages that result from a system action.
2558         */
2559        OPERATIONOUTCOME, 
2560        /**
2561         * A request to perform an action.
2562         */
2563        ORDER, 
2564        /**
2565         * A response to an order.
2566         */
2567        ORDERRESPONSE, 
2568        /**
2569         * This resource allows for the definition of an order set as a sharable, consumable, and executable artifact in support of clinical decision support.
2570         */
2571        ORDERSET, 
2572        /**
2573         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.
2574         */
2575        ORGANIZATION, 
2576        /**
2577         * This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.
2578         */
2579        PARAMETERS, 
2580        /**
2581         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
2582         */
2583        PATIENT, 
2584        /**
2585         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
2586         */
2587        PAYMENTNOTICE, 
2588        /**
2589         * This resource provides payment details and claim references supporting a bulk payment.
2590         */
2591        PAYMENTRECONCILIATION, 
2592        /**
2593         * Demographics and administrative information about a person independent of a specific health-related context.
2594         */
2595        PERSON, 
2596        /**
2597         * A person who is directly or indirectly involved in the provisioning of healthcare.
2598         */
2599        PRACTITIONER, 
2600        /**
2601         * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
2602         */
2603        PRACTITIONERROLE, 
2604        /**
2605         * An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.
2606         */
2607        PROCEDURE, 
2608        /**
2609         * A request for a procedure to be performed. May be a proposal or an order.
2610         */
2611        PROCEDUREREQUEST, 
2612        /**
2613         * This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.
2614         */
2615        PROCESSREQUEST, 
2616        /**
2617         * This resource provides processing status, errors and notes from the processing of a resource.
2618         */
2619        PROCESSRESPONSE, 
2620        /**
2621         * A definition of behaviors to be taken in particular circumstances, often including conditions, options and other decision points.
2622         */
2623        PROTOCOL, 
2624        /**
2625         * Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.
2626         */
2627        PROVENANCE, 
2628        /**
2629         * A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.
2630         */
2631        QUESTIONNAIRE, 
2632        /**
2633         * A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.
2634         */
2635        QUESTIONNAIRERESPONSE, 
2636        /**
2637         * Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.
2638         */
2639        REFERRALREQUEST, 
2640        /**
2641         * Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
2642         */
2643        RELATEDPERSON, 
2644        /**
2645         * This is the base resource type for everything.
2646         */
2647        RESOURCE, 
2648        /**
2649         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
2650         */
2651        RISKASSESSMENT, 
2652        /**
2653         * A container for slot(s) of time that may be available for booking appointments.
2654         */
2655        SCHEDULE, 
2656        /**
2657         * A search parameter that defines a named search item that can be used to search/filter on a resource.
2658         */
2659        SEARCHPARAMETER, 
2660        /**
2661         * Variation and Sequence data.
2662         */
2663        SEQUENCE, 
2664        /**
2665         * A slot of time on a schedule that may be available for booking appointments.
2666         */
2667        SLOT, 
2668        /**
2669         * A sample to be used for analysis.
2670         */
2671        SPECIMEN, 
2672        /**
2673         * A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types.
2674         */
2675        STRUCTUREDEFINITION, 
2676        /**
2677         * A Map of relationships between 2 structures that can be used to transform data.
2678         */
2679        STRUCTUREMAP, 
2680        /**
2681         * The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system is able to take an appropriate action.
2682         */
2683        SUBSCRIPTION, 
2684        /**
2685         * A homogeneous material with a definite composition.
2686         */
2687        SUBSTANCE, 
2688        /**
2689         * Record of delivery of what is supplied.
2690         */
2691        SUPPLYDELIVERY, 
2692        /**
2693         * A record of a request for a medication, substance or device used in the healthcare setting.
2694         */
2695        SUPPLYREQUEST, 
2696        /**
2697         * A task to be performed.
2698         */
2699        TASK, 
2700        /**
2701         * TestScript is a resource that specifies a suite of tests against a FHIR server implementation to determine compliance against the FHIR specification.
2702         */
2703        TESTSCRIPT, 
2704        /**
2705         * A value set specifies a set of codes drawn from one or more code systems.
2706         */
2707        VALUESET, 
2708        /**
2709         * An authorization for the supply of glasses and/or contact lenses to a patient.
2710         */
2711        VISIONPRESCRIPTION, 
2712        /**
2713         * A place holder that means any kind of data type
2714         */
2715        TYPE, 
2716        /**
2717         * A place holder that means any kind of resource
2718         */
2719        ANY, 
2720        /**
2721         * added to help the parsers
2722         */
2723        NULL;
2724        public static FHIRAllTypes fromCode(String codeString) throws FHIRException {
2725            if (codeString == null || "".equals(codeString))
2726                return null;
2727        if ("ActionDefinition".equals(codeString))
2728          return ACTIONDEFINITION;
2729        if ("Address".equals(codeString))
2730          return ADDRESS;
2731        if ("Age".equals(codeString))
2732          return AGE;
2733        if ("Annotation".equals(codeString))
2734          return ANNOTATION;
2735        if ("Attachment".equals(codeString))
2736          return ATTACHMENT;
2737        if ("BackboneElement".equals(codeString))
2738          return BACKBONEELEMENT;
2739        if ("CodeableConcept".equals(codeString))
2740          return CODEABLECONCEPT;
2741        if ("Coding".equals(codeString))
2742          return CODING;
2743        if ("ContactPoint".equals(codeString))
2744          return CONTACTPOINT;
2745        if ("Count".equals(codeString))
2746          return COUNT;
2747        if ("DataRequirement".equals(codeString))
2748          return DATAREQUIREMENT;
2749        if ("Distance".equals(codeString))
2750          return DISTANCE;
2751        if ("Duration".equals(codeString))
2752          return DURATION;
2753        if ("Element".equals(codeString))
2754          return ELEMENT;
2755        if ("ElementDefinition".equals(codeString))
2756          return ELEMENTDEFINITION;
2757        if ("Extension".equals(codeString))
2758          return EXTENSION;
2759        if ("HumanName".equals(codeString))
2760          return HUMANNAME;
2761        if ("Identifier".equals(codeString))
2762          return IDENTIFIER;
2763        if ("Meta".equals(codeString))
2764          return META;
2765        if ("ModuleMetadata".equals(codeString))
2766          return MODULEMETADATA;
2767        if ("Money".equals(codeString))
2768          return MONEY;
2769        if ("Narrative".equals(codeString))
2770          return NARRATIVE;
2771        if ("ParameterDefinition".equals(codeString))
2772          return PARAMETERDEFINITION;
2773        if ("Period".equals(codeString))
2774          return PERIOD;
2775        if ("Quantity".equals(codeString))
2776          return QUANTITY;
2777        if ("Range".equals(codeString))
2778          return RANGE;
2779        if ("Ratio".equals(codeString))
2780          return RATIO;
2781        if ("Reference".equals(codeString))
2782          return REFERENCE;
2783        if ("SampledData".equals(codeString))
2784          return SAMPLEDDATA;
2785        if ("Signature".equals(codeString))
2786          return SIGNATURE;
2787        if ("SimpleQuantity".equals(codeString))
2788          return SIMPLEQUANTITY;
2789        if ("Timing".equals(codeString))
2790          return TIMING;
2791        if ("TriggerDefinition".equals(codeString))
2792          return TRIGGERDEFINITION;
2793        if ("base64Binary".equals(codeString))
2794          return BASE64BINARY;
2795        if ("boolean".equals(codeString))
2796          return BOOLEAN;
2797        if ("code".equals(codeString))
2798          return CODE;
2799        if ("date".equals(codeString))
2800          return DATE;
2801        if ("dateTime".equals(codeString))
2802          return DATETIME;
2803        if ("decimal".equals(codeString))
2804          return DECIMAL;
2805        if ("id".equals(codeString))
2806          return ID;
2807        if ("instant".equals(codeString))
2808          return INSTANT;
2809        if ("integer".equals(codeString))
2810          return INTEGER;
2811        if ("markdown".equals(codeString))
2812          return MARKDOWN;
2813        if ("oid".equals(codeString))
2814          return OID;
2815        if ("positiveInt".equals(codeString))
2816          return POSITIVEINT;
2817        if ("string".equals(codeString))
2818          return STRING;
2819        if ("time".equals(codeString))
2820          return TIME;
2821        if ("unsignedInt".equals(codeString))
2822          return UNSIGNEDINT;
2823        if ("uri".equals(codeString))
2824          return URI;
2825        if ("uuid".equals(codeString))
2826          return UUID;
2827        if ("xhtml".equals(codeString))
2828          return XHTML;
2829        if ("Account".equals(codeString))
2830          return ACCOUNT;
2831        if ("AllergyIntolerance".equals(codeString))
2832          return ALLERGYINTOLERANCE;
2833        if ("Appointment".equals(codeString))
2834          return APPOINTMENT;
2835        if ("AppointmentResponse".equals(codeString))
2836          return APPOINTMENTRESPONSE;
2837        if ("AuditEvent".equals(codeString))
2838          return AUDITEVENT;
2839        if ("Basic".equals(codeString))
2840          return BASIC;
2841        if ("Binary".equals(codeString))
2842          return BINARY;
2843        if ("BodySite".equals(codeString))
2844          return BODYSITE;
2845        if ("Bundle".equals(codeString))
2846          return BUNDLE;
2847        if ("CarePlan".equals(codeString))
2848          return CAREPLAN;
2849        if ("CareTeam".equals(codeString))
2850          return CARETEAM;
2851        if ("Claim".equals(codeString))
2852          return CLAIM;
2853        if ("ClaimResponse".equals(codeString))
2854          return CLAIMRESPONSE;
2855        if ("ClinicalImpression".equals(codeString))
2856          return CLINICALIMPRESSION;
2857        if ("CodeSystem".equals(codeString))
2858          return CODESYSTEM;
2859        if ("Communication".equals(codeString))
2860          return COMMUNICATION;
2861        if ("CommunicationRequest".equals(codeString))
2862          return COMMUNICATIONREQUEST;
2863        if ("CompartmentDefinition".equals(codeString))
2864          return COMPARTMENTDEFINITION;
2865        if ("Composition".equals(codeString))
2866          return COMPOSITION;
2867        if ("ConceptMap".equals(codeString))
2868          return CONCEPTMAP;
2869        if ("Condition".equals(codeString))
2870          return CONDITION;
2871        if ("Conformance".equals(codeString))
2872          return CONFORMANCE;
2873        if ("Contract".equals(codeString))
2874          return CONTRACT;
2875        if ("Coverage".equals(codeString))
2876          return COVERAGE;
2877        if ("DataElement".equals(codeString))
2878          return DATAELEMENT;
2879        if ("DecisionSupportRule".equals(codeString))
2880          return DECISIONSUPPORTRULE;
2881        if ("DecisionSupportServiceModule".equals(codeString))
2882          return DECISIONSUPPORTSERVICEMODULE;
2883        if ("DetectedIssue".equals(codeString))
2884          return DETECTEDISSUE;
2885        if ("Device".equals(codeString))
2886          return DEVICE;
2887        if ("DeviceComponent".equals(codeString))
2888          return DEVICECOMPONENT;
2889        if ("DeviceMetric".equals(codeString))
2890          return DEVICEMETRIC;
2891        if ("DeviceUseRequest".equals(codeString))
2892          return DEVICEUSEREQUEST;
2893        if ("DeviceUseStatement".equals(codeString))
2894          return DEVICEUSESTATEMENT;
2895        if ("DiagnosticOrder".equals(codeString))
2896          return DIAGNOSTICORDER;
2897        if ("DiagnosticReport".equals(codeString))
2898          return DIAGNOSTICREPORT;
2899        if ("DocumentManifest".equals(codeString))
2900          return DOCUMENTMANIFEST;
2901        if ("DocumentReference".equals(codeString))
2902          return DOCUMENTREFERENCE;
2903        if ("DomainResource".equals(codeString))
2904          return DOMAINRESOURCE;
2905        if ("EligibilityRequest".equals(codeString))
2906          return ELIGIBILITYREQUEST;
2907        if ("EligibilityResponse".equals(codeString))
2908          return ELIGIBILITYRESPONSE;
2909        if ("Encounter".equals(codeString))
2910          return ENCOUNTER;
2911        if ("EnrollmentRequest".equals(codeString))
2912          return ENROLLMENTREQUEST;
2913        if ("EnrollmentResponse".equals(codeString))
2914          return ENROLLMENTRESPONSE;
2915        if ("EpisodeOfCare".equals(codeString))
2916          return EPISODEOFCARE;
2917        if ("ExpansionProfile".equals(codeString))
2918          return EXPANSIONPROFILE;
2919        if ("ExplanationOfBenefit".equals(codeString))
2920          return EXPLANATIONOFBENEFIT;
2921        if ("FamilyMemberHistory".equals(codeString))
2922          return FAMILYMEMBERHISTORY;
2923        if ("Flag".equals(codeString))
2924          return FLAG;
2925        if ("Goal".equals(codeString))
2926          return GOAL;
2927        if ("Group".equals(codeString))
2928          return GROUP;
2929        if ("GuidanceResponse".equals(codeString))
2930          return GUIDANCERESPONSE;
2931        if ("HealthcareService".equals(codeString))
2932          return HEALTHCARESERVICE;
2933        if ("ImagingExcerpt".equals(codeString))
2934          return IMAGINGEXCERPT;
2935        if ("ImagingObjectSelection".equals(codeString))
2936          return IMAGINGOBJECTSELECTION;
2937        if ("ImagingStudy".equals(codeString))
2938          return IMAGINGSTUDY;
2939        if ("Immunization".equals(codeString))
2940          return IMMUNIZATION;
2941        if ("ImmunizationRecommendation".equals(codeString))
2942          return IMMUNIZATIONRECOMMENDATION;
2943        if ("ImplementationGuide".equals(codeString))
2944          return IMPLEMENTATIONGUIDE;
2945        if ("Library".equals(codeString))
2946          return LIBRARY;
2947        if ("Linkage".equals(codeString))
2948          return LINKAGE;
2949        if ("List".equals(codeString))
2950          return LIST;
2951        if ("Location".equals(codeString))
2952          return LOCATION;
2953        if ("Measure".equals(codeString))
2954          return MEASURE;
2955        if ("MeasureReport".equals(codeString))
2956          return MEASUREREPORT;
2957        if ("Media".equals(codeString))
2958          return MEDIA;
2959        if ("Medication".equals(codeString))
2960          return MEDICATION;
2961        if ("MedicationAdministration".equals(codeString))
2962          return MEDICATIONADMINISTRATION;
2963        if ("MedicationDispense".equals(codeString))
2964          return MEDICATIONDISPENSE;
2965        if ("MedicationOrder".equals(codeString))
2966          return MEDICATIONORDER;
2967        if ("MedicationStatement".equals(codeString))
2968          return MEDICATIONSTATEMENT;
2969        if ("MessageHeader".equals(codeString))
2970          return MESSAGEHEADER;
2971        if ("ModuleDefinition".equals(codeString))
2972          return MODULEDEFINITION;
2973        if ("NamingSystem".equals(codeString))
2974          return NAMINGSYSTEM;
2975        if ("NutritionOrder".equals(codeString))
2976          return NUTRITIONORDER;
2977        if ("Observation".equals(codeString))
2978          return OBSERVATION;
2979        if ("OperationDefinition".equals(codeString))
2980          return OPERATIONDEFINITION;
2981        if ("OperationOutcome".equals(codeString))
2982          return OPERATIONOUTCOME;
2983        if ("Order".equals(codeString))
2984          return ORDER;
2985        if ("OrderResponse".equals(codeString))
2986          return ORDERRESPONSE;
2987        if ("OrderSet".equals(codeString))
2988          return ORDERSET;
2989        if ("Organization".equals(codeString))
2990          return ORGANIZATION;
2991        if ("Parameters".equals(codeString))
2992          return PARAMETERS;
2993        if ("Patient".equals(codeString))
2994          return PATIENT;
2995        if ("PaymentNotice".equals(codeString))
2996          return PAYMENTNOTICE;
2997        if ("PaymentReconciliation".equals(codeString))
2998          return PAYMENTRECONCILIATION;
2999        if ("Person".equals(codeString))
3000          return PERSON;
3001        if ("Practitioner".equals(codeString))
3002          return PRACTITIONER;
3003        if ("PractitionerRole".equals(codeString))
3004          return PRACTITIONERROLE;
3005        if ("Procedure".equals(codeString))
3006          return PROCEDURE;
3007        if ("ProcedureRequest".equals(codeString))
3008          return PROCEDUREREQUEST;
3009        if ("ProcessRequest".equals(codeString))
3010          return PROCESSREQUEST;
3011        if ("ProcessResponse".equals(codeString))
3012          return PROCESSRESPONSE;
3013        if ("Protocol".equals(codeString))
3014          return PROTOCOL;
3015        if ("Provenance".equals(codeString))
3016          return PROVENANCE;
3017        if ("Questionnaire".equals(codeString))
3018          return QUESTIONNAIRE;
3019        if ("QuestionnaireResponse".equals(codeString))
3020          return QUESTIONNAIRERESPONSE;
3021        if ("ReferralRequest".equals(codeString))
3022          return REFERRALREQUEST;
3023        if ("RelatedPerson".equals(codeString))
3024          return RELATEDPERSON;
3025        if ("Resource".equals(codeString))
3026          return RESOURCE;
3027        if ("RiskAssessment".equals(codeString))
3028          return RISKASSESSMENT;
3029        if ("Schedule".equals(codeString))
3030          return SCHEDULE;
3031        if ("SearchParameter".equals(codeString))
3032          return SEARCHPARAMETER;
3033        if ("Sequence".equals(codeString))
3034          return SEQUENCE;
3035        if ("Slot".equals(codeString))
3036          return SLOT;
3037        if ("Specimen".equals(codeString))
3038          return SPECIMEN;
3039        if ("StructureDefinition".equals(codeString))
3040          return STRUCTUREDEFINITION;
3041        if ("StructureMap".equals(codeString))
3042          return STRUCTUREMAP;
3043        if ("Subscription".equals(codeString))
3044          return SUBSCRIPTION;
3045        if ("Substance".equals(codeString))
3046          return SUBSTANCE;
3047        if ("SupplyDelivery".equals(codeString))
3048          return SUPPLYDELIVERY;
3049        if ("SupplyRequest".equals(codeString))
3050          return SUPPLYREQUEST;
3051        if ("Task".equals(codeString))
3052          return TASK;
3053        if ("TestScript".equals(codeString))
3054          return TESTSCRIPT;
3055        if ("ValueSet".equals(codeString))
3056          return VALUESET;
3057        if ("VisionPrescription".equals(codeString))
3058          return VISIONPRESCRIPTION;
3059        if ("Type".equals(codeString))
3060          return TYPE;
3061        if ("Any".equals(codeString))
3062          return ANY;
3063        throw new FHIRException("Unknown FHIRAllTypes code '"+codeString+"'");
3064        }
3065        public String toCode() {
3066          switch (this) {
3067            case ACTIONDEFINITION: return "ActionDefinition";
3068            case ADDRESS: return "Address";
3069            case AGE: return "Age";
3070            case ANNOTATION: return "Annotation";
3071            case ATTACHMENT: return "Attachment";
3072            case BACKBONEELEMENT: return "BackboneElement";
3073            case CODEABLECONCEPT: return "CodeableConcept";
3074            case CODING: return "Coding";
3075            case CONTACTPOINT: return "ContactPoint";
3076            case COUNT: return "Count";
3077            case DATAREQUIREMENT: return "DataRequirement";
3078            case DISTANCE: return "Distance";
3079            case DURATION: return "Duration";
3080            case ELEMENT: return "Element";
3081            case ELEMENTDEFINITION: return "ElementDefinition";
3082            case EXTENSION: return "Extension";
3083            case HUMANNAME: return "HumanName";
3084            case IDENTIFIER: return "Identifier";
3085            case META: return "Meta";
3086            case MODULEMETADATA: return "ModuleMetadata";
3087            case MONEY: return "Money";
3088            case NARRATIVE: return "Narrative";
3089            case PARAMETERDEFINITION: return "ParameterDefinition";
3090            case PERIOD: return "Period";
3091            case QUANTITY: return "Quantity";
3092            case RANGE: return "Range";
3093            case RATIO: return "Ratio";
3094            case REFERENCE: return "Reference";
3095            case SAMPLEDDATA: return "SampledData";
3096            case SIGNATURE: return "Signature";
3097            case SIMPLEQUANTITY: return "SimpleQuantity";
3098            case TIMING: return "Timing";
3099            case TRIGGERDEFINITION: return "TriggerDefinition";
3100            case BASE64BINARY: return "base64Binary";
3101            case BOOLEAN: return "boolean";
3102            case CODE: return "code";
3103            case DATE: return "date";
3104            case DATETIME: return "dateTime";
3105            case DECIMAL: return "decimal";
3106            case ID: return "id";
3107            case INSTANT: return "instant";
3108            case INTEGER: return "integer";
3109            case MARKDOWN: return "markdown";
3110            case OID: return "oid";
3111            case POSITIVEINT: return "positiveInt";
3112            case STRING: return "string";
3113            case TIME: return "time";
3114            case UNSIGNEDINT: return "unsignedInt";
3115            case URI: return "uri";
3116            case UUID: return "uuid";
3117            case XHTML: return "xhtml";
3118            case ACCOUNT: return "Account";
3119            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
3120            case APPOINTMENT: return "Appointment";
3121            case APPOINTMENTRESPONSE: return "AppointmentResponse";
3122            case AUDITEVENT: return "AuditEvent";
3123            case BASIC: return "Basic";
3124            case BINARY: return "Binary";
3125            case BODYSITE: return "BodySite";
3126            case BUNDLE: return "Bundle";
3127            case CAREPLAN: return "CarePlan";
3128            case CARETEAM: return "CareTeam";
3129            case CLAIM: return "Claim";
3130            case CLAIMRESPONSE: return "ClaimResponse";
3131            case CLINICALIMPRESSION: return "ClinicalImpression";
3132            case CODESYSTEM: return "CodeSystem";
3133            case COMMUNICATION: return "Communication";
3134            case COMMUNICATIONREQUEST: return "CommunicationRequest";
3135            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
3136            case COMPOSITION: return "Composition";
3137            case CONCEPTMAP: return "ConceptMap";
3138            case CONDITION: return "Condition";
3139            case CONFORMANCE: return "Conformance";
3140            case CONTRACT: return "Contract";
3141            case COVERAGE: return "Coverage";
3142            case DATAELEMENT: return "DataElement";
3143            case DECISIONSUPPORTRULE: return "DecisionSupportRule";
3144            case DECISIONSUPPORTSERVICEMODULE: return "DecisionSupportServiceModule";
3145            case DETECTEDISSUE: return "DetectedIssue";
3146            case DEVICE: return "Device";
3147            case DEVICECOMPONENT: return "DeviceComponent";
3148            case DEVICEMETRIC: return "DeviceMetric";
3149            case DEVICEUSEREQUEST: return "DeviceUseRequest";
3150            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
3151            case DIAGNOSTICORDER: return "DiagnosticOrder";
3152            case DIAGNOSTICREPORT: return "DiagnosticReport";
3153            case DOCUMENTMANIFEST: return "DocumentManifest";
3154            case DOCUMENTREFERENCE: return "DocumentReference";
3155            case DOMAINRESOURCE: return "DomainResource";
3156            case ELIGIBILITYREQUEST: return "EligibilityRequest";
3157            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
3158            case ENCOUNTER: return "Encounter";
3159            case ENROLLMENTREQUEST: return "EnrollmentRequest";
3160            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
3161            case EPISODEOFCARE: return "EpisodeOfCare";
3162            case EXPANSIONPROFILE: return "ExpansionProfile";
3163            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
3164            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
3165            case FLAG: return "Flag";
3166            case GOAL: return "Goal";
3167            case GROUP: return "Group";
3168            case GUIDANCERESPONSE: return "GuidanceResponse";
3169            case HEALTHCARESERVICE: return "HealthcareService";
3170            case IMAGINGEXCERPT: return "ImagingExcerpt";
3171            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
3172            case IMAGINGSTUDY: return "ImagingStudy";
3173            case IMMUNIZATION: return "Immunization";
3174            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
3175            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
3176            case LIBRARY: return "Library";
3177            case LINKAGE: return "Linkage";
3178            case LIST: return "List";
3179            case LOCATION: return "Location";
3180            case MEASURE: return "Measure";
3181            case MEASUREREPORT: return "MeasureReport";
3182            case MEDIA: return "Media";
3183            case MEDICATION: return "Medication";
3184            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
3185            case MEDICATIONDISPENSE: return "MedicationDispense";
3186            case MEDICATIONORDER: return "MedicationOrder";
3187            case MEDICATIONSTATEMENT: return "MedicationStatement";
3188            case MESSAGEHEADER: return "MessageHeader";
3189            case MODULEDEFINITION: return "ModuleDefinition";
3190            case NAMINGSYSTEM: return "NamingSystem";
3191            case NUTRITIONORDER: return "NutritionOrder";
3192            case OBSERVATION: return "Observation";
3193            case OPERATIONDEFINITION: return "OperationDefinition";
3194            case OPERATIONOUTCOME: return "OperationOutcome";
3195            case ORDER: return "Order";
3196            case ORDERRESPONSE: return "OrderResponse";
3197            case ORDERSET: return "OrderSet";
3198            case ORGANIZATION: return "Organization";
3199            case PARAMETERS: return "Parameters";
3200            case PATIENT: return "Patient";
3201            case PAYMENTNOTICE: return "PaymentNotice";
3202            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
3203            case PERSON: return "Person";
3204            case PRACTITIONER: return "Practitioner";
3205            case PRACTITIONERROLE: return "PractitionerRole";
3206            case PROCEDURE: return "Procedure";
3207            case PROCEDUREREQUEST: return "ProcedureRequest";
3208            case PROCESSREQUEST: return "ProcessRequest";
3209            case PROCESSRESPONSE: return "ProcessResponse";
3210            case PROTOCOL: return "Protocol";
3211            case PROVENANCE: return "Provenance";
3212            case QUESTIONNAIRE: return "Questionnaire";
3213            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
3214            case REFERRALREQUEST: return "ReferralRequest";
3215            case RELATEDPERSON: return "RelatedPerson";
3216            case RESOURCE: return "Resource";
3217            case RISKASSESSMENT: return "RiskAssessment";
3218            case SCHEDULE: return "Schedule";
3219            case SEARCHPARAMETER: return "SearchParameter";
3220            case SEQUENCE: return "Sequence";
3221            case SLOT: return "Slot";
3222            case SPECIMEN: return "Specimen";
3223            case STRUCTUREDEFINITION: return "StructureDefinition";
3224            case STRUCTUREMAP: return "StructureMap";
3225            case SUBSCRIPTION: return "Subscription";
3226            case SUBSTANCE: return "Substance";
3227            case SUPPLYDELIVERY: return "SupplyDelivery";
3228            case SUPPLYREQUEST: return "SupplyRequest";
3229            case TASK: return "Task";
3230            case TESTSCRIPT: return "TestScript";
3231            case VALUESET: return "ValueSet";
3232            case VISIONPRESCRIPTION: return "VisionPrescription";
3233            case TYPE: return "Type";
3234            case ANY: return "Any";
3235            case NULL: return null;
3236            default: return "?";
3237          }
3238        }
3239        public String getSystem() {
3240          switch (this) {
3241            case ACTIONDEFINITION: return "http://hl7.org/fhir/data-types";
3242            case ADDRESS: return "http://hl7.org/fhir/data-types";
3243            case AGE: return "http://hl7.org/fhir/data-types";
3244            case ANNOTATION: return "http://hl7.org/fhir/data-types";
3245            case ATTACHMENT: return "http://hl7.org/fhir/data-types";
3246            case BACKBONEELEMENT: return "http://hl7.org/fhir/data-types";
3247            case CODEABLECONCEPT: return "http://hl7.org/fhir/data-types";
3248            case CODING: return "http://hl7.org/fhir/data-types";
3249            case CONTACTPOINT: return "http://hl7.org/fhir/data-types";
3250            case COUNT: return "http://hl7.org/fhir/data-types";
3251            case DATAREQUIREMENT: return "http://hl7.org/fhir/data-types";
3252            case DISTANCE: return "http://hl7.org/fhir/data-types";
3253            case DURATION: return "http://hl7.org/fhir/data-types";
3254            case ELEMENT: return "http://hl7.org/fhir/data-types";
3255            case ELEMENTDEFINITION: return "http://hl7.org/fhir/data-types";
3256            case EXTENSION: return "http://hl7.org/fhir/data-types";
3257            case HUMANNAME: return "http://hl7.org/fhir/data-types";
3258            case IDENTIFIER: return "http://hl7.org/fhir/data-types";
3259            case META: return "http://hl7.org/fhir/data-types";
3260            case MODULEMETADATA: return "http://hl7.org/fhir/data-types";
3261            case MONEY: return "http://hl7.org/fhir/data-types";
3262            case NARRATIVE: return "http://hl7.org/fhir/data-types";
3263            case PARAMETERDEFINITION: return "http://hl7.org/fhir/data-types";
3264            case PERIOD: return "http://hl7.org/fhir/data-types";
3265            case QUANTITY: return "http://hl7.org/fhir/data-types";
3266            case RANGE: return "http://hl7.org/fhir/data-types";
3267            case RATIO: return "http://hl7.org/fhir/data-types";
3268            case REFERENCE: return "http://hl7.org/fhir/data-types";
3269            case SAMPLEDDATA: return "http://hl7.org/fhir/data-types";
3270            case SIGNATURE: return "http://hl7.org/fhir/data-types";
3271            case SIMPLEQUANTITY: return "http://hl7.org/fhir/data-types";
3272            case TIMING: return "http://hl7.org/fhir/data-types";
3273            case TRIGGERDEFINITION: return "http://hl7.org/fhir/data-types";
3274            case BASE64BINARY: return "http://hl7.org/fhir/data-types";
3275            case BOOLEAN: return "http://hl7.org/fhir/data-types";
3276            case CODE: return "http://hl7.org/fhir/data-types";
3277            case DATE: return "http://hl7.org/fhir/data-types";
3278            case DATETIME: return "http://hl7.org/fhir/data-types";
3279            case DECIMAL: return "http://hl7.org/fhir/data-types";
3280            case ID: return "http://hl7.org/fhir/data-types";
3281            case INSTANT: return "http://hl7.org/fhir/data-types";
3282            case INTEGER: return "http://hl7.org/fhir/data-types";
3283            case MARKDOWN: return "http://hl7.org/fhir/data-types";
3284            case OID: return "http://hl7.org/fhir/data-types";
3285            case POSITIVEINT: return "http://hl7.org/fhir/data-types";
3286            case STRING: return "http://hl7.org/fhir/data-types";
3287            case TIME: return "http://hl7.org/fhir/data-types";
3288            case UNSIGNEDINT: return "http://hl7.org/fhir/data-types";
3289            case URI: return "http://hl7.org/fhir/data-types";
3290            case UUID: return "http://hl7.org/fhir/data-types";
3291            case XHTML: return "http://hl7.org/fhir/data-types";
3292            case ACCOUNT: return "http://hl7.org/fhir/resource-types";
3293            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/resource-types";
3294            case APPOINTMENT: return "http://hl7.org/fhir/resource-types";
3295            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
3296            case AUDITEVENT: return "http://hl7.org/fhir/resource-types";
3297            case BASIC: return "http://hl7.org/fhir/resource-types";
3298            case BINARY: return "http://hl7.org/fhir/resource-types";
3299            case BODYSITE: return "http://hl7.org/fhir/resource-types";
3300            case BUNDLE: return "http://hl7.org/fhir/resource-types";
3301            case CAREPLAN: return "http://hl7.org/fhir/resource-types";
3302            case CARETEAM: return "http://hl7.org/fhir/resource-types";
3303            case CLAIM: return "http://hl7.org/fhir/resource-types";
3304            case CLAIMRESPONSE: return "http://hl7.org/fhir/resource-types";
3305            case CLINICALIMPRESSION: return "http://hl7.org/fhir/resource-types";
3306            case CODESYSTEM: return "http://hl7.org/fhir/resource-types";
3307            case COMMUNICATION: return "http://hl7.org/fhir/resource-types";
3308            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
3309            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/resource-types";
3310            case COMPOSITION: return "http://hl7.org/fhir/resource-types";
3311            case CONCEPTMAP: return "http://hl7.org/fhir/resource-types";
3312            case CONDITION: return "http://hl7.org/fhir/resource-types";
3313            case CONFORMANCE: return "http://hl7.org/fhir/resource-types";
3314            case CONTRACT: return "http://hl7.org/fhir/resource-types";
3315            case COVERAGE: return "http://hl7.org/fhir/resource-types";
3316            case DATAELEMENT: return "http://hl7.org/fhir/resource-types";
3317            case DECISIONSUPPORTRULE: return "http://hl7.org/fhir/resource-types";
3318            case DECISIONSUPPORTSERVICEMODULE: return "http://hl7.org/fhir/resource-types";
3319            case DETECTEDISSUE: return "http://hl7.org/fhir/resource-types";
3320            case DEVICE: return "http://hl7.org/fhir/resource-types";
3321            case DEVICECOMPONENT: return "http://hl7.org/fhir/resource-types";
3322            case DEVICEMETRIC: return "http://hl7.org/fhir/resource-types";
3323            case DEVICEUSEREQUEST: return "http://hl7.org/fhir/resource-types";
3324            case DEVICEUSESTATEMENT: return "http://hl7.org/fhir/resource-types";
3325            case DIAGNOSTICORDER: return "http://hl7.org/fhir/resource-types";
3326            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/resource-types";
3327            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/resource-types";
3328            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/resource-types";
3329            case DOMAINRESOURCE: return "http://hl7.org/fhir/resource-types";
3330            case ELIGIBILITYREQUEST: return "http://hl7.org/fhir/resource-types";
3331            case ELIGIBILITYRESPONSE: return "http://hl7.org/fhir/resource-types";
3332            case ENCOUNTER: return "http://hl7.org/fhir/resource-types";
3333            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/resource-types";
3334            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
3335            case EPISODEOFCARE: return "http://hl7.org/fhir/resource-types";
3336            case EXPANSIONPROFILE: return "http://hl7.org/fhir/resource-types";
3337            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/resource-types";
3338            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/resource-types";
3339            case FLAG: return "http://hl7.org/fhir/resource-types";
3340            case GOAL: return "http://hl7.org/fhir/resource-types";
3341            case GROUP: return "http://hl7.org/fhir/resource-types";
3342            case GUIDANCERESPONSE: return "http://hl7.org/fhir/resource-types";
3343            case HEALTHCARESERVICE: return "http://hl7.org/fhir/resource-types";
3344            case IMAGINGEXCERPT: return "http://hl7.org/fhir/resource-types";
3345            case IMAGINGOBJECTSELECTION: return "http://hl7.org/fhir/resource-types";
3346            case IMAGINGSTUDY: return "http://hl7.org/fhir/resource-types";
3347            case IMMUNIZATION: return "http://hl7.org/fhir/resource-types";
3348            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/resource-types";
3349            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/resource-types";
3350            case LIBRARY: return "http://hl7.org/fhir/resource-types";
3351            case LINKAGE: return "http://hl7.org/fhir/resource-types";
3352            case LIST: return "http://hl7.org/fhir/resource-types";
3353            case LOCATION: return "http://hl7.org/fhir/resource-types";
3354            case MEASURE: return "http://hl7.org/fhir/resource-types";
3355            case MEASUREREPORT: return "http://hl7.org/fhir/resource-types";
3356            case MEDIA: return "http://hl7.org/fhir/resource-types";
3357            case MEDICATION: return "http://hl7.org/fhir/resource-types";
3358            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/resource-types";
3359            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/resource-types";
3360            case MEDICATIONORDER: return "http://hl7.org/fhir/resource-types";
3361            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/resource-types";
3362            case MESSAGEHEADER: return "http://hl7.org/fhir/resource-types";
3363            case MODULEDEFINITION: return "http://hl7.org/fhir/resource-types";
3364            case NAMINGSYSTEM: return "http://hl7.org/fhir/resource-types";
3365            case NUTRITIONORDER: return "http://hl7.org/fhir/resource-types";
3366            case OBSERVATION: return "http://hl7.org/fhir/resource-types";
3367            case OPERATIONDEFINITION: return "http://hl7.org/fhir/resource-types";
3368            case OPERATIONOUTCOME: return "http://hl7.org/fhir/resource-types";
3369            case ORDER: return "http://hl7.org/fhir/resource-types";
3370            case ORDERRESPONSE: return "http://hl7.org/fhir/resource-types";
3371            case ORDERSET: return "http://hl7.org/fhir/resource-types";
3372            case ORGANIZATION: return "http://hl7.org/fhir/resource-types";
3373            case PARAMETERS: return "http://hl7.org/fhir/resource-types";
3374            case PATIENT: return "http://hl7.org/fhir/resource-types";
3375            case PAYMENTNOTICE: return "http://hl7.org/fhir/resource-types";
3376            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/resource-types";
3377            case PERSON: return "http://hl7.org/fhir/resource-types";
3378            case PRACTITIONER: return "http://hl7.org/fhir/resource-types";
3379            case PRACTITIONERROLE: return "http://hl7.org/fhir/resource-types";
3380            case PROCEDURE: return "http://hl7.org/fhir/resource-types";
3381            case PROCEDUREREQUEST: return "http://hl7.org/fhir/resource-types";
3382            case PROCESSREQUEST: return "http://hl7.org/fhir/resource-types";
3383            case PROCESSRESPONSE: return "http://hl7.org/fhir/resource-types";
3384            case PROTOCOL: return "http://hl7.org/fhir/resource-types";
3385            case PROVENANCE: return "http://hl7.org/fhir/resource-types";
3386            case QUESTIONNAIRE: return "http://hl7.org/fhir/resource-types";
3387            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/resource-types";
3388            case REFERRALREQUEST: return "http://hl7.org/fhir/resource-types";
3389            case RELATEDPERSON: return "http://hl7.org/fhir/resource-types";
3390            case RESOURCE: return "http://hl7.org/fhir/resource-types";
3391            case RISKASSESSMENT: return "http://hl7.org/fhir/resource-types";
3392            case SCHEDULE: return "http://hl7.org/fhir/resource-types";
3393            case SEARCHPARAMETER: return "http://hl7.org/fhir/resource-types";
3394            case SEQUENCE: return "http://hl7.org/fhir/resource-types";
3395            case SLOT: return "http://hl7.org/fhir/resource-types";
3396            case SPECIMEN: return "http://hl7.org/fhir/resource-types";
3397            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/resource-types";
3398            case STRUCTUREMAP: return "http://hl7.org/fhir/resource-types";
3399            case SUBSCRIPTION: return "http://hl7.org/fhir/resource-types";
3400            case SUBSTANCE: return "http://hl7.org/fhir/resource-types";
3401            case SUPPLYDELIVERY: return "http://hl7.org/fhir/resource-types";
3402            case SUPPLYREQUEST: return "http://hl7.org/fhir/resource-types";
3403            case TASK: return "http://hl7.org/fhir/resource-types";
3404            case TESTSCRIPT: return "http://hl7.org/fhir/resource-types";
3405            case VALUESET: return "http://hl7.org/fhir/resource-types";
3406            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/resource-types";
3407            case TYPE: return "http://hl7.org/fhir/abstract-types";
3408            case ANY: return "http://hl7.org/fhir/abstract-types";
3409            case NULL: return null;
3410            default: return "?";
3411          }
3412        }
3413        public String getDefinition() {
3414          switch (this) {
3415            case ACTIONDEFINITION: return "The definition of an action to be performed. Some aspects of the definition are specified statically, and some aspects can be specified dynamically by referencing logic defined in a library.";
3416            case ADDRESS: return "An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations and which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
3417            case AGE: return "";
3418            case ANNOTATION: return "A  text note which also  contains information about who made the statement and when.";
3419            case ATTACHMENT: return "For referring to data content defined in other formats.";
3420            case BACKBONEELEMENT: return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
3421            case CODEABLECONCEPT: return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
3422            case CODING: return "A reference to a code defined by a terminology system.";
3423            case CONTACTPOINT: return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
3424            case COUNT: return "";
3425            case DATAREQUIREMENT: return "Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the data.";
3426            case DISTANCE: return "";
3427            case DURATION: return "";
3428            case ELEMENT: return "Base definition for all elements in a resource.";
3429            case ELEMENTDEFINITION: return "Captures constraints on each element within the resource, profile, or extension.";
3430            case EXTENSION: return "Optional Extensions Element - found in all resources.";
3431            case HUMANNAME: return "A human's name with the ability to identify parts and usage.";
3432            case IDENTIFIER: return "A technical identifier - identifies some entity uniquely and unambiguously.";
3433            case META: return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.";
3434            case MODULEMETADATA: return "The ModuleMetadata structure defines the common metadata elements used by quality improvement artifacts. This information includes descriptive and topical metadata to enable repository searches, as well as governance and evidentiary support information.";
3435            case MONEY: return "";
3436            case NARRATIVE: return "A human-readable formatted text, including images.";
3437            case PARAMETERDEFINITION: return "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.";
3438            case PERIOD: return "A time period defined by a start and end date and optionally time.";
3439            case QUANTITY: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
3440            case RANGE: return "A set of ordered Quantities defined by a low and high limit.";
3441            case RATIO: return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
3442            case REFERENCE: return "A reference from one resource to another.";
3443            case SAMPLEDDATA: return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
3444            case SIGNATURE: return "A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different Signature approaches have different utilities.";
3445            case SIMPLEQUANTITY: return "";
3446            case TIMING: return "Specifies an event that may occur multiple times. Timing schedules are used to record when things are expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds.";
3447            case TRIGGERDEFINITION: return "A description of a triggering event.";
3448            case BASE64BINARY: return "A stream of bytes";
3449            case BOOLEAN: return "Value of \"true\" or \"false\"";
3450            case CODE: return "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents";
3451            case DATE: return "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
3452            case DATETIME: return "A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.";
3453            case DECIMAL: return "A rational number with implicit precision";
3454            case ID: return "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.";
3455            case INSTANT: return "An instant in time - known at least to the second";
3456            case INTEGER: return "A whole number";
3457            case MARKDOWN: return "A string that may contain markdown syntax for optional processing by a mark down presentation engine";
3458            case OID: return "An oid represented as a URI";
3459            case POSITIVEINT: return "An integer with a value that is positive (e.g. >0)";
3460            case STRING: return "A sequence of Unicode characters";
3461            case TIME: return "A time during the day, with no date specified";
3462            case UNSIGNEDINT: return "An integer with a value that is not negative (e.g. >= 0)";
3463            case URI: return "String of characters used to identify a name or a resource";
3464            case UUID: return "A UUID, represented as a URI";
3465            case XHTML: return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
3466            case ACCOUNT: return "A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centres, etc.";
3467            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
3468            case APPOINTMENT: return "A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).";
3469            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
3470            case AUDITEVENT: return "A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.";
3471            case BASIC: return "Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.";
3472            case BINARY: return "A binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
3473            case BODYSITE: return "Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
3474            case BUNDLE: return "A container for a collection of resources.";
3475            case CAREPLAN: return "Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.";
3476            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.";
3477            case CLAIM: return "A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.";
3478            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
3479            case CLINICALIMPRESSION: return "A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score.";
3480            case CODESYSTEM: return "A code system resource specifies a set of codes drawn from one or more code systems.";
3481            case COMMUNICATION: return "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.";
3482            case COMMUNICATIONREQUEST: return "A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.";
3483            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
3484            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.";
3485            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.";
3486            case CONDITION: return "Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a diagnosis during an encounter; populating a problem list or a summary statement, such as a discharge summary.";
3487            case CONFORMANCE: return "A conformance statement is a set of capabilities of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
3488            case CONTRACT: return "A formal agreement between parties regarding the conduct of business, exchange of information or other matters.";
3489            case COVERAGE: return "Financial instrument which may be used to pay for or reimburse health care products and services.";
3490            case DATAELEMENT: return "The formal description of a single piece of information that can be gathered and reported.";
3491            case DECISIONSUPPORTRULE: return "This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.";
3492            case DECISIONSUPPORTSERVICEMODULE: return "The DecisionSupportServiceModule describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.";
3493            case DETECTEDISSUE: return "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.";
3494            case DEVICE: return "This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.";
3495            case DEVICECOMPONENT: return "Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.";
3496            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
3497            case DEVICEUSEREQUEST: return "Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker.";
3498            case DEVICEUSESTATEMENT: return "A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.";
3499            case DIAGNOSTICORDER: return "A record of a request for a diagnostic investigation service to be performed.";
3500            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.";
3501            case DOCUMENTMANIFEST: return "A manifest that defines a set of documents.";
3502            case DOCUMENTREFERENCE: return "A reference to a document .";
3503            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
3504            case ELIGIBILITYREQUEST: return "This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service.";
3505            case ELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an Eligibility resource.";
3506            case ENCOUNTER: return "An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.";
3507            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
3508            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an Enrollment resource.";
3509            case EPISODEOFCARE: return "An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.";
3510            case EXPANSIONPROFILE: return "Resource to define constraints on the Expansion of a FHIR ValueSet.";
3511            case EXPLANATIONOFBENEFIT: return "This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.";
3512            case FAMILYMEMBERHISTORY: return "Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.";
3513            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
3514            case GOAL: return "Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.";
3515            case GROUP: return "Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.";
3516            case GUIDANCERESPONSE: return "A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.";
3517            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location.";
3518            case IMAGINGEXCERPT: return "A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingExcerpt resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance (\"cine\" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.";
3519            case IMAGINGOBJECTSELECTION: return "A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance (\"cine\" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.";
3520            case IMAGINGSTUDY: return "Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.";
3521            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.";
3522            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.";
3523            case IMPLEMENTATIONGUIDE: return "A set of rules or how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole, and to publish a computable definition of all the parts.";
3524            case LIBRARY: return "The Library resource provides a representation container for knowledge artifact component definitions. It is effectively an exposure of the header information for a CQL/ELM library.";
3525            case LINKAGE: return "Identifies two or more records (resource instances) that are referring to the same real-world \"occurrence\".";
3526            case LIST: return "A set of information summarized from a list of other resources.";
3527            case LOCATION: return "Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.";
3528            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
3529            case MEASUREREPORT: return "The MeasureReport resource contains the results of evaluating a measure.";
3530            case MEDIA: return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
3531            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.";
3532            case MEDICATIONADMINISTRATION: return "Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.";
3533            case MEDICATIONDISPENSE: return "Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.";
3534            case MEDICATIONORDER: return "An order for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called \"MedicationOrder\" rather than \"MedicationPrescription\" to generalize the use across inpatient and outpatient settings as well as for care plans, etc.";
3535            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from e.g. the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains \r\rThe primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
3536            case MESSAGEHEADER: return "The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.";
3537            case MODULEDEFINITION: return "The ModuleDefinition resource defines the data requirements for a quality artifact.";
3538            case NAMINGSYSTEM: return "A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a \"System\" used within the Identifier and Coding data types.";
3539            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
3540            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
3541            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
3542            case OPERATIONOUTCOME: return "A collection of error, warning or information messages that result from a system action.";
3543            case ORDER: return "A request to perform an action.";
3544            case ORDERRESPONSE: return "A response to an order.";
3545            case ORDERSET: return "This resource allows for the definition of an order set as a sharable, consumable, and executable artifact in support of clinical decision support.";
3546            case ORGANIZATION: return "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.";
3547            case PARAMETERS: return "This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.";
3548            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
3549            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
3550            case PAYMENTRECONCILIATION: return "This resource provides payment details and claim references supporting a bulk payment.";
3551            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
3552            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare.";
3553            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.";
3554            case PROCEDURE: return "An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.";
3555            case PROCEDUREREQUEST: return "A request for a procedure to be performed. May be a proposal or an order.";
3556            case PROCESSREQUEST: return "This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.";
3557            case PROCESSRESPONSE: return "This resource provides processing status, errors and notes from the processing of a resource.";
3558            case PROTOCOL: return "A definition of behaviors to be taken in particular circumstances, often including conditions, options and other decision points.";
3559            case PROVENANCE: return "Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.";
3560            case QUESTIONNAIRE: return "A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.";
3561            case QUESTIONNAIRERESPONSE: return "A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.";
3562            case REFERRALREQUEST: return "Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.";
3563            case RELATEDPERSON: return "Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
3564            case RESOURCE: return "This is the base resource type for everything.";
3565            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
3566            case SCHEDULE: return "A container for slot(s) of time that may be available for booking appointments.";
3567            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
3568            case SEQUENCE: return "Variation and Sequence data.";
3569            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
3570            case SPECIMEN: return "A sample to be used for analysis.";
3571            case STRUCTUREDEFINITION: return "A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types.";
3572            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
3573            case SUBSCRIPTION: return "The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system is able to take an appropriate action.";
3574            case SUBSTANCE: return "A homogeneous material with a definite composition.";
3575            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
3576            case SUPPLYREQUEST: return "A record of a request for a medication, substance or device used in the healthcare setting.";
3577            case TASK: return "A task to be performed.";
3578            case TESTSCRIPT: return "TestScript is a resource that specifies a suite of tests against a FHIR server implementation to determine compliance against the FHIR specification.";
3579            case VALUESET: return "A value set specifies a set of codes drawn from one or more code systems.";
3580            case VISIONPRESCRIPTION: return "An authorization for the supply of glasses and/or contact lenses to a patient.";
3581            case TYPE: return "A place holder that means any kind of data type";
3582            case ANY: return "A place holder that means any kind of resource";
3583            case NULL: return null;
3584            default: return "?";
3585          }
3586        }
3587        public String getDisplay() {
3588          switch (this) {
3589            case ACTIONDEFINITION: return "ActionDefinition";
3590            case ADDRESS: return "Address";
3591            case AGE: return "Age";
3592            case ANNOTATION: return "Annotation";
3593            case ATTACHMENT: return "Attachment";
3594            case BACKBONEELEMENT: return "BackboneElement";
3595            case CODEABLECONCEPT: return "CodeableConcept";
3596            case CODING: return "Coding";
3597            case CONTACTPOINT: return "ContactPoint";
3598            case COUNT: return "Count";
3599            case DATAREQUIREMENT: return "DataRequirement";
3600            case DISTANCE: return "Distance";
3601            case DURATION: return "Duration";
3602            case ELEMENT: return "Element";
3603            case ELEMENTDEFINITION: return "ElementDefinition";
3604            case EXTENSION: return "Extension";
3605            case HUMANNAME: return "HumanName";
3606            case IDENTIFIER: return "Identifier";
3607            case META: return "Meta";
3608            case MODULEMETADATA: return "ModuleMetadata";
3609            case MONEY: return "Money";
3610            case NARRATIVE: return "Narrative";
3611            case PARAMETERDEFINITION: return "ParameterDefinition";
3612            case PERIOD: return "Period";
3613            case QUANTITY: return "Quantity";
3614            case RANGE: return "Range";
3615            case RATIO: return "Ratio";
3616            case REFERENCE: return "Reference";
3617            case SAMPLEDDATA: return "SampledData";
3618            case SIGNATURE: return "Signature";
3619            case SIMPLEQUANTITY: return "SimpleQuantity";
3620            case TIMING: return "Timing";
3621            case TRIGGERDEFINITION: return "TriggerDefinition";
3622            case BASE64BINARY: return "base64Binary";
3623            case BOOLEAN: return "boolean";
3624            case CODE: return "code";
3625            case DATE: return "date";
3626            case DATETIME: return "dateTime";
3627            case DECIMAL: return "decimal";
3628            case ID: return "id";
3629            case INSTANT: return "instant";
3630            case INTEGER: return "integer";
3631            case MARKDOWN: return "markdown";
3632            case OID: return "oid";
3633            case POSITIVEINT: return "positiveInt";
3634            case STRING: return "string";
3635            case TIME: return "time";
3636            case UNSIGNEDINT: return "unsignedInt";
3637            case URI: return "uri";
3638            case UUID: return "uuid";
3639            case XHTML: return "XHTML";
3640            case ACCOUNT: return "Account";
3641            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
3642            case APPOINTMENT: return "Appointment";
3643            case APPOINTMENTRESPONSE: return "AppointmentResponse";
3644            case AUDITEVENT: return "AuditEvent";
3645            case BASIC: return "Basic";
3646            case BINARY: return "Binary";
3647            case BODYSITE: return "BodySite";
3648            case BUNDLE: return "Bundle";
3649            case CAREPLAN: return "CarePlan";
3650            case CARETEAM: return "CareTeam";
3651            case CLAIM: return "Claim";
3652            case CLAIMRESPONSE: return "ClaimResponse";
3653            case CLINICALIMPRESSION: return "ClinicalImpression";
3654            case CODESYSTEM: return "CodeSystem";
3655            case COMMUNICATION: return "Communication";
3656            case COMMUNICATIONREQUEST: return "CommunicationRequest";
3657            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
3658            case COMPOSITION: return "Composition";
3659            case CONCEPTMAP: return "ConceptMap";
3660            case CONDITION: return "Condition";
3661            case CONFORMANCE: return "Conformance";
3662            case CONTRACT: return "Contract";
3663            case COVERAGE: return "Coverage";
3664            case DATAELEMENT: return "DataElement";
3665            case DECISIONSUPPORTRULE: return "DecisionSupportRule";
3666            case DECISIONSUPPORTSERVICEMODULE: return "DecisionSupportServiceModule";
3667            case DETECTEDISSUE: return "DetectedIssue";
3668            case DEVICE: return "Device";
3669            case DEVICECOMPONENT: return "DeviceComponent";
3670            case DEVICEMETRIC: return "DeviceMetric";
3671            case DEVICEUSEREQUEST: return "DeviceUseRequest";
3672            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
3673            case DIAGNOSTICORDER: return "DiagnosticOrder";
3674            case DIAGNOSTICREPORT: return "DiagnosticReport";
3675            case DOCUMENTMANIFEST: return "DocumentManifest";
3676            case DOCUMENTREFERENCE: return "DocumentReference";
3677            case DOMAINRESOURCE: return "DomainResource";
3678            case ELIGIBILITYREQUEST: return "EligibilityRequest";
3679            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
3680            case ENCOUNTER: return "Encounter";
3681            case ENROLLMENTREQUEST: return "EnrollmentRequest";
3682            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
3683            case EPISODEOFCARE: return "EpisodeOfCare";
3684            case EXPANSIONPROFILE: return "ExpansionProfile";
3685            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
3686            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
3687            case FLAG: return "Flag";
3688            case GOAL: return "Goal";
3689            case GROUP: return "Group";
3690            case GUIDANCERESPONSE: return "GuidanceResponse";
3691            case HEALTHCARESERVICE: return "HealthcareService";
3692            case IMAGINGEXCERPT: return "ImagingExcerpt";
3693            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
3694            case IMAGINGSTUDY: return "ImagingStudy";
3695            case IMMUNIZATION: return "Immunization";
3696            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
3697            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
3698            case LIBRARY: return "Library";
3699            case LINKAGE: return "Linkage";
3700            case LIST: return "List";
3701            case LOCATION: return "Location";
3702            case MEASURE: return "Measure";
3703            case MEASUREREPORT: return "MeasureReport";
3704            case MEDIA: return "Media";
3705            case MEDICATION: return "Medication";
3706            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
3707            case MEDICATIONDISPENSE: return "MedicationDispense";
3708            case MEDICATIONORDER: return "MedicationOrder";
3709            case MEDICATIONSTATEMENT: return "MedicationStatement";
3710            case MESSAGEHEADER: return "MessageHeader";
3711            case MODULEDEFINITION: return "ModuleDefinition";
3712            case NAMINGSYSTEM: return "NamingSystem";
3713            case NUTRITIONORDER: return "NutritionOrder";
3714            case OBSERVATION: return "Observation";
3715            case OPERATIONDEFINITION: return "OperationDefinition";
3716            case OPERATIONOUTCOME: return "OperationOutcome";
3717            case ORDER: return "Order";
3718            case ORDERRESPONSE: return "OrderResponse";
3719            case ORDERSET: return "OrderSet";
3720            case ORGANIZATION: return "Organization";
3721            case PARAMETERS: return "Parameters";
3722            case PATIENT: return "Patient";
3723            case PAYMENTNOTICE: return "PaymentNotice";
3724            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
3725            case PERSON: return "Person";
3726            case PRACTITIONER: return "Practitioner";
3727            case PRACTITIONERROLE: return "PractitionerRole";
3728            case PROCEDURE: return "Procedure";
3729            case PROCEDUREREQUEST: return "ProcedureRequest";
3730            case PROCESSREQUEST: return "ProcessRequest";
3731            case PROCESSRESPONSE: return "ProcessResponse";
3732            case PROTOCOL: return "Protocol";
3733            case PROVENANCE: return "Provenance";
3734            case QUESTIONNAIRE: return "Questionnaire";
3735            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
3736            case REFERRALREQUEST: return "ReferralRequest";
3737            case RELATEDPERSON: return "RelatedPerson";
3738            case RESOURCE: return "Resource";
3739            case RISKASSESSMENT: return "RiskAssessment";
3740            case SCHEDULE: return "Schedule";
3741            case SEARCHPARAMETER: return "SearchParameter";
3742            case SEQUENCE: return "Sequence";
3743            case SLOT: return "Slot";
3744            case SPECIMEN: return "Specimen";
3745            case STRUCTUREDEFINITION: return "StructureDefinition";
3746            case STRUCTUREMAP: return "StructureMap";
3747            case SUBSCRIPTION: return "Subscription";
3748            case SUBSTANCE: return "Substance";
3749            case SUPPLYDELIVERY: return "SupplyDelivery";
3750            case SUPPLYREQUEST: return "SupplyRequest";
3751            case TASK: return "Task";
3752            case TESTSCRIPT: return "TestScript";
3753            case VALUESET: return "ValueSet";
3754            case VISIONPRESCRIPTION: return "VisionPrescription";
3755            case TYPE: return "Type";
3756            case ANY: return "Any";
3757            case NULL: return null;
3758            default: return "?";
3759          }
3760        }
3761    }
3762
3763  public static class FHIRAllTypesEnumFactory implements EnumFactory<FHIRAllTypes> {
3764    public FHIRAllTypes fromCode(String codeString) throws IllegalArgumentException {
3765      if (codeString == null || "".equals(codeString))
3766            if (codeString == null || "".equals(codeString))
3767                return null;
3768        if ("ActionDefinition".equals(codeString))
3769          return FHIRAllTypes.ACTIONDEFINITION;
3770        if ("Address".equals(codeString))
3771          return FHIRAllTypes.ADDRESS;
3772        if ("Age".equals(codeString))
3773          return FHIRAllTypes.AGE;
3774        if ("Annotation".equals(codeString))
3775          return FHIRAllTypes.ANNOTATION;
3776        if ("Attachment".equals(codeString))
3777          return FHIRAllTypes.ATTACHMENT;
3778        if ("BackboneElement".equals(codeString))
3779          return FHIRAllTypes.BACKBONEELEMENT;
3780        if ("CodeableConcept".equals(codeString))
3781          return FHIRAllTypes.CODEABLECONCEPT;
3782        if ("Coding".equals(codeString))
3783          return FHIRAllTypes.CODING;
3784        if ("ContactPoint".equals(codeString))
3785          return FHIRAllTypes.CONTACTPOINT;
3786        if ("Count".equals(codeString))
3787          return FHIRAllTypes.COUNT;
3788        if ("DataRequirement".equals(codeString))
3789          return FHIRAllTypes.DATAREQUIREMENT;
3790        if ("Distance".equals(codeString))
3791          return FHIRAllTypes.DISTANCE;
3792        if ("Duration".equals(codeString))
3793          return FHIRAllTypes.DURATION;
3794        if ("Element".equals(codeString))
3795          return FHIRAllTypes.ELEMENT;
3796        if ("ElementDefinition".equals(codeString))
3797          return FHIRAllTypes.ELEMENTDEFINITION;
3798        if ("Extension".equals(codeString))
3799          return FHIRAllTypes.EXTENSION;
3800        if ("HumanName".equals(codeString))
3801          return FHIRAllTypes.HUMANNAME;
3802        if ("Identifier".equals(codeString))
3803          return FHIRAllTypes.IDENTIFIER;
3804        if ("Meta".equals(codeString))
3805          return FHIRAllTypes.META;
3806        if ("ModuleMetadata".equals(codeString))
3807          return FHIRAllTypes.MODULEMETADATA;
3808        if ("Money".equals(codeString))
3809          return FHIRAllTypes.MONEY;
3810        if ("Narrative".equals(codeString))
3811          return FHIRAllTypes.NARRATIVE;
3812        if ("ParameterDefinition".equals(codeString))
3813          return FHIRAllTypes.PARAMETERDEFINITION;
3814        if ("Period".equals(codeString))
3815          return FHIRAllTypes.PERIOD;
3816        if ("Quantity".equals(codeString))
3817          return FHIRAllTypes.QUANTITY;
3818        if ("Range".equals(codeString))
3819          return FHIRAllTypes.RANGE;
3820        if ("Ratio".equals(codeString))
3821          return FHIRAllTypes.RATIO;
3822        if ("Reference".equals(codeString))
3823          return FHIRAllTypes.REFERENCE;
3824        if ("SampledData".equals(codeString))
3825          return FHIRAllTypes.SAMPLEDDATA;
3826        if ("Signature".equals(codeString))
3827          return FHIRAllTypes.SIGNATURE;
3828        if ("SimpleQuantity".equals(codeString))
3829          return FHIRAllTypes.SIMPLEQUANTITY;
3830        if ("Timing".equals(codeString))
3831          return FHIRAllTypes.TIMING;
3832        if ("TriggerDefinition".equals(codeString))
3833          return FHIRAllTypes.TRIGGERDEFINITION;
3834        if ("base64Binary".equals(codeString))
3835          return FHIRAllTypes.BASE64BINARY;
3836        if ("boolean".equals(codeString))
3837          return FHIRAllTypes.BOOLEAN;
3838        if ("code".equals(codeString))
3839          return FHIRAllTypes.CODE;
3840        if ("date".equals(codeString))
3841          return FHIRAllTypes.DATE;
3842        if ("dateTime".equals(codeString))
3843          return FHIRAllTypes.DATETIME;
3844        if ("decimal".equals(codeString))
3845          return FHIRAllTypes.DECIMAL;
3846        if ("id".equals(codeString))
3847          return FHIRAllTypes.ID;
3848        if ("instant".equals(codeString))
3849          return FHIRAllTypes.INSTANT;
3850        if ("integer".equals(codeString))
3851          return FHIRAllTypes.INTEGER;
3852        if ("markdown".equals(codeString))
3853          return FHIRAllTypes.MARKDOWN;
3854        if ("oid".equals(codeString))
3855          return FHIRAllTypes.OID;
3856        if ("positiveInt".equals(codeString))
3857          return FHIRAllTypes.POSITIVEINT;
3858        if ("string".equals(codeString))
3859          return FHIRAllTypes.STRING;
3860        if ("time".equals(codeString))
3861          return FHIRAllTypes.TIME;
3862        if ("unsignedInt".equals(codeString))
3863          return FHIRAllTypes.UNSIGNEDINT;
3864        if ("uri".equals(codeString))
3865          return FHIRAllTypes.URI;
3866        if ("uuid".equals(codeString))
3867          return FHIRAllTypes.UUID;
3868        if ("xhtml".equals(codeString))
3869          return FHIRAllTypes.XHTML;
3870        if ("Account".equals(codeString))
3871          return FHIRAllTypes.ACCOUNT;
3872        if ("AllergyIntolerance".equals(codeString))
3873          return FHIRAllTypes.ALLERGYINTOLERANCE;
3874        if ("Appointment".equals(codeString))
3875          return FHIRAllTypes.APPOINTMENT;
3876        if ("AppointmentResponse".equals(codeString))
3877          return FHIRAllTypes.APPOINTMENTRESPONSE;
3878        if ("AuditEvent".equals(codeString))
3879          return FHIRAllTypes.AUDITEVENT;
3880        if ("Basic".equals(codeString))
3881          return FHIRAllTypes.BASIC;
3882        if ("Binary".equals(codeString))
3883          return FHIRAllTypes.BINARY;
3884        if ("BodySite".equals(codeString))
3885          return FHIRAllTypes.BODYSITE;
3886        if ("Bundle".equals(codeString))
3887          return FHIRAllTypes.BUNDLE;
3888        if ("CarePlan".equals(codeString))
3889          return FHIRAllTypes.CAREPLAN;
3890        if ("CareTeam".equals(codeString))
3891          return FHIRAllTypes.CARETEAM;
3892        if ("Claim".equals(codeString))
3893          return FHIRAllTypes.CLAIM;
3894        if ("ClaimResponse".equals(codeString))
3895          return FHIRAllTypes.CLAIMRESPONSE;
3896        if ("ClinicalImpression".equals(codeString))
3897          return FHIRAllTypes.CLINICALIMPRESSION;
3898        if ("CodeSystem".equals(codeString))
3899          return FHIRAllTypes.CODESYSTEM;
3900        if ("Communication".equals(codeString))
3901          return FHIRAllTypes.COMMUNICATION;
3902        if ("CommunicationRequest".equals(codeString))
3903          return FHIRAllTypes.COMMUNICATIONREQUEST;
3904        if ("CompartmentDefinition".equals(codeString))
3905          return FHIRAllTypes.COMPARTMENTDEFINITION;
3906        if ("Composition".equals(codeString))
3907          return FHIRAllTypes.COMPOSITION;
3908        if ("ConceptMap".equals(codeString))
3909          return FHIRAllTypes.CONCEPTMAP;
3910        if ("Condition".equals(codeString))
3911          return FHIRAllTypes.CONDITION;
3912        if ("Conformance".equals(codeString))
3913          return FHIRAllTypes.CONFORMANCE;
3914        if ("Contract".equals(codeString))
3915          return FHIRAllTypes.CONTRACT;
3916        if ("Coverage".equals(codeString))
3917          return FHIRAllTypes.COVERAGE;
3918        if ("DataElement".equals(codeString))
3919          return FHIRAllTypes.DATAELEMENT;
3920        if ("DecisionSupportRule".equals(codeString))
3921          return FHIRAllTypes.DECISIONSUPPORTRULE;
3922        if ("DecisionSupportServiceModule".equals(codeString))
3923          return FHIRAllTypes.DECISIONSUPPORTSERVICEMODULE;
3924        if ("DetectedIssue".equals(codeString))
3925          return FHIRAllTypes.DETECTEDISSUE;
3926        if ("Device".equals(codeString))
3927          return FHIRAllTypes.DEVICE;
3928        if ("DeviceComponent".equals(codeString))
3929          return FHIRAllTypes.DEVICECOMPONENT;
3930        if ("DeviceMetric".equals(codeString))
3931          return FHIRAllTypes.DEVICEMETRIC;
3932        if ("DeviceUseRequest".equals(codeString))
3933          return FHIRAllTypes.DEVICEUSEREQUEST;
3934        if ("DeviceUseStatement".equals(codeString))
3935          return FHIRAllTypes.DEVICEUSESTATEMENT;
3936        if ("DiagnosticOrder".equals(codeString))
3937          return FHIRAllTypes.DIAGNOSTICORDER;
3938        if ("DiagnosticReport".equals(codeString))
3939          return FHIRAllTypes.DIAGNOSTICREPORT;
3940        if ("DocumentManifest".equals(codeString))
3941          return FHIRAllTypes.DOCUMENTMANIFEST;
3942        if ("DocumentReference".equals(codeString))
3943          return FHIRAllTypes.DOCUMENTREFERENCE;
3944        if ("DomainResource".equals(codeString))
3945          return FHIRAllTypes.DOMAINRESOURCE;
3946        if ("EligibilityRequest".equals(codeString))
3947          return FHIRAllTypes.ELIGIBILITYREQUEST;
3948        if ("EligibilityResponse".equals(codeString))
3949          return FHIRAllTypes.ELIGIBILITYRESPONSE;
3950        if ("Encounter".equals(codeString))
3951          return FHIRAllTypes.ENCOUNTER;
3952        if ("EnrollmentRequest".equals(codeString))
3953          return FHIRAllTypes.ENROLLMENTREQUEST;
3954        if ("EnrollmentResponse".equals(codeString))
3955          return FHIRAllTypes.ENROLLMENTRESPONSE;
3956        if ("EpisodeOfCare".equals(codeString))
3957          return FHIRAllTypes.EPISODEOFCARE;
3958        if ("ExpansionProfile".equals(codeString))
3959          return FHIRAllTypes.EXPANSIONPROFILE;
3960        if ("ExplanationOfBenefit".equals(codeString))
3961          return FHIRAllTypes.EXPLANATIONOFBENEFIT;
3962        if ("FamilyMemberHistory".equals(codeString))
3963          return FHIRAllTypes.FAMILYMEMBERHISTORY;
3964        if ("Flag".equals(codeString))
3965          return FHIRAllTypes.FLAG;
3966        if ("Goal".equals(codeString))
3967          return FHIRAllTypes.GOAL;
3968        if ("Group".equals(codeString))
3969          return FHIRAllTypes.GROUP;
3970        if ("GuidanceResponse".equals(codeString))
3971          return FHIRAllTypes.GUIDANCERESPONSE;
3972        if ("HealthcareService".equals(codeString))
3973          return FHIRAllTypes.HEALTHCARESERVICE;
3974        if ("ImagingExcerpt".equals(codeString))
3975          return FHIRAllTypes.IMAGINGEXCERPT;
3976        if ("ImagingObjectSelection".equals(codeString))
3977          return FHIRAllTypes.IMAGINGOBJECTSELECTION;
3978        if ("ImagingStudy".equals(codeString))
3979          return FHIRAllTypes.IMAGINGSTUDY;
3980        if ("Immunization".equals(codeString))
3981          return FHIRAllTypes.IMMUNIZATION;
3982        if ("ImmunizationRecommendation".equals(codeString))
3983          return FHIRAllTypes.IMMUNIZATIONRECOMMENDATION;
3984        if ("ImplementationGuide".equals(codeString))
3985          return FHIRAllTypes.IMPLEMENTATIONGUIDE;
3986        if ("Library".equals(codeString))
3987          return FHIRAllTypes.LIBRARY;
3988        if ("Linkage".equals(codeString))
3989          return FHIRAllTypes.LINKAGE;
3990        if ("List".equals(codeString))
3991          return FHIRAllTypes.LIST;
3992        if ("Location".equals(codeString))
3993          return FHIRAllTypes.LOCATION;
3994        if ("Measure".equals(codeString))
3995          return FHIRAllTypes.MEASURE;
3996        if ("MeasureReport".equals(codeString))
3997          return FHIRAllTypes.MEASUREREPORT;
3998        if ("Media".equals(codeString))
3999          return FHIRAllTypes.MEDIA;
4000        if ("Medication".equals(codeString))
4001          return FHIRAllTypes.MEDICATION;
4002        if ("MedicationAdministration".equals(codeString))
4003          return FHIRAllTypes.MEDICATIONADMINISTRATION;
4004        if ("MedicationDispense".equals(codeString))
4005          return FHIRAllTypes.MEDICATIONDISPENSE;
4006        if ("MedicationOrder".equals(codeString))
4007          return FHIRAllTypes.MEDICATIONORDER;
4008        if ("MedicationStatement".equals(codeString))
4009          return FHIRAllTypes.MEDICATIONSTATEMENT;
4010        if ("MessageHeader".equals(codeString))
4011          return FHIRAllTypes.MESSAGEHEADER;
4012        if ("ModuleDefinition".equals(codeString))
4013          return FHIRAllTypes.MODULEDEFINITION;
4014        if ("NamingSystem".equals(codeString))
4015          return FHIRAllTypes.NAMINGSYSTEM;
4016        if ("NutritionOrder".equals(codeString))
4017          return FHIRAllTypes.NUTRITIONORDER;
4018        if ("Observation".equals(codeString))
4019          return FHIRAllTypes.OBSERVATION;
4020        if ("OperationDefinition".equals(codeString))
4021          return FHIRAllTypes.OPERATIONDEFINITION;
4022        if ("OperationOutcome".equals(codeString))
4023          return FHIRAllTypes.OPERATIONOUTCOME;
4024        if ("Order".equals(codeString))
4025          return FHIRAllTypes.ORDER;
4026        if ("OrderResponse".equals(codeString))
4027          return FHIRAllTypes.ORDERRESPONSE;
4028        if ("OrderSet".equals(codeString))
4029          return FHIRAllTypes.ORDERSET;
4030        if ("Organization".equals(codeString))
4031          return FHIRAllTypes.ORGANIZATION;
4032        if ("Parameters".equals(codeString))
4033          return FHIRAllTypes.PARAMETERS;
4034        if ("Patient".equals(codeString))
4035          return FHIRAllTypes.PATIENT;
4036        if ("PaymentNotice".equals(codeString))
4037          return FHIRAllTypes.PAYMENTNOTICE;
4038        if ("PaymentReconciliation".equals(codeString))
4039          return FHIRAllTypes.PAYMENTRECONCILIATION;
4040        if ("Person".equals(codeString))
4041          return FHIRAllTypes.PERSON;
4042        if ("Practitioner".equals(codeString))
4043          return FHIRAllTypes.PRACTITIONER;
4044        if ("PractitionerRole".equals(codeString))
4045          return FHIRAllTypes.PRACTITIONERROLE;
4046        if ("Procedure".equals(codeString))
4047          return FHIRAllTypes.PROCEDURE;
4048        if ("ProcedureRequest".equals(codeString))
4049          return FHIRAllTypes.PROCEDUREREQUEST;
4050        if ("ProcessRequest".equals(codeString))
4051          return FHIRAllTypes.PROCESSREQUEST;
4052        if ("ProcessResponse".equals(codeString))
4053          return FHIRAllTypes.PROCESSRESPONSE;
4054        if ("Protocol".equals(codeString))
4055          return FHIRAllTypes.PROTOCOL;
4056        if ("Provenance".equals(codeString))
4057          return FHIRAllTypes.PROVENANCE;
4058        if ("Questionnaire".equals(codeString))
4059          return FHIRAllTypes.QUESTIONNAIRE;
4060        if ("QuestionnaireResponse".equals(codeString))
4061          return FHIRAllTypes.QUESTIONNAIRERESPONSE;
4062        if ("ReferralRequest".equals(codeString))
4063          return FHIRAllTypes.REFERRALREQUEST;
4064        if ("RelatedPerson".equals(codeString))
4065          return FHIRAllTypes.RELATEDPERSON;
4066        if ("Resource".equals(codeString))
4067          return FHIRAllTypes.RESOURCE;
4068        if ("RiskAssessment".equals(codeString))
4069          return FHIRAllTypes.RISKASSESSMENT;
4070        if ("Schedule".equals(codeString))
4071          return FHIRAllTypes.SCHEDULE;
4072        if ("SearchParameter".equals(codeString))
4073          return FHIRAllTypes.SEARCHPARAMETER;
4074        if ("Sequence".equals(codeString))
4075          return FHIRAllTypes.SEQUENCE;
4076        if ("Slot".equals(codeString))
4077          return FHIRAllTypes.SLOT;
4078        if ("Specimen".equals(codeString))
4079          return FHIRAllTypes.SPECIMEN;
4080        if ("StructureDefinition".equals(codeString))
4081          return FHIRAllTypes.STRUCTUREDEFINITION;
4082        if ("StructureMap".equals(codeString))
4083          return FHIRAllTypes.STRUCTUREMAP;
4084        if ("Subscription".equals(codeString))
4085          return FHIRAllTypes.SUBSCRIPTION;
4086        if ("Substance".equals(codeString))
4087          return FHIRAllTypes.SUBSTANCE;
4088        if ("SupplyDelivery".equals(codeString))
4089          return FHIRAllTypes.SUPPLYDELIVERY;
4090        if ("SupplyRequest".equals(codeString))
4091          return FHIRAllTypes.SUPPLYREQUEST;
4092        if ("Task".equals(codeString))
4093          return FHIRAllTypes.TASK;
4094        if ("TestScript".equals(codeString))
4095          return FHIRAllTypes.TESTSCRIPT;
4096        if ("ValueSet".equals(codeString))
4097          return FHIRAllTypes.VALUESET;
4098        if ("VisionPrescription".equals(codeString))
4099          return FHIRAllTypes.VISIONPRESCRIPTION;
4100        if ("Type".equals(codeString))
4101          return FHIRAllTypes.TYPE;
4102        if ("Any".equals(codeString))
4103          return FHIRAllTypes.ANY;
4104        throw new IllegalArgumentException("Unknown FHIRAllTypes code '"+codeString+"'");
4105        }
4106        public Enumeration<FHIRAllTypes> fromType(Base code) throws FHIRException {
4107          if (code == null || code.isEmpty())
4108            return null;
4109          String codeString = ((PrimitiveType) code).asStringValue();
4110          if (codeString == null || "".equals(codeString))
4111            return null;
4112        if ("ActionDefinition".equals(codeString))
4113          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ACTIONDEFINITION);
4114        if ("Address".equals(codeString))
4115          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ADDRESS);
4116        if ("Age".equals(codeString))
4117          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.AGE);
4118        if ("Annotation".equals(codeString))
4119          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ANNOTATION);
4120        if ("Attachment".equals(codeString))
4121          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ATTACHMENT);
4122        if ("BackboneElement".equals(codeString))
4123          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BACKBONEELEMENT);
4124        if ("CodeableConcept".equals(codeString))
4125          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODEABLECONCEPT);
4126        if ("Coding".equals(codeString))
4127          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODING);
4128        if ("ContactPoint".equals(codeString))
4129          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTACTPOINT);
4130        if ("Count".equals(codeString))
4131          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COUNT);
4132        if ("DataRequirement".equals(codeString))
4133          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATAREQUIREMENT);
4134        if ("Distance".equals(codeString))
4135          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DISTANCE);
4136        if ("Duration".equals(codeString))
4137          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DURATION);
4138        if ("Element".equals(codeString))
4139          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELEMENT);
4140        if ("ElementDefinition".equals(codeString))
4141          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELEMENTDEFINITION);
4142        if ("Extension".equals(codeString))
4143          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXTENSION);
4144        if ("HumanName".equals(codeString))
4145          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.HUMANNAME);
4146        if ("Identifier".equals(codeString))
4147          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IDENTIFIER);
4148        if ("Meta".equals(codeString))
4149          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.META);
4150        if ("ModuleMetadata".equals(codeString))
4151          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MODULEMETADATA);
4152        if ("Money".equals(codeString))
4153          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MONEY);
4154        if ("Narrative".equals(codeString))
4155          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NARRATIVE);
4156        if ("ParameterDefinition".equals(codeString))
4157          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PARAMETERDEFINITION);
4158        if ("Period".equals(codeString))
4159          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PERIOD);
4160        if ("Quantity".equals(codeString))
4161          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUANTITY);
4162        if ("Range".equals(codeString))
4163          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RANGE);
4164        if ("Ratio".equals(codeString))
4165          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RATIO);
4166        if ("Reference".equals(codeString))
4167          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.REFERENCE);
4168        if ("SampledData".equals(codeString))
4169          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SAMPLEDDATA);
4170        if ("Signature".equals(codeString))
4171          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SIGNATURE);
4172        if ("SimpleQuantity".equals(codeString))
4173          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SIMPLEQUANTITY);
4174        if ("Timing".equals(codeString))
4175          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TIMING);
4176        if ("TriggerDefinition".equals(codeString))
4177          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TRIGGERDEFINITION);
4178        if ("base64Binary".equals(codeString))
4179          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BASE64BINARY);
4180        if ("boolean".equals(codeString))
4181          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BOOLEAN);
4182        if ("code".equals(codeString))
4183          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODE);
4184        if ("date".equals(codeString))
4185          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATE);
4186        if ("dateTime".equals(codeString))
4187          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATETIME);
4188        if ("decimal".equals(codeString))
4189          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DECIMAL);
4190        if ("id".equals(codeString))
4191          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ID);
4192        if ("instant".equals(codeString))
4193          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INSTANT);
4194        if ("integer".equals(codeString))
4195          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INTEGER);
4196        if ("markdown".equals(codeString))
4197          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MARKDOWN);
4198        if ("oid".equals(codeString))
4199          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OID);
4200        if ("positiveInt".equals(codeString))
4201          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.POSITIVEINT);
4202        if ("string".equals(codeString))
4203          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRING);
4204        if ("time".equals(codeString))
4205          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TIME);
4206        if ("unsignedInt".equals(codeString))
4207          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.UNSIGNEDINT);
4208        if ("uri".equals(codeString))
4209          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.URI);
4210        if ("uuid".equals(codeString))
4211          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.UUID);
4212        if ("xhtml".equals(codeString))
4213          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.XHTML);
4214        if ("Account".equals(codeString))
4215          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ACCOUNT);
4216        if ("AllergyIntolerance".equals(codeString))
4217          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ALLERGYINTOLERANCE);
4218        if ("Appointment".equals(codeString))
4219          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.APPOINTMENT);
4220        if ("AppointmentResponse".equals(codeString))
4221          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.APPOINTMENTRESPONSE);
4222        if ("AuditEvent".equals(codeString))
4223          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.AUDITEVENT);
4224        if ("Basic".equals(codeString))
4225          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BASIC);
4226        if ("Binary".equals(codeString))
4227          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BINARY);
4228        if ("BodySite".equals(codeString))
4229          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BODYSITE);
4230        if ("Bundle".equals(codeString))
4231          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BUNDLE);
4232        if ("CarePlan".equals(codeString))
4233          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CAREPLAN);
4234        if ("CareTeam".equals(codeString))
4235          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CARETEAM);
4236        if ("Claim".equals(codeString))
4237          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLAIM);
4238        if ("ClaimResponse".equals(codeString))
4239          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLAIMRESPONSE);
4240        if ("ClinicalImpression".equals(codeString))
4241          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLINICALIMPRESSION);
4242        if ("CodeSystem".equals(codeString))
4243          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODESYSTEM);
4244        if ("Communication".equals(codeString))
4245          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMMUNICATION);
4246        if ("CommunicationRequest".equals(codeString))
4247          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMMUNICATIONREQUEST);
4248        if ("CompartmentDefinition".equals(codeString))
4249          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMPARTMENTDEFINITION);
4250        if ("Composition".equals(codeString))
4251          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMPOSITION);
4252        if ("ConceptMap".equals(codeString))
4253          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONCEPTMAP);
4254        if ("Condition".equals(codeString))
4255          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONDITION);
4256        if ("Conformance".equals(codeString))
4257          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONFORMANCE);
4258        if ("Contract".equals(codeString))
4259          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTRACT);
4260        if ("Coverage".equals(codeString))
4261          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COVERAGE);
4262        if ("DataElement".equals(codeString))
4263          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATAELEMENT);
4264        if ("DecisionSupportRule".equals(codeString))
4265          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DECISIONSUPPORTRULE);
4266        if ("DecisionSupportServiceModule".equals(codeString))
4267          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DECISIONSUPPORTSERVICEMODULE);
4268        if ("DetectedIssue".equals(codeString))
4269          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DETECTEDISSUE);
4270        if ("Device".equals(codeString))
4271          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICE);
4272        if ("DeviceComponent".equals(codeString))
4273          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICECOMPONENT);
4274        if ("DeviceMetric".equals(codeString))
4275          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEMETRIC);
4276        if ("DeviceUseRequest".equals(codeString))
4277          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEUSEREQUEST);
4278        if ("DeviceUseStatement".equals(codeString))
4279          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEUSESTATEMENT);
4280        if ("DiagnosticOrder".equals(codeString))
4281          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DIAGNOSTICORDER);
4282        if ("DiagnosticReport".equals(codeString))
4283          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DIAGNOSTICREPORT);
4284        if ("DocumentManifest".equals(codeString))
4285          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOCUMENTMANIFEST);
4286        if ("DocumentReference".equals(codeString))
4287          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOCUMENTREFERENCE);
4288        if ("DomainResource".equals(codeString))
4289          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOMAINRESOURCE);
4290        if ("EligibilityRequest".equals(codeString))
4291          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELIGIBILITYREQUEST);
4292        if ("EligibilityResponse".equals(codeString))
4293          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELIGIBILITYRESPONSE);
4294        if ("Encounter".equals(codeString))
4295          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENCOUNTER);
4296        if ("EnrollmentRequest".equals(codeString))
4297          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENROLLMENTREQUEST);
4298        if ("EnrollmentResponse".equals(codeString))
4299          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENROLLMENTRESPONSE);
4300        if ("EpisodeOfCare".equals(codeString))
4301          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EPISODEOFCARE);
4302        if ("ExpansionProfile".equals(codeString))
4303          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXPANSIONPROFILE);
4304        if ("ExplanationOfBenefit".equals(codeString))
4305          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXPLANATIONOFBENEFIT);
4306        if ("FamilyMemberHistory".equals(codeString))
4307          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.FAMILYMEMBERHISTORY);
4308        if ("Flag".equals(codeString))
4309          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.FLAG);
4310        if ("Goal".equals(codeString))
4311          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GOAL);
4312        if ("Group".equals(codeString))
4313          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GROUP);
4314        if ("GuidanceResponse".equals(codeString))
4315          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GUIDANCERESPONSE);
4316        if ("HealthcareService".equals(codeString))
4317          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.HEALTHCARESERVICE);
4318        if ("ImagingExcerpt".equals(codeString))
4319          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMAGINGEXCERPT);
4320        if ("ImagingObjectSelection".equals(codeString))
4321          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMAGINGOBJECTSELECTION);
4322        if ("ImagingStudy".equals(codeString))
4323          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMAGINGSTUDY);
4324        if ("Immunization".equals(codeString))
4325          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMMUNIZATION);
4326        if ("ImmunizationRecommendation".equals(codeString))
4327          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMMUNIZATIONRECOMMENDATION);
4328        if ("ImplementationGuide".equals(codeString))
4329          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMPLEMENTATIONGUIDE);
4330        if ("Library".equals(codeString))
4331          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LIBRARY);
4332        if ("Linkage".equals(codeString))
4333          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LINKAGE);
4334        if ("List".equals(codeString))
4335          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LIST);
4336        if ("Location".equals(codeString))
4337          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LOCATION);
4338        if ("Measure".equals(codeString))
4339          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEASURE);
4340        if ("MeasureReport".equals(codeString))
4341          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEASUREREPORT);
4342        if ("Media".equals(codeString))
4343          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDIA);
4344        if ("Medication".equals(codeString))
4345          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATION);
4346        if ("MedicationAdministration".equals(codeString))
4347          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONADMINISTRATION);
4348        if ("MedicationDispense".equals(codeString))
4349          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONDISPENSE);
4350        if ("MedicationOrder".equals(codeString))
4351          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONORDER);
4352        if ("MedicationStatement".equals(codeString))
4353          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONSTATEMENT);
4354        if ("MessageHeader".equals(codeString))
4355          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MESSAGEHEADER);
4356        if ("ModuleDefinition".equals(codeString))
4357          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MODULEDEFINITION);
4358        if ("NamingSystem".equals(codeString))
4359          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NAMINGSYSTEM);
4360        if ("NutritionOrder".equals(codeString))
4361          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NUTRITIONORDER);
4362        if ("Observation".equals(codeString))
4363          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OBSERVATION);
4364        if ("OperationDefinition".equals(codeString))
4365          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OPERATIONDEFINITION);
4366        if ("OperationOutcome".equals(codeString))
4367          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OPERATIONOUTCOME);
4368        if ("Order".equals(codeString))
4369          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ORDER);
4370        if ("OrderResponse".equals(codeString))
4371          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ORDERRESPONSE);
4372        if ("OrderSet".equals(codeString))
4373          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ORDERSET);
4374        if ("Organization".equals(codeString))
4375          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ORGANIZATION);
4376        if ("Parameters".equals(codeString))
4377          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PARAMETERS);
4378        if ("Patient".equals(codeString))
4379          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PATIENT);
4380        if ("PaymentNotice".equals(codeString))
4381          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PAYMENTNOTICE);
4382        if ("PaymentReconciliation".equals(codeString))
4383          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PAYMENTRECONCILIATION);
4384        if ("Person".equals(codeString))
4385          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PERSON);
4386        if ("Practitioner".equals(codeString))
4387          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRACTITIONER);
4388        if ("PractitionerRole".equals(codeString))
4389          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRACTITIONERROLE);
4390        if ("Procedure".equals(codeString))
4391          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCEDURE);
4392        if ("ProcedureRequest".equals(codeString))
4393          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCEDUREREQUEST);
4394        if ("ProcessRequest".equals(codeString))
4395          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCESSREQUEST);
4396        if ("ProcessResponse".equals(codeString))
4397          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCESSRESPONSE);
4398        if ("Protocol".equals(codeString))
4399          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROTOCOL);
4400        if ("Provenance".equals(codeString))
4401          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROVENANCE);
4402        if ("Questionnaire".equals(codeString))
4403          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUESTIONNAIRE);
4404        if ("QuestionnaireResponse".equals(codeString))
4405          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUESTIONNAIRERESPONSE);
4406        if ("ReferralRequest".equals(codeString))
4407          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.REFERRALREQUEST);
4408        if ("RelatedPerson".equals(codeString))
4409          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RELATEDPERSON);
4410        if ("Resource".equals(codeString))
4411          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESOURCE);
4412        if ("RiskAssessment".equals(codeString))
4413          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RISKASSESSMENT);
4414        if ("Schedule".equals(codeString))
4415          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SCHEDULE);
4416        if ("SearchParameter".equals(codeString))
4417          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SEARCHPARAMETER);
4418        if ("Sequence".equals(codeString))
4419          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SEQUENCE);
4420        if ("Slot".equals(codeString))
4421          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SLOT);
4422        if ("Specimen".equals(codeString))
4423          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SPECIMEN);
4424        if ("StructureDefinition".equals(codeString))
4425          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRUCTUREDEFINITION);
4426        if ("StructureMap".equals(codeString))
4427          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRUCTUREMAP);
4428        if ("Subscription".equals(codeString))
4429          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSCRIPTION);
4430        if ("Substance".equals(codeString))
4431          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCE);
4432        if ("SupplyDelivery".equals(codeString))
4433          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUPPLYDELIVERY);
4434        if ("SupplyRequest".equals(codeString))
4435          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUPPLYREQUEST);
4436        if ("Task".equals(codeString))
4437          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TASK);
4438        if ("TestScript".equals(codeString))
4439          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TESTSCRIPT);
4440        if ("ValueSet".equals(codeString))
4441          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.VALUESET);
4442        if ("VisionPrescription".equals(codeString))
4443          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.VISIONPRESCRIPTION);
4444        if ("Type".equals(codeString))
4445          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TYPE);
4446        if ("Any".equals(codeString))
4447          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ANY);
4448        throw new FHIRException("Unknown FHIRAllTypes code '"+codeString+"'");
4449        }
4450    public String toCode(FHIRAllTypes code) {
4451      if (code == FHIRAllTypes.ACTIONDEFINITION)
4452        return "ActionDefinition";
4453      if (code == FHIRAllTypes.ADDRESS)
4454        return "Address";
4455      if (code == FHIRAllTypes.AGE)
4456        return "Age";
4457      if (code == FHIRAllTypes.ANNOTATION)
4458        return "Annotation";
4459      if (code == FHIRAllTypes.ATTACHMENT)
4460        return "Attachment";
4461      if (code == FHIRAllTypes.BACKBONEELEMENT)
4462        return "BackboneElement";
4463      if (code == FHIRAllTypes.CODEABLECONCEPT)
4464        return "CodeableConcept";
4465      if (code == FHIRAllTypes.CODING)
4466        return "Coding";
4467      if (code == FHIRAllTypes.CONTACTPOINT)
4468        return "ContactPoint";
4469      if (code == FHIRAllTypes.COUNT)
4470        return "Count";
4471      if (code == FHIRAllTypes.DATAREQUIREMENT)
4472        return "DataRequirement";
4473      if (code == FHIRAllTypes.DISTANCE)
4474        return "Distance";
4475      if (code == FHIRAllTypes.DURATION)
4476        return "Duration";
4477      if (code == FHIRAllTypes.ELEMENT)
4478        return "Element";
4479      if (code == FHIRAllTypes.ELEMENTDEFINITION)
4480        return "ElementDefinition";
4481      if (code == FHIRAllTypes.EXTENSION)
4482        return "Extension";
4483      if (code == FHIRAllTypes.HUMANNAME)
4484        return "HumanName";
4485      if (code == FHIRAllTypes.IDENTIFIER)
4486        return "Identifier";
4487      if (code == FHIRAllTypes.META)
4488        return "Meta";
4489      if (code == FHIRAllTypes.MODULEMETADATA)
4490        return "ModuleMetadata";
4491      if (code == FHIRAllTypes.MONEY)
4492        return "Money";
4493      if (code == FHIRAllTypes.NARRATIVE)
4494        return "Narrative";
4495      if (code == FHIRAllTypes.PARAMETERDEFINITION)
4496        return "ParameterDefinition";
4497      if (code == FHIRAllTypes.PERIOD)
4498        return "Period";
4499      if (code == FHIRAllTypes.QUANTITY)
4500        return "Quantity";
4501      if (code == FHIRAllTypes.RANGE)
4502        return "Range";
4503      if (code == FHIRAllTypes.RATIO)
4504        return "Ratio";
4505      if (code == FHIRAllTypes.REFERENCE)
4506        return "Reference";
4507      if (code == FHIRAllTypes.SAMPLEDDATA)
4508        return "SampledData";
4509      if (code == FHIRAllTypes.SIGNATURE)
4510        return "Signature";
4511      if (code == FHIRAllTypes.SIMPLEQUANTITY)
4512        return "SimpleQuantity";
4513      if (code == FHIRAllTypes.TIMING)
4514        return "Timing";
4515      if (code == FHIRAllTypes.TRIGGERDEFINITION)
4516        return "TriggerDefinition";
4517      if (code == FHIRAllTypes.BASE64BINARY)
4518        return "base64Binary";
4519      if (code == FHIRAllTypes.BOOLEAN)
4520        return "boolean";
4521      if (code == FHIRAllTypes.CODE)
4522        return "code";
4523      if (code == FHIRAllTypes.DATE)
4524        return "date";
4525      if (code == FHIRAllTypes.DATETIME)
4526        return "dateTime";
4527      if (code == FHIRAllTypes.DECIMAL)
4528        return "decimal";
4529      if (code == FHIRAllTypes.ID)
4530        return "id";
4531      if (code == FHIRAllTypes.INSTANT)
4532        return "instant";
4533      if (code == FHIRAllTypes.INTEGER)
4534        return "integer";
4535      if (code == FHIRAllTypes.MARKDOWN)
4536        return "markdown";
4537      if (code == FHIRAllTypes.OID)
4538        return "oid";
4539      if (code == FHIRAllTypes.POSITIVEINT)
4540        return "positiveInt";
4541      if (code == FHIRAllTypes.STRING)
4542        return "string";
4543      if (code == FHIRAllTypes.TIME)
4544        return "time";
4545      if (code == FHIRAllTypes.UNSIGNEDINT)
4546        return "unsignedInt";
4547      if (code == FHIRAllTypes.URI)
4548        return "uri";
4549      if (code == FHIRAllTypes.UUID)
4550        return "uuid";
4551      if (code == FHIRAllTypes.XHTML)
4552        return "xhtml";
4553      if (code == FHIRAllTypes.ACCOUNT)
4554        return "Account";
4555      if (code == FHIRAllTypes.ALLERGYINTOLERANCE)
4556        return "AllergyIntolerance";
4557      if (code == FHIRAllTypes.APPOINTMENT)
4558        return "Appointment";
4559      if (code == FHIRAllTypes.APPOINTMENTRESPONSE)
4560        return "AppointmentResponse";
4561      if (code == FHIRAllTypes.AUDITEVENT)
4562        return "AuditEvent";
4563      if (code == FHIRAllTypes.BASIC)
4564        return "Basic";
4565      if (code == FHIRAllTypes.BINARY)
4566        return "Binary";
4567      if (code == FHIRAllTypes.BODYSITE)
4568        return "BodySite";
4569      if (code == FHIRAllTypes.BUNDLE)
4570        return "Bundle";
4571      if (code == FHIRAllTypes.CAREPLAN)
4572        return "CarePlan";
4573      if (code == FHIRAllTypes.CARETEAM)
4574        return "CareTeam";
4575      if (code == FHIRAllTypes.CLAIM)
4576        return "Claim";
4577      if (code == FHIRAllTypes.CLAIMRESPONSE)
4578        return "ClaimResponse";
4579      if (code == FHIRAllTypes.CLINICALIMPRESSION)
4580        return "ClinicalImpression";
4581      if (code == FHIRAllTypes.CODESYSTEM)
4582        return "CodeSystem";
4583      if (code == FHIRAllTypes.COMMUNICATION)
4584        return "Communication";
4585      if (code == FHIRAllTypes.COMMUNICATIONREQUEST)
4586        return "CommunicationRequest";
4587      if (code == FHIRAllTypes.COMPARTMENTDEFINITION)
4588        return "CompartmentDefinition";
4589      if (code == FHIRAllTypes.COMPOSITION)
4590        return "Composition";
4591      if (code == FHIRAllTypes.CONCEPTMAP)
4592        return "ConceptMap";
4593      if (code == FHIRAllTypes.CONDITION)
4594        return "Condition";
4595      if (code == FHIRAllTypes.CONFORMANCE)
4596        return "Conformance";
4597      if (code == FHIRAllTypes.CONTRACT)
4598        return "Contract";
4599      if (code == FHIRAllTypes.COVERAGE)
4600        return "Coverage";
4601      if (code == FHIRAllTypes.DATAELEMENT)
4602        return "DataElement";
4603      if (code == FHIRAllTypes.DECISIONSUPPORTRULE)
4604        return "DecisionSupportRule";
4605      if (code == FHIRAllTypes.DECISIONSUPPORTSERVICEMODULE)
4606        return "DecisionSupportServiceModule";
4607      if (code == FHIRAllTypes.DETECTEDISSUE)
4608        return "DetectedIssue";
4609      if (code == FHIRAllTypes.DEVICE)
4610        return "Device";
4611      if (code == FHIRAllTypes.DEVICECOMPONENT)
4612        return "DeviceComponent";
4613      if (code == FHIRAllTypes.DEVICEMETRIC)
4614        return "DeviceMetric";
4615      if (code == FHIRAllTypes.DEVICEUSEREQUEST)
4616        return "DeviceUseRequest";
4617      if (code == FHIRAllTypes.DEVICEUSESTATEMENT)
4618        return "DeviceUseStatement";
4619      if (code == FHIRAllTypes.DIAGNOSTICORDER)
4620        return "DiagnosticOrder";
4621      if (code == FHIRAllTypes.DIAGNOSTICREPORT)
4622        return "DiagnosticReport";
4623      if (code == FHIRAllTypes.DOCUMENTMANIFEST)
4624        return "DocumentManifest";
4625      if (code == FHIRAllTypes.DOCUMENTREFERENCE)
4626        return "DocumentReference";
4627      if (code == FHIRAllTypes.DOMAINRESOURCE)
4628        return "DomainResource";
4629      if (code == FHIRAllTypes.ELIGIBILITYREQUEST)
4630        return "EligibilityRequest";
4631      if (code == FHIRAllTypes.ELIGIBILITYRESPONSE)
4632        return "EligibilityResponse";
4633      if (code == FHIRAllTypes.ENCOUNTER)
4634        return "Encounter";
4635      if (code == FHIRAllTypes.ENROLLMENTREQUEST)
4636        return "EnrollmentRequest";
4637      if (code == FHIRAllTypes.ENROLLMENTRESPONSE)
4638        return "EnrollmentResponse";
4639      if (code == FHIRAllTypes.EPISODEOFCARE)
4640        return "EpisodeOfCare";
4641      if (code == FHIRAllTypes.EXPANSIONPROFILE)
4642        return "ExpansionProfile";
4643      if (code == FHIRAllTypes.EXPLANATIONOFBENEFIT)
4644        return "ExplanationOfBenefit";
4645      if (code == FHIRAllTypes.FAMILYMEMBERHISTORY)
4646        return "FamilyMemberHistory";
4647      if (code == FHIRAllTypes.FLAG)
4648        return "Flag";
4649      if (code == FHIRAllTypes.GOAL)
4650        return "Goal";
4651      if (code == FHIRAllTypes.GROUP)
4652        return "Group";
4653      if (code == FHIRAllTypes.GUIDANCERESPONSE)
4654        return "GuidanceResponse";
4655      if (code == FHIRAllTypes.HEALTHCARESERVICE)
4656        return "HealthcareService";
4657      if (code == FHIRAllTypes.IMAGINGEXCERPT)
4658        return "ImagingExcerpt";
4659      if (code == FHIRAllTypes.IMAGINGOBJECTSELECTION)
4660        return "ImagingObjectSelection";
4661      if (code == FHIRAllTypes.IMAGINGSTUDY)
4662        return "ImagingStudy";
4663      if (code == FHIRAllTypes.IMMUNIZATION)
4664        return "Immunization";
4665      if (code == FHIRAllTypes.IMMUNIZATIONRECOMMENDATION)
4666        return "ImmunizationRecommendation";
4667      if (code == FHIRAllTypes.IMPLEMENTATIONGUIDE)
4668        return "ImplementationGuide";
4669      if (code == FHIRAllTypes.LIBRARY)
4670        return "Library";
4671      if (code == FHIRAllTypes.LINKAGE)
4672        return "Linkage";
4673      if (code == FHIRAllTypes.LIST)
4674        return "List";
4675      if (code == FHIRAllTypes.LOCATION)
4676        return "Location";
4677      if (code == FHIRAllTypes.MEASURE)
4678        return "Measure";
4679      if (code == FHIRAllTypes.MEASUREREPORT)
4680        return "MeasureReport";
4681      if (code == FHIRAllTypes.MEDIA)
4682        return "Media";
4683      if (code == FHIRAllTypes.MEDICATION)
4684        return "Medication";
4685      if (code == FHIRAllTypes.MEDICATIONADMINISTRATION)
4686        return "MedicationAdministration";
4687      if (code == FHIRAllTypes.MEDICATIONDISPENSE)
4688        return "MedicationDispense";
4689      if (code == FHIRAllTypes.MEDICATIONORDER)
4690        return "MedicationOrder";
4691      if (code == FHIRAllTypes.MEDICATIONSTATEMENT)
4692        return "MedicationStatement";
4693      if (code == FHIRAllTypes.MESSAGEHEADER)
4694        return "MessageHeader";
4695      if (code == FHIRAllTypes.MODULEDEFINITION)
4696        return "ModuleDefinition";
4697      if (code == FHIRAllTypes.NAMINGSYSTEM)
4698        return "NamingSystem";
4699      if (code == FHIRAllTypes.NUTRITIONORDER)
4700        return "NutritionOrder";
4701      if (code == FHIRAllTypes.OBSERVATION)
4702        return "Observation";
4703      if (code == FHIRAllTypes.OPERATIONDEFINITION)
4704        return "OperationDefinition";
4705      if (code == FHIRAllTypes.OPERATIONOUTCOME)
4706        return "OperationOutcome";
4707      if (code == FHIRAllTypes.ORDER)
4708        return "Order";
4709      if (code == FHIRAllTypes.ORDERRESPONSE)
4710        return "OrderResponse";
4711      if (code == FHIRAllTypes.ORDERSET)
4712        return "OrderSet";
4713      if (code == FHIRAllTypes.ORGANIZATION)
4714        return "Organization";
4715      if (code == FHIRAllTypes.PARAMETERS)
4716        return "Parameters";
4717      if (code == FHIRAllTypes.PATIENT)
4718        return "Patient";
4719      if (code == FHIRAllTypes.PAYMENTNOTICE)
4720        return "PaymentNotice";
4721      if (code == FHIRAllTypes.PAYMENTRECONCILIATION)
4722        return "PaymentReconciliation";
4723      if (code == FHIRAllTypes.PERSON)
4724        return "Person";
4725      if (code == FHIRAllTypes.PRACTITIONER)
4726        return "Practitioner";
4727      if (code == FHIRAllTypes.PRACTITIONERROLE)
4728        return "PractitionerRole";
4729      if (code == FHIRAllTypes.PROCEDURE)
4730        return "Procedure";
4731      if (code == FHIRAllTypes.PROCEDUREREQUEST)
4732        return "ProcedureRequest";
4733      if (code == FHIRAllTypes.PROCESSREQUEST)
4734        return "ProcessRequest";
4735      if (code == FHIRAllTypes.PROCESSRESPONSE)
4736        return "ProcessResponse";
4737      if (code == FHIRAllTypes.PROTOCOL)
4738        return "Protocol";
4739      if (code == FHIRAllTypes.PROVENANCE)
4740        return "Provenance";
4741      if (code == FHIRAllTypes.QUESTIONNAIRE)
4742        return "Questionnaire";
4743      if (code == FHIRAllTypes.QUESTIONNAIRERESPONSE)
4744        return "QuestionnaireResponse";
4745      if (code == FHIRAllTypes.REFERRALREQUEST)
4746        return "ReferralRequest";
4747      if (code == FHIRAllTypes.RELATEDPERSON)
4748        return "RelatedPerson";
4749      if (code == FHIRAllTypes.RESOURCE)
4750        return "Resource";
4751      if (code == FHIRAllTypes.RISKASSESSMENT)
4752        return "RiskAssessment";
4753      if (code == FHIRAllTypes.SCHEDULE)
4754        return "Schedule";
4755      if (code == FHIRAllTypes.SEARCHPARAMETER)
4756        return "SearchParameter";
4757      if (code == FHIRAllTypes.SEQUENCE)
4758        return "Sequence";
4759      if (code == FHIRAllTypes.SLOT)
4760        return "Slot";
4761      if (code == FHIRAllTypes.SPECIMEN)
4762        return "Specimen";
4763      if (code == FHIRAllTypes.STRUCTUREDEFINITION)
4764        return "StructureDefinition";
4765      if (code == FHIRAllTypes.STRUCTUREMAP)
4766        return "StructureMap";
4767      if (code == FHIRAllTypes.SUBSCRIPTION)
4768        return "Subscription";
4769      if (code == FHIRAllTypes.SUBSTANCE)
4770        return "Substance";
4771      if (code == FHIRAllTypes.SUPPLYDELIVERY)
4772        return "SupplyDelivery";
4773      if (code == FHIRAllTypes.SUPPLYREQUEST)
4774        return "SupplyRequest";
4775      if (code == FHIRAllTypes.TASK)
4776        return "Task";
4777      if (code == FHIRAllTypes.TESTSCRIPT)
4778        return "TestScript";
4779      if (code == FHIRAllTypes.VALUESET)
4780        return "ValueSet";
4781      if (code == FHIRAllTypes.VISIONPRESCRIPTION)
4782        return "VisionPrescription";
4783      if (code == FHIRAllTypes.TYPE)
4784        return "Type";
4785      if (code == FHIRAllTypes.ANY)
4786        return "Any";
4787      return "?";
4788      }
4789    public String toSystem(FHIRAllTypes code) {
4790      return code.getSystem();
4791      }
4792    }
4793
4794    public enum FHIRDefinedType {
4795        /**
4796         * The definition of an action to be performed. Some aspects of the definition are specified statically, and some aspects can be specified dynamically by referencing logic defined in a library.
4797         */
4798        ACTIONDEFINITION, 
4799        /**
4800         * An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations and which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.
4801         */
4802        ADDRESS, 
4803        /**
4804         * null
4805         */
4806        AGE, 
4807        /**
4808         * A  text note which also  contains information about who made the statement and when.
4809         */
4810        ANNOTATION, 
4811        /**
4812         * For referring to data content defined in other formats.
4813         */
4814        ATTACHMENT, 
4815        /**
4816         * Base definition for all elements that are defined inside a resource - but not those in a data type.
4817         */
4818        BACKBONEELEMENT, 
4819        /**
4820         * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
4821         */
4822        CODEABLECONCEPT, 
4823        /**
4824         * A reference to a code defined by a terminology system.
4825         */
4826        CODING, 
4827        /**
4828         * Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
4829         */
4830        CONTACTPOINT, 
4831        /**
4832         * null
4833         */
4834        COUNT, 
4835        /**
4836         * Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the data.
4837         */
4838        DATAREQUIREMENT, 
4839        /**
4840         * null
4841         */
4842        DISTANCE, 
4843        /**
4844         * null
4845         */
4846        DURATION, 
4847        /**
4848         * Base definition for all elements in a resource.
4849         */
4850        ELEMENT, 
4851        /**
4852         * Captures constraints on each element within the resource, profile, or extension.
4853         */
4854        ELEMENTDEFINITION, 
4855        /**
4856         * Optional Extensions Element - found in all resources.
4857         */
4858        EXTENSION, 
4859        /**
4860         * A human's name with the ability to identify parts and usage.
4861         */
4862        HUMANNAME, 
4863        /**
4864         * A technical identifier - identifies some entity uniquely and unambiguously.
4865         */
4866        IDENTIFIER, 
4867        /**
4868         * The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.
4869         */
4870        META, 
4871        /**
4872         * The ModuleMetadata structure defines the common metadata elements used by quality improvement artifacts. This information includes descriptive and topical metadata to enable repository searches, as well as governance and evidentiary support information.
4873         */
4874        MODULEMETADATA, 
4875        /**
4876         * null
4877         */
4878        MONEY, 
4879        /**
4880         * A human-readable formatted text, including images.
4881         */
4882        NARRATIVE, 
4883        /**
4884         * The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.
4885         */
4886        PARAMETERDEFINITION, 
4887        /**
4888         * A time period defined by a start and end date and optionally time.
4889         */
4890        PERIOD, 
4891        /**
4892         * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.
4893         */
4894        QUANTITY, 
4895        /**
4896         * A set of ordered Quantities defined by a low and high limit.
4897         */
4898        RANGE, 
4899        /**
4900         * A relationship of two Quantity values - expressed as a numerator and a denominator.
4901         */
4902        RATIO, 
4903        /**
4904         * A reference from one resource to another.
4905         */
4906        REFERENCE, 
4907        /**
4908         * A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
4909         */
4910        SAMPLEDDATA, 
4911        /**
4912         * A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different Signature approaches have different utilities.
4913         */
4914        SIGNATURE, 
4915        /**
4916         * null
4917         */
4918        SIMPLEQUANTITY, 
4919        /**
4920         * Specifies an event that may occur multiple times. Timing schedules are used to record when things are expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds.
4921         */
4922        TIMING, 
4923        /**
4924         * A description of a triggering event.
4925         */
4926        TRIGGERDEFINITION, 
4927        /**
4928         * A stream of bytes
4929         */
4930        BASE64BINARY, 
4931        /**
4932         * Value of "true" or "false"
4933         */
4934        BOOLEAN, 
4935        /**
4936         * A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents
4937         */
4938        CODE, 
4939        /**
4940         * A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.
4941         */
4942        DATE, 
4943        /**
4944         * A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.
4945         */
4946        DATETIME, 
4947        /**
4948         * A rational number with implicit precision
4949         */
4950        DECIMAL, 
4951        /**
4952         * Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.
4953         */
4954        ID, 
4955        /**
4956         * An instant in time - known at least to the second
4957         */
4958        INSTANT, 
4959        /**
4960         * A whole number
4961         */
4962        INTEGER, 
4963        /**
4964         * A string that may contain markdown syntax for optional processing by a mark down presentation engine
4965         */
4966        MARKDOWN, 
4967        /**
4968         * An oid represented as a URI
4969         */
4970        OID, 
4971        /**
4972         * An integer with a value that is positive (e.g. >0)
4973         */
4974        POSITIVEINT, 
4975        /**
4976         * A sequence of Unicode characters
4977         */
4978        STRING, 
4979        /**
4980         * A time during the day, with no date specified
4981         */
4982        TIME, 
4983        /**
4984         * An integer with a value that is not negative (e.g. >= 0)
4985         */
4986        UNSIGNEDINT, 
4987        /**
4988         * String of characters used to identify a name or a resource
4989         */
4990        URI, 
4991        /**
4992         * A UUID, represented as a URI
4993         */
4994        UUID, 
4995        /**
4996         * XHTML format, as defined by W3C, but restricted usage (mainly, no active content)
4997         */
4998        XHTML, 
4999        /**
5000         * A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centres, etc.
5001         */
5002        ACCOUNT, 
5003        /**
5004         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
5005         */
5006        ALLERGYINTOLERANCE, 
5007        /**
5008         * A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).
5009         */
5010        APPOINTMENT, 
5011        /**
5012         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
5013         */
5014        APPOINTMENTRESPONSE, 
5015        /**
5016         * A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.
5017         */
5018        AUDITEVENT, 
5019        /**
5020         * Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.
5021         */
5022        BASIC, 
5023        /**
5024         * A binary resource can contain any content, whether text, image, pdf, zip archive, etc.
5025         */
5026        BINARY, 
5027        /**
5028         * Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
5029         */
5030        BODYSITE, 
5031        /**
5032         * A container for a collection of resources.
5033         */
5034        BUNDLE, 
5035        /**
5036         * Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.
5037         */
5038        CAREPLAN, 
5039        /**
5040         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
5041         */
5042        CARETEAM, 
5043        /**
5044         * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
5045         */
5046        CLAIM, 
5047        /**
5048         * This resource provides the adjudication details from the processing of a Claim resource.
5049         */
5050        CLAIMRESPONSE, 
5051        /**
5052         * A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called "ClinicalImpression" rather than "ClinicalAssessment" to avoid confusion with the recording of assessment tools such as Apgar score.
5053         */
5054        CLINICALIMPRESSION, 
5055        /**
5056         * A code system resource specifies a set of codes drawn from one or more code systems.
5057         */
5058        CODESYSTEM, 
5059        /**
5060         * An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.
5061         */
5062        COMMUNICATION, 
5063        /**
5064         * A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.
5065         */
5066        COMMUNICATIONREQUEST, 
5067        /**
5068         * A compartment definition that defines how resources are accessed on a server.
5069         */
5070        COMPARTMENTDEFINITION, 
5071        /**
5072         * A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.
5073         */
5074        COMPOSITION, 
5075        /**
5076         * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.
5077         */
5078        CONCEPTMAP, 
5079        /**
5080         * Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a diagnosis during an encounter; populating a problem list or a summary statement, such as a discharge summary.
5081         */
5082        CONDITION, 
5083        /**
5084         * A conformance statement is a set of capabilities of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
5085         */
5086        CONFORMANCE, 
5087        /**
5088         * A formal agreement between parties regarding the conduct of business, exchange of information or other matters.
5089         */
5090        CONTRACT, 
5091        /**
5092         * Financial instrument which may be used to pay for or reimburse health care products and services.
5093         */
5094        COVERAGE, 
5095        /**
5096         * The formal description of a single piece of information that can be gathered and reported.
5097         */
5098        DATAELEMENT, 
5099        /**
5100         * This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.
5101         */
5102        DECISIONSUPPORTRULE, 
5103        /**
5104         * The DecisionSupportServiceModule describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.
5105         */
5106        DECISIONSUPPORTSERVICEMODULE, 
5107        /**
5108         * Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.
5109         */
5110        DETECTEDISSUE, 
5111        /**
5112         * This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.
5113         */
5114        DEVICE, 
5115        /**
5116         * Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.
5117         */
5118        DEVICECOMPONENT, 
5119        /**
5120         * Describes a measurement, calculation or setting capability of a medical device.
5121         */
5122        DEVICEMETRIC, 
5123        /**
5124         * Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker.
5125         */
5126        DEVICEUSEREQUEST, 
5127        /**
5128         * A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.
5129         */
5130        DEVICEUSESTATEMENT, 
5131        /**
5132         * A record of a request for a diagnostic investigation service to be performed.
5133         */
5134        DIAGNOSTICORDER, 
5135        /**
5136         * The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.
5137         */
5138        DIAGNOSTICREPORT, 
5139        /**
5140         * A manifest that defines a set of documents.
5141         */
5142        DOCUMENTMANIFEST, 
5143        /**
5144         * A reference to a document .
5145         */
5146        DOCUMENTREFERENCE, 
5147        /**
5148         * A resource that includes narrative, extensions, and contained resources.
5149         */
5150        DOMAINRESOURCE, 
5151        /**
5152         * This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service.
5153         */
5154        ELIGIBILITYREQUEST, 
5155        /**
5156         * This resource provides eligibility and plan details from the processing of an Eligibility resource.
5157         */
5158        ELIGIBILITYRESPONSE, 
5159        /**
5160         * An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.
5161         */
5162        ENCOUNTER, 
5163        /**
5164         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
5165         */
5166        ENROLLMENTREQUEST, 
5167        /**
5168         * This resource provides enrollment and plan details from the processing of an Enrollment resource.
5169         */
5170        ENROLLMENTRESPONSE, 
5171        /**
5172         * An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.
5173         */
5174        EPISODEOFCARE, 
5175        /**
5176         * Resource to define constraints on the Expansion of a FHIR ValueSet.
5177         */
5178        EXPANSIONPROFILE, 
5179        /**
5180         * This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.
5181         */
5182        EXPLANATIONOFBENEFIT, 
5183        /**
5184         * Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.
5185         */
5186        FAMILYMEMBERHISTORY, 
5187        /**
5188         * Prospective warnings of potential issues when providing care to the patient.
5189         */
5190        FLAG, 
5191        /**
5192         * Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.
5193         */
5194        GOAL, 
5195        /**
5196         * Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.
5197         */
5198        GROUP, 
5199        /**
5200         * A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.
5201         */
5202        GUIDANCERESPONSE, 
5203        /**
5204         * The details of a healthcare service available at a location.
5205         */
5206        HEALTHCARESERVICE, 
5207        /**
5208         * A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingExcerpt resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance ("cine" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
5209         */
5210        IMAGINGEXCERPT, 
5211        /**
5212         * A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance ("cine" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
5213         */
5214        IMAGINGOBJECTSELECTION, 
5215        /**
5216         * Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.
5217         */
5218        IMAGINGSTUDY, 
5219        /**
5220         * Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
5221         */
5222        IMMUNIZATION, 
5223        /**
5224         * A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.
5225         */
5226        IMMUNIZATIONRECOMMENDATION, 
5227        /**
5228         * A set of rules or how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole, and to publish a computable definition of all the parts.
5229         */
5230        IMPLEMENTATIONGUIDE, 
5231        /**
5232         * The Library resource provides a representation container for knowledge artifact component definitions. It is effectively an exposure of the header information for a CQL/ELM library.
5233         */
5234        LIBRARY, 
5235        /**
5236         * Identifies two or more records (resource instances) that are referring to the same real-world "occurrence".
5237         */
5238        LINKAGE, 
5239        /**
5240         * A set of information summarized from a list of other resources.
5241         */
5242        LIST, 
5243        /**
5244         * Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.
5245         */
5246        LOCATION, 
5247        /**
5248         * The Measure resource provides the definition of a quality measure.
5249         */
5250        MEASURE, 
5251        /**
5252         * The MeasureReport resource contains the results of evaluating a measure.
5253         */
5254        MEASUREREPORT, 
5255        /**
5256         * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
5257         */
5258        MEDIA, 
5259        /**
5260         * This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.
5261         */
5262        MEDICATION, 
5263        /**
5264         * Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.
5265         */
5266        MEDICATIONADMINISTRATION, 
5267        /**
5268         * Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.
5269         */
5270        MEDICATIONDISPENSE, 
5271        /**
5272         * An order for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationOrder" rather than "MedicationPrescription" to generalize the use across inpatient and outpatient settings as well as for care plans, etc.
5273         */
5274        MEDICATIONORDER, 
5275        /**
5276         * A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from e.g. the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains 
5277
5278The primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.
5279         */
5280        MEDICATIONSTATEMENT, 
5281        /**
5282         * The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.
5283         */
5284        MESSAGEHEADER, 
5285        /**
5286         * The ModuleDefinition resource defines the data requirements for a quality artifact.
5287         */
5288        MODULEDEFINITION, 
5289        /**
5290         * A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a "System" used within the Identifier and Coding data types.
5291         */
5292        NAMINGSYSTEM, 
5293        /**
5294         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
5295         */
5296        NUTRITIONORDER, 
5297        /**
5298         * Measurements and simple assertions made about a patient, device or other subject.
5299         */
5300        OBSERVATION, 
5301        /**
5302         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
5303         */
5304        OPERATIONDEFINITION, 
5305        /**
5306         * A collection of error, warning or information messages that result from a system action.
5307         */
5308        OPERATIONOUTCOME, 
5309        /**
5310         * A request to perform an action.
5311         */
5312        ORDER, 
5313        /**
5314         * A response to an order.
5315         */
5316        ORDERRESPONSE, 
5317        /**
5318         * This resource allows for the definition of an order set as a sharable, consumable, and executable artifact in support of clinical decision support.
5319         */
5320        ORDERSET, 
5321        /**
5322         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.
5323         */
5324        ORGANIZATION, 
5325        /**
5326         * This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.
5327         */
5328        PARAMETERS, 
5329        /**
5330         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
5331         */
5332        PATIENT, 
5333        /**
5334         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
5335         */
5336        PAYMENTNOTICE, 
5337        /**
5338         * This resource provides payment details and claim references supporting a bulk payment.
5339         */
5340        PAYMENTRECONCILIATION, 
5341        /**
5342         * Demographics and administrative information about a person independent of a specific health-related context.
5343         */
5344        PERSON, 
5345        /**
5346         * A person who is directly or indirectly involved in the provisioning of healthcare.
5347         */
5348        PRACTITIONER, 
5349        /**
5350         * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
5351         */
5352        PRACTITIONERROLE, 
5353        /**
5354         * An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.
5355         */
5356        PROCEDURE, 
5357        /**
5358         * A request for a procedure to be performed. May be a proposal or an order.
5359         */
5360        PROCEDUREREQUEST, 
5361        /**
5362         * This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.
5363         */
5364        PROCESSREQUEST, 
5365        /**
5366         * This resource provides processing status, errors and notes from the processing of a resource.
5367         */
5368        PROCESSRESPONSE, 
5369        /**
5370         * A definition of behaviors to be taken in particular circumstances, often including conditions, options and other decision points.
5371         */
5372        PROTOCOL, 
5373        /**
5374         * Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.
5375         */
5376        PROVENANCE, 
5377        /**
5378         * A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.
5379         */
5380        QUESTIONNAIRE, 
5381        /**
5382         * A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.
5383         */
5384        QUESTIONNAIRERESPONSE, 
5385        /**
5386         * Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.
5387         */
5388        REFERRALREQUEST, 
5389        /**
5390         * Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
5391         */
5392        RELATEDPERSON, 
5393        /**
5394         * This is the base resource type for everything.
5395         */
5396        RESOURCE, 
5397        /**
5398         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
5399         */
5400        RISKASSESSMENT, 
5401        /**
5402         * A container for slot(s) of time that may be available for booking appointments.
5403         */
5404        SCHEDULE, 
5405        /**
5406         * A search parameter that defines a named search item that can be used to search/filter on a resource.
5407         */
5408        SEARCHPARAMETER, 
5409        /**
5410         * Variation and Sequence data.
5411         */
5412        SEQUENCE, 
5413        /**
5414         * A slot of time on a schedule that may be available for booking appointments.
5415         */
5416        SLOT, 
5417        /**
5418         * A sample to be used for analysis.
5419         */
5420        SPECIMEN, 
5421        /**
5422         * A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types.
5423         */
5424        STRUCTUREDEFINITION, 
5425        /**
5426         * A Map of relationships between 2 structures that can be used to transform data.
5427         */
5428        STRUCTUREMAP, 
5429        /**
5430         * The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system is able to take an appropriate action.
5431         */
5432        SUBSCRIPTION, 
5433        /**
5434         * A homogeneous material with a definite composition.
5435         */
5436        SUBSTANCE, 
5437        /**
5438         * Record of delivery of what is supplied.
5439         */
5440        SUPPLYDELIVERY, 
5441        /**
5442         * A record of a request for a medication, substance or device used in the healthcare setting.
5443         */
5444        SUPPLYREQUEST, 
5445        /**
5446         * A task to be performed.
5447         */
5448        TASK, 
5449        /**
5450         * TestScript is a resource that specifies a suite of tests against a FHIR server implementation to determine compliance against the FHIR specification.
5451         */
5452        TESTSCRIPT, 
5453        /**
5454         * A value set specifies a set of codes drawn from one or more code systems.
5455         */
5456        VALUESET, 
5457        /**
5458         * An authorization for the supply of glasses and/or contact lenses to a patient.
5459         */
5460        VISIONPRESCRIPTION, 
5461        /**
5462         * added to help the parsers
5463         */
5464        NULL;
5465        public static FHIRDefinedType fromCode(String codeString) throws FHIRException {
5466            if (codeString == null || "".equals(codeString))
5467                return null;
5468        if ("ActionDefinition".equals(codeString))
5469          return ACTIONDEFINITION;
5470        if ("Address".equals(codeString))
5471          return ADDRESS;
5472        if ("Age".equals(codeString))
5473          return AGE;
5474        if ("Annotation".equals(codeString))
5475          return ANNOTATION;
5476        if ("Attachment".equals(codeString))
5477          return ATTACHMENT;
5478        if ("BackboneElement".equals(codeString))
5479          return BACKBONEELEMENT;
5480        if ("CodeableConcept".equals(codeString))
5481          return CODEABLECONCEPT;
5482        if ("Coding".equals(codeString))
5483          return CODING;
5484        if ("ContactPoint".equals(codeString))
5485          return CONTACTPOINT;
5486        if ("Count".equals(codeString))
5487          return COUNT;
5488        if ("DataRequirement".equals(codeString))
5489          return DATAREQUIREMENT;
5490        if ("Distance".equals(codeString))
5491          return DISTANCE;
5492        if ("Duration".equals(codeString))
5493          return DURATION;
5494        if ("Element".equals(codeString))
5495          return ELEMENT;
5496        if ("ElementDefinition".equals(codeString))
5497          return ELEMENTDEFINITION;
5498        if ("Extension".equals(codeString))
5499          return EXTENSION;
5500        if ("HumanName".equals(codeString))
5501          return HUMANNAME;
5502        if ("Identifier".equals(codeString))
5503          return IDENTIFIER;
5504        if ("Meta".equals(codeString))
5505          return META;
5506        if ("ModuleMetadata".equals(codeString))
5507          return MODULEMETADATA;
5508        if ("Money".equals(codeString))
5509          return MONEY;
5510        if ("Narrative".equals(codeString))
5511          return NARRATIVE;
5512        if ("ParameterDefinition".equals(codeString))
5513          return PARAMETERDEFINITION;
5514        if ("Period".equals(codeString))
5515          return PERIOD;
5516        if ("Quantity".equals(codeString))
5517          return QUANTITY;
5518        if ("Range".equals(codeString))
5519          return RANGE;
5520        if ("Ratio".equals(codeString))
5521          return RATIO;
5522        if ("Reference".equals(codeString))
5523          return REFERENCE;
5524        if ("SampledData".equals(codeString))
5525          return SAMPLEDDATA;
5526        if ("Signature".equals(codeString))
5527          return SIGNATURE;
5528        if ("SimpleQuantity".equals(codeString))
5529          return SIMPLEQUANTITY;
5530        if ("Timing".equals(codeString))
5531          return TIMING;
5532        if ("TriggerDefinition".equals(codeString))
5533          return TRIGGERDEFINITION;
5534        if ("base64Binary".equals(codeString))
5535          return BASE64BINARY;
5536        if ("boolean".equals(codeString))
5537          return BOOLEAN;
5538        if ("code".equals(codeString))
5539          return CODE;
5540        if ("date".equals(codeString))
5541          return DATE;
5542        if ("dateTime".equals(codeString))
5543          return DATETIME;
5544        if ("decimal".equals(codeString))
5545          return DECIMAL;
5546        if ("id".equals(codeString))
5547          return ID;
5548        if ("instant".equals(codeString))
5549          return INSTANT;
5550        if ("integer".equals(codeString))
5551          return INTEGER;
5552        if ("markdown".equals(codeString))
5553          return MARKDOWN;
5554        if ("oid".equals(codeString))
5555          return OID;
5556        if ("positiveInt".equals(codeString))
5557          return POSITIVEINT;
5558        if ("string".equals(codeString))
5559          return STRING;
5560        if ("time".equals(codeString))
5561          return TIME;
5562        if ("unsignedInt".equals(codeString))
5563          return UNSIGNEDINT;
5564        if ("uri".equals(codeString))
5565          return URI;
5566        if ("uuid".equals(codeString))
5567          return UUID;
5568        if ("xhtml".equals(codeString))
5569          return XHTML;
5570        if ("Account".equals(codeString))
5571          return ACCOUNT;
5572        if ("AllergyIntolerance".equals(codeString))
5573          return ALLERGYINTOLERANCE;
5574        if ("Appointment".equals(codeString))
5575          return APPOINTMENT;
5576        if ("AppointmentResponse".equals(codeString))
5577          return APPOINTMENTRESPONSE;
5578        if ("AuditEvent".equals(codeString))
5579          return AUDITEVENT;
5580        if ("Basic".equals(codeString))
5581          return BASIC;
5582        if ("Binary".equals(codeString))
5583          return BINARY;
5584        if ("BodySite".equals(codeString))
5585          return BODYSITE;
5586        if ("Bundle".equals(codeString))
5587          return BUNDLE;
5588        if ("CarePlan".equals(codeString))
5589          return CAREPLAN;
5590        if ("CareTeam".equals(codeString))
5591          return CARETEAM;
5592        if ("Claim".equals(codeString))
5593          return CLAIM;
5594        if ("ClaimResponse".equals(codeString))
5595          return CLAIMRESPONSE;
5596        if ("ClinicalImpression".equals(codeString))
5597          return CLINICALIMPRESSION;
5598        if ("CodeSystem".equals(codeString))
5599          return CODESYSTEM;
5600        if ("Communication".equals(codeString))
5601          return COMMUNICATION;
5602        if ("CommunicationRequest".equals(codeString))
5603          return COMMUNICATIONREQUEST;
5604        if ("CompartmentDefinition".equals(codeString))
5605          return COMPARTMENTDEFINITION;
5606        if ("Composition".equals(codeString))
5607          return COMPOSITION;
5608        if ("ConceptMap".equals(codeString))
5609          return CONCEPTMAP;
5610        if ("Condition".equals(codeString))
5611          return CONDITION;
5612        if ("Conformance".equals(codeString))
5613          return CONFORMANCE;
5614        if ("Contract".equals(codeString))
5615          return CONTRACT;
5616        if ("Coverage".equals(codeString))
5617          return COVERAGE;
5618        if ("DataElement".equals(codeString))
5619          return DATAELEMENT;
5620        if ("DecisionSupportRule".equals(codeString))
5621          return DECISIONSUPPORTRULE;
5622        if ("DecisionSupportServiceModule".equals(codeString))
5623          return DECISIONSUPPORTSERVICEMODULE;
5624        if ("DetectedIssue".equals(codeString))
5625          return DETECTEDISSUE;
5626        if ("Device".equals(codeString))
5627          return DEVICE;
5628        if ("DeviceComponent".equals(codeString))
5629          return DEVICECOMPONENT;
5630        if ("DeviceMetric".equals(codeString))
5631          return DEVICEMETRIC;
5632        if ("DeviceUseRequest".equals(codeString))
5633          return DEVICEUSEREQUEST;
5634        if ("DeviceUseStatement".equals(codeString))
5635          return DEVICEUSESTATEMENT;
5636        if ("DiagnosticOrder".equals(codeString))
5637          return DIAGNOSTICORDER;
5638        if ("DiagnosticReport".equals(codeString))
5639          return DIAGNOSTICREPORT;
5640        if ("DocumentManifest".equals(codeString))
5641          return DOCUMENTMANIFEST;
5642        if ("DocumentReference".equals(codeString))
5643          return DOCUMENTREFERENCE;
5644        if ("DomainResource".equals(codeString))
5645          return DOMAINRESOURCE;
5646        if ("EligibilityRequest".equals(codeString))
5647          return ELIGIBILITYREQUEST;
5648        if ("EligibilityResponse".equals(codeString))
5649          return ELIGIBILITYRESPONSE;
5650        if ("Encounter".equals(codeString))
5651          return ENCOUNTER;
5652        if ("EnrollmentRequest".equals(codeString))
5653          return ENROLLMENTREQUEST;
5654        if ("EnrollmentResponse".equals(codeString))
5655          return ENROLLMENTRESPONSE;
5656        if ("EpisodeOfCare".equals(codeString))
5657          return EPISODEOFCARE;
5658        if ("ExpansionProfile".equals(codeString))
5659          return EXPANSIONPROFILE;
5660        if ("ExplanationOfBenefit".equals(codeString))
5661          return EXPLANATIONOFBENEFIT;
5662        if ("FamilyMemberHistory".equals(codeString))
5663          return FAMILYMEMBERHISTORY;
5664        if ("Flag".equals(codeString))
5665          return FLAG;
5666        if ("Goal".equals(codeString))
5667          return GOAL;
5668        if ("Group".equals(codeString))
5669          return GROUP;
5670        if ("GuidanceResponse".equals(codeString))
5671          return GUIDANCERESPONSE;
5672        if ("HealthcareService".equals(codeString))
5673          return HEALTHCARESERVICE;
5674        if ("ImagingExcerpt".equals(codeString))
5675          return IMAGINGEXCERPT;
5676        if ("ImagingObjectSelection".equals(codeString))
5677          return IMAGINGOBJECTSELECTION;
5678        if ("ImagingStudy".equals(codeString))
5679          return IMAGINGSTUDY;
5680        if ("Immunization".equals(codeString))
5681          return IMMUNIZATION;
5682        if ("ImmunizationRecommendation".equals(codeString))
5683          return IMMUNIZATIONRECOMMENDATION;
5684        if ("ImplementationGuide".equals(codeString))
5685          return IMPLEMENTATIONGUIDE;
5686        if ("Library".equals(codeString))
5687          return LIBRARY;
5688        if ("Linkage".equals(codeString))
5689          return LINKAGE;
5690        if ("List".equals(codeString))
5691          return LIST;
5692        if ("Location".equals(codeString))
5693          return LOCATION;
5694        if ("Measure".equals(codeString))
5695          return MEASURE;
5696        if ("MeasureReport".equals(codeString))
5697          return MEASUREREPORT;
5698        if ("Media".equals(codeString))
5699          return MEDIA;
5700        if ("Medication".equals(codeString))
5701          return MEDICATION;
5702        if ("MedicationAdministration".equals(codeString))
5703          return MEDICATIONADMINISTRATION;
5704        if ("MedicationDispense".equals(codeString))
5705          return MEDICATIONDISPENSE;
5706        if ("MedicationOrder".equals(codeString))
5707          return MEDICATIONORDER;
5708        if ("MedicationStatement".equals(codeString))
5709          return MEDICATIONSTATEMENT;
5710        if ("MessageHeader".equals(codeString))
5711          return MESSAGEHEADER;
5712        if ("ModuleDefinition".equals(codeString))
5713          return MODULEDEFINITION;
5714        if ("NamingSystem".equals(codeString))
5715          return NAMINGSYSTEM;
5716        if ("NutritionOrder".equals(codeString))
5717          return NUTRITIONORDER;
5718        if ("Observation".equals(codeString))
5719          return OBSERVATION;
5720        if ("OperationDefinition".equals(codeString))
5721          return OPERATIONDEFINITION;
5722        if ("OperationOutcome".equals(codeString))
5723          return OPERATIONOUTCOME;
5724        if ("Order".equals(codeString))
5725          return ORDER;
5726        if ("OrderResponse".equals(codeString))
5727          return ORDERRESPONSE;
5728        if ("OrderSet".equals(codeString))
5729          return ORDERSET;
5730        if ("Organization".equals(codeString))
5731          return ORGANIZATION;
5732        if ("Parameters".equals(codeString))
5733          return PARAMETERS;
5734        if ("Patient".equals(codeString))
5735          return PATIENT;
5736        if ("PaymentNotice".equals(codeString))
5737          return PAYMENTNOTICE;
5738        if ("PaymentReconciliation".equals(codeString))
5739          return PAYMENTRECONCILIATION;
5740        if ("Person".equals(codeString))
5741          return PERSON;
5742        if ("Practitioner".equals(codeString))
5743          return PRACTITIONER;
5744        if ("PractitionerRole".equals(codeString))
5745          return PRACTITIONERROLE;
5746        if ("Procedure".equals(codeString))
5747          return PROCEDURE;
5748        if ("ProcedureRequest".equals(codeString))
5749          return PROCEDUREREQUEST;
5750        if ("ProcessRequest".equals(codeString))
5751          return PROCESSREQUEST;
5752        if ("ProcessResponse".equals(codeString))
5753          return PROCESSRESPONSE;
5754        if ("Protocol".equals(codeString))
5755          return PROTOCOL;
5756        if ("Provenance".equals(codeString))
5757          return PROVENANCE;
5758        if ("Questionnaire".equals(codeString))
5759          return QUESTIONNAIRE;
5760        if ("QuestionnaireResponse".equals(codeString))
5761          return QUESTIONNAIRERESPONSE;
5762        if ("ReferralRequest".equals(codeString))
5763          return REFERRALREQUEST;
5764        if ("RelatedPerson".equals(codeString))
5765          return RELATEDPERSON;
5766        if ("Resource".equals(codeString))
5767          return RESOURCE;
5768        if ("RiskAssessment".equals(codeString))
5769          return RISKASSESSMENT;
5770        if ("Schedule".equals(codeString))
5771          return SCHEDULE;
5772        if ("SearchParameter".equals(codeString))
5773          return SEARCHPARAMETER;
5774        if ("Sequence".equals(codeString))
5775          return SEQUENCE;
5776        if ("Slot".equals(codeString))
5777          return SLOT;
5778        if ("Specimen".equals(codeString))
5779          return SPECIMEN;
5780        if ("StructureDefinition".equals(codeString))
5781          return STRUCTUREDEFINITION;
5782        if ("StructureMap".equals(codeString))
5783          return STRUCTUREMAP;
5784        if ("Subscription".equals(codeString))
5785          return SUBSCRIPTION;
5786        if ("Substance".equals(codeString))
5787          return SUBSTANCE;
5788        if ("SupplyDelivery".equals(codeString))
5789          return SUPPLYDELIVERY;
5790        if ("SupplyRequest".equals(codeString))
5791          return SUPPLYREQUEST;
5792        if ("Task".equals(codeString))
5793          return TASK;
5794        if ("TestScript".equals(codeString))
5795          return TESTSCRIPT;
5796        if ("ValueSet".equals(codeString))
5797          return VALUESET;
5798        if ("VisionPrescription".equals(codeString))
5799          return VISIONPRESCRIPTION;
5800        throw new FHIRException("Unknown FHIRDefinedType code '"+codeString+"'");
5801        }
5802        public String toCode() {
5803          switch (this) {
5804            case ACTIONDEFINITION: return "ActionDefinition";
5805            case ADDRESS: return "Address";
5806            case AGE: return "Age";
5807            case ANNOTATION: return "Annotation";
5808            case ATTACHMENT: return "Attachment";
5809            case BACKBONEELEMENT: return "BackboneElement";
5810            case CODEABLECONCEPT: return "CodeableConcept";
5811            case CODING: return "Coding";
5812            case CONTACTPOINT: return "ContactPoint";
5813            case COUNT: return "Count";
5814            case DATAREQUIREMENT: return "DataRequirement";
5815            case DISTANCE: return "Distance";
5816            case DURATION: return "Duration";
5817            case ELEMENT: return "Element";
5818            case ELEMENTDEFINITION: return "ElementDefinition";
5819            case EXTENSION: return "Extension";
5820            case HUMANNAME: return "HumanName";
5821            case IDENTIFIER: return "Identifier";
5822            case META: return "Meta";
5823            case MODULEMETADATA: return "ModuleMetadata";
5824            case MONEY: return "Money";
5825            case NARRATIVE: return "Narrative";
5826            case PARAMETERDEFINITION: return "ParameterDefinition";
5827            case PERIOD: return "Period";
5828            case QUANTITY: return "Quantity";
5829            case RANGE: return "Range";
5830            case RATIO: return "Ratio";
5831            case REFERENCE: return "Reference";
5832            case SAMPLEDDATA: return "SampledData";
5833            case SIGNATURE: return "Signature";
5834            case SIMPLEQUANTITY: return "SimpleQuantity";
5835            case TIMING: return "Timing";
5836            case TRIGGERDEFINITION: return "TriggerDefinition";
5837            case BASE64BINARY: return "base64Binary";
5838            case BOOLEAN: return "boolean";
5839            case CODE: return "code";
5840            case DATE: return "date";
5841            case DATETIME: return "dateTime";
5842            case DECIMAL: return "decimal";
5843            case ID: return "id";
5844            case INSTANT: return "instant";
5845            case INTEGER: return "integer";
5846            case MARKDOWN: return "markdown";
5847            case OID: return "oid";
5848            case POSITIVEINT: return "positiveInt";
5849            case STRING: return "string";
5850            case TIME: return "time";
5851            case UNSIGNEDINT: return "unsignedInt";
5852            case URI: return "uri";
5853            case UUID: return "uuid";
5854            case XHTML: return "xhtml";
5855            case ACCOUNT: return "Account";
5856            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
5857            case APPOINTMENT: return "Appointment";
5858            case APPOINTMENTRESPONSE: return "AppointmentResponse";
5859            case AUDITEVENT: return "AuditEvent";
5860            case BASIC: return "Basic";
5861            case BINARY: return "Binary";
5862            case BODYSITE: return "BodySite";
5863            case BUNDLE: return "Bundle";
5864            case CAREPLAN: return "CarePlan";
5865            case CARETEAM: return "CareTeam";
5866            case CLAIM: return "Claim";
5867            case CLAIMRESPONSE: return "ClaimResponse";
5868            case CLINICALIMPRESSION: return "ClinicalImpression";
5869            case CODESYSTEM: return "CodeSystem";
5870            case COMMUNICATION: return "Communication";
5871            case COMMUNICATIONREQUEST: return "CommunicationRequest";
5872            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
5873            case COMPOSITION: return "Composition";
5874            case CONCEPTMAP: return "ConceptMap";
5875            case CONDITION: return "Condition";
5876            case CONFORMANCE: return "Conformance";
5877            case CONTRACT: return "Contract";
5878            case COVERAGE: return "Coverage";
5879            case DATAELEMENT: return "DataElement";
5880            case DECISIONSUPPORTRULE: return "DecisionSupportRule";
5881            case DECISIONSUPPORTSERVICEMODULE: return "DecisionSupportServiceModule";
5882            case DETECTEDISSUE: return "DetectedIssue";
5883            case DEVICE: return "Device";
5884            case DEVICECOMPONENT: return "DeviceComponent";
5885            case DEVICEMETRIC: return "DeviceMetric";
5886            case DEVICEUSEREQUEST: return "DeviceUseRequest";
5887            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
5888            case DIAGNOSTICORDER: return "DiagnosticOrder";
5889            case DIAGNOSTICREPORT: return "DiagnosticReport";
5890            case DOCUMENTMANIFEST: return "DocumentManifest";
5891            case DOCUMENTREFERENCE: return "DocumentReference";
5892            case DOMAINRESOURCE: return "DomainResource";
5893            case ELIGIBILITYREQUEST: return "EligibilityRequest";
5894            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
5895            case ENCOUNTER: return "Encounter";
5896            case ENROLLMENTREQUEST: return "EnrollmentRequest";
5897            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
5898            case EPISODEOFCARE: return "EpisodeOfCare";
5899            case EXPANSIONPROFILE: return "ExpansionProfile";
5900            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
5901            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
5902            case FLAG: return "Flag";
5903            case GOAL: return "Goal";
5904            case GROUP: return "Group";
5905            case GUIDANCERESPONSE: return "GuidanceResponse";
5906            case HEALTHCARESERVICE: return "HealthcareService";
5907            case IMAGINGEXCERPT: return "ImagingExcerpt";
5908            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
5909            case IMAGINGSTUDY: return "ImagingStudy";
5910            case IMMUNIZATION: return "Immunization";
5911            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
5912            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
5913            case LIBRARY: return "Library";
5914            case LINKAGE: return "Linkage";
5915            case LIST: return "List";
5916            case LOCATION: return "Location";
5917            case MEASURE: return "Measure";
5918            case MEASUREREPORT: return "MeasureReport";
5919            case MEDIA: return "Media";
5920            case MEDICATION: return "Medication";
5921            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
5922            case MEDICATIONDISPENSE: return "MedicationDispense";
5923            case MEDICATIONORDER: return "MedicationOrder";
5924            case MEDICATIONSTATEMENT: return "MedicationStatement";
5925            case MESSAGEHEADER: return "MessageHeader";
5926            case MODULEDEFINITION: return "ModuleDefinition";
5927            case NAMINGSYSTEM: return "NamingSystem";
5928            case NUTRITIONORDER: return "NutritionOrder";
5929            case OBSERVATION: return "Observation";
5930            case OPERATIONDEFINITION: return "OperationDefinition";
5931            case OPERATIONOUTCOME: return "OperationOutcome";
5932            case ORDER: return "Order";
5933            case ORDERRESPONSE: return "OrderResponse";
5934            case ORDERSET: return "OrderSet";
5935            case ORGANIZATION: return "Organization";
5936            case PARAMETERS: return "Parameters";
5937            case PATIENT: return "Patient";
5938            case PAYMENTNOTICE: return "PaymentNotice";
5939            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
5940            case PERSON: return "Person";
5941            case PRACTITIONER: return "Practitioner";
5942            case PRACTITIONERROLE: return "PractitionerRole";
5943            case PROCEDURE: return "Procedure";
5944            case PROCEDUREREQUEST: return "ProcedureRequest";
5945            case PROCESSREQUEST: return "ProcessRequest";
5946            case PROCESSRESPONSE: return "ProcessResponse";
5947            case PROTOCOL: return "Protocol";
5948            case PROVENANCE: return "Provenance";
5949            case QUESTIONNAIRE: return "Questionnaire";
5950            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
5951            case REFERRALREQUEST: return "ReferralRequest";
5952            case RELATEDPERSON: return "RelatedPerson";
5953            case RESOURCE: return "Resource";
5954            case RISKASSESSMENT: return "RiskAssessment";
5955            case SCHEDULE: return "Schedule";
5956            case SEARCHPARAMETER: return "SearchParameter";
5957            case SEQUENCE: return "Sequence";
5958            case SLOT: return "Slot";
5959            case SPECIMEN: return "Specimen";
5960            case STRUCTUREDEFINITION: return "StructureDefinition";
5961            case STRUCTUREMAP: return "StructureMap";
5962            case SUBSCRIPTION: return "Subscription";
5963            case SUBSTANCE: return "Substance";
5964            case SUPPLYDELIVERY: return "SupplyDelivery";
5965            case SUPPLYREQUEST: return "SupplyRequest";
5966            case TASK: return "Task";
5967            case TESTSCRIPT: return "TestScript";
5968            case VALUESET: return "ValueSet";
5969            case VISIONPRESCRIPTION: return "VisionPrescription";
5970            case NULL: return null;
5971            default: return "?";
5972          }
5973        }
5974        public String getSystem() {
5975          switch (this) {
5976            case ACTIONDEFINITION: return "http://hl7.org/fhir/data-types";
5977            case ADDRESS: return "http://hl7.org/fhir/data-types";
5978            case AGE: return "http://hl7.org/fhir/data-types";
5979            case ANNOTATION: return "http://hl7.org/fhir/data-types";
5980            case ATTACHMENT: return "http://hl7.org/fhir/data-types";
5981            case BACKBONEELEMENT: return "http://hl7.org/fhir/data-types";
5982            case CODEABLECONCEPT: return "http://hl7.org/fhir/data-types";
5983            case CODING: return "http://hl7.org/fhir/data-types";
5984            case CONTACTPOINT: return "http://hl7.org/fhir/data-types";
5985            case COUNT: return "http://hl7.org/fhir/data-types";
5986            case DATAREQUIREMENT: return "http://hl7.org/fhir/data-types";
5987            case DISTANCE: return "http://hl7.org/fhir/data-types";
5988            case DURATION: return "http://hl7.org/fhir/data-types";
5989            case ELEMENT: return "http://hl7.org/fhir/data-types";
5990            case ELEMENTDEFINITION: return "http://hl7.org/fhir/data-types";
5991            case EXTENSION: return "http://hl7.org/fhir/data-types";
5992            case HUMANNAME: return "http://hl7.org/fhir/data-types";
5993            case IDENTIFIER: return "http://hl7.org/fhir/data-types";
5994            case META: return "http://hl7.org/fhir/data-types";
5995            case MODULEMETADATA: return "http://hl7.org/fhir/data-types";
5996            case MONEY: return "http://hl7.org/fhir/data-types";
5997            case NARRATIVE: return "http://hl7.org/fhir/data-types";
5998            case PARAMETERDEFINITION: return "http://hl7.org/fhir/data-types";
5999            case PERIOD: return "http://hl7.org/fhir/data-types";
6000            case QUANTITY: return "http://hl7.org/fhir/data-types";
6001            case RANGE: return "http://hl7.org/fhir/data-types";
6002            case RATIO: return "http://hl7.org/fhir/data-types";
6003            case REFERENCE: return "http://hl7.org/fhir/data-types";
6004            case SAMPLEDDATA: return "http://hl7.org/fhir/data-types";
6005            case SIGNATURE: return "http://hl7.org/fhir/data-types";
6006            case SIMPLEQUANTITY: return "http://hl7.org/fhir/data-types";
6007            case TIMING: return "http://hl7.org/fhir/data-types";
6008            case TRIGGERDEFINITION: return "http://hl7.org/fhir/data-types";
6009            case BASE64BINARY: return "http://hl7.org/fhir/data-types";
6010            case BOOLEAN: return "http://hl7.org/fhir/data-types";
6011            case CODE: return "http://hl7.org/fhir/data-types";
6012            case DATE: return "http://hl7.org/fhir/data-types";
6013            case DATETIME: return "http://hl7.org/fhir/data-types";
6014            case DECIMAL: return "http://hl7.org/fhir/data-types";
6015            case ID: return "http://hl7.org/fhir/data-types";
6016            case INSTANT: return "http://hl7.org/fhir/data-types";
6017            case INTEGER: return "http://hl7.org/fhir/data-types";
6018            case MARKDOWN: return "http://hl7.org/fhir/data-types";
6019            case OID: return "http://hl7.org/fhir/data-types";
6020            case POSITIVEINT: return "http://hl7.org/fhir/data-types";
6021            case STRING: return "http://hl7.org/fhir/data-types";
6022            case TIME: return "http://hl7.org/fhir/data-types";
6023            case UNSIGNEDINT: return "http://hl7.org/fhir/data-types";
6024            case URI: return "http://hl7.org/fhir/data-types";
6025            case UUID: return "http://hl7.org/fhir/data-types";
6026            case XHTML: return "http://hl7.org/fhir/data-types";
6027            case ACCOUNT: return "http://hl7.org/fhir/resource-types";
6028            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/resource-types";
6029            case APPOINTMENT: return "http://hl7.org/fhir/resource-types";
6030            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
6031            case AUDITEVENT: return "http://hl7.org/fhir/resource-types";
6032            case BASIC: return "http://hl7.org/fhir/resource-types";
6033            case BINARY: return "http://hl7.org/fhir/resource-types";
6034            case BODYSITE: return "http://hl7.org/fhir/resource-types";
6035            case BUNDLE: return "http://hl7.org/fhir/resource-types";
6036            case CAREPLAN: return "http://hl7.org/fhir/resource-types";
6037            case CARETEAM: return "http://hl7.org/fhir/resource-types";
6038            case CLAIM: return "http://hl7.org/fhir/resource-types";
6039            case CLAIMRESPONSE: return "http://hl7.org/fhir/resource-types";
6040            case CLINICALIMPRESSION: return "http://hl7.org/fhir/resource-types";
6041            case CODESYSTEM: return "http://hl7.org/fhir/resource-types";
6042            case COMMUNICATION: return "http://hl7.org/fhir/resource-types";
6043            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
6044            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/resource-types";
6045            case COMPOSITION: return "http://hl7.org/fhir/resource-types";
6046            case CONCEPTMAP: return "http://hl7.org/fhir/resource-types";
6047            case CONDITION: return "http://hl7.org/fhir/resource-types";
6048            case CONFORMANCE: return "http://hl7.org/fhir/resource-types";
6049            case CONTRACT: return "http://hl7.org/fhir/resource-types";
6050            case COVERAGE: return "http://hl7.org/fhir/resource-types";
6051            case DATAELEMENT: return "http://hl7.org/fhir/resource-types";
6052            case DECISIONSUPPORTRULE: return "http://hl7.org/fhir/resource-types";
6053            case DECISIONSUPPORTSERVICEMODULE: return "http://hl7.org/fhir/resource-types";
6054            case DETECTEDISSUE: return "http://hl7.org/fhir/resource-types";
6055            case DEVICE: return "http://hl7.org/fhir/resource-types";
6056            case DEVICECOMPONENT: return "http://hl7.org/fhir/resource-types";
6057            case DEVICEMETRIC: return "http://hl7.org/fhir/resource-types";
6058            case DEVICEUSEREQUEST: return "http://hl7.org/fhir/resource-types";
6059            case DEVICEUSESTATEMENT: return "http://hl7.org/fhir/resource-types";
6060            case DIAGNOSTICORDER: return "http://hl7.org/fhir/resource-types";
6061            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/resource-types";
6062            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/resource-types";
6063            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/resource-types";
6064            case DOMAINRESOURCE: return "http://hl7.org/fhir/resource-types";
6065            case ELIGIBILITYREQUEST: return "http://hl7.org/fhir/resource-types";
6066            case ELIGIBILITYRESPONSE: return "http://hl7.org/fhir/resource-types";
6067            case ENCOUNTER: return "http://hl7.org/fhir/resource-types";
6068            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/resource-types";
6069            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
6070            case EPISODEOFCARE: return "http://hl7.org/fhir/resource-types";
6071            case EXPANSIONPROFILE: return "http://hl7.org/fhir/resource-types";
6072            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/resource-types";
6073            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/resource-types";
6074            case FLAG: return "http://hl7.org/fhir/resource-types";
6075            case GOAL: return "http://hl7.org/fhir/resource-types";
6076            case GROUP: return "http://hl7.org/fhir/resource-types";
6077            case GUIDANCERESPONSE: return "http://hl7.org/fhir/resource-types";
6078            case HEALTHCARESERVICE: return "http://hl7.org/fhir/resource-types";
6079            case IMAGINGEXCERPT: return "http://hl7.org/fhir/resource-types";
6080            case IMAGINGOBJECTSELECTION: return "http://hl7.org/fhir/resource-types";
6081            case IMAGINGSTUDY: return "http://hl7.org/fhir/resource-types";
6082            case IMMUNIZATION: return "http://hl7.org/fhir/resource-types";
6083            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/resource-types";
6084            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/resource-types";
6085            case LIBRARY: return "http://hl7.org/fhir/resource-types";
6086            case LINKAGE: return "http://hl7.org/fhir/resource-types";
6087            case LIST: return "http://hl7.org/fhir/resource-types";
6088            case LOCATION: return "http://hl7.org/fhir/resource-types";
6089            case MEASURE: return "http://hl7.org/fhir/resource-types";
6090            case MEASUREREPORT: return "http://hl7.org/fhir/resource-types";
6091            case MEDIA: return "http://hl7.org/fhir/resource-types";
6092            case MEDICATION: return "http://hl7.org/fhir/resource-types";
6093            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/resource-types";
6094            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/resource-types";
6095            case MEDICATIONORDER: return "http://hl7.org/fhir/resource-types";
6096            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/resource-types";
6097            case MESSAGEHEADER: return "http://hl7.org/fhir/resource-types";
6098            case MODULEDEFINITION: return "http://hl7.org/fhir/resource-types";
6099            case NAMINGSYSTEM: return "http://hl7.org/fhir/resource-types";
6100            case NUTRITIONORDER: return "http://hl7.org/fhir/resource-types";
6101            case OBSERVATION: return "http://hl7.org/fhir/resource-types";
6102            case OPERATIONDEFINITION: return "http://hl7.org/fhir/resource-types";
6103            case OPERATIONOUTCOME: return "http://hl7.org/fhir/resource-types";
6104            case ORDER: return "http://hl7.org/fhir/resource-types";
6105            case ORDERRESPONSE: return "http://hl7.org/fhir/resource-types";
6106            case ORDERSET: return "http://hl7.org/fhir/resource-types";
6107            case ORGANIZATION: return "http://hl7.org/fhir/resource-types";
6108            case PARAMETERS: return "http://hl7.org/fhir/resource-types";
6109            case PATIENT: return "http://hl7.org/fhir/resource-types";
6110            case PAYMENTNOTICE: return "http://hl7.org/fhir/resource-types";
6111            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/resource-types";
6112            case PERSON: return "http://hl7.org/fhir/resource-types";
6113            case PRACTITIONER: return "http://hl7.org/fhir/resource-types";
6114            case PRACTITIONERROLE: return "http://hl7.org/fhir/resource-types";
6115            case PROCEDURE: return "http://hl7.org/fhir/resource-types";
6116            case PROCEDUREREQUEST: return "http://hl7.org/fhir/resource-types";
6117            case PROCESSREQUEST: return "http://hl7.org/fhir/resource-types";
6118            case PROCESSRESPONSE: return "http://hl7.org/fhir/resource-types";
6119            case PROTOCOL: return "http://hl7.org/fhir/resource-types";
6120            case PROVENANCE: return "http://hl7.org/fhir/resource-types";
6121            case QUESTIONNAIRE: return "http://hl7.org/fhir/resource-types";
6122            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/resource-types";
6123            case REFERRALREQUEST: return "http://hl7.org/fhir/resource-types";
6124            case RELATEDPERSON: return "http://hl7.org/fhir/resource-types";
6125            case RESOURCE: return "http://hl7.org/fhir/resource-types";
6126            case RISKASSESSMENT: return "http://hl7.org/fhir/resource-types";
6127            case SCHEDULE: return "http://hl7.org/fhir/resource-types";
6128            case SEARCHPARAMETER: return "http://hl7.org/fhir/resource-types";
6129            case SEQUENCE: return "http://hl7.org/fhir/resource-types";
6130            case SLOT: return "http://hl7.org/fhir/resource-types";
6131            case SPECIMEN: return "http://hl7.org/fhir/resource-types";
6132            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/resource-types";
6133            case STRUCTUREMAP: return "http://hl7.org/fhir/resource-types";
6134            case SUBSCRIPTION: return "http://hl7.org/fhir/resource-types";
6135            case SUBSTANCE: return "http://hl7.org/fhir/resource-types";
6136            case SUPPLYDELIVERY: return "http://hl7.org/fhir/resource-types";
6137            case SUPPLYREQUEST: return "http://hl7.org/fhir/resource-types";
6138            case TASK: return "http://hl7.org/fhir/resource-types";
6139            case TESTSCRIPT: return "http://hl7.org/fhir/resource-types";
6140            case VALUESET: return "http://hl7.org/fhir/resource-types";
6141            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/resource-types";
6142            case NULL: return null;
6143            default: return "?";
6144          }
6145        }
6146        public String getDefinition() {
6147          switch (this) {
6148            case ACTIONDEFINITION: return "The definition of an action to be performed. Some aspects of the definition are specified statically, and some aspects can be specified dynamically by referencing logic defined in a library.";
6149            case ADDRESS: return "An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations and which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
6150            case AGE: return "";
6151            case ANNOTATION: return "A  text note which also  contains information about who made the statement and when.";
6152            case ATTACHMENT: return "For referring to data content defined in other formats.";
6153            case BACKBONEELEMENT: return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
6154            case CODEABLECONCEPT: return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
6155            case CODING: return "A reference to a code defined by a terminology system.";
6156            case CONTACTPOINT: return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
6157            case COUNT: return "";
6158            case DATAREQUIREMENT: return "Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the data.";
6159            case DISTANCE: return "";
6160            case DURATION: return "";
6161            case ELEMENT: return "Base definition for all elements in a resource.";
6162            case ELEMENTDEFINITION: return "Captures constraints on each element within the resource, profile, or extension.";
6163            case EXTENSION: return "Optional Extensions Element - found in all resources.";
6164            case HUMANNAME: return "A human's name with the ability to identify parts and usage.";
6165            case IDENTIFIER: return "A technical identifier - identifies some entity uniquely and unambiguously.";
6166            case META: return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.";
6167            case MODULEMETADATA: return "The ModuleMetadata structure defines the common metadata elements used by quality improvement artifacts. This information includes descriptive and topical metadata to enable repository searches, as well as governance and evidentiary support information.";
6168            case MONEY: return "";
6169            case NARRATIVE: return "A human-readable formatted text, including images.";
6170            case PARAMETERDEFINITION: return "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.";
6171            case PERIOD: return "A time period defined by a start and end date and optionally time.";
6172            case QUANTITY: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
6173            case RANGE: return "A set of ordered Quantities defined by a low and high limit.";
6174            case RATIO: return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
6175            case REFERENCE: return "A reference from one resource to another.";
6176            case SAMPLEDDATA: return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
6177            case SIGNATURE: return "A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different Signature approaches have different utilities.";
6178            case SIMPLEQUANTITY: return "";
6179            case TIMING: return "Specifies an event that may occur multiple times. Timing schedules are used to record when things are expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds.";
6180            case TRIGGERDEFINITION: return "A description of a triggering event.";
6181            case BASE64BINARY: return "A stream of bytes";
6182            case BOOLEAN: return "Value of \"true\" or \"false\"";
6183            case CODE: return "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents";
6184            case DATE: return "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
6185            case DATETIME: return "A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.";
6186            case DECIMAL: return "A rational number with implicit precision";
6187            case ID: return "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.";
6188            case INSTANT: return "An instant in time - known at least to the second";
6189            case INTEGER: return "A whole number";
6190            case MARKDOWN: return "A string that may contain markdown syntax for optional processing by a mark down presentation engine";
6191            case OID: return "An oid represented as a URI";
6192            case POSITIVEINT: return "An integer with a value that is positive (e.g. >0)";
6193            case STRING: return "A sequence of Unicode characters";
6194            case TIME: return "A time during the day, with no date specified";
6195            case UNSIGNEDINT: return "An integer with a value that is not negative (e.g. >= 0)";
6196            case URI: return "String of characters used to identify a name or a resource";
6197            case UUID: return "A UUID, represented as a URI";
6198            case XHTML: return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
6199            case ACCOUNT: return "A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centres, etc.";
6200            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
6201            case APPOINTMENT: return "A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).";
6202            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
6203            case AUDITEVENT: return "A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.";
6204            case BASIC: return "Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.";
6205            case BINARY: return "A binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
6206            case BODYSITE: return "Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
6207            case BUNDLE: return "A container for a collection of resources.";
6208            case CAREPLAN: return "Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.";
6209            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.";
6210            case CLAIM: return "A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.";
6211            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
6212            case CLINICALIMPRESSION: return "A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score.";
6213            case CODESYSTEM: return "A code system resource specifies a set of codes drawn from one or more code systems.";
6214            case COMMUNICATION: return "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.";
6215            case COMMUNICATIONREQUEST: return "A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.";
6216            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
6217            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.";
6218            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.";
6219            case CONDITION: return "Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a diagnosis during an encounter; populating a problem list or a summary statement, such as a discharge summary.";
6220            case CONFORMANCE: return "A conformance statement is a set of capabilities of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
6221            case CONTRACT: return "A formal agreement between parties regarding the conduct of business, exchange of information or other matters.";
6222            case COVERAGE: return "Financial instrument which may be used to pay for or reimburse health care products and services.";
6223            case DATAELEMENT: return "The formal description of a single piece of information that can be gathered and reported.";
6224            case DECISIONSUPPORTRULE: return "This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.";
6225            case DECISIONSUPPORTSERVICEMODULE: return "The DecisionSupportServiceModule describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.";
6226            case DETECTEDISSUE: return "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.";
6227            case DEVICE: return "This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.";
6228            case DEVICECOMPONENT: return "Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.";
6229            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
6230            case DEVICEUSEREQUEST: return "Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker.";
6231            case DEVICEUSESTATEMENT: return "A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.";
6232            case DIAGNOSTICORDER: return "A record of a request for a diagnostic investigation service to be performed.";
6233            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.";
6234            case DOCUMENTMANIFEST: return "A manifest that defines a set of documents.";
6235            case DOCUMENTREFERENCE: return "A reference to a document .";
6236            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
6237            case ELIGIBILITYREQUEST: return "This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service.";
6238            case ELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an Eligibility resource.";
6239            case ENCOUNTER: return "An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.";
6240            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
6241            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an Enrollment resource.";
6242            case EPISODEOFCARE: return "An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.";
6243            case EXPANSIONPROFILE: return "Resource to define constraints on the Expansion of a FHIR ValueSet.";
6244            case EXPLANATIONOFBENEFIT: return "This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.";
6245            case FAMILYMEMBERHISTORY: return "Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.";
6246            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
6247            case GOAL: return "Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.";
6248            case GROUP: return "Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.";
6249            case GUIDANCERESPONSE: return "A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.";
6250            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location.";
6251            case IMAGINGEXCERPT: return "A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingExcerpt resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance (\"cine\" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.";
6252            case IMAGINGOBJECTSELECTION: return "A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance (\"cine\" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.";
6253            case IMAGINGSTUDY: return "Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.";
6254            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.";
6255            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.";
6256            case IMPLEMENTATIONGUIDE: return "A set of rules or how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole, and to publish a computable definition of all the parts.";
6257            case LIBRARY: return "The Library resource provides a representation container for knowledge artifact component definitions. It is effectively an exposure of the header information for a CQL/ELM library.";
6258            case LINKAGE: return "Identifies two or more records (resource instances) that are referring to the same real-world \"occurrence\".";
6259            case LIST: return "A set of information summarized from a list of other resources.";
6260            case LOCATION: return "Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.";
6261            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
6262            case MEASUREREPORT: return "The MeasureReport resource contains the results of evaluating a measure.";
6263            case MEDIA: return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
6264            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.";
6265            case MEDICATIONADMINISTRATION: return "Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.";
6266            case MEDICATIONDISPENSE: return "Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.";
6267            case MEDICATIONORDER: return "An order for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called \"MedicationOrder\" rather than \"MedicationPrescription\" to generalize the use across inpatient and outpatient settings as well as for care plans, etc.";
6268            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from e.g. the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains \r\rThe primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
6269            case MESSAGEHEADER: return "The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.";
6270            case MODULEDEFINITION: return "The ModuleDefinition resource defines the data requirements for a quality artifact.";
6271            case NAMINGSYSTEM: return "A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a \"System\" used within the Identifier and Coding data types.";
6272            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
6273            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
6274            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
6275            case OPERATIONOUTCOME: return "A collection of error, warning or information messages that result from a system action.";
6276            case ORDER: return "A request to perform an action.";
6277            case ORDERRESPONSE: return "A response to an order.";
6278            case ORDERSET: return "This resource allows for the definition of an order set as a sharable, consumable, and executable artifact in support of clinical decision support.";
6279            case ORGANIZATION: return "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.";
6280            case PARAMETERS: return "This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.";
6281            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
6282            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
6283            case PAYMENTRECONCILIATION: return "This resource provides payment details and claim references supporting a bulk payment.";
6284            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
6285            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare.";
6286            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.";
6287            case PROCEDURE: return "An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.";
6288            case PROCEDUREREQUEST: return "A request for a procedure to be performed. May be a proposal or an order.";
6289            case PROCESSREQUEST: return "This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.";
6290            case PROCESSRESPONSE: return "This resource provides processing status, errors and notes from the processing of a resource.";
6291            case PROTOCOL: return "A definition of behaviors to be taken in particular circumstances, often including conditions, options and other decision points.";
6292            case PROVENANCE: return "Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.";
6293            case QUESTIONNAIRE: return "A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.";
6294            case QUESTIONNAIRERESPONSE: return "A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.";
6295            case REFERRALREQUEST: return "Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.";
6296            case RELATEDPERSON: return "Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
6297            case RESOURCE: return "This is the base resource type for everything.";
6298            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
6299            case SCHEDULE: return "A container for slot(s) of time that may be available for booking appointments.";
6300            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
6301            case SEQUENCE: return "Variation and Sequence data.";
6302            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
6303            case SPECIMEN: return "A sample to be used for analysis.";
6304            case STRUCTUREDEFINITION: return "A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types.";
6305            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
6306            case SUBSCRIPTION: return "The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system is able to take an appropriate action.";
6307            case SUBSTANCE: return "A homogeneous material with a definite composition.";
6308            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
6309            case SUPPLYREQUEST: return "A record of a request for a medication, substance or device used in the healthcare setting.";
6310            case TASK: return "A task to be performed.";
6311            case TESTSCRIPT: return "TestScript is a resource that specifies a suite of tests against a FHIR server implementation to determine compliance against the FHIR specification.";
6312            case VALUESET: return "A value set specifies a set of codes drawn from one or more code systems.";
6313            case VISIONPRESCRIPTION: return "An authorization for the supply of glasses and/or contact lenses to a patient.";
6314            case NULL: return null;
6315            default: return "?";
6316          }
6317        }
6318        public String getDisplay() {
6319          switch (this) {
6320            case ACTIONDEFINITION: return "ActionDefinition";
6321            case ADDRESS: return "Address";
6322            case AGE: return "Age";
6323            case ANNOTATION: return "Annotation";
6324            case ATTACHMENT: return "Attachment";
6325            case BACKBONEELEMENT: return "BackboneElement";
6326            case CODEABLECONCEPT: return "CodeableConcept";
6327            case CODING: return "Coding";
6328            case CONTACTPOINT: return "ContactPoint";
6329            case COUNT: return "Count";
6330            case DATAREQUIREMENT: return "DataRequirement";
6331            case DISTANCE: return "Distance";
6332            case DURATION: return "Duration";
6333            case ELEMENT: return "Element";
6334            case ELEMENTDEFINITION: return "ElementDefinition";
6335            case EXTENSION: return "Extension";
6336            case HUMANNAME: return "HumanName";
6337            case IDENTIFIER: return "Identifier";
6338            case META: return "Meta";
6339            case MODULEMETADATA: return "ModuleMetadata";
6340            case MONEY: return "Money";
6341            case NARRATIVE: return "Narrative";
6342            case PARAMETERDEFINITION: return "ParameterDefinition";
6343            case PERIOD: return "Period";
6344            case QUANTITY: return "Quantity";
6345            case RANGE: return "Range";
6346            case RATIO: return "Ratio";
6347            case REFERENCE: return "Reference";
6348            case SAMPLEDDATA: return "SampledData";
6349            case SIGNATURE: return "Signature";
6350            case SIMPLEQUANTITY: return "SimpleQuantity";
6351            case TIMING: return "Timing";
6352            case TRIGGERDEFINITION: return "TriggerDefinition";
6353            case BASE64BINARY: return "base64Binary";
6354            case BOOLEAN: return "boolean";
6355            case CODE: return "code";
6356            case DATE: return "date";
6357            case DATETIME: return "dateTime";
6358            case DECIMAL: return "decimal";
6359            case ID: return "id";
6360            case INSTANT: return "instant";
6361            case INTEGER: return "integer";
6362            case MARKDOWN: return "markdown";
6363            case OID: return "oid";
6364            case POSITIVEINT: return "positiveInt";
6365            case STRING: return "string";
6366            case TIME: return "time";
6367            case UNSIGNEDINT: return "unsignedInt";
6368            case URI: return "uri";
6369            case UUID: return "uuid";
6370            case XHTML: return "XHTML";
6371            case ACCOUNT: return "Account";
6372            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
6373            case APPOINTMENT: return "Appointment";
6374            case APPOINTMENTRESPONSE: return "AppointmentResponse";
6375            case AUDITEVENT: return "AuditEvent";
6376            case BASIC: return "Basic";
6377            case BINARY: return "Binary";
6378            case BODYSITE: return "BodySite";
6379            case BUNDLE: return "Bundle";
6380            case CAREPLAN: return "CarePlan";
6381            case CARETEAM: return "CareTeam";
6382            case CLAIM: return "Claim";
6383            case CLAIMRESPONSE: return "ClaimResponse";
6384            case CLINICALIMPRESSION: return "ClinicalImpression";
6385            case CODESYSTEM: return "CodeSystem";
6386            case COMMUNICATION: return "Communication";
6387            case COMMUNICATIONREQUEST: return "CommunicationRequest";
6388            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
6389            case COMPOSITION: return "Composition";
6390            case CONCEPTMAP: return "ConceptMap";
6391            case CONDITION: return "Condition";
6392            case CONFORMANCE: return "Conformance";
6393            case CONTRACT: return "Contract";
6394            case COVERAGE: return "Coverage";
6395            case DATAELEMENT: return "DataElement";
6396            case DECISIONSUPPORTRULE: return "DecisionSupportRule";
6397            case DECISIONSUPPORTSERVICEMODULE: return "DecisionSupportServiceModule";
6398            case DETECTEDISSUE: return "DetectedIssue";
6399            case DEVICE: return "Device";
6400            case DEVICECOMPONENT: return "DeviceComponent";
6401            case DEVICEMETRIC: return "DeviceMetric";
6402            case DEVICEUSEREQUEST: return "DeviceUseRequest";
6403            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
6404            case DIAGNOSTICORDER: return "DiagnosticOrder";
6405            case DIAGNOSTICREPORT: return "DiagnosticReport";
6406            case DOCUMENTMANIFEST: return "DocumentManifest";
6407            case DOCUMENTREFERENCE: return "DocumentReference";
6408            case DOMAINRESOURCE: return "DomainResource";
6409            case ELIGIBILITYREQUEST: return "EligibilityRequest";
6410            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
6411            case ENCOUNTER: return "Encounter";
6412            case ENROLLMENTREQUEST: return "EnrollmentRequest";
6413            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
6414            case EPISODEOFCARE: return "EpisodeOfCare";
6415            case EXPANSIONPROFILE: return "ExpansionProfile";
6416            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
6417            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
6418            case FLAG: return "Flag";
6419            case GOAL: return "Goal";
6420            case GROUP: return "Group";
6421            case GUIDANCERESPONSE: return "GuidanceResponse";
6422            case HEALTHCARESERVICE: return "HealthcareService";
6423            case IMAGINGEXCERPT: return "ImagingExcerpt";
6424            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
6425            case IMAGINGSTUDY: return "ImagingStudy";
6426            case IMMUNIZATION: return "Immunization";
6427            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
6428            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
6429            case LIBRARY: return "Library";
6430            case LINKAGE: return "Linkage";
6431            case LIST: return "List";
6432            case LOCATION: return "Location";
6433            case MEASURE: return "Measure";
6434            case MEASUREREPORT: return "MeasureReport";
6435            case MEDIA: return "Media";
6436            case MEDICATION: return "Medication";
6437            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
6438            case MEDICATIONDISPENSE: return "MedicationDispense";
6439            case MEDICATIONORDER: return "MedicationOrder";
6440            case MEDICATIONSTATEMENT: return "MedicationStatement";
6441            case MESSAGEHEADER: return "MessageHeader";
6442            case MODULEDEFINITION: return "ModuleDefinition";
6443            case NAMINGSYSTEM: return "NamingSystem";
6444            case NUTRITIONORDER: return "NutritionOrder";
6445            case OBSERVATION: return "Observation";
6446            case OPERATIONDEFINITION: return "OperationDefinition";
6447            case OPERATIONOUTCOME: return "OperationOutcome";
6448            case ORDER: return "Order";
6449            case ORDERRESPONSE: return "OrderResponse";
6450            case ORDERSET: return "OrderSet";
6451            case ORGANIZATION: return "Organization";
6452            case PARAMETERS: return "Parameters";
6453            case PATIENT: return "Patient";
6454            case PAYMENTNOTICE: return "PaymentNotice";
6455            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
6456            case PERSON: return "Person";
6457            case PRACTITIONER: return "Practitioner";
6458            case PRACTITIONERROLE: return "PractitionerRole";
6459            case PROCEDURE: return "Procedure";
6460            case PROCEDUREREQUEST: return "ProcedureRequest";
6461            case PROCESSREQUEST: return "ProcessRequest";
6462            case PROCESSRESPONSE: return "ProcessResponse";
6463            case PROTOCOL: return "Protocol";
6464            case PROVENANCE: return "Provenance";
6465            case QUESTIONNAIRE: return "Questionnaire";
6466            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
6467            case REFERRALREQUEST: return "ReferralRequest";
6468            case RELATEDPERSON: return "RelatedPerson";
6469            case RESOURCE: return "Resource";
6470            case RISKASSESSMENT: return "RiskAssessment";
6471            case SCHEDULE: return "Schedule";
6472            case SEARCHPARAMETER: return "SearchParameter";
6473            case SEQUENCE: return "Sequence";
6474            case SLOT: return "Slot";
6475            case SPECIMEN: return "Specimen";
6476            case STRUCTUREDEFINITION: return "StructureDefinition";
6477            case STRUCTUREMAP: return "StructureMap";
6478            case SUBSCRIPTION: return "Subscription";
6479            case SUBSTANCE: return "Substance";
6480            case SUPPLYDELIVERY: return "SupplyDelivery";
6481            case SUPPLYREQUEST: return "SupplyRequest";
6482            case TASK: return "Task";
6483            case TESTSCRIPT: return "TestScript";
6484            case VALUESET: return "ValueSet";
6485            case VISIONPRESCRIPTION: return "VisionPrescription";
6486            case NULL: return null;
6487            default: return "?";
6488          }
6489        }
6490    }
6491
6492  public static class FHIRDefinedTypeEnumFactory implements EnumFactory<FHIRDefinedType> {
6493    public FHIRDefinedType fromCode(String codeString) throws IllegalArgumentException {
6494      if (codeString == null || "".equals(codeString))
6495            if (codeString == null || "".equals(codeString))
6496                return null;
6497        if ("ActionDefinition".equals(codeString))
6498          return FHIRDefinedType.ACTIONDEFINITION;
6499        if ("Address".equals(codeString))
6500          return FHIRDefinedType.ADDRESS;
6501        if ("Age".equals(codeString))
6502          return FHIRDefinedType.AGE;
6503        if ("Annotation".equals(codeString))
6504          return FHIRDefinedType.ANNOTATION;
6505        if ("Attachment".equals(codeString))
6506          return FHIRDefinedType.ATTACHMENT;
6507        if ("BackboneElement".equals(codeString))
6508          return FHIRDefinedType.BACKBONEELEMENT;
6509        if ("CodeableConcept".equals(codeString))
6510          return FHIRDefinedType.CODEABLECONCEPT;
6511        if ("Coding".equals(codeString))
6512          return FHIRDefinedType.CODING;
6513        if ("ContactPoint".equals(codeString))
6514          return FHIRDefinedType.CONTACTPOINT;
6515        if ("Count".equals(codeString))
6516          return FHIRDefinedType.COUNT;
6517        if ("DataRequirement".equals(codeString))
6518          return FHIRDefinedType.DATAREQUIREMENT;
6519        if ("Distance".equals(codeString))
6520          return FHIRDefinedType.DISTANCE;
6521        if ("Duration".equals(codeString))
6522          return FHIRDefinedType.DURATION;
6523        if ("Element".equals(codeString))
6524          return FHIRDefinedType.ELEMENT;
6525        if ("ElementDefinition".equals(codeString))
6526          return FHIRDefinedType.ELEMENTDEFINITION;
6527        if ("Extension".equals(codeString))
6528          return FHIRDefinedType.EXTENSION;
6529        if ("HumanName".equals(codeString))
6530          return FHIRDefinedType.HUMANNAME;
6531        if ("Identifier".equals(codeString))
6532          return FHIRDefinedType.IDENTIFIER;
6533        if ("Meta".equals(codeString))
6534          return FHIRDefinedType.META;
6535        if ("ModuleMetadata".equals(codeString))
6536          return FHIRDefinedType.MODULEMETADATA;
6537        if ("Money".equals(codeString))
6538          return FHIRDefinedType.MONEY;
6539        if ("Narrative".equals(codeString))
6540          return FHIRDefinedType.NARRATIVE;
6541        if ("ParameterDefinition".equals(codeString))
6542          return FHIRDefinedType.PARAMETERDEFINITION;
6543        if ("Period".equals(codeString))
6544          return FHIRDefinedType.PERIOD;
6545        if ("Quantity".equals(codeString))
6546          return FHIRDefinedType.QUANTITY;
6547        if ("Range".equals(codeString))
6548          return FHIRDefinedType.RANGE;
6549        if ("Ratio".equals(codeString))
6550          return FHIRDefinedType.RATIO;
6551        if ("Reference".equals(codeString))
6552          return FHIRDefinedType.REFERENCE;
6553        if ("SampledData".equals(codeString))
6554          return FHIRDefinedType.SAMPLEDDATA;
6555        if ("Signature".equals(codeString))
6556          return FHIRDefinedType.SIGNATURE;
6557        if ("SimpleQuantity".equals(codeString))
6558          return FHIRDefinedType.SIMPLEQUANTITY;
6559        if ("Timing".equals(codeString))
6560          return FHIRDefinedType.TIMING;
6561        if ("TriggerDefinition".equals(codeString))
6562          return FHIRDefinedType.TRIGGERDEFINITION;
6563        if ("base64Binary".equals(codeString))
6564          return FHIRDefinedType.BASE64BINARY;
6565        if ("boolean".equals(codeString))
6566          return FHIRDefinedType.BOOLEAN;
6567        if ("code".equals(codeString))
6568          return FHIRDefinedType.CODE;
6569        if ("date".equals(codeString))
6570          return FHIRDefinedType.DATE;
6571        if ("dateTime".equals(codeString))
6572          return FHIRDefinedType.DATETIME;
6573        if ("decimal".equals(codeString))
6574          return FHIRDefinedType.DECIMAL;
6575        if ("id".equals(codeString))
6576          return FHIRDefinedType.ID;
6577        if ("instant".equals(codeString))
6578          return FHIRDefinedType.INSTANT;
6579        if ("integer".equals(codeString))
6580          return FHIRDefinedType.INTEGER;
6581        if ("markdown".equals(codeString))
6582          return FHIRDefinedType.MARKDOWN;
6583        if ("oid".equals(codeString))
6584          return FHIRDefinedType.OID;
6585        if ("positiveInt".equals(codeString))
6586          return FHIRDefinedType.POSITIVEINT;
6587        if ("string".equals(codeString))
6588          return FHIRDefinedType.STRING;
6589        if ("time".equals(codeString))
6590          return FHIRDefinedType.TIME;
6591        if ("unsignedInt".equals(codeString))
6592          return FHIRDefinedType.UNSIGNEDINT;
6593        if ("uri".equals(codeString))
6594          return FHIRDefinedType.URI;
6595        if ("uuid".equals(codeString))
6596          return FHIRDefinedType.UUID;
6597        if ("xhtml".equals(codeString))
6598          return FHIRDefinedType.XHTML;
6599        if ("Account".equals(codeString))
6600          return FHIRDefinedType.ACCOUNT;
6601        if ("AllergyIntolerance".equals(codeString))
6602          return FHIRDefinedType.ALLERGYINTOLERANCE;
6603        if ("Appointment".equals(codeString))
6604          return FHIRDefinedType.APPOINTMENT;
6605        if ("AppointmentResponse".equals(codeString))
6606          return FHIRDefinedType.APPOINTMENTRESPONSE;
6607        if ("AuditEvent".equals(codeString))
6608          return FHIRDefinedType.AUDITEVENT;
6609        if ("Basic".equals(codeString))
6610          return FHIRDefinedType.BASIC;
6611        if ("Binary".equals(codeString))
6612          return FHIRDefinedType.BINARY;
6613        if ("BodySite".equals(codeString))
6614          return FHIRDefinedType.BODYSITE;
6615        if ("Bundle".equals(codeString))
6616          return FHIRDefinedType.BUNDLE;
6617        if ("CarePlan".equals(codeString))
6618          return FHIRDefinedType.CAREPLAN;
6619        if ("CareTeam".equals(codeString))
6620          return FHIRDefinedType.CARETEAM;
6621        if ("Claim".equals(codeString))
6622          return FHIRDefinedType.CLAIM;
6623        if ("ClaimResponse".equals(codeString))
6624          return FHIRDefinedType.CLAIMRESPONSE;
6625        if ("ClinicalImpression".equals(codeString))
6626          return FHIRDefinedType.CLINICALIMPRESSION;
6627        if ("CodeSystem".equals(codeString))
6628          return FHIRDefinedType.CODESYSTEM;
6629        if ("Communication".equals(codeString))
6630          return FHIRDefinedType.COMMUNICATION;
6631        if ("CommunicationRequest".equals(codeString))
6632          return FHIRDefinedType.COMMUNICATIONREQUEST;
6633        if ("CompartmentDefinition".equals(codeString))
6634          return FHIRDefinedType.COMPARTMENTDEFINITION;
6635        if ("Composition".equals(codeString))
6636          return FHIRDefinedType.COMPOSITION;
6637        if ("ConceptMap".equals(codeString))
6638          return FHIRDefinedType.CONCEPTMAP;
6639        if ("Condition".equals(codeString))
6640          return FHIRDefinedType.CONDITION;
6641        if ("Conformance".equals(codeString))
6642          return FHIRDefinedType.CONFORMANCE;
6643        if ("Contract".equals(codeString))
6644          return FHIRDefinedType.CONTRACT;
6645        if ("Coverage".equals(codeString))
6646          return FHIRDefinedType.COVERAGE;
6647        if ("DataElement".equals(codeString))
6648          return FHIRDefinedType.DATAELEMENT;
6649        if ("DecisionSupportRule".equals(codeString))
6650          return FHIRDefinedType.DECISIONSUPPORTRULE;
6651        if ("DecisionSupportServiceModule".equals(codeString))
6652          return FHIRDefinedType.DECISIONSUPPORTSERVICEMODULE;
6653        if ("DetectedIssue".equals(codeString))
6654          return FHIRDefinedType.DETECTEDISSUE;
6655        if ("Device".equals(codeString))
6656          return FHIRDefinedType.DEVICE;
6657        if ("DeviceComponent".equals(codeString))
6658          return FHIRDefinedType.DEVICECOMPONENT;
6659        if ("DeviceMetric".equals(codeString))
6660          return FHIRDefinedType.DEVICEMETRIC;
6661        if ("DeviceUseRequest".equals(codeString))
6662          return FHIRDefinedType.DEVICEUSEREQUEST;
6663        if ("DeviceUseStatement".equals(codeString))
6664          return FHIRDefinedType.DEVICEUSESTATEMENT;
6665        if ("DiagnosticOrder".equals(codeString))
6666          return FHIRDefinedType.DIAGNOSTICORDER;
6667        if ("DiagnosticReport".equals(codeString))
6668          return FHIRDefinedType.DIAGNOSTICREPORT;
6669        if ("DocumentManifest".equals(codeString))
6670          return FHIRDefinedType.DOCUMENTMANIFEST;
6671        if ("DocumentReference".equals(codeString))
6672          return FHIRDefinedType.DOCUMENTREFERENCE;
6673        if ("DomainResource".equals(codeString))
6674          return FHIRDefinedType.DOMAINRESOURCE;
6675        if ("EligibilityRequest".equals(codeString))
6676          return FHIRDefinedType.ELIGIBILITYREQUEST;
6677        if ("EligibilityResponse".equals(codeString))
6678          return FHIRDefinedType.ELIGIBILITYRESPONSE;
6679        if ("Encounter".equals(codeString))
6680          return FHIRDefinedType.ENCOUNTER;
6681        if ("EnrollmentRequest".equals(codeString))
6682          return FHIRDefinedType.ENROLLMENTREQUEST;
6683        if ("EnrollmentResponse".equals(codeString))
6684          return FHIRDefinedType.ENROLLMENTRESPONSE;
6685        if ("EpisodeOfCare".equals(codeString))
6686          return FHIRDefinedType.EPISODEOFCARE;
6687        if ("ExpansionProfile".equals(codeString))
6688          return FHIRDefinedType.EXPANSIONPROFILE;
6689        if ("ExplanationOfBenefit".equals(codeString))
6690          return FHIRDefinedType.EXPLANATIONOFBENEFIT;
6691        if ("FamilyMemberHistory".equals(codeString))
6692          return FHIRDefinedType.FAMILYMEMBERHISTORY;
6693        if ("Flag".equals(codeString))
6694          return FHIRDefinedType.FLAG;
6695        if ("Goal".equals(codeString))
6696          return FHIRDefinedType.GOAL;
6697        if ("Group".equals(codeString))
6698          return FHIRDefinedType.GROUP;
6699        if ("GuidanceResponse".equals(codeString))
6700          return FHIRDefinedType.GUIDANCERESPONSE;
6701        if ("HealthcareService".equals(codeString))
6702          return FHIRDefinedType.HEALTHCARESERVICE;
6703        if ("ImagingExcerpt".equals(codeString))
6704          return FHIRDefinedType.IMAGINGEXCERPT;
6705        if ("ImagingObjectSelection".equals(codeString))
6706          return FHIRDefinedType.IMAGINGOBJECTSELECTION;
6707        if ("ImagingStudy".equals(codeString))
6708          return FHIRDefinedType.IMAGINGSTUDY;
6709        if ("Immunization".equals(codeString))
6710          return FHIRDefinedType.IMMUNIZATION;
6711        if ("ImmunizationRecommendation".equals(codeString))
6712          return FHIRDefinedType.IMMUNIZATIONRECOMMENDATION;
6713        if ("ImplementationGuide".equals(codeString))
6714          return FHIRDefinedType.IMPLEMENTATIONGUIDE;
6715        if ("Library".equals(codeString))
6716          return FHIRDefinedType.LIBRARY;
6717        if ("Linkage".equals(codeString))
6718          return FHIRDefinedType.LINKAGE;
6719        if ("List".equals(codeString))
6720          return FHIRDefinedType.LIST;
6721        if ("Location".equals(codeString))
6722          return FHIRDefinedType.LOCATION;
6723        if ("Measure".equals(codeString))
6724          return FHIRDefinedType.MEASURE;
6725        if ("MeasureReport".equals(codeString))
6726          return FHIRDefinedType.MEASUREREPORT;
6727        if ("Media".equals(codeString))
6728          return FHIRDefinedType.MEDIA;
6729        if ("Medication".equals(codeString))
6730          return FHIRDefinedType.MEDICATION;
6731        if ("MedicationAdministration".equals(codeString))
6732          return FHIRDefinedType.MEDICATIONADMINISTRATION;
6733        if ("MedicationDispense".equals(codeString))
6734          return FHIRDefinedType.MEDICATIONDISPENSE;
6735        if ("MedicationOrder".equals(codeString))
6736          return FHIRDefinedType.MEDICATIONORDER;
6737        if ("MedicationStatement".equals(codeString))
6738          return FHIRDefinedType.MEDICATIONSTATEMENT;
6739        if ("MessageHeader".equals(codeString))
6740          return FHIRDefinedType.MESSAGEHEADER;
6741        if ("ModuleDefinition".equals(codeString))
6742          return FHIRDefinedType.MODULEDEFINITION;
6743        if ("NamingSystem".equals(codeString))
6744          return FHIRDefinedType.NAMINGSYSTEM;
6745        if ("NutritionOrder".equals(codeString))
6746          return FHIRDefinedType.NUTRITIONORDER;
6747        if ("Observation".equals(codeString))
6748          return FHIRDefinedType.OBSERVATION;
6749        if ("OperationDefinition".equals(codeString))
6750          return FHIRDefinedType.OPERATIONDEFINITION;
6751        if ("OperationOutcome".equals(codeString))
6752          return FHIRDefinedType.OPERATIONOUTCOME;
6753        if ("Order".equals(codeString))
6754          return FHIRDefinedType.ORDER;
6755        if ("OrderResponse".equals(codeString))
6756          return FHIRDefinedType.ORDERRESPONSE;
6757        if ("OrderSet".equals(codeString))
6758          return FHIRDefinedType.ORDERSET;
6759        if ("Organization".equals(codeString))
6760          return FHIRDefinedType.ORGANIZATION;
6761        if ("Parameters".equals(codeString))
6762          return FHIRDefinedType.PARAMETERS;
6763        if ("Patient".equals(codeString))
6764          return FHIRDefinedType.PATIENT;
6765        if ("PaymentNotice".equals(codeString))
6766          return FHIRDefinedType.PAYMENTNOTICE;
6767        if ("PaymentReconciliation".equals(codeString))
6768          return FHIRDefinedType.PAYMENTRECONCILIATION;
6769        if ("Person".equals(codeString))
6770          return FHIRDefinedType.PERSON;
6771        if ("Practitioner".equals(codeString))
6772          return FHIRDefinedType.PRACTITIONER;
6773        if ("PractitionerRole".equals(codeString))
6774          return FHIRDefinedType.PRACTITIONERROLE;
6775        if ("Procedure".equals(codeString))
6776          return FHIRDefinedType.PROCEDURE;
6777        if ("ProcedureRequest".equals(codeString))
6778          return FHIRDefinedType.PROCEDUREREQUEST;
6779        if ("ProcessRequest".equals(codeString))
6780          return FHIRDefinedType.PROCESSREQUEST;
6781        if ("ProcessResponse".equals(codeString))
6782          return FHIRDefinedType.PROCESSRESPONSE;
6783        if ("Protocol".equals(codeString))
6784          return FHIRDefinedType.PROTOCOL;
6785        if ("Provenance".equals(codeString))
6786          return FHIRDefinedType.PROVENANCE;
6787        if ("Questionnaire".equals(codeString))
6788          return FHIRDefinedType.QUESTIONNAIRE;
6789        if ("QuestionnaireResponse".equals(codeString))
6790          return FHIRDefinedType.QUESTIONNAIRERESPONSE;
6791        if ("ReferralRequest".equals(codeString))
6792          return FHIRDefinedType.REFERRALREQUEST;
6793        if ("RelatedPerson".equals(codeString))
6794          return FHIRDefinedType.RELATEDPERSON;
6795        if ("Resource".equals(codeString))
6796          return FHIRDefinedType.RESOURCE;
6797        if ("RiskAssessment".equals(codeString))
6798          return FHIRDefinedType.RISKASSESSMENT;
6799        if ("Schedule".equals(codeString))
6800          return FHIRDefinedType.SCHEDULE;
6801        if ("SearchParameter".equals(codeString))
6802          return FHIRDefinedType.SEARCHPARAMETER;
6803        if ("Sequence".equals(codeString))
6804          return FHIRDefinedType.SEQUENCE;
6805        if ("Slot".equals(codeString))
6806          return FHIRDefinedType.SLOT;
6807        if ("Specimen".equals(codeString))
6808          return FHIRDefinedType.SPECIMEN;
6809        if ("StructureDefinition".equals(codeString))
6810          return FHIRDefinedType.STRUCTUREDEFINITION;
6811        if ("StructureMap".equals(codeString))
6812          return FHIRDefinedType.STRUCTUREMAP;
6813        if ("Subscription".equals(codeString))
6814          return FHIRDefinedType.SUBSCRIPTION;
6815        if ("Substance".equals(codeString))
6816          return FHIRDefinedType.SUBSTANCE;
6817        if ("SupplyDelivery".equals(codeString))
6818          return FHIRDefinedType.SUPPLYDELIVERY;
6819        if ("SupplyRequest".equals(codeString))
6820          return FHIRDefinedType.SUPPLYREQUEST;
6821        if ("Task".equals(codeString))
6822          return FHIRDefinedType.TASK;
6823        if ("TestScript".equals(codeString))
6824          return FHIRDefinedType.TESTSCRIPT;
6825        if ("ValueSet".equals(codeString))
6826          return FHIRDefinedType.VALUESET;
6827        if ("VisionPrescription".equals(codeString))
6828          return FHIRDefinedType.VISIONPRESCRIPTION;
6829        throw new IllegalArgumentException("Unknown FHIRDefinedType code '"+codeString+"'");
6830        }
6831        public Enumeration<FHIRDefinedType> fromType(Base code) throws FHIRException {
6832          if (code == null || code.isEmpty())
6833            return null;
6834          String codeString = ((PrimitiveType) code).asStringValue();
6835          if (codeString == null || "".equals(codeString))
6836            return null;
6837        if ("ActionDefinition".equals(codeString))
6838          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ACTIONDEFINITION);
6839        if ("Address".equals(codeString))
6840          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ADDRESS);
6841        if ("Age".equals(codeString))
6842          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.AGE);
6843        if ("Annotation".equals(codeString))
6844          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ANNOTATION);
6845        if ("Attachment".equals(codeString))
6846          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ATTACHMENT);
6847        if ("BackboneElement".equals(codeString))
6848          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BACKBONEELEMENT);
6849        if ("CodeableConcept".equals(codeString))
6850          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODEABLECONCEPT);
6851        if ("Coding".equals(codeString))
6852          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODING);
6853        if ("ContactPoint".equals(codeString))
6854          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONTACTPOINT);
6855        if ("Count".equals(codeString))
6856          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COUNT);
6857        if ("DataRequirement".equals(codeString))
6858          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATAREQUIREMENT);
6859        if ("Distance".equals(codeString))
6860          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DISTANCE);
6861        if ("Duration".equals(codeString))
6862          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DURATION);
6863        if ("Element".equals(codeString))
6864          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELEMENT);
6865        if ("ElementDefinition".equals(codeString))
6866          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELEMENTDEFINITION);
6867        if ("Extension".equals(codeString))
6868          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EXTENSION);
6869        if ("HumanName".equals(codeString))
6870          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.HUMANNAME);
6871        if ("Identifier".equals(codeString))
6872          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IDENTIFIER);
6873        if ("Meta".equals(codeString))
6874          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.META);
6875        if ("ModuleMetadata".equals(codeString))
6876          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MODULEMETADATA);
6877        if ("Money".equals(codeString))
6878          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MONEY);
6879        if ("Narrative".equals(codeString))
6880          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.NARRATIVE);
6881        if ("ParameterDefinition".equals(codeString))
6882          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PARAMETERDEFINITION);
6883        if ("Period".equals(codeString))
6884          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PERIOD);
6885        if ("Quantity".equals(codeString))
6886          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.QUANTITY);
6887        if ("Range".equals(codeString))
6888          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RANGE);
6889        if ("Ratio".equals(codeString))
6890          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RATIO);
6891        if ("Reference".equals(codeString))
6892          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.REFERENCE);
6893        if ("SampledData".equals(codeString))
6894          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SAMPLEDDATA);
6895        if ("Signature".equals(codeString))
6896          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SIGNATURE);
6897        if ("SimpleQuantity".equals(codeString))
6898          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SIMPLEQUANTITY);
6899        if ("Timing".equals(codeString))
6900          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TIMING);
6901        if ("TriggerDefinition".equals(codeString))
6902          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TRIGGERDEFINITION);
6903        if ("base64Binary".equals(codeString))
6904          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BASE64BINARY);
6905        if ("boolean".equals(codeString))
6906          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BOOLEAN);
6907        if ("code".equals(codeString))
6908          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODE);
6909        if ("date".equals(codeString))
6910          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATE);
6911        if ("dateTime".equals(codeString))
6912          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATETIME);
6913        if ("decimal".equals(codeString))
6914          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DECIMAL);
6915        if ("id".equals(codeString))
6916          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ID);
6917        if ("instant".equals(codeString))
6918          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.INSTANT);
6919        if ("integer".equals(codeString))
6920          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.INTEGER);
6921        if ("markdown".equals(codeString))
6922          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MARKDOWN);
6923        if ("oid".equals(codeString))
6924          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OID);
6925        if ("positiveInt".equals(codeString))
6926          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.POSITIVEINT);
6927        if ("string".equals(codeString))
6928          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.STRING);
6929        if ("time".equals(codeString))
6930          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TIME);
6931        if ("unsignedInt".equals(codeString))
6932          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.UNSIGNEDINT);
6933        if ("uri".equals(codeString))
6934          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.URI);
6935        if ("uuid".equals(codeString))
6936          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.UUID);
6937        if ("xhtml".equals(codeString))
6938          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.XHTML);
6939        if ("Account".equals(codeString))
6940          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ACCOUNT);
6941        if ("AllergyIntolerance".equals(codeString))
6942          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ALLERGYINTOLERANCE);
6943        if ("Appointment".equals(codeString))
6944          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.APPOINTMENT);
6945        if ("AppointmentResponse".equals(codeString))
6946          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.APPOINTMENTRESPONSE);
6947        if ("AuditEvent".equals(codeString))
6948          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.AUDITEVENT);
6949        if ("Basic".equals(codeString))
6950          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BASIC);
6951        if ("Binary".equals(codeString))
6952          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BINARY);
6953        if ("BodySite".equals(codeString))
6954          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BODYSITE);
6955        if ("Bundle".equals(codeString))
6956          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BUNDLE);
6957        if ("CarePlan".equals(codeString))
6958          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CAREPLAN);
6959        if ("CareTeam".equals(codeString))
6960          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CARETEAM);
6961        if ("Claim".equals(codeString))
6962          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CLAIM);
6963        if ("ClaimResponse".equals(codeString))
6964          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CLAIMRESPONSE);
6965        if ("ClinicalImpression".equals(codeString))
6966          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CLINICALIMPRESSION);
6967        if ("CodeSystem".equals(codeString))
6968          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODESYSTEM);
6969        if ("Communication".equals(codeString))
6970          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMMUNICATION);
6971        if ("CommunicationRequest".equals(codeString))
6972          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMMUNICATIONREQUEST);
6973        if ("CompartmentDefinition".equals(codeString))
6974          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMPARTMENTDEFINITION);
6975        if ("Composition".equals(codeString))
6976          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMPOSITION);
6977        if ("ConceptMap".equals(codeString))
6978          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONCEPTMAP);
6979        if ("Condition".equals(codeString))
6980          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONDITION);
6981        if ("Conformance".equals(codeString))
6982          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONFORMANCE);
6983        if ("Contract".equals(codeString))
6984          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONTRACT);
6985        if ("Coverage".equals(codeString))
6986          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COVERAGE);
6987        if ("DataElement".equals(codeString))
6988          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATAELEMENT);
6989        if ("DecisionSupportRule".equals(codeString))
6990          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DECISIONSUPPORTRULE);
6991        if ("DecisionSupportServiceModule".equals(codeString))
6992          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DECISIONSUPPORTSERVICEMODULE);
6993        if ("DetectedIssue".equals(codeString))
6994          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DETECTEDISSUE);
6995        if ("Device".equals(codeString))
6996          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICE);
6997        if ("DeviceComponent".equals(codeString))
6998          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICECOMPONENT);
6999        if ("DeviceMetric".equals(codeString))
7000          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICEMETRIC);
7001        if ("DeviceUseRequest".equals(codeString))
7002          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICEUSEREQUEST);
7003        if ("DeviceUseStatement".equals(codeString))
7004          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICEUSESTATEMENT);
7005        if ("DiagnosticOrder".equals(codeString))
7006          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DIAGNOSTICORDER);
7007        if ("DiagnosticReport".equals(codeString))
7008          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DIAGNOSTICREPORT);
7009        if ("DocumentManifest".equals(codeString))
7010          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DOCUMENTMANIFEST);
7011        if ("DocumentReference".equals(codeString))
7012          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DOCUMENTREFERENCE);
7013        if ("DomainResource".equals(codeString))
7014          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DOMAINRESOURCE);
7015        if ("EligibilityRequest".equals(codeString))
7016          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELIGIBILITYREQUEST);
7017        if ("EligibilityResponse".equals(codeString))
7018          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELIGIBILITYRESPONSE);
7019        if ("Encounter".equals(codeString))
7020          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ENCOUNTER);
7021        if ("EnrollmentRequest".equals(codeString))
7022          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ENROLLMENTREQUEST);
7023        if ("EnrollmentResponse".equals(codeString))
7024          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ENROLLMENTRESPONSE);
7025        if ("EpisodeOfCare".equals(codeString))
7026          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EPISODEOFCARE);
7027        if ("ExpansionProfile".equals(codeString))
7028          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EXPANSIONPROFILE);
7029        if ("ExplanationOfBenefit".equals(codeString))
7030          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EXPLANATIONOFBENEFIT);
7031        if ("FamilyMemberHistory".equals(codeString))
7032          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.FAMILYMEMBERHISTORY);
7033        if ("Flag".equals(codeString))
7034          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.FLAG);
7035        if ("Goal".equals(codeString))
7036          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.GOAL);
7037        if ("Group".equals(codeString))
7038          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.GROUP);
7039        if ("GuidanceResponse".equals(codeString))
7040          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.GUIDANCERESPONSE);
7041        if ("HealthcareService".equals(codeString))
7042          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.HEALTHCARESERVICE);
7043        if ("ImagingExcerpt".equals(codeString))
7044          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMAGINGEXCERPT);
7045        if ("ImagingObjectSelection".equals(codeString))
7046          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMAGINGOBJECTSELECTION);
7047        if ("ImagingStudy".equals(codeString))
7048          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMAGINGSTUDY);
7049        if ("Immunization".equals(codeString))
7050          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMMUNIZATION);
7051        if ("ImmunizationRecommendation".equals(codeString))
7052          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMMUNIZATIONRECOMMENDATION);
7053        if ("ImplementationGuide".equals(codeString))
7054          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMPLEMENTATIONGUIDE);
7055        if ("Library".equals(codeString))
7056          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LIBRARY);
7057        if ("Linkage".equals(codeString))
7058          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LINKAGE);
7059        if ("List".equals(codeString))
7060          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LIST);
7061        if ("Location".equals(codeString))
7062          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LOCATION);
7063        if ("Measure".equals(codeString))
7064          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEASURE);
7065        if ("MeasureReport".equals(codeString))
7066          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEASUREREPORT);
7067        if ("Media".equals(codeString))
7068          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDIA);
7069        if ("Medication".equals(codeString))
7070          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATION);
7071        if ("MedicationAdministration".equals(codeString))
7072          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONADMINISTRATION);
7073        if ("MedicationDispense".equals(codeString))
7074          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONDISPENSE);
7075        if ("MedicationOrder".equals(codeString))
7076          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONORDER);
7077        if ("MedicationStatement".equals(codeString))
7078          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONSTATEMENT);
7079        if ("MessageHeader".equals(codeString))
7080          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MESSAGEHEADER);
7081        if ("ModuleDefinition".equals(codeString))
7082          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MODULEDEFINITION);
7083        if ("NamingSystem".equals(codeString))
7084          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.NAMINGSYSTEM);
7085        if ("NutritionOrder".equals(codeString))
7086          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.NUTRITIONORDER);
7087        if ("Observation".equals(codeString))
7088          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OBSERVATION);
7089        if ("OperationDefinition".equals(codeString))
7090          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OPERATIONDEFINITION);
7091        if ("OperationOutcome".equals(codeString))
7092          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OPERATIONOUTCOME);
7093        if ("Order".equals(codeString))
7094          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ORDER);
7095        if ("OrderResponse".equals(codeString))
7096          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ORDERRESPONSE);
7097        if ("OrderSet".equals(codeString))
7098          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ORDERSET);
7099        if ("Organization".equals(codeString))
7100          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ORGANIZATION);
7101        if ("Parameters".equals(codeString))
7102          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PARAMETERS);
7103        if ("Patient".equals(codeString))
7104          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PATIENT);
7105        if ("PaymentNotice".equals(codeString))
7106          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PAYMENTNOTICE);
7107        if ("PaymentReconciliation".equals(codeString))
7108          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PAYMENTRECONCILIATION);
7109        if ("Person".equals(codeString))
7110          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PERSON);
7111        if ("Practitioner".equals(codeString))
7112          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PRACTITIONER);
7113        if ("PractitionerRole".equals(codeString))
7114          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PRACTITIONERROLE);
7115        if ("Procedure".equals(codeString))
7116          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCEDURE);
7117        if ("ProcedureRequest".equals(codeString))
7118          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCEDUREREQUEST);
7119        if ("ProcessRequest".equals(codeString))
7120          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCESSREQUEST);
7121        if ("ProcessResponse".equals(codeString))
7122          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCESSRESPONSE);
7123        if ("Protocol".equals(codeString))
7124          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROTOCOL);
7125        if ("Provenance".equals(codeString))
7126          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROVENANCE);
7127        if ("Questionnaire".equals(codeString))
7128          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.QUESTIONNAIRE);
7129        if ("QuestionnaireResponse".equals(codeString))
7130          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.QUESTIONNAIRERESPONSE);
7131        if ("ReferralRequest".equals(codeString))
7132          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.REFERRALREQUEST);
7133        if ("RelatedPerson".equals(codeString))
7134          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RELATEDPERSON);
7135        if ("Resource".equals(codeString))
7136          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RESOURCE);
7137        if ("RiskAssessment".equals(codeString))
7138          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RISKASSESSMENT);
7139        if ("Schedule".equals(codeString))
7140          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SCHEDULE);
7141        if ("SearchParameter".equals(codeString))
7142          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SEARCHPARAMETER);
7143        if ("Sequence".equals(codeString))
7144          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SEQUENCE);
7145        if ("Slot".equals(codeString))
7146          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SLOT);
7147        if ("Specimen".equals(codeString))
7148          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SPECIMEN);
7149        if ("StructureDefinition".equals(codeString))
7150          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.STRUCTUREDEFINITION);
7151        if ("StructureMap".equals(codeString))
7152          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.STRUCTUREMAP);
7153        if ("Subscription".equals(codeString))
7154          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUBSCRIPTION);
7155        if ("Substance".equals(codeString))
7156          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUBSTANCE);
7157        if ("SupplyDelivery".equals(codeString))
7158          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUPPLYDELIVERY);
7159        if ("SupplyRequest".equals(codeString))
7160          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUPPLYREQUEST);
7161        if ("Task".equals(codeString))
7162          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TASK);
7163        if ("TestScript".equals(codeString))
7164          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TESTSCRIPT);
7165        if ("ValueSet".equals(codeString))
7166          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.VALUESET);
7167        if ("VisionPrescription".equals(codeString))
7168          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.VISIONPRESCRIPTION);
7169        throw new FHIRException("Unknown FHIRDefinedType code '"+codeString+"'");
7170        }
7171    public String toCode(FHIRDefinedType code) {
7172      if (code == FHIRDefinedType.ACTIONDEFINITION)
7173        return "ActionDefinition";
7174      if (code == FHIRDefinedType.ADDRESS)
7175        return "Address";
7176      if (code == FHIRDefinedType.AGE)
7177        return "Age";
7178      if (code == FHIRDefinedType.ANNOTATION)
7179        return "Annotation";
7180      if (code == FHIRDefinedType.ATTACHMENT)
7181        return "Attachment";
7182      if (code == FHIRDefinedType.BACKBONEELEMENT)
7183        return "BackboneElement";
7184      if (code == FHIRDefinedType.CODEABLECONCEPT)
7185        return "CodeableConcept";
7186      if (code == FHIRDefinedType.CODING)
7187        return "Coding";
7188      if (code == FHIRDefinedType.CONTACTPOINT)
7189        return "ContactPoint";
7190      if (code == FHIRDefinedType.COUNT)
7191        return "Count";
7192      if (code == FHIRDefinedType.DATAREQUIREMENT)
7193        return "DataRequirement";
7194      if (code == FHIRDefinedType.DISTANCE)
7195        return "Distance";
7196      if (code == FHIRDefinedType.DURATION)
7197        return "Duration";
7198      if (code == FHIRDefinedType.ELEMENT)
7199        return "Element";
7200      if (code == FHIRDefinedType.ELEMENTDEFINITION)
7201        return "ElementDefinition";
7202      if (code == FHIRDefinedType.EXTENSION)
7203        return "Extension";
7204      if (code == FHIRDefinedType.HUMANNAME)
7205        return "HumanName";
7206      if (code == FHIRDefinedType.IDENTIFIER)
7207        return "Identifier";
7208      if (code == FHIRDefinedType.META)
7209        return "Meta";
7210      if (code == FHIRDefinedType.MODULEMETADATA)
7211        return "ModuleMetadata";
7212      if (code == FHIRDefinedType.MONEY)
7213        return "Money";
7214      if (code == FHIRDefinedType.NARRATIVE)
7215        return "Narrative";
7216      if (code == FHIRDefinedType.PARAMETERDEFINITION)
7217        return "ParameterDefinition";
7218      if (code == FHIRDefinedType.PERIOD)
7219        return "Period";
7220      if (code == FHIRDefinedType.QUANTITY)
7221        return "Quantity";
7222      if (code == FHIRDefinedType.RANGE)
7223        return "Range";
7224      if (code == FHIRDefinedType.RATIO)
7225        return "Ratio";
7226      if (code == FHIRDefinedType.REFERENCE)
7227        return "Reference";
7228      if (code == FHIRDefinedType.SAMPLEDDATA)
7229        return "SampledData";
7230      if (code == FHIRDefinedType.SIGNATURE)
7231        return "Signature";
7232      if (code == FHIRDefinedType.SIMPLEQUANTITY)
7233        return "SimpleQuantity";
7234      if (code == FHIRDefinedType.TIMING)
7235        return "Timing";
7236      if (code == FHIRDefinedType.TRIGGERDEFINITION)
7237        return "TriggerDefinition";
7238      if (code == FHIRDefinedType.BASE64BINARY)
7239        return "base64Binary";
7240      if (code == FHIRDefinedType.BOOLEAN)
7241        return "boolean";
7242      if (code == FHIRDefinedType.CODE)
7243        return "code";
7244      if (code == FHIRDefinedType.DATE)
7245        return "date";
7246      if (code == FHIRDefinedType.DATETIME)
7247        return "dateTime";
7248      if (code == FHIRDefinedType.DECIMAL)
7249        return "decimal";
7250      if (code == FHIRDefinedType.ID)
7251        return "id";
7252      if (code == FHIRDefinedType.INSTANT)
7253        return "instant";
7254      if (code == FHIRDefinedType.INTEGER)
7255        return "integer";
7256      if (code == FHIRDefinedType.MARKDOWN)
7257        return "markdown";
7258      if (code == FHIRDefinedType.OID)
7259        return "oid";
7260      if (code == FHIRDefinedType.POSITIVEINT)
7261        return "positiveInt";
7262      if (code == FHIRDefinedType.STRING)
7263        return "string";
7264      if (code == FHIRDefinedType.TIME)
7265        return "time";
7266      if (code == FHIRDefinedType.UNSIGNEDINT)
7267        return "unsignedInt";
7268      if (code == FHIRDefinedType.URI)
7269        return "uri";
7270      if (code == FHIRDefinedType.UUID)
7271        return "uuid";
7272      if (code == FHIRDefinedType.XHTML)
7273        return "xhtml";
7274      if (code == FHIRDefinedType.ACCOUNT)
7275        return "Account";
7276      if (code == FHIRDefinedType.ALLERGYINTOLERANCE)
7277        return "AllergyIntolerance";
7278      if (code == FHIRDefinedType.APPOINTMENT)
7279        return "Appointment";
7280      if (code == FHIRDefinedType.APPOINTMENTRESPONSE)
7281        return "AppointmentResponse";
7282      if (code == FHIRDefinedType.AUDITEVENT)
7283        return "AuditEvent";
7284      if (code == FHIRDefinedType.BASIC)
7285        return "Basic";
7286      if (code == FHIRDefinedType.BINARY)
7287        return "Binary";
7288      if (code == FHIRDefinedType.BODYSITE)
7289        return "BodySite";
7290      if (code == FHIRDefinedType.BUNDLE)
7291        return "Bundle";
7292      if (code == FHIRDefinedType.CAREPLAN)
7293        return "CarePlan";
7294      if (code == FHIRDefinedType.CARETEAM)
7295        return "CareTeam";
7296      if (code == FHIRDefinedType.CLAIM)
7297        return "Claim";
7298      if (code == FHIRDefinedType.CLAIMRESPONSE)
7299        return "ClaimResponse";
7300      if (code == FHIRDefinedType.CLINICALIMPRESSION)
7301        return "ClinicalImpression";
7302      if (code == FHIRDefinedType.CODESYSTEM)
7303        return "CodeSystem";
7304      if (code == FHIRDefinedType.COMMUNICATION)
7305        return "Communication";
7306      if (code == FHIRDefinedType.COMMUNICATIONREQUEST)
7307        return "CommunicationRequest";
7308      if (code == FHIRDefinedType.COMPARTMENTDEFINITION)
7309        return "CompartmentDefinition";
7310      if (code == FHIRDefinedType.COMPOSITION)
7311        return "Composition";
7312      if (code == FHIRDefinedType.CONCEPTMAP)
7313        return "ConceptMap";
7314      if (code == FHIRDefinedType.CONDITION)
7315        return "Condition";
7316      if (code == FHIRDefinedType.CONFORMANCE)
7317        return "Conformance";
7318      if (code == FHIRDefinedType.CONTRACT)
7319        return "Contract";
7320      if (code == FHIRDefinedType.COVERAGE)
7321        return "Coverage";
7322      if (code == FHIRDefinedType.DATAELEMENT)
7323        return "DataElement";
7324      if (code == FHIRDefinedType.DECISIONSUPPORTRULE)
7325        return "DecisionSupportRule";
7326      if (code == FHIRDefinedType.DECISIONSUPPORTSERVICEMODULE)
7327        return "DecisionSupportServiceModule";
7328      if (code == FHIRDefinedType.DETECTEDISSUE)
7329        return "DetectedIssue";
7330      if (code == FHIRDefinedType.DEVICE)
7331        return "Device";
7332      if (code == FHIRDefinedType.DEVICECOMPONENT)
7333        return "DeviceComponent";
7334      if (code == FHIRDefinedType.DEVICEMETRIC)
7335        return "DeviceMetric";
7336      if (code == FHIRDefinedType.DEVICEUSEREQUEST)
7337        return "DeviceUseRequest";
7338      if (code == FHIRDefinedType.DEVICEUSESTATEMENT)
7339        return "DeviceUseStatement";
7340      if (code == FHIRDefinedType.DIAGNOSTICORDER)
7341        return "DiagnosticOrder";
7342      if (code == FHIRDefinedType.DIAGNOSTICREPORT)
7343        return "DiagnosticReport";
7344      if (code == FHIRDefinedType.DOCUMENTMANIFEST)
7345        return "DocumentManifest";
7346      if (code == FHIRDefinedType.DOCUMENTREFERENCE)
7347        return "DocumentReference";
7348      if (code == FHIRDefinedType.DOMAINRESOURCE)
7349        return "DomainResource";
7350      if (code == FHIRDefinedType.ELIGIBILITYREQUEST)
7351        return "EligibilityRequest";
7352      if (code == FHIRDefinedType.ELIGIBILITYRESPONSE)
7353        return "EligibilityResponse";
7354      if (code == FHIRDefinedType.ENCOUNTER)
7355        return "Encounter";
7356      if (code == FHIRDefinedType.ENROLLMENTREQUEST)
7357        return "EnrollmentRequest";
7358      if (code == FHIRDefinedType.ENROLLMENTRESPONSE)
7359        return "EnrollmentResponse";
7360      if (code == FHIRDefinedType.EPISODEOFCARE)
7361        return "EpisodeOfCare";
7362      if (code == FHIRDefinedType.EXPANSIONPROFILE)
7363        return "ExpansionProfile";
7364      if (code == FHIRDefinedType.EXPLANATIONOFBENEFIT)
7365        return "ExplanationOfBenefit";
7366      if (code == FHIRDefinedType.FAMILYMEMBERHISTORY)
7367        return "FamilyMemberHistory";
7368      if (code == FHIRDefinedType.FLAG)
7369        return "Flag";
7370      if (code == FHIRDefinedType.GOAL)
7371        return "Goal";
7372      if (code == FHIRDefinedType.GROUP)
7373        return "Group";
7374      if (code == FHIRDefinedType.GUIDANCERESPONSE)
7375        return "GuidanceResponse";
7376      if (code == FHIRDefinedType.HEALTHCARESERVICE)
7377        return "HealthcareService";
7378      if (code == FHIRDefinedType.IMAGINGEXCERPT)
7379        return "ImagingExcerpt";
7380      if (code == FHIRDefinedType.IMAGINGOBJECTSELECTION)
7381        return "ImagingObjectSelection";
7382      if (code == FHIRDefinedType.IMAGINGSTUDY)
7383        return "ImagingStudy";
7384      if (code == FHIRDefinedType.IMMUNIZATION)
7385        return "Immunization";
7386      if (code == FHIRDefinedType.IMMUNIZATIONRECOMMENDATION)
7387        return "ImmunizationRecommendation";
7388      if (code == FHIRDefinedType.IMPLEMENTATIONGUIDE)
7389        return "ImplementationGuide";
7390      if (code == FHIRDefinedType.LIBRARY)
7391        return "Library";
7392      if (code == FHIRDefinedType.LINKAGE)
7393        return "Linkage";
7394      if (code == FHIRDefinedType.LIST)
7395        return "List";
7396      if (code == FHIRDefinedType.LOCATION)
7397        return "Location";
7398      if (code == FHIRDefinedType.MEASURE)
7399        return "Measure";
7400      if (code == FHIRDefinedType.MEASUREREPORT)
7401        return "MeasureReport";
7402      if (code == FHIRDefinedType.MEDIA)
7403        return "Media";
7404      if (code == FHIRDefinedType.MEDICATION)
7405        return "Medication";
7406      if (code == FHIRDefinedType.MEDICATIONADMINISTRATION)
7407        return "MedicationAdministration";
7408      if (code == FHIRDefinedType.MEDICATIONDISPENSE)
7409        return "MedicationDispense";
7410      if (code == FHIRDefinedType.MEDICATIONORDER)
7411        return "MedicationOrder";
7412      if (code == FHIRDefinedType.MEDICATIONSTATEMENT)
7413        return "MedicationStatement";
7414      if (code == FHIRDefinedType.MESSAGEHEADER)
7415        return "MessageHeader";
7416      if (code == FHIRDefinedType.MODULEDEFINITION)
7417        return "ModuleDefinition";
7418      if (code == FHIRDefinedType.NAMINGSYSTEM)
7419        return "NamingSystem";
7420      if (code == FHIRDefinedType.NUTRITIONORDER)
7421        return "NutritionOrder";
7422      if (code == FHIRDefinedType.OBSERVATION)
7423        return "Observation";
7424      if (code == FHIRDefinedType.OPERATIONDEFINITION)
7425        return "OperationDefinition";
7426      if (code == FHIRDefinedType.OPERATIONOUTCOME)
7427        return "OperationOutcome";
7428      if (code == FHIRDefinedType.ORDER)
7429        return "Order";
7430      if (code == FHIRDefinedType.ORDERRESPONSE)
7431        return "OrderResponse";
7432      if (code == FHIRDefinedType.ORDERSET)
7433        return "OrderSet";
7434      if (code == FHIRDefinedType.ORGANIZATION)
7435        return "Organization";
7436      if (code == FHIRDefinedType.PARAMETERS)
7437        return "Parameters";
7438      if (code == FHIRDefinedType.PATIENT)
7439        return "Patient";
7440      if (code == FHIRDefinedType.PAYMENTNOTICE)
7441        return "PaymentNotice";
7442      if (code == FHIRDefinedType.PAYMENTRECONCILIATION)
7443        return "PaymentReconciliation";
7444      if (code == FHIRDefinedType.PERSON)
7445        return "Person";
7446      if (code == FHIRDefinedType.PRACTITIONER)
7447        return "Practitioner";
7448      if (code == FHIRDefinedType.PRACTITIONERROLE)
7449        return "PractitionerRole";
7450      if (code == FHIRDefinedType.PROCEDURE)
7451        return "Procedure";
7452      if (code == FHIRDefinedType.PROCEDUREREQUEST)
7453        return "ProcedureRequest";
7454      if (code == FHIRDefinedType.PROCESSREQUEST)
7455        return "ProcessRequest";
7456      if (code == FHIRDefinedType.PROCESSRESPONSE)
7457        return "ProcessResponse";
7458      if (code == FHIRDefinedType.PROTOCOL)
7459        return "Protocol";
7460      if (code == FHIRDefinedType.PROVENANCE)
7461        return "Provenance";
7462      if (code == FHIRDefinedType.QUESTIONNAIRE)
7463        return "Questionnaire";
7464      if (code == FHIRDefinedType.QUESTIONNAIRERESPONSE)
7465        return "QuestionnaireResponse";
7466      if (code == FHIRDefinedType.REFERRALREQUEST)
7467        return "ReferralRequest";
7468      if (code == FHIRDefinedType.RELATEDPERSON)
7469        return "RelatedPerson";
7470      if (code == FHIRDefinedType.RESOURCE)
7471        return "Resource";
7472      if (code == FHIRDefinedType.RISKASSESSMENT)
7473        return "RiskAssessment";
7474      if (code == FHIRDefinedType.SCHEDULE)
7475        return "Schedule";
7476      if (code == FHIRDefinedType.SEARCHPARAMETER)
7477        return "SearchParameter";
7478      if (code == FHIRDefinedType.SEQUENCE)
7479        return "Sequence";
7480      if (code == FHIRDefinedType.SLOT)
7481        return "Slot";
7482      if (code == FHIRDefinedType.SPECIMEN)
7483        return "Specimen";
7484      if (code == FHIRDefinedType.STRUCTUREDEFINITION)
7485        return "StructureDefinition";
7486      if (code == FHIRDefinedType.STRUCTUREMAP)
7487        return "StructureMap";
7488      if (code == FHIRDefinedType.SUBSCRIPTION)
7489        return "Subscription";
7490      if (code == FHIRDefinedType.SUBSTANCE)
7491        return "Substance";
7492      if (code == FHIRDefinedType.SUPPLYDELIVERY)
7493        return "SupplyDelivery";
7494      if (code == FHIRDefinedType.SUPPLYREQUEST)
7495        return "SupplyRequest";
7496      if (code == FHIRDefinedType.TASK)
7497        return "Task";
7498      if (code == FHIRDefinedType.TESTSCRIPT)
7499        return "TestScript";
7500      if (code == FHIRDefinedType.VALUESET)
7501        return "ValueSet";
7502      if (code == FHIRDefinedType.VISIONPRESCRIPTION)
7503        return "VisionPrescription";
7504      return "?";
7505      }
7506    public String toSystem(FHIRDefinedType code) {
7507      return code.getSystem();
7508      }
7509    }
7510
7511    public enum MessageEvent {
7512        /**
7513         * The definition of a code system is used to create a simple collection of codes suitable for use for data entry or validation. An expanded code system will be returned, or an error message.
7514         */
7515        CODESYSTEMEXPAND, 
7516        /**
7517         * Change the status of a Medication Administration to show that it is complete.
7518         */
7519        MEDICATIONADMINISTRATIONCOMPLETE, 
7520        /**
7521         * Someone wishes to record that the record of administration of a medication is in error and should be ignored.
7522         */
7523        MEDICATIONADMINISTRATIONNULLIFICATION, 
7524        /**
7525         * Indicates that a medication has been recorded against the patient's record.
7526         */
7527        MEDICATIONADMINISTRATIONRECORDING, 
7528        /**
7529         * Update a Medication Administration record.
7530         */
7531        MEDICATIONADMINISTRATIONUPDATE, 
7532        /**
7533         * Notification of a change to an administrative resource (either create or update). Note that there is no delete, though some administrative resources have status or period elements for this use.
7534         */
7535        ADMINNOTIFY, 
7536        /**
7537         * Provide a diagnostic report, or update a previously provided diagnostic report.
7538         */
7539        DIAGNOSTICREPORTPROVIDE, 
7540        /**
7541         * Provide a simple observation or update a previously provided simple observation.
7542         */
7543        OBSERVATIONPROVIDE, 
7544        /**
7545         * Notification that two patient records actually identify the same patient.
7546         */
7547        PATIENTLINK, 
7548        /**
7549         * Notification that previous advice that two patient records concern the same patient is now considered incorrect.
7550         */
7551        PATIENTUNLINK, 
7552        /**
7553         * The definition of a value set is used to create a simple collection of codes suitable for use for data entry or validation. An expanded value set will be returned, or an error message.
7554         */
7555        VALUESETEXPAND, 
7556        /**
7557         * added to help the parsers
7558         */
7559        NULL;
7560        public static MessageEvent fromCode(String codeString) throws FHIRException {
7561            if (codeString == null || "".equals(codeString))
7562                return null;
7563        if ("CodeSystem-expand".equals(codeString))
7564          return CODESYSTEMEXPAND;
7565        if ("MedicationAdministration-Complete".equals(codeString))
7566          return MEDICATIONADMINISTRATIONCOMPLETE;
7567        if ("MedicationAdministration-Nullification".equals(codeString))
7568          return MEDICATIONADMINISTRATIONNULLIFICATION;
7569        if ("MedicationAdministration-Recording".equals(codeString))
7570          return MEDICATIONADMINISTRATIONRECORDING;
7571        if ("MedicationAdministration-Update".equals(codeString))
7572          return MEDICATIONADMINISTRATIONUPDATE;
7573        if ("admin-notify".equals(codeString))
7574          return ADMINNOTIFY;
7575        if ("diagnosticreport-provide".equals(codeString))
7576          return DIAGNOSTICREPORTPROVIDE;
7577        if ("observation-provide".equals(codeString))
7578          return OBSERVATIONPROVIDE;
7579        if ("patient-link".equals(codeString))
7580          return PATIENTLINK;
7581        if ("patient-unlink".equals(codeString))
7582          return PATIENTUNLINK;
7583        if ("valueset-expand".equals(codeString))
7584          return VALUESETEXPAND;
7585        throw new FHIRException("Unknown MessageEvent code '"+codeString+"'");
7586        }
7587        public String toCode() {
7588          switch (this) {
7589            case CODESYSTEMEXPAND: return "CodeSystem-expand";
7590            case MEDICATIONADMINISTRATIONCOMPLETE: return "MedicationAdministration-Complete";
7591            case MEDICATIONADMINISTRATIONNULLIFICATION: return "MedicationAdministration-Nullification";
7592            case MEDICATIONADMINISTRATIONRECORDING: return "MedicationAdministration-Recording";
7593            case MEDICATIONADMINISTRATIONUPDATE: return "MedicationAdministration-Update";
7594            case ADMINNOTIFY: return "admin-notify";
7595            case DIAGNOSTICREPORTPROVIDE: return "diagnosticreport-provide";
7596            case OBSERVATIONPROVIDE: return "observation-provide";
7597            case PATIENTLINK: return "patient-link";
7598            case PATIENTUNLINK: return "patient-unlink";
7599            case VALUESETEXPAND: return "valueset-expand";
7600            case NULL: return null;
7601            default: return "?";
7602          }
7603        }
7604        public String getSystem() {
7605          switch (this) {
7606            case CODESYSTEMEXPAND: return "http://hl7.org/fhir/message-events";
7607            case MEDICATIONADMINISTRATIONCOMPLETE: return "http://hl7.org/fhir/message-events";
7608            case MEDICATIONADMINISTRATIONNULLIFICATION: return "http://hl7.org/fhir/message-events";
7609            case MEDICATIONADMINISTRATIONRECORDING: return "http://hl7.org/fhir/message-events";
7610            case MEDICATIONADMINISTRATIONUPDATE: return "http://hl7.org/fhir/message-events";
7611            case ADMINNOTIFY: return "http://hl7.org/fhir/message-events";
7612            case DIAGNOSTICREPORTPROVIDE: return "http://hl7.org/fhir/message-events";
7613            case OBSERVATIONPROVIDE: return "http://hl7.org/fhir/message-events";
7614            case PATIENTLINK: return "http://hl7.org/fhir/message-events";
7615            case PATIENTUNLINK: return "http://hl7.org/fhir/message-events";
7616            case VALUESETEXPAND: return "http://hl7.org/fhir/message-events";
7617            case NULL: return null;
7618            default: return "?";
7619          }
7620        }
7621        public String getDefinition() {
7622          switch (this) {
7623            case CODESYSTEMEXPAND: return "The definition of a code system is used to create a simple collection of codes suitable for use for data entry or validation. An expanded code system will be returned, or an error message.";
7624            case MEDICATIONADMINISTRATIONCOMPLETE: return "Change the status of a Medication Administration to show that it is complete.";
7625            case MEDICATIONADMINISTRATIONNULLIFICATION: return "Someone wishes to record that the record of administration of a medication is in error and should be ignored.";
7626            case MEDICATIONADMINISTRATIONRECORDING: return "Indicates that a medication has been recorded against the patient's record.";
7627            case MEDICATIONADMINISTRATIONUPDATE: return "Update a Medication Administration record.";
7628            case ADMINNOTIFY: return "Notification of a change to an administrative resource (either create or update). Note that there is no delete, though some administrative resources have status or period elements for this use.";
7629            case DIAGNOSTICREPORTPROVIDE: return "Provide a diagnostic report, or update a previously provided diagnostic report.";
7630            case OBSERVATIONPROVIDE: return "Provide a simple observation or update a previously provided simple observation.";
7631            case PATIENTLINK: return "Notification that two patient records actually identify the same patient.";
7632            case PATIENTUNLINK: return "Notification that previous advice that two patient records concern the same patient is now considered incorrect.";
7633            case VALUESETEXPAND: return "The definition of a value set is used to create a simple collection of codes suitable for use for data entry or validation. An expanded value set will be returned, or an error message.";
7634            case NULL: return null;
7635            default: return "?";
7636          }
7637        }
7638        public String getDisplay() {
7639          switch (this) {
7640            case CODESYSTEMEXPAND: return "CodeSystem-expand";
7641            case MEDICATIONADMINISTRATIONCOMPLETE: return "MedicationAdministration-Complete";
7642            case MEDICATIONADMINISTRATIONNULLIFICATION: return "MedicationAdministration-Nullification";
7643            case MEDICATIONADMINISTRATIONRECORDING: return "MedicationAdministration-Recording";
7644            case MEDICATIONADMINISTRATIONUPDATE: return "MedicationAdministration-Update";
7645            case ADMINNOTIFY: return "admin-notify";
7646            case DIAGNOSTICREPORTPROVIDE: return "diagnosticreport-provide";
7647            case OBSERVATIONPROVIDE: return "observation-provide";
7648            case PATIENTLINK: return "patient-link";
7649            case PATIENTUNLINK: return "patient-unlink";
7650            case VALUESETEXPAND: return "valueset-expand";
7651            case NULL: return null;
7652            default: return "?";
7653          }
7654        }
7655    }
7656
7657  public static class MessageEventEnumFactory implements EnumFactory<MessageEvent> {
7658    public MessageEvent fromCode(String codeString) throws IllegalArgumentException {
7659      if (codeString == null || "".equals(codeString))
7660            if (codeString == null || "".equals(codeString))
7661                return null;
7662        if ("CodeSystem-expand".equals(codeString))
7663          return MessageEvent.CODESYSTEMEXPAND;
7664        if ("MedicationAdministration-Complete".equals(codeString))
7665          return MessageEvent.MEDICATIONADMINISTRATIONCOMPLETE;
7666        if ("MedicationAdministration-Nullification".equals(codeString))
7667          return MessageEvent.MEDICATIONADMINISTRATIONNULLIFICATION;
7668        if ("MedicationAdministration-Recording".equals(codeString))
7669          return MessageEvent.MEDICATIONADMINISTRATIONRECORDING;
7670        if ("MedicationAdministration-Update".equals(codeString))
7671          return MessageEvent.MEDICATIONADMINISTRATIONUPDATE;
7672        if ("admin-notify".equals(codeString))
7673          return MessageEvent.ADMINNOTIFY;
7674        if ("diagnosticreport-provide".equals(codeString))
7675          return MessageEvent.DIAGNOSTICREPORTPROVIDE;
7676        if ("observation-provide".equals(codeString))
7677          return MessageEvent.OBSERVATIONPROVIDE;
7678        if ("patient-link".equals(codeString))
7679          return MessageEvent.PATIENTLINK;
7680        if ("patient-unlink".equals(codeString))
7681          return MessageEvent.PATIENTUNLINK;
7682        if ("valueset-expand".equals(codeString))
7683          return MessageEvent.VALUESETEXPAND;
7684        throw new IllegalArgumentException("Unknown MessageEvent code '"+codeString+"'");
7685        }
7686        public Enumeration<MessageEvent> fromType(Base code) throws FHIRException {
7687          if (code == null || code.isEmpty())
7688            return null;
7689          String codeString = ((PrimitiveType) code).asStringValue();
7690          if (codeString == null || "".equals(codeString))
7691            return null;
7692        if ("CodeSystem-expand".equals(codeString))
7693          return new Enumeration<MessageEvent>(this, MessageEvent.CODESYSTEMEXPAND);
7694        if ("MedicationAdministration-Complete".equals(codeString))
7695          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONCOMPLETE);
7696        if ("MedicationAdministration-Nullification".equals(codeString))
7697          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONNULLIFICATION);
7698        if ("MedicationAdministration-Recording".equals(codeString))
7699          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONRECORDING);
7700        if ("MedicationAdministration-Update".equals(codeString))
7701          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONUPDATE);
7702        if ("admin-notify".equals(codeString))
7703          return new Enumeration<MessageEvent>(this, MessageEvent.ADMINNOTIFY);
7704        if ("diagnosticreport-provide".equals(codeString))
7705          return new Enumeration<MessageEvent>(this, MessageEvent.DIAGNOSTICREPORTPROVIDE);
7706        if ("observation-provide".equals(codeString))
7707          return new Enumeration<MessageEvent>(this, MessageEvent.OBSERVATIONPROVIDE);
7708        if ("patient-link".equals(codeString))
7709          return new Enumeration<MessageEvent>(this, MessageEvent.PATIENTLINK);
7710        if ("patient-unlink".equals(codeString))
7711          return new Enumeration<MessageEvent>(this, MessageEvent.PATIENTUNLINK);
7712        if ("valueset-expand".equals(codeString))
7713          return new Enumeration<MessageEvent>(this, MessageEvent.VALUESETEXPAND);
7714        throw new FHIRException("Unknown MessageEvent code '"+codeString+"'");
7715        }
7716    public String toCode(MessageEvent code) {
7717      if (code == MessageEvent.CODESYSTEMEXPAND)
7718        return "CodeSystem-expand";
7719      if (code == MessageEvent.MEDICATIONADMINISTRATIONCOMPLETE)
7720        return "MedicationAdministration-Complete";
7721      if (code == MessageEvent.MEDICATIONADMINISTRATIONNULLIFICATION)
7722        return "MedicationAdministration-Nullification";
7723      if (code == MessageEvent.MEDICATIONADMINISTRATIONRECORDING)
7724        return "MedicationAdministration-Recording";
7725      if (code == MessageEvent.MEDICATIONADMINISTRATIONUPDATE)
7726        return "MedicationAdministration-Update";
7727      if (code == MessageEvent.ADMINNOTIFY)
7728        return "admin-notify";
7729      if (code == MessageEvent.DIAGNOSTICREPORTPROVIDE)
7730        return "diagnosticreport-provide";
7731      if (code == MessageEvent.OBSERVATIONPROVIDE)
7732        return "observation-provide";
7733      if (code == MessageEvent.PATIENTLINK)
7734        return "patient-link";
7735      if (code == MessageEvent.PATIENTUNLINK)
7736        return "patient-unlink";
7737      if (code == MessageEvent.VALUESETEXPAND)
7738        return "valueset-expand";
7739      return "?";
7740      }
7741    public String toSystem(MessageEvent code) {
7742      return code.getSystem();
7743      }
7744    }
7745
7746    public enum NoteType {
7747        /**
7748         * Display the note.
7749         */
7750        DISPLAY, 
7751        /**
7752         * Print the note on the form.
7753         */
7754        PRINT, 
7755        /**
7756         * Print the note for the operator.
7757         */
7758        PRINTOPER, 
7759        /**
7760         * added to help the parsers
7761         */
7762        NULL;
7763        public static NoteType fromCode(String codeString) throws FHIRException {
7764            if (codeString == null || "".equals(codeString))
7765                return null;
7766        if ("display".equals(codeString))
7767          return DISPLAY;
7768        if ("print".equals(codeString))
7769          return PRINT;
7770        if ("printoper".equals(codeString))
7771          return PRINTOPER;
7772        throw new FHIRException("Unknown NoteType code '"+codeString+"'");
7773        }
7774        public String toCode() {
7775          switch (this) {
7776            case DISPLAY: return "display";
7777            case PRINT: return "print";
7778            case PRINTOPER: return "printoper";
7779            case NULL: return null;
7780            default: return "?";
7781          }
7782        }
7783        public String getSystem() {
7784          switch (this) {
7785            case DISPLAY: return "http://hl7.org/fhir/note-type";
7786            case PRINT: return "http://hl7.org/fhir/note-type";
7787            case PRINTOPER: return "http://hl7.org/fhir/note-type";
7788            case NULL: return null;
7789            default: return "?";
7790          }
7791        }
7792        public String getDefinition() {
7793          switch (this) {
7794            case DISPLAY: return "Display the note.";
7795            case PRINT: return "Print the note on the form.";
7796            case PRINTOPER: return "Print the note for the operator.";
7797            case NULL: return null;
7798            default: return "?";
7799          }
7800        }
7801        public String getDisplay() {
7802          switch (this) {
7803            case DISPLAY: return "Display";
7804            case PRINT: return "Print (Form)";
7805            case PRINTOPER: return "Print (Operator)";
7806            case NULL: return null;
7807            default: return "?";
7808          }
7809        }
7810    }
7811
7812  public static class NoteTypeEnumFactory implements EnumFactory<NoteType> {
7813    public NoteType fromCode(String codeString) throws IllegalArgumentException {
7814      if (codeString == null || "".equals(codeString))
7815            if (codeString == null || "".equals(codeString))
7816                return null;
7817        if ("display".equals(codeString))
7818          return NoteType.DISPLAY;
7819        if ("print".equals(codeString))
7820          return NoteType.PRINT;
7821        if ("printoper".equals(codeString))
7822          return NoteType.PRINTOPER;
7823        throw new IllegalArgumentException("Unknown NoteType code '"+codeString+"'");
7824        }
7825        public Enumeration<NoteType> fromType(Base code) throws FHIRException {
7826          if (code == null || code.isEmpty())
7827            return null;
7828          String codeString = ((PrimitiveType) code).asStringValue();
7829          if (codeString == null || "".equals(codeString))
7830            return null;
7831        if ("display".equals(codeString))
7832          return new Enumeration<NoteType>(this, NoteType.DISPLAY);
7833        if ("print".equals(codeString))
7834          return new Enumeration<NoteType>(this, NoteType.PRINT);
7835        if ("printoper".equals(codeString))
7836          return new Enumeration<NoteType>(this, NoteType.PRINTOPER);
7837        throw new FHIRException("Unknown NoteType code '"+codeString+"'");
7838        }
7839    public String toCode(NoteType code) {
7840      if (code == NoteType.DISPLAY)
7841        return "display";
7842      if (code == NoteType.PRINT)
7843        return "print";
7844      if (code == NoteType.PRINTOPER)
7845        return "printoper";
7846      return "?";
7847      }
7848    public String toSystem(NoteType code) {
7849      return code.getSystem();
7850      }
7851    }
7852
7853    public enum RemittanceOutcome {
7854        /**
7855         * The processing completed without errors.
7856         */
7857        COMPLETE, 
7858        /**
7859         * The processing identified errors.
7860         */
7861        ERROR, 
7862        /**
7863         * added to help the parsers
7864         */
7865        NULL;
7866        public static RemittanceOutcome fromCode(String codeString) throws FHIRException {
7867            if (codeString == null || "".equals(codeString))
7868                return null;
7869        if ("complete".equals(codeString))
7870          return COMPLETE;
7871        if ("error".equals(codeString))
7872          return ERROR;
7873        throw new FHIRException("Unknown RemittanceOutcome code '"+codeString+"'");
7874        }
7875        public String toCode() {
7876          switch (this) {
7877            case COMPLETE: return "complete";
7878            case ERROR: return "error";
7879            case NULL: return null;
7880            default: return "?";
7881          }
7882        }
7883        public String getSystem() {
7884          switch (this) {
7885            case COMPLETE: return "http://hl7.org/fhir/remittance-outcome";
7886            case ERROR: return "http://hl7.org/fhir/remittance-outcome";
7887            case NULL: return null;
7888            default: return "?";
7889          }
7890        }
7891        public String getDefinition() {
7892          switch (this) {
7893            case COMPLETE: return "The processing completed without errors.";
7894            case ERROR: return "The processing identified errors.";
7895            case NULL: return null;
7896            default: return "?";
7897          }
7898        }
7899        public String getDisplay() {
7900          switch (this) {
7901            case COMPLETE: return "Complete";
7902            case ERROR: return "Error";
7903            case NULL: return null;
7904            default: return "?";
7905          }
7906        }
7907    }
7908
7909  public static class RemittanceOutcomeEnumFactory implements EnumFactory<RemittanceOutcome> {
7910    public RemittanceOutcome fromCode(String codeString) throws IllegalArgumentException {
7911      if (codeString == null || "".equals(codeString))
7912            if (codeString == null || "".equals(codeString))
7913                return null;
7914        if ("complete".equals(codeString))
7915          return RemittanceOutcome.COMPLETE;
7916        if ("error".equals(codeString))
7917          return RemittanceOutcome.ERROR;
7918        throw new IllegalArgumentException("Unknown RemittanceOutcome code '"+codeString+"'");
7919        }
7920        public Enumeration<RemittanceOutcome> fromType(Base code) throws FHIRException {
7921          if (code == null || code.isEmpty())
7922            return null;
7923          String codeString = ((PrimitiveType) code).asStringValue();
7924          if (codeString == null || "".equals(codeString))
7925            return null;
7926        if ("complete".equals(codeString))
7927          return new Enumeration<RemittanceOutcome>(this, RemittanceOutcome.COMPLETE);
7928        if ("error".equals(codeString))
7929          return new Enumeration<RemittanceOutcome>(this, RemittanceOutcome.ERROR);
7930        throw new FHIRException("Unknown RemittanceOutcome code '"+codeString+"'");
7931        }
7932    public String toCode(RemittanceOutcome code) {
7933      if (code == RemittanceOutcome.COMPLETE)
7934        return "complete";
7935      if (code == RemittanceOutcome.ERROR)
7936        return "error";
7937      return "?";
7938      }
7939    public String toSystem(RemittanceOutcome code) {
7940      return code.getSystem();
7941      }
7942    }
7943
7944    public enum ResourceType {
7945        /**
7946         * A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centres, etc.
7947         */
7948        ACCOUNT, 
7949        /**
7950         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
7951         */
7952        ALLERGYINTOLERANCE, 
7953        /**
7954         * A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).
7955         */
7956        APPOINTMENT, 
7957        /**
7958         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
7959         */
7960        APPOINTMENTRESPONSE, 
7961        /**
7962         * A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.
7963         */
7964        AUDITEVENT, 
7965        /**
7966         * Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.
7967         */
7968        BASIC, 
7969        /**
7970         * A binary resource can contain any content, whether text, image, pdf, zip archive, etc.
7971         */
7972        BINARY, 
7973        /**
7974         * Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
7975         */
7976        BODYSITE, 
7977        /**
7978         * A container for a collection of resources.
7979         */
7980        BUNDLE, 
7981        /**
7982         * Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.
7983         */
7984        CAREPLAN, 
7985        /**
7986         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
7987         */
7988        CARETEAM, 
7989        /**
7990         * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
7991         */
7992        CLAIM, 
7993        /**
7994         * This resource provides the adjudication details from the processing of a Claim resource.
7995         */
7996        CLAIMRESPONSE, 
7997        /**
7998         * A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called "ClinicalImpression" rather than "ClinicalAssessment" to avoid confusion with the recording of assessment tools such as Apgar score.
7999         */
8000        CLINICALIMPRESSION, 
8001        /**
8002         * A code system resource specifies a set of codes drawn from one or more code systems.
8003         */
8004        CODESYSTEM, 
8005        /**
8006         * An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.
8007         */
8008        COMMUNICATION, 
8009        /**
8010         * A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.
8011         */
8012        COMMUNICATIONREQUEST, 
8013        /**
8014         * A compartment definition that defines how resources are accessed on a server.
8015         */
8016        COMPARTMENTDEFINITION, 
8017        /**
8018         * A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.
8019         */
8020        COMPOSITION, 
8021        /**
8022         * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.
8023         */
8024        CONCEPTMAP, 
8025        /**
8026         * Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a diagnosis during an encounter; populating a problem list or a summary statement, such as a discharge summary.
8027         */
8028        CONDITION, 
8029        /**
8030         * A conformance statement is a set of capabilities of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
8031         */
8032        CONFORMANCE, 
8033        /**
8034         * A formal agreement between parties regarding the conduct of business, exchange of information or other matters.
8035         */
8036        CONTRACT, 
8037        /**
8038         * Financial instrument which may be used to pay for or reimburse health care products and services.
8039         */
8040        COVERAGE, 
8041        /**
8042         * The formal description of a single piece of information that can be gathered and reported.
8043         */
8044        DATAELEMENT, 
8045        /**
8046         * This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.
8047         */
8048        DECISIONSUPPORTRULE, 
8049        /**
8050         * The DecisionSupportServiceModule describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.
8051         */
8052        DECISIONSUPPORTSERVICEMODULE, 
8053        /**
8054         * Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.
8055         */
8056        DETECTEDISSUE, 
8057        /**
8058         * This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.
8059         */
8060        DEVICE, 
8061        /**
8062         * Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.
8063         */
8064        DEVICECOMPONENT, 
8065        /**
8066         * Describes a measurement, calculation or setting capability of a medical device.
8067         */
8068        DEVICEMETRIC, 
8069        /**
8070         * Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker.
8071         */
8072        DEVICEUSEREQUEST, 
8073        /**
8074         * A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.
8075         */
8076        DEVICEUSESTATEMENT, 
8077        /**
8078         * A record of a request for a diagnostic investigation service to be performed.
8079         */
8080        DIAGNOSTICORDER, 
8081        /**
8082         * The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.
8083         */
8084        DIAGNOSTICREPORT, 
8085        /**
8086         * A manifest that defines a set of documents.
8087         */
8088        DOCUMENTMANIFEST, 
8089        /**
8090         * A reference to a document .
8091         */
8092        DOCUMENTREFERENCE, 
8093        /**
8094         * A resource that includes narrative, extensions, and contained resources.
8095         */
8096        DOMAINRESOURCE, 
8097        /**
8098         * This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service.
8099         */
8100        ELIGIBILITYREQUEST, 
8101        /**
8102         * This resource provides eligibility and plan details from the processing of an Eligibility resource.
8103         */
8104        ELIGIBILITYRESPONSE, 
8105        /**
8106         * An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.
8107         */
8108        ENCOUNTER, 
8109        /**
8110         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
8111         */
8112        ENROLLMENTREQUEST, 
8113        /**
8114         * This resource provides enrollment and plan details from the processing of an Enrollment resource.
8115         */
8116        ENROLLMENTRESPONSE, 
8117        /**
8118         * An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.
8119         */
8120        EPISODEOFCARE, 
8121        /**
8122         * Resource to define constraints on the Expansion of a FHIR ValueSet.
8123         */
8124        EXPANSIONPROFILE, 
8125        /**
8126         * This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.
8127         */
8128        EXPLANATIONOFBENEFIT, 
8129        /**
8130         * Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.
8131         */
8132        FAMILYMEMBERHISTORY, 
8133        /**
8134         * Prospective warnings of potential issues when providing care to the patient.
8135         */
8136        FLAG, 
8137        /**
8138         * Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.
8139         */
8140        GOAL, 
8141        /**
8142         * Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.
8143         */
8144        GROUP, 
8145        /**
8146         * A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.
8147         */
8148        GUIDANCERESPONSE, 
8149        /**
8150         * The details of a healthcare service available at a location.
8151         */
8152        HEALTHCARESERVICE, 
8153        /**
8154         * A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingExcerpt resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance ("cine" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
8155         */
8156        IMAGINGEXCERPT, 
8157        /**
8158         * A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance ("cine" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
8159         */
8160        IMAGINGOBJECTSELECTION, 
8161        /**
8162         * Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.
8163         */
8164        IMAGINGSTUDY, 
8165        /**
8166         * Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
8167         */
8168        IMMUNIZATION, 
8169        /**
8170         * A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.
8171         */
8172        IMMUNIZATIONRECOMMENDATION, 
8173        /**
8174         * A set of rules or how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole, and to publish a computable definition of all the parts.
8175         */
8176        IMPLEMENTATIONGUIDE, 
8177        /**
8178         * The Library resource provides a representation container for knowledge artifact component definitions. It is effectively an exposure of the header information for a CQL/ELM library.
8179         */
8180        LIBRARY, 
8181        /**
8182         * Identifies two or more records (resource instances) that are referring to the same real-world "occurrence".
8183         */
8184        LINKAGE, 
8185        /**
8186         * A set of information summarized from a list of other resources.
8187         */
8188        LIST, 
8189        /**
8190         * Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.
8191         */
8192        LOCATION, 
8193        /**
8194         * The Measure resource provides the definition of a quality measure.
8195         */
8196        MEASURE, 
8197        /**
8198         * The MeasureReport resource contains the results of evaluating a measure.
8199         */
8200        MEASUREREPORT, 
8201        /**
8202         * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
8203         */
8204        MEDIA, 
8205        /**
8206         * This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.
8207         */
8208        MEDICATION, 
8209        /**
8210         * Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.
8211         */
8212        MEDICATIONADMINISTRATION, 
8213        /**
8214         * Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.
8215         */
8216        MEDICATIONDISPENSE, 
8217        /**
8218         * An order for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationOrder" rather than "MedicationPrescription" to generalize the use across inpatient and outpatient settings as well as for care plans, etc.
8219         */
8220        MEDICATIONORDER, 
8221        /**
8222         * A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from e.g. the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains 
8223
8224The primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.
8225         */
8226        MEDICATIONSTATEMENT, 
8227        /**
8228         * The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.
8229         */
8230        MESSAGEHEADER, 
8231        /**
8232         * The ModuleDefinition resource defines the data requirements for a quality artifact.
8233         */
8234        MODULEDEFINITION, 
8235        /**
8236         * A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a "System" used within the Identifier and Coding data types.
8237         */
8238        NAMINGSYSTEM, 
8239        /**
8240         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
8241         */
8242        NUTRITIONORDER, 
8243        /**
8244         * Measurements and simple assertions made about a patient, device or other subject.
8245         */
8246        OBSERVATION, 
8247        /**
8248         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
8249         */
8250        OPERATIONDEFINITION, 
8251        /**
8252         * A collection of error, warning or information messages that result from a system action.
8253         */
8254        OPERATIONOUTCOME, 
8255        /**
8256         * A request to perform an action.
8257         */
8258        ORDER, 
8259        /**
8260         * A response to an order.
8261         */
8262        ORDERRESPONSE, 
8263        /**
8264         * This resource allows for the definition of an order set as a sharable, consumable, and executable artifact in support of clinical decision support.
8265         */
8266        ORDERSET, 
8267        /**
8268         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.
8269         */
8270        ORGANIZATION, 
8271        /**
8272         * This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.
8273         */
8274        PARAMETERS, 
8275        /**
8276         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
8277         */
8278        PATIENT, 
8279        /**
8280         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
8281         */
8282        PAYMENTNOTICE, 
8283        /**
8284         * This resource provides payment details and claim references supporting a bulk payment.
8285         */
8286        PAYMENTRECONCILIATION, 
8287        /**
8288         * Demographics and administrative information about a person independent of a specific health-related context.
8289         */
8290        PERSON, 
8291        /**
8292         * A person who is directly or indirectly involved in the provisioning of healthcare.
8293         */
8294        PRACTITIONER, 
8295        /**
8296         * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
8297         */
8298        PRACTITIONERROLE, 
8299        /**
8300         * An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.
8301         */
8302        PROCEDURE, 
8303        /**
8304         * A request for a procedure to be performed. May be a proposal or an order.
8305         */
8306        PROCEDUREREQUEST, 
8307        /**
8308         * This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.
8309         */
8310        PROCESSREQUEST, 
8311        /**
8312         * This resource provides processing status, errors and notes from the processing of a resource.
8313         */
8314        PROCESSRESPONSE, 
8315        /**
8316         * A definition of behaviors to be taken in particular circumstances, often including conditions, options and other decision points.
8317         */
8318        PROTOCOL, 
8319        /**
8320         * Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.
8321         */
8322        PROVENANCE, 
8323        /**
8324         * A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.
8325         */
8326        QUESTIONNAIRE, 
8327        /**
8328         * A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.
8329         */
8330        QUESTIONNAIRERESPONSE, 
8331        /**
8332         * Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.
8333         */
8334        REFERRALREQUEST, 
8335        /**
8336         * Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
8337         */
8338        RELATEDPERSON, 
8339        /**
8340         * This is the base resource type for everything.
8341         */
8342        RESOURCE, 
8343        /**
8344         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
8345         */
8346        RISKASSESSMENT, 
8347        /**
8348         * A container for slot(s) of time that may be available for booking appointments.
8349         */
8350        SCHEDULE, 
8351        /**
8352         * A search parameter that defines a named search item that can be used to search/filter on a resource.
8353         */
8354        SEARCHPARAMETER, 
8355        /**
8356         * Variation and Sequence data.
8357         */
8358        SEQUENCE, 
8359        /**
8360         * A slot of time on a schedule that may be available for booking appointments.
8361         */
8362        SLOT, 
8363        /**
8364         * A sample to be used for analysis.
8365         */
8366        SPECIMEN, 
8367        /**
8368         * A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types.
8369         */
8370        STRUCTUREDEFINITION, 
8371        /**
8372         * A Map of relationships between 2 structures that can be used to transform data.
8373         */
8374        STRUCTUREMAP, 
8375        /**
8376         * The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system is able to take an appropriate action.
8377         */
8378        SUBSCRIPTION, 
8379        /**
8380         * A homogeneous material with a definite composition.
8381         */
8382        SUBSTANCE, 
8383        /**
8384         * Record of delivery of what is supplied.
8385         */
8386        SUPPLYDELIVERY, 
8387        /**
8388         * A record of a request for a medication, substance or device used in the healthcare setting.
8389         */
8390        SUPPLYREQUEST, 
8391        /**
8392         * A task to be performed.
8393         */
8394        TASK, 
8395        /**
8396         * TestScript is a resource that specifies a suite of tests against a FHIR server implementation to determine compliance against the FHIR specification.
8397         */
8398        TESTSCRIPT, 
8399        /**
8400         * A value set specifies a set of codes drawn from one or more code systems.
8401         */
8402        VALUESET, 
8403        /**
8404         * An authorization for the supply of glasses and/or contact lenses to a patient.
8405         */
8406        VISIONPRESCRIPTION, 
8407        /**
8408         * added to help the parsers
8409         */
8410        NULL;
8411        public static ResourceType fromCode(String codeString) throws FHIRException {
8412            if (codeString == null || "".equals(codeString))
8413                return null;
8414        if ("Account".equals(codeString))
8415          return ACCOUNT;
8416        if ("AllergyIntolerance".equals(codeString))
8417          return ALLERGYINTOLERANCE;
8418        if ("Appointment".equals(codeString))
8419          return APPOINTMENT;
8420        if ("AppointmentResponse".equals(codeString))
8421          return APPOINTMENTRESPONSE;
8422        if ("AuditEvent".equals(codeString))
8423          return AUDITEVENT;
8424        if ("Basic".equals(codeString))
8425          return BASIC;
8426        if ("Binary".equals(codeString))
8427          return BINARY;
8428        if ("BodySite".equals(codeString))
8429          return BODYSITE;
8430        if ("Bundle".equals(codeString))
8431          return BUNDLE;
8432        if ("CarePlan".equals(codeString))
8433          return CAREPLAN;
8434        if ("CareTeam".equals(codeString))
8435          return CARETEAM;
8436        if ("Claim".equals(codeString))
8437          return CLAIM;
8438        if ("ClaimResponse".equals(codeString))
8439          return CLAIMRESPONSE;
8440        if ("ClinicalImpression".equals(codeString))
8441          return CLINICALIMPRESSION;
8442        if ("CodeSystem".equals(codeString))
8443          return CODESYSTEM;
8444        if ("Communication".equals(codeString))
8445          return COMMUNICATION;
8446        if ("CommunicationRequest".equals(codeString))
8447          return COMMUNICATIONREQUEST;
8448        if ("CompartmentDefinition".equals(codeString))
8449          return COMPARTMENTDEFINITION;
8450        if ("Composition".equals(codeString))
8451          return COMPOSITION;
8452        if ("ConceptMap".equals(codeString))
8453          return CONCEPTMAP;
8454        if ("Condition".equals(codeString))
8455          return CONDITION;
8456        if ("Conformance".equals(codeString))
8457          return CONFORMANCE;
8458        if ("Contract".equals(codeString))
8459          return CONTRACT;
8460        if ("Coverage".equals(codeString))
8461          return COVERAGE;
8462        if ("DataElement".equals(codeString))
8463          return DATAELEMENT;
8464        if ("DecisionSupportRule".equals(codeString))
8465          return DECISIONSUPPORTRULE;
8466        if ("DecisionSupportServiceModule".equals(codeString))
8467          return DECISIONSUPPORTSERVICEMODULE;
8468        if ("DetectedIssue".equals(codeString))
8469          return DETECTEDISSUE;
8470        if ("Device".equals(codeString))
8471          return DEVICE;
8472        if ("DeviceComponent".equals(codeString))
8473          return DEVICECOMPONENT;
8474        if ("DeviceMetric".equals(codeString))
8475          return DEVICEMETRIC;
8476        if ("DeviceUseRequest".equals(codeString))
8477          return DEVICEUSEREQUEST;
8478        if ("DeviceUseStatement".equals(codeString))
8479          return DEVICEUSESTATEMENT;
8480        if ("DiagnosticOrder".equals(codeString))
8481          return DIAGNOSTICORDER;
8482        if ("DiagnosticReport".equals(codeString))
8483          return DIAGNOSTICREPORT;
8484        if ("DocumentManifest".equals(codeString))
8485          return DOCUMENTMANIFEST;
8486        if ("DocumentReference".equals(codeString))
8487          return DOCUMENTREFERENCE;
8488        if ("DomainResource".equals(codeString))
8489          return DOMAINRESOURCE;
8490        if ("EligibilityRequest".equals(codeString))
8491          return ELIGIBILITYREQUEST;
8492        if ("EligibilityResponse".equals(codeString))
8493          return ELIGIBILITYRESPONSE;
8494        if ("Encounter".equals(codeString))
8495          return ENCOUNTER;
8496        if ("EnrollmentRequest".equals(codeString))
8497          return ENROLLMENTREQUEST;
8498        if ("EnrollmentResponse".equals(codeString))
8499          return ENROLLMENTRESPONSE;
8500        if ("EpisodeOfCare".equals(codeString))
8501          return EPISODEOFCARE;
8502        if ("ExpansionProfile".equals(codeString))
8503          return EXPANSIONPROFILE;
8504        if ("ExplanationOfBenefit".equals(codeString))
8505          return EXPLANATIONOFBENEFIT;
8506        if ("FamilyMemberHistory".equals(codeString))
8507          return FAMILYMEMBERHISTORY;
8508        if ("Flag".equals(codeString))
8509          return FLAG;
8510        if ("Goal".equals(codeString))
8511          return GOAL;
8512        if ("Group".equals(codeString))
8513          return GROUP;
8514        if ("GuidanceResponse".equals(codeString))
8515          return GUIDANCERESPONSE;
8516        if ("HealthcareService".equals(codeString))
8517          return HEALTHCARESERVICE;
8518        if ("ImagingExcerpt".equals(codeString))
8519          return IMAGINGEXCERPT;
8520        if ("ImagingObjectSelection".equals(codeString))
8521          return IMAGINGOBJECTSELECTION;
8522        if ("ImagingStudy".equals(codeString))
8523          return IMAGINGSTUDY;
8524        if ("Immunization".equals(codeString))
8525          return IMMUNIZATION;
8526        if ("ImmunizationRecommendation".equals(codeString))
8527          return IMMUNIZATIONRECOMMENDATION;
8528        if ("ImplementationGuide".equals(codeString))
8529          return IMPLEMENTATIONGUIDE;
8530        if ("Library".equals(codeString))
8531          return LIBRARY;
8532        if ("Linkage".equals(codeString))
8533          return LINKAGE;
8534        if ("List".equals(codeString))
8535          return LIST;
8536        if ("Location".equals(codeString))
8537          return LOCATION;
8538        if ("Measure".equals(codeString))
8539          return MEASURE;
8540        if ("MeasureReport".equals(codeString))
8541          return MEASUREREPORT;
8542        if ("Media".equals(codeString))
8543          return MEDIA;
8544        if ("Medication".equals(codeString))
8545          return MEDICATION;
8546        if ("MedicationAdministration".equals(codeString))
8547          return MEDICATIONADMINISTRATION;
8548        if ("MedicationDispense".equals(codeString))
8549          return MEDICATIONDISPENSE;
8550        if ("MedicationOrder".equals(codeString))
8551          return MEDICATIONORDER;
8552        if ("MedicationStatement".equals(codeString))
8553          return MEDICATIONSTATEMENT;
8554        if ("MessageHeader".equals(codeString))
8555          return MESSAGEHEADER;
8556        if ("ModuleDefinition".equals(codeString))
8557          return MODULEDEFINITION;
8558        if ("NamingSystem".equals(codeString))
8559          return NAMINGSYSTEM;
8560        if ("NutritionOrder".equals(codeString))
8561          return NUTRITIONORDER;
8562        if ("Observation".equals(codeString))
8563          return OBSERVATION;
8564        if ("OperationDefinition".equals(codeString))
8565          return OPERATIONDEFINITION;
8566        if ("OperationOutcome".equals(codeString))
8567          return OPERATIONOUTCOME;
8568        if ("Order".equals(codeString))
8569          return ORDER;
8570        if ("OrderResponse".equals(codeString))
8571          return ORDERRESPONSE;
8572        if ("OrderSet".equals(codeString))
8573          return ORDERSET;
8574        if ("Organization".equals(codeString))
8575          return ORGANIZATION;
8576        if ("Parameters".equals(codeString))
8577          return PARAMETERS;
8578        if ("Patient".equals(codeString))
8579          return PATIENT;
8580        if ("PaymentNotice".equals(codeString))
8581          return PAYMENTNOTICE;
8582        if ("PaymentReconciliation".equals(codeString))
8583          return PAYMENTRECONCILIATION;
8584        if ("Person".equals(codeString))
8585          return PERSON;
8586        if ("Practitioner".equals(codeString))
8587          return PRACTITIONER;
8588        if ("PractitionerRole".equals(codeString))
8589          return PRACTITIONERROLE;
8590        if ("Procedure".equals(codeString))
8591          return PROCEDURE;
8592        if ("ProcedureRequest".equals(codeString))
8593          return PROCEDUREREQUEST;
8594        if ("ProcessRequest".equals(codeString))
8595          return PROCESSREQUEST;
8596        if ("ProcessResponse".equals(codeString))
8597          return PROCESSRESPONSE;
8598        if ("Protocol".equals(codeString))
8599          return PROTOCOL;
8600        if ("Provenance".equals(codeString))
8601          return PROVENANCE;
8602        if ("Questionnaire".equals(codeString))
8603          return QUESTIONNAIRE;
8604        if ("QuestionnaireResponse".equals(codeString))
8605          return QUESTIONNAIRERESPONSE;
8606        if ("ReferralRequest".equals(codeString))
8607          return REFERRALREQUEST;
8608        if ("RelatedPerson".equals(codeString))
8609          return RELATEDPERSON;
8610        if ("Resource".equals(codeString))
8611          return RESOURCE;
8612        if ("RiskAssessment".equals(codeString))
8613          return RISKASSESSMENT;
8614        if ("Schedule".equals(codeString))
8615          return SCHEDULE;
8616        if ("SearchParameter".equals(codeString))
8617          return SEARCHPARAMETER;
8618        if ("Sequence".equals(codeString))
8619          return SEQUENCE;
8620        if ("Slot".equals(codeString))
8621          return SLOT;
8622        if ("Specimen".equals(codeString))
8623          return SPECIMEN;
8624        if ("StructureDefinition".equals(codeString))
8625          return STRUCTUREDEFINITION;
8626        if ("StructureMap".equals(codeString))
8627          return STRUCTUREMAP;
8628        if ("Subscription".equals(codeString))
8629          return SUBSCRIPTION;
8630        if ("Substance".equals(codeString))
8631          return SUBSTANCE;
8632        if ("SupplyDelivery".equals(codeString))
8633          return SUPPLYDELIVERY;
8634        if ("SupplyRequest".equals(codeString))
8635          return SUPPLYREQUEST;
8636        if ("Task".equals(codeString))
8637          return TASK;
8638        if ("TestScript".equals(codeString))
8639          return TESTSCRIPT;
8640        if ("ValueSet".equals(codeString))
8641          return VALUESET;
8642        if ("VisionPrescription".equals(codeString))
8643          return VISIONPRESCRIPTION;
8644        throw new FHIRException("Unknown ResourceType code '"+codeString+"'");
8645        }
8646        public String toCode() {
8647          switch (this) {
8648            case ACCOUNT: return "Account";
8649            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
8650            case APPOINTMENT: return "Appointment";
8651            case APPOINTMENTRESPONSE: return "AppointmentResponse";
8652            case AUDITEVENT: return "AuditEvent";
8653            case BASIC: return "Basic";
8654            case BINARY: return "Binary";
8655            case BODYSITE: return "BodySite";
8656            case BUNDLE: return "Bundle";
8657            case CAREPLAN: return "CarePlan";
8658            case CARETEAM: return "CareTeam";
8659            case CLAIM: return "Claim";
8660            case CLAIMRESPONSE: return "ClaimResponse";
8661            case CLINICALIMPRESSION: return "ClinicalImpression";
8662            case CODESYSTEM: return "CodeSystem";
8663            case COMMUNICATION: return "Communication";
8664            case COMMUNICATIONREQUEST: return "CommunicationRequest";
8665            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
8666            case COMPOSITION: return "Composition";
8667            case CONCEPTMAP: return "ConceptMap";
8668            case CONDITION: return "Condition";
8669            case CONFORMANCE: return "Conformance";
8670            case CONTRACT: return "Contract";
8671            case COVERAGE: return "Coverage";
8672            case DATAELEMENT: return "DataElement";
8673            case DECISIONSUPPORTRULE: return "DecisionSupportRule";
8674            case DECISIONSUPPORTSERVICEMODULE: return "DecisionSupportServiceModule";
8675            case DETECTEDISSUE: return "DetectedIssue";
8676            case DEVICE: return "Device";
8677            case DEVICECOMPONENT: return "DeviceComponent";
8678            case DEVICEMETRIC: return "DeviceMetric";
8679            case DEVICEUSEREQUEST: return "DeviceUseRequest";
8680            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
8681            case DIAGNOSTICORDER: return "DiagnosticOrder";
8682            case DIAGNOSTICREPORT: return "DiagnosticReport";
8683            case DOCUMENTMANIFEST: return "DocumentManifest";
8684            case DOCUMENTREFERENCE: return "DocumentReference";
8685            case DOMAINRESOURCE: return "DomainResource";
8686            case ELIGIBILITYREQUEST: return "EligibilityRequest";
8687            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
8688            case ENCOUNTER: return "Encounter";
8689            case ENROLLMENTREQUEST: return "EnrollmentRequest";
8690            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
8691            case EPISODEOFCARE: return "EpisodeOfCare";
8692            case EXPANSIONPROFILE: return "ExpansionProfile";
8693            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
8694            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
8695            case FLAG: return "Flag";
8696            case GOAL: return "Goal";
8697            case GROUP: return "Group";
8698            case GUIDANCERESPONSE: return "GuidanceResponse";
8699            case HEALTHCARESERVICE: return "HealthcareService";
8700            case IMAGINGEXCERPT: return "ImagingExcerpt";
8701            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
8702            case IMAGINGSTUDY: return "ImagingStudy";
8703            case IMMUNIZATION: return "Immunization";
8704            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
8705            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
8706            case LIBRARY: return "Library";
8707            case LINKAGE: return "Linkage";
8708            case LIST: return "List";
8709            case LOCATION: return "Location";
8710            case MEASURE: return "Measure";
8711            case MEASUREREPORT: return "MeasureReport";
8712            case MEDIA: return "Media";
8713            case MEDICATION: return "Medication";
8714            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
8715            case MEDICATIONDISPENSE: return "MedicationDispense";
8716            case MEDICATIONORDER: return "MedicationOrder";
8717            case MEDICATIONSTATEMENT: return "MedicationStatement";
8718            case MESSAGEHEADER: return "MessageHeader";
8719            case MODULEDEFINITION: return "ModuleDefinition";
8720            case NAMINGSYSTEM: return "NamingSystem";
8721            case NUTRITIONORDER: return "NutritionOrder";
8722            case OBSERVATION: return "Observation";
8723            case OPERATIONDEFINITION: return "OperationDefinition";
8724            case OPERATIONOUTCOME: return "OperationOutcome";
8725            case ORDER: return "Order";
8726            case ORDERRESPONSE: return "OrderResponse";
8727            case ORDERSET: return "OrderSet";
8728            case ORGANIZATION: return "Organization";
8729            case PARAMETERS: return "Parameters";
8730            case PATIENT: return "Patient";
8731            case PAYMENTNOTICE: return "PaymentNotice";
8732            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
8733            case PERSON: return "Person";
8734            case PRACTITIONER: return "Practitioner";
8735            case PRACTITIONERROLE: return "PractitionerRole";
8736            case PROCEDURE: return "Procedure";
8737            case PROCEDUREREQUEST: return "ProcedureRequest";
8738            case PROCESSREQUEST: return "ProcessRequest";
8739            case PROCESSRESPONSE: return "ProcessResponse";
8740            case PROTOCOL: return "Protocol";
8741            case PROVENANCE: return "Provenance";
8742            case QUESTIONNAIRE: return "Questionnaire";
8743            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
8744            case REFERRALREQUEST: return "ReferralRequest";
8745            case RELATEDPERSON: return "RelatedPerson";
8746            case RESOURCE: return "Resource";
8747            case RISKASSESSMENT: return "RiskAssessment";
8748            case SCHEDULE: return "Schedule";
8749            case SEARCHPARAMETER: return "SearchParameter";
8750            case SEQUENCE: return "Sequence";
8751            case SLOT: return "Slot";
8752            case SPECIMEN: return "Specimen";
8753            case STRUCTUREDEFINITION: return "StructureDefinition";
8754            case STRUCTUREMAP: return "StructureMap";
8755            case SUBSCRIPTION: return "Subscription";
8756            case SUBSTANCE: return "Substance";
8757            case SUPPLYDELIVERY: return "SupplyDelivery";
8758            case SUPPLYREQUEST: return "SupplyRequest";
8759            case TASK: return "Task";
8760            case TESTSCRIPT: return "TestScript";
8761            case VALUESET: return "ValueSet";
8762            case VISIONPRESCRIPTION: return "VisionPrescription";
8763            case NULL: return null;
8764            default: return "?";
8765          }
8766        }
8767        public String getSystem() {
8768          switch (this) {
8769            case ACCOUNT: return "http://hl7.org/fhir/resource-types";
8770            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/resource-types";
8771            case APPOINTMENT: return "http://hl7.org/fhir/resource-types";
8772            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
8773            case AUDITEVENT: return "http://hl7.org/fhir/resource-types";
8774            case BASIC: return "http://hl7.org/fhir/resource-types";
8775            case BINARY: return "http://hl7.org/fhir/resource-types";
8776            case BODYSITE: return "http://hl7.org/fhir/resource-types";
8777            case BUNDLE: return "http://hl7.org/fhir/resource-types";
8778            case CAREPLAN: return "http://hl7.org/fhir/resource-types";
8779            case CARETEAM: return "http://hl7.org/fhir/resource-types";
8780            case CLAIM: return "http://hl7.org/fhir/resource-types";
8781            case CLAIMRESPONSE: return "http://hl7.org/fhir/resource-types";
8782            case CLINICALIMPRESSION: return "http://hl7.org/fhir/resource-types";
8783            case CODESYSTEM: return "http://hl7.org/fhir/resource-types";
8784            case COMMUNICATION: return "http://hl7.org/fhir/resource-types";
8785            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
8786            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/resource-types";
8787            case COMPOSITION: return "http://hl7.org/fhir/resource-types";
8788            case CONCEPTMAP: return "http://hl7.org/fhir/resource-types";
8789            case CONDITION: return "http://hl7.org/fhir/resource-types";
8790            case CONFORMANCE: return "http://hl7.org/fhir/resource-types";
8791            case CONTRACT: return "http://hl7.org/fhir/resource-types";
8792            case COVERAGE: return "http://hl7.org/fhir/resource-types";
8793            case DATAELEMENT: return "http://hl7.org/fhir/resource-types";
8794            case DECISIONSUPPORTRULE: return "http://hl7.org/fhir/resource-types";
8795            case DECISIONSUPPORTSERVICEMODULE: return "http://hl7.org/fhir/resource-types";
8796            case DETECTEDISSUE: return "http://hl7.org/fhir/resource-types";
8797            case DEVICE: return "http://hl7.org/fhir/resource-types";
8798            case DEVICECOMPONENT: return "http://hl7.org/fhir/resource-types";
8799            case DEVICEMETRIC: return "http://hl7.org/fhir/resource-types";
8800            case DEVICEUSEREQUEST: return "http://hl7.org/fhir/resource-types";
8801            case DEVICEUSESTATEMENT: return "http://hl7.org/fhir/resource-types";
8802            case DIAGNOSTICORDER: return "http://hl7.org/fhir/resource-types";
8803            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/resource-types";
8804            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/resource-types";
8805            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/resource-types";
8806            case DOMAINRESOURCE: return "http://hl7.org/fhir/resource-types";
8807            case ELIGIBILITYREQUEST: return "http://hl7.org/fhir/resource-types";
8808            case ELIGIBILITYRESPONSE: return "http://hl7.org/fhir/resource-types";
8809            case ENCOUNTER: return "http://hl7.org/fhir/resource-types";
8810            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/resource-types";
8811            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
8812            case EPISODEOFCARE: return "http://hl7.org/fhir/resource-types";
8813            case EXPANSIONPROFILE: return "http://hl7.org/fhir/resource-types";
8814            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/resource-types";
8815            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/resource-types";
8816            case FLAG: return "http://hl7.org/fhir/resource-types";
8817            case GOAL: return "http://hl7.org/fhir/resource-types";
8818            case GROUP: return "http://hl7.org/fhir/resource-types";
8819            case GUIDANCERESPONSE: return "http://hl7.org/fhir/resource-types";
8820            case HEALTHCARESERVICE: return "http://hl7.org/fhir/resource-types";
8821            case IMAGINGEXCERPT: return "http://hl7.org/fhir/resource-types";
8822            case IMAGINGOBJECTSELECTION: return "http://hl7.org/fhir/resource-types";
8823            case IMAGINGSTUDY: return "http://hl7.org/fhir/resource-types";
8824            case IMMUNIZATION: return "http://hl7.org/fhir/resource-types";
8825            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/resource-types";
8826            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/resource-types";
8827            case LIBRARY: return "http://hl7.org/fhir/resource-types";
8828            case LINKAGE: return "http://hl7.org/fhir/resource-types";
8829            case LIST: return "http://hl7.org/fhir/resource-types";
8830            case LOCATION: return "http://hl7.org/fhir/resource-types";
8831            case MEASURE: return "http://hl7.org/fhir/resource-types";
8832            case MEASUREREPORT: return "http://hl7.org/fhir/resource-types";
8833            case MEDIA: return "http://hl7.org/fhir/resource-types";
8834            case MEDICATION: return "http://hl7.org/fhir/resource-types";
8835            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/resource-types";
8836            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/resource-types";
8837            case MEDICATIONORDER: return "http://hl7.org/fhir/resource-types";
8838            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/resource-types";
8839            case MESSAGEHEADER: return "http://hl7.org/fhir/resource-types";
8840            case MODULEDEFINITION: return "http://hl7.org/fhir/resource-types";
8841            case NAMINGSYSTEM: return "http://hl7.org/fhir/resource-types";
8842            case NUTRITIONORDER: return "http://hl7.org/fhir/resource-types";
8843            case OBSERVATION: return "http://hl7.org/fhir/resource-types";
8844            case OPERATIONDEFINITION: return "http://hl7.org/fhir/resource-types";
8845            case OPERATIONOUTCOME: return "http://hl7.org/fhir/resource-types";
8846            case ORDER: return "http://hl7.org/fhir/resource-types";
8847            case ORDERRESPONSE: return "http://hl7.org/fhir/resource-types";
8848            case ORDERSET: return "http://hl7.org/fhir/resource-types";
8849            case ORGANIZATION: return "http://hl7.org/fhir/resource-types";
8850            case PARAMETERS: return "http://hl7.org/fhir/resource-types";
8851            case PATIENT: return "http://hl7.org/fhir/resource-types";
8852            case PAYMENTNOTICE: return "http://hl7.org/fhir/resource-types";
8853            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/resource-types";
8854            case PERSON: return "http://hl7.org/fhir/resource-types";
8855            case PRACTITIONER: return "http://hl7.org/fhir/resource-types";
8856            case PRACTITIONERROLE: return "http://hl7.org/fhir/resource-types";
8857            case PROCEDURE: return "http://hl7.org/fhir/resource-types";
8858            case PROCEDUREREQUEST: return "http://hl7.org/fhir/resource-types";
8859            case PROCESSREQUEST: return "http://hl7.org/fhir/resource-types";
8860            case PROCESSRESPONSE: return "http://hl7.org/fhir/resource-types";
8861            case PROTOCOL: return "http://hl7.org/fhir/resource-types";
8862            case PROVENANCE: return "http://hl7.org/fhir/resource-types";
8863            case QUESTIONNAIRE: return "http://hl7.org/fhir/resource-types";
8864            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/resource-types";
8865            case REFERRALREQUEST: return "http://hl7.org/fhir/resource-types";
8866            case RELATEDPERSON: return "http://hl7.org/fhir/resource-types";
8867            case RESOURCE: return "http://hl7.org/fhir/resource-types";
8868            case RISKASSESSMENT: return "http://hl7.org/fhir/resource-types";
8869            case SCHEDULE: return "http://hl7.org/fhir/resource-types";
8870            case SEARCHPARAMETER: return "http://hl7.org/fhir/resource-types";
8871            case SEQUENCE: return "http://hl7.org/fhir/resource-types";
8872            case SLOT: return "http://hl7.org/fhir/resource-types";
8873            case SPECIMEN: return "http://hl7.org/fhir/resource-types";
8874            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/resource-types";
8875            case STRUCTUREMAP: return "http://hl7.org/fhir/resource-types";
8876            case SUBSCRIPTION: return "http://hl7.org/fhir/resource-types";
8877            case SUBSTANCE: return "http://hl7.org/fhir/resource-types";
8878            case SUPPLYDELIVERY: return "http://hl7.org/fhir/resource-types";
8879            case SUPPLYREQUEST: return "http://hl7.org/fhir/resource-types";
8880            case TASK: return "http://hl7.org/fhir/resource-types";
8881            case TESTSCRIPT: return "http://hl7.org/fhir/resource-types";
8882            case VALUESET: return "http://hl7.org/fhir/resource-types";
8883            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/resource-types";
8884            case NULL: return null;
8885            default: return "?";
8886          }
8887        }
8888        public String getDefinition() {
8889          switch (this) {
8890            case ACCOUNT: return "A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centres, etc.";
8891            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
8892            case APPOINTMENT: return "A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).";
8893            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
8894            case AUDITEVENT: return "A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.";
8895            case BASIC: return "Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.";
8896            case BINARY: return "A binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
8897            case BODYSITE: return "Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
8898            case BUNDLE: return "A container for a collection of resources.";
8899            case CAREPLAN: return "Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.";
8900            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.";
8901            case CLAIM: return "A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.";
8902            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
8903            case CLINICALIMPRESSION: return "A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score.";
8904            case CODESYSTEM: return "A code system resource specifies a set of codes drawn from one or more code systems.";
8905            case COMMUNICATION: return "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.";
8906            case COMMUNICATIONREQUEST: return "A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.";
8907            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
8908            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.";
8909            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.";
8910            case CONDITION: return "Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a diagnosis during an encounter; populating a problem list or a summary statement, such as a discharge summary.";
8911            case CONFORMANCE: return "A conformance statement is a set of capabilities of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
8912            case CONTRACT: return "A formal agreement between parties regarding the conduct of business, exchange of information or other matters.";
8913            case COVERAGE: return "Financial instrument which may be used to pay for or reimburse health care products and services.";
8914            case DATAELEMENT: return "The formal description of a single piece of information that can be gathered and reported.";
8915            case DECISIONSUPPORTRULE: return "This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.";
8916            case DECISIONSUPPORTSERVICEMODULE: return "The DecisionSupportServiceModule describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.";
8917            case DETECTEDISSUE: return "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.";
8918            case DEVICE: return "This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.";
8919            case DEVICECOMPONENT: return "Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.";
8920            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
8921            case DEVICEUSEREQUEST: return "Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker.";
8922            case DEVICEUSESTATEMENT: return "A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.";
8923            case DIAGNOSTICORDER: return "A record of a request for a diagnostic investigation service to be performed.";
8924            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.";
8925            case DOCUMENTMANIFEST: return "A manifest that defines a set of documents.";
8926            case DOCUMENTREFERENCE: return "A reference to a document .";
8927            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
8928            case ELIGIBILITYREQUEST: return "This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service.";
8929            case ELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an Eligibility resource.";
8930            case ENCOUNTER: return "An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.";
8931            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
8932            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an Enrollment resource.";
8933            case EPISODEOFCARE: return "An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.";
8934            case EXPANSIONPROFILE: return "Resource to define constraints on the Expansion of a FHIR ValueSet.";
8935            case EXPLANATIONOFBENEFIT: return "This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.";
8936            case FAMILYMEMBERHISTORY: return "Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.";
8937            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
8938            case GOAL: return "Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.";
8939            case GROUP: return "Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.";
8940            case GUIDANCERESPONSE: return "A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.";
8941            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location.";
8942            case IMAGINGEXCERPT: return "A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingExcerpt resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance (\"cine\" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.";
8943            case IMAGINGOBJECTSELECTION: return "A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances).  The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance (\"cine\" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.";
8944            case IMAGINGSTUDY: return "Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.";
8945            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.";
8946            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.";
8947            case IMPLEMENTATIONGUIDE: return "A set of rules or how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole, and to publish a computable definition of all the parts.";
8948            case LIBRARY: return "The Library resource provides a representation container for knowledge artifact component definitions. It is effectively an exposure of the header information for a CQL/ELM library.";
8949            case LINKAGE: return "Identifies two or more records (resource instances) that are referring to the same real-world \"occurrence\".";
8950            case LIST: return "A set of information summarized from a list of other resources.";
8951            case LOCATION: return "Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.";
8952            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
8953            case MEASUREREPORT: return "The MeasureReport resource contains the results of evaluating a measure.";
8954            case MEDIA: return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
8955            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.";
8956            case MEDICATIONADMINISTRATION: return "Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.";
8957            case MEDICATIONDISPENSE: return "Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.";
8958            case MEDICATIONORDER: return "An order for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called \"MedicationOrder\" rather than \"MedicationPrescription\" to generalize the use across inpatient and outpatient settings as well as for care plans, etc.";
8959            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from e.g. the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains \r\rThe primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
8960            case MESSAGEHEADER: return "The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.";
8961            case MODULEDEFINITION: return "The ModuleDefinition resource defines the data requirements for a quality artifact.";
8962            case NAMINGSYSTEM: return "A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a \"System\" used within the Identifier and Coding data types.";
8963            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
8964            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
8965            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
8966            case OPERATIONOUTCOME: return "A collection of error, warning or information messages that result from a system action.";
8967            case ORDER: return "A request to perform an action.";
8968            case ORDERRESPONSE: return "A response to an order.";
8969            case ORDERSET: return "This resource allows for the definition of an order set as a sharable, consumable, and executable artifact in support of clinical decision support.";
8970            case ORGANIZATION: return "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.";
8971            case PARAMETERS: return "This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.";
8972            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
8973            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
8974            case PAYMENTRECONCILIATION: return "This resource provides payment details and claim references supporting a bulk payment.";
8975            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
8976            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare.";
8977            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.";
8978            case PROCEDURE: return "An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.";
8979            case PROCEDUREREQUEST: return "A request for a procedure to be performed. May be a proposal or an order.";
8980            case PROCESSREQUEST: return "This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.";
8981            case PROCESSRESPONSE: return "This resource provides processing status, errors and notes from the processing of a resource.";
8982            case PROTOCOL: return "A definition of behaviors to be taken in particular circumstances, often including conditions, options and other decision points.";
8983            case PROVENANCE: return "Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.";
8984            case QUESTIONNAIRE: return "A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.";
8985            case QUESTIONNAIRERESPONSE: return "A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.";
8986            case REFERRALREQUEST: return "Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.";
8987            case RELATEDPERSON: return "Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
8988            case RESOURCE: return "This is the base resource type for everything.";
8989            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
8990            case SCHEDULE: return "A container for slot(s) of time that may be available for booking appointments.";
8991            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
8992            case SEQUENCE: return "Variation and Sequence data.";
8993            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
8994            case SPECIMEN: return "A sample to be used for analysis.";
8995            case STRUCTUREDEFINITION: return "A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types.";
8996            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
8997            case SUBSCRIPTION: return "The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system is able to take an appropriate action.";
8998            case SUBSTANCE: return "A homogeneous material with a definite composition.";
8999            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
9000            case SUPPLYREQUEST: return "A record of a request for a medication, substance or device used in the healthcare setting.";
9001            case TASK: return "A task to be performed.";
9002            case TESTSCRIPT: return "TestScript is a resource that specifies a suite of tests against a FHIR server implementation to determine compliance against the FHIR specification.";
9003            case VALUESET: return "A value set specifies a set of codes drawn from one or more code systems.";
9004            case VISIONPRESCRIPTION: return "An authorization for the supply of glasses and/or contact lenses to a patient.";
9005            case NULL: return null;
9006            default: return "?";
9007          }
9008        }
9009        public String getDisplay() {
9010          switch (this) {
9011            case ACCOUNT: return "Account";
9012            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
9013            case APPOINTMENT: return "Appointment";
9014            case APPOINTMENTRESPONSE: return "AppointmentResponse";
9015            case AUDITEVENT: return "AuditEvent";
9016            case BASIC: return "Basic";
9017            case BINARY: return "Binary";
9018            case BODYSITE: return "BodySite";
9019            case BUNDLE: return "Bundle";
9020            case CAREPLAN: return "CarePlan";
9021            case CARETEAM: return "CareTeam";
9022            case CLAIM: return "Claim";
9023            case CLAIMRESPONSE: return "ClaimResponse";
9024            case CLINICALIMPRESSION: return "ClinicalImpression";
9025            case CODESYSTEM: return "CodeSystem";
9026            case COMMUNICATION: return "Communication";
9027            case COMMUNICATIONREQUEST: return "CommunicationRequest";
9028            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
9029            case COMPOSITION: return "Composition";
9030            case CONCEPTMAP: return "ConceptMap";
9031            case CONDITION: return "Condition";
9032            case CONFORMANCE: return "Conformance";
9033            case CONTRACT: return "Contract";
9034            case COVERAGE: return "Coverage";
9035            case DATAELEMENT: return "DataElement";
9036            case DECISIONSUPPORTRULE: return "DecisionSupportRule";
9037            case DECISIONSUPPORTSERVICEMODULE: return "DecisionSupportServiceModule";
9038            case DETECTEDISSUE: return "DetectedIssue";
9039            case DEVICE: return "Device";
9040            case DEVICECOMPONENT: return "DeviceComponent";
9041            case DEVICEMETRIC: return "DeviceMetric";
9042            case DEVICEUSEREQUEST: return "DeviceUseRequest";
9043            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
9044            case DIAGNOSTICORDER: return "DiagnosticOrder";
9045            case DIAGNOSTICREPORT: return "DiagnosticReport";
9046            case DOCUMENTMANIFEST: return "DocumentManifest";
9047            case DOCUMENTREFERENCE: return "DocumentReference";
9048            case DOMAINRESOURCE: return "DomainResource";
9049            case ELIGIBILITYREQUEST: return "EligibilityRequest";
9050            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
9051            case ENCOUNTER: return "Encounter";
9052            case ENROLLMENTREQUEST: return "EnrollmentRequest";
9053            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
9054            case EPISODEOFCARE: return "EpisodeOfCare";
9055            case EXPANSIONPROFILE: return "ExpansionProfile";
9056            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
9057            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
9058            case FLAG: return "Flag";
9059            case GOAL: return "Goal";
9060            case GROUP: return "Group";
9061            case GUIDANCERESPONSE: return "GuidanceResponse";
9062            case HEALTHCARESERVICE: return "HealthcareService";
9063            case IMAGINGEXCERPT: return "ImagingExcerpt";
9064            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
9065            case IMAGINGSTUDY: return "ImagingStudy";
9066            case IMMUNIZATION: return "Immunization";
9067            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
9068            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
9069            case LIBRARY: return "Library";
9070            case LINKAGE: return "Linkage";
9071            case LIST: return "List";
9072            case LOCATION: return "Location";
9073            case MEASURE: return "Measure";
9074            case MEASUREREPORT: return "MeasureReport";
9075            case MEDIA: return "Media";
9076            case MEDICATION: return "Medication";
9077            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
9078            case MEDICATIONDISPENSE: return "MedicationDispense";
9079            case MEDICATIONORDER: return "MedicationOrder";
9080            case MEDICATIONSTATEMENT: return "MedicationStatement";
9081            case MESSAGEHEADER: return "MessageHeader";
9082            case MODULEDEFINITION: return "ModuleDefinition";
9083            case NAMINGSYSTEM: return "NamingSystem";
9084            case NUTRITIONORDER: return "NutritionOrder";
9085            case OBSERVATION: return "Observation";
9086            case OPERATIONDEFINITION: return "OperationDefinition";
9087            case OPERATIONOUTCOME: return "OperationOutcome";
9088            case ORDER: return "Order";
9089            case ORDERRESPONSE: return "OrderResponse";
9090            case ORDERSET: return "OrderSet";
9091            case ORGANIZATION: return "Organization";
9092            case PARAMETERS: return "Parameters";
9093            case PATIENT: return "Patient";
9094            case PAYMENTNOTICE: return "PaymentNotice";
9095            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
9096            case PERSON: return "Person";
9097            case PRACTITIONER: return "Practitioner";
9098            case PRACTITIONERROLE: return "PractitionerRole";
9099            case PROCEDURE: return "Procedure";
9100            case PROCEDUREREQUEST: return "ProcedureRequest";
9101            case PROCESSREQUEST: return "ProcessRequest";
9102            case PROCESSRESPONSE: return "ProcessResponse";
9103            case PROTOCOL: return "Protocol";
9104            case PROVENANCE: return "Provenance";
9105            case QUESTIONNAIRE: return "Questionnaire";
9106            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
9107            case REFERRALREQUEST: return "ReferralRequest";
9108            case RELATEDPERSON: return "RelatedPerson";
9109            case RESOURCE: return "Resource";
9110            case RISKASSESSMENT: return "RiskAssessment";
9111            case SCHEDULE: return "Schedule";
9112            case SEARCHPARAMETER: return "SearchParameter";
9113            case SEQUENCE: return "Sequence";
9114            case SLOT: return "Slot";
9115            case SPECIMEN: return "Specimen";
9116            case STRUCTUREDEFINITION: return "StructureDefinition";
9117            case STRUCTUREMAP: return "StructureMap";
9118            case SUBSCRIPTION: return "Subscription";
9119            case SUBSTANCE: return "Substance";
9120            case SUPPLYDELIVERY: return "SupplyDelivery";
9121            case SUPPLYREQUEST: return "SupplyRequest";
9122            case TASK: return "Task";
9123            case TESTSCRIPT: return "TestScript";
9124            case VALUESET: return "ValueSet";
9125            case VISIONPRESCRIPTION: return "VisionPrescription";
9126            case NULL: return null;
9127            default: return "?";
9128          }
9129        }
9130    }
9131
9132  public static class ResourceTypeEnumFactory implements EnumFactory<ResourceType> {
9133    public ResourceType fromCode(String codeString) throws IllegalArgumentException {
9134      if (codeString == null || "".equals(codeString))
9135            if (codeString == null || "".equals(codeString))
9136                return null;
9137        if ("Account".equals(codeString))
9138          return ResourceType.ACCOUNT;
9139        if ("AllergyIntolerance".equals(codeString))
9140          return ResourceType.ALLERGYINTOLERANCE;
9141        if ("Appointment".equals(codeString))
9142          return ResourceType.APPOINTMENT;
9143        if ("AppointmentResponse".equals(codeString))
9144          return ResourceType.APPOINTMENTRESPONSE;
9145        if ("AuditEvent".equals(codeString))
9146          return ResourceType.AUDITEVENT;
9147        if ("Basic".equals(codeString))
9148          return ResourceType.BASIC;
9149        if ("Binary".equals(codeString))
9150          return ResourceType.BINARY;
9151        if ("BodySite".equals(codeString))
9152          return ResourceType.BODYSITE;
9153        if ("Bundle".equals(codeString))
9154          return ResourceType.BUNDLE;
9155        if ("CarePlan".equals(codeString))
9156          return ResourceType.CAREPLAN;
9157        if ("CareTeam".equals(codeString))
9158          return ResourceType.CARETEAM;
9159        if ("Claim".equals(codeString))
9160          return ResourceType.CLAIM;
9161        if ("ClaimResponse".equals(codeString))
9162          return ResourceType.CLAIMRESPONSE;
9163        if ("ClinicalImpression".equals(codeString))
9164          return ResourceType.CLINICALIMPRESSION;
9165        if ("CodeSystem".equals(codeString))
9166          return ResourceType.CODESYSTEM;
9167        if ("Communication".equals(codeString))
9168          return ResourceType.COMMUNICATION;
9169        if ("CommunicationRequest".equals(codeString))
9170          return ResourceType.COMMUNICATIONREQUEST;
9171        if ("CompartmentDefinition".equals(codeString))
9172          return ResourceType.COMPARTMENTDEFINITION;
9173        if ("Composition".equals(codeString))
9174          return ResourceType.COMPOSITION;
9175        if ("ConceptMap".equals(codeString))
9176          return ResourceType.CONCEPTMAP;
9177        if ("Condition".equals(codeString))
9178          return ResourceType.CONDITION;
9179        if ("Conformance".equals(codeString))
9180          return ResourceType.CONFORMANCE;
9181        if ("Contract".equals(codeString))
9182          return ResourceType.CONTRACT;
9183        if ("Coverage".equals(codeString))
9184          return ResourceType.COVERAGE;
9185        if ("DataElement".equals(codeString))
9186          return ResourceType.DATAELEMENT;
9187        if ("DecisionSupportRule".equals(codeString))
9188          return ResourceType.DECISIONSUPPORTRULE;
9189        if ("DecisionSupportServiceModule".equals(codeString))
9190          return ResourceType.DECISIONSUPPORTSERVICEMODULE;
9191        if ("DetectedIssue".equals(codeString))
9192          return ResourceType.DETECTEDISSUE;
9193        if ("Device".equals(codeString))
9194          return ResourceType.DEVICE;
9195        if ("DeviceComponent".equals(codeString))
9196          return ResourceType.DEVICECOMPONENT;
9197        if ("DeviceMetric".equals(codeString))
9198          return ResourceType.DEVICEMETRIC;
9199        if ("DeviceUseRequest".equals(codeString))
9200          return ResourceType.DEVICEUSEREQUEST;
9201        if ("DeviceUseStatement".equals(codeString))
9202          return ResourceType.DEVICEUSESTATEMENT;
9203        if ("DiagnosticOrder".equals(codeString))
9204          return ResourceType.DIAGNOSTICORDER;
9205        if ("DiagnosticReport".equals(codeString))
9206          return ResourceType.DIAGNOSTICREPORT;
9207        if ("DocumentManifest".equals(codeString))
9208          return ResourceType.DOCUMENTMANIFEST;
9209        if ("DocumentReference".equals(codeString))
9210          return ResourceType.DOCUMENTREFERENCE;
9211        if ("DomainResource".equals(codeString))
9212          return ResourceType.DOMAINRESOURCE;
9213        if ("EligibilityRequest".equals(codeString))
9214          return ResourceType.ELIGIBILITYREQUEST;
9215        if ("EligibilityResponse".equals(codeString))
9216          return ResourceType.ELIGIBILITYRESPONSE;
9217        if ("Encounter".equals(codeString))
9218          return ResourceType.ENCOUNTER;
9219        if ("EnrollmentRequest".equals(codeString))
9220          return ResourceType.ENROLLMENTREQUEST;
9221        if ("EnrollmentResponse".equals(codeString))
9222          return ResourceType.ENROLLMENTRESPONSE;
9223        if ("EpisodeOfCare".equals(codeString))
9224          return ResourceType.EPISODEOFCARE;
9225        if ("ExpansionProfile".equals(codeString))
9226          return ResourceType.EXPANSIONPROFILE;
9227        if ("ExplanationOfBenefit".equals(codeString))
9228          return ResourceType.EXPLANATIONOFBENEFIT;
9229        if ("FamilyMemberHistory".equals(codeString))
9230          return ResourceType.FAMILYMEMBERHISTORY;
9231        if ("Flag".equals(codeString))
9232          return ResourceType.FLAG;
9233        if ("Goal".equals(codeString))
9234          return ResourceType.GOAL;
9235        if ("Group".equals(codeString))
9236          return ResourceType.GROUP;
9237        if ("GuidanceResponse".equals(codeString))
9238          return ResourceType.GUIDANCERESPONSE;
9239        if ("HealthcareService".equals(codeString))
9240          return ResourceType.HEALTHCARESERVICE;
9241        if ("ImagingExcerpt".equals(codeString))
9242          return ResourceType.IMAGINGEXCERPT;
9243        if ("ImagingObjectSelection".equals(codeString))
9244          return ResourceType.IMAGINGOBJECTSELECTION;
9245        if ("ImagingStudy".equals(codeString))
9246          return ResourceType.IMAGINGSTUDY;
9247        if ("Immunization".equals(codeString))
9248          return ResourceType.IMMUNIZATION;
9249        if ("ImmunizationRecommendation".equals(codeString))
9250          return ResourceType.IMMUNIZATIONRECOMMENDATION;
9251        if ("ImplementationGuide".equals(codeString))
9252          return ResourceType.IMPLEMENTATIONGUIDE;
9253        if ("Library".equals(codeString))
9254          return ResourceType.LIBRARY;
9255        if ("Linkage".equals(codeString))
9256          return ResourceType.LINKAGE;
9257        if ("List".equals(codeString))
9258          return ResourceType.LIST;
9259        if ("Location".equals(codeString))
9260          return ResourceType.LOCATION;
9261        if ("Measure".equals(codeString))
9262          return ResourceType.MEASURE;
9263        if ("MeasureReport".equals(codeString))
9264          return ResourceType.MEASUREREPORT;
9265        if ("Media".equals(codeString))
9266          return ResourceType.MEDIA;
9267        if ("Medication".equals(codeString))
9268          return ResourceType.MEDICATION;
9269        if ("MedicationAdministration".equals(codeString))
9270          return ResourceType.MEDICATIONADMINISTRATION;
9271        if ("MedicationDispense".equals(codeString))
9272          return ResourceType.MEDICATIONDISPENSE;
9273        if ("MedicationOrder".equals(codeString))
9274          return ResourceType.MEDICATIONORDER;
9275        if ("MedicationStatement".equals(codeString))
9276          return ResourceType.MEDICATIONSTATEMENT;
9277        if ("MessageHeader".equals(codeString))
9278          return ResourceType.MESSAGEHEADER;
9279        if ("ModuleDefinition".equals(codeString))
9280          return ResourceType.MODULEDEFINITION;
9281        if ("NamingSystem".equals(codeString))
9282          return ResourceType.NAMINGSYSTEM;
9283        if ("NutritionOrder".equals(codeString))
9284          return ResourceType.NUTRITIONORDER;
9285        if ("Observation".equals(codeString))
9286          return ResourceType.OBSERVATION;
9287        if ("OperationDefinition".equals(codeString))
9288          return ResourceType.OPERATIONDEFINITION;
9289        if ("OperationOutcome".equals(codeString))
9290          return ResourceType.OPERATIONOUTCOME;
9291        if ("Order".equals(codeString))
9292          return ResourceType.ORDER;
9293        if ("OrderResponse".equals(codeString))
9294          return ResourceType.ORDERRESPONSE;
9295        if ("OrderSet".equals(codeString))
9296          return ResourceType.ORDERSET;
9297        if ("Organization".equals(codeString))
9298          return ResourceType.ORGANIZATION;
9299        if ("Parameters".equals(codeString))
9300          return ResourceType.PARAMETERS;
9301        if ("Patient".equals(codeString))
9302          return ResourceType.PATIENT;
9303        if ("PaymentNotice".equals(codeString))
9304          return ResourceType.PAYMENTNOTICE;
9305        if ("PaymentReconciliation".equals(codeString))
9306          return ResourceType.PAYMENTRECONCILIATION;
9307        if ("Person".equals(codeString))
9308          return ResourceType.PERSON;
9309        if ("Practitioner".equals(codeString))
9310          return ResourceType.PRACTITIONER;
9311        if ("PractitionerRole".equals(codeString))
9312          return ResourceType.PRACTITIONERROLE;
9313        if ("Procedure".equals(codeString))
9314          return ResourceType.PROCEDURE;
9315        if ("ProcedureRequest".equals(codeString))
9316          return ResourceType.PROCEDUREREQUEST;
9317        if ("ProcessRequest".equals(codeString))
9318          return ResourceType.PROCESSREQUEST;
9319        if ("ProcessResponse".equals(codeString))
9320          return ResourceType.PROCESSRESPONSE;
9321        if ("Protocol".equals(codeString))
9322          return ResourceType.PROTOCOL;
9323        if ("Provenance".equals(codeString))
9324          return ResourceType.PROVENANCE;
9325        if ("Questionnaire".equals(codeString))
9326          return ResourceType.QUESTIONNAIRE;
9327        if ("QuestionnaireResponse".equals(codeString))
9328          return ResourceType.QUESTIONNAIRERESPONSE;
9329        if ("ReferralRequest".equals(codeString))
9330          return ResourceType.REFERRALREQUEST;
9331        if ("RelatedPerson".equals(codeString))
9332          return ResourceType.RELATEDPERSON;
9333        if ("Resource".equals(codeString))
9334          return ResourceType.RESOURCE;
9335        if ("RiskAssessment".equals(codeString))
9336          return ResourceType.RISKASSESSMENT;
9337        if ("Schedule".equals(codeString))
9338          return ResourceType.SCHEDULE;
9339        if ("SearchParameter".equals(codeString))
9340          return ResourceType.SEARCHPARAMETER;
9341        if ("Sequence".equals(codeString))
9342          return ResourceType.SEQUENCE;
9343        if ("Slot".equals(codeString))
9344          return ResourceType.SLOT;
9345        if ("Specimen".equals(codeString))
9346          return ResourceType.SPECIMEN;
9347        if ("StructureDefinition".equals(codeString))
9348          return ResourceType.STRUCTUREDEFINITION;
9349        if ("StructureMap".equals(codeString))
9350          return ResourceType.STRUCTUREMAP;
9351        if ("Subscription".equals(codeString))
9352          return ResourceType.SUBSCRIPTION;
9353        if ("Substance".equals(codeString))
9354          return ResourceType.SUBSTANCE;
9355        if ("SupplyDelivery".equals(codeString))
9356          return ResourceType.SUPPLYDELIVERY;
9357        if ("SupplyRequest".equals(codeString))
9358          return ResourceType.SUPPLYREQUEST;
9359        if ("Task".equals(codeString))
9360          return ResourceType.TASK;
9361        if ("TestScript".equals(codeString))
9362          return ResourceType.TESTSCRIPT;
9363        if ("ValueSet".equals(codeString))
9364          return ResourceType.VALUESET;
9365        if ("VisionPrescription".equals(codeString))
9366          return ResourceType.VISIONPRESCRIPTION;
9367        throw new IllegalArgumentException("Unknown ResourceType code '"+codeString+"'");
9368        }
9369        public Enumeration<ResourceType> fromType(Base code) throws FHIRException {
9370          if (code == null || code.isEmpty())
9371            return null;
9372          String codeString = ((PrimitiveType) code).asStringValue();
9373          if (codeString == null || "".equals(codeString))
9374            return null;
9375        if ("Account".equals(codeString))
9376          return new Enumeration<ResourceType>(this, ResourceType.ACCOUNT);
9377        if ("AllergyIntolerance".equals(codeString))
9378          return new Enumeration<ResourceType>(this, ResourceType.ALLERGYINTOLERANCE);
9379        if ("Appointment".equals(codeString))
9380          return new Enumeration<ResourceType>(this, ResourceType.APPOINTMENT);
9381        if ("AppointmentResponse".equals(codeString))
9382          return new Enumeration<ResourceType>(this, ResourceType.APPOINTMENTRESPONSE);
9383        if ("AuditEvent".equals(codeString))
9384          return new Enumeration<ResourceType>(this, ResourceType.AUDITEVENT);
9385        if ("Basic".equals(codeString))
9386          return new Enumeration<ResourceType>(this, ResourceType.BASIC);
9387        if ("Binary".equals(codeString))
9388          return new Enumeration<ResourceType>(this, ResourceType.BINARY);
9389        if ("BodySite".equals(codeString))
9390          return new Enumeration<ResourceType>(this, ResourceType.BODYSITE);
9391        if ("Bundle".equals(codeString))
9392          return new Enumeration<ResourceType>(this, ResourceType.BUNDLE);
9393        if ("CarePlan".equals(codeString))
9394          return new Enumeration<ResourceType>(this, ResourceType.CAREPLAN);
9395        if ("CareTeam".equals(codeString))
9396          return new Enumeration<ResourceType>(this, ResourceType.CARETEAM);
9397        if ("Claim".equals(codeString))
9398          return new Enumeration<ResourceType>(this, ResourceType.CLAIM);
9399        if ("ClaimResponse".equals(codeString))
9400          return new Enumeration<ResourceType>(this, ResourceType.CLAIMRESPONSE);
9401        if ("ClinicalImpression".equals(codeString))
9402          return new Enumeration<ResourceType>(this, ResourceType.CLINICALIMPRESSION);
9403        if ("CodeSystem".equals(codeString))
9404          return new Enumeration<ResourceType>(this, ResourceType.CODESYSTEM);
9405        if ("Communication".equals(codeString))
9406          return new Enumeration<ResourceType>(this, ResourceType.COMMUNICATION);
9407        if ("CommunicationRequest".equals(codeString))
9408          return new Enumeration<ResourceType>(this, ResourceType.COMMUNICATIONREQUEST);
9409        if ("CompartmentDefinition".equals(codeString))
9410          return new Enumeration<ResourceType>(this, ResourceType.COMPARTMENTDEFINITION);
9411        if ("Composition".equals(codeString))
9412          return new Enumeration<ResourceType>(this, ResourceType.COMPOSITION);
9413        if ("ConceptMap".equals(codeString))
9414          return new Enumeration<ResourceType>(this, ResourceType.CONCEPTMAP);
9415        if ("Condition".equals(codeString))
9416          return new Enumeration<ResourceType>(this, ResourceType.CONDITION);
9417        if ("Conformance".equals(codeString))
9418          return new Enumeration<ResourceType>(this, ResourceType.CONFORMANCE);
9419        if ("Contract".equals(codeString))
9420          return new Enumeration<ResourceType>(this, ResourceType.CONTRACT);
9421        if ("Coverage".equals(codeString))
9422          return new Enumeration<ResourceType>(this, ResourceType.COVERAGE);
9423        if ("DataElement".equals(codeString))
9424          return new Enumeration<ResourceType>(this, ResourceType.DATAELEMENT);
9425        if ("DecisionSupportRule".equals(codeString))
9426          return new Enumeration<ResourceType>(this, ResourceType.DECISIONSUPPORTRULE);
9427        if ("DecisionSupportServiceModule".equals(codeString))
9428          return new Enumeration<ResourceType>(this, ResourceType.DECISIONSUPPORTSERVICEMODULE);
9429        if ("DetectedIssue".equals(codeString))
9430          return new Enumeration<ResourceType>(this, ResourceType.DETECTEDISSUE);
9431        if ("Device".equals(codeString))
9432          return new Enumeration<ResourceType>(this, ResourceType.DEVICE);
9433        if ("DeviceComponent".equals(codeString))
9434          return new Enumeration<ResourceType>(this, ResourceType.DEVICECOMPONENT);
9435        if ("DeviceMetric".equals(codeString))
9436          return new Enumeration<ResourceType>(this, ResourceType.DEVICEMETRIC);
9437        if ("DeviceUseRequest".equals(codeString))
9438          return new Enumeration<ResourceType>(this, ResourceType.DEVICEUSEREQUEST);
9439        if ("DeviceUseStatement".equals(codeString))
9440          return new Enumeration<ResourceType>(this, ResourceType.DEVICEUSESTATEMENT);
9441        if ("DiagnosticOrder".equals(codeString))
9442          return new Enumeration<ResourceType>(this, ResourceType.DIAGNOSTICORDER);
9443        if ("DiagnosticReport".equals(codeString))
9444          return new Enumeration<ResourceType>(this, ResourceType.DIAGNOSTICREPORT);
9445        if ("DocumentManifest".equals(codeString))
9446          return new Enumeration<ResourceType>(this, ResourceType.DOCUMENTMANIFEST);
9447        if ("DocumentReference".equals(codeString))
9448          return new Enumeration<ResourceType>(this, ResourceType.DOCUMENTREFERENCE);
9449        if ("DomainResource".equals(codeString))
9450          return new Enumeration<ResourceType>(this, ResourceType.DOMAINRESOURCE);
9451        if ("EligibilityRequest".equals(codeString))
9452          return new Enumeration<ResourceType>(this, ResourceType.ELIGIBILITYREQUEST);
9453        if ("EligibilityResponse".equals(codeString))
9454          return new Enumeration<ResourceType>(this, ResourceType.ELIGIBILITYRESPONSE);
9455        if ("Encounter".equals(codeString))
9456          return new Enumeration<ResourceType>(this, ResourceType.ENCOUNTER);
9457        if ("EnrollmentRequest".equals(codeString))
9458          return new Enumeration<ResourceType>(this, ResourceType.ENROLLMENTREQUEST);
9459        if ("EnrollmentResponse".equals(codeString))
9460          return new Enumeration<ResourceType>(this, ResourceType.ENROLLMENTRESPONSE);
9461        if ("EpisodeOfCare".equals(codeString))
9462          return new Enumeration<ResourceType>(this, ResourceType.EPISODEOFCARE);
9463        if ("ExpansionProfile".equals(codeString))
9464          return new Enumeration<ResourceType>(this, ResourceType.EXPANSIONPROFILE);
9465        if ("ExplanationOfBenefit".equals(codeString))
9466          return new Enumeration<ResourceType>(this, ResourceType.EXPLANATIONOFBENEFIT);
9467        if ("FamilyMemberHistory".equals(codeString))
9468          return new Enumeration<ResourceType>(this, ResourceType.FAMILYMEMBERHISTORY);
9469        if ("Flag".equals(codeString))
9470          return new Enumeration<ResourceType>(this, ResourceType.FLAG);
9471        if ("Goal".equals(codeString))
9472          return new Enumeration<ResourceType>(this, ResourceType.GOAL);
9473        if ("Group".equals(codeString))
9474          return new Enumeration<ResourceType>(this, ResourceType.GROUP);
9475        if ("GuidanceResponse".equals(codeString))
9476          return new Enumeration<ResourceType>(this, ResourceType.GUIDANCERESPONSE);
9477        if ("HealthcareService".equals(codeString))
9478          return new Enumeration<ResourceType>(this, ResourceType.HEALTHCARESERVICE);
9479        if ("ImagingExcerpt".equals(codeString))
9480          return new Enumeration<ResourceType>(this, ResourceType.IMAGINGEXCERPT);
9481        if ("ImagingObjectSelection".equals(codeString))
9482          return new Enumeration<ResourceType>(this, ResourceType.IMAGINGOBJECTSELECTION);
9483        if ("ImagingStudy".equals(codeString))
9484          return new Enumeration<ResourceType>(this, ResourceType.IMAGINGSTUDY);
9485        if ("Immunization".equals(codeString))
9486          return new Enumeration<ResourceType>(this, ResourceType.IMMUNIZATION);
9487        if ("ImmunizationRecommendation".equals(codeString))
9488          return new Enumeration<ResourceType>(this, ResourceType.IMMUNIZATIONRECOMMENDATION);
9489        if ("ImplementationGuide".equals(codeString))
9490          return new Enumeration<ResourceType>(this, ResourceType.IMPLEMENTATIONGUIDE);
9491        if ("Library".equals(codeString))
9492          return new Enumeration<ResourceType>(this, ResourceType.LIBRARY);
9493        if ("Linkage".equals(codeString))
9494          return new Enumeration<ResourceType>(this, ResourceType.LINKAGE);
9495        if ("List".equals(codeString))
9496          return new Enumeration<ResourceType>(this, ResourceType.LIST);
9497        if ("Location".equals(codeString))
9498          return new Enumeration<ResourceType>(this, ResourceType.LOCATION);
9499        if ("Measure".equals(codeString))
9500          return new Enumeration<ResourceType>(this, ResourceType.MEASURE);
9501        if ("MeasureReport".equals(codeString))
9502          return new Enumeration<ResourceType>(this, ResourceType.MEASUREREPORT);
9503        if ("Media".equals(codeString))
9504          return new Enumeration<ResourceType>(this, ResourceType.MEDIA);
9505        if ("Medication".equals(codeString))
9506          return new Enumeration<ResourceType>(this, ResourceType.MEDICATION);
9507        if ("MedicationAdministration".equals(codeString))
9508          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONADMINISTRATION);
9509        if ("MedicationDispense".equals(codeString))
9510          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONDISPENSE);
9511        if ("MedicationOrder".equals(codeString))
9512          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONORDER);
9513        if ("MedicationStatement".equals(codeString))
9514          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONSTATEMENT);
9515        if ("MessageHeader".equals(codeString))
9516          return new Enumeration<ResourceType>(this, ResourceType.MESSAGEHEADER);
9517        if ("ModuleDefinition".equals(codeString))
9518          return new Enumeration<ResourceType>(this, ResourceType.MODULEDEFINITION);
9519        if ("NamingSystem".equals(codeString))
9520          return new Enumeration<ResourceType>(this, ResourceType.NAMINGSYSTEM);
9521        if ("NutritionOrder".equals(codeString))
9522          return new Enumeration<ResourceType>(this, ResourceType.NUTRITIONORDER);
9523        if ("Observation".equals(codeString))
9524          return new Enumeration<ResourceType>(this, ResourceType.OBSERVATION);
9525        if ("OperationDefinition".equals(codeString))
9526          return new Enumeration<ResourceType>(this, ResourceType.OPERATIONDEFINITION);
9527        if ("OperationOutcome".equals(codeString))
9528          return new Enumeration<ResourceType>(this, ResourceType.OPERATIONOUTCOME);
9529        if ("Order".equals(codeString))
9530          return new Enumeration<ResourceType>(this, ResourceType.ORDER);
9531        if ("OrderResponse".equals(codeString))
9532          return new Enumeration<ResourceType>(this, ResourceType.ORDERRESPONSE);
9533        if ("OrderSet".equals(codeString))
9534          return new Enumeration<ResourceType>(this, ResourceType.ORDERSET);
9535        if ("Organization".equals(codeString))
9536          return new Enumeration<ResourceType>(this, ResourceType.ORGANIZATION);
9537        if ("Parameters".equals(codeString))
9538          return new Enumeration<ResourceType>(this, ResourceType.PARAMETERS);
9539        if ("Patient".equals(codeString))
9540          return new Enumeration<ResourceType>(this, ResourceType.PATIENT);
9541        if ("PaymentNotice".equals(codeString))
9542          return new Enumeration<ResourceType>(this, ResourceType.PAYMENTNOTICE);
9543        if ("PaymentReconciliation".equals(codeString))
9544          return new Enumeration<ResourceType>(this, ResourceType.PAYMENTRECONCILIATION);
9545        if ("Person".equals(codeString))
9546          return new Enumeration<ResourceType>(this, ResourceType.PERSON);
9547        if ("Practitioner".equals(codeString))
9548          return new Enumeration<ResourceType>(this, ResourceType.PRACTITIONER);
9549        if ("PractitionerRole".equals(codeString))
9550          return new Enumeration<ResourceType>(this, ResourceType.PRACTITIONERROLE);
9551        if ("Procedure".equals(codeString))
9552          return new Enumeration<ResourceType>(this, ResourceType.PROCEDURE);
9553        if ("ProcedureRequest".equals(codeString))
9554          return new Enumeration<ResourceType>(this, ResourceType.PROCEDUREREQUEST);
9555        if ("ProcessRequest".equals(codeString))
9556          return new Enumeration<ResourceType>(this, ResourceType.PROCESSREQUEST);
9557        if ("ProcessResponse".equals(codeString))
9558          return new Enumeration<ResourceType>(this, ResourceType.PROCESSRESPONSE);
9559        if ("Protocol".equals(codeString))
9560          return new Enumeration<ResourceType>(this, ResourceType.PROTOCOL);
9561        if ("Provenance".equals(codeString))
9562          return new Enumeration<ResourceType>(this, ResourceType.PROVENANCE);
9563        if ("Questionnaire".equals(codeString))
9564          return new Enumeration<ResourceType>(this, ResourceType.QUESTIONNAIRE);
9565        if ("QuestionnaireResponse".equals(codeString))
9566          return new Enumeration<ResourceType>(this, ResourceType.QUESTIONNAIRERESPONSE);
9567        if ("ReferralRequest".equals(codeString))
9568          return new Enumeration<ResourceType>(this, ResourceType.REFERRALREQUEST);
9569        if ("RelatedPerson".equals(codeString))
9570          return new Enumeration<ResourceType>(this, ResourceType.RELATEDPERSON);
9571        if ("Resource".equals(codeString))
9572          return new Enumeration<ResourceType>(this, ResourceType.RESOURCE);
9573        if ("RiskAssessment".equals(codeString))
9574          return new Enumeration<ResourceType>(this, ResourceType.RISKASSESSMENT);
9575        if ("Schedule".equals(codeString))
9576          return new Enumeration<ResourceType>(this, ResourceType.SCHEDULE);
9577        if ("SearchParameter".equals(codeString))
9578          return new Enumeration<ResourceType>(this, ResourceType.SEARCHPARAMETER);
9579        if ("Sequence".equals(codeString))
9580          return new Enumeration<ResourceType>(this, ResourceType.SEQUENCE);
9581        if ("Slot".equals(codeString))
9582          return new Enumeration<ResourceType>(this, ResourceType.SLOT);
9583        if ("Specimen".equals(codeString))
9584          return new Enumeration<ResourceType>(this, ResourceType.SPECIMEN);
9585        if ("StructureDefinition".equals(codeString))
9586          return new Enumeration<ResourceType>(this, ResourceType.STRUCTUREDEFINITION);
9587        if ("StructureMap".equals(codeString))
9588          return new Enumeration<ResourceType>(this, ResourceType.STRUCTUREMAP);
9589        if ("Subscription".equals(codeString))
9590          return new Enumeration<ResourceType>(this, ResourceType.SUBSCRIPTION);
9591        if ("Substance".equals(codeString))
9592          return new Enumeration<ResourceType>(this, ResourceType.SUBSTANCE);
9593        if ("SupplyDelivery".equals(codeString))
9594          return new Enumeration<ResourceType>(this, ResourceType.SUPPLYDELIVERY);
9595        if ("SupplyRequest".equals(codeString))
9596          return new Enumeration<ResourceType>(this, ResourceType.SUPPLYREQUEST);
9597        if ("Task".equals(codeString))
9598          return new Enumeration<ResourceType>(this, ResourceType.TASK);
9599        if ("TestScript".equals(codeString))
9600          return new Enumeration<ResourceType>(this, ResourceType.TESTSCRIPT);
9601        if ("ValueSet".equals(codeString))
9602          return new Enumeration<ResourceType>(this, ResourceType.VALUESET);
9603        if ("VisionPrescription".equals(codeString))
9604          return new Enumeration<ResourceType>(this, ResourceType.VISIONPRESCRIPTION);
9605        throw new FHIRException("Unknown ResourceType code '"+codeString+"'");
9606        }
9607    public String toCode(ResourceType code) {
9608      if (code == ResourceType.ACCOUNT)
9609        return "Account";
9610      if (code == ResourceType.ALLERGYINTOLERANCE)
9611        return "AllergyIntolerance";
9612      if (code == ResourceType.APPOINTMENT)
9613        return "Appointment";
9614      if (code == ResourceType.APPOINTMENTRESPONSE)
9615        return "AppointmentResponse";
9616      if (code == ResourceType.AUDITEVENT)
9617        return "AuditEvent";
9618      if (code == ResourceType.BASIC)
9619        return "Basic";
9620      if (code == ResourceType.BINARY)
9621        return "Binary";
9622      if (code == ResourceType.BODYSITE)
9623        return "BodySite";
9624      if (code == ResourceType.BUNDLE)
9625        return "Bundle";
9626      if (code == ResourceType.CAREPLAN)
9627        return "CarePlan";
9628      if (code == ResourceType.CARETEAM)
9629        return "CareTeam";
9630      if (code == ResourceType.CLAIM)
9631        return "Claim";
9632      if (code == ResourceType.CLAIMRESPONSE)
9633        return "ClaimResponse";
9634      if (code == ResourceType.CLINICALIMPRESSION)
9635        return "ClinicalImpression";
9636      if (code == ResourceType.CODESYSTEM)
9637        return "CodeSystem";
9638      if (code == ResourceType.COMMUNICATION)
9639        return "Communication";
9640      if (code == ResourceType.COMMUNICATIONREQUEST)
9641        return "CommunicationRequest";
9642      if (code == ResourceType.COMPARTMENTDEFINITION)
9643        return "CompartmentDefinition";
9644      if (code == ResourceType.COMPOSITION)
9645        return "Composition";
9646      if (code == ResourceType.CONCEPTMAP)
9647        return "ConceptMap";
9648      if (code == ResourceType.CONDITION)
9649        return "Condition";
9650      if (code == ResourceType.CONFORMANCE)
9651        return "Conformance";
9652      if (code == ResourceType.CONTRACT)
9653        return "Contract";
9654      if (code == ResourceType.COVERAGE)
9655        return "Coverage";
9656      if (code == ResourceType.DATAELEMENT)
9657        return "DataElement";
9658      if (code == ResourceType.DECISIONSUPPORTRULE)
9659        return "DecisionSupportRule";
9660      if (code == ResourceType.DECISIONSUPPORTSERVICEMODULE)
9661        return "DecisionSupportServiceModule";
9662      if (code == ResourceType.DETECTEDISSUE)
9663        return "DetectedIssue";
9664      if (code == ResourceType.DEVICE)
9665        return "Device";
9666      if (code == ResourceType.DEVICECOMPONENT)
9667        return "DeviceComponent";
9668      if (code == ResourceType.DEVICEMETRIC)
9669        return "DeviceMetric";
9670      if (code == ResourceType.DEVICEUSEREQUEST)
9671        return "DeviceUseRequest";
9672      if (code == ResourceType.DEVICEUSESTATEMENT)
9673        return "DeviceUseStatement";
9674      if (code == ResourceType.DIAGNOSTICORDER)
9675        return "DiagnosticOrder";
9676      if (code == ResourceType.DIAGNOSTICREPORT)
9677        return "DiagnosticReport";
9678      if (code == ResourceType.DOCUMENTMANIFEST)
9679        return "DocumentManifest";
9680      if (code == ResourceType.DOCUMENTREFERENCE)
9681        return "DocumentReference";
9682      if (code == ResourceType.DOMAINRESOURCE)
9683        return "DomainResource";
9684      if (code == ResourceType.ELIGIBILITYREQUEST)
9685        return "EligibilityRequest";
9686      if (code == ResourceType.ELIGIBILITYRESPONSE)
9687        return "EligibilityResponse";
9688      if (code == ResourceType.ENCOUNTER)
9689        return "Encounter";
9690      if (code == ResourceType.ENROLLMENTREQUEST)
9691        return "EnrollmentRequest";
9692      if (code == ResourceType.ENROLLMENTRESPONSE)
9693        return "EnrollmentResponse";
9694      if (code == ResourceType.EPISODEOFCARE)
9695        return "EpisodeOfCare";
9696      if (code == ResourceType.EXPANSIONPROFILE)
9697        return "ExpansionProfile";
9698      if (code == ResourceType.EXPLANATIONOFBENEFIT)
9699        return "ExplanationOfBenefit";
9700      if (code == ResourceType.FAMILYMEMBERHISTORY)
9701        return "FamilyMemberHistory";
9702      if (code == ResourceType.FLAG)
9703        return "Flag";
9704      if (code == ResourceType.GOAL)
9705        return "Goal";
9706      if (code == ResourceType.GROUP)
9707        return "Group";
9708      if (code == ResourceType.GUIDANCERESPONSE)
9709        return "GuidanceResponse";
9710      if (code == ResourceType.HEALTHCARESERVICE)
9711        return "HealthcareService";
9712      if (code == ResourceType.IMAGINGEXCERPT)
9713        return "ImagingExcerpt";
9714      if (code == ResourceType.IMAGINGOBJECTSELECTION)
9715        return "ImagingObjectSelection";
9716      if (code == ResourceType.IMAGINGSTUDY)
9717        return "ImagingStudy";
9718      if (code == ResourceType.IMMUNIZATION)
9719        return "Immunization";
9720      if (code == ResourceType.IMMUNIZATIONRECOMMENDATION)
9721        return "ImmunizationRecommendation";
9722      if (code == ResourceType.IMPLEMENTATIONGUIDE)
9723        return "ImplementationGuide";
9724      if (code == ResourceType.LIBRARY)
9725        return "Library";
9726      if (code == ResourceType.LINKAGE)
9727        return "Linkage";
9728      if (code == ResourceType.LIST)
9729        return "List";
9730      if (code == ResourceType.LOCATION)
9731        return "Location";
9732      if (code == ResourceType.MEASURE)
9733        return "Measure";
9734      if (code == ResourceType.MEASUREREPORT)
9735        return "MeasureReport";
9736      if (code == ResourceType.MEDIA)
9737        return "Media";
9738      if (code == ResourceType.MEDICATION)
9739        return "Medication";
9740      if (code == ResourceType.MEDICATIONADMINISTRATION)
9741        return "MedicationAdministration";
9742      if (code == ResourceType.MEDICATIONDISPENSE)
9743        return "MedicationDispense";
9744      if (code == ResourceType.MEDICATIONORDER)
9745        return "MedicationOrder";
9746      if (code == ResourceType.MEDICATIONSTATEMENT)
9747        return "MedicationStatement";
9748      if (code == ResourceType.MESSAGEHEADER)
9749        return "MessageHeader";
9750      if (code == ResourceType.MODULEDEFINITION)
9751        return "ModuleDefinition";
9752      if (code == ResourceType.NAMINGSYSTEM)
9753        return "NamingSystem";
9754      if (code == ResourceType.NUTRITIONORDER)
9755        return "NutritionOrder";
9756      if (code == ResourceType.OBSERVATION)
9757        return "Observation";
9758      if (code == ResourceType.OPERATIONDEFINITION)
9759        return "OperationDefinition";
9760      if (code == ResourceType.OPERATIONOUTCOME)
9761        return "OperationOutcome";
9762      if (code == ResourceType.ORDER)
9763        return "Order";
9764      if (code == ResourceType.ORDERRESPONSE)
9765        return "OrderResponse";
9766      if (code == ResourceType.ORDERSET)
9767        return "OrderSet";
9768      if (code == ResourceType.ORGANIZATION)
9769        return "Organization";
9770      if (code == ResourceType.PARAMETERS)
9771        return "Parameters";
9772      if (code == ResourceType.PATIENT)
9773        return "Patient";
9774      if (code == ResourceType.PAYMENTNOTICE)
9775        return "PaymentNotice";
9776      if (code == ResourceType.PAYMENTRECONCILIATION)
9777        return "PaymentReconciliation";
9778      if (code == ResourceType.PERSON)
9779        return "Person";
9780      if (code == ResourceType.PRACTITIONER)
9781        return "Practitioner";
9782      if (code == ResourceType.PRACTITIONERROLE)
9783        return "PractitionerRole";
9784      if (code == ResourceType.PROCEDURE)
9785        return "Procedure";
9786      if (code == ResourceType.PROCEDUREREQUEST)
9787        return "ProcedureRequest";
9788      if (code == ResourceType.PROCESSREQUEST)
9789        return "ProcessRequest";
9790      if (code == ResourceType.PROCESSRESPONSE)
9791        return "ProcessResponse";
9792      if (code == ResourceType.PROTOCOL)
9793        return "Protocol";
9794      if (code == ResourceType.PROVENANCE)
9795        return "Provenance";
9796      if (code == ResourceType.QUESTIONNAIRE)
9797        return "Questionnaire";
9798      if (code == ResourceType.QUESTIONNAIRERESPONSE)
9799        return "QuestionnaireResponse";
9800      if (code == ResourceType.REFERRALREQUEST)
9801        return "ReferralRequest";
9802      if (code == ResourceType.RELATEDPERSON)
9803        return "RelatedPerson";
9804      if (code == ResourceType.RESOURCE)
9805        return "Resource";
9806      if (code == ResourceType.RISKASSESSMENT)
9807        return "RiskAssessment";
9808      if (code == ResourceType.SCHEDULE)
9809        return "Schedule";
9810      if (code == ResourceType.SEARCHPARAMETER)
9811        return "SearchParameter";
9812      if (code == ResourceType.SEQUENCE)
9813        return "Sequence";
9814      if (code == ResourceType.SLOT)
9815        return "Slot";
9816      if (code == ResourceType.SPECIMEN)
9817        return "Specimen";
9818      if (code == ResourceType.STRUCTUREDEFINITION)
9819        return "StructureDefinition";
9820      if (code == ResourceType.STRUCTUREMAP)
9821        return "StructureMap";
9822      if (code == ResourceType.SUBSCRIPTION)
9823        return "Subscription";
9824      if (code == ResourceType.SUBSTANCE)
9825        return "Substance";
9826      if (code == ResourceType.SUPPLYDELIVERY)
9827        return "SupplyDelivery";
9828      if (code == ResourceType.SUPPLYREQUEST)
9829        return "SupplyRequest";
9830      if (code == ResourceType.TASK)
9831        return "Task";
9832      if (code == ResourceType.TESTSCRIPT)
9833        return "TestScript";
9834      if (code == ResourceType.VALUESET)
9835        return "ValueSet";
9836      if (code == ResourceType.VISIONPRESCRIPTION)
9837        return "VisionPrescription";
9838      return "?";
9839      }
9840    public String toSystem(ResourceType code) {
9841      return code.getSystem();
9842      }
9843    }
9844
9845    public enum SearchParamType {
9846        /**
9847         * Search parameter SHALL be a number (a whole number, or a decimal).
9848         */
9849        NUMBER, 
9850        /**
9851         * Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.
9852         */
9853        DATE, 
9854        /**
9855         * Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces.
9856         */
9857        STRING, 
9858        /**
9859         * Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a "|", depending on the modifier used.
9860         */
9861        TOKEN, 
9862        /**
9863         * A reference to another resource.
9864         */
9865        REFERENCE, 
9866        /**
9867         * A composite search parameter that combines a search on two values together.
9868         */
9869        COMPOSITE, 
9870        /**
9871         * A search parameter that searches on a quantity.
9872         */
9873        QUANTITY, 
9874        /**
9875         * A search parameter that searches on a URI (RFC 3986).
9876         */
9877        URI, 
9878        /**
9879         * added to help the parsers
9880         */
9881        NULL;
9882        public static SearchParamType fromCode(String codeString) throws FHIRException {
9883            if (codeString == null || "".equals(codeString))
9884                return null;
9885        if ("number".equals(codeString))
9886          return NUMBER;
9887        if ("date".equals(codeString))
9888          return DATE;
9889        if ("string".equals(codeString))
9890          return STRING;
9891        if ("token".equals(codeString))
9892          return TOKEN;
9893        if ("reference".equals(codeString))
9894          return REFERENCE;
9895        if ("composite".equals(codeString))
9896          return COMPOSITE;
9897        if ("quantity".equals(codeString))
9898          return QUANTITY;
9899        if ("uri".equals(codeString))
9900          return URI;
9901        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
9902        }
9903        public String toCode() {
9904          switch (this) {
9905            case NUMBER: return "number";
9906            case DATE: return "date";
9907            case STRING: return "string";
9908            case TOKEN: return "token";
9909            case REFERENCE: return "reference";
9910            case COMPOSITE: return "composite";
9911            case QUANTITY: return "quantity";
9912            case URI: return "uri";
9913            case NULL: return null;
9914            default: return "?";
9915          }
9916        }
9917        public String getSystem() {
9918          switch (this) {
9919            case NUMBER: return "http://hl7.org/fhir/search-param-type";
9920            case DATE: return "http://hl7.org/fhir/search-param-type";
9921            case STRING: return "http://hl7.org/fhir/search-param-type";
9922            case TOKEN: return "http://hl7.org/fhir/search-param-type";
9923            case REFERENCE: return "http://hl7.org/fhir/search-param-type";
9924            case COMPOSITE: return "http://hl7.org/fhir/search-param-type";
9925            case QUANTITY: return "http://hl7.org/fhir/search-param-type";
9926            case URI: return "http://hl7.org/fhir/search-param-type";
9927            case NULL: return null;
9928            default: return "?";
9929          }
9930        }
9931        public String getDefinition() {
9932          switch (this) {
9933            case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal).";
9934            case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.";
9935            case STRING: return "Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces.";
9936            case TOKEN: return "Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a \"|\", depending on the modifier used.";
9937            case REFERENCE: return "A reference to another resource.";
9938            case COMPOSITE: return "A composite search parameter that combines a search on two values together.";
9939            case QUANTITY: return "A search parameter that searches on a quantity.";
9940            case URI: return "A search parameter that searches on a URI (RFC 3986).";
9941            case NULL: return null;
9942            default: return "?";
9943          }
9944        }
9945        public String getDisplay() {
9946          switch (this) {
9947            case NUMBER: return "Number";
9948            case DATE: return "Date/DateTime";
9949            case STRING: return "String";
9950            case TOKEN: return "Token";
9951            case REFERENCE: return "Reference";
9952            case COMPOSITE: return "Composite";
9953            case QUANTITY: return "Quantity";
9954            case URI: return "URI";
9955            case NULL: return null;
9956            default: return "?";
9957          }
9958        }
9959    }
9960
9961  public static class SearchParamTypeEnumFactory implements EnumFactory<SearchParamType> {
9962    public SearchParamType fromCode(String codeString) throws IllegalArgumentException {
9963      if (codeString == null || "".equals(codeString))
9964            if (codeString == null || "".equals(codeString))
9965                return null;
9966        if ("number".equals(codeString))
9967          return SearchParamType.NUMBER;
9968        if ("date".equals(codeString))
9969          return SearchParamType.DATE;
9970        if ("string".equals(codeString))
9971          return SearchParamType.STRING;
9972        if ("token".equals(codeString))
9973          return SearchParamType.TOKEN;
9974        if ("reference".equals(codeString))
9975          return SearchParamType.REFERENCE;
9976        if ("composite".equals(codeString))
9977          return SearchParamType.COMPOSITE;
9978        if ("quantity".equals(codeString))
9979          return SearchParamType.QUANTITY;
9980        if ("uri".equals(codeString))
9981          return SearchParamType.URI;
9982        throw new IllegalArgumentException("Unknown SearchParamType code '"+codeString+"'");
9983        }
9984        public Enumeration<SearchParamType> fromType(Base code) throws FHIRException {
9985          if (code == null || code.isEmpty())
9986            return null;
9987          String codeString = ((PrimitiveType) code).asStringValue();
9988          if (codeString == null || "".equals(codeString))
9989            return null;
9990        if ("number".equals(codeString))
9991          return new Enumeration<SearchParamType>(this, SearchParamType.NUMBER);
9992        if ("date".equals(codeString))
9993          return new Enumeration<SearchParamType>(this, SearchParamType.DATE);
9994        if ("string".equals(codeString))
9995          return new Enumeration<SearchParamType>(this, SearchParamType.STRING);
9996        if ("token".equals(codeString))
9997          return new Enumeration<SearchParamType>(this, SearchParamType.TOKEN);
9998        if ("reference".equals(codeString))
9999          return new Enumeration<SearchParamType>(this, SearchParamType.REFERENCE);
10000        if ("composite".equals(codeString))
10001          return new Enumeration<SearchParamType>(this, SearchParamType.COMPOSITE);
10002        if ("quantity".equals(codeString))
10003          return new Enumeration<SearchParamType>(this, SearchParamType.QUANTITY);
10004        if ("uri".equals(codeString))
10005          return new Enumeration<SearchParamType>(this, SearchParamType.URI);
10006        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
10007        }
10008    public String toCode(SearchParamType code) {
10009      if (code == SearchParamType.NUMBER)
10010        return "number";
10011      if (code == SearchParamType.DATE)
10012        return "date";
10013      if (code == SearchParamType.STRING)
10014        return "string";
10015      if (code == SearchParamType.TOKEN)
10016        return "token";
10017      if (code == SearchParamType.REFERENCE)
10018        return "reference";
10019      if (code == SearchParamType.COMPOSITE)
10020        return "composite";
10021      if (code == SearchParamType.QUANTITY)
10022        return "quantity";
10023      if (code == SearchParamType.URI)
10024        return "uri";
10025      return "?";
10026      }
10027    public String toSystem(SearchParamType code) {
10028      return code.getSystem();
10029      }
10030    }
10031
10032    public enum SpecialValues {
10033        /**
10034         * Boolean true.
10035         */
10036        TRUE, 
10037        /**
10038         * Boolean false.
10039         */
10040        FALSE, 
10041        /**
10042         * The content is greater than zero, but too small to be quantified.
10043         */
10044        TRACE, 
10045        /**
10046         * The specific quantity is not known, but is known to be non-zero and is not specified because it makes up the bulk of the material.
10047         */
10048        SUFFICIENT, 
10049        /**
10050         * The value is no longer available.
10051         */
10052        WITHDRAWN, 
10053        /**
10054         * The are no known applicable values in this context.
10055         */
10056        NILKNOWN, 
10057        /**
10058         * added to help the parsers
10059         */
10060        NULL;
10061        public static SpecialValues fromCode(String codeString) throws FHIRException {
10062            if (codeString == null || "".equals(codeString))
10063                return null;
10064        if ("true".equals(codeString))
10065          return TRUE;
10066        if ("false".equals(codeString))
10067          return FALSE;
10068        if ("trace".equals(codeString))
10069          return TRACE;
10070        if ("sufficient".equals(codeString))
10071          return SUFFICIENT;
10072        if ("withdrawn".equals(codeString))
10073          return WITHDRAWN;
10074        if ("nil-known".equals(codeString))
10075          return NILKNOWN;
10076        throw new FHIRException("Unknown SpecialValues code '"+codeString+"'");
10077        }
10078        public String toCode() {
10079          switch (this) {
10080            case TRUE: return "true";
10081            case FALSE: return "false";
10082            case TRACE: return "trace";
10083            case SUFFICIENT: return "sufficient";
10084            case WITHDRAWN: return "withdrawn";
10085            case NILKNOWN: return "nil-known";
10086            case NULL: return null;
10087            default: return "?";
10088          }
10089        }
10090        public String getSystem() {
10091          switch (this) {
10092            case TRUE: return "http://hl7.org/fhir/special-values";
10093            case FALSE: return "http://hl7.org/fhir/special-values";
10094            case TRACE: return "http://hl7.org/fhir/special-values";
10095            case SUFFICIENT: return "http://hl7.org/fhir/special-values";
10096            case WITHDRAWN: return "http://hl7.org/fhir/special-values";
10097            case NILKNOWN: return "http://hl7.org/fhir/special-values";
10098            case NULL: return null;
10099            default: return "?";
10100          }
10101        }
10102        public String getDefinition() {
10103          switch (this) {
10104            case TRUE: return "Boolean true.";
10105            case FALSE: return "Boolean false.";
10106            case TRACE: return "The content is greater than zero, but too small to be quantified.";
10107            case SUFFICIENT: return "The specific quantity is not known, but is known to be non-zero and is not specified because it makes up the bulk of the material.";
10108            case WITHDRAWN: return "The value is no longer available.";
10109            case NILKNOWN: return "The are no known applicable values in this context.";
10110            case NULL: return null;
10111            default: return "?";
10112          }
10113        }
10114        public String getDisplay() {
10115          switch (this) {
10116            case TRUE: return "true";
10117            case FALSE: return "false";
10118            case TRACE: return "Trace Amount Detected";
10119            case SUFFICIENT: return "Sufficient Quantity";
10120            case WITHDRAWN: return "Value Withdrawn";
10121            case NILKNOWN: return "Nil Known";
10122            case NULL: return null;
10123            default: return "?";
10124          }
10125        }
10126    }
10127
10128  public static class SpecialValuesEnumFactory implements EnumFactory<SpecialValues> {
10129    public SpecialValues fromCode(String codeString) throws IllegalArgumentException {
10130      if (codeString == null || "".equals(codeString))
10131            if (codeString == null || "".equals(codeString))
10132                return null;
10133        if ("true".equals(codeString))
10134          return SpecialValues.TRUE;
10135        if ("false".equals(codeString))
10136          return SpecialValues.FALSE;
10137        if ("trace".equals(codeString))
10138          return SpecialValues.TRACE;
10139        if ("sufficient".equals(codeString))
10140          return SpecialValues.SUFFICIENT;
10141        if ("withdrawn".equals(codeString))
10142          return SpecialValues.WITHDRAWN;
10143        if ("nil-known".equals(codeString))
10144          return SpecialValues.NILKNOWN;
10145        throw new IllegalArgumentException("Unknown SpecialValues code '"+codeString+"'");
10146        }
10147        public Enumeration<SpecialValues> fromType(Base code) throws FHIRException {
10148          if (code == null || code.isEmpty())
10149            return null;
10150          String codeString = ((PrimitiveType) code).asStringValue();
10151          if (codeString == null || "".equals(codeString))
10152            return null;
10153        if ("true".equals(codeString))
10154          return new Enumeration<SpecialValues>(this, SpecialValues.TRUE);
10155        if ("false".equals(codeString))
10156          return new Enumeration<SpecialValues>(this, SpecialValues.FALSE);
10157        if ("trace".equals(codeString))
10158          return new Enumeration<SpecialValues>(this, SpecialValues.TRACE);
10159        if ("sufficient".equals(codeString))
10160          return new Enumeration<SpecialValues>(this, SpecialValues.SUFFICIENT);
10161        if ("withdrawn".equals(codeString))
10162          return new Enumeration<SpecialValues>(this, SpecialValues.WITHDRAWN);
10163        if ("nil-known".equals(codeString))
10164          return new Enumeration<SpecialValues>(this, SpecialValues.NILKNOWN);
10165        throw new FHIRException("Unknown SpecialValues code '"+codeString+"'");
10166        }
10167    public String toCode(SpecialValues code) {
10168      if (code == SpecialValues.TRUE)
10169        return "true";
10170      if (code == SpecialValues.FALSE)
10171        return "false";
10172      if (code == SpecialValues.TRACE)
10173        return "trace";
10174      if (code == SpecialValues.SUFFICIENT)
10175        return "sufficient";
10176      if (code == SpecialValues.WITHDRAWN)
10177        return "withdrawn";
10178      if (code == SpecialValues.NILKNOWN)
10179        return "nil-known";
10180      return "?";
10181      }
10182    public String toSystem(SpecialValues code) {
10183      return code.getSystem();
10184      }
10185    }
10186
10187
10188}