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