001package org.hl7.fhir.r4.model;
002
003import org.hl7.fhir.exceptions.FHIRException;
004import org.hl7.fhir.utilities.Utilities;
005
006public class Enumerations {
007
008// In here: 
009//   AbstractType: A list of the base types defined by this version of the FHIR specification - types that are defined, but for which only specializations actually are created.
010//   AdministrativeGender: The gender of a person used for administrative purposes.
011//   AgeUnits: A valueSet of UCUM codes for representing age value units.
012//   BindingStrength: Indication of the degree of conformance expectations associated with a binding.
013//   ConceptMapEquivalence: The degree of equivalence between concepts.
014//   DataAbsentReason: Used to specify why the normally expected content of the data element is missing.
015//   DataType: A version specific list of the data types defined by the FHIR specification for use as an element  type (any of the FHIR defined data types).
016//   DefinitionResourceType: A list of all the definition resource types defined in this version of the FHIR specification.
017//   DocumentReferenceStatus: The status of the document reference.
018//   EventResourceType: A list of all the event resource types defined in this version of the FHIR specification.
019//   FHIRAllTypes: A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types.
020//   FHIRDefinedType: A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types.
021//   FHIRVersion: All published FHIR Versions.
022//   KnowledgeResourceType: A list of all the knowledge resource types defined in this version of the FHIR specification.
023//   MessageEvent: One of the message events defined as part of this version of FHIR.
024//   NoteType: The presentation types of notes.
025//   PublicationStatus: The lifecycle status of an artifact.
026//   RemittanceOutcome: The outcome of the processing.
027//   RequestResourceType: A list of all the request resource types defined in this version of the FHIR specification.
028//   ResourceType: One of the resource types defined as part of this version of FHIR.
029//   SearchParamType: Data types allowed to be used for search parameters.
030//   SpecialValues: A set of generally useful codes defined so they can be included in value sets.
031
032  public enum AbstractType {
033    /**
034     * A place holder that means any kind of data type
035     */
036    TYPE,
037    /**
038     * A place holder that means any kind of resource
039     */
040    ANY,
041    /**
042     * added to help the parsers
043     */
044    NULL;
045
046    public static AbstractType fromCode(String codeString) throws FHIRException {
047      if (codeString == null || "".equals(codeString))
048        return null;
049      if ("Type".equals(codeString))
050        return TYPE;
051      if ("Any".equals(codeString))
052        return ANY;
053      throw new FHIRException("Unknown AbstractType code '" + codeString + "'");
054    }
055
056    public String toCode() {
057      switch (this) {
058      case TYPE:
059        return "Type";
060      case ANY:
061        return "Any";
062      case NULL:
063        return null;
064      default:
065        return "?";
066      }
067    }
068
069    public String getSystem() {
070      switch (this) {
071      case TYPE:
072        return "http://hl7.org/fhir/abstract-types";
073      case ANY:
074        return "http://hl7.org/fhir/abstract-types";
075      case NULL:
076        return null;
077      default:
078        return "?";
079      }
080    }
081
082    public String getDefinition() {
083      switch (this) {
084      case TYPE:
085        return "A place holder that means any kind of data type";
086      case ANY:
087        return "A place holder that means any kind of resource";
088      case NULL:
089        return null;
090      default:
091        return "?";
092      }
093    }
094
095    public String getDisplay() {
096      switch (this) {
097      case TYPE:
098        return "Type";
099      case ANY:
100        return "Any";
101      case NULL:
102        return null;
103      default:
104        return "?";
105      }
106    }
107  }
108
109  public static class AbstractTypeEnumFactory implements EnumFactory<AbstractType> {
110    public AbstractType fromCode(String codeString) throws IllegalArgumentException {
111      if (codeString == null || "".equals(codeString))
112        if (codeString == null || "".equals(codeString))
113          return null;
114      if ("Type".equals(codeString))
115        return AbstractType.TYPE;
116      if ("Any".equals(codeString))
117        return AbstractType.ANY;
118      throw new IllegalArgumentException("Unknown AbstractType code '" + codeString + "'");
119    }
120
121    public Enumeration<AbstractType> fromType(PrimitiveType<?> code) throws FHIRException {
122      if (code == null)
123        return null;
124      if (code.isEmpty())
125        return new Enumeration<AbstractType>(this, AbstractType.NULL, code);
126      String codeString = code.asStringValue();
127      if (codeString == null || "".equals(codeString))
128        return new Enumeration<AbstractType>(this, AbstractType.NULL, code);
129      if ("Type".equals(codeString))
130        return new Enumeration<AbstractType>(this, AbstractType.TYPE, code);
131      if ("Any".equals(codeString))
132        return new Enumeration<AbstractType>(this, AbstractType.ANY, code);
133      throw new FHIRException("Unknown AbstractType code '" + codeString + "'");
134    }
135
136    public String toCode(AbstractType code) {
137       if (code == AbstractType.NULL)
138           return null;
139       if (code == AbstractType.TYPE)
140        return "Type";
141      if (code == AbstractType.ANY)
142        return "Any";
143      return "?";
144   }
145
146    public String toSystem(AbstractType code) {
147      return code.getSystem();
148    }
149  }
150
151  public enum AdministrativeGender {
152    /**
153     * Male.
154     */
155    MALE,
156    /**
157     * Female.
158     */
159    FEMALE,
160    /**
161     * Other.
162     */
163    OTHER,
164    /**
165     * Unknown.
166     */
167    UNKNOWN,
168    /**
169     * added to help the parsers
170     */
171    NULL;
172
173    public static AdministrativeGender fromCode(String codeString) throws FHIRException {
174      if (codeString == null || "".equals(codeString))
175        return null;
176      if ("male".equals(codeString))
177        return MALE;
178      if ("female".equals(codeString))
179        return FEMALE;
180      if ("other".equals(codeString))
181        return OTHER;
182      if ("unknown".equals(codeString))
183        return UNKNOWN;
184      throw new FHIRException("Unknown AdministrativeGender code '" + codeString + "'");
185    }
186
187    public String toCode() {
188      switch (this) {
189      case MALE:
190        return "male";
191      case FEMALE:
192        return "female";
193      case OTHER:
194        return "other";
195      case UNKNOWN:
196        return "unknown";
197      case NULL:
198        return null;
199      default:
200        return "?";
201      }
202    }
203
204    public String getSystem() {
205      switch (this) {
206      case MALE:
207        return "http://hl7.org/fhir/administrative-gender";
208      case FEMALE:
209        return "http://hl7.org/fhir/administrative-gender";
210      case OTHER:
211        return "http://hl7.org/fhir/administrative-gender";
212      case UNKNOWN:
213        return "http://hl7.org/fhir/administrative-gender";
214      case NULL:
215        return null;
216      default:
217        return "?";
218      }
219    }
220
221    public String getDefinition() {
222      switch (this) {
223      case MALE:
224        return "Male.";
225      case FEMALE:
226        return "Female.";
227      case OTHER:
228        return "Other.";
229      case UNKNOWN:
230        return "Unknown.";
231      case NULL:
232        return null;
233      default:
234        return "?";
235      }
236    }
237
238    public String getDisplay() {
239      switch (this) {
240      case MALE:
241        return "Male";
242      case FEMALE:
243        return "Female";
244      case OTHER:
245        return "Other";
246      case UNKNOWN:
247        return "Unknown";
248      case NULL:
249        return null;
250      default:
251        return "?";
252      }
253    }
254  }
255
256  public static class AdministrativeGenderEnumFactory implements EnumFactory<AdministrativeGender> {
257    public AdministrativeGender fromCode(String codeString) throws IllegalArgumentException {
258      if (codeString == null || "".equals(codeString))
259        if (codeString == null || "".equals(codeString))
260          return null;
261      if ("male".equals(codeString))
262        return AdministrativeGender.MALE;
263      if ("female".equals(codeString))
264        return AdministrativeGender.FEMALE;
265      if ("other".equals(codeString))
266        return AdministrativeGender.OTHER;
267      if ("unknown".equals(codeString))
268        return AdministrativeGender.UNKNOWN;
269      throw new IllegalArgumentException("Unknown AdministrativeGender code '" + codeString + "'");
270    }
271
272    public Enumeration<AdministrativeGender> fromType(PrimitiveType<?> code) throws FHIRException {
273      if (code == null)
274        return null;
275      if (code.isEmpty())
276        return new Enumeration<AdministrativeGender>(this, AdministrativeGender.NULL, code);
277      String codeString = code.asStringValue();
278      if (codeString == null || "".equals(codeString))
279        return new Enumeration<AdministrativeGender>(this, AdministrativeGender.NULL, code);
280      if ("male".equals(codeString))
281        return new Enumeration<AdministrativeGender>(this, AdministrativeGender.MALE, code);
282      if ("female".equals(codeString))
283        return new Enumeration<AdministrativeGender>(this, AdministrativeGender.FEMALE, code);
284      if ("other".equals(codeString))
285        return new Enumeration<AdministrativeGender>(this, AdministrativeGender.OTHER, code);
286      if ("unknown".equals(codeString))
287        return new Enumeration<AdministrativeGender>(this, AdministrativeGender.UNKNOWN, code);
288      throw new FHIRException("Unknown AdministrativeGender code '" + codeString + "'");
289    }
290
291    public String toCode(AdministrativeGender code) {
292       if (code == AdministrativeGender.NULL)
293           return null;
294       if (code == AdministrativeGender.MALE)
295        return "male";
296      if (code == AdministrativeGender.FEMALE)
297        return "female";
298      if (code == AdministrativeGender.OTHER)
299        return "other";
300      if (code == AdministrativeGender.UNKNOWN)
301        return "unknown";
302      return "?";
303   }
304
305    public String toSystem(AdministrativeGender code) {
306      return code.getSystem();
307    }
308  }
309
310  public enum AgeUnits {
311    /**
312     * null
313     */
314    MIN,
315    /**
316     * null
317     */
318    H,
319    /**
320     * null
321     */
322    D,
323    /**
324     * null
325     */
326    WK,
327    /**
328     * null
329     */
330    MO,
331    /**
332     * null
333     */
334    A,
335    /**
336     * added to help the parsers
337     */
338    NULL;
339
340    public static AgeUnits fromCode(String codeString) throws FHIRException {
341      if (codeString == null || "".equals(codeString))
342        return null;
343      if ("min".equals(codeString))
344        return MIN;
345      if ("h".equals(codeString))
346        return H;
347      if ("d".equals(codeString))
348        return D;
349      if ("wk".equals(codeString))
350        return WK;
351      if ("mo".equals(codeString))
352        return MO;
353      if ("a".equals(codeString))
354        return A;
355      throw new FHIRException("Unknown AgeUnits code '" + codeString + "'");
356    }
357
358    public String toCode() {
359      switch (this) {
360      case MIN:
361        return "min";
362      case H:
363        return "h";
364      case D:
365        return "d";
366      case WK:
367        return "wk";
368      case MO:
369        return "mo";
370      case A:
371        return "a";
372      case NULL:
373        return null;
374      default:
375        return "?";
376      }
377    }
378
379    public String getSystem() {
380      switch (this) {
381      case MIN:
382        return "http://unitsofmeasure.org";
383      case H:
384        return "http://unitsofmeasure.org";
385      case D:
386        return "http://unitsofmeasure.org";
387      case WK:
388        return "http://unitsofmeasure.org";
389      case MO:
390        return "http://unitsofmeasure.org";
391      case A:
392        return "http://unitsofmeasure.org";
393      case NULL:
394        return null;
395      default:
396        return "?";
397      }
398    }
399
400    public String getDefinition() {
401      switch (this) {
402      case MIN:
403        return "";
404      case H:
405        return "";
406      case D:
407        return "";
408      case WK:
409        return "";
410      case MO:
411        return "";
412      case A:
413        return "";
414      case NULL:
415        return null;
416      default:
417        return "?";
418      }
419    }
420
421    public String getDisplay() {
422      switch (this) {
423      case MIN:
424        return "Minute";
425      case H:
426        return "Hour";
427      case D:
428        return "Day";
429      case WK:
430        return "Week";
431      case MO:
432        return "Month";
433      case A:
434        return "Year";
435      case NULL:
436        return null;
437      default:
438        return "?";
439      }
440    }
441  }
442
443  public static class AgeUnitsEnumFactory implements EnumFactory<AgeUnits> {
444    public AgeUnits fromCode(String codeString) throws IllegalArgumentException {
445      if (codeString == null || "".equals(codeString))
446        if (codeString == null || "".equals(codeString))
447          return null;
448      if ("min".equals(codeString))
449        return AgeUnits.MIN;
450      if ("h".equals(codeString))
451        return AgeUnits.H;
452      if ("d".equals(codeString))
453        return AgeUnits.D;
454      if ("wk".equals(codeString))
455        return AgeUnits.WK;
456      if ("mo".equals(codeString))
457        return AgeUnits.MO;
458      if ("a".equals(codeString))
459        return AgeUnits.A;
460      throw new IllegalArgumentException("Unknown AgeUnits code '" + codeString + "'");
461    }
462
463    public Enumeration<AgeUnits> fromType(PrimitiveType<?> code) throws FHIRException {
464      if (code == null)
465        return null;
466      if (code.isEmpty())
467        return new Enumeration<AgeUnits>(this, AgeUnits.NULL, code);
468      String codeString = code.asStringValue();
469      if (codeString == null || "".equals(codeString))
470        return new Enumeration<AgeUnits>(this, AgeUnits.NULL, code);
471      if ("min".equals(codeString))
472        return new Enumeration<AgeUnits>(this, AgeUnits.MIN, code);
473      if ("h".equals(codeString))
474        return new Enumeration<AgeUnits>(this, AgeUnits.H, code);
475      if ("d".equals(codeString))
476        return new Enumeration<AgeUnits>(this, AgeUnits.D, code);
477      if ("wk".equals(codeString))
478        return new Enumeration<AgeUnits>(this, AgeUnits.WK, code);
479      if ("mo".equals(codeString))
480        return new Enumeration<AgeUnits>(this, AgeUnits.MO, code);
481      if ("a".equals(codeString))
482        return new Enumeration<AgeUnits>(this, AgeUnits.A, code);
483      throw new FHIRException("Unknown AgeUnits code '" + codeString + "'");
484    }
485
486    public String toCode(AgeUnits code) {
487       if (code == AgeUnits.NULL)
488           return null;
489       if (code == AgeUnits.MIN)
490        return "min";
491      if (code == AgeUnits.H)
492        return "h";
493      if (code == AgeUnits.D)
494        return "d";
495      if (code == AgeUnits.WK)
496        return "wk";
497      if (code == AgeUnits.MO)
498        return "mo";
499      if (code == AgeUnits.A)
500        return "a";
501      return "?";
502   }
503
504    public String toSystem(AgeUnits code) {
505      return code.getSystem();
506    }
507  }
508
509  public enum BindingStrength {
510    /**
511     * To be conformant, the concept in this element SHALL be from the specified
512     * value set.
513     */
514    REQUIRED,
515    /**
516     * To be conformant, the concept in this element SHALL be from the specified
517     * value set if any of the codes within the value set can apply to the concept
518     * being communicated. If the value set does not cover the concept (based on
519     * human review), alternate codings (or, data type allowing, text) may be
520     * included instead.
521     */
522    EXTENSIBLE,
523    /**
524     * Instances are encouraged to draw from the specified codes for
525     * interoperability purposes but are not required to do so to be considered
526     * conformant.
527     */
528    PREFERRED,
529    /**
530     * Instances are not expected or even encouraged to draw from the specified
531     * value set. The value set merely provides examples of the types of concepts
532     * intended to be included.
533     */
534    EXAMPLE,
535    /**
536     * added to help the parsers
537     */
538    NULL;
539
540    public static BindingStrength fromCode(String codeString) throws FHIRException {
541      if (codeString == null || "".equals(codeString))
542        return null;
543      if ("required".equals(codeString))
544        return REQUIRED;
545      if ("extensible".equals(codeString))
546        return EXTENSIBLE;
547      if ("preferred".equals(codeString))
548        return PREFERRED;
549      if ("example".equals(codeString))
550        return EXAMPLE;
551      throw new FHIRException("Unknown BindingStrength code '" + codeString + "'");
552    }
553
554    public String toCode() {
555      switch (this) {
556      case REQUIRED:
557        return "required";
558      case EXTENSIBLE:
559        return "extensible";
560      case PREFERRED:
561        return "preferred";
562      case EXAMPLE:
563        return "example";
564      case NULL:
565        return null;
566      default:
567        return "?";
568      }
569    }
570
571    public String getSystem() {
572      switch (this) {
573      case REQUIRED:
574        return "http://hl7.org/fhir/binding-strength";
575      case EXTENSIBLE:
576        return "http://hl7.org/fhir/binding-strength";
577      case PREFERRED:
578        return "http://hl7.org/fhir/binding-strength";
579      case EXAMPLE:
580        return "http://hl7.org/fhir/binding-strength";
581      case NULL:
582        return null;
583      default:
584        return "?";
585      }
586    }
587
588    public String getDefinition() {
589      switch (this) {
590      case REQUIRED:
591        return "To be conformant, the concept in this element SHALL be from the specified value set.";
592      case EXTENSIBLE:
593        return "To be conformant, the concept in this element SHALL be 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.";
594      case PREFERRED:
595        return "Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.";
596      case EXAMPLE:
597        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.";
598      case NULL:
599        return null;
600      default:
601        return "?";
602      }
603    }
604
605    public String getDisplay() {
606      switch (this) {
607      case REQUIRED:
608        return "Required";
609      case EXTENSIBLE:
610        return "Extensible";
611      case PREFERRED:
612        return "Preferred";
613      case EXAMPLE:
614        return "Example";
615      case NULL:
616        return null;
617      default:
618        return "?";
619      }
620    }
621  }
622
623  public static class BindingStrengthEnumFactory implements EnumFactory<BindingStrength> {
624    public BindingStrength fromCode(String codeString) throws IllegalArgumentException {
625      if (codeString == null || "".equals(codeString))
626        if (codeString == null || "".equals(codeString))
627          return null;
628      if ("required".equals(codeString))
629        return BindingStrength.REQUIRED;
630      if ("extensible".equals(codeString))
631        return BindingStrength.EXTENSIBLE;
632      if ("preferred".equals(codeString))
633        return BindingStrength.PREFERRED;
634      if ("example".equals(codeString))
635        return BindingStrength.EXAMPLE;
636      throw new IllegalArgumentException("Unknown BindingStrength code '" + codeString + "'");
637    }
638
639    public Enumeration<BindingStrength> fromType(PrimitiveType<?> code) throws FHIRException {
640      if (code == null)
641        return null;
642      if (code.isEmpty())
643        return new Enumeration<BindingStrength>(this, BindingStrength.NULL, code);
644      String codeString = code.asStringValue();
645      if (codeString == null || "".equals(codeString))
646        return new Enumeration<BindingStrength>(this, BindingStrength.NULL, code);
647      if ("required".equals(codeString))
648        return new Enumeration<BindingStrength>(this, BindingStrength.REQUIRED, code);
649      if ("extensible".equals(codeString))
650        return new Enumeration<BindingStrength>(this, BindingStrength.EXTENSIBLE, code);
651      if ("preferred".equals(codeString))
652        return new Enumeration<BindingStrength>(this, BindingStrength.PREFERRED, code);
653      if ("example".equals(codeString))
654        return new Enumeration<BindingStrength>(this, BindingStrength.EXAMPLE, code);
655      throw new FHIRException("Unknown BindingStrength code '" + codeString + "'");
656    }
657
658    public String toCode(BindingStrength code) {
659       if (code == BindingStrength.NULL)
660           return null;
661       if (code == BindingStrength.REQUIRED)
662        return "required";
663      if (code == BindingStrength.EXTENSIBLE)
664        return "extensible";
665      if (code == BindingStrength.PREFERRED)
666        return "preferred";
667      if (code == BindingStrength.EXAMPLE)
668        return "example";
669      return "?";
670   }
671
672    public String toSystem(BindingStrength code) {
673      return code.getSystem();
674    }
675  }
676
677  public enum ConceptMapEquivalence {
678    /**
679     * The concepts are related to each other, and have at least some overlap in
680     * meaning, but the exact relationship is not known.
681     */
682    RELATEDTO,
683    /**
684     * The definitions of the concepts mean the same thing (including when
685     * structural implications of meaning are considered) (i.e. extensionally
686     * identical).
687     */
688    EQUIVALENT,
689    /**
690     * The definitions of the concepts are exactly the same (i.e. only grammatical
691     * differences) and structural implications of meaning are identical or
692     * irrelevant (i.e. intentionally identical).
693     */
694    EQUAL,
695    /**
696     * The target mapping is wider in meaning than the source concept.
697     */
698    WIDER,
699    /**
700     * The target mapping subsumes the meaning of the source concept (e.g. the
701     * source is-a target).
702     */
703    SUBSUMES,
704    /**
705     * The target mapping is narrower in meaning than the source concept. The sense
706     * in which the mapping is narrower SHALL be described in the comments in this
707     * case, and applications should be careful when attempting to use these
708     * mappings operationally.
709     */
710    NARROWER,
711    /**
712     * The target mapping specializes the meaning of the source concept (e.g. the
713     * target is-a source).
714     */
715    SPECIALIZES,
716    /**
717     * The target mapping overlaps with the source concept, but both source and
718     * target cover additional meaning, or the definitions are imprecise and it is
719     * uncertain whether they have the same boundaries to their meaning. The sense
720     * in which the mapping is inexact SHALL be described in the comments in this
721     * case, and applications should be careful when attempting to use these
722     * mappings operationally.
723     */
724    INEXACT,
725    /**
726     * There is no match for this concept in the target code system.
727     */
728    UNMATCHED,
729    /**
730     * This is an explicit assertion that there is no mapping between the source and
731     * target concept.
732     */
733    DISJOINT,
734    /**
735     * added to help the parsers
736     */
737    NULL;
738
739    public static ConceptMapEquivalence fromCode(String codeString) throws FHIRException {
740      if (codeString == null || "".equals(codeString))
741        return null;
742      if ("relatedto".equals(codeString))
743        return RELATEDTO;
744      if ("equivalent".equals(codeString))
745        return EQUIVALENT;
746      if ("equal".equals(codeString))
747        return EQUAL;
748      if ("wider".equals(codeString))
749        return WIDER;
750      if ("subsumes".equals(codeString))
751        return SUBSUMES;
752      if ("narrower".equals(codeString))
753        return NARROWER;
754      if ("specializes".equals(codeString))
755        return SPECIALIZES;
756      if ("inexact".equals(codeString))
757        return INEXACT;
758      if ("unmatched".equals(codeString))
759        return UNMATCHED;
760      if ("disjoint".equals(codeString))
761        return DISJOINT;
762      throw new FHIRException("Unknown ConceptMapEquivalence code '" + codeString + "'");
763    }
764
765    public String toCode() {
766      switch (this) {
767      case RELATEDTO:
768        return "relatedto";
769      case EQUIVALENT:
770        return "equivalent";
771      case EQUAL:
772        return "equal";
773      case WIDER:
774        return "wider";
775      case SUBSUMES:
776        return "subsumes";
777      case NARROWER:
778        return "narrower";
779      case SPECIALIZES:
780        return "specializes";
781      case INEXACT:
782        return "inexact";
783      case UNMATCHED:
784        return "unmatched";
785      case DISJOINT:
786        return "disjoint";
787      case NULL:
788        return null;
789      default:
790        return "?";
791      }
792    }
793
794    public String getSystem() {
795      switch (this) {
796      case RELATEDTO:
797        return "http://hl7.org/fhir/concept-map-equivalence";
798      case EQUIVALENT:
799        return "http://hl7.org/fhir/concept-map-equivalence";
800      case EQUAL:
801        return "http://hl7.org/fhir/concept-map-equivalence";
802      case WIDER:
803        return "http://hl7.org/fhir/concept-map-equivalence";
804      case SUBSUMES:
805        return "http://hl7.org/fhir/concept-map-equivalence";
806      case NARROWER:
807        return "http://hl7.org/fhir/concept-map-equivalence";
808      case SPECIALIZES:
809        return "http://hl7.org/fhir/concept-map-equivalence";
810      case INEXACT:
811        return "http://hl7.org/fhir/concept-map-equivalence";
812      case UNMATCHED:
813        return "http://hl7.org/fhir/concept-map-equivalence";
814      case DISJOINT:
815        return "http://hl7.org/fhir/concept-map-equivalence";
816      case NULL:
817        return null;
818      default:
819        return "?";
820      }
821    }
822
823    public String getDefinition() {
824      switch (this) {
825      case RELATEDTO:
826        return "The concepts are related to each other, and have at least some overlap in meaning, but the exact relationship is not known.";
827      case EQUIVALENT:
828        return "The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical).";
829      case EQUAL:
830        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).";
831      case WIDER:
832        return "The target mapping is wider in meaning than the source concept.";
833      case SUBSUMES:
834        return "The target mapping subsumes the meaning of the source concept (e.g. the source is-a target).";
835      case NARROWER:
836        return "The target mapping is narrower in meaning than 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.";
837      case SPECIALIZES:
838        return "The target mapping specializes the meaning of the source concept (e.g. the target is-a source).";
839      case INEXACT:
840        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 inexact SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally.";
841      case UNMATCHED:
842        return "There is no match for this concept in the target code system.";
843      case DISJOINT:
844        return "This is an explicit assertion that there is no mapping between the source and target concept.";
845      case NULL:
846        return null;
847      default:
848        return "?";
849      }
850    }
851
852    public String getDisplay() {
853      switch (this) {
854      case RELATEDTO:
855        return "Related To";
856      case EQUIVALENT:
857        return "Equivalent";
858      case EQUAL:
859        return "Equal";
860      case WIDER:
861        return "Wider";
862      case SUBSUMES:
863        return "Subsumes";
864      case NARROWER:
865        return "Narrower";
866      case SPECIALIZES:
867        return "Specializes";
868      case INEXACT:
869        return "Inexact";
870      case UNMATCHED:
871        return "Unmatched";
872      case DISJOINT:
873        return "Disjoint";
874      case NULL:
875        return null;
876      default:
877        return "?";
878      }
879    }
880  }
881
882  public static class ConceptMapEquivalenceEnumFactory implements EnumFactory<ConceptMapEquivalence> {
883    public ConceptMapEquivalence fromCode(String codeString) throws IllegalArgumentException {
884      if (codeString == null || "".equals(codeString))
885        if (codeString == null || "".equals(codeString))
886          return null;
887      if ("relatedto".equals(codeString))
888        return ConceptMapEquivalence.RELATEDTO;
889      if ("equivalent".equals(codeString))
890        return ConceptMapEquivalence.EQUIVALENT;
891      if ("equal".equals(codeString))
892        return ConceptMapEquivalence.EQUAL;
893      if ("wider".equals(codeString))
894        return ConceptMapEquivalence.WIDER;
895      if ("subsumes".equals(codeString))
896        return ConceptMapEquivalence.SUBSUMES;
897      if ("narrower".equals(codeString))
898        return ConceptMapEquivalence.NARROWER;
899      if ("specializes".equals(codeString))
900        return ConceptMapEquivalence.SPECIALIZES;
901      if ("inexact".equals(codeString))
902        return ConceptMapEquivalence.INEXACT;
903      if ("unmatched".equals(codeString))
904        return ConceptMapEquivalence.UNMATCHED;
905      if ("disjoint".equals(codeString))
906        return ConceptMapEquivalence.DISJOINT;
907      throw new IllegalArgumentException("Unknown ConceptMapEquivalence code '" + codeString + "'");
908    }
909
910    public Enumeration<ConceptMapEquivalence> fromType(PrimitiveType<?> code) throws FHIRException {
911      if (code == null)
912        return null;
913      if (code.isEmpty())
914        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.NULL, code);
915      String codeString = code.asStringValue();
916      if (codeString == null || "".equals(codeString))
917        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.NULL, code);
918      if ("relatedto".equals(codeString))
919        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.RELATEDTO, code);
920      if ("equivalent".equals(codeString))
921        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.EQUIVALENT, code);
922      if ("equal".equals(codeString))
923        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.EQUAL, code);
924      if ("wider".equals(codeString))
925        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.WIDER, code);
926      if ("subsumes".equals(codeString))
927        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.SUBSUMES, code);
928      if ("narrower".equals(codeString))
929        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.NARROWER, code);
930      if ("specializes".equals(codeString))
931        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.SPECIALIZES, code);
932      if ("inexact".equals(codeString))
933        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.INEXACT, code);
934      if ("unmatched".equals(codeString))
935        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.UNMATCHED, code);
936      if ("disjoint".equals(codeString))
937        return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.DISJOINT, code);
938      throw new FHIRException("Unknown ConceptMapEquivalence code '" + codeString + "'");
939    }
940
941    public String toCode(ConceptMapEquivalence code) {
942       if (code == ConceptMapEquivalence.NULL)
943           return null;
944       if (code == ConceptMapEquivalence.RELATEDTO)
945        return "relatedto";
946      if (code == ConceptMapEquivalence.EQUIVALENT)
947        return "equivalent";
948      if (code == ConceptMapEquivalence.EQUAL)
949        return "equal";
950      if (code == ConceptMapEquivalence.WIDER)
951        return "wider";
952      if (code == ConceptMapEquivalence.SUBSUMES)
953        return "subsumes";
954      if (code == ConceptMapEquivalence.NARROWER)
955        return "narrower";
956      if (code == ConceptMapEquivalence.SPECIALIZES)
957        return "specializes";
958      if (code == ConceptMapEquivalence.INEXACT)
959        return "inexact";
960      if (code == ConceptMapEquivalence.UNMATCHED)
961        return "unmatched";
962      if (code == ConceptMapEquivalence.DISJOINT)
963        return "disjoint";
964      return "?";
965   }
966
967    public String toSystem(ConceptMapEquivalence code) {
968      return code.getSystem();
969    }
970  }
971
972  public enum DataAbsentReason {
973    /**
974     * The value is expected to exist but is not known.
975     */
976    UNKNOWN,
977    /**
978     * The source was asked but does not know the value.
979     */
980    ASKEDUNKNOWN,
981    /**
982     * There is reason to expect (from the workflow) that the value may become
983     * known.
984     */
985    TEMPUNKNOWN,
986    /**
987     * The workflow didn't lead to this value being known.
988     */
989    NOTASKED,
990    /**
991     * The source was asked but declined to answer.
992     */
993    ASKEDDECLINED,
994    /**
995     * The information is not available due to security, privacy or related reasons.
996     */
997    MASKED,
998    /**
999     * There is no proper value for this element (e.g. last menstrual period for a
1000     * male).
1001     */
1002    NOTAPPLICABLE,
1003    /**
1004     * The source system wasn't capable of supporting this element.
1005     */
1006    UNSUPPORTED,
1007    /**
1008     * The content of the data is represented in the resource narrative.
1009     */
1010    ASTEXT,
1011    /**
1012     * Some system or workflow process error means that the information is not
1013     * available.
1014     */
1015    ERROR,
1016    /**
1017     * The numeric value is undefined or unrepresentable due to a floating point
1018     * processing error.
1019     */
1020    NOTANUMBER,
1021    /**
1022     * The numeric value is excessively low and unrepresentable due to a floating
1023     * point processing error.
1024     */
1025    NEGATIVEINFINITY,
1026    /**
1027     * The numeric value is excessively high and unrepresentable due to a floating
1028     * point processing error.
1029     */
1030    POSITIVEINFINITY,
1031    /**
1032     * The value is not available because the observation procedure (test, etc.) was
1033     * not performed.
1034     */
1035    NOTPERFORMED,
1036    /**
1037     * The value is not permitted in this context (e.g. due to profiles, or the base
1038     * data types).
1039     */
1040    NOTPERMITTED,
1041    /**
1042     * added to help the parsers
1043     */
1044    NULL;
1045
1046    public static DataAbsentReason fromCode(String codeString) throws FHIRException {
1047      if (codeString == null || "".equals(codeString))
1048        return null;
1049      if ("unknown".equals(codeString))
1050        return UNKNOWN;
1051      if ("asked-unknown".equals(codeString))
1052        return ASKEDUNKNOWN;
1053      if ("temp-unknown".equals(codeString))
1054        return TEMPUNKNOWN;
1055      if ("not-asked".equals(codeString))
1056        return NOTASKED;
1057      if ("asked-declined".equals(codeString))
1058        return ASKEDDECLINED;
1059      if ("masked".equals(codeString))
1060        return MASKED;
1061      if ("not-applicable".equals(codeString))
1062        return NOTAPPLICABLE;
1063      if ("unsupported".equals(codeString))
1064        return UNSUPPORTED;
1065      if ("as-text".equals(codeString))
1066        return ASTEXT;
1067      if ("error".equals(codeString))
1068        return ERROR;
1069      if ("not-a-number".equals(codeString))
1070        return NOTANUMBER;
1071      if ("negative-infinity".equals(codeString))
1072        return NEGATIVEINFINITY;
1073      if ("positive-infinity".equals(codeString))
1074        return POSITIVEINFINITY;
1075      if ("not-performed".equals(codeString))
1076        return NOTPERFORMED;
1077      if ("not-permitted".equals(codeString))
1078        return NOTPERMITTED;
1079      throw new FHIRException("Unknown DataAbsentReason code '" + codeString + "'");
1080    }
1081
1082    public String toCode() {
1083      switch (this) {
1084      case UNKNOWN:
1085        return "unknown";
1086      case ASKEDUNKNOWN:
1087        return "asked-unknown";
1088      case TEMPUNKNOWN:
1089        return "temp-unknown";
1090      case NOTASKED:
1091        return "not-asked";
1092      case ASKEDDECLINED:
1093        return "asked-declined";
1094      case MASKED:
1095        return "masked";
1096      case NOTAPPLICABLE:
1097        return "not-applicable";
1098      case UNSUPPORTED:
1099        return "unsupported";
1100      case ASTEXT:
1101        return "as-text";
1102      case ERROR:
1103        return "error";
1104      case NOTANUMBER:
1105        return "not-a-number";
1106      case NEGATIVEINFINITY:
1107        return "negative-infinity";
1108      case POSITIVEINFINITY:
1109        return "positive-infinity";
1110      case NOTPERFORMED:
1111        return "not-performed";
1112      case NOTPERMITTED:
1113        return "not-permitted";
1114      case NULL:
1115        return null;
1116      default:
1117        return "?";
1118      }
1119    }
1120
1121    public String getSystem() {
1122      switch (this) {
1123      case UNKNOWN:
1124        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1125      case ASKEDUNKNOWN:
1126        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1127      case TEMPUNKNOWN:
1128        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1129      case NOTASKED:
1130        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1131      case ASKEDDECLINED:
1132        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1133      case MASKED:
1134        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1135      case NOTAPPLICABLE:
1136        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1137      case UNSUPPORTED:
1138        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1139      case ASTEXT:
1140        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1141      case ERROR:
1142        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1143      case NOTANUMBER:
1144        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1145      case NEGATIVEINFINITY:
1146        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1147      case POSITIVEINFINITY:
1148        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1149      case NOTPERFORMED:
1150        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1151      case NOTPERMITTED:
1152        return "http://terminology.hl7.org/CodeSystem/data-absent-reason";
1153      case NULL:
1154        return null;
1155      default:
1156        return "?";
1157      }
1158    }
1159
1160    public String getDefinition() {
1161      switch (this) {
1162      case UNKNOWN:
1163        return "The value is expected to exist but is not known.";
1164      case ASKEDUNKNOWN:
1165        return "The source was asked but does not know the value.";
1166      case TEMPUNKNOWN:
1167        return "There is reason to expect (from the workflow) that the value may become known.";
1168      case NOTASKED:
1169        return "The workflow didn't lead to this value being known.";
1170      case ASKEDDECLINED:
1171        return "The source was asked but declined to answer.";
1172      case MASKED:
1173        return "The information is not available due to security, privacy or related reasons.";
1174      case NOTAPPLICABLE:
1175        return "There is no proper value for this element (e.g. last menstrual period for a male).";
1176      case UNSUPPORTED:
1177        return "The source system wasn't capable of supporting this element.";
1178      case ASTEXT:
1179        return "The content of the data is represented in the resource narrative.";
1180      case ERROR:
1181        return "Some system or workflow process error means that the information is not available.";
1182      case NOTANUMBER:
1183        return "The numeric value is undefined or unrepresentable due to a floating point processing error.";
1184      case NEGATIVEINFINITY:
1185        return "The numeric value is excessively low and unrepresentable due to a floating point processing error.";
1186      case POSITIVEINFINITY:
1187        return "The numeric value is excessively high and unrepresentable due to a floating point processing error.";
1188      case NOTPERFORMED:
1189        return "The value is not available because the observation procedure (test, etc.) was not performed.";
1190      case NOTPERMITTED:
1191        return "The value is not permitted in this context (e.g. due to profiles, or the base data types).";
1192      case NULL:
1193        return null;
1194      default:
1195        return "?";
1196      }
1197    }
1198
1199    public String getDisplay() {
1200      switch (this) {
1201      case UNKNOWN:
1202        return "Unknown";
1203      case ASKEDUNKNOWN:
1204        return "Asked But Unknown";
1205      case TEMPUNKNOWN:
1206        return "Temporarily Unknown";
1207      case NOTASKED:
1208        return "Not Asked";
1209      case ASKEDDECLINED:
1210        return "Asked But Declined";
1211      case MASKED:
1212        return "Masked";
1213      case NOTAPPLICABLE:
1214        return "Not Applicable";
1215      case UNSUPPORTED:
1216        return "Unsupported";
1217      case ASTEXT:
1218        return "As Text";
1219      case ERROR:
1220        return "Error";
1221      case NOTANUMBER:
1222        return "Not a Number (NaN)";
1223      case NEGATIVEINFINITY:
1224        return "Negative Infinity (NINF)";
1225      case POSITIVEINFINITY:
1226        return "Positive Infinity (PINF)";
1227      case NOTPERFORMED:
1228        return "Not Performed";
1229      case NOTPERMITTED:
1230        return "Not Permitted";
1231      case NULL:
1232        return null;
1233      default:
1234        return "?";
1235      }
1236    }
1237  }
1238
1239  public static class DataAbsentReasonEnumFactory implements EnumFactory<DataAbsentReason> {
1240    public DataAbsentReason fromCode(String codeString) throws IllegalArgumentException {
1241      if (codeString == null || "".equals(codeString))
1242        if (codeString == null || "".equals(codeString))
1243          return null;
1244      if ("unknown".equals(codeString))
1245        return DataAbsentReason.UNKNOWN;
1246      if ("asked-unknown".equals(codeString))
1247        return DataAbsentReason.ASKEDUNKNOWN;
1248      if ("temp-unknown".equals(codeString))
1249        return DataAbsentReason.TEMPUNKNOWN;
1250      if ("not-asked".equals(codeString))
1251        return DataAbsentReason.NOTASKED;
1252      if ("asked-declined".equals(codeString))
1253        return DataAbsentReason.ASKEDDECLINED;
1254      if ("masked".equals(codeString))
1255        return DataAbsentReason.MASKED;
1256      if ("not-applicable".equals(codeString))
1257        return DataAbsentReason.NOTAPPLICABLE;
1258      if ("unsupported".equals(codeString))
1259        return DataAbsentReason.UNSUPPORTED;
1260      if ("as-text".equals(codeString))
1261        return DataAbsentReason.ASTEXT;
1262      if ("error".equals(codeString))
1263        return DataAbsentReason.ERROR;
1264      if ("not-a-number".equals(codeString))
1265        return DataAbsentReason.NOTANUMBER;
1266      if ("negative-infinity".equals(codeString))
1267        return DataAbsentReason.NEGATIVEINFINITY;
1268      if ("positive-infinity".equals(codeString))
1269        return DataAbsentReason.POSITIVEINFINITY;
1270      if ("not-performed".equals(codeString))
1271        return DataAbsentReason.NOTPERFORMED;
1272      if ("not-permitted".equals(codeString))
1273        return DataAbsentReason.NOTPERMITTED;
1274      throw new IllegalArgumentException("Unknown DataAbsentReason code '" + codeString + "'");
1275    }
1276
1277    public Enumeration<DataAbsentReason> fromType(PrimitiveType<?> code) throws FHIRException {
1278      if (code == null)
1279        return null;
1280      if (code.isEmpty())
1281        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NULL, code);
1282      String codeString = code.asStringValue();
1283      if (codeString == null || "".equals(codeString))
1284        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NULL, code);
1285      if ("unknown".equals(codeString))
1286        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.UNKNOWN, code);
1287      if ("asked-unknown".equals(codeString))
1288        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ASKEDUNKNOWN, code);
1289      if ("temp-unknown".equals(codeString))
1290        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.TEMPUNKNOWN, code);
1291      if ("not-asked".equals(codeString))
1292        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTASKED, code);
1293      if ("asked-declined".equals(codeString))
1294        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ASKEDDECLINED, code);
1295      if ("masked".equals(codeString))
1296        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.MASKED, code);
1297      if ("not-applicable".equals(codeString))
1298        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTAPPLICABLE, code);
1299      if ("unsupported".equals(codeString))
1300        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.UNSUPPORTED, code);
1301      if ("as-text".equals(codeString))
1302        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ASTEXT, code);
1303      if ("error".equals(codeString))
1304        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ERROR, code);
1305      if ("not-a-number".equals(codeString))
1306        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTANUMBER, code);
1307      if ("negative-infinity".equals(codeString))
1308        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NEGATIVEINFINITY, code);
1309      if ("positive-infinity".equals(codeString))
1310        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.POSITIVEINFINITY, code);
1311      if ("not-performed".equals(codeString))
1312        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTPERFORMED, code);
1313      if ("not-permitted".equals(codeString))
1314        return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTPERMITTED, code);
1315      throw new FHIRException("Unknown DataAbsentReason code '" + codeString + "'");
1316    }
1317
1318    public String toCode(DataAbsentReason code) {
1319       if (code == DataAbsentReason.NULL)
1320           return null;
1321       if (code == DataAbsentReason.UNKNOWN)
1322        return "unknown";
1323      if (code == DataAbsentReason.ASKEDUNKNOWN)
1324        return "asked-unknown";
1325      if (code == DataAbsentReason.TEMPUNKNOWN)
1326        return "temp-unknown";
1327      if (code == DataAbsentReason.NOTASKED)
1328        return "not-asked";
1329      if (code == DataAbsentReason.ASKEDDECLINED)
1330        return "asked-declined";
1331      if (code == DataAbsentReason.MASKED)
1332        return "masked";
1333      if (code == DataAbsentReason.NOTAPPLICABLE)
1334        return "not-applicable";
1335      if (code == DataAbsentReason.UNSUPPORTED)
1336        return "unsupported";
1337      if (code == DataAbsentReason.ASTEXT)
1338        return "as-text";
1339      if (code == DataAbsentReason.ERROR)
1340        return "error";
1341      if (code == DataAbsentReason.NOTANUMBER)
1342        return "not-a-number";
1343      if (code == DataAbsentReason.NEGATIVEINFINITY)
1344        return "negative-infinity";
1345      if (code == DataAbsentReason.POSITIVEINFINITY)
1346        return "positive-infinity";
1347      if (code == DataAbsentReason.NOTPERFORMED)
1348        return "not-performed";
1349      if (code == DataAbsentReason.NOTPERMITTED)
1350        return "not-permitted";
1351      return "?";
1352   }
1353
1354    public String toSystem(DataAbsentReason code) {
1355      return code.getSystem();
1356    }
1357  }
1358
1359  public enum DataType {
1360    /**
1361     * An address expressed using postal conventions (as opposed to GPS or other
1362     * location definition formats). This data type may be used to convey addresses
1363     * for use in delivering mail as well as for visiting locations which might not
1364     * be valid for mail delivery. There are a variety of postal address formats
1365     * defined around the world.
1366     */
1367    ADDRESS,
1368    /**
1369     * A duration of time during which an organism (or a process) has existed.
1370     */
1371    AGE,
1372    /**
1373     * A text note which also contains information about who made the statement and
1374     * when.
1375     */
1376    ANNOTATION,
1377    /**
1378     * For referring to data content defined in other formats.
1379     */
1380    ATTACHMENT,
1381    /**
1382     * Base definition for all elements that are defined inside a resource - but not
1383     * those in a data type.
1384     */
1385    BACKBONEELEMENT,
1386    /**
1387     * A concept that may be defined by a formal reference to a terminology or
1388     * ontology or may be provided by text.
1389     */
1390    CODEABLECONCEPT,
1391    /**
1392     * A reference to a code defined by a terminology system.
1393     */
1394    CODING,
1395    /**
1396     * Specifies contact information for a person or organization.
1397     */
1398    CONTACTDETAIL,
1399    /**
1400     * Details for all kinds of technology mediated contact points for a person or
1401     * organization, including telephone, email, etc.
1402     */
1403    CONTACTPOINT,
1404    /**
1405     * A contributor to the content of a knowledge asset, including authors,
1406     * editors, reviewers, and endorsers.
1407     */
1408    CONTRIBUTOR,
1409    /**
1410     * A measured amount (or an amount that can potentially be measured). Note that
1411     * measured amounts include amounts that are not precisely quantified, including
1412     * amounts involving arbitrary units and floating currencies.
1413     */
1414    COUNT,
1415    /**
1416     * Describes a required data item for evaluation in terms of the type of data,
1417     * and optional code or date-based filters of the data.
1418     */
1419    DATAREQUIREMENT,
1420    /**
1421     * A length - a value with a unit that is a physical distance.
1422     */
1423    DISTANCE,
1424    /**
1425     * Indicates how the medication is/was taken or should be taken by the patient.
1426     */
1427    DOSAGE,
1428    /**
1429     * A length of time.
1430     */
1431    DURATION,
1432    /**
1433     * Base definition for all elements in a resource.
1434     */
1435    ELEMENT,
1436    /**
1437     * Captures constraints on each element within the resource, profile, or
1438     * extension.
1439     */
1440    ELEMENTDEFINITION,
1441    /**
1442     * A expression that is evaluated in a specified context and returns a value.
1443     * The context of use of the expression must specify the context in which the
1444     * expression is evaluated, and how the result of the expression is used.
1445     */
1446    EXPRESSION,
1447    /**
1448     * Optional Extension Element - found in all resources.
1449     */
1450    EXTENSION,
1451    /**
1452     * A human's name with the ability to identify parts and usage.
1453     */
1454    HUMANNAME,
1455    /**
1456     * An identifier - identifies some entity uniquely and unambiguously. Typically
1457     * this is used for business identifiers.
1458     */
1459    IDENTIFIER,
1460    /**
1461     * The marketing status describes the date when a medicinal product is actually
1462     * put on the market or the date as of which it is no longer available.
1463     */
1464    MARKETINGSTATUS,
1465    /**
1466     * The metadata about a resource. This is content in the resource that is
1467     * maintained by the infrastructure. Changes to the content might not always be
1468     * associated with version changes to the resource.
1469     */
1470    META,
1471    /**
1472     * An amount of economic utility in some recognized currency.
1473     */
1474    MONEY,
1475    /**
1476     * null
1477     */
1478    MONEYQUANTITY,
1479    /**
1480     * A human-readable summary of the resource conveying the essential clinical and
1481     * business information for the resource.
1482     */
1483    NARRATIVE,
1484    /**
1485     * The parameters to the module. This collection specifies both the input and
1486     * output parameters. Input parameters are provided by the caller as part of the
1487     * $evaluate operation. Output parameters are included in the GuidanceResponse.
1488     */
1489    PARAMETERDEFINITION,
1490    /**
1491     * A time period defined by a start and end date and optionally time.
1492     */
1493    PERIOD,
1494    /**
1495     * A populatioof people with some set of grouping criteria.
1496     */
1497    POPULATION,
1498    /**
1499     * The marketing status describes the date when a medicinal product is actually
1500     * put on the market or the date as of which it is no longer available.
1501     */
1502    PRODCHARACTERISTIC,
1503    /**
1504     * The shelf-life and storage information for a medicinal product item or
1505     * container can be described using this class.
1506     */
1507    PRODUCTSHELFLIFE,
1508    /**
1509     * A measured amount (or an amount that can potentially be measured). Note that
1510     * measured amounts include amounts that are not precisely quantified, including
1511     * amounts involving arbitrary units and floating currencies.
1512     */
1513    QUANTITY,
1514    /**
1515     * A set of ordered Quantities defined by a low and high limit.
1516     */
1517    RANGE,
1518    /**
1519     * A relationship of two Quantity values - expressed as a numerator and a
1520     * denominator.
1521     */
1522    RATIO,
1523    /**
1524     * A reference from one resource to another.
1525     */
1526    REFERENCE,
1527    /**
1528     * Related artifacts such as additional documentation, justification, or
1529     * bibliographic references.
1530     */
1531    RELATEDARTIFACT,
1532    /**
1533     * A series of measurements taken by a device, with upper and lower limits.
1534     * There may be more than one dimension in the data.
1535     */
1536    SAMPLEDDATA,
1537    /**
1538     * A signature along with supporting context. The signature may be a digital
1539     * signature that is cryptographic in nature, or some other signature acceptable
1540     * to the domain. This other signature may be as simple as a graphical image
1541     * representing a hand-written signature, or a signature ceremony Different
1542     * signature approaches have different utilities.
1543     */
1544    SIGNATURE,
1545    /**
1546     * null
1547     */
1548    SIMPLEQUANTITY,
1549    /**
1550     * Chemical substances are a single substance type whose primary defining
1551     * element is the molecular structure. Chemical substances shall be defined on
1552     * the basis of their complete covalent molecular structure; the presence of a
1553     * salt (counter-ion) and/or solvates (water, alcohols) is also captured.
1554     * Purity, grade, physical form or particle size are not taken into account in
1555     * the definition of a chemical substance or in the assignment of a Substance
1556     * ID.
1557     */
1558    SUBSTANCEAMOUNT,
1559    /**
1560     * Specifies an event that may occur multiple times. Timing schedules are used
1561     * to record when things are planned, expected or requested to occur. The most
1562     * common usage is in dosage instructions for medications. They are also used
1563     * when planning care of various kinds, and may be used for reporting the
1564     * schedule to which past regular activities were carried out.
1565     */
1566    TIMING,
1567    /**
1568     * A description of a triggering event. Triggering events can be named events,
1569     * data events, or periodic, as determined by the type element.
1570     */
1571    TRIGGERDEFINITION,
1572    /**
1573     * Specifies clinical/business/etc. metadata that can be used to retrieve, index
1574     * and/or categorize an artifact. This metadata can either be specific to the
1575     * applicable population (e.g., age category, DRG) or the specific context of
1576     * care (e.g., venue, care setting, provider of care).
1577     */
1578    USAGECONTEXT,
1579    /**
1580     * A stream of bytes
1581     */
1582    BASE64BINARY,
1583    /**
1584     * Value of "true" or "false"
1585     */
1586    BOOLEAN,
1587    /**
1588     * A URI that is a reference to a canonical URL on a FHIR resource
1589     */
1590    CANONICAL,
1591    /**
1592     * A string which has at least one character and no leading or trailing
1593     * whitespace and where there is no whitespace other than single spaces in the
1594     * contents
1595     */
1596    CODE,
1597    /**
1598     * A date or partial date (e.g. just year or year + month). There is no time
1599     * zone. The format is a union of the schema types gYear, gYearMonth and date.
1600     * Dates SHALL be valid dates.
1601     */
1602    DATE,
1603    /**
1604     * A date, date-time or partial date (e.g. just year or year + month). If hours
1605     * and minutes are specified, a time zone SHALL be populated. The format is a
1606     * union of the schema types gYear, gYearMonth, date and dateTime. Seconds must
1607     * be provided due to schema type constraints but may be zero-filled and may be
1608     * ignored. Dates SHALL be valid dates.
1609     */
1610    DATETIME,
1611    /**
1612     * A rational number with implicit precision
1613     */
1614    DECIMAL,
1615    /**
1616     * Any combination of letters, numerals, "-" and ".", with a length limit of 64
1617     * characters. (This might be an integer, an unprefixed OID, UUID or any other
1618     * identifier pattern that meets these constraints.) Ids are case-insensitive.
1619     */
1620    ID,
1621    /**
1622     * An instant in time - known at least to the second
1623     */
1624    INSTANT,
1625    /**
1626     * A whole number
1627     */
1628    INTEGER,
1629    /**
1630     * A string that may contain Github Flavored Markdown syntax for optional
1631     * processing by a mark down presentation engine
1632     */
1633    MARKDOWN,
1634    /**
1635     * An OID represented as a URI
1636     */
1637    OID,
1638    /**
1639     * An integer with a value that is positive (e.g. >0)
1640     */
1641    POSITIVEINT,
1642    /**
1643     * A sequence of Unicode characters
1644     */
1645    STRING,
1646    /**
1647     * A time during the day, with no date specified
1648     */
1649    TIME,
1650    /**
1651     * An integer with a value that is not negative (e.g. >= 0)
1652     */
1653    UNSIGNEDINT,
1654    /**
1655     * String of characters used to identify a name or a resource
1656     */
1657    URI,
1658    /**
1659     * A URI that is a literal reference
1660     */
1661    URL,
1662    /**
1663     * A UUID, represented as a URI
1664     */
1665    UUID,
1666    /**
1667     * XHTML format, as defined by W3C, but restricted usage (mainly, no active
1668     * content)
1669     */
1670    XHTML,
1671    /**
1672     * added to help the parsers
1673     */
1674    NULL;
1675
1676    public static DataType fromCode(String codeString) throws FHIRException {
1677      if (codeString == null || "".equals(codeString))
1678        return null;
1679      if ("Address".equals(codeString))
1680        return ADDRESS;
1681      if ("Age".equals(codeString))
1682        return AGE;
1683      if ("Annotation".equals(codeString))
1684        return ANNOTATION;
1685      if ("Attachment".equals(codeString))
1686        return ATTACHMENT;
1687      if ("BackboneElement".equals(codeString))
1688        return BACKBONEELEMENT;
1689      if ("CodeableConcept".equals(codeString))
1690        return CODEABLECONCEPT;
1691      if ("Coding".equals(codeString))
1692        return CODING;
1693      if ("ContactDetail".equals(codeString))
1694        return CONTACTDETAIL;
1695      if ("ContactPoint".equals(codeString))
1696        return CONTACTPOINT;
1697      if ("Contributor".equals(codeString))
1698        return CONTRIBUTOR;
1699      if ("Count".equals(codeString))
1700        return COUNT;
1701      if ("DataRequirement".equals(codeString))
1702        return DATAREQUIREMENT;
1703      if ("Distance".equals(codeString))
1704        return DISTANCE;
1705      if ("Dosage".equals(codeString))
1706        return DOSAGE;
1707      if ("Duration".equals(codeString))
1708        return DURATION;
1709      if ("Element".equals(codeString))
1710        return ELEMENT;
1711      if ("ElementDefinition".equals(codeString))
1712        return ELEMENTDEFINITION;
1713      if ("Expression".equals(codeString))
1714        return EXPRESSION;
1715      if ("Extension".equals(codeString))
1716        return EXTENSION;
1717      if ("HumanName".equals(codeString))
1718        return HUMANNAME;
1719      if ("Identifier".equals(codeString))
1720        return IDENTIFIER;
1721      if ("MarketingStatus".equals(codeString))
1722        return MARKETINGSTATUS;
1723      if ("Meta".equals(codeString))
1724        return META;
1725      if ("Money".equals(codeString))
1726        return MONEY;
1727      if ("MoneyQuantity".equals(codeString))
1728        return MONEYQUANTITY;
1729      if ("Narrative".equals(codeString))
1730        return NARRATIVE;
1731      if ("ParameterDefinition".equals(codeString))
1732        return PARAMETERDEFINITION;
1733      if ("Period".equals(codeString))
1734        return PERIOD;
1735      if ("Population".equals(codeString))
1736        return POPULATION;
1737      if ("ProdCharacteristic".equals(codeString))
1738        return PRODCHARACTERISTIC;
1739      if ("ProductShelfLife".equals(codeString))
1740        return PRODUCTSHELFLIFE;
1741      if ("Quantity".equals(codeString))
1742        return QUANTITY;
1743      if ("Range".equals(codeString))
1744        return RANGE;
1745      if ("Ratio".equals(codeString))
1746        return RATIO;
1747      if ("Reference".equals(codeString))
1748        return REFERENCE;
1749      if ("RelatedArtifact".equals(codeString))
1750        return RELATEDARTIFACT;
1751      if ("SampledData".equals(codeString))
1752        return SAMPLEDDATA;
1753      if ("Signature".equals(codeString))
1754        return SIGNATURE;
1755      if ("SimpleQuantity".equals(codeString))
1756        return SIMPLEQUANTITY;
1757      if ("SubstanceAmount".equals(codeString))
1758        return SUBSTANCEAMOUNT;
1759      if ("Timing".equals(codeString))
1760        return TIMING;
1761      if ("TriggerDefinition".equals(codeString))
1762        return TRIGGERDEFINITION;
1763      if ("UsageContext".equals(codeString))
1764        return USAGECONTEXT;
1765      if ("base64Binary".equals(codeString))
1766        return BASE64BINARY;
1767      if ("boolean".equals(codeString))
1768        return BOOLEAN;
1769      if ("canonical".equals(codeString))
1770        return CANONICAL;
1771      if ("code".equals(codeString))
1772        return CODE;
1773      if ("date".equals(codeString))
1774        return DATE;
1775      if ("dateTime".equals(codeString))
1776        return DATETIME;
1777      if ("decimal".equals(codeString))
1778        return DECIMAL;
1779      if ("id".equals(codeString))
1780        return ID;
1781      if ("instant".equals(codeString))
1782        return INSTANT;
1783      if ("integer".equals(codeString))
1784        return INTEGER;
1785      if ("markdown".equals(codeString))
1786        return MARKDOWN;
1787      if ("oid".equals(codeString))
1788        return OID;
1789      if ("positiveInt".equals(codeString))
1790        return POSITIVEINT;
1791      if ("string".equals(codeString))
1792        return STRING;
1793      if ("time".equals(codeString))
1794        return TIME;
1795      if ("unsignedInt".equals(codeString))
1796        return UNSIGNEDINT;
1797      if ("uri".equals(codeString))
1798        return URI;
1799      if ("url".equals(codeString))
1800        return URL;
1801      if ("uuid".equals(codeString))
1802        return UUID;
1803      if ("xhtml".equals(codeString))
1804        return XHTML;
1805      throw new FHIRException("Unknown DataType code '" + codeString + "'");
1806    }
1807
1808    public String toCode() {
1809      switch (this) {
1810      case ADDRESS:
1811        return "Address";
1812      case AGE:
1813        return "Age";
1814      case ANNOTATION:
1815        return "Annotation";
1816      case ATTACHMENT:
1817        return "Attachment";
1818      case BACKBONEELEMENT:
1819        return "BackboneElement";
1820      case CODEABLECONCEPT:
1821        return "CodeableConcept";
1822      case CODING:
1823        return "Coding";
1824      case CONTACTDETAIL:
1825        return "ContactDetail";
1826      case CONTACTPOINT:
1827        return "ContactPoint";
1828      case CONTRIBUTOR:
1829        return "Contributor";
1830      case COUNT:
1831        return "Count";
1832      case DATAREQUIREMENT:
1833        return "DataRequirement";
1834      case DISTANCE:
1835        return "Distance";
1836      case DOSAGE:
1837        return "Dosage";
1838      case DURATION:
1839        return "Duration";
1840      case ELEMENT:
1841        return "Element";
1842      case ELEMENTDEFINITION:
1843        return "ElementDefinition";
1844      case EXPRESSION:
1845        return "Expression";
1846      case EXTENSION:
1847        return "Extension";
1848      case HUMANNAME:
1849        return "HumanName";
1850      case IDENTIFIER:
1851        return "Identifier";
1852      case MARKETINGSTATUS:
1853        return "MarketingStatus";
1854      case META:
1855        return "Meta";
1856      case MONEY:
1857        return "Money";
1858      case MONEYQUANTITY:
1859        return "MoneyQuantity";
1860      case NARRATIVE:
1861        return "Narrative";
1862      case PARAMETERDEFINITION:
1863        return "ParameterDefinition";
1864      case PERIOD:
1865        return "Period";
1866      case POPULATION:
1867        return "Population";
1868      case PRODCHARACTERISTIC:
1869        return "ProdCharacteristic";
1870      case PRODUCTSHELFLIFE:
1871        return "ProductShelfLife";
1872      case QUANTITY:
1873        return "Quantity";
1874      case RANGE:
1875        return "Range";
1876      case RATIO:
1877        return "Ratio";
1878      case REFERENCE:
1879        return "Reference";
1880      case RELATEDARTIFACT:
1881        return "RelatedArtifact";
1882      case SAMPLEDDATA:
1883        return "SampledData";
1884      case SIGNATURE:
1885        return "Signature";
1886      case SIMPLEQUANTITY:
1887        return "SimpleQuantity";
1888      case SUBSTANCEAMOUNT:
1889        return "SubstanceAmount";
1890      case TIMING:
1891        return "Timing";
1892      case TRIGGERDEFINITION:
1893        return "TriggerDefinition";
1894      case USAGECONTEXT:
1895        return "UsageContext";
1896      case BASE64BINARY:
1897        return "base64Binary";
1898      case BOOLEAN:
1899        return "boolean";
1900      case CANONICAL:
1901        return "canonical";
1902      case CODE:
1903        return "code";
1904      case DATE:
1905        return "date";
1906      case DATETIME:
1907        return "dateTime";
1908      case DECIMAL:
1909        return "decimal";
1910      case ID:
1911        return "id";
1912      case INSTANT:
1913        return "instant";
1914      case INTEGER:
1915        return "integer";
1916      case MARKDOWN:
1917        return "markdown";
1918      case OID:
1919        return "oid";
1920      case POSITIVEINT:
1921        return "positiveInt";
1922      case STRING:
1923        return "string";
1924      case TIME:
1925        return "time";
1926      case UNSIGNEDINT:
1927        return "unsignedInt";
1928      case URI:
1929        return "uri";
1930      case URL:
1931        return "url";
1932      case UUID:
1933        return "uuid";
1934      case XHTML:
1935        return "xhtml";
1936      case NULL:
1937        return null;
1938      default:
1939        return "?";
1940      }
1941    }
1942
1943    public String getSystem() {
1944      switch (this) {
1945      case ADDRESS:
1946        return "http://hl7.org/fhir/data-types";
1947      case AGE:
1948        return "http://hl7.org/fhir/data-types";
1949      case ANNOTATION:
1950        return "http://hl7.org/fhir/data-types";
1951      case ATTACHMENT:
1952        return "http://hl7.org/fhir/data-types";
1953      case BACKBONEELEMENT:
1954        return "http://hl7.org/fhir/data-types";
1955      case CODEABLECONCEPT:
1956        return "http://hl7.org/fhir/data-types";
1957      case CODING:
1958        return "http://hl7.org/fhir/data-types";
1959      case CONTACTDETAIL:
1960        return "http://hl7.org/fhir/data-types";
1961      case CONTACTPOINT:
1962        return "http://hl7.org/fhir/data-types";
1963      case CONTRIBUTOR:
1964        return "http://hl7.org/fhir/data-types";
1965      case COUNT:
1966        return "http://hl7.org/fhir/data-types";
1967      case DATAREQUIREMENT:
1968        return "http://hl7.org/fhir/data-types";
1969      case DISTANCE:
1970        return "http://hl7.org/fhir/data-types";
1971      case DOSAGE:
1972        return "http://hl7.org/fhir/data-types";
1973      case DURATION:
1974        return "http://hl7.org/fhir/data-types";
1975      case ELEMENT:
1976        return "http://hl7.org/fhir/data-types";
1977      case ELEMENTDEFINITION:
1978        return "http://hl7.org/fhir/data-types";
1979      case EXPRESSION:
1980        return "http://hl7.org/fhir/data-types";
1981      case EXTENSION:
1982        return "http://hl7.org/fhir/data-types";
1983      case HUMANNAME:
1984        return "http://hl7.org/fhir/data-types";
1985      case IDENTIFIER:
1986        return "http://hl7.org/fhir/data-types";
1987      case MARKETINGSTATUS:
1988        return "http://hl7.org/fhir/data-types";
1989      case META:
1990        return "http://hl7.org/fhir/data-types";
1991      case MONEY:
1992        return "http://hl7.org/fhir/data-types";
1993      case MONEYQUANTITY:
1994        return "http://hl7.org/fhir/data-types";
1995      case NARRATIVE:
1996        return "http://hl7.org/fhir/data-types";
1997      case PARAMETERDEFINITION:
1998        return "http://hl7.org/fhir/data-types";
1999      case PERIOD:
2000        return "http://hl7.org/fhir/data-types";
2001      case POPULATION:
2002        return "http://hl7.org/fhir/data-types";
2003      case PRODCHARACTERISTIC:
2004        return "http://hl7.org/fhir/data-types";
2005      case PRODUCTSHELFLIFE:
2006        return "http://hl7.org/fhir/data-types";
2007      case QUANTITY:
2008        return "http://hl7.org/fhir/data-types";
2009      case RANGE:
2010        return "http://hl7.org/fhir/data-types";
2011      case RATIO:
2012        return "http://hl7.org/fhir/data-types";
2013      case REFERENCE:
2014        return "http://hl7.org/fhir/data-types";
2015      case RELATEDARTIFACT:
2016        return "http://hl7.org/fhir/data-types";
2017      case SAMPLEDDATA:
2018        return "http://hl7.org/fhir/data-types";
2019      case SIGNATURE:
2020        return "http://hl7.org/fhir/data-types";
2021      case SIMPLEQUANTITY:
2022        return "http://hl7.org/fhir/data-types";
2023      case SUBSTANCEAMOUNT:
2024        return "http://hl7.org/fhir/data-types";
2025      case TIMING:
2026        return "http://hl7.org/fhir/data-types";
2027      case TRIGGERDEFINITION:
2028        return "http://hl7.org/fhir/data-types";
2029      case USAGECONTEXT:
2030        return "http://hl7.org/fhir/data-types";
2031      case BASE64BINARY:
2032        return "http://hl7.org/fhir/data-types";
2033      case BOOLEAN:
2034        return "http://hl7.org/fhir/data-types";
2035      case CANONICAL:
2036        return "http://hl7.org/fhir/data-types";
2037      case CODE:
2038        return "http://hl7.org/fhir/data-types";
2039      case DATE:
2040        return "http://hl7.org/fhir/data-types";
2041      case DATETIME:
2042        return "http://hl7.org/fhir/data-types";
2043      case DECIMAL:
2044        return "http://hl7.org/fhir/data-types";
2045      case ID:
2046        return "http://hl7.org/fhir/data-types";
2047      case INSTANT:
2048        return "http://hl7.org/fhir/data-types";
2049      case INTEGER:
2050        return "http://hl7.org/fhir/data-types";
2051      case MARKDOWN:
2052        return "http://hl7.org/fhir/data-types";
2053      case OID:
2054        return "http://hl7.org/fhir/data-types";
2055      case POSITIVEINT:
2056        return "http://hl7.org/fhir/data-types";
2057      case STRING:
2058        return "http://hl7.org/fhir/data-types";
2059      case TIME:
2060        return "http://hl7.org/fhir/data-types";
2061      case UNSIGNEDINT:
2062        return "http://hl7.org/fhir/data-types";
2063      case URI:
2064        return "http://hl7.org/fhir/data-types";
2065      case URL:
2066        return "http://hl7.org/fhir/data-types";
2067      case UUID:
2068        return "http://hl7.org/fhir/data-types";
2069      case XHTML:
2070        return "http://hl7.org/fhir/data-types";
2071      case NULL:
2072        return null;
2073      default:
2074        return "?";
2075      }
2076    }
2077
2078    public String getDefinition() {
2079      switch (this) {
2080      case ADDRESS:
2081        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 which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
2082      case AGE:
2083        return "A duration of time during which an organism (or a process) has existed.";
2084      case ANNOTATION:
2085        return "A  text note which also  contains information about who made the statement and when.";
2086      case ATTACHMENT:
2087        return "For referring to data content defined in other formats.";
2088      case BACKBONEELEMENT:
2089        return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
2090      case CODEABLECONCEPT:
2091        return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
2092      case CODING:
2093        return "A reference to a code defined by a terminology system.";
2094      case CONTACTDETAIL:
2095        return "Specifies contact information for a person or organization.";
2096      case CONTACTPOINT:
2097        return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
2098      case CONTRIBUTOR:
2099        return "A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
2100      case COUNT:
2101        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.";
2102      case DATAREQUIREMENT:
2103        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.";
2104      case DISTANCE:
2105        return "A length - a value with a unit that is a physical distance.";
2106      case DOSAGE:
2107        return "Indicates how the medication is/was taken or should be taken by the patient.";
2108      case DURATION:
2109        return "A length of time.";
2110      case ELEMENT:
2111        return "Base definition for all elements in a resource.";
2112      case ELEMENTDEFINITION:
2113        return "Captures constraints on each element within the resource, profile, or extension.";
2114      case EXPRESSION:
2115        return "A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used.";
2116      case EXTENSION:
2117        return "Optional Extension Element - found in all resources.";
2118      case HUMANNAME:
2119        return "A human's name with the ability to identify parts and usage.";
2120      case IDENTIFIER:
2121        return "An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.";
2122      case MARKETINGSTATUS:
2123        return "The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.";
2124      case META:
2125        return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.";
2126      case MONEY:
2127        return "An amount of economic utility in some recognized currency.";
2128      case MONEYQUANTITY:
2129        return "";
2130      case NARRATIVE:
2131        return "A human-readable summary of the resource conveying the essential clinical and business information for the resource.";
2132      case PARAMETERDEFINITION:
2133        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.";
2134      case PERIOD:
2135        return "A time period defined by a start and end date and optionally time.";
2136      case POPULATION:
2137        return "A populatioof people with some set of grouping criteria.";
2138      case PRODCHARACTERISTIC:
2139        return "The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.";
2140      case PRODUCTSHELFLIFE:
2141        return "The shelf-life and storage information for a medicinal product item or container can be described using this class.";
2142      case QUANTITY:
2143        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.";
2144      case RANGE:
2145        return "A set of ordered Quantities defined by a low and high limit.";
2146      case RATIO:
2147        return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
2148      case REFERENCE:
2149        return "A reference from one resource to another.";
2150      case RELATEDARTIFACT:
2151        return "Related artifacts such as additional documentation, justification, or bibliographic references.";
2152      case SAMPLEDDATA:
2153        return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
2154      case SIGNATURE:
2155        return "A signature along with supporting context. The signature may be a digital signature that is cryptographic in nature, or some other signature acceptable to the domain. This other signature may be as simple as a graphical image representing a hand-written signature, or a signature ceremony Different signature approaches have different utilities.";
2156      case SIMPLEQUANTITY:
2157        return "";
2158      case SUBSTANCEAMOUNT:
2159        return "Chemical substances are a single substance type whose primary defining element is the molecular structure. Chemical substances shall be defined on the basis of their complete covalent molecular structure; the presence of a salt (counter-ion) and/or solvates (water, alcohols) is also captured. Purity, grade, physical form or particle size are not taken into account in the definition of a chemical substance or in the assignment of a Substance ID.";
2160      case TIMING:
2161        return "Specifies an event that may occur multiple times. Timing schedules are used to record when things are planned, 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, and may be used for reporting the schedule to which past regular activities were carried out.";
2162      case TRIGGERDEFINITION:
2163        return "A description of a triggering event. Triggering events can be named events, data events, or periodic, as determined by the type element.";
2164      case USAGECONTEXT:
2165        return "Specifies clinical/business/etc. metadata that can be used to retrieve, index and/or categorize an artifact. This metadata can either be specific to the applicable population (e.g., age category, DRG) or the specific context of care (e.g., venue, care setting, provider of care).";
2166      case BASE64BINARY:
2167        return "A stream of bytes";
2168      case BOOLEAN:
2169        return "Value of \"true\" or \"false\"";
2170      case CANONICAL:
2171        return "A URI that is a reference to a canonical URL on a FHIR resource";
2172      case CODE:
2173        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";
2174      case DATE:
2175        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.";
2176      case DATETIME:
2177        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.";
2178      case DECIMAL:
2179        return "A rational number with implicit precision";
2180      case ID:
2181        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.";
2182      case INSTANT:
2183        return "An instant in time - known at least to the second";
2184      case INTEGER:
2185        return "A whole number";
2186      case MARKDOWN:
2187        return "A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine";
2188      case OID:
2189        return "An OID represented as a URI";
2190      case POSITIVEINT:
2191        return "An integer with a value that is positive (e.g. >0)";
2192      case STRING:
2193        return "A sequence of Unicode characters";
2194      case TIME:
2195        return "A time during the day, with no date specified";
2196      case UNSIGNEDINT:
2197        return "An integer with a value that is not negative (e.g. >= 0)";
2198      case URI:
2199        return "String of characters used to identify a name or a resource";
2200      case URL:
2201        return "A URI that is a literal reference";
2202      case UUID:
2203        return "A UUID, represented as a URI";
2204      case XHTML:
2205        return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
2206      case NULL:
2207        return null;
2208      default:
2209        return "?";
2210      }
2211    }
2212
2213    public String getDisplay() {
2214      switch (this) {
2215      case ADDRESS:
2216        return "Address";
2217      case AGE:
2218        return "Age";
2219      case ANNOTATION:
2220        return "Annotation";
2221      case ATTACHMENT:
2222        return "Attachment";
2223      case BACKBONEELEMENT:
2224        return "BackboneElement";
2225      case CODEABLECONCEPT:
2226        return "CodeableConcept";
2227      case CODING:
2228        return "Coding";
2229      case CONTACTDETAIL:
2230        return "ContactDetail";
2231      case CONTACTPOINT:
2232        return "ContactPoint";
2233      case CONTRIBUTOR:
2234        return "Contributor";
2235      case COUNT:
2236        return "Count";
2237      case DATAREQUIREMENT:
2238        return "DataRequirement";
2239      case DISTANCE:
2240        return "Distance";
2241      case DOSAGE:
2242        return "Dosage";
2243      case DURATION:
2244        return "Duration";
2245      case ELEMENT:
2246        return "Element";
2247      case ELEMENTDEFINITION:
2248        return "ElementDefinition";
2249      case EXPRESSION:
2250        return "Expression";
2251      case EXTENSION:
2252        return "Extension";
2253      case HUMANNAME:
2254        return "HumanName";
2255      case IDENTIFIER:
2256        return "Identifier";
2257      case MARKETINGSTATUS:
2258        return "MarketingStatus";
2259      case META:
2260        return "Meta";
2261      case MONEY:
2262        return "Money";
2263      case MONEYQUANTITY:
2264        return "MoneyQuantity";
2265      case NARRATIVE:
2266        return "Narrative";
2267      case PARAMETERDEFINITION:
2268        return "ParameterDefinition";
2269      case PERIOD:
2270        return "Period";
2271      case POPULATION:
2272        return "Population";
2273      case PRODCHARACTERISTIC:
2274        return "ProdCharacteristic";
2275      case PRODUCTSHELFLIFE:
2276        return "ProductShelfLife";
2277      case QUANTITY:
2278        return "Quantity";
2279      case RANGE:
2280        return "Range";
2281      case RATIO:
2282        return "Ratio";
2283      case REFERENCE:
2284        return "Reference";
2285      case RELATEDARTIFACT:
2286        return "RelatedArtifact";
2287      case SAMPLEDDATA:
2288        return "SampledData";
2289      case SIGNATURE:
2290        return "Signature";
2291      case SIMPLEQUANTITY:
2292        return "SimpleQuantity";
2293      case SUBSTANCEAMOUNT:
2294        return "SubstanceAmount";
2295      case TIMING:
2296        return "Timing";
2297      case TRIGGERDEFINITION:
2298        return "TriggerDefinition";
2299      case USAGECONTEXT:
2300        return "UsageContext";
2301      case BASE64BINARY:
2302        return "base64Binary";
2303      case BOOLEAN:
2304        return "boolean";
2305      case CANONICAL:
2306        return "canonical";
2307      case CODE:
2308        return "code";
2309      case DATE:
2310        return "date";
2311      case DATETIME:
2312        return "dateTime";
2313      case DECIMAL:
2314        return "decimal";
2315      case ID:
2316        return "id";
2317      case INSTANT:
2318        return "instant";
2319      case INTEGER:
2320        return "integer";
2321      case MARKDOWN:
2322        return "markdown";
2323      case OID:
2324        return "oid";
2325      case POSITIVEINT:
2326        return "positiveInt";
2327      case STRING:
2328        return "string";
2329      case TIME:
2330        return "time";
2331      case UNSIGNEDINT:
2332        return "unsignedInt";
2333      case URI:
2334        return "uri";
2335      case URL:
2336        return "url";
2337      case UUID:
2338        return "uuid";
2339      case XHTML:
2340        return "XHTML";
2341      case NULL:
2342        return null;
2343      default:
2344        return "?";
2345      }
2346    }
2347  }
2348
2349  public static class DataTypeEnumFactory implements EnumFactory<DataType> {
2350    public DataType fromCode(String codeString) throws IllegalArgumentException {
2351      if (codeString == null || "".equals(codeString))
2352        if (codeString == null || "".equals(codeString))
2353          return null;
2354      if ("Address".equals(codeString))
2355        return DataType.ADDRESS;
2356      if ("Age".equals(codeString))
2357        return DataType.AGE;
2358      if ("Annotation".equals(codeString))
2359        return DataType.ANNOTATION;
2360      if ("Attachment".equals(codeString))
2361        return DataType.ATTACHMENT;
2362      if ("BackboneElement".equals(codeString))
2363        return DataType.BACKBONEELEMENT;
2364      if ("CodeableConcept".equals(codeString))
2365        return DataType.CODEABLECONCEPT;
2366      if ("Coding".equals(codeString))
2367        return DataType.CODING;
2368      if ("ContactDetail".equals(codeString))
2369        return DataType.CONTACTDETAIL;
2370      if ("ContactPoint".equals(codeString))
2371        return DataType.CONTACTPOINT;
2372      if ("Contributor".equals(codeString))
2373        return DataType.CONTRIBUTOR;
2374      if ("Count".equals(codeString))
2375        return DataType.COUNT;
2376      if ("DataRequirement".equals(codeString))
2377        return DataType.DATAREQUIREMENT;
2378      if ("Distance".equals(codeString))
2379        return DataType.DISTANCE;
2380      if ("Dosage".equals(codeString))
2381        return DataType.DOSAGE;
2382      if ("Duration".equals(codeString))
2383        return DataType.DURATION;
2384      if ("Element".equals(codeString))
2385        return DataType.ELEMENT;
2386      if ("ElementDefinition".equals(codeString))
2387        return DataType.ELEMENTDEFINITION;
2388      if ("Expression".equals(codeString))
2389        return DataType.EXPRESSION;
2390      if ("Extension".equals(codeString))
2391        return DataType.EXTENSION;
2392      if ("HumanName".equals(codeString))
2393        return DataType.HUMANNAME;
2394      if ("Identifier".equals(codeString))
2395        return DataType.IDENTIFIER;
2396      if ("MarketingStatus".equals(codeString))
2397        return DataType.MARKETINGSTATUS;
2398      if ("Meta".equals(codeString))
2399        return DataType.META;
2400      if ("Money".equals(codeString))
2401        return DataType.MONEY;
2402      if ("MoneyQuantity".equals(codeString))
2403        return DataType.MONEYQUANTITY;
2404      if ("Narrative".equals(codeString))
2405        return DataType.NARRATIVE;
2406      if ("ParameterDefinition".equals(codeString))
2407        return DataType.PARAMETERDEFINITION;
2408      if ("Period".equals(codeString))
2409        return DataType.PERIOD;
2410      if ("Population".equals(codeString))
2411        return DataType.POPULATION;
2412      if ("ProdCharacteristic".equals(codeString))
2413        return DataType.PRODCHARACTERISTIC;
2414      if ("ProductShelfLife".equals(codeString))
2415        return DataType.PRODUCTSHELFLIFE;
2416      if ("Quantity".equals(codeString))
2417        return DataType.QUANTITY;
2418      if ("Range".equals(codeString))
2419        return DataType.RANGE;
2420      if ("Ratio".equals(codeString))
2421        return DataType.RATIO;
2422      if ("Reference".equals(codeString))
2423        return DataType.REFERENCE;
2424      if ("RelatedArtifact".equals(codeString))
2425        return DataType.RELATEDARTIFACT;
2426      if ("SampledData".equals(codeString))
2427        return DataType.SAMPLEDDATA;
2428      if ("Signature".equals(codeString))
2429        return DataType.SIGNATURE;
2430      if ("SimpleQuantity".equals(codeString))
2431        return DataType.SIMPLEQUANTITY;
2432      if ("SubstanceAmount".equals(codeString))
2433        return DataType.SUBSTANCEAMOUNT;
2434      if ("Timing".equals(codeString))
2435        return DataType.TIMING;
2436      if ("TriggerDefinition".equals(codeString))
2437        return DataType.TRIGGERDEFINITION;
2438      if ("UsageContext".equals(codeString))
2439        return DataType.USAGECONTEXT;
2440      if ("base64Binary".equals(codeString))
2441        return DataType.BASE64BINARY;
2442      if ("boolean".equals(codeString))
2443        return DataType.BOOLEAN;
2444      if ("canonical".equals(codeString))
2445        return DataType.CANONICAL;
2446      if ("code".equals(codeString))
2447        return DataType.CODE;
2448      if ("date".equals(codeString))
2449        return DataType.DATE;
2450      if ("dateTime".equals(codeString))
2451        return DataType.DATETIME;
2452      if ("decimal".equals(codeString))
2453        return DataType.DECIMAL;
2454      if ("id".equals(codeString))
2455        return DataType.ID;
2456      if ("instant".equals(codeString))
2457        return DataType.INSTANT;
2458      if ("integer".equals(codeString))
2459        return DataType.INTEGER;
2460      if ("markdown".equals(codeString))
2461        return DataType.MARKDOWN;
2462      if ("oid".equals(codeString))
2463        return DataType.OID;
2464      if ("positiveInt".equals(codeString))
2465        return DataType.POSITIVEINT;
2466      if ("string".equals(codeString))
2467        return DataType.STRING;
2468      if ("time".equals(codeString))
2469        return DataType.TIME;
2470      if ("unsignedInt".equals(codeString))
2471        return DataType.UNSIGNEDINT;
2472      if ("uri".equals(codeString))
2473        return DataType.URI;
2474      if ("url".equals(codeString))
2475        return DataType.URL;
2476      if ("uuid".equals(codeString))
2477        return DataType.UUID;
2478      if ("xhtml".equals(codeString))
2479        return DataType.XHTML;
2480      throw new IllegalArgumentException("Unknown DataType code '" + codeString + "'");
2481    }
2482
2483    public Enumeration<DataType> fromType(PrimitiveType<?> code) throws FHIRException {
2484      if (code == null)
2485        return null;
2486      if (code.isEmpty())
2487        return new Enumeration<DataType>(this, DataType.NULL, code);
2488      String codeString = code.asStringValue();
2489      if (codeString == null || "".equals(codeString))
2490        return new Enumeration<DataType>(this, DataType.NULL, code);
2491      if ("Address".equals(codeString))
2492        return new Enumeration<DataType>(this, DataType.ADDRESS, code);
2493      if ("Age".equals(codeString))
2494        return new Enumeration<DataType>(this, DataType.AGE, code);
2495      if ("Annotation".equals(codeString))
2496        return new Enumeration<DataType>(this, DataType.ANNOTATION, code);
2497      if ("Attachment".equals(codeString))
2498        return new Enumeration<DataType>(this, DataType.ATTACHMENT, code);
2499      if ("BackboneElement".equals(codeString))
2500        return new Enumeration<DataType>(this, DataType.BACKBONEELEMENT, code);
2501      if ("CodeableConcept".equals(codeString))
2502        return new Enumeration<DataType>(this, DataType.CODEABLECONCEPT, code);
2503      if ("Coding".equals(codeString))
2504        return new Enumeration<DataType>(this, DataType.CODING, code);
2505      if ("ContactDetail".equals(codeString))
2506        return new Enumeration<DataType>(this, DataType.CONTACTDETAIL, code);
2507      if ("ContactPoint".equals(codeString))
2508        return new Enumeration<DataType>(this, DataType.CONTACTPOINT, code);
2509      if ("Contributor".equals(codeString))
2510        return new Enumeration<DataType>(this, DataType.CONTRIBUTOR, code);
2511      if ("Count".equals(codeString))
2512        return new Enumeration<DataType>(this, DataType.COUNT, code);
2513      if ("DataRequirement".equals(codeString))
2514        return new Enumeration<DataType>(this, DataType.DATAREQUIREMENT, code);
2515      if ("Distance".equals(codeString))
2516        return new Enumeration<DataType>(this, DataType.DISTANCE, code);
2517      if ("Dosage".equals(codeString))
2518        return new Enumeration<DataType>(this, DataType.DOSAGE, code);
2519      if ("Duration".equals(codeString))
2520        return new Enumeration<DataType>(this, DataType.DURATION, code);
2521      if ("Element".equals(codeString))
2522        return new Enumeration<DataType>(this, DataType.ELEMENT, code);
2523      if ("ElementDefinition".equals(codeString))
2524        return new Enumeration<DataType>(this, DataType.ELEMENTDEFINITION, code);
2525      if ("Expression".equals(codeString))
2526        return new Enumeration<DataType>(this, DataType.EXPRESSION, code);
2527      if ("Extension".equals(codeString))
2528        return new Enumeration<DataType>(this, DataType.EXTENSION, code);
2529      if ("HumanName".equals(codeString))
2530        return new Enumeration<DataType>(this, DataType.HUMANNAME, code);
2531      if ("Identifier".equals(codeString))
2532        return new Enumeration<DataType>(this, DataType.IDENTIFIER, code);
2533      if ("MarketingStatus".equals(codeString))
2534        return new Enumeration<DataType>(this, DataType.MARKETINGSTATUS, code);
2535      if ("Meta".equals(codeString))
2536        return new Enumeration<DataType>(this, DataType.META, code);
2537      if ("Money".equals(codeString))
2538        return new Enumeration<DataType>(this, DataType.MONEY, code);
2539      if ("MoneyQuantity".equals(codeString))
2540        return new Enumeration<DataType>(this, DataType.MONEYQUANTITY, code);
2541      if ("Narrative".equals(codeString))
2542        return new Enumeration<DataType>(this, DataType.NARRATIVE, code);
2543      if ("ParameterDefinition".equals(codeString))
2544        return new Enumeration<DataType>(this, DataType.PARAMETERDEFINITION, code);
2545      if ("Period".equals(codeString))
2546        return new Enumeration<DataType>(this, DataType.PERIOD, code);
2547      if ("Population".equals(codeString))
2548        return new Enumeration<DataType>(this, DataType.POPULATION, code);
2549      if ("ProdCharacteristic".equals(codeString))
2550        return new Enumeration<DataType>(this, DataType.PRODCHARACTERISTIC, code);
2551      if ("ProductShelfLife".equals(codeString))
2552        return new Enumeration<DataType>(this, DataType.PRODUCTSHELFLIFE, code);
2553      if ("Quantity".equals(codeString))
2554        return new Enumeration<DataType>(this, DataType.QUANTITY, code);
2555      if ("Range".equals(codeString))
2556        return new Enumeration<DataType>(this, DataType.RANGE, code);
2557      if ("Ratio".equals(codeString))
2558        return new Enumeration<DataType>(this, DataType.RATIO, code);
2559      if ("Reference".equals(codeString))
2560        return new Enumeration<DataType>(this, DataType.REFERENCE, code);
2561      if ("RelatedArtifact".equals(codeString))
2562        return new Enumeration<DataType>(this, DataType.RELATEDARTIFACT, code);
2563      if ("SampledData".equals(codeString))
2564        return new Enumeration<DataType>(this, DataType.SAMPLEDDATA, code);
2565      if ("Signature".equals(codeString))
2566        return new Enumeration<DataType>(this, DataType.SIGNATURE, code);
2567      if ("SimpleQuantity".equals(codeString))
2568        return new Enumeration<DataType>(this, DataType.SIMPLEQUANTITY, code);
2569      if ("SubstanceAmount".equals(codeString))
2570        return new Enumeration<DataType>(this, DataType.SUBSTANCEAMOUNT, code);
2571      if ("Timing".equals(codeString))
2572        return new Enumeration<DataType>(this, DataType.TIMING, code);
2573      if ("TriggerDefinition".equals(codeString))
2574        return new Enumeration<DataType>(this, DataType.TRIGGERDEFINITION, code);
2575      if ("UsageContext".equals(codeString))
2576        return new Enumeration<DataType>(this, DataType.USAGECONTEXT, code);
2577      if ("base64Binary".equals(codeString))
2578        return new Enumeration<DataType>(this, DataType.BASE64BINARY, code);
2579      if ("boolean".equals(codeString))
2580        return new Enumeration<DataType>(this, DataType.BOOLEAN, code);
2581      if ("canonical".equals(codeString))
2582        return new Enumeration<DataType>(this, DataType.CANONICAL, code);
2583      if ("code".equals(codeString))
2584        return new Enumeration<DataType>(this, DataType.CODE, code);
2585      if ("date".equals(codeString))
2586        return new Enumeration<DataType>(this, DataType.DATE, code);
2587      if ("dateTime".equals(codeString))
2588        return new Enumeration<DataType>(this, DataType.DATETIME, code);
2589      if ("decimal".equals(codeString))
2590        return new Enumeration<DataType>(this, DataType.DECIMAL, code);
2591      if ("id".equals(codeString))
2592        return new Enumeration<DataType>(this, DataType.ID, code);
2593      if ("instant".equals(codeString))
2594        return new Enumeration<DataType>(this, DataType.INSTANT, code);
2595      if ("integer".equals(codeString))
2596        return new Enumeration<DataType>(this, DataType.INTEGER, code);
2597      if ("markdown".equals(codeString))
2598        return new Enumeration<DataType>(this, DataType.MARKDOWN, code);
2599      if ("oid".equals(codeString))
2600        return new Enumeration<DataType>(this, DataType.OID, code);
2601      if ("positiveInt".equals(codeString))
2602        return new Enumeration<DataType>(this, DataType.POSITIVEINT, code);
2603      if ("string".equals(codeString))
2604        return new Enumeration<DataType>(this, DataType.STRING, code);
2605      if ("time".equals(codeString))
2606        return new Enumeration<DataType>(this, DataType.TIME, code);
2607      if ("unsignedInt".equals(codeString))
2608        return new Enumeration<DataType>(this, DataType.UNSIGNEDINT, code);
2609      if ("uri".equals(codeString))
2610        return new Enumeration<DataType>(this, DataType.URI, code);
2611      if ("url".equals(codeString))
2612        return new Enumeration<DataType>(this, DataType.URL, code);
2613      if ("uuid".equals(codeString))
2614        return new Enumeration<DataType>(this, DataType.UUID, code);
2615      if ("xhtml".equals(codeString))
2616        return new Enumeration<DataType>(this, DataType.XHTML, code);
2617      throw new FHIRException("Unknown DataType code '" + codeString + "'");
2618    }
2619
2620    public String toCode(DataType code) {
2621       if (code == DataType.NULL)
2622           return null;
2623       if (code == DataType.ADDRESS)
2624        return "Address";
2625      if (code == DataType.AGE)
2626        return "Age";
2627      if (code == DataType.ANNOTATION)
2628        return "Annotation";
2629      if (code == DataType.ATTACHMENT)
2630        return "Attachment";
2631      if (code == DataType.BACKBONEELEMENT)
2632        return "BackboneElement";
2633      if (code == DataType.CODEABLECONCEPT)
2634        return "CodeableConcept";
2635      if (code == DataType.CODING)
2636        return "Coding";
2637      if (code == DataType.CONTACTDETAIL)
2638        return "ContactDetail";
2639      if (code == DataType.CONTACTPOINT)
2640        return "ContactPoint";
2641      if (code == DataType.CONTRIBUTOR)
2642        return "Contributor";
2643      if (code == DataType.COUNT)
2644        return "Count";
2645      if (code == DataType.DATAREQUIREMENT)
2646        return "DataRequirement";
2647      if (code == DataType.DISTANCE)
2648        return "Distance";
2649      if (code == DataType.DOSAGE)
2650        return "Dosage";
2651      if (code == DataType.DURATION)
2652        return "Duration";
2653      if (code == DataType.ELEMENT)
2654        return "Element";
2655      if (code == DataType.ELEMENTDEFINITION)
2656        return "ElementDefinition";
2657      if (code == DataType.EXPRESSION)
2658        return "Expression";
2659      if (code == DataType.EXTENSION)
2660        return "Extension";
2661      if (code == DataType.HUMANNAME)
2662        return "HumanName";
2663      if (code == DataType.IDENTIFIER)
2664        return "Identifier";
2665      if (code == DataType.MARKETINGSTATUS)
2666        return "MarketingStatus";
2667      if (code == DataType.META)
2668        return "Meta";
2669      if (code == DataType.MONEY)
2670        return "Money";
2671      if (code == DataType.MONEYQUANTITY)
2672        return "MoneyQuantity";
2673      if (code == DataType.NARRATIVE)
2674        return "Narrative";
2675      if (code == DataType.PARAMETERDEFINITION)
2676        return "ParameterDefinition";
2677      if (code == DataType.PERIOD)
2678        return "Period";
2679      if (code == DataType.POPULATION)
2680        return "Population";
2681      if (code == DataType.PRODCHARACTERISTIC)
2682        return "ProdCharacteristic";
2683      if (code == DataType.PRODUCTSHELFLIFE)
2684        return "ProductShelfLife";
2685      if (code == DataType.QUANTITY)
2686        return "Quantity";
2687      if (code == DataType.RANGE)
2688        return "Range";
2689      if (code == DataType.RATIO)
2690        return "Ratio";
2691      if (code == DataType.REFERENCE)
2692        return "Reference";
2693      if (code == DataType.RELATEDARTIFACT)
2694        return "RelatedArtifact";
2695      if (code == DataType.SAMPLEDDATA)
2696        return "SampledData";
2697      if (code == DataType.SIGNATURE)
2698        return "Signature";
2699      if (code == DataType.SIMPLEQUANTITY)
2700        return "SimpleQuantity";
2701      if (code == DataType.SUBSTANCEAMOUNT)
2702        return "SubstanceAmount";
2703      if (code == DataType.TIMING)
2704        return "Timing";
2705      if (code == DataType.TRIGGERDEFINITION)
2706        return "TriggerDefinition";
2707      if (code == DataType.USAGECONTEXT)
2708        return "UsageContext";
2709      if (code == DataType.BASE64BINARY)
2710        return "base64Binary";
2711      if (code == DataType.BOOLEAN)
2712        return "boolean";
2713      if (code == DataType.CANONICAL)
2714        return "canonical";
2715      if (code == DataType.CODE)
2716        return "code";
2717      if (code == DataType.DATE)
2718        return "date";
2719      if (code == DataType.DATETIME)
2720        return "dateTime";
2721      if (code == DataType.DECIMAL)
2722        return "decimal";
2723      if (code == DataType.ID)
2724        return "id";
2725      if (code == DataType.INSTANT)
2726        return "instant";
2727      if (code == DataType.INTEGER)
2728        return "integer";
2729      if (code == DataType.MARKDOWN)
2730        return "markdown";
2731      if (code == DataType.OID)
2732        return "oid";
2733      if (code == DataType.POSITIVEINT)
2734        return "positiveInt";
2735      if (code == DataType.STRING)
2736        return "string";
2737      if (code == DataType.TIME)
2738        return "time";
2739      if (code == DataType.UNSIGNEDINT)
2740        return "unsignedInt";
2741      if (code == DataType.URI)
2742        return "uri";
2743      if (code == DataType.URL)
2744        return "url";
2745      if (code == DataType.UUID)
2746        return "uuid";
2747      if (code == DataType.XHTML)
2748        return "xhtml";
2749      return "?";
2750   }
2751
2752    public String toSystem(DataType code) {
2753      return code.getSystem();
2754    }
2755  }
2756
2757  public enum DefinitionResourceType {
2758    /**
2759     * This resource allows for the definition of some activity to be performed,
2760     * independent of a particular patient, practitioner, or other performance
2761     * context.
2762     */
2763    ACTIVITYDEFINITION,
2764    /**
2765     * The EventDefinition resource provides a reusable description of when a
2766     * particular event can occur.
2767     */
2768    EVENTDEFINITION,
2769    /**
2770     * The Measure resource provides the definition of a quality measure.
2771     */
2772    MEASURE,
2773    /**
2774     * A formal computable definition of an operation (on the RESTful interface) or
2775     * a named query (using the search interaction).
2776     */
2777    OPERATIONDEFINITION,
2778    /**
2779     * This resource allows for the definition of various types of plans as a
2780     * sharable, consumable, and executable artifact. The resource is general enough
2781     * to support the description of a broad range of clinical artifacts such as
2782     * clinical decision support rules, order sets and protocols.
2783     */
2784    PLANDEFINITION,
2785    /**
2786     * A structured set of questions intended to guide the collection of answers
2787     * from end-users. Questionnaires provide detailed control over order,
2788     * presentation, phraseology and grouping to allow coherent, consistent data
2789     * collection.
2790     */
2791    QUESTIONNAIRE,
2792    /**
2793     * added to help the parsers
2794     */
2795    NULL;
2796
2797    public static DefinitionResourceType fromCode(String codeString) throws FHIRException {
2798      if (codeString == null || "".equals(codeString))
2799        return null;
2800      if ("ActivityDefinition".equals(codeString))
2801        return ACTIVITYDEFINITION;
2802      if ("EventDefinition".equals(codeString))
2803        return EVENTDEFINITION;
2804      if ("Measure".equals(codeString))
2805        return MEASURE;
2806      if ("OperationDefinition".equals(codeString))
2807        return OPERATIONDEFINITION;
2808      if ("PlanDefinition".equals(codeString))
2809        return PLANDEFINITION;
2810      if ("Questionnaire".equals(codeString))
2811        return QUESTIONNAIRE;
2812      throw new FHIRException("Unknown DefinitionResourceType code '" + codeString + "'");
2813    }
2814
2815    public String toCode() {
2816      switch (this) {
2817      case ACTIVITYDEFINITION:
2818        return "ActivityDefinition";
2819      case EVENTDEFINITION:
2820        return "EventDefinition";
2821      case MEASURE:
2822        return "Measure";
2823      case OPERATIONDEFINITION:
2824        return "OperationDefinition";
2825      case PLANDEFINITION:
2826        return "PlanDefinition";
2827      case QUESTIONNAIRE:
2828        return "Questionnaire";
2829      case NULL:
2830        return null;
2831      default:
2832        return "?";
2833      }
2834    }
2835
2836    public String getSystem() {
2837      switch (this) {
2838      case ACTIVITYDEFINITION:
2839        return "http://hl7.org/fhir/definition-resource-types";
2840      case EVENTDEFINITION:
2841        return "http://hl7.org/fhir/definition-resource-types";
2842      case MEASURE:
2843        return "http://hl7.org/fhir/definition-resource-types";
2844      case OPERATIONDEFINITION:
2845        return "http://hl7.org/fhir/definition-resource-types";
2846      case PLANDEFINITION:
2847        return "http://hl7.org/fhir/definition-resource-types";
2848      case QUESTIONNAIRE:
2849        return "http://hl7.org/fhir/definition-resource-types";
2850      case NULL:
2851        return null;
2852      default:
2853        return "?";
2854      }
2855    }
2856
2857    public String getDefinition() {
2858      switch (this) {
2859      case ACTIVITYDEFINITION:
2860        return "This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.";
2861      case EVENTDEFINITION:
2862        return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
2863      case MEASURE:
2864        return "The Measure resource provides the definition of a quality measure.";
2865      case OPERATIONDEFINITION:
2866        return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
2867      case PLANDEFINITION:
2868        return "This resource allows for the definition of various types of plans as a sharable, consumable, and executable artifact. The resource is general enough to support the description of a broad range of clinical artifacts such as clinical decision support rules, order sets and protocols.";
2869      case QUESTIONNAIRE:
2870        return "A structured set of questions intended to guide the collection of answers from end-users. Questionnaires provide detailed control over order, presentation, phraseology and grouping to allow coherent, consistent data collection.";
2871      case NULL:
2872        return null;
2873      default:
2874        return "?";
2875      }
2876    }
2877
2878    public String getDisplay() {
2879      switch (this) {
2880      case ACTIVITYDEFINITION:
2881        return "ActivityDefinition";
2882      case EVENTDEFINITION:
2883        return "EventDefinition";
2884      case MEASURE:
2885        return "Measure";
2886      case OPERATIONDEFINITION:
2887        return "OperationDefinition";
2888      case PLANDEFINITION:
2889        return "PlanDefinition";
2890      case QUESTIONNAIRE:
2891        return "Questionnaire";
2892      case NULL:
2893        return null;
2894      default:
2895        return "?";
2896      }
2897    }
2898  }
2899
2900  public static class DefinitionResourceTypeEnumFactory implements EnumFactory<DefinitionResourceType> {
2901    public DefinitionResourceType fromCode(String codeString) throws IllegalArgumentException {
2902      if (codeString == null || "".equals(codeString))
2903        if (codeString == null || "".equals(codeString))
2904          return null;
2905      if ("ActivityDefinition".equals(codeString))
2906        return DefinitionResourceType.ACTIVITYDEFINITION;
2907      if ("EventDefinition".equals(codeString))
2908        return DefinitionResourceType.EVENTDEFINITION;
2909      if ("Measure".equals(codeString))
2910        return DefinitionResourceType.MEASURE;
2911      if ("OperationDefinition".equals(codeString))
2912        return DefinitionResourceType.OPERATIONDEFINITION;
2913      if ("PlanDefinition".equals(codeString))
2914        return DefinitionResourceType.PLANDEFINITION;
2915      if ("Questionnaire".equals(codeString))
2916        return DefinitionResourceType.QUESTIONNAIRE;
2917      throw new IllegalArgumentException("Unknown DefinitionResourceType code '" + codeString + "'");
2918    }
2919
2920    public Enumeration<DefinitionResourceType> fromType(PrimitiveType<?> code) throws FHIRException {
2921      if (code == null)
2922        return null;
2923      if (code.isEmpty())
2924        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.NULL, code);
2925      String codeString = code.asStringValue();
2926      if (codeString == null || "".equals(codeString))
2927        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.NULL, code);
2928      if ("ActivityDefinition".equals(codeString))
2929        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.ACTIVITYDEFINITION, code);
2930      if ("EventDefinition".equals(codeString))
2931        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.EVENTDEFINITION, code);
2932      if ("Measure".equals(codeString))
2933        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.MEASURE, code);
2934      if ("OperationDefinition".equals(codeString))
2935        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.OPERATIONDEFINITION, code);
2936      if ("PlanDefinition".equals(codeString))
2937        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.PLANDEFINITION, code);
2938      if ("Questionnaire".equals(codeString))
2939        return new Enumeration<DefinitionResourceType>(this, DefinitionResourceType.QUESTIONNAIRE, code);
2940      throw new FHIRException("Unknown DefinitionResourceType code '" + codeString + "'");
2941    }
2942
2943    public String toCode(DefinitionResourceType code) {
2944       if (code == DefinitionResourceType.NULL)
2945           return null;
2946       if (code == DefinitionResourceType.ACTIVITYDEFINITION)
2947        return "ActivityDefinition";
2948      if (code == DefinitionResourceType.EVENTDEFINITION)
2949        return "EventDefinition";
2950      if (code == DefinitionResourceType.MEASURE)
2951        return "Measure";
2952      if (code == DefinitionResourceType.OPERATIONDEFINITION)
2953        return "OperationDefinition";
2954      if (code == DefinitionResourceType.PLANDEFINITION)
2955        return "PlanDefinition";
2956      if (code == DefinitionResourceType.QUESTIONNAIRE)
2957        return "Questionnaire";
2958      return "?";
2959   }
2960
2961    public String toSystem(DefinitionResourceType code) {
2962      return code.getSystem();
2963    }
2964  }
2965
2966  public enum DocumentReferenceStatus {
2967    /**
2968     * This is the current reference for this document.
2969     */
2970    CURRENT,
2971    /**
2972     * This reference has been superseded by another reference.
2973     */
2974    SUPERSEDED,
2975    /**
2976     * This reference was created in error.
2977     */
2978    ENTEREDINERROR,
2979    /**
2980     * added to help the parsers
2981     */
2982    NULL;
2983
2984    public static DocumentReferenceStatus fromCode(String codeString) throws FHIRException {
2985      if (codeString == null || "".equals(codeString))
2986        return null;
2987      if ("current".equals(codeString))
2988        return CURRENT;
2989      if ("superseded".equals(codeString))
2990        return SUPERSEDED;
2991      if ("entered-in-error".equals(codeString))
2992        return ENTEREDINERROR;
2993      throw new FHIRException("Unknown DocumentReferenceStatus code '" + codeString + "'");
2994    }
2995
2996    public String toCode() {
2997      switch (this) {
2998      case CURRENT:
2999        return "current";
3000      case SUPERSEDED:
3001        return "superseded";
3002      case ENTEREDINERROR:
3003        return "entered-in-error";
3004      case NULL:
3005        return null;
3006      default:
3007        return "?";
3008      }
3009    }
3010
3011    public String getSystem() {
3012      switch (this) {
3013      case CURRENT:
3014        return "http://hl7.org/fhir/document-reference-status";
3015      case SUPERSEDED:
3016        return "http://hl7.org/fhir/document-reference-status";
3017      case ENTEREDINERROR:
3018        return "http://hl7.org/fhir/document-reference-status";
3019      case NULL:
3020        return null;
3021      default:
3022        return "?";
3023      }
3024    }
3025
3026    public String getDefinition() {
3027      switch (this) {
3028      case CURRENT:
3029        return "This is the current reference for this document.";
3030      case SUPERSEDED:
3031        return "This reference has been superseded by another reference.";
3032      case ENTEREDINERROR:
3033        return "This reference was created in error.";
3034      case NULL:
3035        return null;
3036      default:
3037        return "?";
3038      }
3039    }
3040
3041    public String getDisplay() {
3042      switch (this) {
3043      case CURRENT:
3044        return "Current";
3045      case SUPERSEDED:
3046        return "Superseded";
3047      case ENTEREDINERROR:
3048        return "Entered in Error";
3049      case NULL:
3050        return null;
3051      default:
3052        return "?";
3053      }
3054    }
3055  }
3056
3057  public static class DocumentReferenceStatusEnumFactory implements EnumFactory<DocumentReferenceStatus> {
3058    public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException {
3059      if (codeString == null || "".equals(codeString))
3060        if (codeString == null || "".equals(codeString))
3061          return null;
3062      if ("current".equals(codeString))
3063        return DocumentReferenceStatus.CURRENT;
3064      if ("superseded".equals(codeString))
3065        return DocumentReferenceStatus.SUPERSEDED;
3066      if ("entered-in-error".equals(codeString))
3067        return DocumentReferenceStatus.ENTEREDINERROR;
3068      throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '" + codeString + "'");
3069    }
3070
3071    public Enumeration<DocumentReferenceStatus> fromType(PrimitiveType<?> code) throws FHIRException {
3072      if (code == null)
3073        return null;
3074      if (code.isEmpty())
3075        return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.NULL, code);
3076      String codeString = code.asStringValue();
3077      if (codeString == null || "".equals(codeString))
3078        return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.NULL, code);
3079      if ("current".equals(codeString))
3080        return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.CURRENT, code);
3081      if ("superseded".equals(codeString))
3082        return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.SUPERSEDED, code);
3083      if ("entered-in-error".equals(codeString))
3084        return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.ENTEREDINERROR, code);
3085      throw new FHIRException("Unknown DocumentReferenceStatus code '" + codeString + "'");
3086    }
3087
3088    public String toCode(DocumentReferenceStatus code) {
3089       if (code == DocumentReferenceStatus.NULL)
3090           return null;
3091       if (code == DocumentReferenceStatus.CURRENT)
3092        return "current";
3093      if (code == DocumentReferenceStatus.SUPERSEDED)
3094        return "superseded";
3095      if (code == DocumentReferenceStatus.ENTEREDINERROR)
3096        return "entered-in-error";
3097      return "?";
3098   }
3099
3100    public String toSystem(DocumentReferenceStatus code) {
3101      return code.getSystem();
3102    }
3103  }
3104
3105  public enum EventResourceType {
3106    /**
3107     * Item containing charge code(s) associated with the provision of healthcare
3108     * provider products.
3109     */
3110    CHARGEITEM,
3111    /**
3112     * Remittance resource.
3113     */
3114    CLAIMRESPONSE,
3115    /**
3116     * A clinical assessment performed when planning treatments and management
3117     * strategies for a patient.
3118     */
3119    CLINICALIMPRESSION,
3120    /**
3121     * A record of information transmitted from a sender to a receiver.
3122     */
3123    COMMUNICATION,
3124    /**
3125     * A set of resources composed into a single coherent clinical statement with
3126     * clinical attestation.
3127     */
3128    COMPOSITION,
3129    /**
3130     * Detailed information about conditions, problems or diagnoses.
3131     */
3132    CONDITION,
3133    /**
3134     * A healthcare consumer's policy choices to permits or denies recipients or
3135     * roles to perform actions for specific purposes and periods of time.
3136     */
3137    CONSENT,
3138    /**
3139     * Insurance or medical plan or a payment agreement.
3140     */
3141    COVERAGE,
3142    /**
3143     * Record of use of a device.
3144     */
3145    DEVICEUSESTATEMENT,
3146    /**
3147     * A Diagnostic report - a combination of request information, atomic results,
3148     * images, interpretation, as well as formatted reports.
3149     */
3150    DIAGNOSTICREPORT,
3151    /**
3152     * A list that defines a set of documents.
3153     */
3154    DOCUMENTMANIFEST,
3155    /**
3156     * A reference to a document.
3157     */
3158    DOCUMENTREFERENCE,
3159    /**
3160     * An interaction during which services are provided to the patient.
3161     */
3162    ENCOUNTER,
3163    /**
3164     * EnrollmentResponse resource.
3165     */
3166    ENROLLMENTRESPONSE,
3167    /**
3168     * An association of a Patient with an Organization and Healthcare Provider(s)
3169     * for a period of time that the Organization assumes some level of
3170     * responsibility.
3171     */
3172    EPISODEOFCARE,
3173    /**
3174     * Explanation of Benefit resource.
3175     */
3176    EXPLANATIONOFBENEFIT,
3177    /**
3178     * Information about patient's relatives, relevant for patient.
3179     */
3180    FAMILYMEMBERHISTORY,
3181    /**
3182     * The formal response to a guidance request.
3183     */
3184    GUIDANCERESPONSE,
3185    /**
3186     * A set of images produced in single study (one or more series of references
3187     * images).
3188     */
3189    IMAGINGSTUDY,
3190    /**
3191     * Immunization event information.
3192     */
3193    IMMUNIZATION,
3194    /**
3195     * Results of a measure evaluation.
3196     */
3197    MEASUREREPORT,
3198    /**
3199     * A photo, video, or audio recording acquired or used in healthcare. The actual
3200     * content may be inline or provided by direct reference.
3201     */
3202    MEDIA,
3203    /**
3204     * Administration of medication to a patient.
3205     */
3206    MEDICATIONADMINISTRATION,
3207    /**
3208     * Dispensing a medication to a named patient.
3209     */
3210    MEDICATIONDISPENSE,
3211    /**
3212     * Record of medication being taken by a patient.
3213     */
3214    MEDICATIONSTATEMENT,
3215    /**
3216     * Measurements and simple assertions.
3217     */
3218    OBSERVATION,
3219    /**
3220     * PaymentNotice request.
3221     */
3222    PAYMENTNOTICE,
3223    /**
3224     * PaymentReconciliation resource.
3225     */
3226    PAYMENTRECONCILIATION,
3227    /**
3228     * An action that is being or was performed on a patient.
3229     */
3230    PROCEDURE,
3231    /**
3232     * ProcessResponse resource.
3233     */
3234    PROCESSRESPONSE,
3235    /**
3236     * A structured set of questions and their answers.
3237     */
3238    QUESTIONNAIRERESPONSE,
3239    /**
3240     * Potential outcomes for a subject with likelihood.
3241     */
3242    RISKASSESSMENT,
3243    /**
3244     * Delivery of bulk Supplies.
3245     */
3246    SUPPLYDELIVERY,
3247    /**
3248     * A task to be performed.
3249     */
3250    TASK,
3251    /**
3252     * added to help the parsers
3253     */
3254    NULL;
3255
3256    public static EventResourceType fromCode(String codeString) throws FHIRException {
3257      if (codeString == null || "".equals(codeString))
3258        return null;
3259      if ("ChargeItem".equals(codeString))
3260        return CHARGEITEM;
3261      if ("ClaimResponse".equals(codeString))
3262        return CLAIMRESPONSE;
3263      if ("ClinicalImpression".equals(codeString))
3264        return CLINICALIMPRESSION;
3265      if ("Communication".equals(codeString))
3266        return COMMUNICATION;
3267      if ("Composition".equals(codeString))
3268        return COMPOSITION;
3269      if ("Condition".equals(codeString))
3270        return CONDITION;
3271      if ("Consent".equals(codeString))
3272        return CONSENT;
3273      if ("Coverage".equals(codeString))
3274        return COVERAGE;
3275      if ("DeviceUseStatement".equals(codeString))
3276        return DEVICEUSESTATEMENT;
3277      if ("DiagnosticReport".equals(codeString))
3278        return DIAGNOSTICREPORT;
3279      if ("DocumentManifest".equals(codeString))
3280        return DOCUMENTMANIFEST;
3281      if ("DocumentReference".equals(codeString))
3282        return DOCUMENTREFERENCE;
3283      if ("Encounter".equals(codeString))
3284        return ENCOUNTER;
3285      if ("EnrollmentResponse".equals(codeString))
3286        return ENROLLMENTRESPONSE;
3287      if ("EpisodeOfCare".equals(codeString))
3288        return EPISODEOFCARE;
3289      if ("ExplanationOfBenefit".equals(codeString))
3290        return EXPLANATIONOFBENEFIT;
3291      if ("FamilyMemberHistory".equals(codeString))
3292        return FAMILYMEMBERHISTORY;
3293      if ("GuidanceResponse".equals(codeString))
3294        return GUIDANCERESPONSE;
3295      if ("ImagingStudy".equals(codeString))
3296        return IMAGINGSTUDY;
3297      if ("Immunization".equals(codeString))
3298        return IMMUNIZATION;
3299      if ("MeasureReport".equals(codeString))
3300        return MEASUREREPORT;
3301      if ("Media".equals(codeString))
3302        return MEDIA;
3303      if ("MedicationAdministration".equals(codeString))
3304        return MEDICATIONADMINISTRATION;
3305      if ("MedicationDispense".equals(codeString))
3306        return MEDICATIONDISPENSE;
3307      if ("MedicationStatement".equals(codeString))
3308        return MEDICATIONSTATEMENT;
3309      if ("Observation".equals(codeString))
3310        return OBSERVATION;
3311      if ("PaymentNotice".equals(codeString))
3312        return PAYMENTNOTICE;
3313      if ("PaymentReconciliation".equals(codeString))
3314        return PAYMENTRECONCILIATION;
3315      if ("Procedure".equals(codeString))
3316        return PROCEDURE;
3317      if ("ProcessResponse".equals(codeString))
3318        return PROCESSRESPONSE;
3319      if ("QuestionnaireResponse".equals(codeString))
3320        return QUESTIONNAIRERESPONSE;
3321      if ("RiskAssessment".equals(codeString))
3322        return RISKASSESSMENT;
3323      if ("SupplyDelivery".equals(codeString))
3324        return SUPPLYDELIVERY;
3325      if ("Task".equals(codeString))
3326        return TASK;
3327      throw new FHIRException("Unknown EventResourceType code '" + codeString + "'");
3328    }
3329
3330    public String toCode() {
3331      switch (this) {
3332      case CHARGEITEM:
3333        return "ChargeItem";
3334      case CLAIMRESPONSE:
3335        return "ClaimResponse";
3336      case CLINICALIMPRESSION:
3337        return "ClinicalImpression";
3338      case COMMUNICATION:
3339        return "Communication";
3340      case COMPOSITION:
3341        return "Composition";
3342      case CONDITION:
3343        return "Condition";
3344      case CONSENT:
3345        return "Consent";
3346      case COVERAGE:
3347        return "Coverage";
3348      case DEVICEUSESTATEMENT:
3349        return "DeviceUseStatement";
3350      case DIAGNOSTICREPORT:
3351        return "DiagnosticReport";
3352      case DOCUMENTMANIFEST:
3353        return "DocumentManifest";
3354      case DOCUMENTREFERENCE:
3355        return "DocumentReference";
3356      case ENCOUNTER:
3357        return "Encounter";
3358      case ENROLLMENTRESPONSE:
3359        return "EnrollmentResponse";
3360      case EPISODEOFCARE:
3361        return "EpisodeOfCare";
3362      case EXPLANATIONOFBENEFIT:
3363        return "ExplanationOfBenefit";
3364      case FAMILYMEMBERHISTORY:
3365        return "FamilyMemberHistory";
3366      case GUIDANCERESPONSE:
3367        return "GuidanceResponse";
3368      case IMAGINGSTUDY:
3369        return "ImagingStudy";
3370      case IMMUNIZATION:
3371        return "Immunization";
3372      case MEASUREREPORT:
3373        return "MeasureReport";
3374      case MEDIA:
3375        return "Media";
3376      case MEDICATIONADMINISTRATION:
3377        return "MedicationAdministration";
3378      case MEDICATIONDISPENSE:
3379        return "MedicationDispense";
3380      case MEDICATIONSTATEMENT:
3381        return "MedicationStatement";
3382      case OBSERVATION:
3383        return "Observation";
3384      case PAYMENTNOTICE:
3385        return "PaymentNotice";
3386      case PAYMENTRECONCILIATION:
3387        return "PaymentReconciliation";
3388      case PROCEDURE:
3389        return "Procedure";
3390      case PROCESSRESPONSE:
3391        return "ProcessResponse";
3392      case QUESTIONNAIRERESPONSE:
3393        return "QuestionnaireResponse";
3394      case RISKASSESSMENT:
3395        return "RiskAssessment";
3396      case SUPPLYDELIVERY:
3397        return "SupplyDelivery";
3398      case TASK:
3399        return "Task";
3400      case NULL:
3401        return null;
3402      default:
3403        return "?";
3404      }
3405    }
3406
3407    public String getSystem() {
3408      switch (this) {
3409      case CHARGEITEM:
3410        return "http://hl7.org/fhir/event-resource-types";
3411      case CLAIMRESPONSE:
3412        return "http://hl7.org/fhir/event-resource-types";
3413      case CLINICALIMPRESSION:
3414        return "http://hl7.org/fhir/event-resource-types";
3415      case COMMUNICATION:
3416        return "http://hl7.org/fhir/event-resource-types";
3417      case COMPOSITION:
3418        return "http://hl7.org/fhir/event-resource-types";
3419      case CONDITION:
3420        return "http://hl7.org/fhir/event-resource-types";
3421      case CONSENT:
3422        return "http://hl7.org/fhir/event-resource-types";
3423      case COVERAGE:
3424        return "http://hl7.org/fhir/event-resource-types";
3425      case DEVICEUSESTATEMENT:
3426        return "http://hl7.org/fhir/event-resource-types";
3427      case DIAGNOSTICREPORT:
3428        return "http://hl7.org/fhir/event-resource-types";
3429      case DOCUMENTMANIFEST:
3430        return "http://hl7.org/fhir/event-resource-types";
3431      case DOCUMENTREFERENCE:
3432        return "http://hl7.org/fhir/event-resource-types";
3433      case ENCOUNTER:
3434        return "http://hl7.org/fhir/event-resource-types";
3435      case ENROLLMENTRESPONSE:
3436        return "http://hl7.org/fhir/event-resource-types";
3437      case EPISODEOFCARE:
3438        return "http://hl7.org/fhir/event-resource-types";
3439      case EXPLANATIONOFBENEFIT:
3440        return "http://hl7.org/fhir/event-resource-types";
3441      case FAMILYMEMBERHISTORY:
3442        return "http://hl7.org/fhir/event-resource-types";
3443      case GUIDANCERESPONSE:
3444        return "http://hl7.org/fhir/event-resource-types";
3445      case IMAGINGSTUDY:
3446        return "http://hl7.org/fhir/event-resource-types";
3447      case IMMUNIZATION:
3448        return "http://hl7.org/fhir/event-resource-types";
3449      case MEASUREREPORT:
3450        return "http://hl7.org/fhir/event-resource-types";
3451      case MEDIA:
3452        return "http://hl7.org/fhir/event-resource-types";
3453      case MEDICATIONADMINISTRATION:
3454        return "http://hl7.org/fhir/event-resource-types";
3455      case MEDICATIONDISPENSE:
3456        return "http://hl7.org/fhir/event-resource-types";
3457      case MEDICATIONSTATEMENT:
3458        return "http://hl7.org/fhir/event-resource-types";
3459      case OBSERVATION:
3460        return "http://hl7.org/fhir/event-resource-types";
3461      case PAYMENTNOTICE:
3462        return "http://hl7.org/fhir/event-resource-types";
3463      case PAYMENTRECONCILIATION:
3464        return "http://hl7.org/fhir/event-resource-types";
3465      case PROCEDURE:
3466        return "http://hl7.org/fhir/event-resource-types";
3467      case PROCESSRESPONSE:
3468        return "http://hl7.org/fhir/event-resource-types";
3469      case QUESTIONNAIRERESPONSE:
3470        return "http://hl7.org/fhir/event-resource-types";
3471      case RISKASSESSMENT:
3472        return "http://hl7.org/fhir/event-resource-types";
3473      case SUPPLYDELIVERY:
3474        return "http://hl7.org/fhir/event-resource-types";
3475      case TASK:
3476        return "http://hl7.org/fhir/event-resource-types";
3477      case NULL:
3478        return null;
3479      default:
3480        return "?";
3481      }
3482    }
3483
3484    public String getDefinition() {
3485      switch (this) {
3486      case CHARGEITEM:
3487        return "Item containing charge code(s) associated with the provision of healthcare provider products.";
3488      case CLAIMRESPONSE:
3489        return "Remittance resource.";
3490      case CLINICALIMPRESSION:
3491        return "A clinical assessment performed when planning treatments and management strategies for a patient.";
3492      case COMMUNICATION:
3493        return "A record of information transmitted from a sender to a receiver.";
3494      case COMPOSITION:
3495        return "A set of resources composed into a single coherent clinical statement with clinical attestation.";
3496      case CONDITION:
3497        return "Detailed information about conditions, problems or diagnoses.";
3498      case CONSENT:
3499        return "A healthcare consumer's policy choices to permits or denies recipients or roles to perform actions for specific purposes and periods of time.";
3500      case COVERAGE:
3501        return "Insurance or medical plan or a payment agreement.";
3502      case DEVICEUSESTATEMENT:
3503        return "Record of use of a device.";
3504      case DIAGNOSTICREPORT:
3505        return "A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports.";
3506      case DOCUMENTMANIFEST:
3507        return "A list that defines a set of documents.";
3508      case DOCUMENTREFERENCE:
3509        return "A reference to a document.";
3510      case ENCOUNTER:
3511        return "An interaction during which services are provided to the patient.";
3512      case ENROLLMENTRESPONSE:
3513        return "EnrollmentResponse resource.";
3514      case EPISODEOFCARE:
3515        return "An association of a Patient with an Organization and  Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility.";
3516      case EXPLANATIONOFBENEFIT:
3517        return "Explanation of Benefit resource.";
3518      case FAMILYMEMBERHISTORY:
3519        return "Information about patient's relatives, relevant for patient.";
3520      case GUIDANCERESPONSE:
3521        return "The formal response to a guidance request.";
3522      case IMAGINGSTUDY:
3523        return "A set of images produced in single study (one or more series of references images).";
3524      case IMMUNIZATION:
3525        return "Immunization event information.";
3526      case MEASUREREPORT:
3527        return "Results of a measure evaluation.";
3528      case MEDIA:
3529        return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
3530      case MEDICATIONADMINISTRATION:
3531        return "Administration of medication to a patient.";
3532      case MEDICATIONDISPENSE:
3533        return "Dispensing a medication to a named patient.";
3534      case MEDICATIONSTATEMENT:
3535        return "Record of medication being taken by a patient.";
3536      case OBSERVATION:
3537        return "Measurements and simple assertions.";
3538      case PAYMENTNOTICE:
3539        return "PaymentNotice request.";
3540      case PAYMENTRECONCILIATION:
3541        return "PaymentReconciliation resource.";
3542      case PROCEDURE:
3543        return "An action that is being or was performed on a patient.";
3544      case PROCESSRESPONSE:
3545        return "ProcessResponse resource.";
3546      case QUESTIONNAIRERESPONSE:
3547        return "A structured set of questions and their answers.";
3548      case RISKASSESSMENT:
3549        return "Potential outcomes for a subject with likelihood.";
3550      case SUPPLYDELIVERY:
3551        return "Delivery of bulk Supplies.";
3552      case TASK:
3553        return "A task to be performed.";
3554      case NULL:
3555        return null;
3556      default:
3557        return "?";
3558      }
3559    }
3560
3561    public String getDisplay() {
3562      switch (this) {
3563      case CHARGEITEM:
3564        return "ChargeItem";
3565      case CLAIMRESPONSE:
3566        return "ClaimResponse";
3567      case CLINICALIMPRESSION:
3568        return "ClinicalImpression";
3569      case COMMUNICATION:
3570        return "Communication";
3571      case COMPOSITION:
3572        return "Composition";
3573      case CONDITION:
3574        return "Condition";
3575      case CONSENT:
3576        return "Consent";
3577      case COVERAGE:
3578        return "Coverage";
3579      case DEVICEUSESTATEMENT:
3580        return "DeviceUseStatement";
3581      case DIAGNOSTICREPORT:
3582        return "DiagnosticReport";
3583      case DOCUMENTMANIFEST:
3584        return "DocumentManifest";
3585      case DOCUMENTREFERENCE:
3586        return "DocumentReference";
3587      case ENCOUNTER:
3588        return "Encounter";
3589      case ENROLLMENTRESPONSE:
3590        return "EnrollmentResponse";
3591      case EPISODEOFCARE:
3592        return "EpisodeOfCare";
3593      case EXPLANATIONOFBENEFIT:
3594        return "ExplanationOfBenefit";
3595      case FAMILYMEMBERHISTORY:
3596        return "FamilyMemberHistory";
3597      case GUIDANCERESPONSE:
3598        return "GuidanceResponse";
3599      case IMAGINGSTUDY:
3600        return "ImagingStudy";
3601      case IMMUNIZATION:
3602        return "Immunization";
3603      case MEASUREREPORT:
3604        return "MeasureReport";
3605      case MEDIA:
3606        return "Media";
3607      case MEDICATIONADMINISTRATION:
3608        return "MedicationAdministration";
3609      case MEDICATIONDISPENSE:
3610        return "MedicationDispense";
3611      case MEDICATIONSTATEMENT:
3612        return "MedicationStatement";
3613      case OBSERVATION:
3614        return "Observation";
3615      case PAYMENTNOTICE:
3616        return "PaymentNotice";
3617      case PAYMENTRECONCILIATION:
3618        return "PaymentReconciliation";
3619      case PROCEDURE:
3620        return "Procedure";
3621      case PROCESSRESPONSE:
3622        return "ProcessResponse";
3623      case QUESTIONNAIRERESPONSE:
3624        return "QuestionnaireResponse";
3625      case RISKASSESSMENT:
3626        return "RiskAssessment";
3627      case SUPPLYDELIVERY:
3628        return "SupplyDelivery";
3629      case TASK:
3630        return "Task";
3631      case NULL:
3632        return null;
3633      default:
3634        return "?";
3635      }
3636    }
3637  }
3638
3639  public static class EventResourceTypeEnumFactory implements EnumFactory<EventResourceType> {
3640    public EventResourceType fromCode(String codeString) throws IllegalArgumentException {
3641      if (codeString == null || "".equals(codeString))
3642        if (codeString == null || "".equals(codeString))
3643          return null;
3644      if ("ChargeItem".equals(codeString))
3645        return EventResourceType.CHARGEITEM;
3646      if ("ClaimResponse".equals(codeString))
3647        return EventResourceType.CLAIMRESPONSE;
3648      if ("ClinicalImpression".equals(codeString))
3649        return EventResourceType.CLINICALIMPRESSION;
3650      if ("Communication".equals(codeString))
3651        return EventResourceType.COMMUNICATION;
3652      if ("Composition".equals(codeString))
3653        return EventResourceType.COMPOSITION;
3654      if ("Condition".equals(codeString))
3655        return EventResourceType.CONDITION;
3656      if ("Consent".equals(codeString))
3657        return EventResourceType.CONSENT;
3658      if ("Coverage".equals(codeString))
3659        return EventResourceType.COVERAGE;
3660      if ("DeviceUseStatement".equals(codeString))
3661        return EventResourceType.DEVICEUSESTATEMENT;
3662      if ("DiagnosticReport".equals(codeString))
3663        return EventResourceType.DIAGNOSTICREPORT;
3664      if ("DocumentManifest".equals(codeString))
3665        return EventResourceType.DOCUMENTMANIFEST;
3666      if ("DocumentReference".equals(codeString))
3667        return EventResourceType.DOCUMENTREFERENCE;
3668      if ("Encounter".equals(codeString))
3669        return EventResourceType.ENCOUNTER;
3670      if ("EnrollmentResponse".equals(codeString))
3671        return EventResourceType.ENROLLMENTRESPONSE;
3672      if ("EpisodeOfCare".equals(codeString))
3673        return EventResourceType.EPISODEOFCARE;
3674      if ("ExplanationOfBenefit".equals(codeString))
3675        return EventResourceType.EXPLANATIONOFBENEFIT;
3676      if ("FamilyMemberHistory".equals(codeString))
3677        return EventResourceType.FAMILYMEMBERHISTORY;
3678      if ("GuidanceResponse".equals(codeString))
3679        return EventResourceType.GUIDANCERESPONSE;
3680      if ("ImagingStudy".equals(codeString))
3681        return EventResourceType.IMAGINGSTUDY;
3682      if ("Immunization".equals(codeString))
3683        return EventResourceType.IMMUNIZATION;
3684      if ("MeasureReport".equals(codeString))
3685        return EventResourceType.MEASUREREPORT;
3686      if ("Media".equals(codeString))
3687        return EventResourceType.MEDIA;
3688      if ("MedicationAdministration".equals(codeString))
3689        return EventResourceType.MEDICATIONADMINISTRATION;
3690      if ("MedicationDispense".equals(codeString))
3691        return EventResourceType.MEDICATIONDISPENSE;
3692      if ("MedicationStatement".equals(codeString))
3693        return EventResourceType.MEDICATIONSTATEMENT;
3694      if ("Observation".equals(codeString))
3695        return EventResourceType.OBSERVATION;
3696      if ("PaymentNotice".equals(codeString))
3697        return EventResourceType.PAYMENTNOTICE;
3698      if ("PaymentReconciliation".equals(codeString))
3699        return EventResourceType.PAYMENTRECONCILIATION;
3700      if ("Procedure".equals(codeString))
3701        return EventResourceType.PROCEDURE;
3702      if ("ProcessResponse".equals(codeString))
3703        return EventResourceType.PROCESSRESPONSE;
3704      if ("QuestionnaireResponse".equals(codeString))
3705        return EventResourceType.QUESTIONNAIRERESPONSE;
3706      if ("RiskAssessment".equals(codeString))
3707        return EventResourceType.RISKASSESSMENT;
3708      if ("SupplyDelivery".equals(codeString))
3709        return EventResourceType.SUPPLYDELIVERY;
3710      if ("Task".equals(codeString))
3711        return EventResourceType.TASK;
3712      throw new IllegalArgumentException("Unknown EventResourceType code '" + codeString + "'");
3713    }
3714
3715    public Enumeration<EventResourceType> fromType(PrimitiveType<?> code) throws FHIRException {
3716      if (code == null)
3717        return null;
3718      if (code.isEmpty())
3719        return new Enumeration<EventResourceType>(this, EventResourceType.NULL, code);
3720      String codeString = code.asStringValue();
3721      if (codeString == null || "".equals(codeString))
3722        return new Enumeration<EventResourceType>(this, EventResourceType.NULL, code);
3723      if ("ChargeItem".equals(codeString))
3724        return new Enumeration<EventResourceType>(this, EventResourceType.CHARGEITEM, code);
3725      if ("ClaimResponse".equals(codeString))
3726        return new Enumeration<EventResourceType>(this, EventResourceType.CLAIMRESPONSE, code);
3727      if ("ClinicalImpression".equals(codeString))
3728        return new Enumeration<EventResourceType>(this, EventResourceType.CLINICALIMPRESSION, code);
3729      if ("Communication".equals(codeString))
3730        return new Enumeration<EventResourceType>(this, EventResourceType.COMMUNICATION, code);
3731      if ("Composition".equals(codeString))
3732        return new Enumeration<EventResourceType>(this, EventResourceType.COMPOSITION, code);
3733      if ("Condition".equals(codeString))
3734        return new Enumeration<EventResourceType>(this, EventResourceType.CONDITION, code);
3735      if ("Consent".equals(codeString))
3736        return new Enumeration<EventResourceType>(this, EventResourceType.CONSENT, code);
3737      if ("Coverage".equals(codeString))
3738        return new Enumeration<EventResourceType>(this, EventResourceType.COVERAGE, code);
3739      if ("DeviceUseStatement".equals(codeString))
3740        return new Enumeration<EventResourceType>(this, EventResourceType.DEVICEUSESTATEMENT, code);
3741      if ("DiagnosticReport".equals(codeString))
3742        return new Enumeration<EventResourceType>(this, EventResourceType.DIAGNOSTICREPORT, code);
3743      if ("DocumentManifest".equals(codeString))
3744        return new Enumeration<EventResourceType>(this, EventResourceType.DOCUMENTMANIFEST, code);
3745      if ("DocumentReference".equals(codeString))
3746        return new Enumeration<EventResourceType>(this, EventResourceType.DOCUMENTREFERENCE, code);
3747      if ("Encounter".equals(codeString))
3748        return new Enumeration<EventResourceType>(this, EventResourceType.ENCOUNTER, code);
3749      if ("EnrollmentResponse".equals(codeString))
3750        return new Enumeration<EventResourceType>(this, EventResourceType.ENROLLMENTRESPONSE, code);
3751      if ("EpisodeOfCare".equals(codeString))
3752        return new Enumeration<EventResourceType>(this, EventResourceType.EPISODEOFCARE, code);
3753      if ("ExplanationOfBenefit".equals(codeString))
3754        return new Enumeration<EventResourceType>(this, EventResourceType.EXPLANATIONOFBENEFIT, code);
3755      if ("FamilyMemberHistory".equals(codeString))
3756        return new Enumeration<EventResourceType>(this, EventResourceType.FAMILYMEMBERHISTORY, code);
3757      if ("GuidanceResponse".equals(codeString))
3758        return new Enumeration<EventResourceType>(this, EventResourceType.GUIDANCERESPONSE, code);
3759      if ("ImagingStudy".equals(codeString))
3760        return new Enumeration<EventResourceType>(this, EventResourceType.IMAGINGSTUDY, code);
3761      if ("Immunization".equals(codeString))
3762        return new Enumeration<EventResourceType>(this, EventResourceType.IMMUNIZATION, code);
3763      if ("MeasureReport".equals(codeString))
3764        return new Enumeration<EventResourceType>(this, EventResourceType.MEASUREREPORT, code);
3765      if ("Media".equals(codeString))
3766        return new Enumeration<EventResourceType>(this, EventResourceType.MEDIA, code);
3767      if ("MedicationAdministration".equals(codeString))
3768        return new Enumeration<EventResourceType>(this, EventResourceType.MEDICATIONADMINISTRATION, code);
3769      if ("MedicationDispense".equals(codeString))
3770        return new Enumeration<EventResourceType>(this, EventResourceType.MEDICATIONDISPENSE, code);
3771      if ("MedicationStatement".equals(codeString))
3772        return new Enumeration<EventResourceType>(this, EventResourceType.MEDICATIONSTATEMENT, code);
3773      if ("Observation".equals(codeString))
3774        return new Enumeration<EventResourceType>(this, EventResourceType.OBSERVATION, code);
3775      if ("PaymentNotice".equals(codeString))
3776        return new Enumeration<EventResourceType>(this, EventResourceType.PAYMENTNOTICE, code);
3777      if ("PaymentReconciliation".equals(codeString))
3778        return new Enumeration<EventResourceType>(this, EventResourceType.PAYMENTRECONCILIATION, code);
3779      if ("Procedure".equals(codeString))
3780        return new Enumeration<EventResourceType>(this, EventResourceType.PROCEDURE, code);
3781      if ("ProcessResponse".equals(codeString))
3782        return new Enumeration<EventResourceType>(this, EventResourceType.PROCESSRESPONSE, code);
3783      if ("QuestionnaireResponse".equals(codeString))
3784        return new Enumeration<EventResourceType>(this, EventResourceType.QUESTIONNAIRERESPONSE, code);
3785      if ("RiskAssessment".equals(codeString))
3786        return new Enumeration<EventResourceType>(this, EventResourceType.RISKASSESSMENT, code);
3787      if ("SupplyDelivery".equals(codeString))
3788        return new Enumeration<EventResourceType>(this, EventResourceType.SUPPLYDELIVERY, code);
3789      if ("Task".equals(codeString))
3790        return new Enumeration<EventResourceType>(this, EventResourceType.TASK, code);
3791      throw new FHIRException("Unknown EventResourceType code '" + codeString + "'");
3792    }
3793
3794    public String toCode(EventResourceType code) {
3795       if (code == EventResourceType.NULL)
3796           return null;
3797       if (code == EventResourceType.CHARGEITEM)
3798        return "ChargeItem";
3799      if (code == EventResourceType.CLAIMRESPONSE)
3800        return "ClaimResponse";
3801      if (code == EventResourceType.CLINICALIMPRESSION)
3802        return "ClinicalImpression";
3803      if (code == EventResourceType.COMMUNICATION)
3804        return "Communication";
3805      if (code == EventResourceType.COMPOSITION)
3806        return "Composition";
3807      if (code == EventResourceType.CONDITION)
3808        return "Condition";
3809      if (code == EventResourceType.CONSENT)
3810        return "Consent";
3811      if (code == EventResourceType.COVERAGE)
3812        return "Coverage";
3813      if (code == EventResourceType.DEVICEUSESTATEMENT)
3814        return "DeviceUseStatement";
3815      if (code == EventResourceType.DIAGNOSTICREPORT)
3816        return "DiagnosticReport";
3817      if (code == EventResourceType.DOCUMENTMANIFEST)
3818        return "DocumentManifest";
3819      if (code == EventResourceType.DOCUMENTREFERENCE)
3820        return "DocumentReference";
3821      if (code == EventResourceType.ENCOUNTER)
3822        return "Encounter";
3823      if (code == EventResourceType.ENROLLMENTRESPONSE)
3824        return "EnrollmentResponse";
3825      if (code == EventResourceType.EPISODEOFCARE)
3826        return "EpisodeOfCare";
3827      if (code == EventResourceType.EXPLANATIONOFBENEFIT)
3828        return "ExplanationOfBenefit";
3829      if (code == EventResourceType.FAMILYMEMBERHISTORY)
3830        return "FamilyMemberHistory";
3831      if (code == EventResourceType.GUIDANCERESPONSE)
3832        return "GuidanceResponse";
3833      if (code == EventResourceType.IMAGINGSTUDY)
3834        return "ImagingStudy";
3835      if (code == EventResourceType.IMMUNIZATION)
3836        return "Immunization";
3837      if (code == EventResourceType.MEASUREREPORT)
3838        return "MeasureReport";
3839      if (code == EventResourceType.MEDIA)
3840        return "Media";
3841      if (code == EventResourceType.MEDICATIONADMINISTRATION)
3842        return "MedicationAdministration";
3843      if (code == EventResourceType.MEDICATIONDISPENSE)
3844        return "MedicationDispense";
3845      if (code == EventResourceType.MEDICATIONSTATEMENT)
3846        return "MedicationStatement";
3847      if (code == EventResourceType.OBSERVATION)
3848        return "Observation";
3849      if (code == EventResourceType.PAYMENTNOTICE)
3850        return "PaymentNotice";
3851      if (code == EventResourceType.PAYMENTRECONCILIATION)
3852        return "PaymentReconciliation";
3853      if (code == EventResourceType.PROCEDURE)
3854        return "Procedure";
3855      if (code == EventResourceType.PROCESSRESPONSE)
3856        return "ProcessResponse";
3857      if (code == EventResourceType.QUESTIONNAIRERESPONSE)
3858        return "QuestionnaireResponse";
3859      if (code == EventResourceType.RISKASSESSMENT)
3860        return "RiskAssessment";
3861      if (code == EventResourceType.SUPPLYDELIVERY)
3862        return "SupplyDelivery";
3863      if (code == EventResourceType.TASK)
3864        return "Task";
3865      return "?";
3866   }
3867
3868    public String toSystem(EventResourceType code) {
3869      return code.getSystem();
3870    }
3871  }
3872
3873  public enum FHIRAllTypes {
3874    /**
3875     * An address expressed using postal conventions (as opposed to GPS or other
3876     * location definition formats). This data type may be used to convey addresses
3877     * for use in delivering mail as well as for visiting locations which might not
3878     * be valid for mail delivery. There are a variety of postal address formats
3879     * defined around the world.
3880     */
3881    ADDRESS,
3882    /**
3883     * A duration of time during which an organism (or a process) has existed.
3884     */
3885    AGE,
3886    /**
3887     * A text note which also contains information about who made the statement and
3888     * when.
3889     */
3890    ANNOTATION,
3891    /**
3892     * For referring to data content defined in other formats.
3893     */
3894    ATTACHMENT,
3895    /**
3896     * Base definition for all elements that are defined inside a resource - but not
3897     * those in a data type.
3898     */
3899    BACKBONEELEMENT,
3900    /**
3901     * A concept that may be defined by a formal reference to a terminology or
3902     * ontology or may be provided by text.
3903     */
3904    CODEABLECONCEPT,
3905    /**
3906     * A reference to a code defined by a terminology system.
3907     */
3908    CODING,
3909    /**
3910     * Specifies contact information for a person or organization.
3911     */
3912    CONTACTDETAIL,
3913    /**
3914     * Details for all kinds of technology mediated contact points for a person or
3915     * organization, including telephone, email, etc.
3916     */
3917    CONTACTPOINT,
3918    /**
3919     * A contributor to the content of a knowledge asset, including authors,
3920     * editors, reviewers, and endorsers.
3921     */
3922    CONTRIBUTOR,
3923    /**
3924     * A measured amount (or an amount that can potentially be measured). Note that
3925     * measured amounts include amounts that are not precisely quantified, including
3926     * amounts involving arbitrary units and floating currencies.
3927     */
3928    COUNT,
3929    /**
3930     * Describes a required data item for evaluation in terms of the type of data,
3931     * and optional code or date-based filters of the data.
3932     */
3933    DATAREQUIREMENT,
3934    /**
3935     * A length - a value with a unit that is a physical distance.
3936     */
3937    DISTANCE,
3938    /**
3939     * Indicates how the medication is/was taken or should be taken by the patient.
3940     */
3941    DOSAGE,
3942    /**
3943     * A length of time.
3944     */
3945    DURATION,
3946    /**
3947     * Base definition for all elements in a resource.
3948     */
3949    ELEMENT,
3950    /**
3951     * Captures constraints on each element within the resource, profile, or
3952     * extension.
3953     */
3954    ELEMENTDEFINITION,
3955    /**
3956     * A expression that is evaluated in a specified context and returns a value.
3957     * The context of use of the expression must specify the context in which the
3958     * expression is evaluated, and how the result of the expression is used.
3959     */
3960    EXPRESSION,
3961    /**
3962     * Optional Extension Element - found in all resources.
3963     */
3964    EXTENSION,
3965    /**
3966     * A human's name with the ability to identify parts and usage.
3967     */
3968    HUMANNAME,
3969    /**
3970     * An identifier - identifies some entity uniquely and unambiguously. Typically
3971     * this is used for business identifiers.
3972     */
3973    IDENTIFIER,
3974    /**
3975     * The marketing status describes the date when a medicinal product is actually
3976     * put on the market or the date as of which it is no longer available.
3977     */
3978    MARKETINGSTATUS,
3979    /**
3980     * The metadata about a resource. This is content in the resource that is
3981     * maintained by the infrastructure. Changes to the content might not always be
3982     * associated with version changes to the resource.
3983     */
3984    META,
3985    /**
3986     * An amount of economic utility in some recognized currency.
3987     */
3988    MONEY,
3989    /**
3990     * null
3991     */
3992    MONEYQUANTITY,
3993    /**
3994     * A human-readable summary of the resource conveying the essential clinical and
3995     * business information for the resource.
3996     */
3997    NARRATIVE,
3998    /**
3999     * The parameters to the module. This collection specifies both the input and
4000     * output parameters. Input parameters are provided by the caller as part of the
4001     * $evaluate operation. Output parameters are included in the GuidanceResponse.
4002     */
4003    PARAMETERDEFINITION,
4004    /**
4005     * A time period defined by a start and end date and optionally time.
4006     */
4007    PERIOD,
4008    /**
4009     * A populatioof people with some set of grouping criteria.
4010     */
4011    POPULATION,
4012    /**
4013     * The marketing status describes the date when a medicinal product is actually
4014     * put on the market or the date as of which it is no longer available.
4015     */
4016    PRODCHARACTERISTIC,
4017    /**
4018     * The shelf-life and storage information for a medicinal product item or
4019     * container can be described using this class.
4020     */
4021    PRODUCTSHELFLIFE,
4022    /**
4023     * A measured amount (or an amount that can potentially be measured). Note that
4024     * measured amounts include amounts that are not precisely quantified, including
4025     * amounts involving arbitrary units and floating currencies.
4026     */
4027    QUANTITY,
4028    /**
4029     * A set of ordered Quantities defined by a low and high limit.
4030     */
4031    RANGE,
4032    /**
4033     * A relationship of two Quantity values - expressed as a numerator and a
4034     * denominator.
4035     */
4036    RATIO,
4037    /**
4038     * A reference from one resource to another.
4039     */
4040    REFERENCE,
4041    /**
4042     * Related artifacts such as additional documentation, justification, or
4043     * bibliographic references.
4044     */
4045    RELATEDARTIFACT,
4046    /**
4047     * A series of measurements taken by a device, with upper and lower limits.
4048     * There may be more than one dimension in the data.
4049     */
4050    SAMPLEDDATA,
4051    /**
4052     * A signature along with supporting context. The signature may be a digital
4053     * signature that is cryptographic in nature, or some other signature acceptable
4054     * to the domain. This other signature may be as simple as a graphical image
4055     * representing a hand-written signature, or a signature ceremony Different
4056     * signature approaches have different utilities.
4057     */
4058    SIGNATURE,
4059    /**
4060     * null
4061     */
4062    SIMPLEQUANTITY,
4063    /**
4064     * Chemical substances are a single substance type whose primary defining
4065     * element is the molecular structure. Chemical substances shall be defined on
4066     * the basis of their complete covalent molecular structure; the presence of a
4067     * salt (counter-ion) and/or solvates (water, alcohols) is also captured.
4068     * Purity, grade, physical form or particle size are not taken into account in
4069     * the definition of a chemical substance or in the assignment of a Substance
4070     * ID.
4071     */
4072    SUBSTANCEAMOUNT,
4073    /**
4074     * Specifies an event that may occur multiple times. Timing schedules are used
4075     * to record when things are planned, expected or requested to occur. The most
4076     * common usage is in dosage instructions for medications. They are also used
4077     * when planning care of various kinds, and may be used for reporting the
4078     * schedule to which past regular activities were carried out.
4079     */
4080    TIMING,
4081    /**
4082     * A description of a triggering event. Triggering events can be named events,
4083     * data events, or periodic, as determined by the type element.
4084     */
4085    TRIGGERDEFINITION,
4086    /**
4087     * Specifies clinical/business/etc. metadata that can be used to retrieve, index
4088     * and/or categorize an artifact. This metadata can either be specific to the
4089     * applicable population (e.g., age category, DRG) or the specific context of
4090     * care (e.g., venue, care setting, provider of care).
4091     */
4092    USAGECONTEXT,
4093    /**
4094     * A stream of bytes
4095     */
4096    BASE64BINARY,
4097    /**
4098     * Value of "true" or "false"
4099     */
4100    BOOLEAN,
4101    /**
4102     * A URI that is a reference to a canonical URL on a FHIR resource
4103     */
4104    CANONICAL,
4105    /**
4106     * A string which has at least one character and no leading or trailing
4107     * whitespace and where there is no whitespace other than single spaces in the
4108     * contents
4109     */
4110    CODE,
4111    /**
4112     * A date or partial date (e.g. just year or year + month). There is no time
4113     * zone. The format is a union of the schema types gYear, gYearMonth and date.
4114     * Dates SHALL be valid dates.
4115     */
4116    DATE,
4117    /**
4118     * A date, date-time or partial date (e.g. just year or year + month). If hours
4119     * and minutes are specified, a time zone SHALL be populated. The format is a
4120     * union of the schema types gYear, gYearMonth, date and dateTime. Seconds must
4121     * be provided due to schema type constraints but may be zero-filled and may be
4122     * ignored. Dates SHALL be valid dates.
4123     */
4124    DATETIME,
4125    /**
4126     * A rational number with implicit precision
4127     */
4128    DECIMAL,
4129    /**
4130     * Any combination of letters, numerals, "-" and ".", with a length limit of 64
4131     * characters. (This might be an integer, an unprefixed OID, UUID or any other
4132     * identifier pattern that meets these constraints.) Ids are case-insensitive.
4133     */
4134    ID,
4135    /**
4136     * An instant in time - known at least to the second
4137     */
4138    INSTANT,
4139    /**
4140     * A whole number
4141     */
4142    INTEGER,
4143    /**
4144     * A string that may contain Github Flavored Markdown syntax for optional
4145     * processing by a mark down presentation engine
4146     */
4147    MARKDOWN,
4148    /**
4149     * An OID represented as a URI
4150     */
4151    OID,
4152    /**
4153     * An integer with a value that is positive (e.g. >0)
4154     */
4155    POSITIVEINT,
4156    /**
4157     * A sequence of Unicode characters
4158     */
4159    STRING,
4160    /**
4161     * A time during the day, with no date specified
4162     */
4163    TIME,
4164    /**
4165     * An integer with a value that is not negative (e.g. >= 0)
4166     */
4167    UNSIGNEDINT,
4168    /**
4169     * String of characters used to identify a name or a resource
4170     */
4171    URI,
4172    /**
4173     * A URI that is a literal reference
4174     */
4175    URL,
4176    /**
4177     * A UUID, represented as a URI
4178     */
4179    UUID,
4180    /**
4181     * XHTML format, as defined by W3C, but restricted usage (mainly, no active
4182     * content)
4183     */
4184    XHTML,
4185    /**
4186     * A financial tool for tracking value accrued for a particular purpose. In the
4187     * healthcare field, used to track charges for a patient, cost centers, etc.
4188     */
4189    ACCOUNT,
4190    /**
4191     * This resource allows for the definition of some activity to be performed,
4192     * independent of a particular patient, practitioner, or other performance
4193     * context.
4194     */
4195    ACTIVITYDEFINITION,
4196    /**
4197     * Actual or potential/avoided event causing unintended physical injury
4198     * resulting from or contributed to by medical care, a research study or other
4199     * healthcare setting factors that requires additional monitoring, treatment, or
4200     * hospitalization, or that results in death.
4201     */
4202    ADVERSEEVENT,
4203    /**
4204     * Risk of harmful or undesirable, physiological response which is unique to an
4205     * individual and associated with exposure to a substance.
4206     */
4207    ALLERGYINTOLERANCE,
4208    /**
4209     * A booking of a healthcare event among patient(s), practitioner(s), related
4210     * person(s) and/or device(s) for a specific date/time. This may result in one
4211     * or more Encounter(s).
4212     */
4213    APPOINTMENT,
4214    /**
4215     * A reply to an appointment request for a patient and/or practitioner(s), such
4216     * as a confirmation or rejection.
4217     */
4218    APPOINTMENTRESPONSE,
4219    /**
4220     * A record of an event made for purposes of maintaining a security log. Typical
4221     * uses include detection of intrusion attempts and monitoring for inappropriate
4222     * usage.
4223     */
4224    AUDITEVENT,
4225    /**
4226     * Basic is used for handling concepts not yet defined in FHIR, narrative-only
4227     * resources that don't map to an existing resource, and custom resources not
4228     * appropriate for inclusion in the FHIR specification.
4229     */
4230    BASIC,
4231    /**
4232     * A resource that represents the data of a single raw artifact as digital
4233     * content accessible in its native format. A Binary resource can contain any
4234     * content, whether text, image, pdf, zip archive, etc.
4235     */
4236    BINARY,
4237    /**
4238     * A material substance originating from a biological entity intended to be
4239     * transplanted or infused into another (possibly the same) biological entity.
4240     */
4241    BIOLOGICALLYDERIVEDPRODUCT,
4242    /**
4243     * Record details about an anatomical structure. This resource may be used when
4244     * a coded concept does not provide the necessary detail needed for the use
4245     * case.
4246     */
4247    BODYSTRUCTURE,
4248    /**
4249     * A container for a collection of resources.
4250     */
4251    BUNDLE,
4252    /**
4253     * A Capability Statement documents a set of capabilities (behaviors) of a FHIR
4254     * Server for a particular version of FHIR that may be used as a statement of
4255     * actual server functionality or a statement of required or desired server
4256     * implementation.
4257     */
4258    CAPABILITYSTATEMENT,
4259    /**
4260     * Describes the intention of how one or more practitioners intend to deliver
4261     * care for a particular patient, group or community for a period of time,
4262     * possibly limited to care for a specific condition or set of conditions.
4263     */
4264    CAREPLAN,
4265    /**
4266     * The Care Team includes all the people and organizations who plan to
4267     * participate in the coordination and delivery of care for a patient.
4268     */
4269    CARETEAM,
4270    /**
4271     * Catalog entries are wrappers that contextualize items included in a catalog.
4272     */
4273    CATALOGENTRY,
4274    /**
4275     * The resource ChargeItem describes the provision of healthcare provider
4276     * products for a certain patient, therefore referring not only to the product,
4277     * but containing in addition details of the provision, like date, time, amounts
4278     * and participating organizations and persons. Main Usage of the ChargeItem is
4279     * to enable the billing process and internal cost allocation.
4280     */
4281    CHARGEITEM,
4282    /**
4283     * The ChargeItemDefinition resource provides the properties that apply to the
4284     * (billing) codes necessary to calculate costs and prices. The properties may
4285     * differ largely depending on type and realm, therefore this resource gives
4286     * only a rough structure and requires profiling for each type of billing code
4287     * system.
4288     */
4289    CHARGEITEMDEFINITION,
4290    /**
4291     * A provider issued list of professional services and products which have been
4292     * provided, or are to be provided, to a patient which is sent to an insurer for
4293     * reimbursement.
4294     */
4295    CLAIM,
4296    /**
4297     * This resource provides the adjudication details from the processing of a
4298     * Claim resource.
4299     */
4300    CLAIMRESPONSE,
4301    /**
4302     * A record of a clinical assessment performed to determine what problem(s) may
4303     * affect the patient and before planning the treatments or management
4304     * strategies that are best to manage a patient's condition. Assessments are
4305     * often 1:1 with a clinical consultation / encounter, but this varies greatly
4306     * depending on the clinical workflow. This resource is called
4307     * "ClinicalImpression" rather than "ClinicalAssessment" to avoid confusion with
4308     * the recording of assessment tools such as Apgar score.
4309     */
4310    CLINICALIMPRESSION,
4311    /**
4312     * The CodeSystem resource is used to declare the existence of and describe a
4313     * code system or code system supplement and its key properties, and optionally
4314     * define a part or all of its content.
4315     */
4316    CODESYSTEM,
4317    /**
4318     * An occurrence of information being transmitted; e.g. an alert that was sent
4319     * to a responsible provider, a public health agency that was notified about a
4320     * reportable condition.
4321     */
4322    COMMUNICATION,
4323    /**
4324     * A request to convey information; e.g. the CDS system proposes that an alert
4325     * be sent to a responsible provider, the CDS system proposes that the public
4326     * health agency be notified about a reportable condition.
4327     */
4328    COMMUNICATIONREQUEST,
4329    /**
4330     * A compartment definition that defines how resources are accessed on a server.
4331     */
4332    COMPARTMENTDEFINITION,
4333    /**
4334     * A set of healthcare-related information that is assembled together into a
4335     * single logical package that provides a single coherent statement of meaning,
4336     * establishes its own context and that has clinical attestation with regard to
4337     * who is making the statement. A Composition defines the structure and
4338     * narrative content necessary for a document. However, a Composition alone does
4339     * not constitute a document. Rather, the Composition must be the first entry in
4340     * a Bundle where Bundle.type=document, and any other resources referenced from
4341     * Composition must be included as subsequent entries in the Bundle (for example
4342     * Patient, Practitioner, Encounter, etc.).
4343     */
4344    COMPOSITION,
4345    /**
4346     * A statement of relationships from one set of concepts to one or more other
4347     * concepts - either concepts in code systems, or data element/data element
4348     * concepts, or classes in class models.
4349     */
4350    CONCEPTMAP,
4351    /**
4352     * A clinical condition, problem, diagnosis, or other event, situation, issue,
4353     * or clinical concept that has risen to a level of concern.
4354     */
4355    CONDITION,
4356    /**
4357     * A record of a healthcare consumer?s choices, which permits or denies
4358     * identified recipient(s) or recipient role(s) to perform one or more actions
4359     * within a given policy context, for specific purposes and periods of time.
4360     */
4361    CONSENT,
4362    /**
4363     * Legally enforceable, formally recorded unilateral or bilateral directive
4364     * i.e., a policy or agreement.
4365     */
4366    CONTRACT,
4367    /**
4368     * Financial instrument which may be used to reimburse or pay for health care
4369     * products and services. Includes both insurance and self-payment.
4370     */
4371    COVERAGE,
4372    /**
4373     * The CoverageEligibilityRequest provides patient and insurance coverage
4374     * information to an insurer for them to respond, in the form of an
4375     * CoverageEligibilityResponse, with information regarding whether the stated
4376     * coverage is valid and in-force and optionally to provide the insurance
4377     * details of the policy.
4378     */
4379    COVERAGEELIGIBILITYREQUEST,
4380    /**
4381     * This resource provides eligibility and plan details from the processing of an
4382     * CoverageEligibilityRequest resource.
4383     */
4384    COVERAGEELIGIBILITYRESPONSE,
4385    /**
4386     * Indicates an actual or potential clinical issue with or between one or more
4387     * active or proposed clinical actions for a patient; e.g. Drug-drug
4388     * interaction, Ineffective treatment frequency, Procedure-condition conflict,
4389     * etc.
4390     */
4391    DETECTEDISSUE,
4392    /**
4393     * A type of a manufactured item that is used in the provision of healthcare
4394     * without being substantially changed through that activity. The device may be
4395     * a medical or non-medical device.
4396     */
4397    DEVICE,
4398    /**
4399     * The characteristics, operational status and capabilities of a medical-related
4400     * component of a medical device.
4401     */
4402    DEVICEDEFINITION,
4403    /**
4404     * Describes a measurement, calculation or setting capability of a medical
4405     * device.
4406     */
4407    DEVICEMETRIC,
4408    /**
4409     * Represents a request for a patient to employ a medical device. The device may
4410     * be an implantable device, or an external assistive device, such as a walker.
4411     */
4412    DEVICEREQUEST,
4413    /**
4414     * A record of a device being used by a patient where the record is the result
4415     * of a report from the patient or another clinician.
4416     */
4417    DEVICEUSESTATEMENT,
4418    /**
4419     * The findings and interpretation of diagnostic tests performed on patients,
4420     * groups of patients, devices, and locations, and/or specimens derived from
4421     * these. The report includes clinical context such as requesting and provider
4422     * information, and some mix of atomic results, images, textual and coded
4423     * interpretations, and formatted representation of diagnostic reports.
4424     */
4425    DIAGNOSTICREPORT,
4426    /**
4427     * A collection of documents compiled for a purpose together with metadata that
4428     * applies to the collection.
4429     */
4430    DOCUMENTMANIFEST,
4431    /**
4432     * A reference to a document of any kind for any purpose. Provides metadata
4433     * about the document so that the document can be discovered and managed. The
4434     * scope of a document is any seralized object with a mime-type, so includes
4435     * formal patient centric documents (CDA), cliical notes, scanned paper, and
4436     * non-patient specific documents like policy text.
4437     */
4438    DOCUMENTREFERENCE,
4439    /**
4440     * A resource that includes narrative, extensions, and contained resources.
4441     */
4442    DOMAINRESOURCE,
4443    /**
4444     * The EffectEvidenceSynthesis resource describes the difference in an outcome
4445     * between exposures states in a population where the effect estimate is derived
4446     * from a combination of research studies.
4447     */
4448    EFFECTEVIDENCESYNTHESIS,
4449    /**
4450     * An interaction between a patient and healthcare provider(s) for the purpose
4451     * of providing healthcare service(s) or assessing the health status of a
4452     * patient.
4453     */
4454    ENCOUNTER,
4455    /**
4456     * The technical details of an endpoint that can be used for electronic
4457     * services, such as for web services providing XDS.b or a REST endpoint for
4458     * another FHIR server. This may include any security context information.
4459     */
4460    ENDPOINT,
4461    /**
4462     * This resource provides the insurance enrollment details to the insurer
4463     * regarding a specified coverage.
4464     */
4465    ENROLLMENTREQUEST,
4466    /**
4467     * This resource provides enrollment and plan details from the processing of an
4468     * EnrollmentRequest resource.
4469     */
4470    ENROLLMENTRESPONSE,
4471    /**
4472     * An association between a patient and an organization / healthcare provider(s)
4473     * during which time encounters may occur. The managing organization assumes a
4474     * level of responsibility for the patient during this time.
4475     */
4476    EPISODEOFCARE,
4477    /**
4478     * The EventDefinition resource provides a reusable description of when a
4479     * particular event can occur.
4480     */
4481    EVENTDEFINITION,
4482    /**
4483     * The Evidence resource describes the conditional state (population and any
4484     * exposures being compared within the population) and outcome (if specified)
4485     * that the knowledge (evidence, assertion, recommendation) is about.
4486     */
4487    EVIDENCE,
4488    /**
4489     * The EvidenceVariable resource describes a "PICO" element that knowledge
4490     * (evidence, assertion, recommendation) is about.
4491     */
4492    EVIDENCEVARIABLE,
4493    /**
4494     * Example of workflow instance.
4495     */
4496    EXAMPLESCENARIO,
4497    /**
4498     * This resource provides: the claim details; adjudication details from the
4499     * processing of a Claim; and optionally account balance information, for
4500     * informing the subscriber of the benefits provided.
4501     */
4502    EXPLANATIONOFBENEFIT,
4503    /**
4504     * Significant health conditions for a person related to the patient relevant in
4505     * the context of care for the patient.
4506     */
4507    FAMILYMEMBERHISTORY,
4508    /**
4509     * Prospective warnings of potential issues when providing care to the patient.
4510     */
4511    FLAG,
4512    /**
4513     * Describes the intended objective(s) for a patient, group or organization
4514     * care, for example, weight loss, restoring an activity of daily living,
4515     * obtaining herd immunity via immunization, meeting a process improvement
4516     * objective, etc.
4517     */
4518    GOAL,
4519    /**
4520     * A formal computable definition of a graph of resources - that is, a coherent
4521     * set of resources that form a graph by following references. The Graph
4522     * Definition resource defines a set and makes rules about the set.
4523     */
4524    GRAPHDEFINITION,
4525    /**
4526     * Represents a defined collection of entities that may be discussed or acted
4527     * upon collectively but which are not expected to act collectively, and are not
4528     * formally or legally recognized; i.e. a collection of entities that isn't an
4529     * Organization.
4530     */
4531    GROUP,
4532    /**
4533     * A guidance response is the formal response to a guidance request, including
4534     * any output parameters returned by the evaluation, as well as the description
4535     * of any proposed actions to be taken.
4536     */
4537    GUIDANCERESPONSE,
4538    /**
4539     * The details of a healthcare service available at a location.
4540     */
4541    HEALTHCARESERVICE,
4542    /**
4543     * Representation of the content produced in a DICOM imaging study. A study
4544     * comprises a set of series, each of which includes a set of Service-Object
4545     * Pair Instances (SOP Instances - images or other data) acquired or produced in
4546     * a common context. A series is of only one modality (e.g. X-ray, CT, MR,
4547     * ultrasound), but a study may have multiple series of different modalities.
4548     */
4549    IMAGINGSTUDY,
4550    /**
4551     * Describes the event of a patient being administered a vaccine or a record of
4552     * an immunization as reported by a patient, a clinician or another party.
4553     */
4554    IMMUNIZATION,
4555    /**
4556     * Describes a comparison of an immunization event against published
4557     * recommendations to determine if the administration is "valid" in relation to
4558     * those recommendations.
4559     */
4560    IMMUNIZATIONEVALUATION,
4561    /**
4562     * A patient's point-in-time set of recommendations (i.e. forecasting) according
4563     * to a published schedule with optional supporting justification.
4564     */
4565    IMMUNIZATIONRECOMMENDATION,
4566    /**
4567     * A set of rules of how a particular interoperability or standards problem is
4568     * solved - typically through the use of FHIR resources. This resource is used
4569     * to gather all the parts of an implementation guide into a logical whole and
4570     * to publish a computable definition of all the parts.
4571     */
4572    IMPLEMENTATIONGUIDE,
4573    /**
4574     * Details of a Health Insurance product/plan provided by an organization.
4575     */
4576    INSURANCEPLAN,
4577    /**
4578     * Invoice containing collected ChargeItems from an Account with calculated
4579     * individual and total price for Billing purpose.
4580     */
4581    INVOICE,
4582    /**
4583     * The Library resource is a general-purpose container for knowledge asset
4584     * definitions. It can be used to describe and expose existing knowledge assets
4585     * such as logic libraries and information model descriptions, as well as to
4586     * describe a collection of knowledge assets.
4587     */
4588    LIBRARY,
4589    /**
4590     * Identifies two or more records (resource instances) that refer to the same
4591     * real-world "occurrence".
4592     */
4593    LINKAGE,
4594    /**
4595     * A list is a curated collection of resources.
4596     */
4597    LIST,
4598    /**
4599     * Details and position information for a physical place where services are
4600     * provided and resources and participants may be stored, found, contained, or
4601     * accommodated.
4602     */
4603    LOCATION,
4604    /**
4605     * The Measure resource provides the definition of a quality measure.
4606     */
4607    MEASURE,
4608    /**
4609     * The MeasureReport resource contains the results of the calculation of a
4610     * measure; and optionally a reference to the resources involved in that
4611     * calculation.
4612     */
4613    MEASUREREPORT,
4614    /**
4615     * A photo, video, or audio recording acquired or used in healthcare. The actual
4616     * content may be inline or provided by direct reference.
4617     */
4618    MEDIA,
4619    /**
4620     * This resource is primarily used for the identification and definition of a
4621     * medication for the purposes of prescribing, dispensing, and administering a
4622     * medication as well as for making statements about medication use.
4623     */
4624    MEDICATION,
4625    /**
4626     * Describes the event of a patient consuming or otherwise being administered a
4627     * medication. This may be as simple as swallowing a tablet or it may be a long
4628     * running infusion. Related resources tie this event to the authorizing
4629     * prescription, and the specific encounter between patient and health care
4630     * practitioner.
4631     */
4632    MEDICATIONADMINISTRATION,
4633    /**
4634     * Indicates that a medication product is to be or has been dispensed for a
4635     * named person/patient. This includes a description of the medication product
4636     * (supply) provided and the instructions for administering the medication. The
4637     * medication dispense is the result of a pharmacy system responding to a
4638     * medication order.
4639     */
4640    MEDICATIONDISPENSE,
4641    /**
4642     * Information about a medication that is used to support knowledge.
4643     */
4644    MEDICATIONKNOWLEDGE,
4645    /**
4646     * An order or request for both supply of the medication and the instructions
4647     * for administration of the medication to a patient. The resource is called
4648     * "MedicationRequest" rather than "MedicationPrescription" or "MedicationOrder"
4649     * to generalize the use across inpatient and outpatient settings, including
4650     * care plans, etc., and to harmonize with workflow patterns.
4651     */
4652    MEDICATIONREQUEST,
4653    /**
4654     * A record of a medication that is being consumed by a patient. A
4655     * MedicationStatement may indicate that the patient may be taking the
4656     * medication now or has taken the medication in the past or will be taking the
4657     * medication in the future. The source of this information can be the patient,
4658     * significant other (such as a family member or spouse), or a clinician. A
4659     * common scenario where this information is captured is during the history
4660     * taking process during a patient visit or stay. The medication information may
4661     * come from sources such as the patient's memory, from a prescription bottle,
4662     * or from a list of medications the patient, clinician or other party
4663     * maintains.
4664     * 
4665     * The primary difference between a medication statement and a medication
4666     * administration is that the medication administration has complete
4667     * administration information and is based on actual administration information
4668     * from the person who administered the medication. A medication statement is
4669     * often, if not always, less specific. There is no required date/time when the
4670     * medication was administered, in fact we only know that a source has reported
4671     * the patient is taking this medication, where details such as time, quantity,
4672     * or rate or even medication product may be incomplete or missing or less
4673     * precise. As stated earlier, the medication statement information may come
4674     * from the patient's memory, from a prescription bottle or from a list of
4675     * medications the patient, clinician or other party maintains. Medication
4676     * administration is more formal and is not missing detailed information.
4677     */
4678    MEDICATIONSTATEMENT,
4679    /**
4680     * Detailed definition of a medicinal product, typically for uses other than
4681     * direct patient care (e.g. regulatory use).
4682     */
4683    MEDICINALPRODUCT,
4684    /**
4685     * The regulatory authorization of a medicinal product.
4686     */
4687    MEDICINALPRODUCTAUTHORIZATION,
4688    /**
4689     * The clinical particulars - indications, contraindications etc. of a medicinal
4690     * product, including for regulatory purposes.
4691     */
4692    MEDICINALPRODUCTCONTRAINDICATION,
4693    /**
4694     * Indication for the Medicinal Product.
4695     */
4696    MEDICINALPRODUCTINDICATION,
4697    /**
4698     * An ingredient of a manufactured item or pharmaceutical product.
4699     */
4700    MEDICINALPRODUCTINGREDIENT,
4701    /**
4702     * The interactions of the medicinal product with other medicinal products, or
4703     * other forms of interactions.
4704     */
4705    MEDICINALPRODUCTINTERACTION,
4706    /**
4707     * The manufactured item as contained in the packaged medicinal product.
4708     */
4709    MEDICINALPRODUCTMANUFACTURED,
4710    /**
4711     * A medicinal product in a container or package.
4712     */
4713    MEDICINALPRODUCTPACKAGED,
4714    /**
4715     * A pharmaceutical product described in terms of its composition and dose form.
4716     */
4717    MEDICINALPRODUCTPHARMACEUTICAL,
4718    /**
4719     * Describe the undesirable effects of the medicinal product.
4720     */
4721    MEDICINALPRODUCTUNDESIRABLEEFFECT,
4722    /**
4723     * Defines the characteristics of a message that can be shared between systems,
4724     * including the type of event that initiates the message, the content to be
4725     * transmitted and what response(s), if any, are permitted.
4726     */
4727    MESSAGEDEFINITION,
4728    /**
4729     * The header for a message exchange that is either requesting or responding to
4730     * an action. The reference(s) that are the subject of the action as well as
4731     * other information related to the action are typically transmitted in a bundle
4732     * in which the MessageHeader resource instance is the first resource in the
4733     * bundle.
4734     */
4735    MESSAGEHEADER,
4736    /**
4737     * Raw data describing a biological sequence.
4738     */
4739    MOLECULARSEQUENCE,
4740    /**
4741     * A curated namespace that issues unique symbols within that namespace for the
4742     * identification of concepts, people, devices, etc. Represents a "System" used
4743     * within the Identifier and Coding data types.
4744     */
4745    NAMINGSYSTEM,
4746    /**
4747     * A request to supply a diet, formula feeding (enteral) or oral nutritional
4748     * supplement to a patient/resident.
4749     */
4750    NUTRITIONORDER,
4751    /**
4752     * Measurements and simple assertions made about a patient, device or other
4753     * subject.
4754     */
4755    OBSERVATION,
4756    /**
4757     * Set of definitional characteristics for a kind of observation or measurement
4758     * produced or consumed by an orderable health care service.
4759     */
4760    OBSERVATIONDEFINITION,
4761    /**
4762     * A formal computable definition of an operation (on the RESTful interface) or
4763     * a named query (using the search interaction).
4764     */
4765    OPERATIONDEFINITION,
4766    /**
4767     * A collection of error, warning, or information messages that result from a
4768     * system action.
4769     */
4770    OPERATIONOUTCOME,
4771    /**
4772     * A formally or informally recognized grouping of people or organizations
4773     * formed for the purpose of achieving some form of collective action. Includes
4774     * companies, institutions, corporations, departments, community groups,
4775     * healthcare practice groups, payer/insurer, etc.
4776     */
4777    ORGANIZATION,
4778    /**
4779     * Defines an affiliation/assotiation/relationship between 2 distinct
4780     * oganizations, that is not a part-of relationship/sub-division relationship.
4781     */
4782    ORGANIZATIONAFFILIATION,
4783    /**
4784     * This resource is a non-persisted resource used to pass information into and
4785     * back from an [operation](operations.html). It has no other use, and there is
4786     * no RESTful endpoint associated with it.
4787     */
4788    PARAMETERS,
4789    /**
4790     * Demographics and other administrative information about an individual or
4791     * animal receiving care or other health-related services.
4792     */
4793    PATIENT,
4794    /**
4795     * This resource provides the status of the payment for goods and services
4796     * rendered, and the request and response resource references.
4797     */
4798    PAYMENTNOTICE,
4799    /**
4800     * This resource provides the details including amount of a payment and
4801     * allocates the payment items being paid.
4802     */
4803    PAYMENTRECONCILIATION,
4804    /**
4805     * Demographics and administrative information about a person independent of a
4806     * specific health-related context.
4807     */
4808    PERSON,
4809    /**
4810     * This resource allows for the definition of various types of plans as a
4811     * sharable, consumable, and executable artifact. The resource is general enough
4812     * to support the description of a broad range of clinical artifacts such as
4813     * clinical decision support rules, order sets and protocols.
4814     */
4815    PLANDEFINITION,
4816    /**
4817     * A person who is directly or indirectly involved in the provisioning of
4818     * healthcare.
4819     */
4820    PRACTITIONER,
4821    /**
4822     * A specific set of Roles/Locations/specialties/services that a practitioner
4823     * may perform at an organization for a period of time.
4824     */
4825    PRACTITIONERROLE,
4826    /**
4827     * An action that is or was performed on or for a patient. This can be a
4828     * physical intervention like an operation, or less invasive like long term
4829     * services, counseling, or hypnotherapy.
4830     */
4831    PROCEDURE,
4832    /**
4833     * Provenance of a resource is a record that describes entities and processes
4834     * involved in producing and delivering or otherwise influencing that resource.
4835     * Provenance provides a critical foundation for assessing authenticity,
4836     * enabling trust, and allowing reproducibility. Provenance assertions are a
4837     * form of contextual metadata and can themselves become important records with
4838     * their own provenance. Provenance statement indicates clinical significance in
4839     * terms of confidence in authenticity, reliability, and trustworthiness,
4840     * integrity, and stage in lifecycle (e.g. Document Completion - has the
4841     * artifact been legally authenticated), all of which may impact security,
4842     * privacy, and trust policies.
4843     */
4844    PROVENANCE,
4845    /**
4846     * A structured set of questions intended to guide the collection of answers
4847     * from end-users. Questionnaires provide detailed control over order,
4848     * presentation, phraseology and grouping to allow coherent, consistent data
4849     * collection.
4850     */
4851    QUESTIONNAIRE,
4852    /**
4853     * A structured set of questions and their answers. The questions are ordered
4854     * and grouped into coherent subsets, corresponding to the structure of the
4855     * grouping of the questionnaire being responded to.
4856     */
4857    QUESTIONNAIRERESPONSE,
4858    /**
4859     * Information about a person that is involved in the care for a patient, but
4860     * who is not the target of healthcare, nor has a formal responsibility in the
4861     * care process.
4862     */
4863    RELATEDPERSON,
4864    /**
4865     * A group of related requests that can be used to capture intended activities
4866     * that have inter-dependencies such as "give this medication after that one".
4867     */
4868    REQUESTGROUP,
4869    /**
4870     * The ResearchDefinition resource describes the conditional state (population
4871     * and any exposures being compared within the population) and outcome (if
4872     * specified) that the knowledge (evidence, assertion, recommendation) is about.
4873     */
4874    RESEARCHDEFINITION,
4875    /**
4876     * The ResearchElementDefinition resource describes a "PICO" element that
4877     * knowledge (evidence, assertion, recommendation) is about.
4878     */
4879    RESEARCHELEMENTDEFINITION,
4880    /**
4881     * A process where a researcher or organization plans and then executes a series
4882     * of steps intended to increase the field of healthcare-related knowledge. This
4883     * includes studies of safety, efficacy, comparative effectiveness and other
4884     * information about medications, devices, therapies and other interventional
4885     * and investigative techniques. A ResearchStudy involves the gathering of
4886     * information about human or animal subjects.
4887     */
4888    RESEARCHSTUDY,
4889    /**
4890     * A physical entity which is the primary unit of operational and/or
4891     * administrative interest in a study.
4892     */
4893    RESEARCHSUBJECT,
4894    /**
4895     * This is the base resource type for everything.
4896     */
4897    RESOURCE,
4898    /**
4899     * An assessment of the likely outcome(s) for a patient or other subject as well
4900     * as the likelihood of each outcome.
4901     */
4902    RISKASSESSMENT,
4903    /**
4904     * The RiskEvidenceSynthesis resource describes the likelihood of an outcome in
4905     * a population plus exposure state where the risk estimate is derived from a
4906     * combination of research studies.
4907     */
4908    RISKEVIDENCESYNTHESIS,
4909    /**
4910     * A container for slots of time that may be available for booking appointments.
4911     */
4912    SCHEDULE,
4913    /**
4914     * A search parameter that defines a named search item that can be used to
4915     * search/filter on a resource.
4916     */
4917    SEARCHPARAMETER,
4918    /**
4919     * A record of a request for service such as diagnostic investigations,
4920     * treatments, or operations to be performed.
4921     */
4922    SERVICEREQUEST,
4923    /**
4924     * A slot of time on a schedule that may be available for booking appointments.
4925     */
4926    SLOT,
4927    /**
4928     * A sample to be used for analysis.
4929     */
4930    SPECIMEN,
4931    /**
4932     * A kind of specimen with associated set of requirements.
4933     */
4934    SPECIMENDEFINITION,
4935    /**
4936     * A definition of a FHIR structure. This resource is used to describe the
4937     * underlying resources, data types defined in FHIR, and also for describing
4938     * extensions and constraints on resources and data types.
4939     */
4940    STRUCTUREDEFINITION,
4941    /**
4942     * A Map of relationships between 2 structures that can be used to transform
4943     * data.
4944     */
4945    STRUCTUREMAP,
4946    /**
4947     * The subscription resource is used to define a push-based subscription from a
4948     * server to another system. Once a subscription is registered with the server,
4949     * the server checks every resource that is created or updated, and if the
4950     * resource matches the given criteria, it sends a message on the defined
4951     * "channel" so that another system can take an appropriate action.
4952     */
4953    SUBSCRIPTION,
4954    /**
4955     * A homogeneous material with a definite composition.
4956     */
4957    SUBSTANCE,
4958    /**
4959     * Nucleic acids are defined by three distinct elements: the base, sugar and
4960     * linkage. Individual substance/moiety IDs will be created for each of these
4961     * elements. The nucleotide sequence will be always entered in the 5?-3?
4962     * direction.
4963     */
4964    SUBSTANCENUCLEICACID,
4965    /**
4966     * Todo.
4967     */
4968    SUBSTANCEPOLYMER,
4969    /**
4970     * A SubstanceProtein is defined as a single unit of a linear amino acid
4971     * sequence, or a combination of subunits that are either covalently linked or
4972     * have a defined invariant stoichiometric relationship. This includes all
4973     * synthetic, recombinant and purified SubstanceProteins of defined sequence,
4974     * whether the use is therapeutic or prophylactic. This set of elements will be
4975     * used to describe albumins, coagulation factors, cytokines, growth factors,
4976     * peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant
4977     * vaccines, and immunomodulators.
4978     */
4979    SUBSTANCEPROTEIN,
4980    /**
4981     * Todo.
4982     */
4983    SUBSTANCEREFERENCEINFORMATION,
4984    /**
4985     * Source material shall capture information on the taxonomic and anatomical
4986     * origins as well as the fraction of a material that can result in or can be
4987     * modified to form a substance. This set of data elements shall be used to
4988     * define polymer substances isolated from biological matrices. Taxonomic and
4989     * anatomical origins shall be described using a controlled vocabulary as
4990     * required. This information is captured for naturally derived polymers ( .
4991     * starch) and structurally diverse substances. For Organisms belonging to the
4992     * Kingdom Plantae the Substance level defines the fresh material of a single
4993     * species or infraspecies, the Herbal Drug and the Herbal preparation. For
4994     * Herbal preparations, the fraction information will be captured at the
4995     * Substance information level and additional information for herbal extracts
4996     * will be captured at the Specified Substance Group 1 information level. See
4997     * for further explanation the Substance Class: Structurally Diverse and the
4998     * herbal annex.
4999     */
5000    SUBSTANCESOURCEMATERIAL,
5001    /**
5002     * The detailed description of a substance, typically at a level beyond what is
5003     * used for prescribing.
5004     */
5005    SUBSTANCESPECIFICATION,
5006    /**
5007     * Record of delivery of what is supplied.
5008     */
5009    SUPPLYDELIVERY,
5010    /**
5011     * A record of a request for a medication, substance or device used in the
5012     * healthcare setting.
5013     */
5014    SUPPLYREQUEST,
5015    /**
5016     * A task to be performed.
5017     */
5018    TASK,
5019    /**
5020     * A Terminology Capabilities documents a set of capabilities (behaviors) of a
5021     * FHIR Server that may be used as a statement of actual server functionality or
5022     * a statement of required or desired server implementation.
5023     */
5024    TERMINOLOGYCAPABILITIES,
5025    /**
5026     * A summary of information based on the results of executing a TestScript.
5027     */
5028    TESTREPORT,
5029    /**
5030     * A structured set of tests against a FHIR server or client implementation to
5031     * determine compliance against the FHIR specification.
5032     */
5033    TESTSCRIPT,
5034    /**
5035     * A ValueSet resource instance specifies a set of codes drawn from one or more
5036     * code systems, intended for use in a particular context. Value sets link
5037     * between [[[CodeSystem]]] definitions and their use in [coded
5038     * elements](terminologies.html).
5039     */
5040    VALUESET,
5041    /**
5042     * Describes validation requirements, source(s), status and dates for one or
5043     * more elements.
5044     */
5045    VERIFICATIONRESULT,
5046    /**
5047     * An authorization for the provision of glasses and/or contact lenses to a
5048     * patient.
5049     */
5050    VISIONPRESCRIPTION,
5051    /**
5052     * A place holder that means any kind of data type
5053     */
5054    TYPE,
5055    /**
5056     * A place holder that means any kind of resource
5057     */
5058    ANY,
5059    /**
5060     * added to help the parsers
5061     */
5062    NULL;
5063
5064    public static FHIRAllTypes fromCode(String codeString) throws FHIRException {
5065      if (codeString == null || "".equals(codeString))
5066        return null;
5067      if ("Address".equals(codeString))
5068        return ADDRESS;
5069      if ("Age".equals(codeString))
5070        return AGE;
5071      if ("Annotation".equals(codeString))
5072        return ANNOTATION;
5073      if ("Attachment".equals(codeString))
5074        return ATTACHMENT;
5075      if ("BackboneElement".equals(codeString))
5076        return BACKBONEELEMENT;
5077      if ("CodeableConcept".equals(codeString))
5078        return CODEABLECONCEPT;
5079      if ("Coding".equals(codeString))
5080        return CODING;
5081      if ("ContactDetail".equals(codeString))
5082        return CONTACTDETAIL;
5083      if ("ContactPoint".equals(codeString))
5084        return CONTACTPOINT;
5085      if ("Contributor".equals(codeString))
5086        return CONTRIBUTOR;
5087      if ("Count".equals(codeString))
5088        return COUNT;
5089      if ("DataRequirement".equals(codeString))
5090        return DATAREQUIREMENT;
5091      if ("Distance".equals(codeString))
5092        return DISTANCE;
5093      if ("Dosage".equals(codeString))
5094        return DOSAGE;
5095      if ("Duration".equals(codeString))
5096        return DURATION;
5097      if ("Element".equals(codeString))
5098        return ELEMENT;
5099      if ("ElementDefinition".equals(codeString))
5100        return ELEMENTDEFINITION;
5101      if ("Expression".equals(codeString))
5102        return EXPRESSION;
5103      if ("Extension".equals(codeString))
5104        return EXTENSION;
5105      if ("HumanName".equals(codeString))
5106        return HUMANNAME;
5107      if ("Identifier".equals(codeString))
5108        return IDENTIFIER;
5109      if ("MarketingStatus".equals(codeString))
5110        return MARKETINGSTATUS;
5111      if ("Meta".equals(codeString))
5112        return META;
5113      if ("Money".equals(codeString))
5114        return MONEY;
5115      if ("MoneyQuantity".equals(codeString))
5116        return MONEYQUANTITY;
5117      if ("Narrative".equals(codeString))
5118        return NARRATIVE;
5119      if ("ParameterDefinition".equals(codeString))
5120        return PARAMETERDEFINITION;
5121      if ("Period".equals(codeString))
5122        return PERIOD;
5123      if ("Population".equals(codeString))
5124        return POPULATION;
5125      if ("ProdCharacteristic".equals(codeString))
5126        return PRODCHARACTERISTIC;
5127      if ("ProductShelfLife".equals(codeString))
5128        return PRODUCTSHELFLIFE;
5129      if ("Quantity".equals(codeString))
5130        return QUANTITY;
5131      if ("Range".equals(codeString))
5132        return RANGE;
5133      if ("Ratio".equals(codeString))
5134        return RATIO;
5135      if ("Reference".equals(codeString))
5136        return REFERENCE;
5137      if ("RelatedArtifact".equals(codeString))
5138        return RELATEDARTIFACT;
5139      if ("SampledData".equals(codeString))
5140        return SAMPLEDDATA;
5141      if ("Signature".equals(codeString))
5142        return SIGNATURE;
5143      if ("SimpleQuantity".equals(codeString))
5144        return SIMPLEQUANTITY;
5145      if ("SubstanceAmount".equals(codeString))
5146        return SUBSTANCEAMOUNT;
5147      if ("Timing".equals(codeString))
5148        return TIMING;
5149      if ("TriggerDefinition".equals(codeString))
5150        return TRIGGERDEFINITION;
5151      if ("UsageContext".equals(codeString))
5152        return USAGECONTEXT;
5153      if ("base64Binary".equals(codeString))
5154        return BASE64BINARY;
5155      if ("boolean".equals(codeString))
5156        return BOOLEAN;
5157      if ("canonical".equals(codeString))
5158        return CANONICAL;
5159      if ("code".equals(codeString))
5160        return CODE;
5161      if ("date".equals(codeString))
5162        return DATE;
5163      if ("dateTime".equals(codeString))
5164        return DATETIME;
5165      if ("decimal".equals(codeString))
5166        return DECIMAL;
5167      if ("id".equals(codeString))
5168        return ID;
5169      if ("instant".equals(codeString))
5170        return INSTANT;
5171      if ("integer".equals(codeString))
5172        return INTEGER;
5173      if ("markdown".equals(codeString))
5174        return MARKDOWN;
5175      if ("oid".equals(codeString))
5176        return OID;
5177      if ("positiveInt".equals(codeString))
5178        return POSITIVEINT;
5179      if ("string".equals(codeString))
5180        return STRING;
5181      if ("time".equals(codeString))
5182        return TIME;
5183      if ("unsignedInt".equals(codeString))
5184        return UNSIGNEDINT;
5185      if ("uri".equals(codeString))
5186        return URI;
5187      if ("url".equals(codeString))
5188        return URL;
5189      if ("uuid".equals(codeString))
5190        return UUID;
5191      if ("xhtml".equals(codeString))
5192        return XHTML;
5193      if ("Account".equals(codeString))
5194        return ACCOUNT;
5195      if ("ActivityDefinition".equals(codeString))
5196        return ACTIVITYDEFINITION;
5197      if ("AdverseEvent".equals(codeString))
5198        return ADVERSEEVENT;
5199      if ("AllergyIntolerance".equals(codeString))
5200        return ALLERGYINTOLERANCE;
5201      if ("Appointment".equals(codeString))
5202        return APPOINTMENT;
5203      if ("AppointmentResponse".equals(codeString))
5204        return APPOINTMENTRESPONSE;
5205      if ("AuditEvent".equals(codeString))
5206        return AUDITEVENT;
5207      if ("Basic".equals(codeString))
5208        return BASIC;
5209      if ("Binary".equals(codeString))
5210        return BINARY;
5211      if ("BiologicallyDerivedProduct".equals(codeString))
5212        return BIOLOGICALLYDERIVEDPRODUCT;
5213      if ("BodyStructure".equals(codeString))
5214        return BODYSTRUCTURE;
5215      if ("Bundle".equals(codeString))
5216        return BUNDLE;
5217      if ("CapabilityStatement".equals(codeString))
5218        return CAPABILITYSTATEMENT;
5219      if ("CarePlan".equals(codeString))
5220        return CAREPLAN;
5221      if ("CareTeam".equals(codeString))
5222        return CARETEAM;
5223      if ("CatalogEntry".equals(codeString))
5224        return CATALOGENTRY;
5225      if ("ChargeItem".equals(codeString))
5226        return CHARGEITEM;
5227      if ("ChargeItemDefinition".equals(codeString))
5228        return CHARGEITEMDEFINITION;
5229      if ("Claim".equals(codeString))
5230        return CLAIM;
5231      if ("ClaimResponse".equals(codeString))
5232        return CLAIMRESPONSE;
5233      if ("ClinicalImpression".equals(codeString))
5234        return CLINICALIMPRESSION;
5235      if ("CodeSystem".equals(codeString))
5236        return CODESYSTEM;
5237      if ("Communication".equals(codeString))
5238        return COMMUNICATION;
5239      if ("CommunicationRequest".equals(codeString))
5240        return COMMUNICATIONREQUEST;
5241      if ("CompartmentDefinition".equals(codeString))
5242        return COMPARTMENTDEFINITION;
5243      if ("Composition".equals(codeString))
5244        return COMPOSITION;
5245      if ("ConceptMap".equals(codeString))
5246        return CONCEPTMAP;
5247      if ("Condition".equals(codeString))
5248        return CONDITION;
5249      if ("Consent".equals(codeString))
5250        return CONSENT;
5251      if ("Contract".equals(codeString))
5252        return CONTRACT;
5253      if ("Coverage".equals(codeString))
5254        return COVERAGE;
5255      if ("CoverageEligibilityRequest".equals(codeString))
5256        return COVERAGEELIGIBILITYREQUEST;
5257      if ("CoverageEligibilityResponse".equals(codeString))
5258        return COVERAGEELIGIBILITYRESPONSE;
5259      if ("DetectedIssue".equals(codeString))
5260        return DETECTEDISSUE;
5261      if ("Device".equals(codeString))
5262        return DEVICE;
5263      if ("DeviceDefinition".equals(codeString))
5264        return DEVICEDEFINITION;
5265      if ("DeviceMetric".equals(codeString))
5266        return DEVICEMETRIC;
5267      if ("DeviceRequest".equals(codeString))
5268        return DEVICEREQUEST;
5269      if ("DeviceUseStatement".equals(codeString))
5270        return DEVICEUSESTATEMENT;
5271      if ("DiagnosticReport".equals(codeString))
5272        return DIAGNOSTICREPORT;
5273      if ("DocumentManifest".equals(codeString))
5274        return DOCUMENTMANIFEST;
5275      if ("DocumentReference".equals(codeString))
5276        return DOCUMENTREFERENCE;
5277      if ("DomainResource".equals(codeString))
5278        return DOMAINRESOURCE;
5279      if ("EffectEvidenceSynthesis".equals(codeString))
5280        return EFFECTEVIDENCESYNTHESIS;
5281      if ("Encounter".equals(codeString))
5282        return ENCOUNTER;
5283      if ("Endpoint".equals(codeString))
5284        return ENDPOINT;
5285      if ("EnrollmentRequest".equals(codeString))
5286        return ENROLLMENTREQUEST;
5287      if ("EnrollmentResponse".equals(codeString))
5288        return ENROLLMENTRESPONSE;
5289      if ("EpisodeOfCare".equals(codeString))
5290        return EPISODEOFCARE;
5291      if ("EventDefinition".equals(codeString))
5292        return EVENTDEFINITION;
5293      if ("Evidence".equals(codeString))
5294        return EVIDENCE;
5295      if ("EvidenceVariable".equals(codeString))
5296        return EVIDENCEVARIABLE;
5297      if ("ExampleScenario".equals(codeString))
5298        return EXAMPLESCENARIO;
5299      if ("ExplanationOfBenefit".equals(codeString))
5300        return EXPLANATIONOFBENEFIT;
5301      if ("FamilyMemberHistory".equals(codeString))
5302        return FAMILYMEMBERHISTORY;
5303      if ("Flag".equals(codeString))
5304        return FLAG;
5305      if ("Goal".equals(codeString))
5306        return GOAL;
5307      if ("GraphDefinition".equals(codeString))
5308        return GRAPHDEFINITION;
5309      if ("Group".equals(codeString))
5310        return GROUP;
5311      if ("GuidanceResponse".equals(codeString))
5312        return GUIDANCERESPONSE;
5313      if ("HealthcareService".equals(codeString))
5314        return HEALTHCARESERVICE;
5315      if ("ImagingStudy".equals(codeString))
5316        return IMAGINGSTUDY;
5317      if ("Immunization".equals(codeString))
5318        return IMMUNIZATION;
5319      if ("ImmunizationEvaluation".equals(codeString))
5320        return IMMUNIZATIONEVALUATION;
5321      if ("ImmunizationRecommendation".equals(codeString))
5322        return IMMUNIZATIONRECOMMENDATION;
5323      if ("ImplementationGuide".equals(codeString))
5324        return IMPLEMENTATIONGUIDE;
5325      if ("InsurancePlan".equals(codeString))
5326        return INSURANCEPLAN;
5327      if ("Invoice".equals(codeString))
5328        return INVOICE;
5329      if ("Library".equals(codeString))
5330        return LIBRARY;
5331      if ("Linkage".equals(codeString))
5332        return LINKAGE;
5333      if ("List".equals(codeString))
5334        return LIST;
5335      if ("Location".equals(codeString))
5336        return LOCATION;
5337      if ("Measure".equals(codeString))
5338        return MEASURE;
5339      if ("MeasureReport".equals(codeString))
5340        return MEASUREREPORT;
5341      if ("Media".equals(codeString))
5342        return MEDIA;
5343      if ("Medication".equals(codeString))
5344        return MEDICATION;
5345      if ("MedicationAdministration".equals(codeString))
5346        return MEDICATIONADMINISTRATION;
5347      if ("MedicationDispense".equals(codeString))
5348        return MEDICATIONDISPENSE;
5349      if ("MedicationKnowledge".equals(codeString))
5350        return MEDICATIONKNOWLEDGE;
5351      if ("MedicationRequest".equals(codeString))
5352        return MEDICATIONREQUEST;
5353      if ("MedicationStatement".equals(codeString))
5354        return MEDICATIONSTATEMENT;
5355      if ("MedicinalProduct".equals(codeString))
5356        return MEDICINALPRODUCT;
5357      if ("MedicinalProductAuthorization".equals(codeString))
5358        return MEDICINALPRODUCTAUTHORIZATION;
5359      if ("MedicinalProductContraindication".equals(codeString))
5360        return MEDICINALPRODUCTCONTRAINDICATION;
5361      if ("MedicinalProductIndication".equals(codeString))
5362        return MEDICINALPRODUCTINDICATION;
5363      if ("MedicinalProductIngredient".equals(codeString))
5364        return MEDICINALPRODUCTINGREDIENT;
5365      if ("MedicinalProductInteraction".equals(codeString))
5366        return MEDICINALPRODUCTINTERACTION;
5367      if ("MedicinalProductManufactured".equals(codeString))
5368        return MEDICINALPRODUCTMANUFACTURED;
5369      if ("MedicinalProductPackaged".equals(codeString))
5370        return MEDICINALPRODUCTPACKAGED;
5371      if ("MedicinalProductPharmaceutical".equals(codeString))
5372        return MEDICINALPRODUCTPHARMACEUTICAL;
5373      if ("MedicinalProductUndesirableEffect".equals(codeString))
5374        return MEDICINALPRODUCTUNDESIRABLEEFFECT;
5375      if ("MessageDefinition".equals(codeString))
5376        return MESSAGEDEFINITION;
5377      if ("MessageHeader".equals(codeString))
5378        return MESSAGEHEADER;
5379      if ("MolecularSequence".equals(codeString))
5380        return MOLECULARSEQUENCE;
5381      if ("NamingSystem".equals(codeString))
5382        return NAMINGSYSTEM;
5383      if ("NutritionOrder".equals(codeString))
5384        return NUTRITIONORDER;
5385      if ("Observation".equals(codeString))
5386        return OBSERVATION;
5387      if ("ObservationDefinition".equals(codeString))
5388        return OBSERVATIONDEFINITION;
5389      if ("OperationDefinition".equals(codeString))
5390        return OPERATIONDEFINITION;
5391      if ("OperationOutcome".equals(codeString))
5392        return OPERATIONOUTCOME;
5393      if ("Organization".equals(codeString))
5394        return ORGANIZATION;
5395      if ("OrganizationAffiliation".equals(codeString))
5396        return ORGANIZATIONAFFILIATION;
5397      if ("Parameters".equals(codeString))
5398        return PARAMETERS;
5399      if ("Patient".equals(codeString))
5400        return PATIENT;
5401      if ("PaymentNotice".equals(codeString))
5402        return PAYMENTNOTICE;
5403      if ("PaymentReconciliation".equals(codeString))
5404        return PAYMENTRECONCILIATION;
5405      if ("Person".equals(codeString))
5406        return PERSON;
5407      if ("PlanDefinition".equals(codeString))
5408        return PLANDEFINITION;
5409      if ("Practitioner".equals(codeString))
5410        return PRACTITIONER;
5411      if ("PractitionerRole".equals(codeString))
5412        return PRACTITIONERROLE;
5413      if ("Procedure".equals(codeString))
5414        return PROCEDURE;
5415      if ("Provenance".equals(codeString))
5416        return PROVENANCE;
5417      if ("Questionnaire".equals(codeString))
5418        return QUESTIONNAIRE;
5419      if ("QuestionnaireResponse".equals(codeString))
5420        return QUESTIONNAIRERESPONSE;
5421      if ("RelatedPerson".equals(codeString))
5422        return RELATEDPERSON;
5423      if ("RequestGroup".equals(codeString))
5424        return REQUESTGROUP;
5425      if ("ResearchDefinition".equals(codeString))
5426        return RESEARCHDEFINITION;
5427      if ("ResearchElementDefinition".equals(codeString))
5428        return RESEARCHELEMENTDEFINITION;
5429      if ("ResearchStudy".equals(codeString))
5430        return RESEARCHSTUDY;
5431      if ("ResearchSubject".equals(codeString))
5432        return RESEARCHSUBJECT;
5433      if ("Resource".equals(codeString))
5434        return RESOURCE;
5435      if ("RiskAssessment".equals(codeString))
5436        return RISKASSESSMENT;
5437      if ("RiskEvidenceSynthesis".equals(codeString))
5438        return RISKEVIDENCESYNTHESIS;
5439      if ("Schedule".equals(codeString))
5440        return SCHEDULE;
5441      if ("SearchParameter".equals(codeString))
5442        return SEARCHPARAMETER;
5443      if ("ServiceRequest".equals(codeString))
5444        return SERVICEREQUEST;
5445      if ("Slot".equals(codeString))
5446        return SLOT;
5447      if ("Specimen".equals(codeString))
5448        return SPECIMEN;
5449      if ("SpecimenDefinition".equals(codeString))
5450        return SPECIMENDEFINITION;
5451      if ("StructureDefinition".equals(codeString))
5452        return STRUCTUREDEFINITION;
5453      if ("StructureMap".equals(codeString))
5454        return STRUCTUREMAP;
5455      if ("Subscription".equals(codeString))
5456        return SUBSCRIPTION;
5457      if ("Substance".equals(codeString))
5458        return SUBSTANCE;
5459      if ("SubstanceNucleicAcid".equals(codeString))
5460        return SUBSTANCENUCLEICACID;
5461      if ("SubstancePolymer".equals(codeString))
5462        return SUBSTANCEPOLYMER;
5463      if ("SubstanceProtein".equals(codeString))
5464        return SUBSTANCEPROTEIN;
5465      if ("SubstanceReferenceInformation".equals(codeString))
5466        return SUBSTANCEREFERENCEINFORMATION;
5467      if ("SubstanceSourceMaterial".equals(codeString))
5468        return SUBSTANCESOURCEMATERIAL;
5469      if ("SubstanceSpecification".equals(codeString))
5470        return SUBSTANCESPECIFICATION;
5471      if ("SupplyDelivery".equals(codeString))
5472        return SUPPLYDELIVERY;
5473      if ("SupplyRequest".equals(codeString))
5474        return SUPPLYREQUEST;
5475      if ("Task".equals(codeString))
5476        return TASK;
5477      if ("TerminologyCapabilities".equals(codeString))
5478        return TERMINOLOGYCAPABILITIES;
5479      if ("TestReport".equals(codeString))
5480        return TESTREPORT;
5481      if ("TestScript".equals(codeString))
5482        return TESTSCRIPT;
5483      if ("ValueSet".equals(codeString))
5484        return VALUESET;
5485      if ("VerificationResult".equals(codeString))
5486        return VERIFICATIONRESULT;
5487      if ("VisionPrescription".equals(codeString))
5488        return VISIONPRESCRIPTION;
5489      if ("Type".equals(codeString))
5490        return TYPE;
5491      if ("Any".equals(codeString))
5492        return ANY;
5493      throw new FHIRException("Unknown FHIRAllTypes code '" + codeString + "'");
5494    }
5495
5496    public String toCode() {
5497      switch (this) {
5498      case ADDRESS:
5499        return "Address";
5500      case AGE:
5501        return "Age";
5502      case ANNOTATION:
5503        return "Annotation";
5504      case ATTACHMENT:
5505        return "Attachment";
5506      case BACKBONEELEMENT:
5507        return "BackboneElement";
5508      case CODEABLECONCEPT:
5509        return "CodeableConcept";
5510      case CODING:
5511        return "Coding";
5512      case CONTACTDETAIL:
5513        return "ContactDetail";
5514      case CONTACTPOINT:
5515        return "ContactPoint";
5516      case CONTRIBUTOR:
5517        return "Contributor";
5518      case COUNT:
5519        return "Count";
5520      case DATAREQUIREMENT:
5521        return "DataRequirement";
5522      case DISTANCE:
5523        return "Distance";
5524      case DOSAGE:
5525        return "Dosage";
5526      case DURATION:
5527        return "Duration";
5528      case ELEMENT:
5529        return "Element";
5530      case ELEMENTDEFINITION:
5531        return "ElementDefinition";
5532      case EXPRESSION:
5533        return "Expression";
5534      case EXTENSION:
5535        return "Extension";
5536      case HUMANNAME:
5537        return "HumanName";
5538      case IDENTIFIER:
5539        return "Identifier";
5540      case MARKETINGSTATUS:
5541        return "MarketingStatus";
5542      case META:
5543        return "Meta";
5544      case MONEY:
5545        return "Money";
5546      case MONEYQUANTITY:
5547        return "MoneyQuantity";
5548      case NARRATIVE:
5549        return "Narrative";
5550      case PARAMETERDEFINITION:
5551        return "ParameterDefinition";
5552      case PERIOD:
5553        return "Period";
5554      case POPULATION:
5555        return "Population";
5556      case PRODCHARACTERISTIC:
5557        return "ProdCharacteristic";
5558      case PRODUCTSHELFLIFE:
5559        return "ProductShelfLife";
5560      case QUANTITY:
5561        return "Quantity";
5562      case RANGE:
5563        return "Range";
5564      case RATIO:
5565        return "Ratio";
5566      case REFERENCE:
5567        return "Reference";
5568      case RELATEDARTIFACT:
5569        return "RelatedArtifact";
5570      case SAMPLEDDATA:
5571        return "SampledData";
5572      case SIGNATURE:
5573        return "Signature";
5574      case SIMPLEQUANTITY:
5575        return "SimpleQuantity";
5576      case SUBSTANCEAMOUNT:
5577        return "SubstanceAmount";
5578      case TIMING:
5579        return "Timing";
5580      case TRIGGERDEFINITION:
5581        return "TriggerDefinition";
5582      case USAGECONTEXT:
5583        return "UsageContext";
5584      case BASE64BINARY:
5585        return "base64Binary";
5586      case BOOLEAN:
5587        return "boolean";
5588      case CANONICAL:
5589        return "canonical";
5590      case CODE:
5591        return "code";
5592      case DATE:
5593        return "date";
5594      case DATETIME:
5595        return "dateTime";
5596      case DECIMAL:
5597        return "decimal";
5598      case ID:
5599        return "id";
5600      case INSTANT:
5601        return "instant";
5602      case INTEGER:
5603        return "integer";
5604      case MARKDOWN:
5605        return "markdown";
5606      case OID:
5607        return "oid";
5608      case POSITIVEINT:
5609        return "positiveInt";
5610      case STRING:
5611        return "string";
5612      case TIME:
5613        return "time";
5614      case UNSIGNEDINT:
5615        return "unsignedInt";
5616      case URI:
5617        return "uri";
5618      case URL:
5619        return "url";
5620      case UUID:
5621        return "uuid";
5622      case XHTML:
5623        return "xhtml";
5624      case ACCOUNT:
5625        return "Account";
5626      case ACTIVITYDEFINITION:
5627        return "ActivityDefinition";
5628      case ADVERSEEVENT:
5629        return "AdverseEvent";
5630      case ALLERGYINTOLERANCE:
5631        return "AllergyIntolerance";
5632      case APPOINTMENT:
5633        return "Appointment";
5634      case APPOINTMENTRESPONSE:
5635        return "AppointmentResponse";
5636      case AUDITEVENT:
5637        return "AuditEvent";
5638      case BASIC:
5639        return "Basic";
5640      case BINARY:
5641        return "Binary";
5642      case BIOLOGICALLYDERIVEDPRODUCT:
5643        return "BiologicallyDerivedProduct";
5644      case BODYSTRUCTURE:
5645        return "BodyStructure";
5646      case BUNDLE:
5647        return "Bundle";
5648      case CAPABILITYSTATEMENT:
5649        return "CapabilityStatement";
5650      case CAREPLAN:
5651        return "CarePlan";
5652      case CARETEAM:
5653        return "CareTeam";
5654      case CATALOGENTRY:
5655        return "CatalogEntry";
5656      case CHARGEITEM:
5657        return "ChargeItem";
5658      case CHARGEITEMDEFINITION:
5659        return "ChargeItemDefinition";
5660      case CLAIM:
5661        return "Claim";
5662      case CLAIMRESPONSE:
5663        return "ClaimResponse";
5664      case CLINICALIMPRESSION:
5665        return "ClinicalImpression";
5666      case CODESYSTEM:
5667        return "CodeSystem";
5668      case COMMUNICATION:
5669        return "Communication";
5670      case COMMUNICATIONREQUEST:
5671        return "CommunicationRequest";
5672      case COMPARTMENTDEFINITION:
5673        return "CompartmentDefinition";
5674      case COMPOSITION:
5675        return "Composition";
5676      case CONCEPTMAP:
5677        return "ConceptMap";
5678      case CONDITION:
5679        return "Condition";
5680      case CONSENT:
5681        return "Consent";
5682      case CONTRACT:
5683        return "Contract";
5684      case COVERAGE:
5685        return "Coverage";
5686      case COVERAGEELIGIBILITYREQUEST:
5687        return "CoverageEligibilityRequest";
5688      case COVERAGEELIGIBILITYRESPONSE:
5689        return "CoverageEligibilityResponse";
5690      case DETECTEDISSUE:
5691        return "DetectedIssue";
5692      case DEVICE:
5693        return "Device";
5694      case DEVICEDEFINITION:
5695        return "DeviceDefinition";
5696      case DEVICEMETRIC:
5697        return "DeviceMetric";
5698      case DEVICEREQUEST:
5699        return "DeviceRequest";
5700      case DEVICEUSESTATEMENT:
5701        return "DeviceUseStatement";
5702      case DIAGNOSTICREPORT:
5703        return "DiagnosticReport";
5704      case DOCUMENTMANIFEST:
5705        return "DocumentManifest";
5706      case DOCUMENTREFERENCE:
5707        return "DocumentReference";
5708      case DOMAINRESOURCE:
5709        return "DomainResource";
5710      case EFFECTEVIDENCESYNTHESIS:
5711        return "EffectEvidenceSynthesis";
5712      case ENCOUNTER:
5713        return "Encounter";
5714      case ENDPOINT:
5715        return "Endpoint";
5716      case ENROLLMENTREQUEST:
5717        return "EnrollmentRequest";
5718      case ENROLLMENTRESPONSE:
5719        return "EnrollmentResponse";
5720      case EPISODEOFCARE:
5721        return "EpisodeOfCare";
5722      case EVENTDEFINITION:
5723        return "EventDefinition";
5724      case EVIDENCE:
5725        return "Evidence";
5726      case EVIDENCEVARIABLE:
5727        return "EvidenceVariable";
5728      case EXAMPLESCENARIO:
5729        return "ExampleScenario";
5730      case EXPLANATIONOFBENEFIT:
5731        return "ExplanationOfBenefit";
5732      case FAMILYMEMBERHISTORY:
5733        return "FamilyMemberHistory";
5734      case FLAG:
5735        return "Flag";
5736      case GOAL:
5737        return "Goal";
5738      case GRAPHDEFINITION:
5739        return "GraphDefinition";
5740      case GROUP:
5741        return "Group";
5742      case GUIDANCERESPONSE:
5743        return "GuidanceResponse";
5744      case HEALTHCARESERVICE:
5745        return "HealthcareService";
5746      case IMAGINGSTUDY:
5747        return "ImagingStudy";
5748      case IMMUNIZATION:
5749        return "Immunization";
5750      case IMMUNIZATIONEVALUATION:
5751        return "ImmunizationEvaluation";
5752      case IMMUNIZATIONRECOMMENDATION:
5753        return "ImmunizationRecommendation";
5754      case IMPLEMENTATIONGUIDE:
5755        return "ImplementationGuide";
5756      case INSURANCEPLAN:
5757        return "InsurancePlan";
5758      case INVOICE:
5759        return "Invoice";
5760      case LIBRARY:
5761        return "Library";
5762      case LINKAGE:
5763        return "Linkage";
5764      case LIST:
5765        return "List";
5766      case LOCATION:
5767        return "Location";
5768      case MEASURE:
5769        return "Measure";
5770      case MEASUREREPORT:
5771        return "MeasureReport";
5772      case MEDIA:
5773        return "Media";
5774      case MEDICATION:
5775        return "Medication";
5776      case MEDICATIONADMINISTRATION:
5777        return "MedicationAdministration";
5778      case MEDICATIONDISPENSE:
5779        return "MedicationDispense";
5780      case MEDICATIONKNOWLEDGE:
5781        return "MedicationKnowledge";
5782      case MEDICATIONREQUEST:
5783        return "MedicationRequest";
5784      case MEDICATIONSTATEMENT:
5785        return "MedicationStatement";
5786      case MEDICINALPRODUCT:
5787        return "MedicinalProduct";
5788      case MEDICINALPRODUCTAUTHORIZATION:
5789        return "MedicinalProductAuthorization";
5790      case MEDICINALPRODUCTCONTRAINDICATION:
5791        return "MedicinalProductContraindication";
5792      case MEDICINALPRODUCTINDICATION:
5793        return "MedicinalProductIndication";
5794      case MEDICINALPRODUCTINGREDIENT:
5795        return "MedicinalProductIngredient";
5796      case MEDICINALPRODUCTINTERACTION:
5797        return "MedicinalProductInteraction";
5798      case MEDICINALPRODUCTMANUFACTURED:
5799        return "MedicinalProductManufactured";
5800      case MEDICINALPRODUCTPACKAGED:
5801        return "MedicinalProductPackaged";
5802      case MEDICINALPRODUCTPHARMACEUTICAL:
5803        return "MedicinalProductPharmaceutical";
5804      case MEDICINALPRODUCTUNDESIRABLEEFFECT:
5805        return "MedicinalProductUndesirableEffect";
5806      case MESSAGEDEFINITION:
5807        return "MessageDefinition";
5808      case MESSAGEHEADER:
5809        return "MessageHeader";
5810      case MOLECULARSEQUENCE:
5811        return "MolecularSequence";
5812      case NAMINGSYSTEM:
5813        return "NamingSystem";
5814      case NUTRITIONORDER:
5815        return "NutritionOrder";
5816      case OBSERVATION:
5817        return "Observation";
5818      case OBSERVATIONDEFINITION:
5819        return "ObservationDefinition";
5820      case OPERATIONDEFINITION:
5821        return "OperationDefinition";
5822      case OPERATIONOUTCOME:
5823        return "OperationOutcome";
5824      case ORGANIZATION:
5825        return "Organization";
5826      case ORGANIZATIONAFFILIATION:
5827        return "OrganizationAffiliation";
5828      case PARAMETERS:
5829        return "Parameters";
5830      case PATIENT:
5831        return "Patient";
5832      case PAYMENTNOTICE:
5833        return "PaymentNotice";
5834      case PAYMENTRECONCILIATION:
5835        return "PaymentReconciliation";
5836      case PERSON:
5837        return "Person";
5838      case PLANDEFINITION:
5839        return "PlanDefinition";
5840      case PRACTITIONER:
5841        return "Practitioner";
5842      case PRACTITIONERROLE:
5843        return "PractitionerRole";
5844      case PROCEDURE:
5845        return "Procedure";
5846      case PROVENANCE:
5847        return "Provenance";
5848      case QUESTIONNAIRE:
5849        return "Questionnaire";
5850      case QUESTIONNAIRERESPONSE:
5851        return "QuestionnaireResponse";
5852      case RELATEDPERSON:
5853        return "RelatedPerson";
5854      case REQUESTGROUP:
5855        return "RequestGroup";
5856      case RESEARCHDEFINITION:
5857        return "ResearchDefinition";
5858      case RESEARCHELEMENTDEFINITION:
5859        return "ResearchElementDefinition";
5860      case RESEARCHSTUDY:
5861        return "ResearchStudy";
5862      case RESEARCHSUBJECT:
5863        return "ResearchSubject";
5864      case RESOURCE:
5865        return "Resource";
5866      case RISKASSESSMENT:
5867        return "RiskAssessment";
5868      case RISKEVIDENCESYNTHESIS:
5869        return "RiskEvidenceSynthesis";
5870      case SCHEDULE:
5871        return "Schedule";
5872      case SEARCHPARAMETER:
5873        return "SearchParameter";
5874      case SERVICEREQUEST:
5875        return "ServiceRequest";
5876      case SLOT:
5877        return "Slot";
5878      case SPECIMEN:
5879        return "Specimen";
5880      case SPECIMENDEFINITION:
5881        return "SpecimenDefinition";
5882      case STRUCTUREDEFINITION:
5883        return "StructureDefinition";
5884      case STRUCTUREMAP:
5885        return "StructureMap";
5886      case SUBSCRIPTION:
5887        return "Subscription";
5888      case SUBSTANCE:
5889        return "Substance";
5890      case SUBSTANCENUCLEICACID:
5891        return "SubstanceNucleicAcid";
5892      case SUBSTANCEPOLYMER:
5893        return "SubstancePolymer";
5894      case SUBSTANCEPROTEIN:
5895        return "SubstanceProtein";
5896      case SUBSTANCEREFERENCEINFORMATION:
5897        return "SubstanceReferenceInformation";
5898      case SUBSTANCESOURCEMATERIAL:
5899        return "SubstanceSourceMaterial";
5900      case SUBSTANCESPECIFICATION:
5901        return "SubstanceSpecification";
5902      case SUPPLYDELIVERY:
5903        return "SupplyDelivery";
5904      case SUPPLYREQUEST:
5905        return "SupplyRequest";
5906      case TASK:
5907        return "Task";
5908      case TERMINOLOGYCAPABILITIES:
5909        return "TerminologyCapabilities";
5910      case TESTREPORT:
5911        return "TestReport";
5912      case TESTSCRIPT:
5913        return "TestScript";
5914      case VALUESET:
5915        return "ValueSet";
5916      case VERIFICATIONRESULT:
5917        return "VerificationResult";
5918      case VISIONPRESCRIPTION:
5919        return "VisionPrescription";
5920      case TYPE:
5921        return "Type";
5922      case ANY:
5923        return "Any";
5924      case NULL:
5925        return null;
5926      default:
5927        return "?";
5928      }
5929    }
5930
5931    public String getSystem() {
5932      switch (this) {
5933      case ADDRESS:
5934        return "http://hl7.org/fhir/data-types";
5935      case AGE:
5936        return "http://hl7.org/fhir/data-types";
5937      case ANNOTATION:
5938        return "http://hl7.org/fhir/data-types";
5939      case ATTACHMENT:
5940        return "http://hl7.org/fhir/data-types";
5941      case BACKBONEELEMENT:
5942        return "http://hl7.org/fhir/data-types";
5943      case CODEABLECONCEPT:
5944        return "http://hl7.org/fhir/data-types";
5945      case CODING:
5946        return "http://hl7.org/fhir/data-types";
5947      case CONTACTDETAIL:
5948        return "http://hl7.org/fhir/data-types";
5949      case CONTACTPOINT:
5950        return "http://hl7.org/fhir/data-types";
5951      case CONTRIBUTOR:
5952        return "http://hl7.org/fhir/data-types";
5953      case COUNT:
5954        return "http://hl7.org/fhir/data-types";
5955      case DATAREQUIREMENT:
5956        return "http://hl7.org/fhir/data-types";
5957      case DISTANCE:
5958        return "http://hl7.org/fhir/data-types";
5959      case DOSAGE:
5960        return "http://hl7.org/fhir/data-types";
5961      case DURATION:
5962        return "http://hl7.org/fhir/data-types";
5963      case ELEMENT:
5964        return "http://hl7.org/fhir/data-types";
5965      case ELEMENTDEFINITION:
5966        return "http://hl7.org/fhir/data-types";
5967      case EXPRESSION:
5968        return "http://hl7.org/fhir/data-types";
5969      case EXTENSION:
5970        return "http://hl7.org/fhir/data-types";
5971      case HUMANNAME:
5972        return "http://hl7.org/fhir/data-types";
5973      case IDENTIFIER:
5974        return "http://hl7.org/fhir/data-types";
5975      case MARKETINGSTATUS:
5976        return "http://hl7.org/fhir/data-types";
5977      case META:
5978        return "http://hl7.org/fhir/data-types";
5979      case MONEY:
5980        return "http://hl7.org/fhir/data-types";
5981      case MONEYQUANTITY:
5982        return "http://hl7.org/fhir/data-types";
5983      case NARRATIVE:
5984        return "http://hl7.org/fhir/data-types";
5985      case PARAMETERDEFINITION:
5986        return "http://hl7.org/fhir/data-types";
5987      case PERIOD:
5988        return "http://hl7.org/fhir/data-types";
5989      case POPULATION:
5990        return "http://hl7.org/fhir/data-types";
5991      case PRODCHARACTERISTIC:
5992        return "http://hl7.org/fhir/data-types";
5993      case PRODUCTSHELFLIFE:
5994        return "http://hl7.org/fhir/data-types";
5995      case QUANTITY:
5996        return "http://hl7.org/fhir/data-types";
5997      case RANGE:
5998        return "http://hl7.org/fhir/data-types";
5999      case RATIO:
6000        return "http://hl7.org/fhir/data-types";
6001      case REFERENCE:
6002        return "http://hl7.org/fhir/data-types";
6003      case RELATEDARTIFACT:
6004        return "http://hl7.org/fhir/data-types";
6005      case SAMPLEDDATA:
6006        return "http://hl7.org/fhir/data-types";
6007      case SIGNATURE:
6008        return "http://hl7.org/fhir/data-types";
6009      case SIMPLEQUANTITY:
6010        return "http://hl7.org/fhir/data-types";
6011      case SUBSTANCEAMOUNT:
6012        return "http://hl7.org/fhir/data-types";
6013      case TIMING:
6014        return "http://hl7.org/fhir/data-types";
6015      case TRIGGERDEFINITION:
6016        return "http://hl7.org/fhir/data-types";
6017      case USAGECONTEXT:
6018        return "http://hl7.org/fhir/data-types";
6019      case BASE64BINARY:
6020        return "http://hl7.org/fhir/data-types";
6021      case BOOLEAN:
6022        return "http://hl7.org/fhir/data-types";
6023      case CANONICAL:
6024        return "http://hl7.org/fhir/data-types";
6025      case CODE:
6026        return "http://hl7.org/fhir/data-types";
6027      case DATE:
6028        return "http://hl7.org/fhir/data-types";
6029      case DATETIME:
6030        return "http://hl7.org/fhir/data-types";
6031      case DECIMAL:
6032        return "http://hl7.org/fhir/data-types";
6033      case ID:
6034        return "http://hl7.org/fhir/data-types";
6035      case INSTANT:
6036        return "http://hl7.org/fhir/data-types";
6037      case INTEGER:
6038        return "http://hl7.org/fhir/data-types";
6039      case MARKDOWN:
6040        return "http://hl7.org/fhir/data-types";
6041      case OID:
6042        return "http://hl7.org/fhir/data-types";
6043      case POSITIVEINT:
6044        return "http://hl7.org/fhir/data-types";
6045      case STRING:
6046        return "http://hl7.org/fhir/data-types";
6047      case TIME:
6048        return "http://hl7.org/fhir/data-types";
6049      case UNSIGNEDINT:
6050        return "http://hl7.org/fhir/data-types";
6051      case URI:
6052        return "http://hl7.org/fhir/data-types";
6053      case URL:
6054        return "http://hl7.org/fhir/data-types";
6055      case UUID:
6056        return "http://hl7.org/fhir/data-types";
6057      case XHTML:
6058        return "http://hl7.org/fhir/data-types";
6059      case ACCOUNT:
6060        return "http://hl7.org/fhir/resource-types";
6061      case ACTIVITYDEFINITION:
6062        return "http://hl7.org/fhir/resource-types";
6063      case ADVERSEEVENT:
6064        return "http://hl7.org/fhir/resource-types";
6065      case ALLERGYINTOLERANCE:
6066        return "http://hl7.org/fhir/resource-types";
6067      case APPOINTMENT:
6068        return "http://hl7.org/fhir/resource-types";
6069      case APPOINTMENTRESPONSE:
6070        return "http://hl7.org/fhir/resource-types";
6071      case AUDITEVENT:
6072        return "http://hl7.org/fhir/resource-types";
6073      case BASIC:
6074        return "http://hl7.org/fhir/resource-types";
6075      case BINARY:
6076        return "http://hl7.org/fhir/resource-types";
6077      case BIOLOGICALLYDERIVEDPRODUCT:
6078        return "http://hl7.org/fhir/resource-types";
6079      case BODYSTRUCTURE:
6080        return "http://hl7.org/fhir/resource-types";
6081      case BUNDLE:
6082        return "http://hl7.org/fhir/resource-types";
6083      case CAPABILITYSTATEMENT:
6084        return "http://hl7.org/fhir/resource-types";
6085      case CAREPLAN:
6086        return "http://hl7.org/fhir/resource-types";
6087      case CARETEAM:
6088        return "http://hl7.org/fhir/resource-types";
6089      case CATALOGENTRY:
6090        return "http://hl7.org/fhir/resource-types";
6091      case CHARGEITEM:
6092        return "http://hl7.org/fhir/resource-types";
6093      case CHARGEITEMDEFINITION:
6094        return "http://hl7.org/fhir/resource-types";
6095      case CLAIM:
6096        return "http://hl7.org/fhir/resource-types";
6097      case CLAIMRESPONSE:
6098        return "http://hl7.org/fhir/resource-types";
6099      case CLINICALIMPRESSION:
6100        return "http://hl7.org/fhir/resource-types";
6101      case CODESYSTEM:
6102        return "http://hl7.org/fhir/resource-types";
6103      case COMMUNICATION:
6104        return "http://hl7.org/fhir/resource-types";
6105      case COMMUNICATIONREQUEST:
6106        return "http://hl7.org/fhir/resource-types";
6107      case COMPARTMENTDEFINITION:
6108        return "http://hl7.org/fhir/resource-types";
6109      case COMPOSITION:
6110        return "http://hl7.org/fhir/resource-types";
6111      case CONCEPTMAP:
6112        return "http://hl7.org/fhir/resource-types";
6113      case CONDITION:
6114        return "http://hl7.org/fhir/resource-types";
6115      case CONSENT:
6116        return "http://hl7.org/fhir/resource-types";
6117      case CONTRACT:
6118        return "http://hl7.org/fhir/resource-types";
6119      case COVERAGE:
6120        return "http://hl7.org/fhir/resource-types";
6121      case COVERAGEELIGIBILITYREQUEST:
6122        return "http://hl7.org/fhir/resource-types";
6123      case COVERAGEELIGIBILITYRESPONSE:
6124        return "http://hl7.org/fhir/resource-types";
6125      case DETECTEDISSUE:
6126        return "http://hl7.org/fhir/resource-types";
6127      case DEVICE:
6128        return "http://hl7.org/fhir/resource-types";
6129      case DEVICEDEFINITION:
6130        return "http://hl7.org/fhir/resource-types";
6131      case DEVICEMETRIC:
6132        return "http://hl7.org/fhir/resource-types";
6133      case DEVICEREQUEST:
6134        return "http://hl7.org/fhir/resource-types";
6135      case DEVICEUSESTATEMENT:
6136        return "http://hl7.org/fhir/resource-types";
6137      case DIAGNOSTICREPORT:
6138        return "http://hl7.org/fhir/resource-types";
6139      case DOCUMENTMANIFEST:
6140        return "http://hl7.org/fhir/resource-types";
6141      case DOCUMENTREFERENCE:
6142        return "http://hl7.org/fhir/resource-types";
6143      case DOMAINRESOURCE:
6144        return "http://hl7.org/fhir/resource-types";
6145      case EFFECTEVIDENCESYNTHESIS:
6146        return "http://hl7.org/fhir/resource-types";
6147      case ENCOUNTER:
6148        return "http://hl7.org/fhir/resource-types";
6149      case ENDPOINT:
6150        return "http://hl7.org/fhir/resource-types";
6151      case ENROLLMENTREQUEST:
6152        return "http://hl7.org/fhir/resource-types";
6153      case ENROLLMENTRESPONSE:
6154        return "http://hl7.org/fhir/resource-types";
6155      case EPISODEOFCARE:
6156        return "http://hl7.org/fhir/resource-types";
6157      case EVENTDEFINITION:
6158        return "http://hl7.org/fhir/resource-types";
6159      case EVIDENCE:
6160        return "http://hl7.org/fhir/resource-types";
6161      case EVIDENCEVARIABLE:
6162        return "http://hl7.org/fhir/resource-types";
6163      case EXAMPLESCENARIO:
6164        return "http://hl7.org/fhir/resource-types";
6165      case EXPLANATIONOFBENEFIT:
6166        return "http://hl7.org/fhir/resource-types";
6167      case FAMILYMEMBERHISTORY:
6168        return "http://hl7.org/fhir/resource-types";
6169      case FLAG:
6170        return "http://hl7.org/fhir/resource-types";
6171      case GOAL:
6172        return "http://hl7.org/fhir/resource-types";
6173      case GRAPHDEFINITION:
6174        return "http://hl7.org/fhir/resource-types";
6175      case GROUP:
6176        return "http://hl7.org/fhir/resource-types";
6177      case GUIDANCERESPONSE:
6178        return "http://hl7.org/fhir/resource-types";
6179      case HEALTHCARESERVICE:
6180        return "http://hl7.org/fhir/resource-types";
6181      case IMAGINGSTUDY:
6182        return "http://hl7.org/fhir/resource-types";
6183      case IMMUNIZATION:
6184        return "http://hl7.org/fhir/resource-types";
6185      case IMMUNIZATIONEVALUATION:
6186        return "http://hl7.org/fhir/resource-types";
6187      case IMMUNIZATIONRECOMMENDATION:
6188        return "http://hl7.org/fhir/resource-types";
6189      case IMPLEMENTATIONGUIDE:
6190        return "http://hl7.org/fhir/resource-types";
6191      case INSURANCEPLAN:
6192        return "http://hl7.org/fhir/resource-types";
6193      case INVOICE:
6194        return "http://hl7.org/fhir/resource-types";
6195      case LIBRARY:
6196        return "http://hl7.org/fhir/resource-types";
6197      case LINKAGE:
6198        return "http://hl7.org/fhir/resource-types";
6199      case LIST:
6200        return "http://hl7.org/fhir/resource-types";
6201      case LOCATION:
6202        return "http://hl7.org/fhir/resource-types";
6203      case MEASURE:
6204        return "http://hl7.org/fhir/resource-types";
6205      case MEASUREREPORT:
6206        return "http://hl7.org/fhir/resource-types";
6207      case MEDIA:
6208        return "http://hl7.org/fhir/resource-types";
6209      case MEDICATION:
6210        return "http://hl7.org/fhir/resource-types";
6211      case MEDICATIONADMINISTRATION:
6212        return "http://hl7.org/fhir/resource-types";
6213      case MEDICATIONDISPENSE:
6214        return "http://hl7.org/fhir/resource-types";
6215      case MEDICATIONKNOWLEDGE:
6216        return "http://hl7.org/fhir/resource-types";
6217      case MEDICATIONREQUEST:
6218        return "http://hl7.org/fhir/resource-types";
6219      case MEDICATIONSTATEMENT:
6220        return "http://hl7.org/fhir/resource-types";
6221      case MEDICINALPRODUCT:
6222        return "http://hl7.org/fhir/resource-types";
6223      case MEDICINALPRODUCTAUTHORIZATION:
6224        return "http://hl7.org/fhir/resource-types";
6225      case MEDICINALPRODUCTCONTRAINDICATION:
6226        return "http://hl7.org/fhir/resource-types";
6227      case MEDICINALPRODUCTINDICATION:
6228        return "http://hl7.org/fhir/resource-types";
6229      case MEDICINALPRODUCTINGREDIENT:
6230        return "http://hl7.org/fhir/resource-types";
6231      case MEDICINALPRODUCTINTERACTION:
6232        return "http://hl7.org/fhir/resource-types";
6233      case MEDICINALPRODUCTMANUFACTURED:
6234        return "http://hl7.org/fhir/resource-types";
6235      case MEDICINALPRODUCTPACKAGED:
6236        return "http://hl7.org/fhir/resource-types";
6237      case MEDICINALPRODUCTPHARMACEUTICAL:
6238        return "http://hl7.org/fhir/resource-types";
6239      case MEDICINALPRODUCTUNDESIRABLEEFFECT:
6240        return "http://hl7.org/fhir/resource-types";
6241      case MESSAGEDEFINITION:
6242        return "http://hl7.org/fhir/resource-types";
6243      case MESSAGEHEADER:
6244        return "http://hl7.org/fhir/resource-types";
6245      case MOLECULARSEQUENCE:
6246        return "http://hl7.org/fhir/resource-types";
6247      case NAMINGSYSTEM:
6248        return "http://hl7.org/fhir/resource-types";
6249      case NUTRITIONORDER:
6250        return "http://hl7.org/fhir/resource-types";
6251      case OBSERVATION:
6252        return "http://hl7.org/fhir/resource-types";
6253      case OBSERVATIONDEFINITION:
6254        return "http://hl7.org/fhir/resource-types";
6255      case OPERATIONDEFINITION:
6256        return "http://hl7.org/fhir/resource-types";
6257      case OPERATIONOUTCOME:
6258        return "http://hl7.org/fhir/resource-types";
6259      case ORGANIZATION:
6260        return "http://hl7.org/fhir/resource-types";
6261      case ORGANIZATIONAFFILIATION:
6262        return "http://hl7.org/fhir/resource-types";
6263      case PARAMETERS:
6264        return "http://hl7.org/fhir/resource-types";
6265      case PATIENT:
6266        return "http://hl7.org/fhir/resource-types";
6267      case PAYMENTNOTICE:
6268        return "http://hl7.org/fhir/resource-types";
6269      case PAYMENTRECONCILIATION:
6270        return "http://hl7.org/fhir/resource-types";
6271      case PERSON:
6272        return "http://hl7.org/fhir/resource-types";
6273      case PLANDEFINITION:
6274        return "http://hl7.org/fhir/resource-types";
6275      case PRACTITIONER:
6276        return "http://hl7.org/fhir/resource-types";
6277      case PRACTITIONERROLE:
6278        return "http://hl7.org/fhir/resource-types";
6279      case PROCEDURE:
6280        return "http://hl7.org/fhir/resource-types";
6281      case PROVENANCE:
6282        return "http://hl7.org/fhir/resource-types";
6283      case QUESTIONNAIRE:
6284        return "http://hl7.org/fhir/resource-types";
6285      case QUESTIONNAIRERESPONSE:
6286        return "http://hl7.org/fhir/resource-types";
6287      case RELATEDPERSON:
6288        return "http://hl7.org/fhir/resource-types";
6289      case REQUESTGROUP:
6290        return "http://hl7.org/fhir/resource-types";
6291      case RESEARCHDEFINITION:
6292        return "http://hl7.org/fhir/resource-types";
6293      case RESEARCHELEMENTDEFINITION:
6294        return "http://hl7.org/fhir/resource-types";
6295      case RESEARCHSTUDY:
6296        return "http://hl7.org/fhir/resource-types";
6297      case RESEARCHSUBJECT:
6298        return "http://hl7.org/fhir/resource-types";
6299      case RESOURCE:
6300        return "http://hl7.org/fhir/resource-types";
6301      case RISKASSESSMENT:
6302        return "http://hl7.org/fhir/resource-types";
6303      case RISKEVIDENCESYNTHESIS:
6304        return "http://hl7.org/fhir/resource-types";
6305      case SCHEDULE:
6306        return "http://hl7.org/fhir/resource-types";
6307      case SEARCHPARAMETER:
6308        return "http://hl7.org/fhir/resource-types";
6309      case SERVICEREQUEST:
6310        return "http://hl7.org/fhir/resource-types";
6311      case SLOT:
6312        return "http://hl7.org/fhir/resource-types";
6313      case SPECIMEN:
6314        return "http://hl7.org/fhir/resource-types";
6315      case SPECIMENDEFINITION:
6316        return "http://hl7.org/fhir/resource-types";
6317      case STRUCTUREDEFINITION:
6318        return "http://hl7.org/fhir/resource-types";
6319      case STRUCTUREMAP:
6320        return "http://hl7.org/fhir/resource-types";
6321      case SUBSCRIPTION:
6322        return "http://hl7.org/fhir/resource-types";
6323      case SUBSTANCE:
6324        return "http://hl7.org/fhir/resource-types";
6325      case SUBSTANCENUCLEICACID:
6326        return "http://hl7.org/fhir/resource-types";
6327      case SUBSTANCEPOLYMER:
6328        return "http://hl7.org/fhir/resource-types";
6329      case SUBSTANCEPROTEIN:
6330        return "http://hl7.org/fhir/resource-types";
6331      case SUBSTANCEREFERENCEINFORMATION:
6332        return "http://hl7.org/fhir/resource-types";
6333      case SUBSTANCESOURCEMATERIAL:
6334        return "http://hl7.org/fhir/resource-types";
6335      case SUBSTANCESPECIFICATION:
6336        return "http://hl7.org/fhir/resource-types";
6337      case SUPPLYDELIVERY:
6338        return "http://hl7.org/fhir/resource-types";
6339      case SUPPLYREQUEST:
6340        return "http://hl7.org/fhir/resource-types";
6341      case TASK:
6342        return "http://hl7.org/fhir/resource-types";
6343      case TERMINOLOGYCAPABILITIES:
6344        return "http://hl7.org/fhir/resource-types";
6345      case TESTREPORT:
6346        return "http://hl7.org/fhir/resource-types";
6347      case TESTSCRIPT:
6348        return "http://hl7.org/fhir/resource-types";
6349      case VALUESET:
6350        return "http://hl7.org/fhir/resource-types";
6351      case VERIFICATIONRESULT:
6352        return "http://hl7.org/fhir/resource-types";
6353      case VISIONPRESCRIPTION:
6354        return "http://hl7.org/fhir/resource-types";
6355      case TYPE:
6356        return "http://hl7.org/fhir/abstract-types";
6357      case ANY:
6358        return "http://hl7.org/fhir/abstract-types";
6359      case NULL:
6360        return null;
6361      default:
6362        return "?";
6363      }
6364    }
6365
6366    public String getDefinition() {
6367      switch (this) {
6368      case ADDRESS:
6369        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 which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
6370      case AGE:
6371        return "A duration of time during which an organism (or a process) has existed.";
6372      case ANNOTATION:
6373        return "A  text note which also  contains information about who made the statement and when.";
6374      case ATTACHMENT:
6375        return "For referring to data content defined in other formats.";
6376      case BACKBONEELEMENT:
6377        return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
6378      case CODEABLECONCEPT:
6379        return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
6380      case CODING:
6381        return "A reference to a code defined by a terminology system.";
6382      case CONTACTDETAIL:
6383        return "Specifies contact information for a person or organization.";
6384      case CONTACTPOINT:
6385        return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
6386      case CONTRIBUTOR:
6387        return "A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
6388      case COUNT:
6389        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.";
6390      case DATAREQUIREMENT:
6391        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.";
6392      case DISTANCE:
6393        return "A length - a value with a unit that is a physical distance.";
6394      case DOSAGE:
6395        return "Indicates how the medication is/was taken or should be taken by the patient.";
6396      case DURATION:
6397        return "A length of time.";
6398      case ELEMENT:
6399        return "Base definition for all elements in a resource.";
6400      case ELEMENTDEFINITION:
6401        return "Captures constraints on each element within the resource, profile, or extension.";
6402      case EXPRESSION:
6403        return "A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used.";
6404      case EXTENSION:
6405        return "Optional Extension Element - found in all resources.";
6406      case HUMANNAME:
6407        return "A human's name with the ability to identify parts and usage.";
6408      case IDENTIFIER:
6409        return "An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.";
6410      case MARKETINGSTATUS:
6411        return "The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.";
6412      case META:
6413        return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.";
6414      case MONEY:
6415        return "An amount of economic utility in some recognized currency.";
6416      case MONEYQUANTITY:
6417        return "";
6418      case NARRATIVE:
6419        return "A human-readable summary of the resource conveying the essential clinical and business information for the resource.";
6420      case PARAMETERDEFINITION:
6421        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.";
6422      case PERIOD:
6423        return "A time period defined by a start and end date and optionally time.";
6424      case POPULATION:
6425        return "A populatioof people with some set of grouping criteria.";
6426      case PRODCHARACTERISTIC:
6427        return "The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.";
6428      case PRODUCTSHELFLIFE:
6429        return "The shelf-life and storage information for a medicinal product item or container can be described using this class.";
6430      case QUANTITY:
6431        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.";
6432      case RANGE:
6433        return "A set of ordered Quantities defined by a low and high limit.";
6434      case RATIO:
6435        return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
6436      case REFERENCE:
6437        return "A reference from one resource to another.";
6438      case RELATEDARTIFACT:
6439        return "Related artifacts such as additional documentation, justification, or bibliographic references.";
6440      case SAMPLEDDATA:
6441        return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
6442      case SIGNATURE:
6443        return "A signature along with supporting context. The signature may be a digital signature that is cryptographic in nature, or some other signature acceptable to the domain. This other signature may be as simple as a graphical image representing a hand-written signature, or a signature ceremony Different signature approaches have different utilities.";
6444      case SIMPLEQUANTITY:
6445        return "";
6446      case SUBSTANCEAMOUNT:
6447        return "Chemical substances are a single substance type whose primary defining element is the molecular structure. Chemical substances shall be defined on the basis of their complete covalent molecular structure; the presence of a salt (counter-ion) and/or solvates (water, alcohols) is also captured. Purity, grade, physical form or particle size are not taken into account in the definition of a chemical substance or in the assignment of a Substance ID.";
6448      case TIMING:
6449        return "Specifies an event that may occur multiple times. Timing schedules are used to record when things are planned, 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, and may be used for reporting the schedule to which past regular activities were carried out.";
6450      case TRIGGERDEFINITION:
6451        return "A description of a triggering event. Triggering events can be named events, data events, or periodic, as determined by the type element.";
6452      case USAGECONTEXT:
6453        return "Specifies clinical/business/etc. metadata that can be used to retrieve, index and/or categorize an artifact. This metadata can either be specific to the applicable population (e.g., age category, DRG) or the specific context of care (e.g., venue, care setting, provider of care).";
6454      case BASE64BINARY:
6455        return "A stream of bytes";
6456      case BOOLEAN:
6457        return "Value of \"true\" or \"false\"";
6458      case CANONICAL:
6459        return "A URI that is a reference to a canonical URL on a FHIR resource";
6460      case CODE:
6461        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";
6462      case DATE:
6463        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.";
6464      case DATETIME:
6465        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.";
6466      case DECIMAL:
6467        return "A rational number with implicit precision";
6468      case ID:
6469        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.";
6470      case INSTANT:
6471        return "An instant in time - known at least to the second";
6472      case INTEGER:
6473        return "A whole number";
6474      case MARKDOWN:
6475        return "A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine";
6476      case OID:
6477        return "An OID represented as a URI";
6478      case POSITIVEINT:
6479        return "An integer with a value that is positive (e.g. >0)";
6480      case STRING:
6481        return "A sequence of Unicode characters";
6482      case TIME:
6483        return "A time during the day, with no date specified";
6484      case UNSIGNEDINT:
6485        return "An integer with a value that is not negative (e.g. >= 0)";
6486      case URI:
6487        return "String of characters used to identify a name or a resource";
6488      case URL:
6489        return "A URI that is a literal reference";
6490      case UUID:
6491        return "A UUID, represented as a URI";
6492      case XHTML:
6493        return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
6494      case ACCOUNT:
6495        return "A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centers, etc.";
6496      case ACTIVITYDEFINITION:
6497        return "This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.";
6498      case ADVERSEEVENT:
6499        return "Actual or  potential/avoided event causing unintended physical injury resulting from or contributed to by medical care, a research study or other healthcare setting factors that requires additional monitoring, treatment, or hospitalization, or that results in death.";
6500      case ALLERGYINTOLERANCE:
6501        return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
6502      case APPOINTMENT:
6503        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).";
6504      case APPOINTMENTRESPONSE:
6505        return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
6506      case AUDITEVENT:
6507        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.";
6508      case BASIC:
6509        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.";
6510      case BINARY:
6511        return "A resource that represents the data of a single raw artifact as digital content accessible in its native format.  A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
6512      case BIOLOGICALLYDERIVEDPRODUCT:
6513        return "A material substance originating from a biological entity intended to be transplanted or infused\ninto another (possibly the same) biological entity.";
6514      case BODYSTRUCTURE:
6515        return "Record details about an anatomical structure.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
6516      case BUNDLE:
6517        return "A container for a collection of resources.";
6518      case CAPABILITYSTATEMENT:
6519        return "A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
6520      case CAREPLAN:
6521        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.";
6522      case CARETEAM:
6523        return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.";
6524      case CATALOGENTRY:
6525        return "Catalog entries are wrappers that contextualize items included in a catalog.";
6526      case CHARGEITEM:
6527        return "The resource ChargeItem describes the provision of healthcare provider products for a certain patient, therefore referring not only to the product, but containing in addition details of the provision, like date, time, amounts and participating organizations and persons. Main Usage of the ChargeItem is to enable the billing process and internal cost allocation.";
6528      case CHARGEITEMDEFINITION:
6529        return "The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system.";
6530      case CLAIM:
6531        return "A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.";
6532      case CLAIMRESPONSE:
6533        return "This resource provides the adjudication details from the processing of a Claim resource.";
6534      case CLINICALIMPRESSION:
6535        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.";
6536      case CODESYSTEM:
6537        return "The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.";
6538      case COMMUNICATION:
6539        return "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency that was notified about a reportable condition.";
6540      case COMMUNICATIONREQUEST:
6541        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.";
6542      case COMPARTMENTDEFINITION:
6543        return "A compartment definition that defines how resources are accessed on a server.";
6544      case COMPOSITION:
6545        return "A set of healthcare-related information that is assembled together into a single logical package 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. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).";
6546      case CONCEPTMAP:
6547        return "A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.";
6548      case CONDITION:
6549        return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
6550      case CONSENT:
6551        return "A record of a healthcare consumer?s  choices, which permits or denies identified recipient(s) or recipient role(s) to perform one or more actions within a given policy context, for specific purposes and periods of time.";
6552      case CONTRACT:
6553        return "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.";
6554      case COVERAGE:
6555        return "Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.";
6556      case COVERAGEELIGIBILITYREQUEST:
6557        return "The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.";
6558      case COVERAGEELIGIBILITYRESPONSE:
6559        return "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.";
6560      case DETECTEDISSUE:
6561        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.";
6562      case DEVICE:
6563        return "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.";
6564      case DEVICEDEFINITION:
6565        return "The characteristics, operational status and capabilities of a medical-related component of a medical device.";
6566      case DEVICEMETRIC:
6567        return "Describes a measurement, calculation or setting capability of a medical device.";
6568      case DEVICEREQUEST:
6569        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.";
6570      case DEVICEUSESTATEMENT:
6571        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.";
6572      case DIAGNOSTICREPORT:
6573        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.";
6574      case DOCUMENTMANIFEST:
6575        return "A collection of documents compiled for a purpose together with metadata that applies to the collection.";
6576      case DOCUMENTREFERENCE:
6577        return "A reference to a document of any kind for any purpose. Provides metadata about the document so that the document can be discovered and managed. The scope of a document is any seralized object with a mime-type, so includes formal patient centric documents (CDA), cliical notes, scanned paper, and non-patient specific documents like policy text.";
6578      case DOMAINRESOURCE:
6579        return "A resource that includes narrative, extensions, and contained resources.";
6580      case EFFECTEVIDENCESYNTHESIS:
6581        return "The EffectEvidenceSynthesis resource describes the difference in an outcome between exposures states in a population where the effect estimate is derived from a combination of research studies.";
6582      case ENCOUNTER:
6583        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.";
6584      case ENDPOINT:
6585        return "The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b or a REST endpoint for another FHIR server. This may include any security context information.";
6586      case ENROLLMENTREQUEST:
6587        return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
6588      case ENROLLMENTRESPONSE:
6589        return "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.";
6590      case EPISODEOFCARE:
6591        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.";
6592      case EVENTDEFINITION:
6593        return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
6594      case EVIDENCE:
6595        return "The Evidence resource describes the conditional state (population and any exposures being compared within the population) and outcome (if specified) that the knowledge (evidence, assertion, recommendation) is about.";
6596      case EVIDENCEVARIABLE:
6597        return "The EvidenceVariable resource describes a \"PICO\" element that knowledge (evidence, assertion, recommendation) is about.";
6598      case EXAMPLESCENARIO:
6599        return "Example of workflow instance.";
6600      case EXPLANATIONOFBENEFIT:
6601        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.";
6602      case FAMILYMEMBERHISTORY:
6603        return "Significant health conditions for a person related to the patient relevant in the context of care for the patient.";
6604      case FLAG:
6605        return "Prospective warnings of potential issues when providing care to the patient.";
6606      case GOAL:
6607        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.";
6608      case GRAPHDEFINITION:
6609        return "A formal computable definition of a graph of resources - that is, a coherent set of resources that form a graph by following references. The Graph Definition resource defines a set and makes rules about the set.";
6610      case GROUP:
6611        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.";
6612      case GUIDANCERESPONSE:
6613        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.";
6614      case HEALTHCARESERVICE:
6615        return "The details of a healthcare service available at a location.";
6616      case IMAGINGSTUDY:
6617        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.";
6618      case IMMUNIZATION:
6619        return "Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.";
6620      case IMMUNIZATIONEVALUATION:
6621        return "Describes a comparison of an immunization event against published recommendations to determine if the administration is \"valid\" in relation to those  recommendations.";
6622      case IMMUNIZATIONRECOMMENDATION:
6623        return "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.";
6624      case IMPLEMENTATIONGUIDE:
6625        return "A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. 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.";
6626      case INSURANCEPLAN:
6627        return "Details of a Health Insurance product/plan provided by an organization.";
6628      case INVOICE:
6629        return "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.";
6630      case LIBRARY:
6631        return "The Library resource is a general-purpose container for knowledge asset definitions. It can be used to describe and expose existing knowledge assets such as logic libraries and information model descriptions, as well as to describe a collection of knowledge assets.";
6632      case LINKAGE:
6633        return "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\".";
6634      case LIST:
6635        return "A list is a curated collection of resources.";
6636      case LOCATION:
6637        return "Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained, or accommodated.";
6638      case MEASURE:
6639        return "The Measure resource provides the definition of a quality measure.";
6640      case MEASUREREPORT:
6641        return "The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.";
6642      case MEDIA:
6643        return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
6644      case MEDICATION:
6645        return "This resource is primarily used for the identification and definition of a medication for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.";
6646      case MEDICATIONADMINISTRATION:
6647        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.";
6648      case MEDICATIONDISPENSE:
6649        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.";
6650      case MEDICATIONKNOWLEDGE:
6651        return "Information about a medication that is used to support knowledge.";
6652      case MEDICATIONREQUEST:
6653        return "An order or request for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called \"MedicationRequest\" rather than \"MedicationPrescription\" or \"MedicationOrder\" to generalize the use across inpatient and outpatient settings, including care plans, etc., and to harmonize with workflow patterns.";
6654      case MEDICATIONSTATEMENT:
6655        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 sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. \n\nThe 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.";
6656      case MEDICINALPRODUCT:
6657        return "Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use).";
6658      case MEDICINALPRODUCTAUTHORIZATION:
6659        return "The regulatory authorization of a medicinal product.";
6660      case MEDICINALPRODUCTCONTRAINDICATION:
6661        return "The clinical particulars - indications, contraindications etc. of a medicinal product, including for regulatory purposes.";
6662      case MEDICINALPRODUCTINDICATION:
6663        return "Indication for the Medicinal Product.";
6664      case MEDICINALPRODUCTINGREDIENT:
6665        return "An ingredient of a manufactured item or pharmaceutical product.";
6666      case MEDICINALPRODUCTINTERACTION:
6667        return "The interactions of the medicinal product with other medicinal products, or other forms of interactions.";
6668      case MEDICINALPRODUCTMANUFACTURED:
6669        return "The manufactured item as contained in the packaged medicinal product.";
6670      case MEDICINALPRODUCTPACKAGED:
6671        return "A medicinal product in a container or package.";
6672      case MEDICINALPRODUCTPHARMACEUTICAL:
6673        return "A pharmaceutical product described in terms of its composition and dose form.";
6674      case MEDICINALPRODUCTUNDESIRABLEEFFECT:
6675        return "Describe the undesirable effects of the medicinal product.";
6676      case MESSAGEDEFINITION:
6677        return "Defines the characteristics of a message that can be shared between systems, including the type of event that initiates the message, the content to be transmitted and what response(s), if any, are permitted.";
6678      case MESSAGEHEADER:
6679        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.";
6680      case MOLECULARSEQUENCE:
6681        return "Raw data describing a biological sequence.";
6682      case NAMINGSYSTEM:
6683        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.";
6684      case NUTRITIONORDER:
6685        return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
6686      case OBSERVATION:
6687        return "Measurements and simple assertions made about a patient, device or other subject.";
6688      case OBSERVATIONDEFINITION:
6689        return "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.";
6690      case OPERATIONDEFINITION:
6691        return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
6692      case OPERATIONOUTCOME:
6693        return "A collection of error, warning, or information messages that result from a system action.";
6694      case ORGANIZATION:
6695        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, payer/insurer, etc.";
6696      case ORGANIZATIONAFFILIATION:
6697        return "Defines an affiliation/assotiation/relationship between 2 distinct oganizations, that is not a part-of relationship/sub-division relationship.";
6698      case PARAMETERS:
6699        return "This resource is a non-persisted resource used to pass information into and back from an [operation](operations.html). It has no other use, and there is no RESTful endpoint associated with it.";
6700      case PATIENT:
6701        return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
6702      case PAYMENTNOTICE:
6703        return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
6704      case PAYMENTRECONCILIATION:
6705        return "This resource provides the details including amount of a payment and allocates the payment items being paid.";
6706      case PERSON:
6707        return "Demographics and administrative information about a person independent of a specific health-related context.";
6708      case PLANDEFINITION:
6709        return "This resource allows for the definition of various types of plans as a sharable, consumable, and executable artifact. The resource is general enough to support the description of a broad range of clinical artifacts such as clinical decision support rules, order sets and protocols.";
6710      case PRACTITIONER:
6711        return "A person who is directly or indirectly involved in the provisioning of healthcare.";
6712      case PRACTITIONERROLE:
6713        return "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.";
6714      case PROCEDURE:
6715        return "An action that is or was performed on or for a patient. This can be a physical intervention like an operation, or less invasive like long term services, counseling, or hypnotherapy.";
6716      case PROVENANCE:
6717        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.";
6718      case QUESTIONNAIRE:
6719        return "A structured set of questions intended to guide the collection of answers from end-users. Questionnaires provide detailed control over order, presentation, phraseology and grouping to allow coherent, consistent data collection.";
6720      case QUESTIONNAIRERESPONSE:
6721        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 questionnaire being responded to.";
6722      case RELATEDPERSON:
6723        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.";
6724      case REQUESTGROUP:
6725        return "A group of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\".";
6726      case RESEARCHDEFINITION:
6727        return "The ResearchDefinition resource describes the conditional state (population and any exposures being compared within the population) and outcome (if specified) that the knowledge (evidence, assertion, recommendation) is about.";
6728      case RESEARCHELEMENTDEFINITION:
6729        return "The ResearchElementDefinition resource describes a \"PICO\" element that knowledge (evidence, assertion, recommendation) is about.";
6730      case RESEARCHSTUDY:
6731        return "A process where a researcher or organization plans and then executes a series of steps intended to increase the field of healthcare-related knowledge.  This includes studies of safety, efficacy, comparative effectiveness and other information about medications, devices, therapies and other interventional and investigative techniques.  A ResearchStudy involves the gathering of information about human or animal subjects.";
6732      case RESEARCHSUBJECT:
6733        return "A physical entity which is the primary unit of operational and/or administrative interest in a study.";
6734      case RESOURCE:
6735        return "This is the base resource type for everything.";
6736      case RISKASSESSMENT:
6737        return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
6738      case RISKEVIDENCESYNTHESIS:
6739        return "The RiskEvidenceSynthesis resource describes the likelihood of an outcome in a population plus exposure state where the risk estimate is derived from a combination of research studies.";
6740      case SCHEDULE:
6741        return "A container for slots of time that may be available for booking appointments.";
6742      case SEARCHPARAMETER:
6743        return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
6744      case SERVICEREQUEST:
6745        return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
6746      case SLOT:
6747        return "A slot of time on a schedule that may be available for booking appointments.";
6748      case SPECIMEN:
6749        return "A sample to be used for analysis.";
6750      case SPECIMENDEFINITION:
6751        return "A kind of specimen with associated set of requirements.";
6752      case STRUCTUREDEFINITION:
6753        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.";
6754      case STRUCTUREMAP:
6755        return "A Map of relationships between 2 structures that can be used to transform data.";
6756      case SUBSCRIPTION:
6757        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 can take an appropriate action.";
6758      case SUBSTANCE:
6759        return "A homogeneous material with a definite composition.";
6760      case SUBSTANCENUCLEICACID:
6761        return "Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5?-3? direction.";
6762      case SUBSTANCEPOLYMER:
6763        return "Todo.";
6764      case SUBSTANCEPROTEIN:
6765        return "A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators.";
6766      case SUBSTANCEREFERENCEINFORMATION:
6767        return "Todo.";
6768      case SUBSTANCESOURCEMATERIAL:
6769        return "Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex.";
6770      case SUBSTANCESPECIFICATION:
6771        return "The detailed description of a substance, typically at a level beyond what is used for prescribing.";
6772      case SUPPLYDELIVERY:
6773        return "Record of delivery of what is supplied.";
6774      case SUPPLYREQUEST:
6775        return "A record of a request for a medication, substance or device used in the healthcare setting.";
6776      case TASK:
6777        return "A task to be performed.";
6778      case TERMINOLOGYCAPABILITIES:
6779        return "A Terminology Capabilities documents a set of capabilities (behaviors) of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
6780      case TESTREPORT:
6781        return "A summary of information based on the results of executing a TestScript.";
6782      case TESTSCRIPT:
6783        return "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.";
6784      case VALUESET:
6785        return "A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[[CodeSystem]]] definitions and their use in [coded elements](terminologies.html).";
6786      case VERIFICATIONRESULT:
6787        return "Describes validation requirements, source(s), status and dates for one or more elements.";
6788      case VISIONPRESCRIPTION:
6789        return "An authorization for the provision of glasses and/or contact lenses to a patient.";
6790      case TYPE:
6791        return "A place holder that means any kind of data type";
6792      case ANY:
6793        return "A place holder that means any kind of resource";
6794      case NULL:
6795        return null;
6796      default:
6797        return "?";
6798      }
6799    }
6800
6801    public String getDisplay() {
6802      switch (this) {
6803      case ADDRESS:
6804        return "Address";
6805      case AGE:
6806        return "Age";
6807      case ANNOTATION:
6808        return "Annotation";
6809      case ATTACHMENT:
6810        return "Attachment";
6811      case BACKBONEELEMENT:
6812        return "BackboneElement";
6813      case CODEABLECONCEPT:
6814        return "CodeableConcept";
6815      case CODING:
6816        return "Coding";
6817      case CONTACTDETAIL:
6818        return "ContactDetail";
6819      case CONTACTPOINT:
6820        return "ContactPoint";
6821      case CONTRIBUTOR:
6822        return "Contributor";
6823      case COUNT:
6824        return "Count";
6825      case DATAREQUIREMENT:
6826        return "DataRequirement";
6827      case DISTANCE:
6828        return "Distance";
6829      case DOSAGE:
6830        return "Dosage";
6831      case DURATION:
6832        return "Duration";
6833      case ELEMENT:
6834        return "Element";
6835      case ELEMENTDEFINITION:
6836        return "ElementDefinition";
6837      case EXPRESSION:
6838        return "Expression";
6839      case EXTENSION:
6840        return "Extension";
6841      case HUMANNAME:
6842        return "HumanName";
6843      case IDENTIFIER:
6844        return "Identifier";
6845      case MARKETINGSTATUS:
6846        return "MarketingStatus";
6847      case META:
6848        return "Meta";
6849      case MONEY:
6850        return "Money";
6851      case MONEYQUANTITY:
6852        return "MoneyQuantity";
6853      case NARRATIVE:
6854        return "Narrative";
6855      case PARAMETERDEFINITION:
6856        return "ParameterDefinition";
6857      case PERIOD:
6858        return "Period";
6859      case POPULATION:
6860        return "Population";
6861      case PRODCHARACTERISTIC:
6862        return "ProdCharacteristic";
6863      case PRODUCTSHELFLIFE:
6864        return "ProductShelfLife";
6865      case QUANTITY:
6866        return "Quantity";
6867      case RANGE:
6868        return "Range";
6869      case RATIO:
6870        return "Ratio";
6871      case REFERENCE:
6872        return "Reference";
6873      case RELATEDARTIFACT:
6874        return "RelatedArtifact";
6875      case SAMPLEDDATA:
6876        return "SampledData";
6877      case SIGNATURE:
6878        return "Signature";
6879      case SIMPLEQUANTITY:
6880        return "SimpleQuantity";
6881      case SUBSTANCEAMOUNT:
6882        return "SubstanceAmount";
6883      case TIMING:
6884        return "Timing";
6885      case TRIGGERDEFINITION:
6886        return "TriggerDefinition";
6887      case USAGECONTEXT:
6888        return "UsageContext";
6889      case BASE64BINARY:
6890        return "base64Binary";
6891      case BOOLEAN:
6892        return "boolean";
6893      case CANONICAL:
6894        return "canonical";
6895      case CODE:
6896        return "code";
6897      case DATE:
6898        return "date";
6899      case DATETIME:
6900        return "dateTime";
6901      case DECIMAL:
6902        return "decimal";
6903      case ID:
6904        return "id";
6905      case INSTANT:
6906        return "instant";
6907      case INTEGER:
6908        return "integer";
6909      case MARKDOWN:
6910        return "markdown";
6911      case OID:
6912        return "oid";
6913      case POSITIVEINT:
6914        return "positiveInt";
6915      case STRING:
6916        return "string";
6917      case TIME:
6918        return "time";
6919      case UNSIGNEDINT:
6920        return "unsignedInt";
6921      case URI:
6922        return "uri";
6923      case URL:
6924        return "url";
6925      case UUID:
6926        return "uuid";
6927      case XHTML:
6928        return "XHTML";
6929      case ACCOUNT:
6930        return "Account";
6931      case ACTIVITYDEFINITION:
6932        return "ActivityDefinition";
6933      case ADVERSEEVENT:
6934        return "AdverseEvent";
6935      case ALLERGYINTOLERANCE:
6936        return "AllergyIntolerance";
6937      case APPOINTMENT:
6938        return "Appointment";
6939      case APPOINTMENTRESPONSE:
6940        return "AppointmentResponse";
6941      case AUDITEVENT:
6942        return "AuditEvent";
6943      case BASIC:
6944        return "Basic";
6945      case BINARY:
6946        return "Binary";
6947      case BIOLOGICALLYDERIVEDPRODUCT:
6948        return "BiologicallyDerivedProduct";
6949      case BODYSTRUCTURE:
6950        return "BodyStructure";
6951      case BUNDLE:
6952        return "Bundle";
6953      case CAPABILITYSTATEMENT:
6954        return "CapabilityStatement";
6955      case CAREPLAN:
6956        return "CarePlan";
6957      case CARETEAM:
6958        return "CareTeam";
6959      case CATALOGENTRY:
6960        return "CatalogEntry";
6961      case CHARGEITEM:
6962        return "ChargeItem";
6963      case CHARGEITEMDEFINITION:
6964        return "ChargeItemDefinition";
6965      case CLAIM:
6966        return "Claim";
6967      case CLAIMRESPONSE:
6968        return "ClaimResponse";
6969      case CLINICALIMPRESSION:
6970        return "ClinicalImpression";
6971      case CODESYSTEM:
6972        return "CodeSystem";
6973      case COMMUNICATION:
6974        return "Communication";
6975      case COMMUNICATIONREQUEST:
6976        return "CommunicationRequest";
6977      case COMPARTMENTDEFINITION:
6978        return "CompartmentDefinition";
6979      case COMPOSITION:
6980        return "Composition";
6981      case CONCEPTMAP:
6982        return "ConceptMap";
6983      case CONDITION:
6984        return "Condition";
6985      case CONSENT:
6986        return "Consent";
6987      case CONTRACT:
6988        return "Contract";
6989      case COVERAGE:
6990        return "Coverage";
6991      case COVERAGEELIGIBILITYREQUEST:
6992        return "CoverageEligibilityRequest";
6993      case COVERAGEELIGIBILITYRESPONSE:
6994        return "CoverageEligibilityResponse";
6995      case DETECTEDISSUE:
6996        return "DetectedIssue";
6997      case DEVICE:
6998        return "Device";
6999      case DEVICEDEFINITION:
7000        return "DeviceDefinition";
7001      case DEVICEMETRIC:
7002        return "DeviceMetric";
7003      case DEVICEREQUEST:
7004        return "DeviceRequest";
7005      case DEVICEUSESTATEMENT:
7006        return "DeviceUseStatement";
7007      case DIAGNOSTICREPORT:
7008        return "DiagnosticReport";
7009      case DOCUMENTMANIFEST:
7010        return "DocumentManifest";
7011      case DOCUMENTREFERENCE:
7012        return "DocumentReference";
7013      case DOMAINRESOURCE:
7014        return "DomainResource";
7015      case EFFECTEVIDENCESYNTHESIS:
7016        return "EffectEvidenceSynthesis";
7017      case ENCOUNTER:
7018        return "Encounter";
7019      case ENDPOINT:
7020        return "Endpoint";
7021      case ENROLLMENTREQUEST:
7022        return "EnrollmentRequest";
7023      case ENROLLMENTRESPONSE:
7024        return "EnrollmentResponse";
7025      case EPISODEOFCARE:
7026        return "EpisodeOfCare";
7027      case EVENTDEFINITION:
7028        return "EventDefinition";
7029      case EVIDENCE:
7030        return "Evidence";
7031      case EVIDENCEVARIABLE:
7032        return "EvidenceVariable";
7033      case EXAMPLESCENARIO:
7034        return "ExampleScenario";
7035      case EXPLANATIONOFBENEFIT:
7036        return "ExplanationOfBenefit";
7037      case FAMILYMEMBERHISTORY:
7038        return "FamilyMemberHistory";
7039      case FLAG:
7040        return "Flag";
7041      case GOAL:
7042        return "Goal";
7043      case GRAPHDEFINITION:
7044        return "GraphDefinition";
7045      case GROUP:
7046        return "Group";
7047      case GUIDANCERESPONSE:
7048        return "GuidanceResponse";
7049      case HEALTHCARESERVICE:
7050        return "HealthcareService";
7051      case IMAGINGSTUDY:
7052        return "ImagingStudy";
7053      case IMMUNIZATION:
7054        return "Immunization";
7055      case IMMUNIZATIONEVALUATION:
7056        return "ImmunizationEvaluation";
7057      case IMMUNIZATIONRECOMMENDATION:
7058        return "ImmunizationRecommendation";
7059      case IMPLEMENTATIONGUIDE:
7060        return "ImplementationGuide";
7061      case INSURANCEPLAN:
7062        return "InsurancePlan";
7063      case INVOICE:
7064        return "Invoice";
7065      case LIBRARY:
7066        return "Library";
7067      case LINKAGE:
7068        return "Linkage";
7069      case LIST:
7070        return "List";
7071      case LOCATION:
7072        return "Location";
7073      case MEASURE:
7074        return "Measure";
7075      case MEASUREREPORT:
7076        return "MeasureReport";
7077      case MEDIA:
7078        return "Media";
7079      case MEDICATION:
7080        return "Medication";
7081      case MEDICATIONADMINISTRATION:
7082        return "MedicationAdministration";
7083      case MEDICATIONDISPENSE:
7084        return "MedicationDispense";
7085      case MEDICATIONKNOWLEDGE:
7086        return "MedicationKnowledge";
7087      case MEDICATIONREQUEST:
7088        return "MedicationRequest";
7089      case MEDICATIONSTATEMENT:
7090        return "MedicationStatement";
7091      case MEDICINALPRODUCT:
7092        return "MedicinalProduct";
7093      case MEDICINALPRODUCTAUTHORIZATION:
7094        return "MedicinalProductAuthorization";
7095      case MEDICINALPRODUCTCONTRAINDICATION:
7096        return "MedicinalProductContraindication";
7097      case MEDICINALPRODUCTINDICATION:
7098        return "MedicinalProductIndication";
7099      case MEDICINALPRODUCTINGREDIENT:
7100        return "MedicinalProductIngredient";
7101      case MEDICINALPRODUCTINTERACTION:
7102        return "MedicinalProductInteraction";
7103      case MEDICINALPRODUCTMANUFACTURED:
7104        return "MedicinalProductManufactured";
7105      case MEDICINALPRODUCTPACKAGED:
7106        return "MedicinalProductPackaged";
7107      case MEDICINALPRODUCTPHARMACEUTICAL:
7108        return "MedicinalProductPharmaceutical";
7109      case MEDICINALPRODUCTUNDESIRABLEEFFECT:
7110        return "MedicinalProductUndesirableEffect";
7111      case MESSAGEDEFINITION:
7112        return "MessageDefinition";
7113      case MESSAGEHEADER:
7114        return "MessageHeader";
7115      case MOLECULARSEQUENCE:
7116        return "MolecularSequence";
7117      case NAMINGSYSTEM:
7118        return "NamingSystem";
7119      case NUTRITIONORDER:
7120        return "NutritionOrder";
7121      case OBSERVATION:
7122        return "Observation";
7123      case OBSERVATIONDEFINITION:
7124        return "ObservationDefinition";
7125      case OPERATIONDEFINITION:
7126        return "OperationDefinition";
7127      case OPERATIONOUTCOME:
7128        return "OperationOutcome";
7129      case ORGANIZATION:
7130        return "Organization";
7131      case ORGANIZATIONAFFILIATION:
7132        return "OrganizationAffiliation";
7133      case PARAMETERS:
7134        return "Parameters";
7135      case PATIENT:
7136        return "Patient";
7137      case PAYMENTNOTICE:
7138        return "PaymentNotice";
7139      case PAYMENTRECONCILIATION:
7140        return "PaymentReconciliation";
7141      case PERSON:
7142        return "Person";
7143      case PLANDEFINITION:
7144        return "PlanDefinition";
7145      case PRACTITIONER:
7146        return "Practitioner";
7147      case PRACTITIONERROLE:
7148        return "PractitionerRole";
7149      case PROCEDURE:
7150        return "Procedure";
7151      case PROVENANCE:
7152        return "Provenance";
7153      case QUESTIONNAIRE:
7154        return "Questionnaire";
7155      case QUESTIONNAIRERESPONSE:
7156        return "QuestionnaireResponse";
7157      case RELATEDPERSON:
7158        return "RelatedPerson";
7159      case REQUESTGROUP:
7160        return "RequestGroup";
7161      case RESEARCHDEFINITION:
7162        return "ResearchDefinition";
7163      case RESEARCHELEMENTDEFINITION:
7164        return "ResearchElementDefinition";
7165      case RESEARCHSTUDY:
7166        return "ResearchStudy";
7167      case RESEARCHSUBJECT:
7168        return "ResearchSubject";
7169      case RESOURCE:
7170        return "Resource";
7171      case RISKASSESSMENT:
7172        return "RiskAssessment";
7173      case RISKEVIDENCESYNTHESIS:
7174        return "RiskEvidenceSynthesis";
7175      case SCHEDULE:
7176        return "Schedule";
7177      case SEARCHPARAMETER:
7178        return "SearchParameter";
7179      case SERVICEREQUEST:
7180        return "ServiceRequest";
7181      case SLOT:
7182        return "Slot";
7183      case SPECIMEN:
7184        return "Specimen";
7185      case SPECIMENDEFINITION:
7186        return "SpecimenDefinition";
7187      case STRUCTUREDEFINITION:
7188        return "StructureDefinition";
7189      case STRUCTUREMAP:
7190        return "StructureMap";
7191      case SUBSCRIPTION:
7192        return "Subscription";
7193      case SUBSTANCE:
7194        return "Substance";
7195      case SUBSTANCENUCLEICACID:
7196        return "SubstanceNucleicAcid";
7197      case SUBSTANCEPOLYMER:
7198        return "SubstancePolymer";
7199      case SUBSTANCEPROTEIN:
7200        return "SubstanceProtein";
7201      case SUBSTANCEREFERENCEINFORMATION:
7202        return "SubstanceReferenceInformation";
7203      case SUBSTANCESOURCEMATERIAL:
7204        return "SubstanceSourceMaterial";
7205      case SUBSTANCESPECIFICATION:
7206        return "SubstanceSpecification";
7207      case SUPPLYDELIVERY:
7208        return "SupplyDelivery";
7209      case SUPPLYREQUEST:
7210        return "SupplyRequest";
7211      case TASK:
7212        return "Task";
7213      case TERMINOLOGYCAPABILITIES:
7214        return "TerminologyCapabilities";
7215      case TESTREPORT:
7216        return "TestReport";
7217      case TESTSCRIPT:
7218        return "TestScript";
7219      case VALUESET:
7220        return "ValueSet";
7221      case VERIFICATIONRESULT:
7222        return "VerificationResult";
7223      case VISIONPRESCRIPTION:
7224        return "VisionPrescription";
7225      case TYPE:
7226        return "Type";
7227      case ANY:
7228        return "Any";
7229      case NULL:
7230        return null;
7231      default:
7232        return "?";
7233      }
7234    }
7235  }
7236
7237  public static class FHIRAllTypesEnumFactory implements EnumFactory<FHIRAllTypes> {
7238    public FHIRAllTypes fromCode(String codeString) throws IllegalArgumentException {
7239      if (codeString == null || "".equals(codeString))
7240        if (codeString == null || "".equals(codeString))
7241          return null;
7242      if ("Address".equals(codeString))
7243        return FHIRAllTypes.ADDRESS;
7244      if ("Age".equals(codeString))
7245        return FHIRAllTypes.AGE;
7246      if ("Annotation".equals(codeString))
7247        return FHIRAllTypes.ANNOTATION;
7248      if ("Attachment".equals(codeString))
7249        return FHIRAllTypes.ATTACHMENT;
7250      if ("BackboneElement".equals(codeString))
7251        return FHIRAllTypes.BACKBONEELEMENT;
7252      if ("CodeableConcept".equals(codeString))
7253        return FHIRAllTypes.CODEABLECONCEPT;
7254      if ("Coding".equals(codeString))
7255        return FHIRAllTypes.CODING;
7256      if ("ContactDetail".equals(codeString))
7257        return FHIRAllTypes.CONTACTDETAIL;
7258      if ("ContactPoint".equals(codeString))
7259        return FHIRAllTypes.CONTACTPOINT;
7260      if ("Contributor".equals(codeString))
7261        return FHIRAllTypes.CONTRIBUTOR;
7262      if ("Count".equals(codeString))
7263        return FHIRAllTypes.COUNT;
7264      if ("DataRequirement".equals(codeString))
7265        return FHIRAllTypes.DATAREQUIREMENT;
7266      if ("Distance".equals(codeString))
7267        return FHIRAllTypes.DISTANCE;
7268      if ("Dosage".equals(codeString))
7269        return FHIRAllTypes.DOSAGE;
7270      if ("Duration".equals(codeString))
7271        return FHIRAllTypes.DURATION;
7272      if ("Element".equals(codeString))
7273        return FHIRAllTypes.ELEMENT;
7274      if ("ElementDefinition".equals(codeString))
7275        return FHIRAllTypes.ELEMENTDEFINITION;
7276      if ("Expression".equals(codeString))
7277        return FHIRAllTypes.EXPRESSION;
7278      if ("Extension".equals(codeString))
7279        return FHIRAllTypes.EXTENSION;
7280      if ("HumanName".equals(codeString))
7281        return FHIRAllTypes.HUMANNAME;
7282      if ("Identifier".equals(codeString))
7283        return FHIRAllTypes.IDENTIFIER;
7284      if ("MarketingStatus".equals(codeString))
7285        return FHIRAllTypes.MARKETINGSTATUS;
7286      if ("Meta".equals(codeString))
7287        return FHIRAllTypes.META;
7288      if ("Money".equals(codeString))
7289        return FHIRAllTypes.MONEY;
7290      if ("MoneyQuantity".equals(codeString))
7291        return FHIRAllTypes.MONEYQUANTITY;
7292      if ("Narrative".equals(codeString))
7293        return FHIRAllTypes.NARRATIVE;
7294      if ("ParameterDefinition".equals(codeString))
7295        return FHIRAllTypes.PARAMETERDEFINITION;
7296      if ("Period".equals(codeString))
7297        return FHIRAllTypes.PERIOD;
7298      if ("Population".equals(codeString))
7299        return FHIRAllTypes.POPULATION;
7300      if ("ProdCharacteristic".equals(codeString))
7301        return FHIRAllTypes.PRODCHARACTERISTIC;
7302      if ("ProductShelfLife".equals(codeString))
7303        return FHIRAllTypes.PRODUCTSHELFLIFE;
7304      if ("Quantity".equals(codeString))
7305        return FHIRAllTypes.QUANTITY;
7306      if ("Range".equals(codeString))
7307        return FHIRAllTypes.RANGE;
7308      if ("Ratio".equals(codeString))
7309        return FHIRAllTypes.RATIO;
7310      if ("Reference".equals(codeString))
7311        return FHIRAllTypes.REFERENCE;
7312      if ("RelatedArtifact".equals(codeString))
7313        return FHIRAllTypes.RELATEDARTIFACT;
7314      if ("SampledData".equals(codeString))
7315        return FHIRAllTypes.SAMPLEDDATA;
7316      if ("Signature".equals(codeString))
7317        return FHIRAllTypes.SIGNATURE;
7318      if ("SimpleQuantity".equals(codeString))
7319        return FHIRAllTypes.SIMPLEQUANTITY;
7320      if ("SubstanceAmount".equals(codeString))
7321        return FHIRAllTypes.SUBSTANCEAMOUNT;
7322      if ("Timing".equals(codeString))
7323        return FHIRAllTypes.TIMING;
7324      if ("TriggerDefinition".equals(codeString))
7325        return FHIRAllTypes.TRIGGERDEFINITION;
7326      if ("UsageContext".equals(codeString))
7327        return FHIRAllTypes.USAGECONTEXT;
7328      if ("base64Binary".equals(codeString))
7329        return FHIRAllTypes.BASE64BINARY;
7330      if ("boolean".equals(codeString))
7331        return FHIRAllTypes.BOOLEAN;
7332      if ("canonical".equals(codeString))
7333        return FHIRAllTypes.CANONICAL;
7334      if ("code".equals(codeString))
7335        return FHIRAllTypes.CODE;
7336      if ("date".equals(codeString))
7337        return FHIRAllTypes.DATE;
7338      if ("dateTime".equals(codeString))
7339        return FHIRAllTypes.DATETIME;
7340      if ("decimal".equals(codeString))
7341        return FHIRAllTypes.DECIMAL;
7342      if ("id".equals(codeString))
7343        return FHIRAllTypes.ID;
7344      if ("instant".equals(codeString))
7345        return FHIRAllTypes.INSTANT;
7346      if ("integer".equals(codeString))
7347        return FHIRAllTypes.INTEGER;
7348      if ("markdown".equals(codeString))
7349        return FHIRAllTypes.MARKDOWN;
7350      if ("oid".equals(codeString))
7351        return FHIRAllTypes.OID;
7352      if ("positiveInt".equals(codeString))
7353        return FHIRAllTypes.POSITIVEINT;
7354      if ("string".equals(codeString))
7355        return FHIRAllTypes.STRING;
7356      if ("time".equals(codeString))
7357        return FHIRAllTypes.TIME;
7358      if ("unsignedInt".equals(codeString))
7359        return FHIRAllTypes.UNSIGNEDINT;
7360      if ("uri".equals(codeString))
7361        return FHIRAllTypes.URI;
7362      if ("url".equals(codeString))
7363        return FHIRAllTypes.URL;
7364      if ("uuid".equals(codeString))
7365        return FHIRAllTypes.UUID;
7366      if ("xhtml".equals(codeString))
7367        return FHIRAllTypes.XHTML;
7368      if ("Account".equals(codeString))
7369        return FHIRAllTypes.ACCOUNT;
7370      if ("ActivityDefinition".equals(codeString))
7371        return FHIRAllTypes.ACTIVITYDEFINITION;
7372      if ("AdverseEvent".equals(codeString))
7373        return FHIRAllTypes.ADVERSEEVENT;
7374      if ("AllergyIntolerance".equals(codeString))
7375        return FHIRAllTypes.ALLERGYINTOLERANCE;
7376      if ("Appointment".equals(codeString))
7377        return FHIRAllTypes.APPOINTMENT;
7378      if ("AppointmentResponse".equals(codeString))
7379        return FHIRAllTypes.APPOINTMENTRESPONSE;
7380      if ("AuditEvent".equals(codeString))
7381        return FHIRAllTypes.AUDITEVENT;
7382      if ("Basic".equals(codeString))
7383        return FHIRAllTypes.BASIC;
7384      if ("Binary".equals(codeString))
7385        return FHIRAllTypes.BINARY;
7386      if ("BiologicallyDerivedProduct".equals(codeString))
7387        return FHIRAllTypes.BIOLOGICALLYDERIVEDPRODUCT;
7388      if ("BodyStructure".equals(codeString))
7389        return FHIRAllTypes.BODYSTRUCTURE;
7390      if ("Bundle".equals(codeString))
7391        return FHIRAllTypes.BUNDLE;
7392      if ("CapabilityStatement".equals(codeString))
7393        return FHIRAllTypes.CAPABILITYSTATEMENT;
7394      if ("CarePlan".equals(codeString))
7395        return FHIRAllTypes.CAREPLAN;
7396      if ("CareTeam".equals(codeString))
7397        return FHIRAllTypes.CARETEAM;
7398      if ("CatalogEntry".equals(codeString))
7399        return FHIRAllTypes.CATALOGENTRY;
7400      if ("ChargeItem".equals(codeString))
7401        return FHIRAllTypes.CHARGEITEM;
7402      if ("ChargeItemDefinition".equals(codeString))
7403        return FHIRAllTypes.CHARGEITEMDEFINITION;
7404      if ("Claim".equals(codeString))
7405        return FHIRAllTypes.CLAIM;
7406      if ("ClaimResponse".equals(codeString))
7407        return FHIRAllTypes.CLAIMRESPONSE;
7408      if ("ClinicalImpression".equals(codeString))
7409        return FHIRAllTypes.CLINICALIMPRESSION;
7410      if ("CodeSystem".equals(codeString))
7411        return FHIRAllTypes.CODESYSTEM;
7412      if ("Communication".equals(codeString))
7413        return FHIRAllTypes.COMMUNICATION;
7414      if ("CommunicationRequest".equals(codeString))
7415        return FHIRAllTypes.COMMUNICATIONREQUEST;
7416      if ("CompartmentDefinition".equals(codeString))
7417        return FHIRAllTypes.COMPARTMENTDEFINITION;
7418      if ("Composition".equals(codeString))
7419        return FHIRAllTypes.COMPOSITION;
7420      if ("ConceptMap".equals(codeString))
7421        return FHIRAllTypes.CONCEPTMAP;
7422      if ("Condition".equals(codeString))
7423        return FHIRAllTypes.CONDITION;
7424      if ("Consent".equals(codeString))
7425        return FHIRAllTypes.CONSENT;
7426      if ("Contract".equals(codeString))
7427        return FHIRAllTypes.CONTRACT;
7428      if ("Coverage".equals(codeString))
7429        return FHIRAllTypes.COVERAGE;
7430      if ("CoverageEligibilityRequest".equals(codeString))
7431        return FHIRAllTypes.COVERAGEELIGIBILITYREQUEST;
7432      if ("CoverageEligibilityResponse".equals(codeString))
7433        return FHIRAllTypes.COVERAGEELIGIBILITYRESPONSE;
7434      if ("DetectedIssue".equals(codeString))
7435        return FHIRAllTypes.DETECTEDISSUE;
7436      if ("Device".equals(codeString))
7437        return FHIRAllTypes.DEVICE;
7438      if ("DeviceDefinition".equals(codeString))
7439        return FHIRAllTypes.DEVICEDEFINITION;
7440      if ("DeviceMetric".equals(codeString))
7441        return FHIRAllTypes.DEVICEMETRIC;
7442      if ("DeviceRequest".equals(codeString))
7443        return FHIRAllTypes.DEVICEREQUEST;
7444      if ("DeviceUseStatement".equals(codeString))
7445        return FHIRAllTypes.DEVICEUSESTATEMENT;
7446      if ("DiagnosticReport".equals(codeString))
7447        return FHIRAllTypes.DIAGNOSTICREPORT;
7448      if ("DocumentManifest".equals(codeString))
7449        return FHIRAllTypes.DOCUMENTMANIFEST;
7450      if ("DocumentReference".equals(codeString))
7451        return FHIRAllTypes.DOCUMENTREFERENCE;
7452      if ("DomainResource".equals(codeString))
7453        return FHIRAllTypes.DOMAINRESOURCE;
7454      if ("EffectEvidenceSynthesis".equals(codeString))
7455        return FHIRAllTypes.EFFECTEVIDENCESYNTHESIS;
7456      if ("Encounter".equals(codeString))
7457        return FHIRAllTypes.ENCOUNTER;
7458      if ("Endpoint".equals(codeString))
7459        return FHIRAllTypes.ENDPOINT;
7460      if ("EnrollmentRequest".equals(codeString))
7461        return FHIRAllTypes.ENROLLMENTREQUEST;
7462      if ("EnrollmentResponse".equals(codeString))
7463        return FHIRAllTypes.ENROLLMENTRESPONSE;
7464      if ("EpisodeOfCare".equals(codeString))
7465        return FHIRAllTypes.EPISODEOFCARE;
7466      if ("EventDefinition".equals(codeString))
7467        return FHIRAllTypes.EVENTDEFINITION;
7468      if ("Evidence".equals(codeString))
7469        return FHIRAllTypes.EVIDENCE;
7470      if ("EvidenceVariable".equals(codeString))
7471        return FHIRAllTypes.EVIDENCEVARIABLE;
7472      if ("ExampleScenario".equals(codeString))
7473        return FHIRAllTypes.EXAMPLESCENARIO;
7474      if ("ExplanationOfBenefit".equals(codeString))
7475        return FHIRAllTypes.EXPLANATIONOFBENEFIT;
7476      if ("FamilyMemberHistory".equals(codeString))
7477        return FHIRAllTypes.FAMILYMEMBERHISTORY;
7478      if ("Flag".equals(codeString))
7479        return FHIRAllTypes.FLAG;
7480      if ("Goal".equals(codeString))
7481        return FHIRAllTypes.GOAL;
7482      if ("GraphDefinition".equals(codeString))
7483        return FHIRAllTypes.GRAPHDEFINITION;
7484      if ("Group".equals(codeString))
7485        return FHIRAllTypes.GROUP;
7486      if ("GuidanceResponse".equals(codeString))
7487        return FHIRAllTypes.GUIDANCERESPONSE;
7488      if ("HealthcareService".equals(codeString))
7489        return FHIRAllTypes.HEALTHCARESERVICE;
7490      if ("ImagingStudy".equals(codeString))
7491        return FHIRAllTypes.IMAGINGSTUDY;
7492      if ("Immunization".equals(codeString))
7493        return FHIRAllTypes.IMMUNIZATION;
7494      if ("ImmunizationEvaluation".equals(codeString))
7495        return FHIRAllTypes.IMMUNIZATIONEVALUATION;
7496      if ("ImmunizationRecommendation".equals(codeString))
7497        return FHIRAllTypes.IMMUNIZATIONRECOMMENDATION;
7498      if ("ImplementationGuide".equals(codeString))
7499        return FHIRAllTypes.IMPLEMENTATIONGUIDE;
7500      if ("InsurancePlan".equals(codeString))
7501        return FHIRAllTypes.INSURANCEPLAN;
7502      if ("Invoice".equals(codeString))
7503        return FHIRAllTypes.INVOICE;
7504      if ("Library".equals(codeString))
7505        return FHIRAllTypes.LIBRARY;
7506      if ("Linkage".equals(codeString))
7507        return FHIRAllTypes.LINKAGE;
7508      if ("List".equals(codeString))
7509        return FHIRAllTypes.LIST;
7510      if ("Location".equals(codeString))
7511        return FHIRAllTypes.LOCATION;
7512      if ("Measure".equals(codeString))
7513        return FHIRAllTypes.MEASURE;
7514      if ("MeasureReport".equals(codeString))
7515        return FHIRAllTypes.MEASUREREPORT;
7516      if ("Media".equals(codeString))
7517        return FHIRAllTypes.MEDIA;
7518      if ("Medication".equals(codeString))
7519        return FHIRAllTypes.MEDICATION;
7520      if ("MedicationAdministration".equals(codeString))
7521        return FHIRAllTypes.MEDICATIONADMINISTRATION;
7522      if ("MedicationDispense".equals(codeString))
7523        return FHIRAllTypes.MEDICATIONDISPENSE;
7524      if ("MedicationKnowledge".equals(codeString))
7525        return FHIRAllTypes.MEDICATIONKNOWLEDGE;
7526      if ("MedicationRequest".equals(codeString))
7527        return FHIRAllTypes.MEDICATIONREQUEST;
7528      if ("MedicationStatement".equals(codeString))
7529        return FHIRAllTypes.MEDICATIONSTATEMENT;
7530      if ("MedicinalProduct".equals(codeString))
7531        return FHIRAllTypes.MEDICINALPRODUCT;
7532      if ("MedicinalProductAuthorization".equals(codeString))
7533        return FHIRAllTypes.MEDICINALPRODUCTAUTHORIZATION;
7534      if ("MedicinalProductContraindication".equals(codeString))
7535        return FHIRAllTypes.MEDICINALPRODUCTCONTRAINDICATION;
7536      if ("MedicinalProductIndication".equals(codeString))
7537        return FHIRAllTypes.MEDICINALPRODUCTINDICATION;
7538      if ("MedicinalProductIngredient".equals(codeString))
7539        return FHIRAllTypes.MEDICINALPRODUCTINGREDIENT;
7540      if ("MedicinalProductInteraction".equals(codeString))
7541        return FHIRAllTypes.MEDICINALPRODUCTINTERACTION;
7542      if ("MedicinalProductManufactured".equals(codeString))
7543        return FHIRAllTypes.MEDICINALPRODUCTMANUFACTURED;
7544      if ("MedicinalProductPackaged".equals(codeString))
7545        return FHIRAllTypes.MEDICINALPRODUCTPACKAGED;
7546      if ("MedicinalProductPharmaceutical".equals(codeString))
7547        return FHIRAllTypes.MEDICINALPRODUCTPHARMACEUTICAL;
7548      if ("MedicinalProductUndesirableEffect".equals(codeString))
7549        return FHIRAllTypes.MEDICINALPRODUCTUNDESIRABLEEFFECT;
7550      if ("MessageDefinition".equals(codeString))
7551        return FHIRAllTypes.MESSAGEDEFINITION;
7552      if ("MessageHeader".equals(codeString))
7553        return FHIRAllTypes.MESSAGEHEADER;
7554      if ("MolecularSequence".equals(codeString))
7555        return FHIRAllTypes.MOLECULARSEQUENCE;
7556      if ("NamingSystem".equals(codeString))
7557        return FHIRAllTypes.NAMINGSYSTEM;
7558      if ("NutritionOrder".equals(codeString))
7559        return FHIRAllTypes.NUTRITIONORDER;
7560      if ("Observation".equals(codeString))
7561        return FHIRAllTypes.OBSERVATION;
7562      if ("ObservationDefinition".equals(codeString))
7563        return FHIRAllTypes.OBSERVATIONDEFINITION;
7564      if ("OperationDefinition".equals(codeString))
7565        return FHIRAllTypes.OPERATIONDEFINITION;
7566      if ("OperationOutcome".equals(codeString))
7567        return FHIRAllTypes.OPERATIONOUTCOME;
7568      if ("Organization".equals(codeString))
7569        return FHIRAllTypes.ORGANIZATION;
7570      if ("OrganizationAffiliation".equals(codeString))
7571        return FHIRAllTypes.ORGANIZATIONAFFILIATION;
7572      if ("Parameters".equals(codeString))
7573        return FHIRAllTypes.PARAMETERS;
7574      if ("Patient".equals(codeString))
7575        return FHIRAllTypes.PATIENT;
7576      if ("PaymentNotice".equals(codeString))
7577        return FHIRAllTypes.PAYMENTNOTICE;
7578      if ("PaymentReconciliation".equals(codeString))
7579        return FHIRAllTypes.PAYMENTRECONCILIATION;
7580      if ("Person".equals(codeString))
7581        return FHIRAllTypes.PERSON;
7582      if ("PlanDefinition".equals(codeString))
7583        return FHIRAllTypes.PLANDEFINITION;
7584      if ("Practitioner".equals(codeString))
7585        return FHIRAllTypes.PRACTITIONER;
7586      if ("PractitionerRole".equals(codeString))
7587        return FHIRAllTypes.PRACTITIONERROLE;
7588      if ("Procedure".equals(codeString))
7589        return FHIRAllTypes.PROCEDURE;
7590      if ("Provenance".equals(codeString))
7591        return FHIRAllTypes.PROVENANCE;
7592      if ("Questionnaire".equals(codeString))
7593        return FHIRAllTypes.QUESTIONNAIRE;
7594      if ("QuestionnaireResponse".equals(codeString))
7595        return FHIRAllTypes.QUESTIONNAIRERESPONSE;
7596      if ("RelatedPerson".equals(codeString))
7597        return FHIRAllTypes.RELATEDPERSON;
7598      if ("RequestGroup".equals(codeString))
7599        return FHIRAllTypes.REQUESTGROUP;
7600      if ("ResearchDefinition".equals(codeString))
7601        return FHIRAllTypes.RESEARCHDEFINITION;
7602      if ("ResearchElementDefinition".equals(codeString))
7603        return FHIRAllTypes.RESEARCHELEMENTDEFINITION;
7604      if ("ResearchStudy".equals(codeString))
7605        return FHIRAllTypes.RESEARCHSTUDY;
7606      if ("ResearchSubject".equals(codeString))
7607        return FHIRAllTypes.RESEARCHSUBJECT;
7608      if ("Resource".equals(codeString))
7609        return FHIRAllTypes.RESOURCE;
7610      if ("RiskAssessment".equals(codeString))
7611        return FHIRAllTypes.RISKASSESSMENT;
7612      if ("RiskEvidenceSynthesis".equals(codeString))
7613        return FHIRAllTypes.RISKEVIDENCESYNTHESIS;
7614      if ("Schedule".equals(codeString))
7615        return FHIRAllTypes.SCHEDULE;
7616      if ("SearchParameter".equals(codeString))
7617        return FHIRAllTypes.SEARCHPARAMETER;
7618      if ("ServiceRequest".equals(codeString))
7619        return FHIRAllTypes.SERVICEREQUEST;
7620      if ("Slot".equals(codeString))
7621        return FHIRAllTypes.SLOT;
7622      if ("Specimen".equals(codeString))
7623        return FHIRAllTypes.SPECIMEN;
7624      if ("SpecimenDefinition".equals(codeString))
7625        return FHIRAllTypes.SPECIMENDEFINITION;
7626      if ("StructureDefinition".equals(codeString))
7627        return FHIRAllTypes.STRUCTUREDEFINITION;
7628      if ("StructureMap".equals(codeString))
7629        return FHIRAllTypes.STRUCTUREMAP;
7630      if ("Subscription".equals(codeString))
7631        return FHIRAllTypes.SUBSCRIPTION;
7632      if ("Substance".equals(codeString))
7633        return FHIRAllTypes.SUBSTANCE;
7634      if ("SubstanceNucleicAcid".equals(codeString))
7635        return FHIRAllTypes.SUBSTANCENUCLEICACID;
7636      if ("SubstancePolymer".equals(codeString))
7637        return FHIRAllTypes.SUBSTANCEPOLYMER;
7638      if ("SubstanceProtein".equals(codeString))
7639        return FHIRAllTypes.SUBSTANCEPROTEIN;
7640      if ("SubstanceReferenceInformation".equals(codeString))
7641        return FHIRAllTypes.SUBSTANCEREFERENCEINFORMATION;
7642      if ("SubstanceSourceMaterial".equals(codeString))
7643        return FHIRAllTypes.SUBSTANCESOURCEMATERIAL;
7644      if ("SubstanceSpecification".equals(codeString))
7645        return FHIRAllTypes.SUBSTANCESPECIFICATION;
7646      if ("SupplyDelivery".equals(codeString))
7647        return FHIRAllTypes.SUPPLYDELIVERY;
7648      if ("SupplyRequest".equals(codeString))
7649        return FHIRAllTypes.SUPPLYREQUEST;
7650      if ("Task".equals(codeString))
7651        return FHIRAllTypes.TASK;
7652      if ("TerminologyCapabilities".equals(codeString))
7653        return FHIRAllTypes.TERMINOLOGYCAPABILITIES;
7654      if ("TestReport".equals(codeString))
7655        return FHIRAllTypes.TESTREPORT;
7656      if ("TestScript".equals(codeString))
7657        return FHIRAllTypes.TESTSCRIPT;
7658      if ("ValueSet".equals(codeString))
7659        return FHIRAllTypes.VALUESET;
7660      if ("VerificationResult".equals(codeString))
7661        return FHIRAllTypes.VERIFICATIONRESULT;
7662      if ("VisionPrescription".equals(codeString))
7663        return FHIRAllTypes.VISIONPRESCRIPTION;
7664      if ("Type".equals(codeString))
7665        return FHIRAllTypes.TYPE;
7666      if ("Any".equals(codeString))
7667        return FHIRAllTypes.ANY;
7668      throw new IllegalArgumentException("Unknown FHIRAllTypes code '" + codeString + "'");
7669    }
7670
7671    public Enumeration<FHIRAllTypes> fromType(PrimitiveType<?> code) throws FHIRException {
7672      if (code == null)
7673        return null;
7674      if (code.isEmpty())
7675        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NULL, code);
7676      String codeString = code.asStringValue();
7677      if (codeString == null || "".equals(codeString))
7678        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NULL, code);
7679      if ("Address".equals(codeString))
7680        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ADDRESS, code);
7681      if ("Age".equals(codeString))
7682        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.AGE, code);
7683      if ("Annotation".equals(codeString))
7684        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ANNOTATION, code);
7685      if ("Attachment".equals(codeString))
7686        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ATTACHMENT, code);
7687      if ("BackboneElement".equals(codeString))
7688        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BACKBONEELEMENT, code);
7689      if ("CodeableConcept".equals(codeString))
7690        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODEABLECONCEPT, code);
7691      if ("Coding".equals(codeString))
7692        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODING, code);
7693      if ("ContactDetail".equals(codeString))
7694        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTACTDETAIL, code);
7695      if ("ContactPoint".equals(codeString))
7696        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTACTPOINT, code);
7697      if ("Contributor".equals(codeString))
7698        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTRIBUTOR, code);
7699      if ("Count".equals(codeString))
7700        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COUNT, code);
7701      if ("DataRequirement".equals(codeString))
7702        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATAREQUIREMENT, code);
7703      if ("Distance".equals(codeString))
7704        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DISTANCE, code);
7705      if ("Dosage".equals(codeString))
7706        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOSAGE, code);
7707      if ("Duration".equals(codeString))
7708        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DURATION, code);
7709      if ("Element".equals(codeString))
7710        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELEMENT, code);
7711      if ("ElementDefinition".equals(codeString))
7712        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELEMENTDEFINITION, code);
7713      if ("Expression".equals(codeString))
7714        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXPRESSION, code);
7715      if ("Extension".equals(codeString))
7716        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXTENSION, code);
7717      if ("HumanName".equals(codeString))
7718        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.HUMANNAME, code);
7719      if ("Identifier".equals(codeString))
7720        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IDENTIFIER, code);
7721      if ("MarketingStatus".equals(codeString))
7722        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MARKETINGSTATUS, code);
7723      if ("Meta".equals(codeString))
7724        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.META, code);
7725      if ("Money".equals(codeString))
7726        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MONEY, code);
7727      if ("MoneyQuantity".equals(codeString))
7728        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MONEYQUANTITY, code);
7729      if ("Narrative".equals(codeString))
7730        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NARRATIVE, code);
7731      if ("ParameterDefinition".equals(codeString))
7732        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PARAMETERDEFINITION, code);
7733      if ("Period".equals(codeString))
7734        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PERIOD, code);
7735      if ("Population".equals(codeString))
7736        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.POPULATION, code);
7737      if ("ProdCharacteristic".equals(codeString))
7738        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRODCHARACTERISTIC, code);
7739      if ("ProductShelfLife".equals(codeString))
7740        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRODUCTSHELFLIFE, code);
7741      if ("Quantity".equals(codeString))
7742        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUANTITY, code);
7743      if ("Range".equals(codeString))
7744        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RANGE, code);
7745      if ("Ratio".equals(codeString))
7746        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RATIO, code);
7747      if ("Reference".equals(codeString))
7748        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.REFERENCE, code);
7749      if ("RelatedArtifact".equals(codeString))
7750        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RELATEDARTIFACT, code);
7751      if ("SampledData".equals(codeString))
7752        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SAMPLEDDATA, code);
7753      if ("Signature".equals(codeString))
7754        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SIGNATURE, code);
7755      if ("SimpleQuantity".equals(codeString))
7756        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SIMPLEQUANTITY, code);
7757      if ("SubstanceAmount".equals(codeString))
7758        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCEAMOUNT, code);
7759      if ("Timing".equals(codeString))
7760        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TIMING, code);
7761      if ("TriggerDefinition".equals(codeString))
7762        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TRIGGERDEFINITION, code);
7763      if ("UsageContext".equals(codeString))
7764        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.USAGECONTEXT, code);
7765      if ("base64Binary".equals(codeString))
7766        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BASE64BINARY, code);
7767      if ("boolean".equals(codeString))
7768        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BOOLEAN, code);
7769      if ("canonical".equals(codeString))
7770        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CANONICAL, code);
7771      if ("code".equals(codeString))
7772        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODE, code);
7773      if ("date".equals(codeString))
7774        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATE, code);
7775      if ("dateTime".equals(codeString))
7776        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATETIME, code);
7777      if ("decimal".equals(codeString))
7778        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DECIMAL, code);
7779      if ("id".equals(codeString))
7780        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ID, code);
7781      if ("instant".equals(codeString))
7782        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INSTANT, code);
7783      if ("integer".equals(codeString))
7784        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INTEGER, code);
7785      if ("markdown".equals(codeString))
7786        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MARKDOWN, code);
7787      if ("oid".equals(codeString))
7788        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OID, code);
7789      if ("positiveInt".equals(codeString))
7790        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.POSITIVEINT, code);
7791      if ("string".equals(codeString))
7792        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRING, code);
7793      if ("time".equals(codeString))
7794        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TIME, code);
7795      if ("unsignedInt".equals(codeString))
7796        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.UNSIGNEDINT, code);
7797      if ("uri".equals(codeString))
7798        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.URI, code);
7799      if ("url".equals(codeString))
7800        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.URL, code);
7801      if ("uuid".equals(codeString))
7802        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.UUID, code);
7803      if ("xhtml".equals(codeString))
7804        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.XHTML, code);
7805      if ("Account".equals(codeString))
7806        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ACCOUNT, code);
7807      if ("ActivityDefinition".equals(codeString))
7808        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ACTIVITYDEFINITION, code);
7809      if ("AdverseEvent".equals(codeString))
7810        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ADVERSEEVENT, code);
7811      if ("AllergyIntolerance".equals(codeString))
7812        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ALLERGYINTOLERANCE, code);
7813      if ("Appointment".equals(codeString))
7814        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.APPOINTMENT, code);
7815      if ("AppointmentResponse".equals(codeString))
7816        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.APPOINTMENTRESPONSE, code);
7817      if ("AuditEvent".equals(codeString))
7818        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.AUDITEVENT, code);
7819      if ("Basic".equals(codeString))
7820        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BASIC, code);
7821      if ("Binary".equals(codeString))
7822        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BINARY, code);
7823      if ("BiologicallyDerivedProduct".equals(codeString))
7824        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BIOLOGICALLYDERIVEDPRODUCT, code);
7825      if ("BodyStructure".equals(codeString))
7826        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BODYSTRUCTURE, code);
7827      if ("Bundle".equals(codeString))
7828        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BUNDLE, code);
7829      if ("CapabilityStatement".equals(codeString))
7830        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CAPABILITYSTATEMENT, code);
7831      if ("CarePlan".equals(codeString))
7832        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CAREPLAN, code);
7833      if ("CareTeam".equals(codeString))
7834        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CARETEAM, code);
7835      if ("CatalogEntry".equals(codeString))
7836        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CATALOGENTRY, code);
7837      if ("ChargeItem".equals(codeString))
7838        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CHARGEITEM, code);
7839      if ("ChargeItemDefinition".equals(codeString))
7840        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CHARGEITEMDEFINITION, code);
7841      if ("Claim".equals(codeString))
7842        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLAIM, code);
7843      if ("ClaimResponse".equals(codeString))
7844        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLAIMRESPONSE, code);
7845      if ("ClinicalImpression".equals(codeString))
7846        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLINICALIMPRESSION, code);
7847      if ("CodeSystem".equals(codeString))
7848        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODESYSTEM, code);
7849      if ("Communication".equals(codeString))
7850        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMMUNICATION, code);
7851      if ("CommunicationRequest".equals(codeString))
7852        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMMUNICATIONREQUEST, code);
7853      if ("CompartmentDefinition".equals(codeString))
7854        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMPARTMENTDEFINITION, code);
7855      if ("Composition".equals(codeString))
7856        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMPOSITION, code);
7857      if ("ConceptMap".equals(codeString))
7858        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONCEPTMAP, code);
7859      if ("Condition".equals(codeString))
7860        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONDITION, code);
7861      if ("Consent".equals(codeString))
7862        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONSENT, code);
7863      if ("Contract".equals(codeString))
7864        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTRACT, code);
7865      if ("Coverage".equals(codeString))
7866        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COVERAGE, code);
7867      if ("CoverageEligibilityRequest".equals(codeString))
7868        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COVERAGEELIGIBILITYREQUEST, code);
7869      if ("CoverageEligibilityResponse".equals(codeString))
7870        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COVERAGEELIGIBILITYRESPONSE, code);
7871      if ("DetectedIssue".equals(codeString))
7872        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DETECTEDISSUE, code);
7873      if ("Device".equals(codeString))
7874        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICE, code);
7875      if ("DeviceDefinition".equals(codeString))
7876        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEDEFINITION, code);
7877      if ("DeviceMetric".equals(codeString))
7878        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEMETRIC, code);
7879      if ("DeviceRequest".equals(codeString))
7880        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEREQUEST, code);
7881      if ("DeviceUseStatement".equals(codeString))
7882        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEUSESTATEMENT, code);
7883      if ("DiagnosticReport".equals(codeString))
7884        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DIAGNOSTICREPORT, code);
7885      if ("DocumentManifest".equals(codeString))
7886        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOCUMENTMANIFEST, code);
7887      if ("DocumentReference".equals(codeString))
7888        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOCUMENTREFERENCE, code);
7889      if ("DomainResource".equals(codeString))
7890        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOMAINRESOURCE, code);
7891      if ("EffectEvidenceSynthesis".equals(codeString))
7892        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EFFECTEVIDENCESYNTHESIS, code);
7893      if ("Encounter".equals(codeString))
7894        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENCOUNTER, code);
7895      if ("Endpoint".equals(codeString))
7896        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENDPOINT, code);
7897      if ("EnrollmentRequest".equals(codeString))
7898        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENROLLMENTREQUEST, code);
7899      if ("EnrollmentResponse".equals(codeString))
7900        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENROLLMENTRESPONSE, code);
7901      if ("EpisodeOfCare".equals(codeString))
7902        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EPISODEOFCARE, code);
7903      if ("EventDefinition".equals(codeString))
7904        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EVENTDEFINITION, code);
7905      if ("Evidence".equals(codeString))
7906        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EVIDENCE, code);
7907      if ("EvidenceVariable".equals(codeString))
7908        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EVIDENCEVARIABLE, code);
7909      if ("ExampleScenario".equals(codeString))
7910        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXAMPLESCENARIO, code);
7911      if ("ExplanationOfBenefit".equals(codeString))
7912        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXPLANATIONOFBENEFIT, code);
7913      if ("FamilyMemberHistory".equals(codeString))
7914        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.FAMILYMEMBERHISTORY, code);
7915      if ("Flag".equals(codeString))
7916        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.FLAG, code);
7917      if ("Goal".equals(codeString))
7918        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GOAL, code);
7919      if ("GraphDefinition".equals(codeString))
7920        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GRAPHDEFINITION, code);
7921      if ("Group".equals(codeString))
7922        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GROUP, code);
7923      if ("GuidanceResponse".equals(codeString))
7924        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GUIDANCERESPONSE, code);
7925      if ("HealthcareService".equals(codeString))
7926        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.HEALTHCARESERVICE, code);
7927      if ("ImagingStudy".equals(codeString))
7928        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMAGINGSTUDY, code);
7929      if ("Immunization".equals(codeString))
7930        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMMUNIZATION, code);
7931      if ("ImmunizationEvaluation".equals(codeString))
7932        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMMUNIZATIONEVALUATION, code);
7933      if ("ImmunizationRecommendation".equals(codeString))
7934        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMMUNIZATIONRECOMMENDATION, code);
7935      if ("ImplementationGuide".equals(codeString))
7936        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMPLEMENTATIONGUIDE, code);
7937      if ("InsurancePlan".equals(codeString))
7938        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INSURANCEPLAN, code);
7939      if ("Invoice".equals(codeString))
7940        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INVOICE, code);
7941      if ("Library".equals(codeString))
7942        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LIBRARY, code);
7943      if ("Linkage".equals(codeString))
7944        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LINKAGE, code);
7945      if ("List".equals(codeString))
7946        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LIST, code);
7947      if ("Location".equals(codeString))
7948        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LOCATION, code);
7949      if ("Measure".equals(codeString))
7950        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEASURE, code);
7951      if ("MeasureReport".equals(codeString))
7952        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEASUREREPORT, code);
7953      if ("Media".equals(codeString))
7954        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDIA, code);
7955      if ("Medication".equals(codeString))
7956        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATION, code);
7957      if ("MedicationAdministration".equals(codeString))
7958        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONADMINISTRATION, code);
7959      if ("MedicationDispense".equals(codeString))
7960        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONDISPENSE, code);
7961      if ("MedicationKnowledge".equals(codeString))
7962        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONKNOWLEDGE, code);
7963      if ("MedicationRequest".equals(codeString))
7964        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONREQUEST, code);
7965      if ("MedicationStatement".equals(codeString))
7966        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONSTATEMENT, code);
7967      if ("MedicinalProduct".equals(codeString))
7968        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCT, code);
7969      if ("MedicinalProductAuthorization".equals(codeString))
7970        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTAUTHORIZATION, code);
7971      if ("MedicinalProductContraindication".equals(codeString))
7972        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTCONTRAINDICATION, code);
7973      if ("MedicinalProductIndication".equals(codeString))
7974        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTINDICATION, code);
7975      if ("MedicinalProductIngredient".equals(codeString))
7976        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTINGREDIENT, code);
7977      if ("MedicinalProductInteraction".equals(codeString))
7978        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTINTERACTION, code);
7979      if ("MedicinalProductManufactured".equals(codeString))
7980        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTMANUFACTURED, code);
7981      if ("MedicinalProductPackaged".equals(codeString))
7982        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTPACKAGED, code);
7983      if ("MedicinalProductPharmaceutical".equals(codeString))
7984        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTPHARMACEUTICAL, code);
7985      if ("MedicinalProductUndesirableEffect".equals(codeString))
7986        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICINALPRODUCTUNDESIRABLEEFFECT, code);
7987      if ("MessageDefinition".equals(codeString))
7988        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MESSAGEDEFINITION, code);
7989      if ("MessageHeader".equals(codeString))
7990        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MESSAGEHEADER, code);
7991      if ("MolecularSequence".equals(codeString))
7992        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MOLECULARSEQUENCE, code);
7993      if ("NamingSystem".equals(codeString))
7994        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NAMINGSYSTEM, code);
7995      if ("NutritionOrder".equals(codeString))
7996        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NUTRITIONORDER, code);
7997      if ("Observation".equals(codeString))
7998        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OBSERVATION, code);
7999      if ("ObservationDefinition".equals(codeString))
8000        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OBSERVATIONDEFINITION, code);
8001      if ("OperationDefinition".equals(codeString))
8002        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OPERATIONDEFINITION, code);
8003      if ("OperationOutcome".equals(codeString))
8004        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OPERATIONOUTCOME, code);
8005      if ("Organization".equals(codeString))
8006        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ORGANIZATION, code);
8007      if ("OrganizationAffiliation".equals(codeString))
8008        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ORGANIZATIONAFFILIATION, code);
8009      if ("Parameters".equals(codeString))
8010        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PARAMETERS, code);
8011      if ("Patient".equals(codeString))
8012        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PATIENT, code);
8013      if ("PaymentNotice".equals(codeString))
8014        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PAYMENTNOTICE, code);
8015      if ("PaymentReconciliation".equals(codeString))
8016        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PAYMENTRECONCILIATION, code);
8017      if ("Person".equals(codeString))
8018        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PERSON, code);
8019      if ("PlanDefinition".equals(codeString))
8020        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PLANDEFINITION, code);
8021      if ("Practitioner".equals(codeString))
8022        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRACTITIONER, code);
8023      if ("PractitionerRole".equals(codeString))
8024        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRACTITIONERROLE, code);
8025      if ("Procedure".equals(codeString))
8026        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCEDURE, code);
8027      if ("Provenance".equals(codeString))
8028        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROVENANCE, code);
8029      if ("Questionnaire".equals(codeString))
8030        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUESTIONNAIRE, code);
8031      if ("QuestionnaireResponse".equals(codeString))
8032        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUESTIONNAIRERESPONSE, code);
8033      if ("RelatedPerson".equals(codeString))
8034        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RELATEDPERSON, code);
8035      if ("RequestGroup".equals(codeString))
8036        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.REQUESTGROUP, code);
8037      if ("ResearchDefinition".equals(codeString))
8038        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESEARCHDEFINITION, code);
8039      if ("ResearchElementDefinition".equals(codeString))
8040        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESEARCHELEMENTDEFINITION, code);
8041      if ("ResearchStudy".equals(codeString))
8042        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESEARCHSTUDY, code);
8043      if ("ResearchSubject".equals(codeString))
8044        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESEARCHSUBJECT, code);
8045      if ("Resource".equals(codeString))
8046        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESOURCE, code);
8047      if ("RiskAssessment".equals(codeString))
8048        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RISKASSESSMENT, code);
8049      if ("RiskEvidenceSynthesis".equals(codeString))
8050        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RISKEVIDENCESYNTHESIS, code);
8051      if ("Schedule".equals(codeString))
8052        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SCHEDULE, code);
8053      if ("SearchParameter".equals(codeString))
8054        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SEARCHPARAMETER, code);
8055      if ("ServiceRequest".equals(codeString))
8056        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SERVICEREQUEST, code);
8057      if ("Slot".equals(codeString))
8058        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SLOT, code);
8059      if ("Specimen".equals(codeString))
8060        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SPECIMEN, code);
8061      if ("SpecimenDefinition".equals(codeString))
8062        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SPECIMENDEFINITION, code);
8063      if ("StructureDefinition".equals(codeString))
8064        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRUCTUREDEFINITION, code);
8065      if ("StructureMap".equals(codeString))
8066        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRUCTUREMAP, code);
8067      if ("Subscription".equals(codeString))
8068        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSCRIPTION, code);
8069      if ("Substance".equals(codeString))
8070        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCE, code);
8071      if ("SubstanceNucleicAcid".equals(codeString))
8072        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCENUCLEICACID, code);
8073      if ("SubstancePolymer".equals(codeString))
8074        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCEPOLYMER, code);
8075      if ("SubstanceProtein".equals(codeString))
8076        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCEPROTEIN, code);
8077      if ("SubstanceReferenceInformation".equals(codeString))
8078        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCEREFERENCEINFORMATION, code);
8079      if ("SubstanceSourceMaterial".equals(codeString))
8080        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCESOURCEMATERIAL, code);
8081      if ("SubstanceSpecification".equals(codeString))
8082        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCESPECIFICATION, code);
8083      if ("SupplyDelivery".equals(codeString))
8084        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUPPLYDELIVERY, code);
8085      if ("SupplyRequest".equals(codeString))
8086        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUPPLYREQUEST, code);
8087      if ("Task".equals(codeString))
8088        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TASK, code);
8089      if ("TerminologyCapabilities".equals(codeString))
8090        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TERMINOLOGYCAPABILITIES, code);
8091      if ("TestReport".equals(codeString))
8092        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TESTREPORT, code);
8093      if ("TestScript".equals(codeString))
8094        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TESTSCRIPT, code);
8095      if ("ValueSet".equals(codeString))
8096        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.VALUESET, code);
8097      if ("VerificationResult".equals(codeString))
8098        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.VERIFICATIONRESULT, code);
8099      if ("VisionPrescription".equals(codeString))
8100        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.VISIONPRESCRIPTION, code);
8101      if ("Type".equals(codeString))
8102        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TYPE, code);
8103      if ("Any".equals(codeString))
8104        return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ANY, code);
8105      throw new FHIRException("Unknown FHIRAllTypes code '" + codeString + "'");
8106    }
8107
8108    public String toCode(FHIRAllTypes code) {
8109       if (code == FHIRAllTypes.NULL)
8110           return null;
8111       if (code == FHIRAllTypes.ADDRESS)
8112        return "Address";
8113      if (code == FHIRAllTypes.AGE)
8114        return "Age";
8115      if (code == FHIRAllTypes.ANNOTATION)
8116        return "Annotation";
8117      if (code == FHIRAllTypes.ATTACHMENT)
8118        return "Attachment";
8119      if (code == FHIRAllTypes.BACKBONEELEMENT)
8120        return "BackboneElement";
8121      if (code == FHIRAllTypes.CODEABLECONCEPT)
8122        return "CodeableConcept";
8123      if (code == FHIRAllTypes.CODING)
8124        return "Coding";
8125      if (code == FHIRAllTypes.CONTACTDETAIL)
8126        return "ContactDetail";
8127      if (code == FHIRAllTypes.CONTACTPOINT)
8128        return "ContactPoint";
8129      if (code == FHIRAllTypes.CONTRIBUTOR)
8130        return "Contributor";
8131      if (code == FHIRAllTypes.COUNT)
8132        return "Count";
8133      if (code == FHIRAllTypes.DATAREQUIREMENT)
8134        return "DataRequirement";
8135      if (code == FHIRAllTypes.DISTANCE)
8136        return "Distance";
8137      if (code == FHIRAllTypes.DOSAGE)
8138        return "Dosage";
8139      if (code == FHIRAllTypes.DURATION)
8140        return "Duration";
8141      if (code == FHIRAllTypes.ELEMENT)
8142        return "Element";
8143      if (code == FHIRAllTypes.ELEMENTDEFINITION)
8144        return "ElementDefinition";
8145      if (code == FHIRAllTypes.EXPRESSION)
8146        return "Expression";
8147      if (code == FHIRAllTypes.EXTENSION)
8148        return "Extension";
8149      if (code == FHIRAllTypes.HUMANNAME)
8150        return "HumanName";
8151      if (code == FHIRAllTypes.IDENTIFIER)
8152        return "Identifier";
8153      if (code == FHIRAllTypes.MARKETINGSTATUS)
8154        return "MarketingStatus";
8155      if (code == FHIRAllTypes.META)
8156        return "Meta";
8157      if (code == FHIRAllTypes.MONEY)
8158        return "Money";
8159      if (code == FHIRAllTypes.MONEYQUANTITY)
8160        return "MoneyQuantity";
8161      if (code == FHIRAllTypes.NARRATIVE)
8162        return "Narrative";
8163      if (code == FHIRAllTypes.PARAMETERDEFINITION)
8164        return "ParameterDefinition";
8165      if (code == FHIRAllTypes.PERIOD)
8166        return "Period";
8167      if (code == FHIRAllTypes.POPULATION)
8168        return "Population";
8169      if (code == FHIRAllTypes.PRODCHARACTERISTIC)
8170        return "ProdCharacteristic";
8171      if (code == FHIRAllTypes.PRODUCTSHELFLIFE)
8172        return "ProductShelfLife";
8173      if (code == FHIRAllTypes.QUANTITY)
8174        return "Quantity";
8175      if (code == FHIRAllTypes.RANGE)
8176        return "Range";
8177      if (code == FHIRAllTypes.RATIO)
8178        return "Ratio";
8179      if (code == FHIRAllTypes.REFERENCE)
8180        return "Reference";
8181      if (code == FHIRAllTypes.RELATEDARTIFACT)
8182        return "RelatedArtifact";
8183      if (code == FHIRAllTypes.SAMPLEDDATA)
8184        return "SampledData";
8185      if (code == FHIRAllTypes.SIGNATURE)
8186        return "Signature";
8187      if (code == FHIRAllTypes.SIMPLEQUANTITY)
8188        return "SimpleQuantity";
8189      if (code == FHIRAllTypes.SUBSTANCEAMOUNT)
8190        return "SubstanceAmount";
8191      if (code == FHIRAllTypes.TIMING)
8192        return "Timing";
8193      if (code == FHIRAllTypes.TRIGGERDEFINITION)
8194        return "TriggerDefinition";
8195      if (code == FHIRAllTypes.USAGECONTEXT)
8196        return "UsageContext";
8197      if (code == FHIRAllTypes.BASE64BINARY)
8198        return "base64Binary";
8199      if (code == FHIRAllTypes.BOOLEAN)
8200        return "boolean";
8201      if (code == FHIRAllTypes.CANONICAL)
8202        return "canonical";
8203      if (code == FHIRAllTypes.CODE)
8204        return "code";
8205      if (code == FHIRAllTypes.DATE)
8206        return "date";
8207      if (code == FHIRAllTypes.DATETIME)
8208        return "dateTime";
8209      if (code == FHIRAllTypes.DECIMAL)
8210        return "decimal";
8211      if (code == FHIRAllTypes.ID)
8212        return "id";
8213      if (code == FHIRAllTypes.INSTANT)
8214        return "instant";
8215      if (code == FHIRAllTypes.INTEGER)
8216        return "integer";
8217      if (code == FHIRAllTypes.MARKDOWN)
8218        return "markdown";
8219      if (code == FHIRAllTypes.OID)
8220        return "oid";
8221      if (code == FHIRAllTypes.POSITIVEINT)
8222        return "positiveInt";
8223      if (code == FHIRAllTypes.STRING)
8224        return "string";
8225      if (code == FHIRAllTypes.TIME)
8226        return "time";
8227      if (code == FHIRAllTypes.UNSIGNEDINT)
8228        return "unsignedInt";
8229      if (code == FHIRAllTypes.URI)
8230        return "uri";
8231      if (code == FHIRAllTypes.URL)
8232        return "url";
8233      if (code == FHIRAllTypes.UUID)
8234        return "uuid";
8235      if (code == FHIRAllTypes.XHTML)
8236        return "xhtml";
8237      if (code == FHIRAllTypes.ACCOUNT)
8238        return "Account";
8239      if (code == FHIRAllTypes.ACTIVITYDEFINITION)
8240        return "ActivityDefinition";
8241      if (code == FHIRAllTypes.ADVERSEEVENT)
8242        return "AdverseEvent";
8243      if (code == FHIRAllTypes.ALLERGYINTOLERANCE)
8244        return "AllergyIntolerance";
8245      if (code == FHIRAllTypes.APPOINTMENT)
8246        return "Appointment";
8247      if (code == FHIRAllTypes.APPOINTMENTRESPONSE)
8248        return "AppointmentResponse";
8249      if (code == FHIRAllTypes.AUDITEVENT)
8250        return "AuditEvent";
8251      if (code == FHIRAllTypes.BASIC)
8252        return "Basic";
8253      if (code == FHIRAllTypes.BINARY)
8254        return "Binary";
8255      if (code == FHIRAllTypes.BIOLOGICALLYDERIVEDPRODUCT)
8256        return "BiologicallyDerivedProduct";
8257      if (code == FHIRAllTypes.BODYSTRUCTURE)
8258        return "BodyStructure";
8259      if (code == FHIRAllTypes.BUNDLE)
8260        return "Bundle";
8261      if (code == FHIRAllTypes.CAPABILITYSTATEMENT)
8262        return "CapabilityStatement";
8263      if (code == FHIRAllTypes.CAREPLAN)
8264        return "CarePlan";
8265      if (code == FHIRAllTypes.CARETEAM)
8266        return "CareTeam";
8267      if (code == FHIRAllTypes.CATALOGENTRY)
8268        return "CatalogEntry";
8269      if (code == FHIRAllTypes.CHARGEITEM)
8270        return "ChargeItem";
8271      if (code == FHIRAllTypes.CHARGEITEMDEFINITION)
8272        return "ChargeItemDefinition";
8273      if (code == FHIRAllTypes.CLAIM)
8274        return "Claim";
8275      if (code == FHIRAllTypes.CLAIMRESPONSE)
8276        return "ClaimResponse";
8277      if (code == FHIRAllTypes.CLINICALIMPRESSION)
8278        return "ClinicalImpression";
8279      if (code == FHIRAllTypes.CODESYSTEM)
8280        return "CodeSystem";
8281      if (code == FHIRAllTypes.COMMUNICATION)
8282        return "Communication";
8283      if (code == FHIRAllTypes.COMMUNICATIONREQUEST)
8284        return "CommunicationRequest";
8285      if (code == FHIRAllTypes.COMPARTMENTDEFINITION)
8286        return "CompartmentDefinition";
8287      if (code == FHIRAllTypes.COMPOSITION)
8288        return "Composition";
8289      if (code == FHIRAllTypes.CONCEPTMAP)
8290        return "ConceptMap";
8291      if (code == FHIRAllTypes.CONDITION)
8292        return "Condition";
8293      if (code == FHIRAllTypes.CONSENT)
8294        return "Consent";
8295      if (code == FHIRAllTypes.CONTRACT)
8296        return "Contract";
8297      if (code == FHIRAllTypes.COVERAGE)
8298        return "Coverage";
8299      if (code == FHIRAllTypes.COVERAGEELIGIBILITYREQUEST)
8300        return "CoverageEligibilityRequest";
8301      if (code == FHIRAllTypes.COVERAGEELIGIBILITYRESPONSE)
8302        return "CoverageEligibilityResponse";
8303      if (code == FHIRAllTypes.DETECTEDISSUE)
8304        return "DetectedIssue";
8305      if (code == FHIRAllTypes.DEVICE)
8306        return "Device";
8307      if (code == FHIRAllTypes.DEVICEDEFINITION)
8308        return "DeviceDefinition";
8309      if (code == FHIRAllTypes.DEVICEMETRIC)
8310        return "DeviceMetric";
8311      if (code == FHIRAllTypes.DEVICEREQUEST)
8312        return "DeviceRequest";
8313      if (code == FHIRAllTypes.DEVICEUSESTATEMENT)
8314        return "DeviceUseStatement";
8315      if (code == FHIRAllTypes.DIAGNOSTICREPORT)
8316        return "DiagnosticReport";
8317      if (code == FHIRAllTypes.DOCUMENTMANIFEST)
8318        return "DocumentManifest";
8319      if (code == FHIRAllTypes.DOCUMENTREFERENCE)
8320        return "DocumentReference";
8321      if (code == FHIRAllTypes.DOMAINRESOURCE)
8322        return "DomainResource";
8323      if (code == FHIRAllTypes.EFFECTEVIDENCESYNTHESIS)
8324        return "EffectEvidenceSynthesis";
8325      if (code == FHIRAllTypes.ENCOUNTER)
8326        return "Encounter";
8327      if (code == FHIRAllTypes.ENDPOINT)
8328        return "Endpoint";
8329      if (code == FHIRAllTypes.ENROLLMENTREQUEST)
8330        return "EnrollmentRequest";
8331      if (code == FHIRAllTypes.ENROLLMENTRESPONSE)
8332        return "EnrollmentResponse";
8333      if (code == FHIRAllTypes.EPISODEOFCARE)
8334        return "EpisodeOfCare";
8335      if (code == FHIRAllTypes.EVENTDEFINITION)
8336        return "EventDefinition";
8337      if (code == FHIRAllTypes.EVIDENCE)
8338        return "Evidence";
8339      if (code == FHIRAllTypes.EVIDENCEVARIABLE)
8340        return "EvidenceVariable";
8341      if (code == FHIRAllTypes.EXAMPLESCENARIO)
8342        return "ExampleScenario";
8343      if (code == FHIRAllTypes.EXPLANATIONOFBENEFIT)
8344        return "ExplanationOfBenefit";
8345      if (code == FHIRAllTypes.FAMILYMEMBERHISTORY)
8346        return "FamilyMemberHistory";
8347      if (code == FHIRAllTypes.FLAG)
8348        return "Flag";
8349      if (code == FHIRAllTypes.GOAL)
8350        return "Goal";
8351      if (code == FHIRAllTypes.GRAPHDEFINITION)
8352        return "GraphDefinition";
8353      if (code == FHIRAllTypes.GROUP)
8354        return "Group";
8355      if (code == FHIRAllTypes.GUIDANCERESPONSE)
8356        return "GuidanceResponse";
8357      if (code == FHIRAllTypes.HEALTHCARESERVICE)
8358        return "HealthcareService";
8359      if (code == FHIRAllTypes.IMAGINGSTUDY)
8360        return "ImagingStudy";
8361      if (code == FHIRAllTypes.IMMUNIZATION)
8362        return "Immunization";
8363      if (code == FHIRAllTypes.IMMUNIZATIONEVALUATION)
8364        return "ImmunizationEvaluation";
8365      if (code == FHIRAllTypes.IMMUNIZATIONRECOMMENDATION)
8366        return "ImmunizationRecommendation";
8367      if (code == FHIRAllTypes.IMPLEMENTATIONGUIDE)
8368        return "ImplementationGuide";
8369      if (code == FHIRAllTypes.INSURANCEPLAN)
8370        return "InsurancePlan";
8371      if (code == FHIRAllTypes.INVOICE)
8372        return "Invoice";
8373      if (code == FHIRAllTypes.LIBRARY)
8374        return "Library";
8375      if (code == FHIRAllTypes.LINKAGE)
8376        return "Linkage";
8377      if (code == FHIRAllTypes.LIST)
8378        return "List";
8379      if (code == FHIRAllTypes.LOCATION)
8380        return "Location";
8381      if (code == FHIRAllTypes.MEASURE)
8382        return "Measure";
8383      if (code == FHIRAllTypes.MEASUREREPORT)
8384        return "MeasureReport";
8385      if (code == FHIRAllTypes.MEDIA)
8386        return "Media";
8387      if (code == FHIRAllTypes.MEDICATION)
8388        return "Medication";
8389      if (code == FHIRAllTypes.MEDICATIONADMINISTRATION)
8390        return "MedicationAdministration";
8391      if (code == FHIRAllTypes.MEDICATIONDISPENSE)
8392        return "MedicationDispense";
8393      if (code == FHIRAllTypes.MEDICATIONKNOWLEDGE)
8394        return "MedicationKnowledge";
8395      if (code == FHIRAllTypes.MEDICATIONREQUEST)
8396        return "MedicationRequest";
8397      if (code == FHIRAllTypes.MEDICATIONSTATEMENT)
8398        return "MedicationStatement";
8399      if (code == FHIRAllTypes.MEDICINALPRODUCT)
8400        return "MedicinalProduct";
8401      if (code == FHIRAllTypes.MEDICINALPRODUCTAUTHORIZATION)
8402        return "MedicinalProductAuthorization";
8403      if (code == FHIRAllTypes.MEDICINALPRODUCTCONTRAINDICATION)
8404        return "MedicinalProductContraindication";
8405      if (code == FHIRAllTypes.MEDICINALPRODUCTINDICATION)
8406        return "MedicinalProductIndication";
8407      if (code == FHIRAllTypes.MEDICINALPRODUCTINGREDIENT)
8408        return "MedicinalProductIngredient";
8409      if (code == FHIRAllTypes.MEDICINALPRODUCTINTERACTION)
8410        return "MedicinalProductInteraction";
8411      if (code == FHIRAllTypes.MEDICINALPRODUCTMANUFACTURED)
8412        return "MedicinalProductManufactured";
8413      if (code == FHIRAllTypes.MEDICINALPRODUCTPACKAGED)
8414        return "MedicinalProductPackaged";
8415      if (code == FHIRAllTypes.MEDICINALPRODUCTPHARMACEUTICAL)
8416        return "MedicinalProductPharmaceutical";
8417      if (code == FHIRAllTypes.MEDICINALPRODUCTUNDESIRABLEEFFECT)
8418        return "MedicinalProductUndesirableEffect";
8419      if (code == FHIRAllTypes.MESSAGEDEFINITION)
8420        return "MessageDefinition";
8421      if (code == FHIRAllTypes.MESSAGEHEADER)
8422        return "MessageHeader";
8423      if (code == FHIRAllTypes.MOLECULARSEQUENCE)
8424        return "MolecularSequence";
8425      if (code == FHIRAllTypes.NAMINGSYSTEM)
8426        return "NamingSystem";
8427      if (code == FHIRAllTypes.NUTRITIONORDER)
8428        return "NutritionOrder";
8429      if (code == FHIRAllTypes.OBSERVATION)
8430        return "Observation";
8431      if (code == FHIRAllTypes.OBSERVATIONDEFINITION)
8432        return "ObservationDefinition";
8433      if (code == FHIRAllTypes.OPERATIONDEFINITION)
8434        return "OperationDefinition";
8435      if (code == FHIRAllTypes.OPERATIONOUTCOME)
8436        return "OperationOutcome";
8437      if (code == FHIRAllTypes.ORGANIZATION)
8438        return "Organization";
8439      if (code == FHIRAllTypes.ORGANIZATIONAFFILIATION)
8440        return "OrganizationAffiliation";
8441      if (code == FHIRAllTypes.PARAMETERS)
8442        return "Parameters";
8443      if (code == FHIRAllTypes.PATIENT)
8444        return "Patient";
8445      if (code == FHIRAllTypes.PAYMENTNOTICE)
8446        return "PaymentNotice";
8447      if (code == FHIRAllTypes.PAYMENTRECONCILIATION)
8448        return "PaymentReconciliation";
8449      if (code == FHIRAllTypes.PERSON)
8450        return "Person";
8451      if (code == FHIRAllTypes.PLANDEFINITION)
8452        return "PlanDefinition";
8453      if (code == FHIRAllTypes.PRACTITIONER)
8454        return "Practitioner";
8455      if (code == FHIRAllTypes.PRACTITIONERROLE)
8456        return "PractitionerRole";
8457      if (code == FHIRAllTypes.PROCEDURE)
8458        return "Procedure";
8459      if (code == FHIRAllTypes.PROVENANCE)
8460        return "Provenance";
8461      if (code == FHIRAllTypes.QUESTIONNAIRE)
8462        return "Questionnaire";
8463      if (code == FHIRAllTypes.QUESTIONNAIRERESPONSE)
8464        return "QuestionnaireResponse";
8465      if (code == FHIRAllTypes.RELATEDPERSON)
8466        return "RelatedPerson";
8467      if (code == FHIRAllTypes.REQUESTGROUP)
8468        return "RequestGroup";
8469      if (code == FHIRAllTypes.RESEARCHDEFINITION)
8470        return "ResearchDefinition";
8471      if (code == FHIRAllTypes.RESEARCHELEMENTDEFINITION)
8472        return "ResearchElementDefinition";
8473      if (code == FHIRAllTypes.RESEARCHSTUDY)
8474        return "ResearchStudy";
8475      if (code == FHIRAllTypes.RESEARCHSUBJECT)
8476        return "ResearchSubject";
8477      if (code == FHIRAllTypes.RESOURCE)
8478        return "Resource";
8479      if (code == FHIRAllTypes.RISKASSESSMENT)
8480        return "RiskAssessment";
8481      if (code == FHIRAllTypes.RISKEVIDENCESYNTHESIS)
8482        return "RiskEvidenceSynthesis";
8483      if (code == FHIRAllTypes.SCHEDULE)
8484        return "Schedule";
8485      if (code == FHIRAllTypes.SEARCHPARAMETER)
8486        return "SearchParameter";
8487      if (code == FHIRAllTypes.SERVICEREQUEST)
8488        return "ServiceRequest";
8489      if (code == FHIRAllTypes.SLOT)
8490        return "Slot";
8491      if (code == FHIRAllTypes.SPECIMEN)
8492        return "Specimen";
8493      if (code == FHIRAllTypes.SPECIMENDEFINITION)
8494        return "SpecimenDefinition";
8495      if (code == FHIRAllTypes.STRUCTUREDEFINITION)
8496        return "StructureDefinition";
8497      if (code == FHIRAllTypes.STRUCTUREMAP)
8498        return "StructureMap";
8499      if (code == FHIRAllTypes.SUBSCRIPTION)
8500        return "Subscription";
8501      if (code == FHIRAllTypes.SUBSTANCE)
8502        return "Substance";
8503      if (code == FHIRAllTypes.SUBSTANCENUCLEICACID)
8504        return "SubstanceNucleicAcid";
8505      if (code == FHIRAllTypes.SUBSTANCEPOLYMER)
8506        return "SubstancePolymer";
8507      if (code == FHIRAllTypes.SUBSTANCEPROTEIN)
8508        return "SubstanceProtein";
8509      if (code == FHIRAllTypes.SUBSTANCEREFERENCEINFORMATION)
8510        return "SubstanceReferenceInformation";
8511      if (code == FHIRAllTypes.SUBSTANCESOURCEMATERIAL)
8512        return "SubstanceSourceMaterial";
8513      if (code == FHIRAllTypes.SUBSTANCESPECIFICATION)
8514        return "SubstanceSpecification";
8515      if (code == FHIRAllTypes.SUPPLYDELIVERY)
8516        return "SupplyDelivery";
8517      if (code == FHIRAllTypes.SUPPLYREQUEST)
8518        return "SupplyRequest";
8519      if (code == FHIRAllTypes.TASK)
8520        return "Task";
8521      if (code == FHIRAllTypes.TERMINOLOGYCAPABILITIES)
8522        return "TerminologyCapabilities";
8523      if (code == FHIRAllTypes.TESTREPORT)
8524        return "TestReport";
8525      if (code == FHIRAllTypes.TESTSCRIPT)
8526        return "TestScript";
8527      if (code == FHIRAllTypes.VALUESET)
8528        return "ValueSet";
8529      if (code == FHIRAllTypes.VERIFICATIONRESULT)
8530        return "VerificationResult";
8531      if (code == FHIRAllTypes.VISIONPRESCRIPTION)
8532        return "VisionPrescription";
8533      if (code == FHIRAllTypes.TYPE)
8534        return "Type";
8535      if (code == FHIRAllTypes.ANY)
8536        return "Any";
8537      return "?";
8538   }
8539
8540    public String toSystem(FHIRAllTypes code) {
8541      return code.getSystem();
8542    }
8543  }
8544
8545  public enum FHIRDefinedType {
8546    /**
8547     * An address expressed using postal conventions (as opposed to GPS or other
8548     * location definition formats). This data type may be used to convey addresses
8549     * for use in delivering mail as well as for visiting locations which might not
8550     * be valid for mail delivery. There are a variety of postal address formats
8551     * defined around the world.
8552     */
8553    ADDRESS,
8554    /**
8555     * A duration of time during which an organism (or a process) has existed.
8556     */
8557    AGE,
8558    /**
8559     * A text note which also contains information about who made the statement and
8560     * when.
8561     */
8562    ANNOTATION,
8563    /**
8564     * For referring to data content defined in other formats.
8565     */
8566    ATTACHMENT,
8567    /**
8568     * Base definition for all elements that are defined inside a resource - but not
8569     * those in a data type.
8570     */
8571    BACKBONEELEMENT,
8572    /**
8573     * A concept that may be defined by a formal reference to a terminology or
8574     * ontology or may be provided by text.
8575     */
8576    CODEABLECONCEPT,
8577    /**
8578     * A reference to a code defined by a terminology system.
8579     */
8580    CODING,
8581    /**
8582     * Specifies contact information for a person or organization.
8583     */
8584    CONTACTDETAIL,
8585    /**
8586     * Details for all kinds of technology mediated contact points for a person or
8587     * organization, including telephone, email, etc.
8588     */
8589    CONTACTPOINT,
8590    /**
8591     * A contributor to the content of a knowledge asset, including authors,
8592     * editors, reviewers, and endorsers.
8593     */
8594    CONTRIBUTOR,
8595    /**
8596     * A measured amount (or an amount that can potentially be measured). Note that
8597     * measured amounts include amounts that are not precisely quantified, including
8598     * amounts involving arbitrary units and floating currencies.
8599     */
8600    COUNT,
8601    /**
8602     * Describes a required data item for evaluation in terms of the type of data,
8603     * and optional code or date-based filters of the data.
8604     */
8605    DATAREQUIREMENT,
8606    /**
8607     * A length - a value with a unit that is a physical distance.
8608     */
8609    DISTANCE,
8610    /**
8611     * Indicates how the medication is/was taken or should be taken by the patient.
8612     */
8613    DOSAGE,
8614    /**
8615     * A length of time.
8616     */
8617    DURATION,
8618    /**
8619     * Base definition for all elements in a resource.
8620     */
8621    ELEMENT,
8622    /**
8623     * Captures constraints on each element within the resource, profile, or
8624     * extension.
8625     */
8626    ELEMENTDEFINITION,
8627    /**
8628     * A expression that is evaluated in a specified context and returns a value.
8629     * The context of use of the expression must specify the context in which the
8630     * expression is evaluated, and how the result of the expression is used.
8631     */
8632    EXPRESSION,
8633    /**
8634     * Optional Extension Element - found in all resources.
8635     */
8636    EXTENSION,
8637    /**
8638     * A human's name with the ability to identify parts and usage.
8639     */
8640    HUMANNAME,
8641    /**
8642     * An identifier - identifies some entity uniquely and unambiguously. Typically
8643     * this is used for business identifiers.
8644     */
8645    IDENTIFIER,
8646    /**
8647     * The marketing status describes the date when a medicinal product is actually
8648     * put on the market or the date as of which it is no longer available.
8649     */
8650    MARKETINGSTATUS,
8651    /**
8652     * The metadata about a resource. This is content in the resource that is
8653     * maintained by the infrastructure. Changes to the content might not always be
8654     * associated with version changes to the resource.
8655     */
8656    META,
8657    /**
8658     * An amount of economic utility in some recognized currency.
8659     */
8660    MONEY,
8661    /**
8662     * null
8663     */
8664    MONEYQUANTITY,
8665    /**
8666     * A human-readable summary of the resource conveying the essential clinical and
8667     * business information for the resource.
8668     */
8669    NARRATIVE,
8670    /**
8671     * The parameters to the module. This collection specifies both the input and
8672     * output parameters. Input parameters are provided by the caller as part of the
8673     * $evaluate operation. Output parameters are included in the GuidanceResponse.
8674     */
8675    PARAMETERDEFINITION,
8676    /**
8677     * A time period defined by a start and end date and optionally time.
8678     */
8679    PERIOD,
8680    /**
8681     * A populatioof people with some set of grouping criteria.
8682     */
8683    POPULATION,
8684    /**
8685     * The marketing status describes the date when a medicinal product is actually
8686     * put on the market or the date as of which it is no longer available.
8687     */
8688    PRODCHARACTERISTIC,
8689    /**
8690     * The shelf-life and storage information for a medicinal product item or
8691     * container can be described using this class.
8692     */
8693    PRODUCTSHELFLIFE,
8694    /**
8695     * A measured amount (or an amount that can potentially be measured). Note that
8696     * measured amounts include amounts that are not precisely quantified, including
8697     * amounts involving arbitrary units and floating currencies.
8698     */
8699    QUANTITY,
8700    /**
8701     * A set of ordered Quantities defined by a low and high limit.
8702     */
8703    RANGE,
8704    /**
8705     * A relationship of two Quantity values - expressed as a numerator and a
8706     * denominator.
8707     */
8708    RATIO,
8709    /**
8710     * A reference from one resource to another.
8711     */
8712    REFERENCE,
8713    /**
8714     * Related artifacts such as additional documentation, justification, or
8715     * bibliographic references.
8716     */
8717    RELATEDARTIFACT,
8718    /**
8719     * A series of measurements taken by a device, with upper and lower limits.
8720     * There may be more than one dimension in the data.
8721     */
8722    SAMPLEDDATA,
8723    /**
8724     * A signature along with supporting context. The signature may be a digital
8725     * signature that is cryptographic in nature, or some other signature acceptable
8726     * to the domain. This other signature may be as simple as a graphical image
8727     * representing a hand-written signature, or a signature ceremony Different
8728     * signature approaches have different utilities.
8729     */
8730    SIGNATURE,
8731    /**
8732     * null
8733     */
8734    SIMPLEQUANTITY,
8735    /**
8736     * Chemical substances are a single substance type whose primary defining
8737     * element is the molecular structure. Chemical substances shall be defined on
8738     * the basis of their complete covalent molecular structure; the presence of a
8739     * salt (counter-ion) and/or solvates (water, alcohols) is also captured.
8740     * Purity, grade, physical form or particle size are not taken into account in
8741     * the definition of a chemical substance or in the assignment of a Substance
8742     * ID.
8743     */
8744    SUBSTANCEAMOUNT,
8745    /**
8746     * Specifies an event that may occur multiple times. Timing schedules are used
8747     * to record when things are planned, expected or requested to occur. The most
8748     * common usage is in dosage instructions for medications. They are also used
8749     * when planning care of various kinds, and may be used for reporting the
8750     * schedule to which past regular activities were carried out.
8751     */
8752    TIMING,
8753    /**
8754     * A description of a triggering event. Triggering events can be named events,
8755     * data events, or periodic, as determined by the type element.
8756     */
8757    TRIGGERDEFINITION,
8758    /**
8759     * Specifies clinical/business/etc. metadata that can be used to retrieve, index
8760     * and/or categorize an artifact. This metadata can either be specific to the
8761     * applicable population (e.g., age category, DRG) or the specific context of
8762     * care (e.g., venue, care setting, provider of care).
8763     */
8764    USAGECONTEXT,
8765    /**
8766     * A stream of bytes
8767     */
8768    BASE64BINARY,
8769    /**
8770     * Value of "true" or "false"
8771     */
8772    BOOLEAN,
8773    /**
8774     * A URI that is a reference to a canonical URL on a FHIR resource
8775     */
8776    CANONICAL,
8777    /**
8778     * A string which has at least one character and no leading or trailing
8779     * whitespace and where there is no whitespace other than single spaces in the
8780     * contents
8781     */
8782    CODE,
8783    /**
8784     * A date or partial date (e.g. just year or year + month). There is no time
8785     * zone. The format is a union of the schema types gYear, gYearMonth and date.
8786     * Dates SHALL be valid dates.
8787     */
8788    DATE,
8789    /**
8790     * A date, date-time or partial date (e.g. just year or year + month). If hours
8791     * and minutes are specified, a time zone SHALL be populated. The format is a
8792     * union of the schema types gYear, gYearMonth, date and dateTime. Seconds must
8793     * be provided due to schema type constraints but may be zero-filled and may be
8794     * ignored. Dates SHALL be valid dates.
8795     */
8796    DATETIME,
8797    /**
8798     * A rational number with implicit precision
8799     */
8800    DECIMAL,
8801    /**
8802     * Any combination of letters, numerals, "-" and ".", with a length limit of 64
8803     * characters. (This might be an integer, an unprefixed OID, UUID or any other
8804     * identifier pattern that meets these constraints.) Ids are case-insensitive.
8805     */
8806    ID,
8807    /**
8808     * An instant in time - known at least to the second
8809     */
8810    INSTANT,
8811    /**
8812     * A whole number
8813     */
8814    INTEGER,
8815    /**
8816     * A string that may contain Github Flavored Markdown syntax for optional
8817     * processing by a mark down presentation engine
8818     */
8819    MARKDOWN,
8820    /**
8821     * An OID represented as a URI
8822     */
8823    OID,
8824    /**
8825     * An integer with a value that is positive (e.g. >0)
8826     */
8827    POSITIVEINT,
8828    /**
8829     * A sequence of Unicode characters
8830     */
8831    STRING,
8832    /**
8833     * A time during the day, with no date specified
8834     */
8835    TIME,
8836    /**
8837     * An integer with a value that is not negative (e.g. >= 0)
8838     */
8839    UNSIGNEDINT,
8840    /**
8841     * String of characters used to identify a name or a resource
8842     */
8843    URI,
8844    /**
8845     * A URI that is a literal reference
8846     */
8847    URL,
8848    /**
8849     * A UUID, represented as a URI
8850     */
8851    UUID,
8852    /**
8853     * XHTML format, as defined by W3C, but restricted usage (mainly, no active
8854     * content)
8855     */
8856    XHTML,
8857    /**
8858     * A financial tool for tracking value accrued for a particular purpose. In the
8859     * healthcare field, used to track charges for a patient, cost centers, etc.
8860     */
8861    ACCOUNT,
8862    /**
8863     * This resource allows for the definition of some activity to be performed,
8864     * independent of a particular patient, practitioner, or other performance
8865     * context.
8866     */
8867    ACTIVITYDEFINITION,
8868    /**
8869     * Actual or potential/avoided event causing unintended physical injury
8870     * resulting from or contributed to by medical care, a research study or other
8871     * healthcare setting factors that requires additional monitoring, treatment, or
8872     * hospitalization, or that results in death.
8873     */
8874    ADVERSEEVENT,
8875    /**
8876     * Risk of harmful or undesirable, physiological response which is unique to an
8877     * individual and associated with exposure to a substance.
8878     */
8879    ALLERGYINTOLERANCE,
8880    /**
8881     * A booking of a healthcare event among patient(s), practitioner(s), related
8882     * person(s) and/or device(s) for a specific date/time. This may result in one
8883     * or more Encounter(s).
8884     */
8885    APPOINTMENT,
8886    /**
8887     * A reply to an appointment request for a patient and/or practitioner(s), such
8888     * as a confirmation or rejection.
8889     */
8890    APPOINTMENTRESPONSE,
8891    /**
8892     * A record of an event made for purposes of maintaining a security log. Typical
8893     * uses include detection of intrusion attempts and monitoring for inappropriate
8894     * usage.
8895     */
8896    AUDITEVENT,
8897    /**
8898     * Basic is used for handling concepts not yet defined in FHIR, narrative-only
8899     * resources that don't map to an existing resource, and custom resources not
8900     * appropriate for inclusion in the FHIR specification.
8901     */
8902    BASIC,
8903    /**
8904     * A resource that represents the data of a single raw artifact as digital
8905     * content accessible in its native format. A Binary resource can contain any
8906     * content, whether text, image, pdf, zip archive, etc.
8907     */
8908    BINARY,
8909    /**
8910     * A material substance originating from a biological entity intended to be
8911     * transplanted or infused into another (possibly the same) biological entity.
8912     */
8913    BIOLOGICALLYDERIVEDPRODUCT,
8914    /**
8915     * Record details about an anatomical structure. This resource may be used when
8916     * a coded concept does not provide the necessary detail needed for the use
8917     * case.
8918     */
8919    BODYSTRUCTURE,
8920    /**
8921     * A container for a collection of resources.
8922     */
8923    BUNDLE,
8924    /**
8925     * A Capability Statement documents a set of capabilities (behaviors) of a FHIR
8926     * Server for a particular version of FHIR that may be used as a statement of
8927     * actual server functionality or a statement of required or desired server
8928     * implementation.
8929     */
8930    CAPABILITYSTATEMENT,
8931    /**
8932     * Describes the intention of how one or more practitioners intend to deliver
8933     * care for a particular patient, group or community for a period of time,
8934     * possibly limited to care for a specific condition or set of conditions.
8935     */
8936    CAREPLAN,
8937    /**
8938     * The Care Team includes all the people and organizations who plan to
8939     * participate in the coordination and delivery of care for a patient.
8940     */
8941    CARETEAM,
8942    /**
8943     * Catalog entries are wrappers that contextualize items included in a catalog.
8944     */
8945    CATALOGENTRY,
8946    /**
8947     * The resource ChargeItem describes the provision of healthcare provider
8948     * products for a certain patient, therefore referring not only to the product,
8949     * but containing in addition details of the provision, like date, time, amounts
8950     * and participating organizations and persons. Main Usage of the ChargeItem is
8951     * to enable the billing process and internal cost allocation.
8952     */
8953    CHARGEITEM,
8954    /**
8955     * The ChargeItemDefinition resource provides the properties that apply to the
8956     * (billing) codes necessary to calculate costs and prices. The properties may
8957     * differ largely depending on type and realm, therefore this resource gives
8958     * only a rough structure and requires profiling for each type of billing code
8959     * system.
8960     */
8961    CHARGEITEMDEFINITION,
8962    /**
8963     * A provider issued list of professional services and products which have been
8964     * provided, or are to be provided, to a patient which is sent to an insurer for
8965     * reimbursement.
8966     */
8967    CLAIM,
8968    /**
8969     * This resource provides the adjudication details from the processing of a
8970     * Claim resource.
8971     */
8972    CLAIMRESPONSE,
8973    /**
8974     * A record of a clinical assessment performed to determine what problem(s) may
8975     * affect the patient and before planning the treatments or management
8976     * strategies that are best to manage a patient's condition. Assessments are
8977     * often 1:1 with a clinical consultation / encounter, but this varies greatly
8978     * depending on the clinical workflow. This resource is called
8979     * "ClinicalImpression" rather than "ClinicalAssessment" to avoid confusion with
8980     * the recording of assessment tools such as Apgar score.
8981     */
8982    CLINICALIMPRESSION,
8983    /**
8984     * The CodeSystem resource is used to declare the existence of and describe a
8985     * code system or code system supplement and its key properties, and optionally
8986     * define a part or all of its content.
8987     */
8988    CODESYSTEM,
8989    /**
8990     * An occurrence of information being transmitted; e.g. an alert that was sent
8991     * to a responsible provider, a public health agency that was notified about a
8992     * reportable condition.
8993     */
8994    COMMUNICATION,
8995    /**
8996     * A request to convey information; e.g. the CDS system proposes that an alert
8997     * be sent to a responsible provider, the CDS system proposes that the public
8998     * health agency be notified about a reportable condition.
8999     */
9000    COMMUNICATIONREQUEST,
9001    /**
9002     * A compartment definition that defines how resources are accessed on a server.
9003     */
9004    COMPARTMENTDEFINITION,
9005    /**
9006     * A set of healthcare-related information that is assembled together into a
9007     * single logical package that provides a single coherent statement of meaning,
9008     * establishes its own context and that has clinical attestation with regard to
9009     * who is making the statement. A Composition defines the structure and
9010     * narrative content necessary for a document. However, a Composition alone does
9011     * not constitute a document. Rather, the Composition must be the first entry in
9012     * a Bundle where Bundle.type=document, and any other resources referenced from
9013     * Composition must be included as subsequent entries in the Bundle (for example
9014     * Patient, Practitioner, Encounter, etc.).
9015     */
9016    COMPOSITION,
9017    /**
9018     * A statement of relationships from one set of concepts to one or more other
9019     * concepts - either concepts in code systems, or data element/data element
9020     * concepts, or classes in class models.
9021     */
9022    CONCEPTMAP,
9023    /**
9024     * A clinical condition, problem, diagnosis, or other event, situation, issue,
9025     * or clinical concept that has risen to a level of concern.
9026     */
9027    CONDITION,
9028    /**
9029     * A record of a healthcare consumer?s choices, which permits or denies
9030     * identified recipient(s) or recipient role(s) to perform one or more actions
9031     * within a given policy context, for specific purposes and periods of time.
9032     */
9033    CONSENT,
9034    /**
9035     * Legally enforceable, formally recorded unilateral or bilateral directive
9036     * i.e., a policy or agreement.
9037     */
9038    CONTRACT,
9039    /**
9040     * Financial instrument which may be used to reimburse or pay for health care
9041     * products and services. Includes both insurance and self-payment.
9042     */
9043    COVERAGE,
9044    /**
9045     * The CoverageEligibilityRequest provides patient and insurance coverage
9046     * information to an insurer for them to respond, in the form of an
9047     * CoverageEligibilityResponse, with information regarding whether the stated
9048     * coverage is valid and in-force and optionally to provide the insurance
9049     * details of the policy.
9050     */
9051    COVERAGEELIGIBILITYREQUEST,
9052    /**
9053     * This resource provides eligibility and plan details from the processing of an
9054     * CoverageEligibilityRequest resource.
9055     */
9056    COVERAGEELIGIBILITYRESPONSE,
9057    /**
9058     * Indicates an actual or potential clinical issue with or between one or more
9059     * active or proposed clinical actions for a patient; e.g. Drug-drug
9060     * interaction, Ineffective treatment frequency, Procedure-condition conflict,
9061     * etc.
9062     */
9063    DETECTEDISSUE,
9064    /**
9065     * A type of a manufactured item that is used in the provision of healthcare
9066     * without being substantially changed through that activity. The device may be
9067     * a medical or non-medical device.
9068     */
9069    DEVICE,
9070    /**
9071     * The characteristics, operational status and capabilities of a medical-related
9072     * component of a medical device.
9073     */
9074    DEVICEDEFINITION,
9075    /**
9076     * Describes a measurement, calculation or setting capability of a medical
9077     * device.
9078     */
9079    DEVICEMETRIC,
9080    /**
9081     * Represents a request for a patient to employ a medical device. The device may
9082     * be an implantable device, or an external assistive device, such as a walker.
9083     */
9084    DEVICEREQUEST,
9085    /**
9086     * A record of a device being used by a patient where the record is the result
9087     * of a report from the patient or another clinician.
9088     */
9089    DEVICEUSESTATEMENT,
9090    /**
9091     * The findings and interpretation of diagnostic tests performed on patients,
9092     * groups of patients, devices, and locations, and/or specimens derived from
9093     * these. The report includes clinical context such as requesting and provider
9094     * information, and some mix of atomic results, images, textual and coded
9095     * interpretations, and formatted representation of diagnostic reports.
9096     */
9097    DIAGNOSTICREPORT,
9098    /**
9099     * A collection of documents compiled for a purpose together with metadata that
9100     * applies to the collection.
9101     */
9102    DOCUMENTMANIFEST,
9103    /**
9104     * A reference to a document of any kind for any purpose. Provides metadata
9105     * about the document so that the document can be discovered and managed. The
9106     * scope of a document is any seralized object with a mime-type, so includes
9107     * formal patient centric documents (CDA), cliical notes, scanned paper, and
9108     * non-patient specific documents like policy text.
9109     */
9110    DOCUMENTREFERENCE,
9111    /**
9112     * A resource that includes narrative, extensions, and contained resources.
9113     */
9114    DOMAINRESOURCE,
9115    /**
9116     * The EffectEvidenceSynthesis resource describes the difference in an outcome
9117     * between exposures states in a population where the effect estimate is derived
9118     * from a combination of research studies.
9119     */
9120    EFFECTEVIDENCESYNTHESIS,
9121    /**
9122     * An interaction between a patient and healthcare provider(s) for the purpose
9123     * of providing healthcare service(s) or assessing the health status of a
9124     * patient.
9125     */
9126    ENCOUNTER,
9127    /**
9128     * The technical details of an endpoint that can be used for electronic
9129     * services, such as for web services providing XDS.b or a REST endpoint for
9130     * another FHIR server. This may include any security context information.
9131     */
9132    ENDPOINT,
9133    /**
9134     * This resource provides the insurance enrollment details to the insurer
9135     * regarding a specified coverage.
9136     */
9137    ENROLLMENTREQUEST,
9138    /**
9139     * This resource provides enrollment and plan details from the processing of an
9140     * EnrollmentRequest resource.
9141     */
9142    ENROLLMENTRESPONSE,
9143    /**
9144     * An association between a patient and an organization / healthcare provider(s)
9145     * during which time encounters may occur. The managing organization assumes a
9146     * level of responsibility for the patient during this time.
9147     */
9148    EPISODEOFCARE,
9149    /**
9150     * The EventDefinition resource provides a reusable description of when a
9151     * particular event can occur.
9152     */
9153    EVENTDEFINITION,
9154    /**
9155     * The Evidence resource describes the conditional state (population and any
9156     * exposures being compared within the population) and outcome (if specified)
9157     * that the knowledge (evidence, assertion, recommendation) is about.
9158     */
9159    EVIDENCE,
9160    /**
9161     * The EvidenceVariable resource describes a "PICO" element that knowledge
9162     * (evidence, assertion, recommendation) is about.
9163     */
9164    EVIDENCEVARIABLE,
9165    /**
9166     * Example of workflow instance.
9167     */
9168    EXAMPLESCENARIO,
9169    /**
9170     * This resource provides: the claim details; adjudication details from the
9171     * processing of a Claim; and optionally account balance information, for
9172     * informing the subscriber of the benefits provided.
9173     */
9174    EXPLANATIONOFBENEFIT,
9175    /**
9176     * Significant health conditions for a person related to the patient relevant in
9177     * the context of care for the patient.
9178     */
9179    FAMILYMEMBERHISTORY,
9180    /**
9181     * Prospective warnings of potential issues when providing care to the patient.
9182     */
9183    FLAG,
9184    /**
9185     * Describes the intended objective(s) for a patient, group or organization
9186     * care, for example, weight loss, restoring an activity of daily living,
9187     * obtaining herd immunity via immunization, meeting a process improvement
9188     * objective, etc.
9189     */
9190    GOAL,
9191    /**
9192     * A formal computable definition of a graph of resources - that is, a coherent
9193     * set of resources that form a graph by following references. The Graph
9194     * Definition resource defines a set and makes rules about the set.
9195     */
9196    GRAPHDEFINITION,
9197    /**
9198     * Represents a defined collection of entities that may be discussed or acted
9199     * upon collectively but which are not expected to act collectively, and are not
9200     * formally or legally recognized; i.e. a collection of entities that isn't an
9201     * Organization.
9202     */
9203    GROUP,
9204    /**
9205     * A guidance response is the formal response to a guidance request, including
9206     * any output parameters returned by the evaluation, as well as the description
9207     * of any proposed actions to be taken.
9208     */
9209    GUIDANCERESPONSE,
9210    /**
9211     * The details of a healthcare service available at a location.
9212     */
9213    HEALTHCARESERVICE,
9214    /**
9215     * Representation of the content produced in a DICOM imaging study. A study
9216     * comprises a set of series, each of which includes a set of Service-Object
9217     * Pair Instances (SOP Instances - images or other data) acquired or produced in
9218     * a common context. A series is of only one modality (e.g. X-ray, CT, MR,
9219     * ultrasound), but a study may have multiple series of different modalities.
9220     */
9221    IMAGINGSTUDY,
9222    /**
9223     * Describes the event of a patient being administered a vaccine or a record of
9224     * an immunization as reported by a patient, a clinician or another party.
9225     */
9226    IMMUNIZATION,
9227    /**
9228     * Describes a comparison of an immunization event against published
9229     * recommendations to determine if the administration is "valid" in relation to
9230     * those recommendations.
9231     */
9232    IMMUNIZATIONEVALUATION,
9233    /**
9234     * A patient's point-in-time set of recommendations (i.e. forecasting) according
9235     * to a published schedule with optional supporting justification.
9236     */
9237    IMMUNIZATIONRECOMMENDATION,
9238    /**
9239     * A set of rules of how a particular interoperability or standards problem is
9240     * solved - typically through the use of FHIR resources. This resource is used
9241     * to gather all the parts of an implementation guide into a logical whole and
9242     * to publish a computable definition of all the parts.
9243     */
9244    IMPLEMENTATIONGUIDE,
9245    /**
9246     * Details of a Health Insurance product/plan provided by an organization.
9247     */
9248    INSURANCEPLAN,
9249    /**
9250     * Invoice containing collected ChargeItems from an Account with calculated
9251     * individual and total price for Billing purpose.
9252     */
9253    INVOICE,
9254    /**
9255     * The Library resource is a general-purpose container for knowledge asset
9256     * definitions. It can be used to describe and expose existing knowledge assets
9257     * such as logic libraries and information model descriptions, as well as to
9258     * describe a collection of knowledge assets.
9259     */
9260    LIBRARY,
9261    /**
9262     * Identifies two or more records (resource instances) that refer to the same
9263     * real-world "occurrence".
9264     */
9265    LINKAGE,
9266    /**
9267     * A list is a curated collection of resources.
9268     */
9269    LIST,
9270    /**
9271     * Details and position information for a physical place where services are
9272     * provided and resources and participants may be stored, found, contained, or
9273     * accommodated.
9274     */
9275    LOCATION,
9276    /**
9277     * The Measure resource provides the definition of a quality measure.
9278     */
9279    MEASURE,
9280    /**
9281     * The MeasureReport resource contains the results of the calculation of a
9282     * measure; and optionally a reference to the resources involved in that
9283     * calculation.
9284     */
9285    MEASUREREPORT,
9286    /**
9287     * A photo, video, or audio recording acquired or used in healthcare. The actual
9288     * content may be inline or provided by direct reference.
9289     */
9290    MEDIA,
9291    /**
9292     * This resource is primarily used for the identification and definition of a
9293     * medication for the purposes of prescribing, dispensing, and administering a
9294     * medication as well as for making statements about medication use.
9295     */
9296    MEDICATION,
9297    /**
9298     * Describes the event of a patient consuming or otherwise being administered a
9299     * medication. This may be as simple as swallowing a tablet or it may be a long
9300     * running infusion. Related resources tie this event to the authorizing
9301     * prescription, and the specific encounter between patient and health care
9302     * practitioner.
9303     */
9304    MEDICATIONADMINISTRATION,
9305    /**
9306     * Indicates that a medication product is to be or has been dispensed for a
9307     * named person/patient. This includes a description of the medication product
9308     * (supply) provided and the instructions for administering the medication. The
9309     * medication dispense is the result of a pharmacy system responding to a
9310     * medication order.
9311     */
9312    MEDICATIONDISPENSE,
9313    /**
9314     * Information about a medication that is used to support knowledge.
9315     */
9316    MEDICATIONKNOWLEDGE,
9317    /**
9318     * An order or request for both supply of the medication and the instructions
9319     * for administration of the medication to a patient. The resource is called
9320     * "MedicationRequest" rather than "MedicationPrescription" or "MedicationOrder"
9321     * to generalize the use across inpatient and outpatient settings, including
9322     * care plans, etc., and to harmonize with workflow patterns.
9323     */
9324    MEDICATIONREQUEST,
9325    /**
9326     * A record of a medication that is being consumed by a patient. A
9327     * MedicationStatement may indicate that the patient may be taking the
9328     * medication now or has taken the medication in the past or will be taking the
9329     * medication in the future. The source of this information can be the patient,
9330     * significant other (such as a family member or spouse), or a clinician. A
9331     * common scenario where this information is captured is during the history
9332     * taking process during a patient visit or stay. The medication information may
9333     * come from sources such as the patient's memory, from a prescription bottle,
9334     * or from a list of medications the patient, clinician or other party
9335     * maintains.
9336     * 
9337     * The primary difference between a medication statement and a medication
9338     * administration is that the medication administration has complete
9339     * administration information and is based on actual administration information
9340     * from the person who administered the medication. A medication statement is
9341     * often, if not always, less specific. There is no required date/time when the
9342     * medication was administered, in fact we only know that a source has reported
9343     * the patient is taking this medication, where details such as time, quantity,
9344     * or rate or even medication product may be incomplete or missing or less
9345     * precise. As stated earlier, the medication statement information may come
9346     * from the patient's memory, from a prescription bottle or from a list of
9347     * medications the patient, clinician or other party maintains. Medication
9348     * administration is more formal and is not missing detailed information.
9349     */
9350    MEDICATIONSTATEMENT,
9351    /**
9352     * Detailed definition of a medicinal product, typically for uses other than
9353     * direct patient care (e.g. regulatory use).
9354     */
9355    MEDICINALPRODUCT,
9356    /**
9357     * The regulatory authorization of a medicinal product.
9358     */
9359    MEDICINALPRODUCTAUTHORIZATION,
9360    /**
9361     * The clinical particulars - indications, contraindications etc. of a medicinal
9362     * product, including for regulatory purposes.
9363     */
9364    MEDICINALPRODUCTCONTRAINDICATION,
9365    /**
9366     * Indication for the Medicinal Product.
9367     */
9368    MEDICINALPRODUCTINDICATION,
9369    /**
9370     * An ingredient of a manufactured item or pharmaceutical product.
9371     */
9372    MEDICINALPRODUCTINGREDIENT,
9373    /**
9374     * The interactions of the medicinal product with other medicinal products, or
9375     * other forms of interactions.
9376     */
9377    MEDICINALPRODUCTINTERACTION,
9378    /**
9379     * The manufactured item as contained in the packaged medicinal product.
9380     */
9381    MEDICINALPRODUCTMANUFACTURED,
9382    /**
9383     * A medicinal product in a container or package.
9384     */
9385    MEDICINALPRODUCTPACKAGED,
9386    /**
9387     * A pharmaceutical product described in terms of its composition and dose form.
9388     */
9389    MEDICINALPRODUCTPHARMACEUTICAL,
9390    /**
9391     * Describe the undesirable effects of the medicinal product.
9392     */
9393    MEDICINALPRODUCTUNDESIRABLEEFFECT,
9394    /**
9395     * Defines the characteristics of a message that can be shared between systems,
9396     * including the type of event that initiates the message, the content to be
9397     * transmitted and what response(s), if any, are permitted.
9398     */
9399    MESSAGEDEFINITION,
9400    /**
9401     * The header for a message exchange that is either requesting or responding to
9402     * an action. The reference(s) that are the subject of the action as well as
9403     * other information related to the action are typically transmitted in a bundle
9404     * in which the MessageHeader resource instance is the first resource in the
9405     * bundle.
9406     */
9407    MESSAGEHEADER,
9408    /**
9409     * Raw data describing a biological sequence.
9410     */
9411    MOLECULARSEQUENCE,
9412    /**
9413     * A curated namespace that issues unique symbols within that namespace for the
9414     * identification of concepts, people, devices, etc. Represents a "System" used
9415     * within the Identifier and Coding data types.
9416     */
9417    NAMINGSYSTEM,
9418    /**
9419     * A request to supply a diet, formula feeding (enteral) or oral nutritional
9420     * supplement to a patient/resident.
9421     */
9422    NUTRITIONORDER,
9423    /**
9424     * Measurements and simple assertions made about a patient, device or other
9425     * subject.
9426     */
9427    OBSERVATION,
9428    /**
9429     * Set of definitional characteristics for a kind of observation or measurement
9430     * produced or consumed by an orderable health care service.
9431     */
9432    OBSERVATIONDEFINITION,
9433    /**
9434     * A formal computable definition of an operation (on the RESTful interface) or
9435     * a named query (using the search interaction).
9436     */
9437    OPERATIONDEFINITION,
9438    /**
9439     * A collection of error, warning, or information messages that result from a
9440     * system action.
9441     */
9442    OPERATIONOUTCOME,
9443    /**
9444     * A formally or informally recognized grouping of people or organizations
9445     * formed for the purpose of achieving some form of collective action. Includes
9446     * companies, institutions, corporations, departments, community groups,
9447     * healthcare practice groups, payer/insurer, etc.
9448     */
9449    ORGANIZATION,
9450    /**
9451     * Defines an affiliation/assotiation/relationship between 2 distinct
9452     * oganizations, that is not a part-of relationship/sub-division relationship.
9453     */
9454    ORGANIZATIONAFFILIATION,
9455    /**
9456     * This resource is a non-persisted resource used to pass information into and
9457     * back from an [operation](operations.html). It has no other use, and there is
9458     * no RESTful endpoint associated with it.
9459     */
9460    PARAMETERS,
9461    /**
9462     * Demographics and other administrative information about an individual or
9463     * animal receiving care or other health-related services.
9464     */
9465    PATIENT,
9466    /**
9467     * This resource provides the status of the payment for goods and services
9468     * rendered, and the request and response resource references.
9469     */
9470    PAYMENTNOTICE,
9471    /**
9472     * This resource provides the details including amount of a payment and
9473     * allocates the payment items being paid.
9474     */
9475    PAYMENTRECONCILIATION,
9476    /**
9477     * Demographics and administrative information about a person independent of a
9478     * specific health-related context.
9479     */
9480    PERSON,
9481    /**
9482     * This resource allows for the definition of various types of plans as a
9483     * sharable, consumable, and executable artifact. The resource is general enough
9484     * to support the description of a broad range of clinical artifacts such as
9485     * clinical decision support rules, order sets and protocols.
9486     */
9487    PLANDEFINITION,
9488    /**
9489     * A person who is directly or indirectly involved in the provisioning of
9490     * healthcare.
9491     */
9492    PRACTITIONER,
9493    /**
9494     * A specific set of Roles/Locations/specialties/services that a practitioner
9495     * may perform at an organization for a period of time.
9496     */
9497    PRACTITIONERROLE,
9498    /**
9499     * An action that is or was performed on or for a patient. This can be a
9500     * physical intervention like an operation, or less invasive like long term
9501     * services, counseling, or hypnotherapy.
9502     */
9503    PROCEDURE,
9504    /**
9505     * Provenance of a resource is a record that describes entities and processes
9506     * involved in producing and delivering or otherwise influencing that resource.
9507     * Provenance provides a critical foundation for assessing authenticity,
9508     * enabling trust, and allowing reproducibility. Provenance assertions are a
9509     * form of contextual metadata and can themselves become important records with
9510     * their own provenance. Provenance statement indicates clinical significance in
9511     * terms of confidence in authenticity, reliability, and trustworthiness,
9512     * integrity, and stage in lifecycle (e.g. Document Completion - has the
9513     * artifact been legally authenticated), all of which may impact security,
9514     * privacy, and trust policies.
9515     */
9516    PROVENANCE,
9517    /**
9518     * A structured set of questions intended to guide the collection of answers
9519     * from end-users. Questionnaires provide detailed control over order,
9520     * presentation, phraseology and grouping to allow coherent, consistent data
9521     * collection.
9522     */
9523    QUESTIONNAIRE,
9524    /**
9525     * A structured set of questions and their answers. The questions are ordered
9526     * and grouped into coherent subsets, corresponding to the structure of the
9527     * grouping of the questionnaire being responded to.
9528     */
9529    QUESTIONNAIRERESPONSE,
9530    /**
9531     * Information about a person that is involved in the care for a patient, but
9532     * who is not the target of healthcare, nor has a formal responsibility in the
9533     * care process.
9534     */
9535    RELATEDPERSON,
9536    /**
9537     * A group of related requests that can be used to capture intended activities
9538     * that have inter-dependencies such as "give this medication after that one".
9539     */
9540    REQUESTGROUP,
9541    /**
9542     * The ResearchDefinition resource describes the conditional state (population
9543     * and any exposures being compared within the population) and outcome (if
9544     * specified) that the knowledge (evidence, assertion, recommendation) is about.
9545     */
9546    RESEARCHDEFINITION,
9547    /**
9548     * The ResearchElementDefinition resource describes a "PICO" element that
9549     * knowledge (evidence, assertion, recommendation) is about.
9550     */
9551    RESEARCHELEMENTDEFINITION,
9552    /**
9553     * A process where a researcher or organization plans and then executes a series
9554     * of steps intended to increase the field of healthcare-related knowledge. This
9555     * includes studies of safety, efficacy, comparative effectiveness and other
9556     * information about medications, devices, therapies and other interventional
9557     * and investigative techniques. A ResearchStudy involves the gathering of
9558     * information about human or animal subjects.
9559     */
9560    RESEARCHSTUDY,
9561    /**
9562     * A physical entity which is the primary unit of operational and/or
9563     * administrative interest in a study.
9564     */
9565    RESEARCHSUBJECT,
9566    /**
9567     * This is the base resource type for everything.
9568     */
9569    RESOURCE,
9570    /**
9571     * An assessment of the likely outcome(s) for a patient or other subject as well
9572     * as the likelihood of each outcome.
9573     */
9574    RISKASSESSMENT,
9575    /**
9576     * The RiskEvidenceSynthesis resource describes the likelihood of an outcome in
9577     * a population plus exposure state where the risk estimate is derived from a
9578     * combination of research studies.
9579     */
9580    RISKEVIDENCESYNTHESIS,
9581    /**
9582     * A container for slots of time that may be available for booking appointments.
9583     */
9584    SCHEDULE,
9585    /**
9586     * A search parameter that defines a named search item that can be used to
9587     * search/filter on a resource.
9588     */
9589    SEARCHPARAMETER,
9590    /**
9591     * A record of a request for service such as diagnostic investigations,
9592     * treatments, or operations to be performed.
9593     */
9594    SERVICEREQUEST,
9595    /**
9596     * A slot of time on a schedule that may be available for booking appointments.
9597     */
9598    SLOT,
9599    /**
9600     * A sample to be used for analysis.
9601     */