001package org.hl7.fhir.dstu3.model;
002
003/*-
004 * #%L
005 * org.hl7.fhir.dstu3
006 * %%
007 * Copyright (C) 2014 - 2019 Health Level 7
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import org.hl7.fhir.exceptions.FHIRException;
024
025public class Enumerations {
026
027// In here: 
028//   AbstractType: A type defined by FHIR that is an abstract type
029//   AdministrativeGender: The gender of a person used for administrative purposes.
030//   AgeUnits: A valueSet of UCUM codes for representing age value units.
031//   BindingStrength: Indication of the degree of conformance expectations associated with a binding.
032//   ConceptMapEquivalence: The degree of equivalence between concepts.
033//   DataAbsentReason: Used to specify why the normally expected content of the data element is missing.
034//   DataType: The type of an element - one of the FHIR data types.
035//   DocumentReferenceStatus: The status of the document reference.
036//   FHIRAllTypes: Either an abstract type, a resource or a data type.
037//   FHIRDefinedType: Either a resource or a data type.
038//   MessageEvent: One of the message events defined as part of FHIR.
039//   NoteType: The presentation types of notes.
040//   PublicationStatus: The lifecycle status of a Value Set or Concept Map.
041//   RemittanceOutcome: The outcome of the processing.
042//   ResourceType: One of the resource types defined as part of FHIR.
043//   SearchParamType: Data types allowed to be used for search parameters.
044//   SpecialValues: A set of generally useful codes defined so they can be included in value sets.
045
046
047    public enum AbstractType {
048        /**
049         * A place holder that means any kind of data type
050         */
051        TYPE, 
052        /**
053         * A place holder that means any kind of resource
054         */
055        ANY, 
056        /**
057         * added to help the parsers
058         */
059        NULL;
060        public static AbstractType fromCode(String codeString) throws FHIRException {
061            if (codeString == null || "".equals(codeString))
062                return null;
063        if ("Type".equals(codeString))
064          return TYPE;
065        if ("Any".equals(codeString))
066          return ANY;
067        throw new FHIRException("Unknown AbstractType code '"+codeString+"'");
068        }
069        public String toCode() {
070          switch (this) {
071            case TYPE: return "Type";
072            case ANY: return "Any";
073            default: return "?";
074          }
075        }
076        public String getSystem() {
077          switch (this) {
078            case TYPE: return "http://hl7.org/fhir/abstract-types";
079            case ANY: return "http://hl7.org/fhir/abstract-types";
080            default: return "?";
081          }
082        }
083        public String getDefinition() {
084          switch (this) {
085            case TYPE: return "A place holder that means any kind of data type";
086            case ANY: return "A place holder that means any kind of resource";
087            default: return "?";
088          }
089        }
090        public String getDisplay() {
091          switch (this) {
092            case TYPE: return "Type";
093            case ANY: return "Any";
094            default: return "?";
095          }
096        }
097    }
098
099  public static class AbstractTypeEnumFactory implements EnumFactory<AbstractType> {
100    public AbstractType fromCode(String codeString) throws IllegalArgumentException {
101      if (codeString == null || "".equals(codeString))
102            if (codeString == null || "".equals(codeString))
103                return null;
104        if ("Type".equals(codeString))
105          return AbstractType.TYPE;
106        if ("Any".equals(codeString))
107          return AbstractType.ANY;
108        throw new IllegalArgumentException("Unknown AbstractType code '"+codeString+"'");
109        }
110        public Enumeration<AbstractType> fromType(Base code) throws FHIRException {
111          if (code == null)
112            return null;
113          if (code.isEmpty())
114            return new Enumeration<AbstractType>(this);
115          String codeString = ((PrimitiveType) code).asStringValue();
116          if (codeString == null || "".equals(codeString))
117            return null;
118        if ("Type".equals(codeString))
119          return new Enumeration<AbstractType>(this, AbstractType.TYPE);
120        if ("Any".equals(codeString))
121          return new Enumeration<AbstractType>(this, AbstractType.ANY);
122        throw new FHIRException("Unknown AbstractType code '"+codeString+"'");
123        }
124    public String toCode(AbstractType code) {
125      if (code == AbstractType.TYPE)
126        return "Type";
127      if (code == AbstractType.ANY)
128        return "Any";
129      return "?";
130      }
131    public String toSystem(AbstractType code) {
132      return code.getSystem();
133      }
134    }
135
136    public enum AdministrativeGender {
137        /**
138         * Male
139         */
140        MALE, 
141        /**
142         * Female
143         */
144        FEMALE, 
145        /**
146         * Other
147         */
148        OTHER, 
149        /**
150         * Unknown
151         */
152        UNKNOWN, 
153        /**
154         * added to help the parsers
155         */
156        NULL;
157        public static AdministrativeGender fromCode(String codeString) throws FHIRException {
158            if (codeString == null || "".equals(codeString))
159                return null;
160        if ("male".equals(codeString))
161          return MALE;
162        if ("female".equals(codeString))
163          return FEMALE;
164        if ("other".equals(codeString))
165          return OTHER;
166        if ("unknown".equals(codeString))
167          return UNKNOWN;
168        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
169        }
170        public String toCode() {
171          switch (this) {
172            case MALE: return "male";
173            case FEMALE: return "female";
174            case OTHER: return "other";
175            case UNKNOWN: return "unknown";
176            default: return "?";
177          }
178        }
179        public String getSystem() {
180          switch (this) {
181            case MALE: return "http://hl7.org/fhir/administrative-gender";
182            case FEMALE: return "http://hl7.org/fhir/administrative-gender";
183            case OTHER: return "http://hl7.org/fhir/administrative-gender";
184            case UNKNOWN: return "http://hl7.org/fhir/administrative-gender";
185            default: return "?";
186          }
187        }
188        public String getDefinition() {
189          switch (this) {
190            case MALE: return "Male";
191            case FEMALE: return "Female";
192            case OTHER: return "Other";
193            case UNKNOWN: return "Unknown";
194            default: return "?";
195          }
196        }
197        public String getDisplay() {
198          switch (this) {
199            case MALE: return "Male";
200            case FEMALE: return "Female";
201            case OTHER: return "Other";
202            case UNKNOWN: return "Unknown";
203            default: return "?";
204          }
205        }
206    }
207
208  public static class AdministrativeGenderEnumFactory implements EnumFactory<AdministrativeGender> {
209    public AdministrativeGender fromCode(String codeString) throws IllegalArgumentException {
210      if (codeString == null || "".equals(codeString))
211            if (codeString == null || "".equals(codeString))
212                return null;
213        if ("male".equals(codeString))
214          return AdministrativeGender.MALE;
215        if ("female".equals(codeString))
216          return AdministrativeGender.FEMALE;
217        if ("other".equals(codeString))
218          return AdministrativeGender.OTHER;
219        if ("unknown".equals(codeString))
220          return AdministrativeGender.UNKNOWN;
221        throw new IllegalArgumentException("Unknown AdministrativeGender code '"+codeString+"'");
222        }
223        public Enumeration<AdministrativeGender> fromType(Base code) throws FHIRException {
224          if (code == null)
225            return null;
226          if (code.isEmpty())
227            return new Enumeration<AdministrativeGender>(this);
228          String codeString = ((PrimitiveType) code).asStringValue();
229          if (codeString == null || "".equals(codeString))
230            return null;
231        if ("male".equals(codeString))
232          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.MALE);
233        if ("female".equals(codeString))
234          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.FEMALE);
235        if ("other".equals(codeString))
236          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.OTHER);
237        if ("unknown".equals(codeString))
238          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.UNKNOWN);
239        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
240        }
241    public String toCode(AdministrativeGender code) {
242      if (code == AdministrativeGender.MALE)
243        return "male";
244      if (code == AdministrativeGender.FEMALE)
245        return "female";
246      if (code == AdministrativeGender.OTHER)
247        return "other";
248      if (code == AdministrativeGender.UNKNOWN)
249        return "unknown";
250      return "?";
251      }
252    public String toSystem(AdministrativeGender code) {
253      return code.getSystem();
254      }
255    }
256
257    public enum AgeUnits {
258        /**
259         * null
260         */
261        MIN, 
262        /**
263         * null
264         */
265        H, 
266        /**
267         * null
268         */
269        D, 
270        /**
271         * null
272         */
273        WK, 
274        /**
275         * null
276         */
277        MO, 
278        /**
279         * null
280         */
281        A, 
282        /**
283         * added to help the parsers
284         */
285        NULL;
286        public static AgeUnits fromCode(String codeString) throws FHIRException {
287            if (codeString == null || "".equals(codeString))
288                return null;
289        if ("min".equals(codeString))
290          return MIN;
291        if ("h".equals(codeString))
292          return H;
293        if ("d".equals(codeString))
294          return D;
295        if ("wk".equals(codeString))
296          return WK;
297        if ("mo".equals(codeString))
298          return MO;
299        if ("a".equals(codeString))
300          return A;
301        throw new FHIRException("Unknown AgeUnits code '"+codeString+"'");
302        }
303        public String toCode() {
304          switch (this) {
305            case MIN: return "min";
306            case H: return "h";
307            case D: return "d";
308            case WK: return "wk";
309            case MO: return "mo";
310            case A: return "a";
311            default: return "?";
312          }
313        }
314        public String getSystem() {
315          switch (this) {
316            case MIN: return "http://unitsofmeasure.org";
317            case H: return "http://unitsofmeasure.org";
318            case D: return "http://unitsofmeasure.org";
319            case WK: return "http://unitsofmeasure.org";
320            case MO: return "http://unitsofmeasure.org";
321            case A: return "http://unitsofmeasure.org";
322            default: return "?";
323          }
324        }
325        public String getDefinition() {
326          switch (this) {
327            case MIN: return "";
328            case H: return "";
329            case D: return "";
330            case WK: return "";
331            case MO: return "";
332            case A: return "";
333            default: return "?";
334          }
335        }
336        public String getDisplay() {
337          switch (this) {
338            case MIN: return "Minute";
339            case H: return "Hour";
340            case D: return "Day";
341            case WK: return "Week";
342            case MO: return "Month";
343            case A: return "Year";
344            default: return "?";
345          }
346        }
347    }
348
349  public static class AgeUnitsEnumFactory implements EnumFactory<AgeUnits> {
350    public AgeUnits fromCode(String codeString) throws IllegalArgumentException {
351      if (codeString == null || "".equals(codeString))
352            if (codeString == null || "".equals(codeString))
353                return null;
354        if ("min".equals(codeString))
355          return AgeUnits.MIN;
356        if ("h".equals(codeString))
357          return AgeUnits.H;
358        if ("d".equals(codeString))
359          return AgeUnits.D;
360        if ("wk".equals(codeString))
361          return AgeUnits.WK;
362        if ("mo".equals(codeString))
363          return AgeUnits.MO;
364        if ("a".equals(codeString))
365          return AgeUnits.A;
366        throw new IllegalArgumentException("Unknown AgeUnits code '"+codeString+"'");
367        }
368        public Enumeration<AgeUnits> fromType(Base code) throws FHIRException {
369          if (code == null)
370            return null;
371          if (code.isEmpty())
372            return new Enumeration<AgeUnits>(this);
373          String codeString = ((PrimitiveType) code).asStringValue();
374          if (codeString == null || "".equals(codeString))
375            return null;
376        if ("min".equals(codeString))
377          return new Enumeration<AgeUnits>(this, AgeUnits.MIN);
378        if ("h".equals(codeString))
379          return new Enumeration<AgeUnits>(this, AgeUnits.H);
380        if ("d".equals(codeString))
381          return new Enumeration<AgeUnits>(this, AgeUnits.D);
382        if ("wk".equals(codeString))
383          return new Enumeration<AgeUnits>(this, AgeUnits.WK);
384        if ("mo".equals(codeString))
385          return new Enumeration<AgeUnits>(this, AgeUnits.MO);
386        if ("a".equals(codeString))
387          return new Enumeration<AgeUnits>(this, AgeUnits.A);
388        throw new FHIRException("Unknown AgeUnits code '"+codeString+"'");
389        }
390    public String toCode(AgeUnits code) {
391      if (code == AgeUnits.MIN)
392        return "min";
393      if (code == AgeUnits.H)
394        return "h";
395      if (code == AgeUnits.D)
396        return "d";
397      if (code == AgeUnits.WK)
398        return "wk";
399      if (code == AgeUnits.MO)
400        return "mo";
401      if (code == AgeUnits.A)
402        return "a";
403      return "?";
404      }
405    public String toSystem(AgeUnits code) {
406      return code.getSystem();
407      }
408    }
409
410    public enum BindingStrength {
411        /**
412         * To be conformant, the concept in this element SHALL be from the specified value set
413         */
414        REQUIRED, 
415        /**
416         * 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.
417         */
418        EXTENSIBLE, 
419        /**
420         * Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.
421         */
422        PREFERRED, 
423        /**
424         * 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.
425         */
426        EXAMPLE, 
427        /**
428         * added to help the parsers
429         */
430        NULL;
431        public static BindingStrength fromCode(String codeString) throws FHIRException {
432            if (codeString == null || "".equals(codeString))
433                return null;
434        if ("required".equals(codeString))
435          return REQUIRED;
436        if ("extensible".equals(codeString))
437          return EXTENSIBLE;
438        if ("preferred".equals(codeString))
439          return PREFERRED;
440        if ("example".equals(codeString))
441          return EXAMPLE;
442        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
443        }
444        public String toCode() {
445          switch (this) {
446            case REQUIRED: return "required";
447            case EXTENSIBLE: return "extensible";
448            case PREFERRED: return "preferred";
449            case EXAMPLE: return "example";
450            default: return "?";
451          }
452        }
453        public String getSystem() {
454          switch (this) {
455            case REQUIRED: return "http://hl7.org/fhir/binding-strength";
456            case EXTENSIBLE: return "http://hl7.org/fhir/binding-strength";
457            case PREFERRED: return "http://hl7.org/fhir/binding-strength";
458            case EXAMPLE: return "http://hl7.org/fhir/binding-strength";
459            default: return "?";
460          }
461        }
462        public String getDefinition() {
463          switch (this) {
464            case REQUIRED: return "To be conformant, the concept in this element SHALL be from the specified value set";
465            case EXTENSIBLE: 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.";
466            case PREFERRED: return "Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.";
467            case EXAMPLE: return "Instances are not expected or even encouraged to draw from the specified value set.  The value set merely provides examples of the types of concepts intended to be included.";
468            default: return "?";
469          }
470        }
471        public String getDisplay() {
472          switch (this) {
473            case REQUIRED: return "Required";
474            case EXTENSIBLE: return "Extensible";
475            case PREFERRED: return "Preferred";
476            case EXAMPLE: return "Example";
477            default: return "?";
478          }
479        }
480    }
481
482  public static class BindingStrengthEnumFactory implements EnumFactory<BindingStrength> {
483    public BindingStrength fromCode(String codeString) throws IllegalArgumentException {
484      if (codeString == null || "".equals(codeString))
485            if (codeString == null || "".equals(codeString))
486                return null;
487        if ("required".equals(codeString))
488          return BindingStrength.REQUIRED;
489        if ("extensible".equals(codeString))
490          return BindingStrength.EXTENSIBLE;
491        if ("preferred".equals(codeString))
492          return BindingStrength.PREFERRED;
493        if ("example".equals(codeString))
494          return BindingStrength.EXAMPLE;
495        throw new IllegalArgumentException("Unknown BindingStrength code '"+codeString+"'");
496        }
497        public Enumeration<BindingStrength> fromType(Base code) throws FHIRException {
498          if (code == null)
499            return null;
500          if (code.isEmpty())
501            return new Enumeration<BindingStrength>(this);
502          String codeString = ((PrimitiveType) code).asStringValue();
503          if (codeString == null || "".equals(codeString))
504            return null;
505        if ("required".equals(codeString))
506          return new Enumeration<BindingStrength>(this, BindingStrength.REQUIRED);
507        if ("extensible".equals(codeString))
508          return new Enumeration<BindingStrength>(this, BindingStrength.EXTENSIBLE);
509        if ("preferred".equals(codeString))
510          return new Enumeration<BindingStrength>(this, BindingStrength.PREFERRED);
511        if ("example".equals(codeString))
512          return new Enumeration<BindingStrength>(this, BindingStrength.EXAMPLE);
513        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
514        }
515    public String toCode(BindingStrength code) {
516      if (code == BindingStrength.REQUIRED)
517        return "required";
518      if (code == BindingStrength.EXTENSIBLE)
519        return "extensible";
520      if (code == BindingStrength.PREFERRED)
521        return "preferred";
522      if (code == BindingStrength.EXAMPLE)
523        return "example";
524      return "?";
525      }
526    public String toSystem(BindingStrength code) {
527      return code.getSystem();
528      }
529    }
530
531    public enum ConceptMapEquivalence {
532        /**
533         * The concepts are related to each other, and have at least some overlap in meaning, but the exact relationship is not known
534         */
535        RELATEDTO, 
536        /**
537         * The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical).
538         */
539        EQUIVALENT, 
540        /**
541         * 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).
542         */
543        EQUAL, 
544        /**
545         * The target mapping is wider in meaning than the source concept.
546         */
547        WIDER, 
548        /**
549         * The target mapping subsumes the meaning of the source concept (e.g. the source is-a target).
550         */
551        SUBSUMES, 
552        /**
553         * 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.
554         */
555        NARROWER, 
556        /**
557         * The target mapping specializes the meaning of the source concept (e.g. the target is-a source).
558         */
559        SPECIALIZES, 
560        /**
561         * The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally.
562         */
563        INEXACT, 
564        /**
565         * There is no match for this concept in the destination concept system.
566         */
567        UNMATCHED, 
568        /**
569         * This is an explicit assertion that there is no mapping between the source and target concept.
570         */
571        DISJOINT, 
572        /**
573         * added to help the parsers
574         */
575        NULL;
576        public static ConceptMapEquivalence fromCode(String codeString) throws FHIRException {
577            if (codeString == null || "".equals(codeString))
578                return null;
579        if ("relatedto".equals(codeString))
580          return RELATEDTO;
581        if ("equivalent".equals(codeString))
582          return EQUIVALENT;
583        if ("equal".equals(codeString))
584          return EQUAL;
585        if ("wider".equals(codeString))
586          return WIDER;
587        if ("subsumes".equals(codeString))
588          return SUBSUMES;
589        if ("narrower".equals(codeString))
590          return NARROWER;
591        if ("specializes".equals(codeString))
592          return SPECIALIZES;
593        if ("inexact".equals(codeString))
594          return INEXACT;
595        if ("unmatched".equals(codeString))
596          return UNMATCHED;
597        if ("disjoint".equals(codeString))
598          return DISJOINT;
599        throw new FHIRException("Unknown ConceptMapEquivalence code '"+codeString+"'");
600        }
601        public String toCode() {
602          switch (this) {
603            case RELATEDTO: return "relatedto";
604            case EQUIVALENT: return "equivalent";
605            case EQUAL: return "equal";
606            case WIDER: return "wider";
607            case SUBSUMES: return "subsumes";
608            case NARROWER: return "narrower";
609            case SPECIALIZES: return "specializes";
610            case INEXACT: return "inexact";
611            case UNMATCHED: return "unmatched";
612            case DISJOINT: return "disjoint";
613            default: return "?";
614          }
615        }
616        public String getSystem() {
617          switch (this) {
618            case RELATEDTO: return "http://hl7.org/fhir/concept-map-equivalence";
619            case EQUIVALENT: return "http://hl7.org/fhir/concept-map-equivalence";
620            case EQUAL: return "http://hl7.org/fhir/concept-map-equivalence";
621            case WIDER: return "http://hl7.org/fhir/concept-map-equivalence";
622            case SUBSUMES: return "http://hl7.org/fhir/concept-map-equivalence";
623            case NARROWER: return "http://hl7.org/fhir/concept-map-equivalence";
624            case SPECIALIZES: return "http://hl7.org/fhir/concept-map-equivalence";
625            case INEXACT: return "http://hl7.org/fhir/concept-map-equivalence";
626            case UNMATCHED: return "http://hl7.org/fhir/concept-map-equivalence";
627            case DISJOINT: return "http://hl7.org/fhir/concept-map-equivalence";
628            default: return "?";
629          }
630        }
631        public String getDefinition() {
632          switch (this) {
633            case RELATEDTO: return "The concepts are related to each other, and have at least some overlap in meaning, but the exact relationship is not known";
634            case EQUIVALENT: return "The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical).";
635            case EQUAL: return "The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identical or irrelevant (i.e. intentionally identical).";
636            case WIDER: return "The target mapping is wider in meaning than the source concept.";
637            case SUBSUMES: return "The target mapping subsumes the meaning of the source concept (e.g. the source is-a target).";
638            case NARROWER: 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.";
639            case SPECIALIZES: return "The target mapping specializes the meaning of the source concept (e.g. the target is-a source).";
640            case INEXACT: return "The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally.";
641            case UNMATCHED: return "There is no match for this concept in the destination concept system.";
642            case DISJOINT: return "This is an explicit assertion that there is no mapping between the source and target concept.";
643            default: return "?";
644          }
645        }
646        public String getDisplay() {
647          switch (this) {
648            case RELATEDTO: return "Related To";
649            case EQUIVALENT: return "Equivalent";
650            case EQUAL: return "Equal";
651            case WIDER: return "Wider";
652            case SUBSUMES: return "Subsumes";
653            case NARROWER: return "Narrower";
654            case SPECIALIZES: return "Specializes";
655            case INEXACT: return "Inexact";
656            case UNMATCHED: return "Unmatched";
657            case DISJOINT: return "Disjoint";
658            default: return "?";
659          }
660        }
661    }
662
663  public static class ConceptMapEquivalenceEnumFactory implements EnumFactory<ConceptMapEquivalence> {
664    public ConceptMapEquivalence fromCode(String codeString) throws IllegalArgumentException {
665      if (codeString == null || "".equals(codeString))
666            if (codeString == null || "".equals(codeString))
667                return null;
668        if ("relatedto".equals(codeString))
669          return ConceptMapEquivalence.RELATEDTO;
670        if ("equivalent".equals(codeString))
671          return ConceptMapEquivalence.EQUIVALENT;
672        if ("equal".equals(codeString))
673          return ConceptMapEquivalence.EQUAL;
674        if ("wider".equals(codeString))
675          return ConceptMapEquivalence.WIDER;
676        if ("subsumes".equals(codeString))
677          return ConceptMapEquivalence.SUBSUMES;
678        if ("narrower".equals(codeString))
679          return ConceptMapEquivalence.NARROWER;
680        if ("specializes".equals(codeString))
681          return ConceptMapEquivalence.SPECIALIZES;
682        if ("inexact".equals(codeString))
683          return ConceptMapEquivalence.INEXACT;
684        if ("unmatched".equals(codeString))
685          return ConceptMapEquivalence.UNMATCHED;
686        if ("disjoint".equals(codeString))
687          return ConceptMapEquivalence.DISJOINT;
688        throw new IllegalArgumentException("Unknown ConceptMapEquivalence code '"+codeString+"'");
689        }
690        public Enumeration<ConceptMapEquivalence> fromType(Base code) throws FHIRException {
691          if (code == null)
692            return null;
693          if (code.isEmpty())
694            return new Enumeration<ConceptMapEquivalence>(this);
695          String codeString = ((PrimitiveType) code).asStringValue();
696          if (codeString == null || "".equals(codeString))
697            return null;
698        if ("relatedto".equals(codeString))
699          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.RELATEDTO);
700        if ("equivalent".equals(codeString))
701          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.EQUIVALENT);
702        if ("equal".equals(codeString))
703          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.EQUAL);
704        if ("wider".equals(codeString))
705          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.WIDER);
706        if ("subsumes".equals(codeString))
707          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.SUBSUMES);
708        if ("narrower".equals(codeString))
709          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.NARROWER);
710        if ("specializes".equals(codeString))
711          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.SPECIALIZES);
712        if ("inexact".equals(codeString))
713          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.INEXACT);
714        if ("unmatched".equals(codeString))
715          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.UNMATCHED);
716        if ("disjoint".equals(codeString))
717          return new Enumeration<ConceptMapEquivalence>(this, ConceptMapEquivalence.DISJOINT);
718        throw new FHIRException("Unknown ConceptMapEquivalence code '"+codeString+"'");
719        }
720    public String toCode(ConceptMapEquivalence code) {
721      if (code == ConceptMapEquivalence.RELATEDTO)
722        return "relatedto";
723      if (code == ConceptMapEquivalence.EQUIVALENT)
724        return "equivalent";
725      if (code == ConceptMapEquivalence.EQUAL)
726        return "equal";
727      if (code == ConceptMapEquivalence.WIDER)
728        return "wider";
729      if (code == ConceptMapEquivalence.SUBSUMES)
730        return "subsumes";
731      if (code == ConceptMapEquivalence.NARROWER)
732        return "narrower";
733      if (code == ConceptMapEquivalence.SPECIALIZES)
734        return "specializes";
735      if (code == ConceptMapEquivalence.INEXACT)
736        return "inexact";
737      if (code == ConceptMapEquivalence.UNMATCHED)
738        return "unmatched";
739      if (code == ConceptMapEquivalence.DISJOINT)
740        return "disjoint";
741      return "?";
742      }
743    public String toSystem(ConceptMapEquivalence code) {
744      return code.getSystem();
745      }
746    }
747
748    public enum DataAbsentReason {
749        /**
750         * The value is not known.
751         */
752        UNKNOWN, 
753        /**
754         * The source human does not know the value.
755         */
756        ASKED, 
757        /**
758         * There is reason to expect (from the workflow) that the value may become known.
759         */
760        TEMP, 
761        /**
762         * The workflow didn't lead to this value being known.
763         */
764        NOTASKED, 
765        /**
766         * The information is not available due to security, privacy or related reasons.
767         */
768        MASKED, 
769        /**
770         * The source system wasn't capable of supporting this element.
771         */
772        UNSUPPORTED, 
773        /**
774         * The content of the data is represented in the resource narrative.
775         */
776        ASTEXT, 
777        /**
778         * Some system or workflow process error means that the information is not available.
779         */
780        ERROR, 
781        /**
782         * NaN, standing for not a number, is a numeric data type value representing an undefined or unrepresentable value.
783         */
784        NAN, 
785        /**
786         * The value is not available because the observation procedure (test, etc.) was not performed.
787         */
788        NOTPERFORMED, 
789        /**
790         * added to help the parsers
791         */
792        NULL;
793        public static DataAbsentReason fromCode(String codeString) throws FHIRException {
794            if (codeString == null || "".equals(codeString))
795                return null;
796        if ("unknown".equals(codeString))
797          return UNKNOWN;
798        if ("asked".equals(codeString))
799          return ASKED;
800        if ("temp".equals(codeString))
801          return TEMP;
802        if ("not-asked".equals(codeString))
803          return NOTASKED;
804        if ("masked".equals(codeString))
805          return MASKED;
806        if ("unsupported".equals(codeString))
807          return UNSUPPORTED;
808        if ("astext".equals(codeString))
809          return ASTEXT;
810        if ("error".equals(codeString))
811          return ERROR;
812        if ("NaN".equals(codeString))
813          return NAN;
814        if ("not-performed".equals(codeString))
815          return NOTPERFORMED;
816        throw new FHIRException("Unknown DataAbsentReason code '"+codeString+"'");
817        }
818        public String toCode() {
819          switch (this) {
820            case UNKNOWN: return "unknown";
821            case ASKED: return "asked";
822            case TEMP: return "temp";
823            case NOTASKED: return "not-asked";
824            case MASKED: return "masked";
825            case UNSUPPORTED: return "unsupported";
826            case ASTEXT: return "astext";
827            case ERROR: return "error";
828            case NAN: return "NaN";
829            case NOTPERFORMED: return "not-performed";
830            default: return "?";
831          }
832        }
833        public String getSystem() {
834          switch (this) {
835            case UNKNOWN: return "http://hl7.org/fhir/data-absent-reason";
836            case ASKED: return "http://hl7.org/fhir/data-absent-reason";
837            case TEMP: return "http://hl7.org/fhir/data-absent-reason";
838            case NOTASKED: return "http://hl7.org/fhir/data-absent-reason";
839            case MASKED: return "http://hl7.org/fhir/data-absent-reason";
840            case UNSUPPORTED: return "http://hl7.org/fhir/data-absent-reason";
841            case ASTEXT: return "http://hl7.org/fhir/data-absent-reason";
842            case ERROR: return "http://hl7.org/fhir/data-absent-reason";
843            case NAN: return "http://hl7.org/fhir/data-absent-reason";
844            case NOTPERFORMED: return "http://hl7.org/fhir/data-absent-reason";
845            default: return "?";
846          }
847        }
848        public String getDefinition() {
849          switch (this) {
850            case UNKNOWN: return "The value is not known.";
851            case ASKED: return "The source human does not know the value.";
852            case TEMP: return "There is reason to expect (from the workflow) that the value may become known.";
853            case NOTASKED: return "The workflow didn't lead to this value being known.";
854            case MASKED: return "The information is not available due to security, privacy or related reasons.";
855            case UNSUPPORTED: return "The source system wasn't capable of supporting this element.";
856            case ASTEXT: return "The content of the data is represented in the resource narrative.";
857            case ERROR: return "Some system or workflow process error means that the information is not available.";
858            case NAN: return "NaN, standing for not a number, is a numeric data type value representing an undefined or unrepresentable value.";
859            case NOTPERFORMED: return "The value is not available because the observation procedure (test, etc.) was not performed.";
860            default: return "?";
861          }
862        }
863        public String getDisplay() {
864          switch (this) {
865            case UNKNOWN: return "Unknown";
866            case ASKED: return "Asked";
867            case TEMP: return "Temp";
868            case NOTASKED: return "Not Asked";
869            case MASKED: return "Masked";
870            case UNSUPPORTED: return "Unsupported";
871            case ASTEXT: return "As Text";
872            case ERROR: return "Error";
873            case NAN: return "Not a Number";
874            case NOTPERFORMED: return "Not Performed";
875            default: return "?";
876          }
877        }
878    }
879
880  public static class DataAbsentReasonEnumFactory implements EnumFactory<DataAbsentReason> {
881    public DataAbsentReason fromCode(String codeString) throws IllegalArgumentException {
882      if (codeString == null || "".equals(codeString))
883            if (codeString == null || "".equals(codeString))
884                return null;
885        if ("unknown".equals(codeString))
886          return DataAbsentReason.UNKNOWN;
887        if ("asked".equals(codeString))
888          return DataAbsentReason.ASKED;
889        if ("temp".equals(codeString))
890          return DataAbsentReason.TEMP;
891        if ("not-asked".equals(codeString))
892          return DataAbsentReason.NOTASKED;
893        if ("masked".equals(codeString))
894          return DataAbsentReason.MASKED;
895        if ("unsupported".equals(codeString))
896          return DataAbsentReason.UNSUPPORTED;
897        if ("astext".equals(codeString))
898          return DataAbsentReason.ASTEXT;
899        if ("error".equals(codeString))
900          return DataAbsentReason.ERROR;
901        if ("NaN".equals(codeString))
902          return DataAbsentReason.NAN;
903        if ("not-performed".equals(codeString))
904          return DataAbsentReason.NOTPERFORMED;
905        throw new IllegalArgumentException("Unknown DataAbsentReason code '"+codeString+"'");
906        }
907        public Enumeration<DataAbsentReason> fromType(Base code) throws FHIRException {
908          if (code == null)
909            return null;
910          if (code.isEmpty())
911            return new Enumeration<DataAbsentReason>(this);
912          String codeString = ((PrimitiveType) code).asStringValue();
913          if (codeString == null || "".equals(codeString))
914            return null;
915        if ("unknown".equals(codeString))
916          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.UNKNOWN);
917        if ("asked".equals(codeString))
918          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ASKED);
919        if ("temp".equals(codeString))
920          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.TEMP);
921        if ("not-asked".equals(codeString))
922          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTASKED);
923        if ("masked".equals(codeString))
924          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.MASKED);
925        if ("unsupported".equals(codeString))
926          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.UNSUPPORTED);
927        if ("astext".equals(codeString))
928          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ASTEXT);
929        if ("error".equals(codeString))
930          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.ERROR);
931        if ("NaN".equals(codeString))
932          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NAN);
933        if ("not-performed".equals(codeString))
934          return new Enumeration<DataAbsentReason>(this, DataAbsentReason.NOTPERFORMED);
935        throw new FHIRException("Unknown DataAbsentReason code '"+codeString+"'");
936        }
937    public String toCode(DataAbsentReason code) {
938      if (code == DataAbsentReason.UNKNOWN)
939        return "unknown";
940      if (code == DataAbsentReason.ASKED)
941        return "asked";
942      if (code == DataAbsentReason.TEMP)
943        return "temp";
944      if (code == DataAbsentReason.NOTASKED)
945        return "not-asked";
946      if (code == DataAbsentReason.MASKED)
947        return "masked";
948      if (code == DataAbsentReason.UNSUPPORTED)
949        return "unsupported";
950      if (code == DataAbsentReason.ASTEXT)
951        return "astext";
952      if (code == DataAbsentReason.ERROR)
953        return "error";
954      if (code == DataAbsentReason.NAN)
955        return "NaN";
956      if (code == DataAbsentReason.NOTPERFORMED)
957        return "not-performed";
958      return "?";
959      }
960    public String toSystem(DataAbsentReason code) {
961      return code.getSystem();
962      }
963    }
964
965    public enum DataType {
966        /**
967         * 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.
968         */
969        ADDRESS, 
970        /**
971         * A duration of time during which an organism (or a process) has existed.
972         */
973        AGE, 
974        /**
975         * A  text note which also  contains information about who made the statement and when.
976         */
977        ANNOTATION, 
978        /**
979         * For referring to data content defined in other formats.
980         */
981        ATTACHMENT, 
982        /**
983         * Base definition for all elements that are defined inside a resource - but not those in a data type.
984         */
985        BACKBONEELEMENT, 
986        /**
987         * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
988         */
989        CODEABLECONCEPT, 
990        /**
991         * A reference to a code defined by a terminology system.
992         */
993        CODING, 
994        /**
995         * Specifies contact information for a person or organization.
996         */
997        CONTACTDETAIL, 
998        /**
999         * Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
1000         */
1001        CONTACTPOINT, 
1002        /**
1003         * A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.
1004         */
1005        CONTRIBUTOR, 
1006        /**
1007         * 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.
1008         */
1009        COUNT, 
1010        /**
1011         * Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.
1012         */
1013        DATAREQUIREMENT, 
1014        /**
1015         * A length - a value with a unit that is a physical distance.
1016         */
1017        DISTANCE, 
1018        /**
1019         * Indicates how the medication is/was taken or should be taken by the patient.
1020         */
1021        DOSAGE, 
1022        /**
1023         * A length of time.
1024         */
1025        DURATION, 
1026        /**
1027         * Base definition for all elements in a resource.
1028         */
1029        ELEMENT, 
1030        /**
1031         * Captures constraints on each element within the resource, profile, or extension.
1032         */
1033        ELEMENTDEFINITION, 
1034        /**
1035         * Optional Extension Element - found in all resources.
1036         */
1037        EXTENSION, 
1038        /**
1039         * A human's name with the ability to identify parts and usage.
1040         */
1041        HUMANNAME, 
1042        /**
1043         * A technical identifier - identifies some entity uniquely and unambiguously.
1044         */
1045        IDENTIFIER, 
1046        /**
1047         * The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.
1048         */
1049        META, 
1050        /**
1051         * An amount of economic utility in some recognized currency.
1052         */
1053        MONEY, 
1054        /**
1055         * A human-readable formatted text, including images.
1056         */
1057        NARRATIVE, 
1058        /**
1059         * 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.
1060         */
1061        PARAMETERDEFINITION, 
1062        /**
1063         * A time period defined by a start and end date and optionally time.
1064         */
1065        PERIOD, 
1066        /**
1067         * 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.
1068         */
1069        QUANTITY, 
1070        /**
1071         * A set of ordered Quantities defined by a low and high limit.
1072         */
1073        RANGE, 
1074        /**
1075         * A relationship of two Quantity values - expressed as a numerator and a denominator.
1076         */
1077        RATIO, 
1078        /**
1079         * A reference from one resource to another.
1080         */
1081        REFERENCE, 
1082        /**
1083         * Related artifacts such as additional documentation, justification, or bibliographic references.
1084         */
1085        RELATEDARTIFACT, 
1086        /**
1087         * A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
1088         */
1089        SAMPLEDDATA, 
1090        /**
1091         * A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.
1092         */
1093        SIGNATURE, 
1094        /**
1095         * null
1096         */
1097        SIMPLEQUANTITY, 
1098        /**
1099         * 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.
1100         */
1101        TIMING, 
1102        /**
1103         * A description of a triggering event.
1104         */
1105        TRIGGERDEFINITION, 
1106        /**
1107         * 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).
1108         */
1109        USAGECONTEXT, 
1110        /**
1111         * A stream of bytes
1112         */
1113        BASE64BINARY, 
1114        /**
1115         * Value of "true" or "false"
1116         */
1117        BOOLEAN, 
1118        /**
1119         * 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
1120         */
1121        CODE, 
1122        /**
1123         * 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.
1124         */
1125        DATE, 
1126        /**
1127         * 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.
1128         */
1129        DATETIME, 
1130        /**
1131         * A rational number with implicit precision
1132         */
1133        DECIMAL, 
1134        /**
1135         * 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.
1136         */
1137        ID, 
1138        /**
1139         * An instant in time - known at least to the second
1140         */
1141        INSTANT, 
1142        /**
1143         * A whole number
1144         */
1145        INTEGER, 
1146        /**
1147         * A string that may contain markdown syntax for optional processing by a mark down presentation engine
1148         */
1149        MARKDOWN, 
1150        /**
1151         * An OID represented as a URI
1152         */
1153        OID, 
1154        /**
1155         * An integer with a value that is positive (e.g. >0)
1156         */
1157        POSITIVEINT, 
1158        /**
1159         * A sequence of Unicode characters
1160         */
1161        STRING, 
1162        /**
1163         * A time during the day, with no date specified
1164         */
1165        TIME, 
1166        /**
1167         * An integer with a value that is not negative (e.g. >= 0)
1168         */
1169        UNSIGNEDINT, 
1170        /**
1171         * String of characters used to identify a name or a resource
1172         */
1173        URI, 
1174        /**
1175         * A UUID, represented as a URI
1176         */
1177        UUID, 
1178        /**
1179         * XHTML format, as defined by W3C, but restricted usage (mainly, no active content)
1180         */
1181        XHTML, 
1182        /**
1183         * added to help the parsers
1184         */
1185        NULL;
1186        public static DataType fromCode(String codeString) throws FHIRException {
1187            if (codeString == null || "".equals(codeString))
1188                return null;
1189        if ("Address".equals(codeString))
1190          return ADDRESS;
1191        if ("Age".equals(codeString))
1192          return AGE;
1193        if ("Annotation".equals(codeString))
1194          return ANNOTATION;
1195        if ("Attachment".equals(codeString))
1196          return ATTACHMENT;
1197        if ("BackboneElement".equals(codeString))
1198          return BACKBONEELEMENT;
1199        if ("CodeableConcept".equals(codeString))
1200          return CODEABLECONCEPT;
1201        if ("Coding".equals(codeString))
1202          return CODING;
1203        if ("ContactDetail".equals(codeString))
1204          return CONTACTDETAIL;
1205        if ("ContactPoint".equals(codeString))
1206          return CONTACTPOINT;
1207        if ("Contributor".equals(codeString))
1208          return CONTRIBUTOR;
1209        if ("Count".equals(codeString))
1210          return COUNT;
1211        if ("DataRequirement".equals(codeString))
1212          return DATAREQUIREMENT;
1213        if ("Distance".equals(codeString))
1214          return DISTANCE;
1215        if ("Dosage".equals(codeString))
1216          return DOSAGE;
1217        if ("Duration".equals(codeString))
1218          return DURATION;
1219        if ("Element".equals(codeString))
1220          return ELEMENT;
1221        if ("ElementDefinition".equals(codeString))
1222          return ELEMENTDEFINITION;
1223        if ("Extension".equals(codeString))
1224          return EXTENSION;
1225        if ("HumanName".equals(codeString))
1226          return HUMANNAME;
1227        if ("Identifier".equals(codeString))
1228          return IDENTIFIER;
1229        if ("Meta".equals(codeString))
1230          return META;
1231        if ("Money".equals(codeString))
1232          return MONEY;
1233        if ("Narrative".equals(codeString))
1234          return NARRATIVE;
1235        if ("ParameterDefinition".equals(codeString))
1236          return PARAMETERDEFINITION;
1237        if ("Period".equals(codeString))
1238          return PERIOD;
1239        if ("Quantity".equals(codeString))
1240          return QUANTITY;
1241        if ("Range".equals(codeString))
1242          return RANGE;
1243        if ("Ratio".equals(codeString))
1244          return RATIO;
1245        if ("Reference".equals(codeString))
1246          return REFERENCE;
1247        if ("RelatedArtifact".equals(codeString))
1248          return RELATEDARTIFACT;
1249        if ("SampledData".equals(codeString))
1250          return SAMPLEDDATA;
1251        if ("Signature".equals(codeString))
1252          return SIGNATURE;
1253        if ("SimpleQuantity".equals(codeString))
1254          return SIMPLEQUANTITY;
1255        if ("Timing".equals(codeString))
1256          return TIMING;
1257        if ("TriggerDefinition".equals(codeString))
1258          return TRIGGERDEFINITION;
1259        if ("UsageContext".equals(codeString))
1260          return USAGECONTEXT;
1261        if ("base64Binary".equals(codeString))
1262          return BASE64BINARY;
1263        if ("boolean".equals(codeString))
1264          return BOOLEAN;
1265        if ("code".equals(codeString))
1266          return CODE;
1267        if ("date".equals(codeString))
1268          return DATE;
1269        if ("dateTime".equals(codeString))
1270          return DATETIME;
1271        if ("decimal".equals(codeString))
1272          return DECIMAL;
1273        if ("id".equals(codeString))
1274          return ID;
1275        if ("instant".equals(codeString))
1276          return INSTANT;
1277        if ("integer".equals(codeString))
1278          return INTEGER;
1279        if ("markdown".equals(codeString))
1280          return MARKDOWN;
1281        if ("oid".equals(codeString))
1282          return OID;
1283        if ("positiveInt".equals(codeString))
1284          return POSITIVEINT;
1285        if ("string".equals(codeString))
1286          return STRING;
1287        if ("time".equals(codeString))
1288          return TIME;
1289        if ("unsignedInt".equals(codeString))
1290          return UNSIGNEDINT;
1291        if ("uri".equals(codeString))
1292          return URI;
1293        if ("uuid".equals(codeString))
1294          return UUID;
1295        if ("xhtml".equals(codeString))
1296          return XHTML;
1297        throw new FHIRException("Unknown DataType code '"+codeString+"'");
1298        }
1299        public String toCode() {
1300          switch (this) {
1301            case ADDRESS: return "Address";
1302            case AGE: return "Age";
1303            case ANNOTATION: return "Annotation";
1304            case ATTACHMENT: return "Attachment";
1305            case BACKBONEELEMENT: return "BackboneElement";
1306            case CODEABLECONCEPT: return "CodeableConcept";
1307            case CODING: return "Coding";
1308            case CONTACTDETAIL: return "ContactDetail";
1309            case CONTACTPOINT: return "ContactPoint";
1310            case CONTRIBUTOR: return "Contributor";
1311            case COUNT: return "Count";
1312            case DATAREQUIREMENT: return "DataRequirement";
1313            case DISTANCE: return "Distance";
1314            case DOSAGE: return "Dosage";
1315            case DURATION: return "Duration";
1316            case ELEMENT: return "Element";
1317            case ELEMENTDEFINITION: return "ElementDefinition";
1318            case EXTENSION: return "Extension";
1319            case HUMANNAME: return "HumanName";
1320            case IDENTIFIER: return "Identifier";
1321            case META: return "Meta";
1322            case MONEY: return "Money";
1323            case NARRATIVE: return "Narrative";
1324            case PARAMETERDEFINITION: return "ParameterDefinition";
1325            case PERIOD: return "Period";
1326            case QUANTITY: return "Quantity";
1327            case RANGE: return "Range";
1328            case RATIO: return "Ratio";
1329            case REFERENCE: return "Reference";
1330            case RELATEDARTIFACT: return "RelatedArtifact";
1331            case SAMPLEDDATA: return "SampledData";
1332            case SIGNATURE: return "Signature";
1333            case SIMPLEQUANTITY: return "SimpleQuantity";
1334            case TIMING: return "Timing";
1335            case TRIGGERDEFINITION: return "TriggerDefinition";
1336            case USAGECONTEXT: return "UsageContext";
1337            case BASE64BINARY: return "base64Binary";
1338            case BOOLEAN: return "boolean";
1339            case CODE: return "code";
1340            case DATE: return "date";
1341            case DATETIME: return "dateTime";
1342            case DECIMAL: return "decimal";
1343            case ID: return "id";
1344            case INSTANT: return "instant";
1345            case INTEGER: return "integer";
1346            case MARKDOWN: return "markdown";
1347            case OID: return "oid";
1348            case POSITIVEINT: return "positiveInt";
1349            case STRING: return "string";
1350            case TIME: return "time";
1351            case UNSIGNEDINT: return "unsignedInt";
1352            case URI: return "uri";
1353            case UUID: return "uuid";
1354            case XHTML: return "xhtml";
1355            default: return "?";
1356          }
1357        }
1358        public String getSystem() {
1359          switch (this) {
1360            case ADDRESS: return "http://hl7.org/fhir/data-types";
1361            case AGE: return "http://hl7.org/fhir/data-types";
1362            case ANNOTATION: return "http://hl7.org/fhir/data-types";
1363            case ATTACHMENT: return "http://hl7.org/fhir/data-types";
1364            case BACKBONEELEMENT: return "http://hl7.org/fhir/data-types";
1365            case CODEABLECONCEPT: return "http://hl7.org/fhir/data-types";
1366            case CODING: return "http://hl7.org/fhir/data-types";
1367            case CONTACTDETAIL: return "http://hl7.org/fhir/data-types";
1368            case CONTACTPOINT: return "http://hl7.org/fhir/data-types";
1369            case CONTRIBUTOR: return "http://hl7.org/fhir/data-types";
1370            case COUNT: return "http://hl7.org/fhir/data-types";
1371            case DATAREQUIREMENT: return "http://hl7.org/fhir/data-types";
1372            case DISTANCE: return "http://hl7.org/fhir/data-types";
1373            case DOSAGE: return "http://hl7.org/fhir/data-types";
1374            case DURATION: return "http://hl7.org/fhir/data-types";
1375            case ELEMENT: return "http://hl7.org/fhir/data-types";
1376            case ELEMENTDEFINITION: return "http://hl7.org/fhir/data-types";
1377            case EXTENSION: return "http://hl7.org/fhir/data-types";
1378            case HUMANNAME: return "http://hl7.org/fhir/data-types";
1379            case IDENTIFIER: return "http://hl7.org/fhir/data-types";
1380            case META: return "http://hl7.org/fhir/data-types";
1381            case MONEY: return "http://hl7.org/fhir/data-types";
1382            case NARRATIVE: return "http://hl7.org/fhir/data-types";
1383            case PARAMETERDEFINITION: return "http://hl7.org/fhir/data-types";
1384            case PERIOD: return "http://hl7.org/fhir/data-types";
1385            case QUANTITY: return "http://hl7.org/fhir/data-types";
1386            case RANGE: return "http://hl7.org/fhir/data-types";
1387            case RATIO: return "http://hl7.org/fhir/data-types";
1388            case REFERENCE: return "http://hl7.org/fhir/data-types";
1389            case RELATEDARTIFACT: return "http://hl7.org/fhir/data-types";
1390            case SAMPLEDDATA: return "http://hl7.org/fhir/data-types";
1391            case SIGNATURE: return "http://hl7.org/fhir/data-types";
1392            case SIMPLEQUANTITY: return "http://hl7.org/fhir/data-types";
1393            case TIMING: return "http://hl7.org/fhir/data-types";
1394            case TRIGGERDEFINITION: return "http://hl7.org/fhir/data-types";
1395            case USAGECONTEXT: return "http://hl7.org/fhir/data-types";
1396            case BASE64BINARY: return "http://hl7.org/fhir/data-types";
1397            case BOOLEAN: return "http://hl7.org/fhir/data-types";
1398            case CODE: return "http://hl7.org/fhir/data-types";
1399            case DATE: return "http://hl7.org/fhir/data-types";
1400            case DATETIME: return "http://hl7.org/fhir/data-types";
1401            case DECIMAL: return "http://hl7.org/fhir/data-types";
1402            case ID: return "http://hl7.org/fhir/data-types";
1403            case INSTANT: return "http://hl7.org/fhir/data-types";
1404            case INTEGER: return "http://hl7.org/fhir/data-types";
1405            case MARKDOWN: return "http://hl7.org/fhir/data-types";
1406            case OID: return "http://hl7.org/fhir/data-types";
1407            case POSITIVEINT: return "http://hl7.org/fhir/data-types";
1408            case STRING: return "http://hl7.org/fhir/data-types";
1409            case TIME: return "http://hl7.org/fhir/data-types";
1410            case UNSIGNEDINT: return "http://hl7.org/fhir/data-types";
1411            case URI: return "http://hl7.org/fhir/data-types";
1412            case UUID: return "http://hl7.org/fhir/data-types";
1413            case XHTML: return "http://hl7.org/fhir/data-types";
1414            default: return "?";
1415          }
1416        }
1417        public String getDefinition() {
1418          switch (this) {
1419            case ADDRESS: return "An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
1420            case AGE: return "A duration of time during which an organism (or a process) has existed.";
1421            case ANNOTATION: return "A  text note which also  contains information about who made the statement and when.";
1422            case ATTACHMENT: return "For referring to data content defined in other formats.";
1423            case BACKBONEELEMENT: return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
1424            case CODEABLECONCEPT: return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
1425            case CODING: return "A reference to a code defined by a terminology system.";
1426            case CONTACTDETAIL: return "Specifies contact information for a person or organization.";
1427            case CONTACTPOINT: return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
1428            case CONTRIBUTOR: return "A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
1429            case COUNT: 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.";
1430            case DATAREQUIREMENT: return "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.";
1431            case DISTANCE: return "A length - a value with a unit that is a physical distance.";
1432            case DOSAGE: return "Indicates how the medication is/was taken or should be taken by the patient.";
1433            case DURATION: return "A length of time.";
1434            case ELEMENT: return "Base definition for all elements in a resource.";
1435            case ELEMENTDEFINITION: return "Captures constraints on each element within the resource, profile, or extension.";
1436            case EXTENSION: return "Optional Extension Element - found in all resources.";
1437            case HUMANNAME: return "A human's name with the ability to identify parts and usage.";
1438            case IDENTIFIER: return "A technical identifier - identifies some entity uniquely and unambiguously.";
1439            case META: return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.";
1440            case MONEY: return "An amount of economic utility in some recognized currency.";
1441            case NARRATIVE: return "A human-readable formatted text, including images.";
1442            case PARAMETERDEFINITION: return "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.";
1443            case PERIOD: return "A time period defined by a start and end date and optionally time.";
1444            case QUANTITY: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
1445            case RANGE: return "A set of ordered Quantities defined by a low and high limit.";
1446            case RATIO: return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
1447            case REFERENCE: return "A reference from one resource to another.";
1448            case RELATEDARTIFACT: return "Related artifacts such as additional documentation, justification, or bibliographic references.";
1449            case SAMPLEDDATA: return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
1450            case SIGNATURE: return "A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.";
1451            case SIMPLEQUANTITY: return "";
1452            case TIMING: 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.";
1453            case TRIGGERDEFINITION: return "A description of a triggering event.";
1454            case USAGECONTEXT: 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).";
1455            case BASE64BINARY: return "A stream of bytes";
1456            case BOOLEAN: return "Value of \"true\" or \"false\"";
1457            case CODE: return "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents";
1458            case DATE: return "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
1459            case DATETIME: return "A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.";
1460            case DECIMAL: return "A rational number with implicit precision";
1461            case ID: return "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.";
1462            case INSTANT: return "An instant in time - known at least to the second";
1463            case INTEGER: return "A whole number";
1464            case MARKDOWN: return "A string that may contain markdown syntax for optional processing by a mark down presentation engine";
1465            case OID: return "An OID represented as a URI";
1466            case POSITIVEINT: return "An integer with a value that is positive (e.g. >0)";
1467            case STRING: return "A sequence of Unicode characters";
1468            case TIME: return "A time during the day, with no date specified";
1469            case UNSIGNEDINT: return "An integer with a value that is not negative (e.g. >= 0)";
1470            case URI: return "String of characters used to identify a name or a resource";
1471            case UUID: return "A UUID, represented as a URI";
1472            case XHTML: return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
1473            default: return "?";
1474          }
1475        }
1476        public String getDisplay() {
1477          switch (this) {
1478            case ADDRESS: return "Address";
1479            case AGE: return "Age";
1480            case ANNOTATION: return "Annotation";
1481            case ATTACHMENT: return "Attachment";
1482            case BACKBONEELEMENT: return "BackboneElement";
1483            case CODEABLECONCEPT: return "CodeableConcept";
1484            case CODING: return "Coding";
1485            case CONTACTDETAIL: return "ContactDetail";
1486            case CONTACTPOINT: return "ContactPoint";
1487            case CONTRIBUTOR: return "Contributor";
1488            case COUNT: return "Count";
1489            case DATAREQUIREMENT: return "DataRequirement";
1490            case DISTANCE: return "Distance";
1491            case DOSAGE: return "Dosage";
1492            case DURATION: return "Duration";
1493            case ELEMENT: return "Element";
1494            case ELEMENTDEFINITION: return "ElementDefinition";
1495            case EXTENSION: return "Extension";
1496            case HUMANNAME: return "HumanName";
1497            case IDENTIFIER: return "Identifier";
1498            case META: return "Meta";
1499            case MONEY: return "Money";
1500            case NARRATIVE: return "Narrative";
1501            case PARAMETERDEFINITION: return "ParameterDefinition";
1502            case PERIOD: return "Period";
1503            case QUANTITY: return "Quantity";
1504            case RANGE: return "Range";
1505            case RATIO: return "Ratio";
1506            case REFERENCE: return "Reference";
1507            case RELATEDARTIFACT: return "RelatedArtifact";
1508            case SAMPLEDDATA: return "SampledData";
1509            case SIGNATURE: return "Signature";
1510            case SIMPLEQUANTITY: return "SimpleQuantity";
1511            case TIMING: return "Timing";
1512            case TRIGGERDEFINITION: return "TriggerDefinition";
1513            case USAGECONTEXT: return "UsageContext";
1514            case BASE64BINARY: return "base64Binary";
1515            case BOOLEAN: return "boolean";
1516            case CODE: return "code";
1517            case DATE: return "date";
1518            case DATETIME: return "dateTime";
1519            case DECIMAL: return "decimal";
1520            case ID: return "id";
1521            case INSTANT: return "instant";
1522            case INTEGER: return "integer";
1523            case MARKDOWN: return "markdown";
1524            case OID: return "oid";
1525            case POSITIVEINT: return "positiveInt";
1526            case STRING: return "string";
1527            case TIME: return "time";
1528            case UNSIGNEDINT: return "unsignedInt";
1529            case URI: return "uri";
1530            case UUID: return "uuid";
1531            case XHTML: return "XHTML";
1532            default: return "?";
1533          }
1534        }
1535    }
1536
1537  public static class DataTypeEnumFactory implements EnumFactory<DataType> {
1538    public DataType fromCode(String codeString) throws IllegalArgumentException {
1539      if (codeString == null || "".equals(codeString))
1540            if (codeString == null || "".equals(codeString))
1541                return null;
1542        if ("Address".equals(codeString))
1543          return DataType.ADDRESS;
1544        if ("Age".equals(codeString))
1545          return DataType.AGE;
1546        if ("Annotation".equals(codeString))
1547          return DataType.ANNOTATION;
1548        if ("Attachment".equals(codeString))
1549          return DataType.ATTACHMENT;
1550        if ("BackboneElement".equals(codeString))
1551          return DataType.BACKBONEELEMENT;
1552        if ("CodeableConcept".equals(codeString))
1553          return DataType.CODEABLECONCEPT;
1554        if ("Coding".equals(codeString))
1555          return DataType.CODING;
1556        if ("ContactDetail".equals(codeString))
1557          return DataType.CONTACTDETAIL;
1558        if ("ContactPoint".equals(codeString))
1559          return DataType.CONTACTPOINT;
1560        if ("Contributor".equals(codeString))
1561          return DataType.CONTRIBUTOR;
1562        if ("Count".equals(codeString))
1563          return DataType.COUNT;
1564        if ("DataRequirement".equals(codeString))
1565          return DataType.DATAREQUIREMENT;
1566        if ("Distance".equals(codeString))
1567          return DataType.DISTANCE;
1568        if ("Dosage".equals(codeString))
1569          return DataType.DOSAGE;
1570        if ("Duration".equals(codeString))
1571          return DataType.DURATION;
1572        if ("Element".equals(codeString))
1573          return DataType.ELEMENT;
1574        if ("ElementDefinition".equals(codeString))
1575          return DataType.ELEMENTDEFINITION;
1576        if ("Extension".equals(codeString))
1577          return DataType.EXTENSION;
1578        if ("HumanName".equals(codeString))
1579          return DataType.HUMANNAME;
1580        if ("Identifier".equals(codeString))
1581          return DataType.IDENTIFIER;
1582        if ("Meta".equals(codeString))
1583          return DataType.META;
1584        if ("Money".equals(codeString))
1585          return DataType.MONEY;
1586        if ("Narrative".equals(codeString))
1587          return DataType.NARRATIVE;
1588        if ("ParameterDefinition".equals(codeString))
1589          return DataType.PARAMETERDEFINITION;
1590        if ("Period".equals(codeString))
1591          return DataType.PERIOD;
1592        if ("Quantity".equals(codeString))
1593          return DataType.QUANTITY;
1594        if ("Range".equals(codeString))
1595          return DataType.RANGE;
1596        if ("Ratio".equals(codeString))
1597          return DataType.RATIO;
1598        if ("Reference".equals(codeString))
1599          return DataType.REFERENCE;
1600        if ("RelatedArtifact".equals(codeString))
1601          return DataType.RELATEDARTIFACT;
1602        if ("SampledData".equals(codeString))
1603          return DataType.SAMPLEDDATA;
1604        if ("Signature".equals(codeString))
1605          return DataType.SIGNATURE;
1606        if ("SimpleQuantity".equals(codeString))
1607          return DataType.SIMPLEQUANTITY;
1608        if ("Timing".equals(codeString))
1609          return DataType.TIMING;
1610        if ("TriggerDefinition".equals(codeString))
1611          return DataType.TRIGGERDEFINITION;
1612        if ("UsageContext".equals(codeString))
1613          return DataType.USAGECONTEXT;
1614        if ("base64Binary".equals(codeString))
1615          return DataType.BASE64BINARY;
1616        if ("boolean".equals(codeString))
1617          return DataType.BOOLEAN;
1618        if ("code".equals(codeString))
1619          return DataType.CODE;
1620        if ("date".equals(codeString))
1621          return DataType.DATE;
1622        if ("dateTime".equals(codeString))
1623          return DataType.DATETIME;
1624        if ("decimal".equals(codeString))
1625          return DataType.DECIMAL;
1626        if ("id".equals(codeString))
1627          return DataType.ID;
1628        if ("instant".equals(codeString))
1629          return DataType.INSTANT;
1630        if ("integer".equals(codeString))
1631          return DataType.INTEGER;
1632        if ("markdown".equals(codeString))
1633          return DataType.MARKDOWN;
1634        if ("oid".equals(codeString))
1635          return DataType.OID;
1636        if ("positiveInt".equals(codeString))
1637          return DataType.POSITIVEINT;
1638        if ("string".equals(codeString))
1639          return DataType.STRING;
1640        if ("time".equals(codeString))
1641          return DataType.TIME;
1642        if ("unsignedInt".equals(codeString))
1643          return DataType.UNSIGNEDINT;
1644        if ("uri".equals(codeString))
1645          return DataType.URI;
1646        if ("uuid".equals(codeString))
1647          return DataType.UUID;
1648        if ("xhtml".equals(codeString))
1649          return DataType.XHTML;
1650        throw new IllegalArgumentException("Unknown DataType code '"+codeString+"'");
1651        }
1652        public Enumeration<DataType> fromType(Base code) throws FHIRException {
1653          if (code == null)
1654            return null;
1655          if (code.isEmpty())
1656            return new Enumeration<DataType>(this);
1657          String codeString = ((PrimitiveType) code).asStringValue();
1658          if (codeString == null || "".equals(codeString))
1659            return null;
1660        if ("Address".equals(codeString))
1661          return new Enumeration<DataType>(this, DataType.ADDRESS);
1662        if ("Age".equals(codeString))
1663          return new Enumeration<DataType>(this, DataType.AGE);
1664        if ("Annotation".equals(codeString))
1665          return new Enumeration<DataType>(this, DataType.ANNOTATION);
1666        if ("Attachment".equals(codeString))
1667          return new Enumeration<DataType>(this, DataType.ATTACHMENT);
1668        if ("BackboneElement".equals(codeString))
1669          return new Enumeration<DataType>(this, DataType.BACKBONEELEMENT);
1670        if ("CodeableConcept".equals(codeString))
1671          return new Enumeration<DataType>(this, DataType.CODEABLECONCEPT);
1672        if ("Coding".equals(codeString))
1673          return new Enumeration<DataType>(this, DataType.CODING);
1674        if ("ContactDetail".equals(codeString))
1675          return new Enumeration<DataType>(this, DataType.CONTACTDETAIL);
1676        if ("ContactPoint".equals(codeString))
1677          return new Enumeration<DataType>(this, DataType.CONTACTPOINT);
1678        if ("Contributor".equals(codeString))
1679          return new Enumeration<DataType>(this, DataType.CONTRIBUTOR);
1680        if ("Count".equals(codeString))
1681          return new Enumeration<DataType>(this, DataType.COUNT);
1682        if ("DataRequirement".equals(codeString))
1683          return new Enumeration<DataType>(this, DataType.DATAREQUIREMENT);
1684        if ("Distance".equals(codeString))
1685          return new Enumeration<DataType>(this, DataType.DISTANCE);
1686        if ("Dosage".equals(codeString))
1687          return new Enumeration<DataType>(this, DataType.DOSAGE);
1688        if ("Duration".equals(codeString))
1689          return new Enumeration<DataType>(this, DataType.DURATION);
1690        if ("Element".equals(codeString))
1691          return new Enumeration<DataType>(this, DataType.ELEMENT);
1692        if ("ElementDefinition".equals(codeString))
1693          return new Enumeration<DataType>(this, DataType.ELEMENTDEFINITION);
1694        if ("Extension".equals(codeString))
1695          return new Enumeration<DataType>(this, DataType.EXTENSION);
1696        if ("HumanName".equals(codeString))
1697          return new Enumeration<DataType>(this, DataType.HUMANNAME);
1698        if ("Identifier".equals(codeString))
1699          return new Enumeration<DataType>(this, DataType.IDENTIFIER);
1700        if ("Meta".equals(codeString))
1701          return new Enumeration<DataType>(this, DataType.META);
1702        if ("Money".equals(codeString))
1703          return new Enumeration<DataType>(this, DataType.MONEY);
1704        if ("Narrative".equals(codeString))
1705          return new Enumeration<DataType>(this, DataType.NARRATIVE);
1706        if ("ParameterDefinition".equals(codeString))
1707          return new Enumeration<DataType>(this, DataType.PARAMETERDEFINITION);
1708        if ("Period".equals(codeString))
1709          return new Enumeration<DataType>(this, DataType.PERIOD);
1710        if ("Quantity".equals(codeString))
1711          return new Enumeration<DataType>(this, DataType.QUANTITY);
1712        if ("Range".equals(codeString))
1713          return new Enumeration<DataType>(this, DataType.RANGE);
1714        if ("Ratio".equals(codeString))
1715          return new Enumeration<DataType>(this, DataType.RATIO);
1716        if ("Reference".equals(codeString))
1717          return new Enumeration<DataType>(this, DataType.REFERENCE);
1718        if ("RelatedArtifact".equals(codeString))
1719          return new Enumeration<DataType>(this, DataType.RELATEDARTIFACT);
1720        if ("SampledData".equals(codeString))
1721          return new Enumeration<DataType>(this, DataType.SAMPLEDDATA);
1722        if ("Signature".equals(codeString))
1723          return new Enumeration<DataType>(this, DataType.SIGNATURE);
1724        if ("SimpleQuantity".equals(codeString))
1725          return new Enumeration<DataType>(this, DataType.SIMPLEQUANTITY);
1726        if ("Timing".equals(codeString))
1727          return new Enumeration<DataType>(this, DataType.TIMING);
1728        if ("TriggerDefinition".equals(codeString))
1729          return new Enumeration<DataType>(this, DataType.TRIGGERDEFINITION);
1730        if ("UsageContext".equals(codeString))
1731          return new Enumeration<DataType>(this, DataType.USAGECONTEXT);
1732        if ("base64Binary".equals(codeString))
1733          return new Enumeration<DataType>(this, DataType.BASE64BINARY);
1734        if ("boolean".equals(codeString))
1735          return new Enumeration<DataType>(this, DataType.BOOLEAN);
1736        if ("code".equals(codeString))
1737          return new Enumeration<DataType>(this, DataType.CODE);
1738        if ("date".equals(codeString))
1739          return new Enumeration<DataType>(this, DataType.DATE);
1740        if ("dateTime".equals(codeString))
1741          return new Enumeration<DataType>(this, DataType.DATETIME);
1742        if ("decimal".equals(codeString))
1743          return new Enumeration<DataType>(this, DataType.DECIMAL);
1744        if ("id".equals(codeString))
1745          return new Enumeration<DataType>(this, DataType.ID);
1746        if ("instant".equals(codeString))
1747          return new Enumeration<DataType>(this, DataType.INSTANT);
1748        if ("integer".equals(codeString))
1749          return new Enumeration<DataType>(this, DataType.INTEGER);
1750        if ("markdown".equals(codeString))
1751          return new Enumeration<DataType>(this, DataType.MARKDOWN);
1752        if ("oid".equals(codeString))
1753          return new Enumeration<DataType>(this, DataType.OID);
1754        if ("positiveInt".equals(codeString))
1755          return new Enumeration<DataType>(this, DataType.POSITIVEINT);
1756        if ("string".equals(codeString))
1757          return new Enumeration<DataType>(this, DataType.STRING);
1758        if ("time".equals(codeString))
1759          return new Enumeration<DataType>(this, DataType.TIME);
1760        if ("unsignedInt".equals(codeString))
1761          return new Enumeration<DataType>(this, DataType.UNSIGNEDINT);
1762        if ("uri".equals(codeString))
1763          return new Enumeration<DataType>(this, DataType.URI);
1764        if ("uuid".equals(codeString))
1765          return new Enumeration<DataType>(this, DataType.UUID);
1766        if ("xhtml".equals(codeString))
1767          return new Enumeration<DataType>(this, DataType.XHTML);
1768        throw new FHIRException("Unknown DataType code '"+codeString+"'");
1769        }
1770    public String toCode(DataType code) {
1771      if (code == DataType.ADDRESS)
1772        return "Address";
1773      if (code == DataType.AGE)
1774        return "Age";
1775      if (code == DataType.ANNOTATION)
1776        return "Annotation";
1777      if (code == DataType.ATTACHMENT)
1778        return "Attachment";
1779      if (code == DataType.BACKBONEELEMENT)
1780        return "BackboneElement";
1781      if (code == DataType.CODEABLECONCEPT)
1782        return "CodeableConcept";
1783      if (code == DataType.CODING)
1784        return "Coding";
1785      if (code == DataType.CONTACTDETAIL)
1786        return "ContactDetail";
1787      if (code == DataType.CONTACTPOINT)
1788        return "ContactPoint";
1789      if (code == DataType.CONTRIBUTOR)
1790        return "Contributor";
1791      if (code == DataType.COUNT)
1792        return "Count";
1793      if (code == DataType.DATAREQUIREMENT)
1794        return "DataRequirement";
1795      if (code == DataType.DISTANCE)
1796        return "Distance";
1797      if (code == DataType.DOSAGE)
1798        return "Dosage";
1799      if (code == DataType.DURATION)
1800        return "Duration";
1801      if (code == DataType.ELEMENT)
1802        return "Element";
1803      if (code == DataType.ELEMENTDEFINITION)
1804        return "ElementDefinition";
1805      if (code == DataType.EXTENSION)
1806        return "Extension";
1807      if (code == DataType.HUMANNAME)
1808        return "HumanName";
1809      if (code == DataType.IDENTIFIER)
1810        return "Identifier";
1811      if (code == DataType.META)
1812        return "Meta";
1813      if (code == DataType.MONEY)
1814        return "Money";
1815      if (code == DataType.NARRATIVE)
1816        return "Narrative";
1817      if (code == DataType.PARAMETERDEFINITION)
1818        return "ParameterDefinition";
1819      if (code == DataType.PERIOD)
1820        return "Period";
1821      if (code == DataType.QUANTITY)
1822        return "Quantity";
1823      if (code == DataType.RANGE)
1824        return "Range";
1825      if (code == DataType.RATIO)
1826        return "Ratio";
1827      if (code == DataType.REFERENCE)
1828        return "Reference";
1829      if (code == DataType.RELATEDARTIFACT)
1830        return "RelatedArtifact";
1831      if (code == DataType.SAMPLEDDATA)
1832        return "SampledData";
1833      if (code == DataType.SIGNATURE)
1834        return "Signature";
1835      if (code == DataType.SIMPLEQUANTITY)
1836        return "SimpleQuantity";
1837      if (code == DataType.TIMING)
1838        return "Timing";
1839      if (code == DataType.TRIGGERDEFINITION)
1840        return "TriggerDefinition";
1841      if (code == DataType.USAGECONTEXT)
1842        return "UsageContext";
1843      if (code == DataType.BASE64BINARY)
1844        return "base64Binary";
1845      if (code == DataType.BOOLEAN)
1846        return "boolean";
1847      if (code == DataType.CODE)
1848        return "code";
1849      if (code == DataType.DATE)
1850        return "date";
1851      if (code == DataType.DATETIME)
1852        return "dateTime";
1853      if (code == DataType.DECIMAL)
1854        return "decimal";
1855      if (code == DataType.ID)
1856        return "id";
1857      if (code == DataType.INSTANT)
1858        return "instant";
1859      if (code == DataType.INTEGER)
1860        return "integer";
1861      if (code == DataType.MARKDOWN)
1862        return "markdown";
1863      if (code == DataType.OID)
1864        return "oid";
1865      if (code == DataType.POSITIVEINT)
1866        return "positiveInt";
1867      if (code == DataType.STRING)
1868        return "string";
1869      if (code == DataType.TIME)
1870        return "time";
1871      if (code == DataType.UNSIGNEDINT)
1872        return "unsignedInt";
1873      if (code == DataType.URI)
1874        return "uri";
1875      if (code == DataType.UUID)
1876        return "uuid";
1877      if (code == DataType.XHTML)
1878        return "xhtml";
1879      return "?";
1880      }
1881    public String toSystem(DataType code) {
1882      return code.getSystem();
1883      }
1884    }
1885
1886    public enum DocumentReferenceStatus {
1887        /**
1888         * This is the current reference for this document.
1889         */
1890        CURRENT, 
1891        /**
1892         * This reference has been superseded by another reference.
1893         */
1894        SUPERSEDED, 
1895        /**
1896         * This reference was created in error.
1897         */
1898        ENTEREDINERROR, 
1899        /**
1900         * added to help the parsers
1901         */
1902        NULL;
1903        public static DocumentReferenceStatus fromCode(String codeString) throws FHIRException {
1904            if (codeString == null || "".equals(codeString))
1905                return null;
1906        if ("current".equals(codeString))
1907          return CURRENT;
1908        if ("superseded".equals(codeString))
1909          return SUPERSEDED;
1910        if ("entered-in-error".equals(codeString))
1911          return ENTEREDINERROR;
1912        throw new FHIRException("Unknown DocumentReferenceStatus code '"+codeString+"'");
1913        }
1914        public String toCode() {
1915          switch (this) {
1916            case CURRENT: return "current";
1917            case SUPERSEDED: return "superseded";
1918            case ENTEREDINERROR: return "entered-in-error";
1919            default: return "?";
1920          }
1921        }
1922        public String getSystem() {
1923          switch (this) {
1924            case CURRENT: return "http://hl7.org/fhir/document-reference-status";
1925            case SUPERSEDED: return "http://hl7.org/fhir/document-reference-status";
1926            case ENTEREDINERROR: return "http://hl7.org/fhir/document-reference-status";
1927            default: return "?";
1928          }
1929        }
1930        public String getDefinition() {
1931          switch (this) {
1932            case CURRENT: return "This is the current reference for this document.";
1933            case SUPERSEDED: return "This reference has been superseded by another reference.";
1934            case ENTEREDINERROR: return "This reference was created in error.";
1935            default: return "?";
1936          }
1937        }
1938        public String getDisplay() {
1939          switch (this) {
1940            case CURRENT: return "Current";
1941            case SUPERSEDED: return "Superseded";
1942            case ENTEREDINERROR: return "Entered in Error";
1943            default: return "?";
1944          }
1945        }
1946    }
1947
1948  public static class DocumentReferenceStatusEnumFactory implements EnumFactory<DocumentReferenceStatus> {
1949    public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException {
1950      if (codeString == null || "".equals(codeString))
1951            if (codeString == null || "".equals(codeString))
1952                return null;
1953        if ("current".equals(codeString))
1954          return DocumentReferenceStatus.CURRENT;
1955        if ("superseded".equals(codeString))
1956          return DocumentReferenceStatus.SUPERSEDED;
1957        if ("entered-in-error".equals(codeString))
1958          return DocumentReferenceStatus.ENTEREDINERROR;
1959        throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'");
1960        }
1961        public Enumeration<DocumentReferenceStatus> fromType(Base code) throws FHIRException {
1962          if (code == null)
1963            return null;
1964          if (code.isEmpty())
1965            return new Enumeration<DocumentReferenceStatus>(this);
1966          String codeString = ((PrimitiveType) code).asStringValue();
1967          if (codeString == null || "".equals(codeString))
1968            return null;
1969        if ("current".equals(codeString))
1970          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.CURRENT);
1971        if ("superseded".equals(codeString))
1972          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.SUPERSEDED);
1973        if ("entered-in-error".equals(codeString))
1974          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.ENTEREDINERROR);
1975        throw new FHIRException("Unknown DocumentReferenceStatus code '"+codeString+"'");
1976        }
1977    public String toCode(DocumentReferenceStatus code) {
1978      if (code == DocumentReferenceStatus.CURRENT)
1979        return "current";
1980      if (code == DocumentReferenceStatus.SUPERSEDED)
1981        return "superseded";
1982      if (code == DocumentReferenceStatus.ENTEREDINERROR)
1983        return "entered-in-error";
1984      return "?";
1985      }
1986    public String toSystem(DocumentReferenceStatus code) {
1987      return code.getSystem();
1988      }
1989    }
1990
1991    public enum FHIRAllTypes {
1992        /**
1993         * 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.
1994         */
1995        ADDRESS, 
1996        /**
1997         * A duration of time during which an organism (or a process) has existed.
1998         */
1999        AGE, 
2000        /**
2001         * A  text note which also  contains information about who made the statement and when.
2002         */
2003        ANNOTATION, 
2004        /**
2005         * For referring to data content defined in other formats.
2006         */
2007        ATTACHMENT, 
2008        /**
2009         * Base definition for all elements that are defined inside a resource - but not those in a data type.
2010         */
2011        BACKBONEELEMENT, 
2012        /**
2013         * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
2014         */
2015        CODEABLECONCEPT, 
2016        /**
2017         * A reference to a code defined by a terminology system.
2018         */
2019        CODING, 
2020        /**
2021         * Specifies contact information for a person or organization.
2022         */
2023        CONTACTDETAIL, 
2024        /**
2025         * Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
2026         */
2027        CONTACTPOINT, 
2028        /**
2029         * A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.
2030         */
2031        CONTRIBUTOR, 
2032        /**
2033         * 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.
2034         */
2035        COUNT, 
2036        /**
2037         * Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.
2038         */
2039        DATAREQUIREMENT, 
2040        /**
2041         * A length - a value with a unit that is a physical distance.
2042         */
2043        DISTANCE, 
2044        /**
2045         * Indicates how the medication is/was taken or should be taken by the patient.
2046         */
2047        DOSAGE, 
2048        /**
2049         * A length of time.
2050         */
2051        DURATION, 
2052        /**
2053         * Base definition for all elements in a resource.
2054         */
2055        ELEMENT, 
2056        /**
2057         * Captures constraints on each element within the resource, profile, or extension.
2058         */
2059        ELEMENTDEFINITION, 
2060        /**
2061         * Optional Extension Element - found in all resources.
2062         */
2063        EXTENSION, 
2064        /**
2065         * A human's name with the ability to identify parts and usage.
2066         */
2067        HUMANNAME, 
2068        /**
2069         * A technical identifier - identifies some entity uniquely and unambiguously.
2070         */
2071        IDENTIFIER, 
2072        /**
2073         * The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.
2074         */
2075        META, 
2076        /**
2077         * An amount of economic utility in some recognized currency.
2078         */
2079        MONEY, 
2080        /**
2081         * A human-readable formatted text, including images.
2082         */
2083        NARRATIVE, 
2084        /**
2085         * 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.
2086         */
2087        PARAMETERDEFINITION, 
2088        /**
2089         * A time period defined by a start and end date and optionally time.
2090         */
2091        PERIOD, 
2092        /**
2093         * 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.
2094         */
2095        QUANTITY, 
2096        /**
2097         * A set of ordered Quantities defined by a low and high limit.
2098         */
2099        RANGE, 
2100        /**
2101         * A relationship of two Quantity values - expressed as a numerator and a denominator.
2102         */
2103        RATIO, 
2104        /**
2105         * A reference from one resource to another.
2106         */
2107        REFERENCE, 
2108        /**
2109         * Related artifacts such as additional documentation, justification, or bibliographic references.
2110         */
2111        RELATEDARTIFACT, 
2112        /**
2113         * A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
2114         */
2115        SAMPLEDDATA, 
2116        /**
2117         * A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.
2118         */
2119        SIGNATURE, 
2120        /**
2121         * null
2122         */
2123        SIMPLEQUANTITY, 
2124        /**
2125         * 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.
2126         */
2127        TIMING, 
2128        /**
2129         * A description of a triggering event.
2130         */
2131        TRIGGERDEFINITION, 
2132        /**
2133         * 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).
2134         */
2135        USAGECONTEXT, 
2136        /**
2137         * A stream of bytes
2138         */
2139        BASE64BINARY, 
2140        /**
2141         * Value of "true" or "false"
2142         */
2143        BOOLEAN, 
2144        /**
2145         * 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
2146         */
2147        CODE, 
2148        /**
2149         * 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.
2150         */
2151        DATE, 
2152        /**
2153         * 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.
2154         */
2155        DATETIME, 
2156        /**
2157         * A rational number with implicit precision
2158         */
2159        DECIMAL, 
2160        /**
2161         * 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.
2162         */
2163        ID, 
2164        /**
2165         * An instant in time - known at least to the second
2166         */
2167        INSTANT, 
2168        /**
2169         * A whole number
2170         */
2171        INTEGER, 
2172        /**
2173         * A string that may contain markdown syntax for optional processing by a mark down presentation engine
2174         */
2175        MARKDOWN, 
2176        /**
2177         * An OID represented as a URI
2178         */
2179        OID, 
2180        /**
2181         * An integer with a value that is positive (e.g. >0)
2182         */
2183        POSITIVEINT, 
2184        /**
2185         * A sequence of Unicode characters
2186         */
2187        STRING, 
2188        /**
2189         * A time during the day, with no date specified
2190         */
2191        TIME, 
2192        /**
2193         * An integer with a value that is not negative (e.g. >= 0)
2194         */
2195        UNSIGNEDINT, 
2196        /**
2197         * String of characters used to identify a name or a resource
2198         */
2199        URI, 
2200        /**
2201         * A UUID, represented as a URI
2202         */
2203        UUID, 
2204        /**
2205         * XHTML format, as defined by W3C, but restricted usage (mainly, no active content)
2206         */
2207        XHTML, 
2208        /**
2209         * 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.
2210         */
2211        ACCOUNT, 
2212        /**
2213         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
2214         */
2215        ACTIVITYDEFINITION, 
2216        /**
2217         * 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.
2218         */
2219        ADVERSEEVENT, 
2220        /**
2221         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
2222         */
2223        ALLERGYINTOLERANCE, 
2224        /**
2225         * 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).
2226         */
2227        APPOINTMENT, 
2228        /**
2229         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
2230         */
2231        APPOINTMENTRESPONSE, 
2232        /**
2233         * 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.
2234         */
2235        AUDITEVENT, 
2236        /**
2237         * 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.
2238         */
2239        BASIC, 
2240        /**
2241         * A binary resource can contain any content, whether text, image, pdf, zip archive, etc.
2242         */
2243        BINARY, 
2244        /**
2245         * Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
2246         */
2247        BODYSITE, 
2248        /**
2249         * A container for a collection of resources.
2250         */
2251        BUNDLE, 
2252        /**
2253         * A Capability Statement 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.
2254         */
2255        CAPABILITYSTATEMENT, 
2256        /**
2257         * 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.
2258         */
2259        CAREPLAN, 
2260        /**
2261         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
2262         */
2263        CARETEAM, 
2264        /**
2265         * 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.
2266         */
2267        CHARGEITEM, 
2268        /**
2269         * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
2270         */
2271        CLAIM, 
2272        /**
2273         * This resource provides the adjudication details from the processing of a Claim resource.
2274         */
2275        CLAIMRESPONSE, 
2276        /**
2277         * 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.
2278         */
2279        CLINICALIMPRESSION, 
2280        /**
2281         * A code system resource specifies a set of codes drawn from one or more code systems.
2282         */
2283        CODESYSTEM, 
2284        /**
2285         * An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.
2286         */
2287        COMMUNICATION, 
2288        /**
2289         * 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.
2290         */
2291        COMMUNICATIONREQUEST, 
2292        /**
2293         * A compartment definition that defines how resources are accessed on a server.
2294         */
2295        COMPARTMENTDEFINITION, 
2296        /**
2297         * A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.
2298         */
2299        COMPOSITION, 
2300        /**
2301         * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.
2302         */
2303        CONCEPTMAP, 
2304        /**
2305         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
2306         */
2307        CONDITION, 
2308        /**
2309         * A record of a healthcare consumer’s policy 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.
2310         */
2311        CONSENT, 
2312        /**
2313         * A formal agreement between parties regarding the conduct of business, exchange of information or other matters.
2314         */
2315        CONTRACT, 
2316        /**
2317         * Financial instrument which may be used to reimburse or pay for health care products and services.
2318         */
2319        COVERAGE, 
2320        /**
2321         * The formal description of a single piece of information that can be gathered and reported.
2322         */
2323        DATAELEMENT, 
2324        /**
2325         * 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.
2326         */
2327        DETECTEDISSUE, 
2328        /**
2329         * This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices include durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.
2330         */
2331        DEVICE, 
2332        /**
2333         * The characteristics, operational status and capabilities of a medical-related component of a medical device.
2334         */
2335        DEVICECOMPONENT, 
2336        /**
2337         * Describes a measurement, calculation or setting capability of a medical device.
2338         */
2339        DEVICEMETRIC, 
2340        /**
2341         * 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.
2342         */
2343        DEVICEREQUEST, 
2344        /**
2345         * 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.
2346         */
2347        DEVICEUSESTATEMENT, 
2348        /**
2349         * 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.
2350         */
2351        DIAGNOSTICREPORT, 
2352        /**
2353         * A collection of documents compiled for a purpose together with metadata that applies to the collection.
2354         */
2355        DOCUMENTMANIFEST, 
2356        /**
2357         * A reference to a document.
2358         */
2359        DOCUMENTREFERENCE, 
2360        /**
2361         * A resource that includes narrative, extensions, and contained resources.
2362         */
2363        DOMAINRESOURCE, 
2364        /**
2365         * The EligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an EligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.
2366         */
2367        ELIGIBILITYREQUEST, 
2368        /**
2369         * This resource provides eligibility and plan details from the processing of an Eligibility resource.
2370         */
2371        ELIGIBILITYRESPONSE, 
2372        /**
2373         * 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.
2374         */
2375        ENCOUNTER, 
2376        /**
2377         * 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.
2378         */
2379        ENDPOINT, 
2380        /**
2381         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
2382         */
2383        ENROLLMENTREQUEST, 
2384        /**
2385         * This resource provides enrollment and plan details from the processing of an Enrollment resource.
2386         */
2387        ENROLLMENTRESPONSE, 
2388        /**
2389         * 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.
2390         */
2391        EPISODEOFCARE, 
2392        /**
2393         * Resource to define constraints on the Expansion of a FHIR ValueSet.
2394         */
2395        EXPANSIONPROFILE, 
2396        /**
2397         * 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.
2398         */
2399        EXPLANATIONOFBENEFIT, 
2400        /**
2401         * Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.
2402         */
2403        FAMILYMEMBERHISTORY, 
2404        /**
2405         * Prospective warnings of potential issues when providing care to the patient.
2406         */
2407        FLAG, 
2408        /**
2409         * 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.
2410         */
2411        GOAL, 
2412        /**
2413         * 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.
2414         */
2415        GRAPHDEFINITION, 
2416        /**
2417         * 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.
2418         */
2419        GROUP, 
2420        /**
2421         * 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.
2422         */
2423        GUIDANCERESPONSE, 
2424        /**
2425         * The details of a healthcare service available at a location.
2426         */
2427        HEALTHCARESERVICE, 
2428        /**
2429         * A text description of the DICOM SOP instances selected in the ImagingManifest; or the reason for, or significance of, the selection.
2430         */
2431        IMAGINGMANIFEST, 
2432        /**
2433         * 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.
2434         */
2435        IMAGINGSTUDY, 
2436        /**
2437         * Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
2438         */
2439        IMMUNIZATION, 
2440        /**
2441         * A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.
2442         */
2443        IMMUNIZATIONRECOMMENDATION, 
2444        /**
2445         * A set of rules of how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
2446         */
2447        IMPLEMENTATIONGUIDE, 
2448        /**
2449         * 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.
2450         */
2451        LIBRARY, 
2452        /**
2453         * Identifies two or more records (resource instances) that are referring to the same real-world "occurrence".
2454         */
2455        LINKAGE, 
2456        /**
2457         * A set of information summarized from a list of other resources.
2458         */
2459        LIST, 
2460        /**
2461         * Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.
2462         */
2463        LOCATION, 
2464        /**
2465         * The Measure resource provides the definition of a quality measure.
2466         */
2467        MEASURE, 
2468        /**
2469         * The MeasureReport resource contains the results of evaluating a measure.
2470         */
2471        MEASUREREPORT, 
2472        /**
2473         * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
2474         */
2475        MEDIA, 
2476        /**
2477         * This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.
2478         */
2479        MEDICATION, 
2480        /**
2481         * 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.
2482         */
2483        MEDICATIONADMINISTRATION, 
2484        /**
2485         * 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.
2486         */
2487        MEDICATIONDISPENSE, 
2488        /**
2489         * 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.
2490         */
2491        MEDICATIONREQUEST, 
2492        /**
2493         * 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 
2494
2495The 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.
2496         */
2497        MEDICATIONSTATEMENT, 
2498        /**
2499         * 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.
2500         */
2501        MESSAGEDEFINITION, 
2502        /**
2503         * 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.
2504         */
2505        MESSAGEHEADER, 
2506        /**
2507         * 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.
2508         */
2509        NAMINGSYSTEM, 
2510        /**
2511         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
2512         */
2513        NUTRITIONORDER, 
2514        /**
2515         * Measurements and simple assertions made about a patient, device or other subject.
2516         */
2517        OBSERVATION, 
2518        /**
2519         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
2520         */
2521        OPERATIONDEFINITION, 
2522        /**
2523         * A collection of error, warning or information messages that result from a system action.
2524         */
2525        OPERATIONOUTCOME, 
2526        /**
2527         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.
2528         */
2529        ORGANIZATION, 
2530        /**
2531         * This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.
2532         */
2533        PARAMETERS, 
2534        /**
2535         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
2536         */
2537        PATIENT, 
2538        /**
2539         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
2540         */
2541        PAYMENTNOTICE, 
2542        /**
2543         * This resource provides payment details and claim references supporting a bulk payment.
2544         */
2545        PAYMENTRECONCILIATION, 
2546        /**
2547         * Demographics and administrative information about a person independent of a specific health-related context.
2548         */
2549        PERSON, 
2550        /**
2551         * 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.
2552         */
2553        PLANDEFINITION, 
2554        /**
2555         * A person who is directly or indirectly involved in the provisioning of healthcare.
2556         */
2557        PRACTITIONER, 
2558        /**
2559         * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
2560         */
2561        PRACTITIONERROLE, 
2562        /**
2563         * An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.
2564         */
2565        PROCEDURE, 
2566        /**
2567         * A record of a request for diagnostic investigations, treatments, or operations to be performed.
2568         */
2569        PROCEDUREREQUEST, 
2570        /**
2571         * This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.
2572         */
2573        PROCESSREQUEST, 
2574        /**
2575         * This resource provides processing status, errors and notes from the processing of a resource.
2576         */
2577        PROCESSRESPONSE, 
2578        /**
2579         * 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.
2580         */
2581        PROVENANCE, 
2582        /**
2583         * 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.
2584         */
2585        QUESTIONNAIRE, 
2586        /**
2587         * 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.
2588         */
2589        QUESTIONNAIRERESPONSE, 
2590        /**
2591         * Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.
2592         */
2593        REFERRALREQUEST, 
2594        /**
2595         * 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.
2596         */
2597        RELATEDPERSON, 
2598        /**
2599         * 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".
2600         */
2601        REQUESTGROUP, 
2602        /**
2603         * 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.
2604         */
2605        RESEARCHSTUDY, 
2606        /**
2607         * 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.
2608         */
2609        RESEARCHSUBJECT, 
2610        /**
2611         * This is the base resource type for everything.
2612         */
2613        RESOURCE, 
2614        /**
2615         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
2616         */
2617        RISKASSESSMENT, 
2618        /**
2619         * A container for slots of time that may be available for booking appointments.
2620         */
2621        SCHEDULE, 
2622        /**
2623         * A search parameter that defines a named search item that can be used to search/filter on a resource.
2624         */
2625        SEARCHPARAMETER, 
2626        /**
2627         * Raw data describing a biological sequence.
2628         */
2629        SEQUENCE, 
2630        /**
2631         * The ServiceDefinition describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.
2632         */
2633        SERVICEDEFINITION, 
2634        /**
2635         * A slot of time on a schedule that may be available for booking appointments.
2636         */
2637        SLOT, 
2638        /**
2639         * A sample to be used for analysis.
2640         */
2641        SPECIMEN, 
2642        /**
2643         * 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.
2644         */
2645        STRUCTUREDEFINITION, 
2646        /**
2647         * A Map of relationships between 2 structures that can be used to transform data.
2648         */
2649        STRUCTUREMAP, 
2650        /**
2651         * The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system is able to take an appropriate action.
2652         */
2653        SUBSCRIPTION, 
2654        /**
2655         * A homogeneous material with a definite composition.
2656         */
2657        SUBSTANCE, 
2658        /**
2659         * Record of delivery of what is supplied.
2660         */
2661        SUPPLYDELIVERY, 
2662        /**
2663         * A record of a request for a medication, substance or device used in the healthcare setting.
2664         */
2665        SUPPLYREQUEST, 
2666        /**
2667         * A task to be performed.
2668         */
2669        TASK, 
2670        /**
2671         * A summary of information based on the results of executing a TestScript.
2672         */
2673        TESTREPORT, 
2674        /**
2675         * A structured set of tests against a FHIR server implementation to determine compliance against the FHIR specification.
2676         */
2677        TESTSCRIPT, 
2678        /**
2679         * A value set specifies a set of codes drawn from one or more code systems.
2680         */
2681        VALUESET, 
2682        /**
2683         * An authorization for the supply of glasses and/or contact lenses to a patient.
2684         */
2685        VISIONPRESCRIPTION, 
2686        /**
2687         * A place holder that means any kind of data type
2688         */
2689        TYPE, 
2690        /**
2691         * A place holder that means any kind of resource
2692         */
2693        ANY, 
2694        /**
2695         * added to help the parsers
2696         */
2697        NULL;
2698        public static FHIRAllTypes fromCode(String codeString) throws FHIRException {
2699            if (codeString == null || "".equals(codeString))
2700                return null;
2701        if ("Address".equals(codeString))
2702          return ADDRESS;
2703        if ("Age".equals(codeString))
2704          return AGE;
2705        if ("Annotation".equals(codeString))
2706          return ANNOTATION;
2707        if ("Attachment".equals(codeString))
2708          return ATTACHMENT;
2709        if ("BackboneElement".equals(codeString))
2710          return BACKBONEELEMENT;
2711        if ("CodeableConcept".equals(codeString))
2712          return CODEABLECONCEPT;
2713        if ("Coding".equals(codeString))
2714          return CODING;
2715        if ("ContactDetail".equals(codeString))
2716          return CONTACTDETAIL;
2717        if ("ContactPoint".equals(codeString))
2718          return CONTACTPOINT;
2719        if ("Contributor".equals(codeString))
2720          return CONTRIBUTOR;
2721        if ("Count".equals(codeString))
2722          return COUNT;
2723        if ("DataRequirement".equals(codeString))
2724          return DATAREQUIREMENT;
2725        if ("Distance".equals(codeString))
2726          return DISTANCE;
2727        if ("Dosage".equals(codeString))
2728          return DOSAGE;
2729        if ("Duration".equals(codeString))
2730          return DURATION;
2731        if ("Element".equals(codeString))
2732          return ELEMENT;
2733        if ("ElementDefinition".equals(codeString))
2734          return ELEMENTDEFINITION;
2735        if ("Extension".equals(codeString))
2736          return EXTENSION;
2737        if ("HumanName".equals(codeString))
2738          return HUMANNAME;
2739        if ("Identifier".equals(codeString))
2740          return IDENTIFIER;
2741        if ("Meta".equals(codeString))
2742          return META;
2743        if ("Money".equals(codeString))
2744          return MONEY;
2745        if ("Narrative".equals(codeString))
2746          return NARRATIVE;
2747        if ("ParameterDefinition".equals(codeString))
2748          return PARAMETERDEFINITION;
2749        if ("Period".equals(codeString))
2750          return PERIOD;
2751        if ("Quantity".equals(codeString))
2752          return QUANTITY;
2753        if ("Range".equals(codeString))
2754          return RANGE;
2755        if ("Ratio".equals(codeString))
2756          return RATIO;
2757        if ("Reference".equals(codeString))
2758          return REFERENCE;
2759        if ("RelatedArtifact".equals(codeString))
2760          return RELATEDARTIFACT;
2761        if ("SampledData".equals(codeString))
2762          return SAMPLEDDATA;
2763        if ("Signature".equals(codeString))
2764          return SIGNATURE;
2765        if ("SimpleQuantity".equals(codeString))
2766          return SIMPLEQUANTITY;
2767        if ("Timing".equals(codeString))
2768          return TIMING;
2769        if ("TriggerDefinition".equals(codeString))
2770          return TRIGGERDEFINITION;
2771        if ("UsageContext".equals(codeString))
2772          return USAGECONTEXT;
2773        if ("base64Binary".equals(codeString))
2774          return BASE64BINARY;
2775        if ("boolean".equals(codeString))
2776          return BOOLEAN;
2777        if ("code".equals(codeString))
2778          return CODE;
2779        if ("date".equals(codeString))
2780          return DATE;
2781        if ("dateTime".equals(codeString))
2782          return DATETIME;
2783        if ("decimal".equals(codeString))
2784          return DECIMAL;
2785        if ("id".equals(codeString))
2786          return ID;
2787        if ("instant".equals(codeString))
2788          return INSTANT;
2789        if ("integer".equals(codeString))
2790          return INTEGER;
2791        if ("markdown".equals(codeString))
2792          return MARKDOWN;
2793        if ("oid".equals(codeString))
2794          return OID;
2795        if ("positiveInt".equals(codeString))
2796          return POSITIVEINT;
2797        if ("string".equals(codeString))
2798          return STRING;
2799        if ("time".equals(codeString))
2800          return TIME;
2801        if ("unsignedInt".equals(codeString))
2802          return UNSIGNEDINT;
2803        if ("uri".equals(codeString))
2804          return URI;
2805        if ("uuid".equals(codeString))
2806          return UUID;
2807        if ("xhtml".equals(codeString))
2808          return XHTML;
2809        if ("Account".equals(codeString))
2810          return ACCOUNT;
2811        if ("ActivityDefinition".equals(codeString))
2812          return ACTIVITYDEFINITION;
2813        if ("AdverseEvent".equals(codeString))
2814          return ADVERSEEVENT;
2815        if ("AllergyIntolerance".equals(codeString))
2816          return ALLERGYINTOLERANCE;
2817        if ("Appointment".equals(codeString))
2818          return APPOINTMENT;
2819        if ("AppointmentResponse".equals(codeString))
2820          return APPOINTMENTRESPONSE;
2821        if ("AuditEvent".equals(codeString))
2822          return AUDITEVENT;
2823        if ("Basic".equals(codeString))
2824          return BASIC;
2825        if ("Binary".equals(codeString))
2826          return BINARY;
2827        if ("BodySite".equals(codeString))
2828          return BODYSITE;
2829        if ("Bundle".equals(codeString))
2830          return BUNDLE;
2831        if ("CapabilityStatement".equals(codeString))
2832          return CAPABILITYSTATEMENT;
2833        if ("CarePlan".equals(codeString))
2834          return CAREPLAN;
2835        if ("CareTeam".equals(codeString))
2836          return CARETEAM;
2837        if ("ChargeItem".equals(codeString))
2838          return CHARGEITEM;
2839        if ("Claim".equals(codeString))
2840          return CLAIM;
2841        if ("ClaimResponse".equals(codeString))
2842          return CLAIMRESPONSE;
2843        if ("ClinicalImpression".equals(codeString))
2844          return CLINICALIMPRESSION;
2845        if ("CodeSystem".equals(codeString))
2846          return CODESYSTEM;
2847        if ("Communication".equals(codeString))
2848          return COMMUNICATION;
2849        if ("CommunicationRequest".equals(codeString))
2850          return COMMUNICATIONREQUEST;
2851        if ("CompartmentDefinition".equals(codeString))
2852          return COMPARTMENTDEFINITION;
2853        if ("Composition".equals(codeString))
2854          return COMPOSITION;
2855        if ("ConceptMap".equals(codeString))
2856          return CONCEPTMAP;
2857        if ("Condition".equals(codeString))
2858          return CONDITION;
2859        if ("Consent".equals(codeString))
2860          return CONSENT;
2861        if ("Contract".equals(codeString))
2862          return CONTRACT;
2863        if ("Coverage".equals(codeString))
2864          return COVERAGE;
2865        if ("DataElement".equals(codeString))
2866          return DATAELEMENT;
2867        if ("DetectedIssue".equals(codeString))
2868          return DETECTEDISSUE;
2869        if ("Device".equals(codeString))
2870          return DEVICE;
2871        if ("DeviceComponent".equals(codeString))
2872          return DEVICECOMPONENT;
2873        if ("DeviceMetric".equals(codeString))
2874          return DEVICEMETRIC;
2875        if ("DeviceRequest".equals(codeString))
2876          return DEVICEREQUEST;
2877        if ("DeviceUseStatement".equals(codeString))
2878          return DEVICEUSESTATEMENT;
2879        if ("DiagnosticReport".equals(codeString))
2880          return DIAGNOSTICREPORT;
2881        if ("DocumentManifest".equals(codeString))
2882          return DOCUMENTMANIFEST;
2883        if ("DocumentReference".equals(codeString))
2884          return DOCUMENTREFERENCE;
2885        if ("DomainResource".equals(codeString))
2886          return DOMAINRESOURCE;
2887        if ("EligibilityRequest".equals(codeString))
2888          return ELIGIBILITYREQUEST;
2889        if ("EligibilityResponse".equals(codeString))
2890          return ELIGIBILITYRESPONSE;
2891        if ("Encounter".equals(codeString))
2892          return ENCOUNTER;
2893        if ("Endpoint".equals(codeString))
2894          return ENDPOINT;
2895        if ("EnrollmentRequest".equals(codeString))
2896          return ENROLLMENTREQUEST;
2897        if ("EnrollmentResponse".equals(codeString))
2898          return ENROLLMENTRESPONSE;
2899        if ("EpisodeOfCare".equals(codeString))
2900          return EPISODEOFCARE;
2901        if ("ExpansionProfile".equals(codeString))
2902          return EXPANSIONPROFILE;
2903        if ("ExplanationOfBenefit".equals(codeString))
2904          return EXPLANATIONOFBENEFIT;
2905        if ("FamilyMemberHistory".equals(codeString))
2906          return FAMILYMEMBERHISTORY;
2907        if ("Flag".equals(codeString))
2908          return FLAG;
2909        if ("Goal".equals(codeString))
2910          return GOAL;
2911        if ("GraphDefinition".equals(codeString))
2912          return GRAPHDEFINITION;
2913        if ("Group".equals(codeString))
2914          return GROUP;
2915        if ("GuidanceResponse".equals(codeString))
2916          return GUIDANCERESPONSE;
2917        if ("HealthcareService".equals(codeString))
2918          return HEALTHCARESERVICE;
2919        if ("ImagingManifest".equals(codeString))
2920          return IMAGINGMANIFEST;
2921        if ("ImagingStudy".equals(codeString))
2922          return IMAGINGSTUDY;
2923        if ("Immunization".equals(codeString))
2924          return IMMUNIZATION;
2925        if ("ImmunizationRecommendation".equals(codeString))
2926          return IMMUNIZATIONRECOMMENDATION;
2927        if ("ImplementationGuide".equals(codeString))
2928          return IMPLEMENTATIONGUIDE;
2929        if ("Library".equals(codeString))
2930          return LIBRARY;
2931        if ("Linkage".equals(codeString))
2932          return LINKAGE;
2933        if ("List".equals(codeString))
2934          return LIST;
2935        if ("Location".equals(codeString))
2936          return LOCATION;
2937        if ("Measure".equals(codeString))
2938          return MEASURE;
2939        if ("MeasureReport".equals(codeString))
2940          return MEASUREREPORT;
2941        if ("Media".equals(codeString))
2942          return MEDIA;
2943        if ("Medication".equals(codeString))
2944          return MEDICATION;
2945        if ("MedicationAdministration".equals(codeString))
2946          return MEDICATIONADMINISTRATION;
2947        if ("MedicationDispense".equals(codeString))
2948          return MEDICATIONDISPENSE;
2949        if ("MedicationRequest".equals(codeString))
2950          return MEDICATIONREQUEST;
2951        if ("MedicationStatement".equals(codeString))
2952          return MEDICATIONSTATEMENT;
2953        if ("MessageDefinition".equals(codeString))
2954          return MESSAGEDEFINITION;
2955        if ("MessageHeader".equals(codeString))
2956          return MESSAGEHEADER;
2957        if ("NamingSystem".equals(codeString))
2958          return NAMINGSYSTEM;
2959        if ("NutritionOrder".equals(codeString))
2960          return NUTRITIONORDER;
2961        if ("Observation".equals(codeString))
2962          return OBSERVATION;
2963        if ("OperationDefinition".equals(codeString))
2964          return OPERATIONDEFINITION;
2965        if ("OperationOutcome".equals(codeString))
2966          return OPERATIONOUTCOME;
2967        if ("Organization".equals(codeString))
2968          return ORGANIZATION;
2969        if ("Parameters".equals(codeString))
2970          return PARAMETERS;
2971        if ("Patient".equals(codeString))
2972          return PATIENT;
2973        if ("PaymentNotice".equals(codeString))
2974          return PAYMENTNOTICE;
2975        if ("PaymentReconciliation".equals(codeString))
2976          return PAYMENTRECONCILIATION;
2977        if ("Person".equals(codeString))
2978          return PERSON;
2979        if ("PlanDefinition".equals(codeString))
2980          return PLANDEFINITION;
2981        if ("Practitioner".equals(codeString))
2982          return PRACTITIONER;
2983        if ("PractitionerRole".equals(codeString))
2984          return PRACTITIONERROLE;
2985        if ("Procedure".equals(codeString))
2986          return PROCEDURE;
2987        if ("ProcedureRequest".equals(codeString))
2988          return PROCEDUREREQUEST;
2989        if ("ProcessRequest".equals(codeString))
2990          return PROCESSREQUEST;
2991        if ("ProcessResponse".equals(codeString))
2992          return PROCESSRESPONSE;
2993        if ("Provenance".equals(codeString))
2994          return PROVENANCE;
2995        if ("Questionnaire".equals(codeString))
2996          return QUESTIONNAIRE;
2997        if ("QuestionnaireResponse".equals(codeString))
2998          return QUESTIONNAIRERESPONSE;
2999        if ("ReferralRequest".equals(codeString))
3000          return REFERRALREQUEST;
3001        if ("RelatedPerson".equals(codeString))
3002          return RELATEDPERSON;
3003        if ("RequestGroup".equals(codeString))
3004          return REQUESTGROUP;
3005        if ("ResearchStudy".equals(codeString))
3006          return RESEARCHSTUDY;
3007        if ("ResearchSubject".equals(codeString))
3008          return RESEARCHSUBJECT;
3009        if ("Resource".equals(codeString))
3010          return RESOURCE;
3011        if ("RiskAssessment".equals(codeString))
3012          return RISKASSESSMENT;
3013        if ("Schedule".equals(codeString))
3014          return SCHEDULE;
3015        if ("SearchParameter".equals(codeString))
3016          return SEARCHPARAMETER;
3017        if ("Sequence".equals(codeString))
3018          return SEQUENCE;
3019        if ("ServiceDefinition".equals(codeString))
3020          return SERVICEDEFINITION;
3021        if ("Slot".equals(codeString))
3022          return SLOT;
3023        if ("Specimen".equals(codeString))
3024          return SPECIMEN;
3025        if ("StructureDefinition".equals(codeString))
3026          return STRUCTUREDEFINITION;
3027        if ("StructureMap".equals(codeString))
3028          return STRUCTUREMAP;
3029        if ("Subscription".equals(codeString))
3030          return SUBSCRIPTION;
3031        if ("Substance".equals(codeString))
3032          return SUBSTANCE;
3033        if ("SupplyDelivery".equals(codeString))
3034          return SUPPLYDELIVERY;
3035        if ("SupplyRequest".equals(codeString))
3036          return SUPPLYREQUEST;
3037        if ("Task".equals(codeString))
3038          return TASK;
3039        if ("TestReport".equals(codeString))
3040          return TESTREPORT;
3041        if ("TestScript".equals(codeString))
3042          return TESTSCRIPT;
3043        if ("ValueSet".equals(codeString))
3044          return VALUESET;
3045        if ("VisionPrescription".equals(codeString))
3046          return VISIONPRESCRIPTION;
3047        if ("Type".equals(codeString))
3048          return TYPE;
3049        if ("Any".equals(codeString))
3050          return ANY;
3051        throw new FHIRException("Unknown FHIRAllTypes code '"+codeString+"'");
3052        }
3053        public String toCode() {
3054          switch (this) {
3055            case ADDRESS: return "Address";
3056            case AGE: return "Age";
3057            case ANNOTATION: return "Annotation";
3058            case ATTACHMENT: return "Attachment";
3059            case BACKBONEELEMENT: return "BackboneElement";
3060            case CODEABLECONCEPT: return "CodeableConcept";
3061            case CODING: return "Coding";
3062            case CONTACTDETAIL: return "ContactDetail";
3063            case CONTACTPOINT: return "ContactPoint";
3064            case CONTRIBUTOR: return "Contributor";
3065            case COUNT: return "Count";
3066            case DATAREQUIREMENT: return "DataRequirement";
3067            case DISTANCE: return "Distance";
3068            case DOSAGE: return "Dosage";
3069            case DURATION: return "Duration";
3070            case ELEMENT: return "Element";
3071            case ELEMENTDEFINITION: return "ElementDefinition";
3072            case EXTENSION: return "Extension";
3073            case HUMANNAME: return "HumanName";
3074            case IDENTIFIER: return "Identifier";
3075            case META: return "Meta";
3076            case MONEY: return "Money";
3077            case NARRATIVE: return "Narrative";
3078            case PARAMETERDEFINITION: return "ParameterDefinition";
3079            case PERIOD: return "Period";
3080            case QUANTITY: return "Quantity";
3081            case RANGE: return "Range";
3082            case RATIO: return "Ratio";
3083            case REFERENCE: return "Reference";
3084            case RELATEDARTIFACT: return "RelatedArtifact";
3085            case SAMPLEDDATA: return "SampledData";
3086            case SIGNATURE: return "Signature";
3087            case SIMPLEQUANTITY: return "SimpleQuantity";
3088            case TIMING: return "Timing";
3089            case TRIGGERDEFINITION: return "TriggerDefinition";
3090            case USAGECONTEXT: return "UsageContext";
3091            case BASE64BINARY: return "base64Binary";
3092            case BOOLEAN: return "boolean";
3093            case CODE: return "code";
3094            case DATE: return "date";
3095            case DATETIME: return "dateTime";
3096            case DECIMAL: return "decimal";
3097            case ID: return "id";
3098            case INSTANT: return "instant";
3099            case INTEGER: return "integer";
3100            case MARKDOWN: return "markdown";
3101            case OID: return "oid";
3102            case POSITIVEINT: return "positiveInt";
3103            case STRING: return "string";
3104            case TIME: return "time";
3105            case UNSIGNEDINT: return "unsignedInt";
3106            case URI: return "uri";
3107            case UUID: return "uuid";
3108            case XHTML: return "xhtml";
3109            case ACCOUNT: return "Account";
3110            case ACTIVITYDEFINITION: return "ActivityDefinition";
3111            case ADVERSEEVENT: return "AdverseEvent";
3112            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
3113            case APPOINTMENT: return "Appointment";
3114            case APPOINTMENTRESPONSE: return "AppointmentResponse";
3115            case AUDITEVENT: return "AuditEvent";
3116            case BASIC: return "Basic";
3117            case BINARY: return "Binary";
3118            case BODYSITE: return "BodySite";
3119            case BUNDLE: return "Bundle";
3120            case CAPABILITYSTATEMENT: return "CapabilityStatement";
3121            case CAREPLAN: return "CarePlan";
3122            case CARETEAM: return "CareTeam";
3123            case CHARGEITEM: return "ChargeItem";
3124            case CLAIM: return "Claim";
3125            case CLAIMRESPONSE: return "ClaimResponse";
3126            case CLINICALIMPRESSION: return "ClinicalImpression";
3127            case CODESYSTEM: return "CodeSystem";
3128            case COMMUNICATION: return "Communication";
3129            case COMMUNICATIONREQUEST: return "CommunicationRequest";
3130            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
3131            case COMPOSITION: return "Composition";
3132            case CONCEPTMAP: return "ConceptMap";
3133            case CONDITION: return "Condition";
3134            case CONSENT: return "Consent";
3135            case CONTRACT: return "Contract";
3136            case COVERAGE: return "Coverage";
3137            case DATAELEMENT: return "DataElement";
3138            case DETECTEDISSUE: return "DetectedIssue";
3139            case DEVICE: return "Device";
3140            case DEVICECOMPONENT: return "DeviceComponent";
3141            case DEVICEMETRIC: return "DeviceMetric";
3142            case DEVICEREQUEST: return "DeviceRequest";
3143            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
3144            case DIAGNOSTICREPORT: return "DiagnosticReport";
3145            case DOCUMENTMANIFEST: return "DocumentManifest";
3146            case DOCUMENTREFERENCE: return "DocumentReference";
3147            case DOMAINRESOURCE: return "DomainResource";
3148            case ELIGIBILITYREQUEST: return "EligibilityRequest";
3149            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
3150            case ENCOUNTER: return "Encounter";
3151            case ENDPOINT: return "Endpoint";
3152            case ENROLLMENTREQUEST: return "EnrollmentRequest";
3153            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
3154            case EPISODEOFCARE: return "EpisodeOfCare";
3155            case EXPANSIONPROFILE: return "ExpansionProfile";
3156            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
3157            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
3158            case FLAG: return "Flag";
3159            case GOAL: return "Goal";
3160            case GRAPHDEFINITION: return "GraphDefinition";
3161            case GROUP: return "Group";
3162            case GUIDANCERESPONSE: return "GuidanceResponse";
3163            case HEALTHCARESERVICE: return "HealthcareService";
3164            case IMAGINGMANIFEST: return "ImagingManifest";
3165            case IMAGINGSTUDY: return "ImagingStudy";
3166            case IMMUNIZATION: return "Immunization";
3167            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
3168            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
3169            case LIBRARY: return "Library";
3170            case LINKAGE: return "Linkage";
3171            case LIST: return "List";
3172            case LOCATION: return "Location";
3173            case MEASURE: return "Measure";
3174            case MEASUREREPORT: return "MeasureReport";
3175            case MEDIA: return "Media";
3176            case MEDICATION: return "Medication";
3177            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
3178            case MEDICATIONDISPENSE: return "MedicationDispense";
3179            case MEDICATIONREQUEST: return "MedicationRequest";
3180            case MEDICATIONSTATEMENT: return "MedicationStatement";
3181            case MESSAGEDEFINITION: return "MessageDefinition";
3182            case MESSAGEHEADER: return "MessageHeader";
3183            case NAMINGSYSTEM: return "NamingSystem";
3184            case NUTRITIONORDER: return "NutritionOrder";
3185            case OBSERVATION: return "Observation";
3186            case OPERATIONDEFINITION: return "OperationDefinition";
3187            case OPERATIONOUTCOME: return "OperationOutcome";
3188            case ORGANIZATION: return "Organization";
3189            case PARAMETERS: return "Parameters";
3190            case PATIENT: return "Patient";
3191            case PAYMENTNOTICE: return "PaymentNotice";
3192            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
3193            case PERSON: return "Person";
3194            case PLANDEFINITION: return "PlanDefinition";
3195            case PRACTITIONER: return "Practitioner";
3196            case PRACTITIONERROLE: return "PractitionerRole";
3197            case PROCEDURE: return "Procedure";
3198            case PROCEDUREREQUEST: return "ProcedureRequest";
3199            case PROCESSREQUEST: return "ProcessRequest";
3200            case PROCESSRESPONSE: return "ProcessResponse";
3201            case PROVENANCE: return "Provenance";
3202            case QUESTIONNAIRE: return "Questionnaire";
3203            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
3204            case REFERRALREQUEST: return "ReferralRequest";
3205            case RELATEDPERSON: return "RelatedPerson";
3206            case REQUESTGROUP: return "RequestGroup";
3207            case RESEARCHSTUDY: return "ResearchStudy";
3208            case RESEARCHSUBJECT: return "ResearchSubject";
3209            case RESOURCE: return "Resource";
3210            case RISKASSESSMENT: return "RiskAssessment";
3211            case SCHEDULE: return "Schedule";
3212            case SEARCHPARAMETER: return "SearchParameter";
3213            case SEQUENCE: return "Sequence";
3214            case SERVICEDEFINITION: return "ServiceDefinition";
3215            case SLOT: return "Slot";
3216            case SPECIMEN: return "Specimen";
3217            case STRUCTUREDEFINITION: return "StructureDefinition";
3218            case STRUCTUREMAP: return "StructureMap";
3219            case SUBSCRIPTION: return "Subscription";
3220            case SUBSTANCE: return "Substance";
3221            case SUPPLYDELIVERY: return "SupplyDelivery";
3222            case SUPPLYREQUEST: return "SupplyRequest";
3223            case TASK: return "Task";
3224            case TESTREPORT: return "TestReport";
3225            case TESTSCRIPT: return "TestScript";
3226            case VALUESET: return "ValueSet";
3227            case VISIONPRESCRIPTION: return "VisionPrescription";
3228            case TYPE: return "Type";
3229            case ANY: return "Any";
3230            default: return "?";
3231          }
3232        }
3233        public String getSystem() {
3234          switch (this) {
3235            case ADDRESS: return "http://hl7.org/fhir/data-types";
3236            case AGE: return "http://hl7.org/fhir/data-types";
3237            case ANNOTATION: return "http://hl7.org/fhir/data-types";
3238            case ATTACHMENT: return "http://hl7.org/fhir/data-types";
3239            case BACKBONEELEMENT: return "http://hl7.org/fhir/data-types";
3240            case CODEABLECONCEPT: return "http://hl7.org/fhir/data-types";
3241            case CODING: return "http://hl7.org/fhir/data-types";
3242            case CONTACTDETAIL: return "http://hl7.org/fhir/data-types";
3243            case CONTACTPOINT: return "http://hl7.org/fhir/data-types";
3244            case CONTRIBUTOR: return "http://hl7.org/fhir/data-types";
3245            case COUNT: return "http://hl7.org/fhir/data-types";
3246            case DATAREQUIREMENT: return "http://hl7.org/fhir/data-types";
3247            case DISTANCE: return "http://hl7.org/fhir/data-types";
3248            case DOSAGE: return "http://hl7.org/fhir/data-types";
3249            case DURATION: return "http://hl7.org/fhir/data-types";
3250            case ELEMENT: return "http://hl7.org/fhir/data-types";
3251            case ELEMENTDEFINITION: return "http://hl7.org/fhir/data-types";
3252            case EXTENSION: return "http://hl7.org/fhir/data-types";
3253            case HUMANNAME: return "http://hl7.org/fhir/data-types";
3254            case IDENTIFIER: return "http://hl7.org/fhir/data-types";
3255            case META: return "http://hl7.org/fhir/data-types";
3256            case MONEY: return "http://hl7.org/fhir/data-types";
3257            case NARRATIVE: return "http://hl7.org/fhir/data-types";
3258            case PARAMETERDEFINITION: return "http://hl7.org/fhir/data-types";
3259            case PERIOD: return "http://hl7.org/fhir/data-types";
3260            case QUANTITY: return "http://hl7.org/fhir/data-types";
3261            case RANGE: return "http://hl7.org/fhir/data-types";
3262            case RATIO: return "http://hl7.org/fhir/data-types";
3263            case REFERENCE: return "http://hl7.org/fhir/data-types";
3264            case RELATEDARTIFACT: return "http://hl7.org/fhir/data-types";
3265            case SAMPLEDDATA: return "http://hl7.org/fhir/data-types";
3266            case SIGNATURE: return "http://hl7.org/fhir/data-types";
3267            case SIMPLEQUANTITY: return "http://hl7.org/fhir/data-types";
3268            case TIMING: return "http://hl7.org/fhir/data-types";
3269            case TRIGGERDEFINITION: return "http://hl7.org/fhir/data-types";
3270            case USAGECONTEXT: return "http://hl7.org/fhir/data-types";
3271            case BASE64BINARY: return "http://hl7.org/fhir/data-types";
3272            case BOOLEAN: return "http://hl7.org/fhir/data-types";
3273            case CODE: return "http://hl7.org/fhir/data-types";
3274            case DATE: return "http://hl7.org/fhir/data-types";
3275            case DATETIME: return "http://hl7.org/fhir/data-types";
3276            case DECIMAL: return "http://hl7.org/fhir/data-types";
3277            case ID: return "http://hl7.org/fhir/data-types";
3278            case INSTANT: return "http://hl7.org/fhir/data-types";
3279            case INTEGER: return "http://hl7.org/fhir/data-types";
3280            case MARKDOWN: return "http://hl7.org/fhir/data-types";
3281            case OID: return "http://hl7.org/fhir/data-types";
3282            case POSITIVEINT: return "http://hl7.org/fhir/data-types";
3283            case STRING: return "http://hl7.org/fhir/data-types";
3284            case TIME: return "http://hl7.org/fhir/data-types";
3285            case UNSIGNEDINT: return "http://hl7.org/fhir/data-types";
3286            case URI: return "http://hl7.org/fhir/data-types";
3287            case UUID: return "http://hl7.org/fhir/data-types";
3288            case XHTML: return "http://hl7.org/fhir/data-types";
3289            case ACCOUNT: return "http://hl7.org/fhir/resource-types";
3290            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/resource-types";
3291            case ADVERSEEVENT: return "http://hl7.org/fhir/resource-types";
3292            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/resource-types";
3293            case APPOINTMENT: return "http://hl7.org/fhir/resource-types";
3294            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
3295            case AUDITEVENT: return "http://hl7.org/fhir/resource-types";
3296            case BASIC: return "http://hl7.org/fhir/resource-types";
3297            case BINARY: return "http://hl7.org/fhir/resource-types";
3298            case BODYSITE: return "http://hl7.org/fhir/resource-types";
3299            case BUNDLE: return "http://hl7.org/fhir/resource-types";
3300            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/resource-types";
3301            case CAREPLAN: return "http://hl7.org/fhir/resource-types";
3302            case CARETEAM: return "http://hl7.org/fhir/resource-types";
3303            case CHARGEITEM: return "http://hl7.org/fhir/resource-types";
3304            case CLAIM: return "http://hl7.org/fhir/resource-types";
3305            case CLAIMRESPONSE: return "http://hl7.org/fhir/resource-types";
3306            case CLINICALIMPRESSION: return "http://hl7.org/fhir/resource-types";
3307            case CODESYSTEM: return "http://hl7.org/fhir/resource-types";
3308            case COMMUNICATION: return "http://hl7.org/fhir/resource-types";
3309            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
3310            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/resource-types";
3311            case COMPOSITION: return "http://hl7.org/fhir/resource-types";
3312            case CONCEPTMAP: return "http://hl7.org/fhir/resource-types";
3313            case CONDITION: return "http://hl7.org/fhir/resource-types";
3314            case CONSENT: return "http://hl7.org/fhir/resource-types";
3315            case CONTRACT: return "http://hl7.org/fhir/resource-types";
3316            case COVERAGE: return "http://hl7.org/fhir/resource-types";
3317            case DATAELEMENT: return "http://hl7.org/fhir/resource-types";
3318            case DETECTEDISSUE: return "http://hl7.org/fhir/resource-types";
3319            case DEVICE: return "http://hl7.org/fhir/resource-types";
3320            case DEVICECOMPONENT: return "http://hl7.org/fhir/resource-types";
3321            case DEVICEMETRIC: return "http://hl7.org/fhir/resource-types";
3322            case DEVICEREQUEST: return "http://hl7.org/fhir/resource-types";
3323            case DEVICEUSESTATEMENT: return "http://hl7.org/fhir/resource-types";
3324            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/resource-types";
3325            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/resource-types";
3326            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/resource-types";
3327            case DOMAINRESOURCE: return "http://hl7.org/fhir/resource-types";
3328            case ELIGIBILITYREQUEST: return "http://hl7.org/fhir/resource-types";
3329            case ELIGIBILITYRESPONSE: return "http://hl7.org/fhir/resource-types";
3330            case ENCOUNTER: return "http://hl7.org/fhir/resource-types";
3331            case ENDPOINT: return "http://hl7.org/fhir/resource-types";
3332            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/resource-types";
3333            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
3334            case EPISODEOFCARE: return "http://hl7.org/fhir/resource-types";
3335            case EXPANSIONPROFILE: return "http://hl7.org/fhir/resource-types";
3336            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/resource-types";
3337            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/resource-types";
3338            case FLAG: return "http://hl7.org/fhir/resource-types";
3339            case GOAL: return "http://hl7.org/fhir/resource-types";
3340            case GRAPHDEFINITION: return "http://hl7.org/fhir/resource-types";
3341            case GROUP: return "http://hl7.org/fhir/resource-types";
3342            case GUIDANCERESPONSE: return "http://hl7.org/fhir/resource-types";
3343            case HEALTHCARESERVICE: return "http://hl7.org/fhir/resource-types";
3344            case IMAGINGMANIFEST: return "http://hl7.org/fhir/resource-types";
3345            case IMAGINGSTUDY: return "http://hl7.org/fhir/resource-types";
3346            case IMMUNIZATION: return "http://hl7.org/fhir/resource-types";
3347            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/resource-types";
3348            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/resource-types";
3349            case LIBRARY: return "http://hl7.org/fhir/resource-types";
3350            case LINKAGE: return "http://hl7.org/fhir/resource-types";
3351            case LIST: return "http://hl7.org/fhir/resource-types";
3352            case LOCATION: return "http://hl7.org/fhir/resource-types";
3353            case MEASURE: return "http://hl7.org/fhir/resource-types";
3354            case MEASUREREPORT: return "http://hl7.org/fhir/resource-types";
3355            case MEDIA: return "http://hl7.org/fhir/resource-types";
3356            case MEDICATION: return "http://hl7.org/fhir/resource-types";
3357            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/resource-types";
3358            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/resource-types";
3359            case MEDICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
3360            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/resource-types";
3361            case MESSAGEDEFINITION: return "http://hl7.org/fhir/resource-types";
3362            case MESSAGEHEADER: return "http://hl7.org/fhir/resource-types";
3363            case NAMINGSYSTEM: return "http://hl7.org/fhir/resource-types";
3364            case NUTRITIONORDER: return "http://hl7.org/fhir/resource-types";
3365            case OBSERVATION: return "http://hl7.org/fhir/resource-types";
3366            case OPERATIONDEFINITION: return "http://hl7.org/fhir/resource-types";
3367            case OPERATIONOUTCOME: return "http://hl7.org/fhir/resource-types";
3368            case ORGANIZATION: return "http://hl7.org/fhir/resource-types";
3369            case PARAMETERS: return "http://hl7.org/fhir/resource-types";
3370            case PATIENT: return "http://hl7.org/fhir/resource-types";
3371            case PAYMENTNOTICE: return "http://hl7.org/fhir/resource-types";
3372            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/resource-types";
3373            case PERSON: return "http://hl7.org/fhir/resource-types";
3374            case PLANDEFINITION: return "http://hl7.org/fhir/resource-types";
3375            case PRACTITIONER: return "http://hl7.org/fhir/resource-types";
3376            case PRACTITIONERROLE: return "http://hl7.org/fhir/resource-types";
3377            case PROCEDURE: return "http://hl7.org/fhir/resource-types";
3378            case PROCEDUREREQUEST: return "http://hl7.org/fhir/resource-types";
3379            case PROCESSREQUEST: return "http://hl7.org/fhir/resource-types";
3380            case PROCESSRESPONSE: return "http://hl7.org/fhir/resource-types";
3381            case PROVENANCE: return "http://hl7.org/fhir/resource-types";
3382            case QUESTIONNAIRE: return "http://hl7.org/fhir/resource-types";
3383            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/resource-types";
3384            case REFERRALREQUEST: return "http://hl7.org/fhir/resource-types";
3385            case RELATEDPERSON: return "http://hl7.org/fhir/resource-types";
3386            case REQUESTGROUP: return "http://hl7.org/fhir/resource-types";
3387            case RESEARCHSTUDY: return "http://hl7.org/fhir/resource-types";
3388            case RESEARCHSUBJECT: return "http://hl7.org/fhir/resource-types";
3389            case RESOURCE: return "http://hl7.org/fhir/resource-types";
3390            case RISKASSESSMENT: return "http://hl7.org/fhir/resource-types";
3391            case SCHEDULE: return "http://hl7.org/fhir/resource-types";
3392            case SEARCHPARAMETER: return "http://hl7.org/fhir/resource-types";
3393            case SEQUENCE: return "http://hl7.org/fhir/resource-types";
3394            case SERVICEDEFINITION: return "http://hl7.org/fhir/resource-types";
3395            case SLOT: return "http://hl7.org/fhir/resource-types";
3396            case SPECIMEN: return "http://hl7.org/fhir/resource-types";
3397            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/resource-types";
3398            case STRUCTUREMAP: return "http://hl7.org/fhir/resource-types";
3399            case SUBSCRIPTION: return "http://hl7.org/fhir/resource-types";
3400            case SUBSTANCE: return "http://hl7.org/fhir/resource-types";
3401            case SUPPLYDELIVERY: return "http://hl7.org/fhir/resource-types";
3402            case SUPPLYREQUEST: return "http://hl7.org/fhir/resource-types";
3403            case TASK: return "http://hl7.org/fhir/resource-types";
3404            case TESTREPORT: return "http://hl7.org/fhir/resource-types";
3405            case TESTSCRIPT: return "http://hl7.org/fhir/resource-types";
3406            case VALUESET: return "http://hl7.org/fhir/resource-types";
3407            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/resource-types";
3408            case TYPE: return "http://hl7.org/fhir/abstract-types";
3409            case ANY: return "http://hl7.org/fhir/abstract-types";
3410            default: return "?";
3411          }
3412        }
3413        public String getDefinition() {
3414          switch (this) {
3415            case ADDRESS: return "An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
3416            case AGE: return "A duration of time during which an organism (or a process) has existed.";
3417            case ANNOTATION: return "A  text note which also  contains information about who made the statement and when.";
3418            case ATTACHMENT: return "For referring to data content defined in other formats.";
3419            case BACKBONEELEMENT: return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
3420            case CODEABLECONCEPT: return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
3421            case CODING: return "A reference to a code defined by a terminology system.";
3422            case CONTACTDETAIL: return "Specifies contact information for a person or organization.";
3423            case CONTACTPOINT: return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
3424            case CONTRIBUTOR: return "A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
3425            case COUNT: 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.";
3426            case DATAREQUIREMENT: return "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.";
3427            case DISTANCE: return "A length - a value with a unit that is a physical distance.";
3428            case DOSAGE: return "Indicates how the medication is/was taken or should be taken by the patient.";
3429            case DURATION: return "A length of time.";
3430            case ELEMENT: return "Base definition for all elements in a resource.";
3431            case ELEMENTDEFINITION: return "Captures constraints on each element within the resource, profile, or extension.";
3432            case EXTENSION: return "Optional Extension Element - found in all resources.";
3433            case HUMANNAME: return "A human's name with the ability to identify parts and usage.";
3434            case IDENTIFIER: return "A technical identifier - identifies some entity uniquely and unambiguously.";
3435            case META: return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.";
3436            case MONEY: return "An amount of economic utility in some recognized currency.";
3437            case NARRATIVE: return "A human-readable formatted text, including images.";
3438            case PARAMETERDEFINITION: return "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.";
3439            case PERIOD: return "A time period defined by a start and end date and optionally time.";
3440            case QUANTITY: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
3441            case RANGE: return "A set of ordered Quantities defined by a low and high limit.";
3442            case RATIO: return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
3443            case REFERENCE: return "A reference from one resource to another.";
3444            case RELATEDARTIFACT: return "Related artifacts such as additional documentation, justification, or bibliographic references.";
3445            case SAMPLEDDATA: return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
3446            case SIGNATURE: return "A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.";
3447            case SIMPLEQUANTITY: return "";
3448            case TIMING: 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.";
3449            case TRIGGERDEFINITION: return "A description of a triggering event.";
3450            case USAGECONTEXT: 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).";
3451            case BASE64BINARY: return "A stream of bytes";
3452            case BOOLEAN: return "Value of \"true\" or \"false\"";
3453            case CODE: return "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents";
3454            case DATE: return "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
3455            case DATETIME: return "A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.";
3456            case DECIMAL: return "A rational number with implicit precision";
3457            case ID: return "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.";
3458            case INSTANT: return "An instant in time - known at least to the second";
3459            case INTEGER: return "A whole number";
3460            case MARKDOWN: return "A string that may contain markdown syntax for optional processing by a mark down presentation engine";
3461            case OID: return "An OID represented as a URI";
3462            case POSITIVEINT: return "An integer with a value that is positive (e.g. >0)";
3463            case STRING: return "A sequence of Unicode characters";
3464            case TIME: return "A time during the day, with no date specified";
3465            case UNSIGNEDINT: return "An integer with a value that is not negative (e.g. >= 0)";
3466            case URI: return "String of characters used to identify a name or a resource";
3467            case UUID: return "A UUID, represented as a URI";
3468            case XHTML: return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
3469            case ACCOUNT: return "A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centers, etc.";
3470            case ACTIVITYDEFINITION: return "This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.";
3471            case ADVERSEEVENT: 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.";
3472            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
3473            case APPOINTMENT: return "A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).";
3474            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
3475            case AUDITEVENT: return "A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.";
3476            case BASIC: return "Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.";
3477            case BINARY: return "A binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
3478            case BODYSITE: return "Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
3479            case BUNDLE: return "A container for a collection of resources.";
3480            case CAPABILITYSTATEMENT: return "A Capability Statement 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.";
3481            case CAREPLAN: return "Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.";
3482            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.";
3483            case CHARGEITEM: 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.";
3484            case CLAIM: return "A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.";
3485            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
3486            case CLINICALIMPRESSION: return "A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score.";
3487            case CODESYSTEM: return "A code system resource specifies a set of codes drawn from one or more code systems.";
3488            case COMMUNICATION: return "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.";
3489            case COMMUNICATIONREQUEST: return "A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.";
3490            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
3491            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.";
3492            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.";
3493            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
3494            case CONSENT: return "A record of a healthcare consumer’s policy 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.";
3495            case CONTRACT: return "A formal agreement between parties regarding the conduct of business, exchange of information or other matters.";
3496            case COVERAGE: return "Financial instrument which may be used to reimburse or pay for health care products and services.";
3497            case DATAELEMENT: return "The formal description of a single piece of information that can be gathered and reported.";
3498            case DETECTEDISSUE: return "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.";
3499            case DEVICE: return "This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices include durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.";
3500            case DEVICECOMPONENT: return "The characteristics, operational status and capabilities of a medical-related component of a medical device.";
3501            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
3502            case DEVICEREQUEST: 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.";
3503            case DEVICEUSESTATEMENT: return "A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.";
3504            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.";
3505            case DOCUMENTMANIFEST: return "A collection of documents compiled for a purpose together with metadata that applies to the collection.";
3506            case DOCUMENTREFERENCE: return "A reference to a document.";
3507            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
3508            case ELIGIBILITYREQUEST: return "The EligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an EligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.";
3509            case ELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an Eligibility resource.";
3510            case ENCOUNTER: return "An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.";
3511            case ENDPOINT: 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.";
3512            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
3513            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an Enrollment resource.";
3514            case EPISODEOFCARE: return "An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.";
3515            case EXPANSIONPROFILE: return "Resource to define constraints on the Expansion of a FHIR ValueSet.";
3516            case EXPLANATIONOFBENEFIT: return "This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.";
3517            case FAMILYMEMBERHISTORY: return "Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.";
3518            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
3519            case GOAL: return "Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.";
3520            case GRAPHDEFINITION: 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.";
3521            case GROUP: return "Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.";
3522            case GUIDANCERESPONSE: return "A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.";
3523            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location.";
3524            case IMAGINGMANIFEST: return "A text description of the DICOM SOP instances selected in the ImagingManifest; or the reason for, or significance of, the selection.";
3525            case IMAGINGSTUDY: return "Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.";
3526            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.";
3527            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.";
3528            case IMPLEMENTATIONGUIDE: return "A set of rules of how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.";
3529            case LIBRARY: 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.";
3530            case LINKAGE: return "Identifies two or more records (resource instances) that are referring to the same real-world \"occurrence\".";
3531            case LIST: return "A set of information summarized from a list of other resources.";
3532            case LOCATION: return "Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.";
3533            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
3534            case MEASUREREPORT: return "The MeasureReport resource contains the results of evaluating a measure.";
3535            case MEDIA: return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
3536            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.";
3537            case MEDICATIONADMINISTRATION: return "Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.";
3538            case MEDICATIONDISPENSE: return "Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.";
3539            case MEDICATIONREQUEST: 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.";
3540            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains \r\rThe primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
3541            case MESSAGEDEFINITION: 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.";
3542            case MESSAGEHEADER: return "The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.";
3543            case NAMINGSYSTEM: return "A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a \"System\" used within the Identifier and Coding data types.";
3544            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
3545            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
3546            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
3547            case OPERATIONOUTCOME: return "A collection of error, warning or information messages that result from a system action.";
3548            case ORGANIZATION: return "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.";
3549            case PARAMETERS: return "This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.";
3550            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
3551            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
3552            case PAYMENTRECONCILIATION: return "This resource provides payment details and claim references supporting a bulk payment.";
3553            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
3554            case PLANDEFINITION: 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.";
3555            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare.";
3556            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.";
3557            case PROCEDURE: return "An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.";
3558            case PROCEDUREREQUEST: return "A record of a request for diagnostic investigations, treatments, or operations to be performed.";
3559            case PROCESSREQUEST: return "This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.";
3560            case PROCESSRESPONSE: return "This resource provides processing status, errors and notes from the processing of a resource.";
3561            case PROVENANCE: return "Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.";
3562            case QUESTIONNAIRE: 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.";
3563            case QUESTIONNAIRERESPONSE: return "A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the questionnaire being responded to.";
3564            case REFERRALREQUEST: return "Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.";
3565            case RELATEDPERSON: return "Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
3566            case REQUESTGROUP: 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\".";
3567            case RESEARCHSTUDY: 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.";
3568            case RESEARCHSUBJECT: 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.";
3569            case RESOURCE: return "This is the base resource type for everything.";
3570            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
3571            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
3572            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
3573            case SEQUENCE: return "Raw data describing a biological sequence.";
3574            case SERVICEDEFINITION: return "The ServiceDefinition describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.";
3575            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
3576            case SPECIMEN: return "A sample to be used for analysis.";
3577            case STRUCTUREDEFINITION: return "A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions and constraints on resources and data types.";
3578            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
3579            case SUBSCRIPTION: return "The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system is able to take an appropriate action.";
3580            case SUBSTANCE: return "A homogeneous material with a definite composition.";
3581            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
3582            case SUPPLYREQUEST: return "A record of a request for a medication, substance or device used in the healthcare setting.";
3583            case TASK: return "A task to be performed.";
3584            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
3585            case TESTSCRIPT: return "A structured set of tests against a FHIR server implementation to determine compliance against the FHIR specification.";
3586            case VALUESET: return "A value set specifies a set of codes drawn from one or more code systems.";
3587            case VISIONPRESCRIPTION: return "An authorization for the supply of glasses and/or contact lenses to a patient.";
3588            case TYPE: return "A place holder that means any kind of data type";
3589            case ANY: return "A place holder that means any kind of resource";
3590            default: return "?";
3591          }
3592        }
3593        public String getDisplay() {
3594          switch (this) {
3595            case ADDRESS: return "Address";
3596            case AGE: return "Age";
3597            case ANNOTATION: return "Annotation";
3598            case ATTACHMENT: return "Attachment";
3599            case BACKBONEELEMENT: return "BackboneElement";
3600            case CODEABLECONCEPT: return "CodeableConcept";
3601            case CODING: return "Coding";
3602            case CONTACTDETAIL: return "ContactDetail";
3603            case CONTACTPOINT: return "ContactPoint";
3604            case CONTRIBUTOR: return "Contributor";
3605            case COUNT: return "Count";
3606            case DATAREQUIREMENT: return "DataRequirement";
3607            case DISTANCE: return "Distance";
3608            case DOSAGE: return "Dosage";
3609            case DURATION: return "Duration";
3610            case ELEMENT: return "Element";
3611            case ELEMENTDEFINITION: return "ElementDefinition";
3612            case EXTENSION: return "Extension";
3613            case HUMANNAME: return "HumanName";
3614            case IDENTIFIER: return "Identifier";
3615            case META: return "Meta";
3616            case MONEY: return "Money";
3617            case NARRATIVE: return "Narrative";
3618            case PARAMETERDEFINITION: return "ParameterDefinition";
3619            case PERIOD: return "Period";
3620            case QUANTITY: return "Quantity";
3621            case RANGE: return "Range";
3622            case RATIO: return "Ratio";
3623            case REFERENCE: return "Reference";
3624            case RELATEDARTIFACT: return "RelatedArtifact";
3625            case SAMPLEDDATA: return "SampledData";
3626            case SIGNATURE: return "Signature";
3627            case SIMPLEQUANTITY: return "SimpleQuantity";
3628            case TIMING: return "Timing";
3629            case TRIGGERDEFINITION: return "TriggerDefinition";
3630            case USAGECONTEXT: return "UsageContext";
3631            case BASE64BINARY: return "base64Binary";
3632            case BOOLEAN: return "boolean";
3633            case CODE: return "code";
3634            case DATE: return "date";
3635            case DATETIME: return "dateTime";
3636            case DECIMAL: return "decimal";
3637            case ID: return "id";
3638            case INSTANT: return "instant";
3639            case INTEGER: return "integer";
3640            case MARKDOWN: return "markdown";
3641            case OID: return "oid";
3642            case POSITIVEINT: return "positiveInt";
3643            case STRING: return "string";
3644            case TIME: return "time";
3645            case UNSIGNEDINT: return "unsignedInt";
3646            case URI: return "uri";
3647            case UUID: return "uuid";
3648            case XHTML: return "XHTML";
3649            case ACCOUNT: return "Account";
3650            case ACTIVITYDEFINITION: return "ActivityDefinition";
3651            case ADVERSEEVENT: return "AdverseEvent";
3652            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
3653            case APPOINTMENT: return "Appointment";
3654            case APPOINTMENTRESPONSE: return "AppointmentResponse";
3655            case AUDITEVENT: return "AuditEvent";
3656            case BASIC: return "Basic";
3657            case BINARY: return "Binary";
3658            case BODYSITE: return "BodySite";
3659            case BUNDLE: return "Bundle";
3660            case CAPABILITYSTATEMENT: return "CapabilityStatement";
3661            case CAREPLAN: return "CarePlan";
3662            case CARETEAM: return "CareTeam";
3663            case CHARGEITEM: return "ChargeItem";
3664            case CLAIM: return "Claim";
3665            case CLAIMRESPONSE: return "ClaimResponse";
3666            case CLINICALIMPRESSION: return "ClinicalImpression";
3667            case CODESYSTEM: return "CodeSystem";
3668            case COMMUNICATION: return "Communication";
3669            case COMMUNICATIONREQUEST: return "CommunicationRequest";
3670            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
3671            case COMPOSITION: return "Composition";
3672            case CONCEPTMAP: return "ConceptMap";
3673            case CONDITION: return "Condition";
3674            case CONSENT: return "Consent";
3675            case CONTRACT: return "Contract";
3676            case COVERAGE: return "Coverage";
3677            case DATAELEMENT: return "DataElement";
3678            case DETECTEDISSUE: return "DetectedIssue";
3679            case DEVICE: return "Device";
3680            case DEVICECOMPONENT: return "DeviceComponent";
3681            case DEVICEMETRIC: return "DeviceMetric";
3682            case DEVICEREQUEST: return "DeviceRequest";
3683            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
3684            case DIAGNOSTICREPORT: return "DiagnosticReport";
3685            case DOCUMENTMANIFEST: return "DocumentManifest";
3686            case DOCUMENTREFERENCE: return "DocumentReference";
3687            case DOMAINRESOURCE: return "DomainResource";
3688            case ELIGIBILITYREQUEST: return "EligibilityRequest";
3689            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
3690            case ENCOUNTER: return "Encounter";
3691            case ENDPOINT: return "Endpoint";
3692            case ENROLLMENTREQUEST: return "EnrollmentRequest";
3693            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
3694            case EPISODEOFCARE: return "EpisodeOfCare";
3695            case EXPANSIONPROFILE: return "ExpansionProfile";
3696            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
3697            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
3698            case FLAG: return "Flag";
3699            case GOAL: return "Goal";
3700            case GRAPHDEFINITION: return "GraphDefinition";
3701            case GROUP: return "Group";
3702            case GUIDANCERESPONSE: return "GuidanceResponse";
3703            case HEALTHCARESERVICE: return "HealthcareService";
3704            case IMAGINGMANIFEST: return "ImagingManifest";
3705            case IMAGINGSTUDY: return "ImagingStudy";
3706            case IMMUNIZATION: return "Immunization";
3707            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
3708            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
3709            case LIBRARY: return "Library";
3710            case LINKAGE: return "Linkage";
3711            case LIST: return "List";
3712            case LOCATION: return "Location";
3713            case MEASURE: return "Measure";
3714            case MEASUREREPORT: return "MeasureReport";
3715            case MEDIA: return "Media";
3716            case MEDICATION: return "Medication";
3717            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
3718            case MEDICATIONDISPENSE: return "MedicationDispense";
3719            case MEDICATIONREQUEST: return "MedicationRequest";
3720            case MEDICATIONSTATEMENT: return "MedicationStatement";
3721            case MESSAGEDEFINITION: return "MessageDefinition";
3722            case MESSAGEHEADER: return "MessageHeader";
3723            case NAMINGSYSTEM: return "NamingSystem";
3724            case NUTRITIONORDER: return "NutritionOrder";
3725            case OBSERVATION: return "Observation";
3726            case OPERATIONDEFINITION: return "OperationDefinition";
3727            case OPERATIONOUTCOME: return "OperationOutcome";
3728            case ORGANIZATION: return "Organization";
3729            case PARAMETERS: return "Parameters";
3730            case PATIENT: return "Patient";
3731            case PAYMENTNOTICE: return "PaymentNotice";
3732            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
3733            case PERSON: return "Person";
3734            case PLANDEFINITION: return "PlanDefinition";
3735            case PRACTITIONER: return "Practitioner";
3736            case PRACTITIONERROLE: return "PractitionerRole";
3737            case PROCEDURE: return "Procedure";
3738            case PROCEDUREREQUEST: return "ProcedureRequest";
3739            case PROCESSREQUEST: return "ProcessRequest";
3740            case PROCESSRESPONSE: return "ProcessResponse";
3741            case PROVENANCE: return "Provenance";
3742            case QUESTIONNAIRE: return "Questionnaire";
3743            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
3744            case REFERRALREQUEST: return "ReferralRequest";
3745            case RELATEDPERSON: return "RelatedPerson";
3746            case REQUESTGROUP: return "RequestGroup";
3747            case RESEARCHSTUDY: return "ResearchStudy";
3748            case RESEARCHSUBJECT: return "ResearchSubject";
3749            case RESOURCE: return "Resource";
3750            case RISKASSESSMENT: return "RiskAssessment";
3751            case SCHEDULE: return "Schedule";
3752            case SEARCHPARAMETER: return "SearchParameter";
3753            case SEQUENCE: return "Sequence";
3754            case SERVICEDEFINITION: return "ServiceDefinition";
3755            case SLOT: return "Slot";
3756            case SPECIMEN: return "Specimen";
3757            case STRUCTUREDEFINITION: return "StructureDefinition";
3758            case STRUCTUREMAP: return "StructureMap";
3759            case SUBSCRIPTION: return "Subscription";
3760            case SUBSTANCE: return "Substance";
3761            case SUPPLYDELIVERY: return "SupplyDelivery";
3762            case SUPPLYREQUEST: return "SupplyRequest";
3763            case TASK: return "Task";
3764            case TESTREPORT: return "TestReport";
3765            case TESTSCRIPT: return "TestScript";
3766            case VALUESET: return "ValueSet";
3767            case VISIONPRESCRIPTION: return "VisionPrescription";
3768            case TYPE: return "Type";
3769            case ANY: return "Any";
3770            default: return "?";
3771          }
3772        }
3773    }
3774
3775  public static class FHIRAllTypesEnumFactory implements EnumFactory<FHIRAllTypes> {
3776    public FHIRAllTypes fromCode(String codeString) throws IllegalArgumentException {
3777      if (codeString == null || "".equals(codeString))
3778            if (codeString == null || "".equals(codeString))
3779                return null;
3780        if ("Address".equals(codeString))
3781          return FHIRAllTypes.ADDRESS;
3782        if ("Age".equals(codeString))
3783          return FHIRAllTypes.AGE;
3784        if ("Annotation".equals(codeString))
3785          return FHIRAllTypes.ANNOTATION;
3786        if ("Attachment".equals(codeString))
3787          return FHIRAllTypes.ATTACHMENT;
3788        if ("BackboneElement".equals(codeString))
3789          return FHIRAllTypes.BACKBONEELEMENT;
3790        if ("CodeableConcept".equals(codeString))
3791          return FHIRAllTypes.CODEABLECONCEPT;
3792        if ("Coding".equals(codeString))
3793          return FHIRAllTypes.CODING;
3794        if ("ContactDetail".equals(codeString))
3795          return FHIRAllTypes.CONTACTDETAIL;
3796        if ("ContactPoint".equals(codeString))
3797          return FHIRAllTypes.CONTACTPOINT;
3798        if ("Contributor".equals(codeString))
3799          return FHIRAllTypes.CONTRIBUTOR;
3800        if ("Count".equals(codeString))
3801          return FHIRAllTypes.COUNT;
3802        if ("DataRequirement".equals(codeString))
3803          return FHIRAllTypes.DATAREQUIREMENT;
3804        if ("Distance".equals(codeString))
3805          return FHIRAllTypes.DISTANCE;
3806        if ("Dosage".equals(codeString))
3807          return FHIRAllTypes.DOSAGE;
3808        if ("Duration".equals(codeString))
3809          return FHIRAllTypes.DURATION;
3810        if ("Element".equals(codeString))
3811          return FHIRAllTypes.ELEMENT;
3812        if ("ElementDefinition".equals(codeString))
3813          return FHIRAllTypes.ELEMENTDEFINITION;
3814        if ("Extension".equals(codeString))
3815          return FHIRAllTypes.EXTENSION;
3816        if ("HumanName".equals(codeString))
3817          return FHIRAllTypes.HUMANNAME;
3818        if ("Identifier".equals(codeString))
3819          return FHIRAllTypes.IDENTIFIER;
3820        if ("Meta".equals(codeString))
3821          return FHIRAllTypes.META;
3822        if ("Money".equals(codeString))
3823          return FHIRAllTypes.MONEY;
3824        if ("Narrative".equals(codeString))
3825          return FHIRAllTypes.NARRATIVE;
3826        if ("ParameterDefinition".equals(codeString))
3827          return FHIRAllTypes.PARAMETERDEFINITION;
3828        if ("Period".equals(codeString))
3829          return FHIRAllTypes.PERIOD;
3830        if ("Quantity".equals(codeString))
3831          return FHIRAllTypes.QUANTITY;
3832        if ("Range".equals(codeString))
3833          return FHIRAllTypes.RANGE;
3834        if ("Ratio".equals(codeString))
3835          return FHIRAllTypes.RATIO;
3836        if ("Reference".equals(codeString))
3837          return FHIRAllTypes.REFERENCE;
3838        if ("RelatedArtifact".equals(codeString))
3839          return FHIRAllTypes.RELATEDARTIFACT;
3840        if ("SampledData".equals(codeString))
3841          return FHIRAllTypes.SAMPLEDDATA;
3842        if ("Signature".equals(codeString))
3843          return FHIRAllTypes.SIGNATURE;
3844        if ("SimpleQuantity".equals(codeString))
3845          return FHIRAllTypes.SIMPLEQUANTITY;
3846        if ("Timing".equals(codeString))
3847          return FHIRAllTypes.TIMING;
3848        if ("TriggerDefinition".equals(codeString))
3849          return FHIRAllTypes.TRIGGERDEFINITION;
3850        if ("UsageContext".equals(codeString))
3851          return FHIRAllTypes.USAGECONTEXT;
3852        if ("base64Binary".equals(codeString))
3853          return FHIRAllTypes.BASE64BINARY;
3854        if ("boolean".equals(codeString))
3855          return FHIRAllTypes.BOOLEAN;
3856        if ("code".equals(codeString))
3857          return FHIRAllTypes.CODE;
3858        if ("date".equals(codeString))
3859          return FHIRAllTypes.DATE;
3860        if ("dateTime".equals(codeString))
3861          return FHIRAllTypes.DATETIME;
3862        if ("decimal".equals(codeString))
3863          return FHIRAllTypes.DECIMAL;
3864        if ("id".equals(codeString))
3865          return FHIRAllTypes.ID;
3866        if ("instant".equals(codeString))
3867          return FHIRAllTypes.INSTANT;
3868        if ("integer".equals(codeString))
3869          return FHIRAllTypes.INTEGER;
3870        if ("markdown".equals(codeString))
3871          return FHIRAllTypes.MARKDOWN;
3872        if ("oid".equals(codeString))
3873          return FHIRAllTypes.OID;
3874        if ("positiveInt".equals(codeString))
3875          return FHIRAllTypes.POSITIVEINT;
3876        if ("string".equals(codeString))
3877          return FHIRAllTypes.STRING;
3878        if ("time".equals(codeString))
3879          return FHIRAllTypes.TIME;
3880        if ("unsignedInt".equals(codeString))
3881          return FHIRAllTypes.UNSIGNEDINT;
3882        if ("uri".equals(codeString))
3883          return FHIRAllTypes.URI;
3884        if ("uuid".equals(codeString))
3885          return FHIRAllTypes.UUID;
3886        if ("xhtml".equals(codeString))
3887          return FHIRAllTypes.XHTML;
3888        if ("Account".equals(codeString))
3889          return FHIRAllTypes.ACCOUNT;
3890        if ("ActivityDefinition".equals(codeString))
3891          return FHIRAllTypes.ACTIVITYDEFINITION;
3892        if ("AdverseEvent".equals(codeString))
3893          return FHIRAllTypes.ADVERSEEVENT;
3894        if ("AllergyIntolerance".equals(codeString))
3895          return FHIRAllTypes.ALLERGYINTOLERANCE;
3896        if ("Appointment".equals(codeString))
3897          return FHIRAllTypes.APPOINTMENT;
3898        if ("AppointmentResponse".equals(codeString))
3899          return FHIRAllTypes.APPOINTMENTRESPONSE;
3900        if ("AuditEvent".equals(codeString))
3901          return FHIRAllTypes.AUDITEVENT;
3902        if ("Basic".equals(codeString))
3903          return FHIRAllTypes.BASIC;
3904        if ("Binary".equals(codeString))
3905          return FHIRAllTypes.BINARY;
3906        if ("BodySite".equals(codeString))
3907          return FHIRAllTypes.BODYSITE;
3908        if ("Bundle".equals(codeString))
3909          return FHIRAllTypes.BUNDLE;
3910        if ("CapabilityStatement".equals(codeString))
3911          return FHIRAllTypes.CAPABILITYSTATEMENT;
3912        if ("CarePlan".equals(codeString))
3913          return FHIRAllTypes.CAREPLAN;
3914        if ("CareTeam".equals(codeString))
3915          return FHIRAllTypes.CARETEAM;
3916        if ("ChargeItem".equals(codeString))
3917          return FHIRAllTypes.CHARGEITEM;
3918        if ("Claim".equals(codeString))
3919          return FHIRAllTypes.CLAIM;
3920        if ("ClaimResponse".equals(codeString))
3921          return FHIRAllTypes.CLAIMRESPONSE;
3922        if ("ClinicalImpression".equals(codeString))
3923          return FHIRAllTypes.CLINICALIMPRESSION;
3924        if ("CodeSystem".equals(codeString))
3925          return FHIRAllTypes.CODESYSTEM;
3926        if ("Communication".equals(codeString))
3927          return FHIRAllTypes.COMMUNICATION;
3928        if ("CommunicationRequest".equals(codeString))
3929          return FHIRAllTypes.COMMUNICATIONREQUEST;
3930        if ("CompartmentDefinition".equals(codeString))
3931          return FHIRAllTypes.COMPARTMENTDEFINITION;
3932        if ("Composition".equals(codeString))
3933          return FHIRAllTypes.COMPOSITION;
3934        if ("ConceptMap".equals(codeString))
3935          return FHIRAllTypes.CONCEPTMAP;
3936        if ("Condition".equals(codeString))
3937          return FHIRAllTypes.CONDITION;
3938        if ("Consent".equals(codeString))
3939          return FHIRAllTypes.CONSENT;
3940        if ("Contract".equals(codeString))
3941          return FHIRAllTypes.CONTRACT;
3942        if ("Coverage".equals(codeString))
3943          return FHIRAllTypes.COVERAGE;
3944        if ("DataElement".equals(codeString))
3945          return FHIRAllTypes.DATAELEMENT;
3946        if ("DetectedIssue".equals(codeString))
3947          return FHIRAllTypes.DETECTEDISSUE;
3948        if ("Device".equals(codeString))
3949          return FHIRAllTypes.DEVICE;
3950        if ("DeviceComponent".equals(codeString))
3951          return FHIRAllTypes.DEVICECOMPONENT;
3952        if ("DeviceMetric".equals(codeString))
3953          return FHIRAllTypes.DEVICEMETRIC;
3954        if ("DeviceRequest".equals(codeString))
3955          return FHIRAllTypes.DEVICEREQUEST;
3956        if ("DeviceUseStatement".equals(codeString))
3957          return FHIRAllTypes.DEVICEUSESTATEMENT;
3958        if ("DiagnosticReport".equals(codeString))
3959          return FHIRAllTypes.DIAGNOSTICREPORT;
3960        if ("DocumentManifest".equals(codeString))
3961          return FHIRAllTypes.DOCUMENTMANIFEST;
3962        if ("DocumentReference".equals(codeString))
3963          return FHIRAllTypes.DOCUMENTREFERENCE;
3964        if ("DomainResource".equals(codeString))
3965          return FHIRAllTypes.DOMAINRESOURCE;
3966        if ("EligibilityRequest".equals(codeString))
3967          return FHIRAllTypes.ELIGIBILITYREQUEST;
3968        if ("EligibilityResponse".equals(codeString))
3969          return FHIRAllTypes.ELIGIBILITYRESPONSE;
3970        if ("Encounter".equals(codeString))
3971          return FHIRAllTypes.ENCOUNTER;
3972        if ("Endpoint".equals(codeString))
3973          return FHIRAllTypes.ENDPOINT;
3974        if ("EnrollmentRequest".equals(codeString))
3975          return FHIRAllTypes.ENROLLMENTREQUEST;
3976        if ("EnrollmentResponse".equals(codeString))
3977          return FHIRAllTypes.ENROLLMENTRESPONSE;
3978        if ("EpisodeOfCare".equals(codeString))
3979          return FHIRAllTypes.EPISODEOFCARE;
3980        if ("ExpansionProfile".equals(codeString))
3981          return FHIRAllTypes.EXPANSIONPROFILE;
3982        if ("ExplanationOfBenefit".equals(codeString))
3983          return FHIRAllTypes.EXPLANATIONOFBENEFIT;
3984        if ("FamilyMemberHistory".equals(codeString))
3985          return FHIRAllTypes.FAMILYMEMBERHISTORY;
3986        if ("Flag".equals(codeString))
3987          return FHIRAllTypes.FLAG;
3988        if ("Goal".equals(codeString))
3989          return FHIRAllTypes.GOAL;
3990        if ("GraphDefinition".equals(codeString))
3991          return FHIRAllTypes.GRAPHDEFINITION;
3992        if ("Group".equals(codeString))
3993          return FHIRAllTypes.GROUP;
3994        if ("GuidanceResponse".equals(codeString))
3995          return FHIRAllTypes.GUIDANCERESPONSE;
3996        if ("HealthcareService".equals(codeString))
3997          return FHIRAllTypes.HEALTHCARESERVICE;
3998        if ("ImagingManifest".equals(codeString))
3999          return FHIRAllTypes.IMAGINGMANIFEST;
4000        if ("ImagingStudy".equals(codeString))
4001          return FHIRAllTypes.IMAGINGSTUDY;
4002        if ("Immunization".equals(codeString))
4003          return FHIRAllTypes.IMMUNIZATION;
4004        if ("ImmunizationRecommendation".equals(codeString))
4005          return FHIRAllTypes.IMMUNIZATIONRECOMMENDATION;
4006        if ("ImplementationGuide".equals(codeString))
4007          return FHIRAllTypes.IMPLEMENTATIONGUIDE;
4008        if ("Library".equals(codeString))
4009          return FHIRAllTypes.LIBRARY;
4010        if ("Linkage".equals(codeString))
4011          return FHIRAllTypes.LINKAGE;
4012        if ("List".equals(codeString))
4013          return FHIRAllTypes.LIST;
4014        if ("Location".equals(codeString))
4015          return FHIRAllTypes.LOCATION;
4016        if ("Measure".equals(codeString))
4017          return FHIRAllTypes.MEASURE;
4018        if ("MeasureReport".equals(codeString))
4019          return FHIRAllTypes.MEASUREREPORT;
4020        if ("Media".equals(codeString))
4021          return FHIRAllTypes.MEDIA;
4022        if ("Medication".equals(codeString))
4023          return FHIRAllTypes.MEDICATION;
4024        if ("MedicationAdministration".equals(codeString))
4025          return FHIRAllTypes.MEDICATIONADMINISTRATION;
4026        if ("MedicationDispense".equals(codeString))
4027          return FHIRAllTypes.MEDICATIONDISPENSE;
4028        if ("MedicationRequest".equals(codeString))
4029          return FHIRAllTypes.MEDICATIONREQUEST;
4030        if ("MedicationStatement".equals(codeString))
4031          return FHIRAllTypes.MEDICATIONSTATEMENT;
4032        if ("MessageDefinition".equals(codeString))
4033          return FHIRAllTypes.MESSAGEDEFINITION;
4034        if ("MessageHeader".equals(codeString))
4035          return FHIRAllTypes.MESSAGEHEADER;
4036        if ("NamingSystem".equals(codeString))
4037          return FHIRAllTypes.NAMINGSYSTEM;
4038        if ("NutritionOrder".equals(codeString))
4039          return FHIRAllTypes.NUTRITIONORDER;
4040        if ("Observation".equals(codeString))
4041          return FHIRAllTypes.OBSERVATION;
4042        if ("OperationDefinition".equals(codeString))
4043          return FHIRAllTypes.OPERATIONDEFINITION;
4044        if ("OperationOutcome".equals(codeString))
4045          return FHIRAllTypes.OPERATIONOUTCOME;
4046        if ("Organization".equals(codeString))
4047          return FHIRAllTypes.ORGANIZATION;
4048        if ("Parameters".equals(codeString))
4049          return FHIRAllTypes.PARAMETERS;
4050        if ("Patient".equals(codeString))
4051          return FHIRAllTypes.PATIENT;
4052        if ("PaymentNotice".equals(codeString))
4053          return FHIRAllTypes.PAYMENTNOTICE;
4054        if ("PaymentReconciliation".equals(codeString))
4055          return FHIRAllTypes.PAYMENTRECONCILIATION;
4056        if ("Person".equals(codeString))
4057          return FHIRAllTypes.PERSON;
4058        if ("PlanDefinition".equals(codeString))
4059          return FHIRAllTypes.PLANDEFINITION;
4060        if ("Practitioner".equals(codeString))
4061          return FHIRAllTypes.PRACTITIONER;
4062        if ("PractitionerRole".equals(codeString))
4063          return FHIRAllTypes.PRACTITIONERROLE;
4064        if ("Procedure".equals(codeString))
4065          return FHIRAllTypes.PROCEDURE;
4066        if ("ProcedureRequest".equals(codeString))
4067          return FHIRAllTypes.PROCEDUREREQUEST;
4068        if ("ProcessRequest".equals(codeString))
4069          return FHIRAllTypes.PROCESSREQUEST;
4070        if ("ProcessResponse".equals(codeString))
4071          return FHIRAllTypes.PROCESSRESPONSE;
4072        if ("Provenance".equals(codeString))
4073          return FHIRAllTypes.PROVENANCE;
4074        if ("Questionnaire".equals(codeString))
4075          return FHIRAllTypes.QUESTIONNAIRE;
4076        if ("QuestionnaireResponse".equals(codeString))
4077          return FHIRAllTypes.QUESTIONNAIRERESPONSE;
4078        if ("ReferralRequest".equals(codeString))
4079          return FHIRAllTypes.REFERRALREQUEST;
4080        if ("RelatedPerson".equals(codeString))
4081          return FHIRAllTypes.RELATEDPERSON;
4082        if ("RequestGroup".equals(codeString))
4083          return FHIRAllTypes.REQUESTGROUP;
4084        if ("ResearchStudy".equals(codeString))
4085          return FHIRAllTypes.RESEARCHSTUDY;
4086        if ("ResearchSubject".equals(codeString))
4087          return FHIRAllTypes.RESEARCHSUBJECT;
4088        if ("Resource".equals(codeString))
4089          return FHIRAllTypes.RESOURCE;
4090        if ("RiskAssessment".equals(codeString))
4091          return FHIRAllTypes.RISKASSESSMENT;
4092        if ("Schedule".equals(codeString))
4093          return FHIRAllTypes.SCHEDULE;
4094        if ("SearchParameter".equals(codeString))
4095          return FHIRAllTypes.SEARCHPARAMETER;
4096        if ("Sequence".equals(codeString))
4097          return FHIRAllTypes.SEQUENCE;
4098        if ("ServiceDefinition".equals(codeString))
4099          return FHIRAllTypes.SERVICEDEFINITION;
4100        if ("Slot".equals(codeString))
4101          return FHIRAllTypes.SLOT;
4102        if ("Specimen".equals(codeString))
4103          return FHIRAllTypes.SPECIMEN;
4104        if ("StructureDefinition".equals(codeString))
4105          return FHIRAllTypes.STRUCTUREDEFINITION;
4106        if ("StructureMap".equals(codeString))
4107          return FHIRAllTypes.STRUCTUREMAP;
4108        if ("Subscription".equals(codeString))
4109          return FHIRAllTypes.SUBSCRIPTION;
4110        if ("Substance".equals(codeString))
4111          return FHIRAllTypes.SUBSTANCE;
4112        if ("SupplyDelivery".equals(codeString))
4113          return FHIRAllTypes.SUPPLYDELIVERY;
4114        if ("SupplyRequest".equals(codeString))
4115          return FHIRAllTypes.SUPPLYREQUEST;
4116        if ("Task".equals(codeString))
4117          return FHIRAllTypes.TASK;
4118        if ("TestReport".equals(codeString))
4119          return FHIRAllTypes.TESTREPORT;
4120        if ("TestScript".equals(codeString))
4121          return FHIRAllTypes.TESTSCRIPT;
4122        if ("ValueSet".equals(codeString))
4123          return FHIRAllTypes.VALUESET;
4124        if ("VisionPrescription".equals(codeString))
4125          return FHIRAllTypes.VISIONPRESCRIPTION;
4126        if ("Type".equals(codeString))
4127          return FHIRAllTypes.TYPE;
4128        if ("Any".equals(codeString))
4129          return FHIRAllTypes.ANY;
4130        throw new IllegalArgumentException("Unknown FHIRAllTypes code '"+codeString+"'");
4131        }
4132        public Enumeration<FHIRAllTypes> fromType(Base code) throws FHIRException {
4133          if (code == null)
4134            return null;
4135          if (code.isEmpty())
4136            return new Enumeration<FHIRAllTypes>(this);
4137          String codeString = ((PrimitiveType) code).asStringValue();
4138          if (codeString == null || "".equals(codeString))
4139            return null;
4140        if ("Address".equals(codeString))
4141          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ADDRESS);
4142        if ("Age".equals(codeString))
4143          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.AGE);
4144        if ("Annotation".equals(codeString))
4145          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ANNOTATION);
4146        if ("Attachment".equals(codeString))
4147          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ATTACHMENT);
4148        if ("BackboneElement".equals(codeString))
4149          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BACKBONEELEMENT);
4150        if ("CodeableConcept".equals(codeString))
4151          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODEABLECONCEPT);
4152        if ("Coding".equals(codeString))
4153          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODING);
4154        if ("ContactDetail".equals(codeString))
4155          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTACTDETAIL);
4156        if ("ContactPoint".equals(codeString))
4157          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTACTPOINT);
4158        if ("Contributor".equals(codeString))
4159          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTRIBUTOR);
4160        if ("Count".equals(codeString))
4161          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COUNT);
4162        if ("DataRequirement".equals(codeString))
4163          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATAREQUIREMENT);
4164        if ("Distance".equals(codeString))
4165          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DISTANCE);
4166        if ("Dosage".equals(codeString))
4167          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOSAGE);
4168        if ("Duration".equals(codeString))
4169          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DURATION);
4170        if ("Element".equals(codeString))
4171          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELEMENT);
4172        if ("ElementDefinition".equals(codeString))
4173          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELEMENTDEFINITION);
4174        if ("Extension".equals(codeString))
4175          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXTENSION);
4176        if ("HumanName".equals(codeString))
4177          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.HUMANNAME);
4178        if ("Identifier".equals(codeString))
4179          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IDENTIFIER);
4180        if ("Meta".equals(codeString))
4181          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.META);
4182        if ("Money".equals(codeString))
4183          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MONEY);
4184        if ("Narrative".equals(codeString))
4185          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NARRATIVE);
4186        if ("ParameterDefinition".equals(codeString))
4187          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PARAMETERDEFINITION);
4188        if ("Period".equals(codeString))
4189          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PERIOD);
4190        if ("Quantity".equals(codeString))
4191          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUANTITY);
4192        if ("Range".equals(codeString))
4193          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RANGE);
4194        if ("Ratio".equals(codeString))
4195          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RATIO);
4196        if ("Reference".equals(codeString))
4197          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.REFERENCE);
4198        if ("RelatedArtifact".equals(codeString))
4199          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RELATEDARTIFACT);
4200        if ("SampledData".equals(codeString))
4201          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SAMPLEDDATA);
4202        if ("Signature".equals(codeString))
4203          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SIGNATURE);
4204        if ("SimpleQuantity".equals(codeString))
4205          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SIMPLEQUANTITY);
4206        if ("Timing".equals(codeString))
4207          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TIMING);
4208        if ("TriggerDefinition".equals(codeString))
4209          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TRIGGERDEFINITION);
4210        if ("UsageContext".equals(codeString))
4211          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.USAGECONTEXT);
4212        if ("base64Binary".equals(codeString))
4213          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BASE64BINARY);
4214        if ("boolean".equals(codeString))
4215          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BOOLEAN);
4216        if ("code".equals(codeString))
4217          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODE);
4218        if ("date".equals(codeString))
4219          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATE);
4220        if ("dateTime".equals(codeString))
4221          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATETIME);
4222        if ("decimal".equals(codeString))
4223          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DECIMAL);
4224        if ("id".equals(codeString))
4225          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ID);
4226        if ("instant".equals(codeString))
4227          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INSTANT);
4228        if ("integer".equals(codeString))
4229          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.INTEGER);
4230        if ("markdown".equals(codeString))
4231          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MARKDOWN);
4232        if ("oid".equals(codeString))
4233          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OID);
4234        if ("positiveInt".equals(codeString))
4235          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.POSITIVEINT);
4236        if ("string".equals(codeString))
4237          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRING);
4238        if ("time".equals(codeString))
4239          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TIME);
4240        if ("unsignedInt".equals(codeString))
4241          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.UNSIGNEDINT);
4242        if ("uri".equals(codeString))
4243          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.URI);
4244        if ("uuid".equals(codeString))
4245          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.UUID);
4246        if ("xhtml".equals(codeString))
4247          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.XHTML);
4248        if ("Account".equals(codeString))
4249          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ACCOUNT);
4250        if ("ActivityDefinition".equals(codeString))
4251          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ACTIVITYDEFINITION);
4252        if ("AdverseEvent".equals(codeString))
4253          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ADVERSEEVENT);
4254        if ("AllergyIntolerance".equals(codeString))
4255          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ALLERGYINTOLERANCE);
4256        if ("Appointment".equals(codeString))
4257          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.APPOINTMENT);
4258        if ("AppointmentResponse".equals(codeString))
4259          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.APPOINTMENTRESPONSE);
4260        if ("AuditEvent".equals(codeString))
4261          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.AUDITEVENT);
4262        if ("Basic".equals(codeString))
4263          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BASIC);
4264        if ("Binary".equals(codeString))
4265          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BINARY);
4266        if ("BodySite".equals(codeString))
4267          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BODYSITE);
4268        if ("Bundle".equals(codeString))
4269          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.BUNDLE);
4270        if ("CapabilityStatement".equals(codeString))
4271          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CAPABILITYSTATEMENT);
4272        if ("CarePlan".equals(codeString))
4273          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CAREPLAN);
4274        if ("CareTeam".equals(codeString))
4275          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CARETEAM);
4276        if ("ChargeItem".equals(codeString))
4277          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CHARGEITEM);
4278        if ("Claim".equals(codeString))
4279          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLAIM);
4280        if ("ClaimResponse".equals(codeString))
4281          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLAIMRESPONSE);
4282        if ("ClinicalImpression".equals(codeString))
4283          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CLINICALIMPRESSION);
4284        if ("CodeSystem".equals(codeString))
4285          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CODESYSTEM);
4286        if ("Communication".equals(codeString))
4287          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMMUNICATION);
4288        if ("CommunicationRequest".equals(codeString))
4289          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMMUNICATIONREQUEST);
4290        if ("CompartmentDefinition".equals(codeString))
4291          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMPARTMENTDEFINITION);
4292        if ("Composition".equals(codeString))
4293          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COMPOSITION);
4294        if ("ConceptMap".equals(codeString))
4295          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONCEPTMAP);
4296        if ("Condition".equals(codeString))
4297          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONDITION);
4298        if ("Consent".equals(codeString))
4299          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONSENT);
4300        if ("Contract".equals(codeString))
4301          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.CONTRACT);
4302        if ("Coverage".equals(codeString))
4303          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.COVERAGE);
4304        if ("DataElement".equals(codeString))
4305          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DATAELEMENT);
4306        if ("DetectedIssue".equals(codeString))
4307          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DETECTEDISSUE);
4308        if ("Device".equals(codeString))
4309          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICE);
4310        if ("DeviceComponent".equals(codeString))
4311          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICECOMPONENT);
4312        if ("DeviceMetric".equals(codeString))
4313          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEMETRIC);
4314        if ("DeviceRequest".equals(codeString))
4315          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEREQUEST);
4316        if ("DeviceUseStatement".equals(codeString))
4317          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DEVICEUSESTATEMENT);
4318        if ("DiagnosticReport".equals(codeString))
4319          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DIAGNOSTICREPORT);
4320        if ("DocumentManifest".equals(codeString))
4321          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOCUMENTMANIFEST);
4322        if ("DocumentReference".equals(codeString))
4323          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOCUMENTREFERENCE);
4324        if ("DomainResource".equals(codeString))
4325          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.DOMAINRESOURCE);
4326        if ("EligibilityRequest".equals(codeString))
4327          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELIGIBILITYREQUEST);
4328        if ("EligibilityResponse".equals(codeString))
4329          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ELIGIBILITYRESPONSE);
4330        if ("Encounter".equals(codeString))
4331          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENCOUNTER);
4332        if ("Endpoint".equals(codeString))
4333          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENDPOINT);
4334        if ("EnrollmentRequest".equals(codeString))
4335          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENROLLMENTREQUEST);
4336        if ("EnrollmentResponse".equals(codeString))
4337          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ENROLLMENTRESPONSE);
4338        if ("EpisodeOfCare".equals(codeString))
4339          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EPISODEOFCARE);
4340        if ("ExpansionProfile".equals(codeString))
4341          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXPANSIONPROFILE);
4342        if ("ExplanationOfBenefit".equals(codeString))
4343          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.EXPLANATIONOFBENEFIT);
4344        if ("FamilyMemberHistory".equals(codeString))
4345          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.FAMILYMEMBERHISTORY);
4346        if ("Flag".equals(codeString))
4347          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.FLAG);
4348        if ("Goal".equals(codeString))
4349          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GOAL);
4350        if ("GraphDefinition".equals(codeString))
4351          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GRAPHDEFINITION);
4352        if ("Group".equals(codeString))
4353          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GROUP);
4354        if ("GuidanceResponse".equals(codeString))
4355          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.GUIDANCERESPONSE);
4356        if ("HealthcareService".equals(codeString))
4357          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.HEALTHCARESERVICE);
4358        if ("ImagingManifest".equals(codeString))
4359          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMAGINGMANIFEST);
4360        if ("ImagingStudy".equals(codeString))
4361          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMAGINGSTUDY);
4362        if ("Immunization".equals(codeString))
4363          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMMUNIZATION);
4364        if ("ImmunizationRecommendation".equals(codeString))
4365          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMMUNIZATIONRECOMMENDATION);
4366        if ("ImplementationGuide".equals(codeString))
4367          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.IMPLEMENTATIONGUIDE);
4368        if ("Library".equals(codeString))
4369          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LIBRARY);
4370        if ("Linkage".equals(codeString))
4371          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LINKAGE);
4372        if ("List".equals(codeString))
4373          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LIST);
4374        if ("Location".equals(codeString))
4375          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.LOCATION);
4376        if ("Measure".equals(codeString))
4377          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEASURE);
4378        if ("MeasureReport".equals(codeString))
4379          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEASUREREPORT);
4380        if ("Media".equals(codeString))
4381          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDIA);
4382        if ("Medication".equals(codeString))
4383          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATION);
4384        if ("MedicationAdministration".equals(codeString))
4385          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONADMINISTRATION);
4386        if ("MedicationDispense".equals(codeString))
4387          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONDISPENSE);
4388        if ("MedicationRequest".equals(codeString))
4389          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONREQUEST);
4390        if ("MedicationStatement".equals(codeString))
4391          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MEDICATIONSTATEMENT);
4392        if ("MessageDefinition".equals(codeString))
4393          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MESSAGEDEFINITION);
4394        if ("MessageHeader".equals(codeString))
4395          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.MESSAGEHEADER);
4396        if ("NamingSystem".equals(codeString))
4397          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NAMINGSYSTEM);
4398        if ("NutritionOrder".equals(codeString))
4399          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.NUTRITIONORDER);
4400        if ("Observation".equals(codeString))
4401          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OBSERVATION);
4402        if ("OperationDefinition".equals(codeString))
4403          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OPERATIONDEFINITION);
4404        if ("OperationOutcome".equals(codeString))
4405          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.OPERATIONOUTCOME);
4406        if ("Organization".equals(codeString))
4407          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ORGANIZATION);
4408        if ("Parameters".equals(codeString))
4409          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PARAMETERS);
4410        if ("Patient".equals(codeString))
4411          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PATIENT);
4412        if ("PaymentNotice".equals(codeString))
4413          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PAYMENTNOTICE);
4414        if ("PaymentReconciliation".equals(codeString))
4415          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PAYMENTRECONCILIATION);
4416        if ("Person".equals(codeString))
4417          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PERSON);
4418        if ("PlanDefinition".equals(codeString))
4419          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PLANDEFINITION);
4420        if ("Practitioner".equals(codeString))
4421          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRACTITIONER);
4422        if ("PractitionerRole".equals(codeString))
4423          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PRACTITIONERROLE);
4424        if ("Procedure".equals(codeString))
4425          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCEDURE);
4426        if ("ProcedureRequest".equals(codeString))
4427          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCEDUREREQUEST);
4428        if ("ProcessRequest".equals(codeString))
4429          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCESSREQUEST);
4430        if ("ProcessResponse".equals(codeString))
4431          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROCESSRESPONSE);
4432        if ("Provenance".equals(codeString))
4433          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.PROVENANCE);
4434        if ("Questionnaire".equals(codeString))
4435          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUESTIONNAIRE);
4436        if ("QuestionnaireResponse".equals(codeString))
4437          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.QUESTIONNAIRERESPONSE);
4438        if ("ReferralRequest".equals(codeString))
4439          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.REFERRALREQUEST);
4440        if ("RelatedPerson".equals(codeString))
4441          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RELATEDPERSON);
4442        if ("RequestGroup".equals(codeString))
4443          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.REQUESTGROUP);
4444        if ("ResearchStudy".equals(codeString))
4445          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESEARCHSTUDY);
4446        if ("ResearchSubject".equals(codeString))
4447          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESEARCHSUBJECT);
4448        if ("Resource".equals(codeString))
4449          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RESOURCE);
4450        if ("RiskAssessment".equals(codeString))
4451          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.RISKASSESSMENT);
4452        if ("Schedule".equals(codeString))
4453          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SCHEDULE);
4454        if ("SearchParameter".equals(codeString))
4455          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SEARCHPARAMETER);
4456        if ("Sequence".equals(codeString))
4457          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SEQUENCE);
4458        if ("ServiceDefinition".equals(codeString))
4459          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SERVICEDEFINITION);
4460        if ("Slot".equals(codeString))
4461          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SLOT);
4462        if ("Specimen".equals(codeString))
4463          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SPECIMEN);
4464        if ("StructureDefinition".equals(codeString))
4465          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRUCTUREDEFINITION);
4466        if ("StructureMap".equals(codeString))
4467          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.STRUCTUREMAP);
4468        if ("Subscription".equals(codeString))
4469          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSCRIPTION);
4470        if ("Substance".equals(codeString))
4471          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUBSTANCE);
4472        if ("SupplyDelivery".equals(codeString))
4473          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUPPLYDELIVERY);
4474        if ("SupplyRequest".equals(codeString))
4475          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.SUPPLYREQUEST);
4476        if ("Task".equals(codeString))
4477          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TASK);
4478        if ("TestReport".equals(codeString))
4479          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TESTREPORT);
4480        if ("TestScript".equals(codeString))
4481          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TESTSCRIPT);
4482        if ("ValueSet".equals(codeString))
4483          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.VALUESET);
4484        if ("VisionPrescription".equals(codeString))
4485          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.VISIONPRESCRIPTION);
4486        if ("Type".equals(codeString))
4487          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.TYPE);
4488        if ("Any".equals(codeString))
4489          return new Enumeration<FHIRAllTypes>(this, FHIRAllTypes.ANY);
4490        throw new FHIRException("Unknown FHIRAllTypes code '"+codeString+"'");
4491        }
4492    public String toCode(FHIRAllTypes code) {
4493      if (code == FHIRAllTypes.ADDRESS)
4494        return "Address";
4495      if (code == FHIRAllTypes.AGE)
4496        return "Age";
4497      if (code == FHIRAllTypes.ANNOTATION)
4498        return "Annotation";
4499      if (code == FHIRAllTypes.ATTACHMENT)
4500        return "Attachment";
4501      if (code == FHIRAllTypes.BACKBONEELEMENT)
4502        return "BackboneElement";
4503      if (code == FHIRAllTypes.CODEABLECONCEPT)
4504        return "CodeableConcept";
4505      if (code == FHIRAllTypes.CODING)
4506        return "Coding";
4507      if (code == FHIRAllTypes.CONTACTDETAIL)
4508        return "ContactDetail";
4509      if (code == FHIRAllTypes.CONTACTPOINT)
4510        return "ContactPoint";
4511      if (code == FHIRAllTypes.CONTRIBUTOR)
4512        return "Contributor";
4513      if (code == FHIRAllTypes.COUNT)
4514        return "Count";
4515      if (code == FHIRAllTypes.DATAREQUIREMENT)
4516        return "DataRequirement";
4517      if (code == FHIRAllTypes.DISTANCE)
4518        return "Distance";
4519      if (code == FHIRAllTypes.DOSAGE)
4520        return "Dosage";
4521      if (code == FHIRAllTypes.DURATION)
4522        return "Duration";
4523      if (code == FHIRAllTypes.ELEMENT)
4524        return "Element";
4525      if (code == FHIRAllTypes.ELEMENTDEFINITION)
4526        return "ElementDefinition";
4527      if (code == FHIRAllTypes.EXTENSION)
4528        return "Extension";
4529      if (code == FHIRAllTypes.HUMANNAME)
4530        return "HumanName";
4531      if (code == FHIRAllTypes.IDENTIFIER)
4532        return "Identifier";
4533      if (code == FHIRAllTypes.META)
4534        return "Meta";
4535      if (code == FHIRAllTypes.MONEY)
4536        return "Money";
4537      if (code == FHIRAllTypes.NARRATIVE)
4538        return "Narrative";
4539      if (code == FHIRAllTypes.PARAMETERDEFINITION)
4540        return "ParameterDefinition";
4541      if (code == FHIRAllTypes.PERIOD)
4542        return "Period";
4543      if (code == FHIRAllTypes.QUANTITY)
4544        return "Quantity";
4545      if (code == FHIRAllTypes.RANGE)
4546        return "Range";
4547      if (code == FHIRAllTypes.RATIO)
4548        return "Ratio";
4549      if (code == FHIRAllTypes.REFERENCE)
4550        return "Reference";
4551      if (code == FHIRAllTypes.RELATEDARTIFACT)
4552        return "RelatedArtifact";
4553      if (code == FHIRAllTypes.SAMPLEDDATA)
4554        return "SampledData";
4555      if (code == FHIRAllTypes.SIGNATURE)
4556        return "Signature";
4557      if (code == FHIRAllTypes.SIMPLEQUANTITY)
4558        return "SimpleQuantity";
4559      if (code == FHIRAllTypes.TIMING)
4560        return "Timing";
4561      if (code == FHIRAllTypes.TRIGGERDEFINITION)
4562        return "TriggerDefinition";
4563      if (code == FHIRAllTypes.USAGECONTEXT)
4564        return "UsageContext";
4565      if (code == FHIRAllTypes.BASE64BINARY)
4566        return "base64Binary";
4567      if (code == FHIRAllTypes.BOOLEAN)
4568        return "boolean";
4569      if (code == FHIRAllTypes.CODE)
4570        return "code";
4571      if (code == FHIRAllTypes.DATE)
4572        return "date";
4573      if (code == FHIRAllTypes.DATETIME)
4574        return "dateTime";
4575      if (code == FHIRAllTypes.DECIMAL)
4576        return "decimal";
4577      if (code == FHIRAllTypes.ID)
4578        return "id";
4579      if (code == FHIRAllTypes.INSTANT)
4580        return "instant";
4581      if (code == FHIRAllTypes.INTEGER)
4582        return "integer";
4583      if (code == FHIRAllTypes.MARKDOWN)
4584        return "markdown";
4585      if (code == FHIRAllTypes.OID)
4586        return "oid";
4587      if (code == FHIRAllTypes.POSITIVEINT)
4588        return "positiveInt";
4589      if (code == FHIRAllTypes.STRING)
4590        return "string";
4591      if (code == FHIRAllTypes.TIME)
4592        return "time";
4593      if (code == FHIRAllTypes.UNSIGNEDINT)
4594        return "unsignedInt";
4595      if (code == FHIRAllTypes.URI)
4596        return "uri";
4597      if (code == FHIRAllTypes.UUID)
4598        return "uuid";
4599      if (code == FHIRAllTypes.XHTML)
4600        return "xhtml";
4601      if (code == FHIRAllTypes.ACCOUNT)
4602        return "Account";
4603      if (code == FHIRAllTypes.ACTIVITYDEFINITION)
4604        return "ActivityDefinition";
4605      if (code == FHIRAllTypes.ADVERSEEVENT)
4606        return "AdverseEvent";
4607      if (code == FHIRAllTypes.ALLERGYINTOLERANCE)
4608        return "AllergyIntolerance";
4609      if (code == FHIRAllTypes.APPOINTMENT)
4610        return "Appointment";
4611      if (code == FHIRAllTypes.APPOINTMENTRESPONSE)
4612        return "AppointmentResponse";
4613      if (code == FHIRAllTypes.AUDITEVENT)
4614        return "AuditEvent";
4615      if (code == FHIRAllTypes.BASIC)
4616        return "Basic";
4617      if (code == FHIRAllTypes.BINARY)
4618        return "Binary";
4619      if (code == FHIRAllTypes.BODYSITE)
4620        return "BodySite";
4621      if (code == FHIRAllTypes.BUNDLE)
4622        return "Bundle";
4623      if (code == FHIRAllTypes.CAPABILITYSTATEMENT)
4624        return "CapabilityStatement";
4625      if (code == FHIRAllTypes.CAREPLAN)
4626        return "CarePlan";
4627      if (code == FHIRAllTypes.CARETEAM)
4628        return "CareTeam";
4629      if (code == FHIRAllTypes.CHARGEITEM)
4630        return "ChargeItem";
4631      if (code == FHIRAllTypes.CLAIM)
4632        return "Claim";
4633      if (code == FHIRAllTypes.CLAIMRESPONSE)
4634        return "ClaimResponse";
4635      if (code == FHIRAllTypes.CLINICALIMPRESSION)
4636        return "ClinicalImpression";
4637      if (code == FHIRAllTypes.CODESYSTEM)
4638        return "CodeSystem";
4639      if (code == FHIRAllTypes.COMMUNICATION)
4640        return "Communication";
4641      if (code == FHIRAllTypes.COMMUNICATIONREQUEST)
4642        return "CommunicationRequest";
4643      if (code == FHIRAllTypes.COMPARTMENTDEFINITION)
4644        return "CompartmentDefinition";
4645      if (code == FHIRAllTypes.COMPOSITION)
4646        return "Composition";
4647      if (code == FHIRAllTypes.CONCEPTMAP)
4648        return "ConceptMap";
4649      if (code == FHIRAllTypes.CONDITION)
4650        return "Condition";
4651      if (code == FHIRAllTypes.CONSENT)
4652        return "Consent";
4653      if (code == FHIRAllTypes.CONTRACT)
4654        return "Contract";
4655      if (code == FHIRAllTypes.COVERAGE)
4656        return "Coverage";
4657      if (code == FHIRAllTypes.DATAELEMENT)
4658        return "DataElement";
4659      if (code == FHIRAllTypes.DETECTEDISSUE)
4660        return "DetectedIssue";
4661      if (code == FHIRAllTypes.DEVICE)
4662        return "Device";
4663      if (code == FHIRAllTypes.DEVICECOMPONENT)
4664        return "DeviceComponent";
4665      if (code == FHIRAllTypes.DEVICEMETRIC)
4666        return "DeviceMetric";
4667      if (code == FHIRAllTypes.DEVICEREQUEST)
4668        return "DeviceRequest";
4669      if (code == FHIRAllTypes.DEVICEUSESTATEMENT)
4670        return "DeviceUseStatement";
4671      if (code == FHIRAllTypes.DIAGNOSTICREPORT)
4672        return "DiagnosticReport";
4673      if (code == FHIRAllTypes.DOCUMENTMANIFEST)
4674        return "DocumentManifest";
4675      if (code == FHIRAllTypes.DOCUMENTREFERENCE)
4676        return "DocumentReference";
4677      if (code == FHIRAllTypes.DOMAINRESOURCE)
4678        return "DomainResource";
4679      if (code == FHIRAllTypes.ELIGIBILITYREQUEST)
4680        return "EligibilityRequest";
4681      if (code == FHIRAllTypes.ELIGIBILITYRESPONSE)
4682        return "EligibilityResponse";
4683      if (code == FHIRAllTypes.ENCOUNTER)
4684        return "Encounter";
4685      if (code == FHIRAllTypes.ENDPOINT)
4686        return "Endpoint";
4687      if (code == FHIRAllTypes.ENROLLMENTREQUEST)
4688        return "EnrollmentRequest";
4689      if (code == FHIRAllTypes.ENROLLMENTRESPONSE)
4690        return "EnrollmentResponse";
4691      if (code == FHIRAllTypes.EPISODEOFCARE)
4692        return "EpisodeOfCare";
4693      if (code == FHIRAllTypes.EXPANSIONPROFILE)
4694        return "ExpansionProfile";
4695      if (code == FHIRAllTypes.EXPLANATIONOFBENEFIT)
4696        return "ExplanationOfBenefit";
4697      if (code == FHIRAllTypes.FAMILYMEMBERHISTORY)
4698        return "FamilyMemberHistory";
4699      if (code == FHIRAllTypes.FLAG)
4700        return "Flag";
4701      if (code == FHIRAllTypes.GOAL)
4702        return "Goal";
4703      if (code == FHIRAllTypes.GRAPHDEFINITION)
4704        return "GraphDefinition";
4705      if (code == FHIRAllTypes.GROUP)
4706        return "Group";
4707      if (code == FHIRAllTypes.GUIDANCERESPONSE)
4708        return "GuidanceResponse";
4709      if (code == FHIRAllTypes.HEALTHCARESERVICE)
4710        return "HealthcareService";
4711      if (code == FHIRAllTypes.IMAGINGMANIFEST)
4712        return "ImagingManifest";
4713      if (code == FHIRAllTypes.IMAGINGSTUDY)
4714        return "ImagingStudy";
4715      if (code == FHIRAllTypes.IMMUNIZATION)
4716        return "Immunization";
4717      if (code == FHIRAllTypes.IMMUNIZATIONRECOMMENDATION)
4718        return "ImmunizationRecommendation";
4719      if (code == FHIRAllTypes.IMPLEMENTATIONGUIDE)
4720        return "ImplementationGuide";
4721      if (code == FHIRAllTypes.LIBRARY)
4722        return "Library";
4723      if (code == FHIRAllTypes.LINKAGE)
4724        return "Linkage";
4725      if (code == FHIRAllTypes.LIST)
4726        return "List";
4727      if (code == FHIRAllTypes.LOCATION)
4728        return "Location";
4729      if (code == FHIRAllTypes.MEASURE)
4730        return "Measure";
4731      if (code == FHIRAllTypes.MEASUREREPORT)
4732        return "MeasureReport";
4733      if (code == FHIRAllTypes.MEDIA)
4734        return "Media";
4735      if (code == FHIRAllTypes.MEDICATION)
4736        return "Medication";
4737      if (code == FHIRAllTypes.MEDICATIONADMINISTRATION)
4738        return "MedicationAdministration";
4739      if (code == FHIRAllTypes.MEDICATIONDISPENSE)
4740        return "MedicationDispense";
4741      if (code == FHIRAllTypes.MEDICATIONREQUEST)
4742        return "MedicationRequest";
4743      if (code == FHIRAllTypes.MEDICATIONSTATEMENT)
4744        return "MedicationStatement";
4745      if (code == FHIRAllTypes.MESSAGEDEFINITION)
4746        return "MessageDefinition";
4747      if (code == FHIRAllTypes.MESSAGEHEADER)
4748        return "MessageHeader";
4749      if (code == FHIRAllTypes.NAMINGSYSTEM)
4750        return "NamingSystem";
4751      if (code == FHIRAllTypes.NUTRITIONORDER)
4752        return "NutritionOrder";
4753      if (code == FHIRAllTypes.OBSERVATION)
4754        return "Observation";
4755      if (code == FHIRAllTypes.OPERATIONDEFINITION)
4756        return "OperationDefinition";
4757      if (code == FHIRAllTypes.OPERATIONOUTCOME)
4758        return "OperationOutcome";
4759      if (code == FHIRAllTypes.ORGANIZATION)
4760        return "Organization";
4761      if (code == FHIRAllTypes.PARAMETERS)
4762        return "Parameters";
4763      if (code == FHIRAllTypes.PATIENT)
4764        return "Patient";
4765      if (code == FHIRAllTypes.PAYMENTNOTICE)
4766        return "PaymentNotice";
4767      if (code == FHIRAllTypes.PAYMENTRECONCILIATION)
4768        return "PaymentReconciliation";
4769      if (code == FHIRAllTypes.PERSON)
4770        return "Person";
4771      if (code == FHIRAllTypes.PLANDEFINITION)
4772        return "PlanDefinition";
4773      if (code == FHIRAllTypes.PRACTITIONER)
4774        return "Practitioner";
4775      if (code == FHIRAllTypes.PRACTITIONERROLE)
4776        return "PractitionerRole";
4777      if (code == FHIRAllTypes.PROCEDURE)
4778        return "Procedure";
4779      if (code == FHIRAllTypes.PROCEDUREREQUEST)
4780        return "ProcedureRequest";
4781      if (code == FHIRAllTypes.PROCESSREQUEST)
4782        return "ProcessRequest";
4783      if (code == FHIRAllTypes.PROCESSRESPONSE)
4784        return "ProcessResponse";
4785      if (code == FHIRAllTypes.PROVENANCE)
4786        return "Provenance";
4787      if (code == FHIRAllTypes.QUESTIONNAIRE)
4788        return "Questionnaire";
4789      if (code == FHIRAllTypes.QUESTIONNAIRERESPONSE)
4790        return "QuestionnaireResponse";
4791      if (code == FHIRAllTypes.REFERRALREQUEST)
4792        return "ReferralRequest";
4793      if (code == FHIRAllTypes.RELATEDPERSON)
4794        return "RelatedPerson";
4795      if (code == FHIRAllTypes.REQUESTGROUP)
4796        return "RequestGroup";
4797      if (code == FHIRAllTypes.RESEARCHSTUDY)
4798        return "ResearchStudy";
4799      if (code == FHIRAllTypes.RESEARCHSUBJECT)
4800        return "ResearchSubject";
4801      if (code == FHIRAllTypes.RESOURCE)
4802        return "Resource";
4803      if (code == FHIRAllTypes.RISKASSESSMENT)
4804        return "RiskAssessment";
4805      if (code == FHIRAllTypes.SCHEDULE)
4806        return "Schedule";
4807      if (code == FHIRAllTypes.SEARCHPARAMETER)
4808        return "SearchParameter";
4809      if (code == FHIRAllTypes.SEQUENCE)
4810        return "Sequence";
4811      if (code == FHIRAllTypes.SERVICEDEFINITION)
4812        return "ServiceDefinition";
4813      if (code == FHIRAllTypes.SLOT)
4814        return "Slot";
4815      if (code == FHIRAllTypes.SPECIMEN)
4816        return "Specimen";
4817      if (code == FHIRAllTypes.STRUCTUREDEFINITION)
4818        return "StructureDefinition";
4819      if (code == FHIRAllTypes.STRUCTUREMAP)
4820        return "StructureMap";
4821      if (code == FHIRAllTypes.SUBSCRIPTION)
4822        return "Subscription";
4823      if (code == FHIRAllTypes.SUBSTANCE)
4824        return "Substance";
4825      if (code == FHIRAllTypes.SUPPLYDELIVERY)
4826        return "SupplyDelivery";
4827      if (code == FHIRAllTypes.SUPPLYREQUEST)
4828        return "SupplyRequest";
4829      if (code == FHIRAllTypes.TASK)
4830        return "Task";
4831      if (code == FHIRAllTypes.TESTREPORT)
4832        return "TestReport";
4833      if (code == FHIRAllTypes.TESTSCRIPT)
4834        return "TestScript";
4835      if (code == FHIRAllTypes.VALUESET)
4836        return "ValueSet";
4837      if (code == FHIRAllTypes.VISIONPRESCRIPTION)
4838        return "VisionPrescription";
4839      if (code == FHIRAllTypes.TYPE)
4840        return "Type";
4841      if (code == FHIRAllTypes.ANY)
4842        return "Any";
4843      return "?";
4844      }
4845    public String toSystem(FHIRAllTypes code) {
4846      return code.getSystem();
4847      }
4848    }
4849
4850    public enum FHIRDefinedType {
4851        /**
4852         * 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.
4853         */
4854        ADDRESS, 
4855        /**
4856         * A duration of time during which an organism (or a process) has existed.
4857         */
4858        AGE, 
4859        /**
4860         * A  text note which also  contains information about who made the statement and when.
4861         */
4862        ANNOTATION, 
4863        /**
4864         * For referring to data content defined in other formats.
4865         */
4866        ATTACHMENT, 
4867        /**
4868         * Base definition for all elements that are defined inside a resource - but not those in a data type.
4869         */
4870        BACKBONEELEMENT, 
4871        /**
4872         * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
4873         */
4874        CODEABLECONCEPT, 
4875        /**
4876         * A reference to a code defined by a terminology system.
4877         */
4878        CODING, 
4879        /**
4880         * Specifies contact information for a person or organization.
4881         */
4882        CONTACTDETAIL, 
4883        /**
4884         * Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
4885         */
4886        CONTACTPOINT, 
4887        /**
4888         * A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.
4889         */
4890        CONTRIBUTOR, 
4891        /**
4892         * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.
4893         */
4894        COUNT, 
4895        /**
4896         * Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.
4897         */
4898        DATAREQUIREMENT, 
4899        /**
4900         * A length - a value with a unit that is a physical distance.
4901         */
4902        DISTANCE, 
4903        /**
4904         * Indicates how the medication is/was taken or should be taken by the patient.
4905         */
4906        DOSAGE, 
4907        /**
4908         * A length of time.
4909         */
4910        DURATION, 
4911        /**
4912         * Base definition for all elements in a resource.
4913         */
4914        ELEMENT, 
4915        /**
4916         * Captures constraints on each element within the resource, profile, or extension.
4917         */
4918        ELEMENTDEFINITION, 
4919        /**
4920         * Optional Extension Element - found in all resources.
4921         */
4922        EXTENSION, 
4923        /**
4924         * A human's name with the ability to identify parts and usage.
4925         */
4926        HUMANNAME, 
4927        /**
4928         * A technical identifier - identifies some entity uniquely and unambiguously.
4929         */
4930        IDENTIFIER, 
4931        /**
4932         * The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.
4933         */
4934        META, 
4935        /**
4936         * An amount of economic utility in some recognized currency.
4937         */
4938        MONEY, 
4939        /**
4940         * A human-readable formatted text, including images.
4941         */
4942        NARRATIVE, 
4943        /**
4944         * 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.
4945         */
4946        PARAMETERDEFINITION, 
4947        /**
4948         * A time period defined by a start and end date and optionally time.
4949         */
4950        PERIOD, 
4951        /**
4952         * 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.
4953         */
4954        QUANTITY, 
4955        /**
4956         * A set of ordered Quantities defined by a low and high limit.
4957         */
4958        RANGE, 
4959        /**
4960         * A relationship of two Quantity values - expressed as a numerator and a denominator.
4961         */
4962        RATIO, 
4963        /**
4964         * A reference from one resource to another.
4965         */
4966        REFERENCE, 
4967        /**
4968         * Related artifacts such as additional documentation, justification, or bibliographic references.
4969         */
4970        RELATEDARTIFACT, 
4971        /**
4972         * A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
4973         */
4974        SAMPLEDDATA, 
4975        /**
4976         * A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.
4977         */
4978        SIGNATURE, 
4979        /**
4980         * null
4981         */
4982        SIMPLEQUANTITY, 
4983        /**
4984         * 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.
4985         */
4986        TIMING, 
4987        /**
4988         * A description of a triggering event.
4989         */
4990        TRIGGERDEFINITION, 
4991        /**
4992         * 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).
4993         */
4994        USAGECONTEXT, 
4995        /**
4996         * A stream of bytes
4997         */
4998        BASE64BINARY, 
4999        /**
5000         * Value of "true" or "false"
5001         */
5002        BOOLEAN, 
5003        /**
5004         * 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
5005         */
5006        CODE, 
5007        /**
5008         * 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.
5009         */
5010        DATE, 
5011        /**
5012         * 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.
5013         */
5014        DATETIME, 
5015        /**
5016         * A rational number with implicit precision
5017         */
5018        DECIMAL, 
5019        /**
5020         * 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.
5021         */
5022        ID, 
5023        /**
5024         * An instant in time - known at least to the second
5025         */
5026        INSTANT, 
5027        /**
5028         * A whole number
5029         */
5030        INTEGER, 
5031        /**
5032         * A string that may contain markdown syntax for optional processing by a mark down presentation engine
5033         */
5034        MARKDOWN, 
5035        /**
5036         * An OID represented as a URI
5037         */
5038        OID, 
5039        /**
5040         * An integer with a value that is positive (e.g. >0)
5041         */
5042        POSITIVEINT, 
5043        /**
5044         * A sequence of Unicode characters
5045         */
5046        STRING, 
5047        /**
5048         * A time during the day, with no date specified
5049         */
5050        TIME, 
5051        /**
5052         * An integer with a value that is not negative (e.g. >= 0)
5053         */
5054        UNSIGNEDINT, 
5055        /**
5056         * String of characters used to identify a name or a resource
5057         */
5058        URI, 
5059        /**
5060         * A UUID, represented as a URI
5061         */
5062        UUID, 
5063        /**
5064         * XHTML format, as defined by W3C, but restricted usage (mainly, no active content)
5065         */
5066        XHTML, 
5067        /**
5068         * 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.
5069         */
5070        ACCOUNT, 
5071        /**
5072         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
5073         */
5074        ACTIVITYDEFINITION, 
5075        /**
5076         * 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.
5077         */
5078        ADVERSEEVENT, 
5079        /**
5080         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
5081         */
5082        ALLERGYINTOLERANCE, 
5083        /**
5084         * 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).
5085         */
5086        APPOINTMENT, 
5087        /**
5088         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
5089         */
5090        APPOINTMENTRESPONSE, 
5091        /**
5092         * 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.
5093         */
5094        AUDITEVENT, 
5095        /**
5096         * 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.
5097         */
5098        BASIC, 
5099        /**
5100         * A binary resource can contain any content, whether text, image, pdf, zip archive, etc.
5101         */
5102        BINARY, 
5103        /**
5104         * Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
5105         */
5106        BODYSITE, 
5107        /**
5108         * A container for a collection of resources.
5109         */
5110        BUNDLE, 
5111        /**
5112         * A Capability Statement 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.
5113         */
5114        CAPABILITYSTATEMENT, 
5115        /**
5116         * 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.
5117         */
5118        CAREPLAN, 
5119        /**
5120         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
5121         */
5122        CARETEAM, 
5123        /**
5124         * 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.
5125         */
5126        CHARGEITEM, 
5127        /**
5128         * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
5129         */
5130        CLAIM, 
5131        /**
5132         * This resource provides the adjudication details from the processing of a Claim resource.
5133         */
5134        CLAIMRESPONSE, 
5135        /**
5136         * 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.
5137         */
5138        CLINICALIMPRESSION, 
5139        /**
5140         * A code system resource specifies a set of codes drawn from one or more code systems.
5141         */
5142        CODESYSTEM, 
5143        /**
5144         * An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.
5145         */
5146        COMMUNICATION, 
5147        /**
5148         * 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.
5149         */
5150        COMMUNICATIONREQUEST, 
5151        /**
5152         * A compartment definition that defines how resources are accessed on a server.
5153         */
5154        COMPARTMENTDEFINITION, 
5155        /**
5156         * A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.
5157         */
5158        COMPOSITION, 
5159        /**
5160         * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.
5161         */
5162        CONCEPTMAP, 
5163        /**
5164         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
5165         */
5166        CONDITION, 
5167        /**
5168         * A record of a healthcare consumer’s policy 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.
5169         */
5170        CONSENT, 
5171        /**
5172         * A formal agreement between parties regarding the conduct of business, exchange of information or other matters.
5173         */
5174        CONTRACT, 
5175        /**
5176         * Financial instrument which may be used to reimburse or pay for health care products and services.
5177         */
5178        COVERAGE, 
5179        /**
5180         * The formal description of a single piece of information that can be gathered and reported.
5181         */
5182        DATAELEMENT, 
5183        /**
5184         * 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.
5185         */
5186        DETECTEDISSUE, 
5187        /**
5188         * This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices include durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.
5189         */
5190        DEVICE, 
5191        /**
5192         * The characteristics, operational status and capabilities of a medical-related component of a medical device.
5193         */
5194        DEVICECOMPONENT, 
5195        /**
5196         * Describes a measurement, calculation or setting capability of a medical device.
5197         */
5198        DEVICEMETRIC, 
5199        /**
5200         * 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.
5201         */
5202        DEVICEREQUEST, 
5203        /**
5204         * 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.
5205         */
5206        DEVICEUSESTATEMENT, 
5207        /**
5208         * 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.
5209         */
5210        DIAGNOSTICREPORT, 
5211        /**
5212         * A collection of documents compiled for a purpose together with metadata that applies to the collection.
5213         */
5214        DOCUMENTMANIFEST, 
5215        /**
5216         * A reference to a document.
5217         */
5218        DOCUMENTREFERENCE, 
5219        /**
5220         * A resource that includes narrative, extensions, and contained resources.
5221         */
5222        DOMAINRESOURCE, 
5223        /**
5224         * The EligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an EligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.
5225         */
5226        ELIGIBILITYREQUEST, 
5227        /**
5228         * This resource provides eligibility and plan details from the processing of an Eligibility resource.
5229         */
5230        ELIGIBILITYRESPONSE, 
5231        /**
5232         * 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.
5233         */
5234        ENCOUNTER, 
5235        /**
5236         * 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.
5237         */
5238        ENDPOINT, 
5239        /**
5240         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
5241         */
5242        ENROLLMENTREQUEST, 
5243        /**
5244         * This resource provides enrollment and plan details from the processing of an Enrollment resource.
5245         */
5246        ENROLLMENTRESPONSE, 
5247        /**
5248         * 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.
5249         */
5250        EPISODEOFCARE, 
5251        /**
5252         * Resource to define constraints on the Expansion of a FHIR ValueSet.
5253         */
5254        EXPANSIONPROFILE, 
5255        /**
5256         * 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.
5257         */
5258        EXPLANATIONOFBENEFIT, 
5259        /**
5260         * Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.
5261         */
5262        FAMILYMEMBERHISTORY, 
5263        /**
5264         * Prospective warnings of potential issues when providing care to the patient.
5265         */
5266        FLAG, 
5267        /**
5268         * 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.
5269         */
5270        GOAL, 
5271        /**
5272         * 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.
5273         */
5274        GRAPHDEFINITION, 
5275        /**
5276         * 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.
5277         */
5278        GROUP, 
5279        /**
5280         * 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.
5281         */
5282        GUIDANCERESPONSE, 
5283        /**
5284         * The details of a healthcare service available at a location.
5285         */
5286        HEALTHCARESERVICE, 
5287        /**
5288         * A text description of the DICOM SOP instances selected in the ImagingManifest; or the reason for, or significance of, the selection.
5289         */
5290        IMAGINGMANIFEST, 
5291        /**
5292         * 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.
5293         */
5294        IMAGINGSTUDY, 
5295        /**
5296         * Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
5297         */
5298        IMMUNIZATION, 
5299        /**
5300         * A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.
5301         */
5302        IMMUNIZATIONRECOMMENDATION, 
5303        /**
5304         * A set of rules of how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
5305         */
5306        IMPLEMENTATIONGUIDE, 
5307        /**
5308         * 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.
5309         */
5310        LIBRARY, 
5311        /**
5312         * Identifies two or more records (resource instances) that are referring to the same real-world "occurrence".
5313         */
5314        LINKAGE, 
5315        /**
5316         * A set of information summarized from a list of other resources.
5317         */
5318        LIST, 
5319        /**
5320         * Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.
5321         */
5322        LOCATION, 
5323        /**
5324         * The Measure resource provides the definition of a quality measure.
5325         */
5326        MEASURE, 
5327        /**
5328         * The MeasureReport resource contains the results of evaluating a measure.
5329         */
5330        MEASUREREPORT, 
5331        /**
5332         * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
5333         */
5334        MEDIA, 
5335        /**
5336         * This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.
5337         */
5338        MEDICATION, 
5339        /**
5340         * 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.
5341         */
5342        MEDICATIONADMINISTRATION, 
5343        /**
5344         * 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.
5345         */
5346        MEDICATIONDISPENSE, 
5347        /**
5348         * 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.
5349         */
5350        MEDICATIONREQUEST, 
5351        /**
5352         * 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 
5353
5354The 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.
5355         */
5356        MEDICATIONSTATEMENT, 
5357        /**
5358         * 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.
5359         */
5360        MESSAGEDEFINITION, 
5361        /**
5362         * 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.
5363         */
5364        MESSAGEHEADER, 
5365        /**
5366         * 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.
5367         */
5368        NAMINGSYSTEM, 
5369        /**
5370         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
5371         */
5372        NUTRITIONORDER, 
5373        /**
5374         * Measurements and simple assertions made about a patient, device or other subject.
5375         */
5376        OBSERVATION, 
5377        /**
5378         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
5379         */
5380        OPERATIONDEFINITION, 
5381        /**
5382         * A collection of error, warning or information messages that result from a system action.
5383         */
5384        OPERATIONOUTCOME, 
5385        /**
5386         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.
5387         */
5388        ORGANIZATION, 
5389        /**
5390         * This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.
5391         */
5392        PARAMETERS, 
5393        /**
5394         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
5395         */
5396        PATIENT, 
5397        /**
5398         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
5399         */
5400        PAYMENTNOTICE, 
5401        /**
5402         * This resource provides payment details and claim references supporting a bulk payment.
5403         */
5404        PAYMENTRECONCILIATION, 
5405        /**
5406         * Demographics and administrative information about a person independent of a specific health-related context.
5407         */
5408        PERSON, 
5409        /**
5410         * 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.
5411         */
5412        PLANDEFINITION, 
5413        /**
5414         * A person who is directly or indirectly involved in the provisioning of healthcare.
5415         */
5416        PRACTITIONER, 
5417        /**
5418         * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
5419         */
5420        PRACTITIONERROLE, 
5421        /**
5422         * An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.
5423         */
5424        PROCEDURE, 
5425        /**
5426         * A record of a request for diagnostic investigations, treatments, or operations to be performed.
5427         */
5428        PROCEDUREREQUEST, 
5429        /**
5430         * This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.
5431         */
5432        PROCESSREQUEST, 
5433        /**
5434         * This resource provides processing status, errors and notes from the processing of a resource.
5435         */
5436        PROCESSRESPONSE, 
5437        /**
5438         * 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.
5439         */
5440        PROVENANCE, 
5441        /**
5442         * 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.
5443         */
5444        QUESTIONNAIRE, 
5445        /**
5446         * 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.
5447         */
5448        QUESTIONNAIRERESPONSE, 
5449        /**
5450         * Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.
5451         */
5452        REFERRALREQUEST, 
5453        /**
5454         * 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.
5455         */
5456        RELATEDPERSON, 
5457        /**
5458         * 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".
5459         */
5460        REQUESTGROUP, 
5461        /**
5462         * 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.
5463         */
5464        RESEARCHSTUDY, 
5465        /**
5466         * 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.
5467         */
5468        RESEARCHSUBJECT, 
5469        /**
5470         * This is the base resource type for everything.
5471         */
5472        RESOURCE, 
5473        /**
5474         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
5475         */
5476        RISKASSESSMENT, 
5477        /**
5478         * A container for slots of time that may be available for booking appointments.
5479         */
5480        SCHEDULE, 
5481        /**
5482         * A search parameter that defines a named search item that can be used to search/filter on a resource.
5483         */
5484        SEARCHPARAMETER, 
5485        /**
5486         * Raw data describing a biological sequence.
5487         */
5488        SEQUENCE, 
5489        /**
5490         * The ServiceDefinition describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.
5491         */
5492        SERVICEDEFINITION, 
5493        /**
5494         * A slot of time on a schedule that may be available for booking appointments.
5495         */
5496        SLOT, 
5497        /**
5498         * A sample to be used for analysis.
5499         */
5500        SPECIMEN, 
5501        /**
5502         * 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.
5503         */
5504        STRUCTUREDEFINITION, 
5505        /**
5506         * A Map of relationships between 2 structures that can be used to transform data.
5507         */
5508        STRUCTUREMAP, 
5509        /**
5510         * The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system is able to take an appropriate action.
5511         */
5512        SUBSCRIPTION, 
5513        /**
5514         * A homogeneous material with a definite composition.
5515         */
5516        SUBSTANCE, 
5517        /**
5518         * Record of delivery of what is supplied.
5519         */
5520        SUPPLYDELIVERY, 
5521        /**
5522         * A record of a request for a medication, substance or device used in the healthcare setting.
5523         */
5524        SUPPLYREQUEST, 
5525        /**
5526         * A task to be performed.
5527         */
5528        TASK, 
5529        /**
5530         * A summary of information based on the results of executing a TestScript.
5531         */
5532        TESTREPORT, 
5533        /**
5534         * A structured set of tests against a FHIR server implementation to determine compliance against the FHIR specification.
5535         */
5536        TESTSCRIPT, 
5537        /**
5538         * A value set specifies a set of codes drawn from one or more code systems.
5539         */
5540        VALUESET, 
5541        /**
5542         * An authorization for the supply of glasses and/or contact lenses to a patient.
5543         */
5544        VISIONPRESCRIPTION, 
5545        /**
5546         * added to help the parsers
5547         */
5548        NULL;
5549        public static FHIRDefinedType fromCode(String codeString) throws FHIRException {
5550            if (codeString == null || "".equals(codeString))
5551                return null;
5552        if ("Address".equals(codeString))
5553          return ADDRESS;
5554        if ("Age".equals(codeString))
5555          return AGE;
5556        if ("Annotation".equals(codeString))
5557          return ANNOTATION;
5558        if ("Attachment".equals(codeString))
5559          return ATTACHMENT;
5560        if ("BackboneElement".equals(codeString))
5561          return BACKBONEELEMENT;
5562        if ("CodeableConcept".equals(codeString))
5563          return CODEABLECONCEPT;
5564        if ("Coding".equals(codeString))
5565          return CODING;
5566        if ("ContactDetail".equals(codeString))
5567          return CONTACTDETAIL;
5568        if ("ContactPoint".equals(codeString))
5569          return CONTACTPOINT;
5570        if ("Contributor".equals(codeString))
5571          return CONTRIBUTOR;
5572        if ("Count".equals(codeString))
5573          return COUNT;
5574        if ("DataRequirement".equals(codeString))
5575          return DATAREQUIREMENT;
5576        if ("Distance".equals(codeString))
5577          return DISTANCE;
5578        if ("Dosage".equals(codeString))
5579          return DOSAGE;
5580        if ("Duration".equals(codeString))
5581          return DURATION;
5582        if ("Element".equals(codeString))
5583          return ELEMENT;
5584        if ("ElementDefinition".equals(codeString))
5585          return ELEMENTDEFINITION;
5586        if ("Extension".equals(codeString))
5587          return EXTENSION;
5588        if ("HumanName".equals(codeString))
5589          return HUMANNAME;
5590        if ("Identifier".equals(codeString))
5591          return IDENTIFIER;
5592        if ("Meta".equals(codeString))
5593          return META;
5594        if ("Money".equals(codeString))
5595          return MONEY;
5596        if ("Narrative".equals(codeString))
5597          return NARRATIVE;
5598        if ("ParameterDefinition".equals(codeString))
5599          return PARAMETERDEFINITION;
5600        if ("Period".equals(codeString))
5601          return PERIOD;
5602        if ("Quantity".equals(codeString))
5603          return QUANTITY;
5604        if ("Range".equals(codeString))
5605          return RANGE;
5606        if ("Ratio".equals(codeString))
5607          return RATIO;
5608        if ("Reference".equals(codeString))
5609          return REFERENCE;
5610        if ("RelatedArtifact".equals(codeString))
5611          return RELATEDARTIFACT;
5612        if ("SampledData".equals(codeString))
5613          return SAMPLEDDATA;
5614        if ("Signature".equals(codeString))
5615          return SIGNATURE;
5616        if ("SimpleQuantity".equals(codeString))
5617          return SIMPLEQUANTITY;
5618        if ("Timing".equals(codeString))
5619          return TIMING;
5620        if ("TriggerDefinition".equals(codeString))
5621          return TRIGGERDEFINITION;
5622        if ("UsageContext".equals(codeString))
5623          return USAGECONTEXT;
5624        if ("base64Binary".equals(codeString))
5625          return BASE64BINARY;
5626        if ("boolean".equals(codeString))
5627          return BOOLEAN;
5628        if ("code".equals(codeString))
5629          return CODE;
5630        if ("date".equals(codeString))
5631          return DATE;
5632        if ("dateTime".equals(codeString))
5633          return DATETIME;
5634        if ("decimal".equals(codeString))
5635          return DECIMAL;
5636        if ("id".equals(codeString))
5637          return ID;
5638        if ("instant".equals(codeString))
5639          return INSTANT;
5640        if ("integer".equals(codeString))
5641          return INTEGER;
5642        if ("markdown".equals(codeString))
5643          return MARKDOWN;
5644        if ("oid".equals(codeString))
5645          return OID;
5646        if ("positiveInt".equals(codeString))
5647          return POSITIVEINT;
5648        if ("string".equals(codeString))
5649          return STRING;
5650        if ("time".equals(codeString))
5651          return TIME;
5652        if ("unsignedInt".equals(codeString))
5653          return UNSIGNEDINT;
5654        if ("uri".equals(codeString))
5655          return URI;
5656        if ("uuid".equals(codeString))
5657          return UUID;
5658        if ("xhtml".equals(codeString))
5659          return XHTML;
5660        if ("Account".equals(codeString))
5661          return ACCOUNT;
5662        if ("ActivityDefinition".equals(codeString))
5663          return ACTIVITYDEFINITION;
5664        if ("AdverseEvent".equals(codeString))
5665          return ADVERSEEVENT;
5666        if ("AllergyIntolerance".equals(codeString))
5667          return ALLERGYINTOLERANCE;
5668        if ("Appointment".equals(codeString))
5669          return APPOINTMENT;
5670        if ("AppointmentResponse".equals(codeString))
5671          return APPOINTMENTRESPONSE;
5672        if ("AuditEvent".equals(codeString))
5673          return AUDITEVENT;
5674        if ("Basic".equals(codeString))
5675          return BASIC;
5676        if ("Binary".equals(codeString))
5677          return BINARY;
5678        if ("BodySite".equals(codeString))
5679          return BODYSITE;
5680        if ("Bundle".equals(codeString))
5681          return BUNDLE;
5682        if ("CapabilityStatement".equals(codeString))
5683          return CAPABILITYSTATEMENT;
5684        if ("CarePlan".equals(codeString))
5685          return CAREPLAN;
5686        if ("CareTeam".equals(codeString))
5687          return CARETEAM;
5688        if ("ChargeItem".equals(codeString))
5689          return CHARGEITEM;
5690        if ("Claim".equals(codeString))
5691          return CLAIM;
5692        if ("ClaimResponse".equals(codeString))
5693          return CLAIMRESPONSE;
5694        if ("ClinicalImpression".equals(codeString))
5695          return CLINICALIMPRESSION;
5696        if ("CodeSystem".equals(codeString))
5697          return CODESYSTEM;
5698        if ("Communication".equals(codeString))
5699          return COMMUNICATION;
5700        if ("CommunicationRequest".equals(codeString))
5701          return COMMUNICATIONREQUEST;
5702        if ("CompartmentDefinition".equals(codeString))
5703          return COMPARTMENTDEFINITION;
5704        if ("Composition".equals(codeString))
5705          return COMPOSITION;
5706        if ("ConceptMap".equals(codeString))
5707          return CONCEPTMAP;
5708        if ("Condition".equals(codeString))
5709          return CONDITION;
5710        if ("Consent".equals(codeString))
5711          return CONSENT;
5712        if ("Contract".equals(codeString))
5713          return CONTRACT;
5714        if ("Coverage".equals(codeString))
5715          return COVERAGE;
5716        if ("DataElement".equals(codeString))
5717          return DATAELEMENT;
5718        if ("DetectedIssue".equals(codeString))
5719          return DETECTEDISSUE;
5720        if ("Device".equals(codeString))
5721          return DEVICE;
5722        if ("DeviceComponent".equals(codeString))
5723          return DEVICECOMPONENT;
5724        if ("DeviceMetric".equals(codeString))
5725          return DEVICEMETRIC;
5726        if ("DeviceRequest".equals(codeString))
5727          return DEVICEREQUEST;
5728        if ("DeviceUseStatement".equals(codeString))
5729          return DEVICEUSESTATEMENT;
5730        if ("DiagnosticReport".equals(codeString))
5731          return DIAGNOSTICREPORT;
5732        if ("DocumentManifest".equals(codeString))
5733          return DOCUMENTMANIFEST;
5734        if ("DocumentReference".equals(codeString))
5735          return DOCUMENTREFERENCE;
5736        if ("DomainResource".equals(codeString))
5737          return DOMAINRESOURCE;
5738        if ("EligibilityRequest".equals(codeString))
5739          return ELIGIBILITYREQUEST;
5740        if ("EligibilityResponse".equals(codeString))
5741          return ELIGIBILITYRESPONSE;
5742        if ("Encounter".equals(codeString))
5743          return ENCOUNTER;
5744        if ("Endpoint".equals(codeString))
5745          return ENDPOINT;
5746        if ("EnrollmentRequest".equals(codeString))
5747          return ENROLLMENTREQUEST;
5748        if ("EnrollmentResponse".equals(codeString))
5749          return ENROLLMENTRESPONSE;
5750        if ("EpisodeOfCare".equals(codeString))
5751          return EPISODEOFCARE;
5752        if ("ExpansionProfile".equals(codeString))
5753          return EXPANSIONPROFILE;
5754        if ("ExplanationOfBenefit".equals(codeString))
5755          return EXPLANATIONOFBENEFIT;
5756        if ("FamilyMemberHistory".equals(codeString))
5757          return FAMILYMEMBERHISTORY;
5758        if ("Flag".equals(codeString))
5759          return FLAG;
5760        if ("Goal".equals(codeString))
5761          return GOAL;
5762        if ("GraphDefinition".equals(codeString))
5763          return GRAPHDEFINITION;
5764        if ("Group".equals(codeString))
5765          return GROUP;
5766        if ("GuidanceResponse".equals(codeString))
5767          return GUIDANCERESPONSE;
5768        if ("HealthcareService".equals(codeString))
5769          return HEALTHCARESERVICE;
5770        if ("ImagingManifest".equals(codeString))
5771          return IMAGINGMANIFEST;
5772        if ("ImagingStudy".equals(codeString))
5773          return IMAGINGSTUDY;
5774        if ("Immunization".equals(codeString))
5775          return IMMUNIZATION;
5776        if ("ImmunizationRecommendation".equals(codeString))
5777          return IMMUNIZATIONRECOMMENDATION;
5778        if ("ImplementationGuide".equals(codeString))
5779          return IMPLEMENTATIONGUIDE;
5780        if ("Library".equals(codeString))
5781          return LIBRARY;
5782        if ("Linkage".equals(codeString))
5783          return LINKAGE;
5784        if ("List".equals(codeString))
5785          return LIST;
5786        if ("Location".equals(codeString))
5787          return LOCATION;
5788        if ("Measure".equals(codeString))
5789          return MEASURE;
5790        if ("MeasureReport".equals(codeString))
5791          return MEASUREREPORT;
5792        if ("Media".equals(codeString))
5793          return MEDIA;
5794        if ("Medication".equals(codeString))
5795          return MEDICATION;
5796        if ("MedicationAdministration".equals(codeString))
5797          return MEDICATIONADMINISTRATION;
5798        if ("MedicationDispense".equals(codeString))
5799          return MEDICATIONDISPENSE;
5800        if ("MedicationRequest".equals(codeString))
5801          return MEDICATIONREQUEST;
5802        if ("MedicationStatement".equals(codeString))
5803          return MEDICATIONSTATEMENT;
5804        if ("MessageDefinition".equals(codeString))
5805          return MESSAGEDEFINITION;
5806        if ("MessageHeader".equals(codeString))
5807          return MESSAGEHEADER;
5808        if ("NamingSystem".equals(codeString))
5809          return NAMINGSYSTEM;
5810        if ("NutritionOrder".equals(codeString))
5811          return NUTRITIONORDER;
5812        if ("Observation".equals(codeString))
5813          return OBSERVATION;
5814        if ("OperationDefinition".equals(codeString))
5815          return OPERATIONDEFINITION;
5816        if ("OperationOutcome".equals(codeString))
5817          return OPERATIONOUTCOME;
5818        if ("Organization".equals(codeString))
5819          return ORGANIZATION;
5820        if ("Parameters".equals(codeString))
5821          return PARAMETERS;
5822        if ("Patient".equals(codeString))
5823          return PATIENT;
5824        if ("PaymentNotice".equals(codeString))
5825          return PAYMENTNOTICE;
5826        if ("PaymentReconciliation".equals(codeString))
5827          return PAYMENTRECONCILIATION;
5828        if ("Person".equals(codeString))
5829          return PERSON;
5830        if ("PlanDefinition".equals(codeString))
5831          return PLANDEFINITION;
5832        if ("Practitioner".equals(codeString))
5833          return PRACTITIONER;
5834        if ("PractitionerRole".equals(codeString))
5835          return PRACTITIONERROLE;
5836        if ("Procedure".equals(codeString))
5837          return PROCEDURE;
5838        if ("ProcedureRequest".equals(codeString))
5839          return PROCEDUREREQUEST;
5840        if ("ProcessRequest".equals(codeString))
5841          return PROCESSREQUEST;
5842        if ("ProcessResponse".equals(codeString))
5843          return PROCESSRESPONSE;
5844        if ("Provenance".equals(codeString))
5845          return PROVENANCE;
5846        if ("Questionnaire".equals(codeString))
5847          return QUESTIONNAIRE;
5848        if ("QuestionnaireResponse".equals(codeString))
5849          return QUESTIONNAIRERESPONSE;
5850        if ("ReferralRequest".equals(codeString))
5851          return REFERRALREQUEST;
5852        if ("RelatedPerson".equals(codeString))
5853          return RELATEDPERSON;
5854        if ("RequestGroup".equals(codeString))
5855          return REQUESTGROUP;
5856        if ("ResearchStudy".equals(codeString))
5857          return RESEARCHSTUDY;
5858        if ("ResearchSubject".equals(codeString))
5859          return RESEARCHSUBJECT;
5860        if ("Resource".equals(codeString))
5861          return RESOURCE;
5862        if ("RiskAssessment".equals(codeString))
5863          return RISKASSESSMENT;
5864        if ("Schedule".equals(codeString))
5865          return SCHEDULE;
5866        if ("SearchParameter".equals(codeString))
5867          return SEARCHPARAMETER;
5868        if ("Sequence".equals(codeString))
5869          return SEQUENCE;
5870        if ("ServiceDefinition".equals(codeString))
5871          return SERVICEDEFINITION;
5872        if ("Slot".equals(codeString))
5873          return SLOT;
5874        if ("Specimen".equals(codeString))
5875          return SPECIMEN;
5876        if ("StructureDefinition".equals(codeString))
5877          return STRUCTUREDEFINITION;
5878        if ("StructureMap".equals(codeString))
5879          return STRUCTUREMAP;
5880        if ("Subscription".equals(codeString))
5881          return SUBSCRIPTION;
5882        if ("Substance".equals(codeString))
5883          return SUBSTANCE;
5884        if ("SupplyDelivery".equals(codeString))
5885          return SUPPLYDELIVERY;
5886        if ("SupplyRequest".equals(codeString))
5887          return SUPPLYREQUEST;
5888        if ("Task".equals(codeString))
5889          return TASK;
5890        if ("TestReport".equals(codeString))
5891          return TESTREPORT;
5892        if ("TestScript".equals(codeString))
5893          return TESTSCRIPT;
5894        if ("ValueSet".equals(codeString))
5895          return VALUESET;
5896        if ("VisionPrescription".equals(codeString))
5897          return VISIONPRESCRIPTION;
5898        throw new FHIRException("Unknown FHIRDefinedType code '"+codeString+"'");
5899        }
5900        public String toCode() {
5901          switch (this) {
5902            case ADDRESS: return "Address";
5903            case AGE: return "Age";
5904            case ANNOTATION: return "Annotation";
5905            case ATTACHMENT: return "Attachment";
5906            case BACKBONEELEMENT: return "BackboneElement";
5907            case CODEABLECONCEPT: return "CodeableConcept";
5908            case CODING: return "Coding";
5909            case CONTACTDETAIL: return "ContactDetail";
5910            case CONTACTPOINT: return "ContactPoint";
5911            case CONTRIBUTOR: return "Contributor";
5912            case COUNT: return "Count";
5913            case DATAREQUIREMENT: return "DataRequirement";
5914            case DISTANCE: return "Distance";
5915            case DOSAGE: return "Dosage";
5916            case DURATION: return "Duration";
5917            case ELEMENT: return "Element";
5918            case ELEMENTDEFINITION: return "ElementDefinition";
5919            case EXTENSION: return "Extension";
5920            case HUMANNAME: return "HumanName";
5921            case IDENTIFIER: return "Identifier";
5922            case META: return "Meta";
5923            case MONEY: return "Money";
5924            case NARRATIVE: return "Narrative";
5925            case PARAMETERDEFINITION: return "ParameterDefinition";
5926            case PERIOD: return "Period";
5927            case QUANTITY: return "Quantity";
5928            case RANGE: return "Range";
5929            case RATIO: return "Ratio";
5930            case REFERENCE: return "Reference";
5931            case RELATEDARTIFACT: return "RelatedArtifact";
5932            case SAMPLEDDATA: return "SampledData";
5933            case SIGNATURE: return "Signature";
5934            case SIMPLEQUANTITY: return "SimpleQuantity";
5935            case TIMING: return "Timing";
5936            case TRIGGERDEFINITION: return "TriggerDefinition";
5937            case USAGECONTEXT: return "UsageContext";
5938            case BASE64BINARY: return "base64Binary";
5939            case BOOLEAN: return "boolean";
5940            case CODE: return "code";
5941            case DATE: return "date";
5942            case DATETIME: return "dateTime";
5943            case DECIMAL: return "decimal";
5944            case ID: return "id";
5945            case INSTANT: return "instant";
5946            case INTEGER: return "integer";
5947            case MARKDOWN: return "markdown";
5948            case OID: return "oid";
5949            case POSITIVEINT: return "positiveInt";
5950            case STRING: return "string";
5951            case TIME: return "time";
5952            case UNSIGNEDINT: return "unsignedInt";
5953            case URI: return "uri";
5954            case UUID: return "uuid";
5955            case XHTML: return "xhtml";
5956            case ACCOUNT: return "Account";
5957            case ACTIVITYDEFINITION: return "ActivityDefinition";
5958            case ADVERSEEVENT: return "AdverseEvent";
5959            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
5960            case APPOINTMENT: return "Appointment";
5961            case APPOINTMENTRESPONSE: return "AppointmentResponse";
5962            case AUDITEVENT: return "AuditEvent";
5963            case BASIC: return "Basic";
5964            case BINARY: return "Binary";
5965            case BODYSITE: return "BodySite";
5966            case BUNDLE: return "Bundle";
5967            case CAPABILITYSTATEMENT: return "CapabilityStatement";
5968            case CAREPLAN: return "CarePlan";
5969            case CARETEAM: return "CareTeam";
5970            case CHARGEITEM: return "ChargeItem";
5971            case CLAIM: return "Claim";
5972            case CLAIMRESPONSE: return "ClaimResponse";
5973            case CLINICALIMPRESSION: return "ClinicalImpression";
5974            case CODESYSTEM: return "CodeSystem";
5975            case COMMUNICATION: return "Communication";
5976            case COMMUNICATIONREQUEST: return "CommunicationRequest";
5977            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
5978            case COMPOSITION: return "Composition";
5979            case CONCEPTMAP: return "ConceptMap";
5980            case CONDITION: return "Condition";
5981            case CONSENT: return "Consent";
5982            case CONTRACT: return "Contract";
5983            case COVERAGE: return "Coverage";
5984            case DATAELEMENT: return "DataElement";
5985            case DETECTEDISSUE: return "DetectedIssue";
5986            case DEVICE: return "Device";
5987            case DEVICECOMPONENT: return "DeviceComponent";
5988            case DEVICEMETRIC: return "DeviceMetric";
5989            case DEVICEREQUEST: return "DeviceRequest";
5990            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
5991            case DIAGNOSTICREPORT: return "DiagnosticReport";
5992            case DOCUMENTMANIFEST: return "DocumentManifest";
5993            case DOCUMENTREFERENCE: return "DocumentReference";
5994            case DOMAINRESOURCE: return "DomainResource";
5995            case ELIGIBILITYREQUEST: return "EligibilityRequest";
5996            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
5997            case ENCOUNTER: return "Encounter";
5998            case ENDPOINT: return "Endpoint";
5999            case ENROLLMENTREQUEST: return "EnrollmentRequest";
6000            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
6001            case EPISODEOFCARE: return "EpisodeOfCare";
6002            case EXPANSIONPROFILE: return "ExpansionProfile";
6003            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
6004            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
6005            case FLAG: return "Flag";
6006            case GOAL: return "Goal";
6007            case GRAPHDEFINITION: return "GraphDefinition";
6008            case GROUP: return "Group";
6009            case GUIDANCERESPONSE: return "GuidanceResponse";
6010            case HEALTHCARESERVICE: return "HealthcareService";
6011            case IMAGINGMANIFEST: return "ImagingManifest";
6012            case IMAGINGSTUDY: return "ImagingStudy";
6013            case IMMUNIZATION: return "Immunization";
6014            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
6015            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
6016            case LIBRARY: return "Library";
6017            case LINKAGE: return "Linkage";
6018            case LIST: return "List";
6019            case LOCATION: return "Location";
6020            case MEASURE: return "Measure";
6021            case MEASUREREPORT: return "MeasureReport";
6022            case MEDIA: return "Media";
6023            case MEDICATION: return "Medication";
6024            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
6025            case MEDICATIONDISPENSE: return "MedicationDispense";
6026            case MEDICATIONREQUEST: return "MedicationRequest";
6027            case MEDICATIONSTATEMENT: return "MedicationStatement";
6028            case MESSAGEDEFINITION: return "MessageDefinition";
6029            case MESSAGEHEADER: return "MessageHeader";
6030            case NAMINGSYSTEM: return "NamingSystem";
6031            case NUTRITIONORDER: return "NutritionOrder";
6032            case OBSERVATION: return "Observation";
6033            case OPERATIONDEFINITION: return "OperationDefinition";
6034            case OPERATIONOUTCOME: return "OperationOutcome";
6035            case ORGANIZATION: return "Organization";
6036            case PARAMETERS: return "Parameters";
6037            case PATIENT: return "Patient";
6038            case PAYMENTNOTICE: return "PaymentNotice";
6039            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
6040            case PERSON: return "Person";
6041            case PLANDEFINITION: return "PlanDefinition";
6042            case PRACTITIONER: return "Practitioner";
6043            case PRACTITIONERROLE: return "PractitionerRole";
6044            case PROCEDURE: return "Procedure";
6045            case PROCEDUREREQUEST: return "ProcedureRequest";
6046            case PROCESSREQUEST: return "ProcessRequest";
6047            case PROCESSRESPONSE: return "ProcessResponse";
6048            case PROVENANCE: return "Provenance";
6049            case QUESTIONNAIRE: return "Questionnaire";
6050            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
6051            case REFERRALREQUEST: return "ReferralRequest";
6052            case RELATEDPERSON: return "RelatedPerson";
6053            case REQUESTGROUP: return "RequestGroup";
6054            case RESEARCHSTUDY: return "ResearchStudy";
6055            case RESEARCHSUBJECT: return "ResearchSubject";
6056            case RESOURCE: return "Resource";
6057            case RISKASSESSMENT: return "RiskAssessment";
6058            case SCHEDULE: return "Schedule";
6059            case SEARCHPARAMETER: return "SearchParameter";
6060            case SEQUENCE: return "Sequence";
6061            case SERVICEDEFINITION: return "ServiceDefinition";
6062            case SLOT: return "Slot";
6063            case SPECIMEN: return "Specimen";
6064            case STRUCTUREDEFINITION: return "StructureDefinition";
6065            case STRUCTUREMAP: return "StructureMap";
6066            case SUBSCRIPTION: return "Subscription";
6067            case SUBSTANCE: return "Substance";
6068            case SUPPLYDELIVERY: return "SupplyDelivery";
6069            case SUPPLYREQUEST: return "SupplyRequest";
6070            case TASK: return "Task";
6071            case TESTREPORT: return "TestReport";
6072            case TESTSCRIPT: return "TestScript";
6073            case VALUESET: return "ValueSet";
6074            case VISIONPRESCRIPTION: return "VisionPrescription";
6075            default: return "?";
6076          }
6077        }
6078        public String getSystem() {
6079          switch (this) {
6080            case ADDRESS: return "http://hl7.org/fhir/data-types";
6081            case AGE: return "http://hl7.org/fhir/data-types";
6082            case ANNOTATION: return "http://hl7.org/fhir/data-types";
6083            case ATTACHMENT: return "http://hl7.org/fhir/data-types";
6084            case BACKBONEELEMENT: return "http://hl7.org/fhir/data-types";
6085            case CODEABLECONCEPT: return "http://hl7.org/fhir/data-types";
6086            case CODING: return "http://hl7.org/fhir/data-types";
6087            case CONTACTDETAIL: return "http://hl7.org/fhir/data-types";
6088            case CONTACTPOINT: return "http://hl7.org/fhir/data-types";
6089            case CONTRIBUTOR: return "http://hl7.org/fhir/data-types";
6090            case COUNT: return "http://hl7.org/fhir/data-types";
6091            case DATAREQUIREMENT: return "http://hl7.org/fhir/data-types";
6092            case DISTANCE: return "http://hl7.org/fhir/data-types";
6093            case DOSAGE: return "http://hl7.org/fhir/data-types";
6094            case DURATION: return "http://hl7.org/fhir/data-types";
6095            case ELEMENT: return "http://hl7.org/fhir/data-types";
6096            case ELEMENTDEFINITION: return "http://hl7.org/fhir/data-types";
6097            case EXTENSION: return "http://hl7.org/fhir/data-types";
6098            case HUMANNAME: return "http://hl7.org/fhir/data-types";
6099            case IDENTIFIER: return "http://hl7.org/fhir/data-types";
6100            case META: return "http://hl7.org/fhir/data-types";
6101            case MONEY: return "http://hl7.org/fhir/data-types";
6102            case NARRATIVE: return "http://hl7.org/fhir/data-types";
6103            case PARAMETERDEFINITION: return "http://hl7.org/fhir/data-types";
6104            case PERIOD: return "http://hl7.org/fhir/data-types";
6105            case QUANTITY: return "http://hl7.org/fhir/data-types";
6106            case RANGE: return "http://hl7.org/fhir/data-types";
6107            case RATIO: return "http://hl7.org/fhir/data-types";
6108            case REFERENCE: return "http://hl7.org/fhir/data-types";
6109            case RELATEDARTIFACT: return "http://hl7.org/fhir/data-types";
6110            case SAMPLEDDATA: return "http://hl7.org/fhir/data-types";
6111            case SIGNATURE: return "http://hl7.org/fhir/data-types";
6112            case SIMPLEQUANTITY: return "http://hl7.org/fhir/data-types";
6113            case TIMING: return "http://hl7.org/fhir/data-types";
6114            case TRIGGERDEFINITION: return "http://hl7.org/fhir/data-types";
6115            case USAGECONTEXT: return "http://hl7.org/fhir/data-types";
6116            case BASE64BINARY: return "http://hl7.org/fhir/data-types";
6117            case BOOLEAN: return "http://hl7.org/fhir/data-types";
6118            case CODE: return "http://hl7.org/fhir/data-types";
6119            case DATE: return "http://hl7.org/fhir/data-types";
6120            case DATETIME: return "http://hl7.org/fhir/data-types";
6121            case DECIMAL: return "http://hl7.org/fhir/data-types";
6122            case ID: return "http://hl7.org/fhir/data-types";
6123            case INSTANT: return "http://hl7.org/fhir/data-types";
6124            case INTEGER: return "http://hl7.org/fhir/data-types";
6125            case MARKDOWN: return "http://hl7.org/fhir/data-types";
6126            case OID: return "http://hl7.org/fhir/data-types";
6127            case POSITIVEINT: return "http://hl7.org/fhir/data-types";
6128            case STRING: return "http://hl7.org/fhir/data-types";
6129            case TIME: return "http://hl7.org/fhir/data-types";
6130            case UNSIGNEDINT: return "http://hl7.org/fhir/data-types";
6131            case URI: return "http://hl7.org/fhir/data-types";
6132            case UUID: return "http://hl7.org/fhir/data-types";
6133            case XHTML: return "http://hl7.org/fhir/data-types";
6134            case ACCOUNT: return "http://hl7.org/fhir/resource-types";
6135            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/resource-types";
6136            case ADVERSEEVENT: return "http://hl7.org/fhir/resource-types";
6137            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/resource-types";
6138            case APPOINTMENT: return "http://hl7.org/fhir/resource-types";
6139            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
6140            case AUDITEVENT: return "http://hl7.org/fhir/resource-types";
6141            case BASIC: return "http://hl7.org/fhir/resource-types";
6142            case BINARY: return "http://hl7.org/fhir/resource-types";
6143            case BODYSITE: return "http://hl7.org/fhir/resource-types";
6144            case BUNDLE: return "http://hl7.org/fhir/resource-types";
6145            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/resource-types";
6146            case CAREPLAN: return "http://hl7.org/fhir/resource-types";
6147            case CARETEAM: return "http://hl7.org/fhir/resource-types";
6148            case CHARGEITEM: return "http://hl7.org/fhir/resource-types";
6149            case CLAIM: return "http://hl7.org/fhir/resource-types";
6150            case CLAIMRESPONSE: return "http://hl7.org/fhir/resource-types";
6151            case CLINICALIMPRESSION: return "http://hl7.org/fhir/resource-types";
6152            case CODESYSTEM: return "http://hl7.org/fhir/resource-types";
6153            case COMMUNICATION: return "http://hl7.org/fhir/resource-types";
6154            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
6155            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/resource-types";
6156            case COMPOSITION: return "http://hl7.org/fhir/resource-types";
6157            case CONCEPTMAP: return "http://hl7.org/fhir/resource-types";
6158            case CONDITION: return "http://hl7.org/fhir/resource-types";
6159            case CONSENT: return "http://hl7.org/fhir/resource-types";
6160            case CONTRACT: return "http://hl7.org/fhir/resource-types";
6161            case COVERAGE: return "http://hl7.org/fhir/resource-types";
6162            case DATAELEMENT: return "http://hl7.org/fhir/resource-types";
6163            case DETECTEDISSUE: return "http://hl7.org/fhir/resource-types";
6164            case DEVICE: return "http://hl7.org/fhir/resource-types";
6165            case DEVICECOMPONENT: return "http://hl7.org/fhir/resource-types";
6166            case DEVICEMETRIC: return "http://hl7.org/fhir/resource-types";
6167            case DEVICEREQUEST: return "http://hl7.org/fhir/resource-types";
6168            case DEVICEUSESTATEMENT: return "http://hl7.org/fhir/resource-types";
6169            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/resource-types";
6170            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/resource-types";
6171            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/resource-types";
6172            case DOMAINRESOURCE: return "http://hl7.org/fhir/resource-types";
6173            case ELIGIBILITYREQUEST: return "http://hl7.org/fhir/resource-types";
6174            case ELIGIBILITYRESPONSE: return "http://hl7.org/fhir/resource-types";
6175            case ENCOUNTER: return "http://hl7.org/fhir/resource-types";
6176            case ENDPOINT: return "http://hl7.org/fhir/resource-types";
6177            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/resource-types";
6178            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
6179            case EPISODEOFCARE: return "http://hl7.org/fhir/resource-types";
6180            case EXPANSIONPROFILE: return "http://hl7.org/fhir/resource-types";
6181            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/resource-types";
6182            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/resource-types";
6183            case FLAG: return "http://hl7.org/fhir/resource-types";
6184            case GOAL: return "http://hl7.org/fhir/resource-types";
6185            case GRAPHDEFINITION: return "http://hl7.org/fhir/resource-types";
6186            case GROUP: return "http://hl7.org/fhir/resource-types";
6187            case GUIDANCERESPONSE: return "http://hl7.org/fhir/resource-types";
6188            case HEALTHCARESERVICE: return "http://hl7.org/fhir/resource-types";
6189            case IMAGINGMANIFEST: return "http://hl7.org/fhir/resource-types";
6190            case IMAGINGSTUDY: return "http://hl7.org/fhir/resource-types";
6191            case IMMUNIZATION: return "http://hl7.org/fhir/resource-types";
6192            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/resource-types";
6193            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/resource-types";
6194            case LIBRARY: return "http://hl7.org/fhir/resource-types";
6195            case LINKAGE: return "http://hl7.org/fhir/resource-types";
6196            case LIST: return "http://hl7.org/fhir/resource-types";
6197            case LOCATION: return "http://hl7.org/fhir/resource-types";
6198            case MEASURE: return "http://hl7.org/fhir/resource-types";
6199            case MEASUREREPORT: return "http://hl7.org/fhir/resource-types";
6200            case MEDIA: return "http://hl7.org/fhir/resource-types";
6201            case MEDICATION: return "http://hl7.org/fhir/resource-types";
6202            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/resource-types";
6203            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/resource-types";
6204            case MEDICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
6205            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/resource-types";
6206            case MESSAGEDEFINITION: return "http://hl7.org/fhir/resource-types";
6207            case MESSAGEHEADER: return "http://hl7.org/fhir/resource-types";
6208            case NAMINGSYSTEM: return "http://hl7.org/fhir/resource-types";
6209            case NUTRITIONORDER: return "http://hl7.org/fhir/resource-types";
6210            case OBSERVATION: return "http://hl7.org/fhir/resource-types";
6211            case OPERATIONDEFINITION: return "http://hl7.org/fhir/resource-types";
6212            case OPERATIONOUTCOME: return "http://hl7.org/fhir/resource-types";
6213            case ORGANIZATION: return "http://hl7.org/fhir/resource-types";
6214            case PARAMETERS: return "http://hl7.org/fhir/resource-types";
6215            case PATIENT: return "http://hl7.org/fhir/resource-types";
6216            case PAYMENTNOTICE: return "http://hl7.org/fhir/resource-types";
6217            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/resource-types";
6218            case PERSON: return "http://hl7.org/fhir/resource-types";
6219            case PLANDEFINITION: return "http://hl7.org/fhir/resource-types";
6220            case PRACTITIONER: return "http://hl7.org/fhir/resource-types";
6221            case PRACTITIONERROLE: return "http://hl7.org/fhir/resource-types";
6222            case PROCEDURE: return "http://hl7.org/fhir/resource-types";
6223            case PROCEDUREREQUEST: return "http://hl7.org/fhir/resource-types";
6224            case PROCESSREQUEST: return "http://hl7.org/fhir/resource-types";
6225            case PROCESSRESPONSE: return "http://hl7.org/fhir/resource-types";
6226            case PROVENANCE: return "http://hl7.org/fhir/resource-types";
6227            case QUESTIONNAIRE: return "http://hl7.org/fhir/resource-types";
6228            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/resource-types";
6229            case REFERRALREQUEST: return "http://hl7.org/fhir/resource-types";
6230            case RELATEDPERSON: return "http://hl7.org/fhir/resource-types";
6231            case REQUESTGROUP: return "http://hl7.org/fhir/resource-types";
6232            case RESEARCHSTUDY: return "http://hl7.org/fhir/resource-types";
6233            case RESEARCHSUBJECT: return "http://hl7.org/fhir/resource-types";
6234            case RESOURCE: return "http://hl7.org/fhir/resource-types";
6235            case RISKASSESSMENT: return "http://hl7.org/fhir/resource-types";
6236            case SCHEDULE: return "http://hl7.org/fhir/resource-types";
6237            case SEARCHPARAMETER: return "http://hl7.org/fhir/resource-types";
6238            case SEQUENCE: return "http://hl7.org/fhir/resource-types";
6239            case SERVICEDEFINITION: return "http://hl7.org/fhir/resource-types";
6240            case SLOT: return "http://hl7.org/fhir/resource-types";
6241            case SPECIMEN: return "http://hl7.org/fhir/resource-types";
6242            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/resource-types";
6243            case STRUCTUREMAP: return "http://hl7.org/fhir/resource-types";
6244            case SUBSCRIPTION: return "http://hl7.org/fhir/resource-types";
6245            case SUBSTANCE: return "http://hl7.org/fhir/resource-types";
6246            case SUPPLYDELIVERY: return "http://hl7.org/fhir/resource-types";
6247            case SUPPLYREQUEST: return "http://hl7.org/fhir/resource-types";
6248            case TASK: return "http://hl7.org/fhir/resource-types";
6249            case TESTREPORT: return "http://hl7.org/fhir/resource-types";
6250            case TESTSCRIPT: return "http://hl7.org/fhir/resource-types";
6251            case VALUESET: return "http://hl7.org/fhir/resource-types";
6252            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/resource-types";
6253            default: return "?";
6254          }
6255        }
6256        public String getDefinition() {
6257          switch (this) {
6258            case ADDRESS: return "An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
6259            case AGE: return "A duration of time during which an organism (or a process) has existed.";
6260            case ANNOTATION: return "A  text note which also  contains information about who made the statement and when.";
6261            case ATTACHMENT: return "For referring to data content defined in other formats.";
6262            case BACKBONEELEMENT: return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
6263            case CODEABLECONCEPT: return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
6264            case CODING: return "A reference to a code defined by a terminology system.";
6265            case CONTACTDETAIL: return "Specifies contact information for a person or organization.";
6266            case CONTACTPOINT: return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
6267            case CONTRIBUTOR: return "A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
6268            case COUNT: 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.";
6269            case DATAREQUIREMENT: return "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.";
6270            case DISTANCE: return "A length - a value with a unit that is a physical distance.";
6271            case DOSAGE: return "Indicates how the medication is/was taken or should be taken by the patient.";
6272            case DURATION: return "A length of time.";
6273            case ELEMENT: return "Base definition for all elements in a resource.";
6274            case ELEMENTDEFINITION: return "Captures constraints on each element within the resource, profile, or extension.";
6275            case EXTENSION: return "Optional Extension Element - found in all resources.";
6276            case HUMANNAME: return "A human's name with the ability to identify parts and usage.";
6277            case IDENTIFIER: return "A technical identifier - identifies some entity uniquely and unambiguously.";
6278            case META: return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.";
6279            case MONEY: return "An amount of economic utility in some recognized currency.";
6280            case NARRATIVE: return "A human-readable formatted text, including images.";
6281            case PARAMETERDEFINITION: return "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.";
6282            case PERIOD: return "A time period defined by a start and end date and optionally time.";
6283            case QUANTITY: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
6284            case RANGE: return "A set of ordered Quantities defined by a low and high limit.";
6285            case RATIO: return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
6286            case REFERENCE: return "A reference from one resource to another.";
6287            case RELATEDARTIFACT: return "Related artifacts such as additional documentation, justification, or bibliographic references.";
6288            case SAMPLEDDATA: return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
6289            case SIGNATURE: return "A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.";
6290            case SIMPLEQUANTITY: return "";
6291            case TIMING: 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.";
6292            case TRIGGERDEFINITION: return "A description of a triggering event.";
6293            case USAGECONTEXT: 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).";
6294            case BASE64BINARY: return "A stream of bytes";
6295            case BOOLEAN: return "Value of \"true\" or \"false\"";
6296            case CODE: return "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents";
6297            case DATE: return "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
6298            case DATETIME: return "A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.";
6299            case DECIMAL: return "A rational number with implicit precision";
6300            case ID: return "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.";
6301            case INSTANT: return "An instant in time - known at least to the second";
6302            case INTEGER: return "A whole number";
6303            case MARKDOWN: return "A string that may contain markdown syntax for optional processing by a mark down presentation engine";
6304            case OID: return "An OID represented as a URI";
6305            case POSITIVEINT: return "An integer with a value that is positive (e.g. >0)";
6306            case STRING: return "A sequence of Unicode characters";
6307            case TIME: return "A time during the day, with no date specified";
6308            case UNSIGNEDINT: return "An integer with a value that is not negative (e.g. >= 0)";
6309            case URI: return "String of characters used to identify a name or a resource";
6310            case UUID: return "A UUID, represented as a URI";
6311            case XHTML: return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
6312            case ACCOUNT: return "A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centers, etc.";
6313            case ACTIVITYDEFINITION: return "This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.";
6314            case ADVERSEEVENT: 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.";
6315            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
6316            case APPOINTMENT: return "A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).";
6317            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
6318            case AUDITEVENT: return "A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.";
6319            case BASIC: return "Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.";
6320            case BINARY: return "A binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
6321            case BODYSITE: return "Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
6322            case BUNDLE: return "A container for a collection of resources.";
6323            case CAPABILITYSTATEMENT: return "A Capability Statement 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.";
6324            case CAREPLAN: return "Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.";
6325            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.";
6326            case CHARGEITEM: 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.";
6327            case CLAIM: return "A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.";
6328            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
6329            case CLINICALIMPRESSION: return "A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score.";
6330            case CODESYSTEM: return "A code system resource specifies a set of codes drawn from one or more code systems.";
6331            case COMMUNICATION: return "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.";
6332            case COMMUNICATIONREQUEST: return "A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.";
6333            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
6334            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.";
6335            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.";
6336            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
6337            case CONSENT: return "A record of a healthcare consumer’s policy 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.";
6338            case CONTRACT: return "A formal agreement between parties regarding the conduct of business, exchange of information or other matters.";
6339            case COVERAGE: return "Financial instrument which may be used to reimburse or pay for health care products and services.";
6340            case DATAELEMENT: return "The formal description of a single piece of information that can be gathered and reported.";
6341            case DETECTEDISSUE: return "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.";
6342            case DEVICE: return "This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices include durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.";
6343            case DEVICECOMPONENT: return "The characteristics, operational status and capabilities of a medical-related component of a medical device.";
6344            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
6345            case DEVICEREQUEST: 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.";
6346            case DEVICEUSESTATEMENT: return "A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.";
6347            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.";
6348            case DOCUMENTMANIFEST: return "A collection of documents compiled for a purpose together with metadata that applies to the collection.";
6349            case DOCUMENTREFERENCE: return "A reference to a document.";
6350            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
6351            case ELIGIBILITYREQUEST: return "The EligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an EligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.";
6352            case ELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an Eligibility resource.";
6353            case ENCOUNTER: return "An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.";
6354            case ENDPOINT: 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.";
6355            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
6356            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an Enrollment resource.";
6357            case EPISODEOFCARE: return "An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.";
6358            case EXPANSIONPROFILE: return "Resource to define constraints on the Expansion of a FHIR ValueSet.";
6359            case EXPLANATIONOFBENEFIT: return "This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.";
6360            case FAMILYMEMBERHISTORY: return "Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.";
6361            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
6362            case GOAL: return "Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.";
6363            case GRAPHDEFINITION: 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.";
6364            case GROUP: return "Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.";
6365            case GUIDANCERESPONSE: return "A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.";
6366            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location.";
6367            case IMAGINGMANIFEST: return "A text description of the DICOM SOP instances selected in the ImagingManifest; or the reason for, or significance of, the selection.";
6368            case IMAGINGSTUDY: return "Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.";
6369            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.";
6370            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.";
6371            case IMPLEMENTATIONGUIDE: return "A set of rules of how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.";
6372            case LIBRARY: 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.";
6373            case LINKAGE: return "Identifies two or more records (resource instances) that are referring to the same real-world \"occurrence\".";
6374            case LIST: return "A set of information summarized from a list of other resources.";
6375            case LOCATION: return "Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.";
6376            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
6377            case MEASUREREPORT: return "The MeasureReport resource contains the results of evaluating a measure.";
6378            case MEDIA: return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
6379            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.";
6380            case MEDICATIONADMINISTRATION: return "Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.";
6381            case MEDICATIONDISPENSE: return "Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.";
6382            case MEDICATIONREQUEST: 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.";
6383            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains \r\rThe primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
6384            case MESSAGEDEFINITION: 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.";
6385            case MESSAGEHEADER: return "The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.";
6386            case NAMINGSYSTEM: return "A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a \"System\" used within the Identifier and Coding data types.";
6387            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
6388            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
6389            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
6390            case OPERATIONOUTCOME: return "A collection of error, warning or information messages that result from a system action.";
6391            case ORGANIZATION: return "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.";
6392            case PARAMETERS: return "This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.";
6393            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
6394            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
6395            case PAYMENTRECONCILIATION: return "This resource provides payment details and claim references supporting a bulk payment.";
6396            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
6397            case PLANDEFINITION: 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.";
6398            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare.";
6399            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.";
6400            case PROCEDURE: return "An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.";
6401            case PROCEDUREREQUEST: return "A record of a request for diagnostic investigations, treatments, or operations to be performed.";
6402            case PROCESSREQUEST: return "This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.";
6403            case PROCESSRESPONSE: return "This resource provides processing status, errors and notes from the processing of a resource.";
6404            case PROVENANCE: return "Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.";
6405            case QUESTIONNAIRE: 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.";
6406            case QUESTIONNAIRERESPONSE: return "A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the questionnaire being responded to.";
6407            case REFERRALREQUEST: return "Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.";
6408            case RELATEDPERSON: return "Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
6409            case REQUESTGROUP: 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\".";
6410            case RESEARCHSTUDY: 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.";
6411            case RESEARCHSUBJECT: 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.";
6412            case RESOURCE: return "This is the base resource type for everything.";
6413            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
6414            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
6415            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
6416            case SEQUENCE: return "Raw data describing a biological sequence.";
6417            case SERVICEDEFINITION: return "The ServiceDefinition describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.";
6418            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
6419            case SPECIMEN: return "A sample to be used for analysis.";
6420            case STRUCTUREDEFINITION: return "A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions and constraints on resources and data types.";
6421            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
6422            case SUBSCRIPTION: return "The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system is able to take an appropriate action.";
6423            case SUBSTANCE: return "A homogeneous material with a definite composition.";
6424            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
6425            case SUPPLYREQUEST: return "A record of a request for a medication, substance or device used in the healthcare setting.";
6426            case TASK: return "A task to be performed.";
6427            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
6428            case TESTSCRIPT: return "A structured set of tests against a FHIR server implementation to determine compliance against the FHIR specification.";
6429            case VALUESET: return "A value set specifies a set of codes drawn from one or more code systems.";
6430            case VISIONPRESCRIPTION: return "An authorization for the supply of glasses and/or contact lenses to a patient.";
6431            default: return "?";
6432          }
6433        }
6434        public String getDisplay() {
6435          switch (this) {
6436            case ADDRESS: return "Address";
6437            case AGE: return "Age";
6438            case ANNOTATION: return "Annotation";
6439            case ATTACHMENT: return "Attachment";
6440            case BACKBONEELEMENT: return "BackboneElement";
6441            case CODEABLECONCEPT: return "CodeableConcept";
6442            case CODING: return "Coding";
6443            case CONTACTDETAIL: return "ContactDetail";
6444            case CONTACTPOINT: return "ContactPoint";
6445            case CONTRIBUTOR: return "Contributor";
6446            case COUNT: return "Count";
6447            case DATAREQUIREMENT: return "DataRequirement";
6448            case DISTANCE: return "Distance";
6449            case DOSAGE: return "Dosage";
6450            case DURATION: return "Duration";
6451            case ELEMENT: return "Element";
6452            case ELEMENTDEFINITION: return "ElementDefinition";
6453            case EXTENSION: return "Extension";
6454            case HUMANNAME: return "HumanName";
6455            case IDENTIFIER: return "Identifier";
6456            case META: return "Meta";
6457            case MONEY: return "Money";
6458            case NARRATIVE: return "Narrative";
6459            case PARAMETERDEFINITION: return "ParameterDefinition";
6460            case PERIOD: return "Period";
6461            case QUANTITY: return "Quantity";
6462            case RANGE: return "Range";
6463            case RATIO: return "Ratio";
6464            case REFERENCE: return "Reference";
6465            case RELATEDARTIFACT: return "RelatedArtifact";
6466            case SAMPLEDDATA: return "SampledData";
6467            case SIGNATURE: return "Signature";
6468            case SIMPLEQUANTITY: return "SimpleQuantity";
6469            case TIMING: return "Timing";
6470            case TRIGGERDEFINITION: return "TriggerDefinition";
6471            case USAGECONTEXT: return "UsageContext";
6472            case BASE64BINARY: return "base64Binary";
6473            case BOOLEAN: return "boolean";
6474            case CODE: return "code";
6475            case DATE: return "date";
6476            case DATETIME: return "dateTime";
6477            case DECIMAL: return "decimal";
6478            case ID: return "id";
6479            case INSTANT: return "instant";
6480            case INTEGER: return "integer";
6481            case MARKDOWN: return "markdown";
6482            case OID: return "oid";
6483            case POSITIVEINT: return "positiveInt";
6484            case STRING: return "string";
6485            case TIME: return "time";
6486            case UNSIGNEDINT: return "unsignedInt";
6487            case URI: return "uri";
6488            case UUID: return "uuid";
6489            case XHTML: return "XHTML";
6490            case ACCOUNT: return "Account";
6491            case ACTIVITYDEFINITION: return "ActivityDefinition";
6492            case ADVERSEEVENT: return "AdverseEvent";
6493            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
6494            case APPOINTMENT: return "Appointment";
6495            case APPOINTMENTRESPONSE: return "AppointmentResponse";
6496            case AUDITEVENT: return "AuditEvent";
6497            case BASIC: return "Basic";
6498            case BINARY: return "Binary";
6499            case BODYSITE: return "BodySite";
6500            case BUNDLE: return "Bundle";
6501            case CAPABILITYSTATEMENT: return "CapabilityStatement";
6502            case CAREPLAN: return "CarePlan";
6503            case CARETEAM: return "CareTeam";
6504            case CHARGEITEM: return "ChargeItem";
6505            case CLAIM: return "Claim";
6506            case CLAIMRESPONSE: return "ClaimResponse";
6507            case CLINICALIMPRESSION: return "ClinicalImpression";
6508            case CODESYSTEM: return "CodeSystem";
6509            case COMMUNICATION: return "Communication";
6510            case COMMUNICATIONREQUEST: return "CommunicationRequest";
6511            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
6512            case COMPOSITION: return "Composition";
6513            case CONCEPTMAP: return "ConceptMap";
6514            case CONDITION: return "Condition";
6515            case CONSENT: return "Consent";
6516            case CONTRACT: return "Contract";
6517            case COVERAGE: return "Coverage";
6518            case DATAELEMENT: return "DataElement";
6519            case DETECTEDISSUE: return "DetectedIssue";
6520            case DEVICE: return "Device";
6521            case DEVICECOMPONENT: return "DeviceComponent";
6522            case DEVICEMETRIC: return "DeviceMetric";
6523            case DEVICEREQUEST: return "DeviceRequest";
6524            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
6525            case DIAGNOSTICREPORT: return "DiagnosticReport";
6526            case DOCUMENTMANIFEST: return "DocumentManifest";
6527            case DOCUMENTREFERENCE: return "DocumentReference";
6528            case DOMAINRESOURCE: return "DomainResource";
6529            case ELIGIBILITYREQUEST: return "EligibilityRequest";
6530            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
6531            case ENCOUNTER: return "Encounter";
6532            case ENDPOINT: return "Endpoint";
6533            case ENROLLMENTREQUEST: return "EnrollmentRequest";
6534            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
6535            case EPISODEOFCARE: return "EpisodeOfCare";
6536            case EXPANSIONPROFILE: return "ExpansionProfile";
6537            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
6538            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
6539            case FLAG: return "Flag";
6540            case GOAL: return "Goal";
6541            case GRAPHDEFINITION: return "GraphDefinition";
6542            case GROUP: return "Group";
6543            case GUIDANCERESPONSE: return "GuidanceResponse";
6544            case HEALTHCARESERVICE: return "HealthcareService";
6545            case IMAGINGMANIFEST: return "ImagingManifest";
6546            case IMAGINGSTUDY: return "ImagingStudy";
6547            case IMMUNIZATION: return "Immunization";
6548            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
6549            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
6550            case LIBRARY: return "Library";
6551            case LINKAGE: return "Linkage";
6552            case LIST: return "List";
6553            case LOCATION: return "Location";
6554            case MEASURE: return "Measure";
6555            case MEASUREREPORT: return "MeasureReport";
6556            case MEDIA: return "Media";
6557            case MEDICATION: return "Medication";
6558            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
6559            case MEDICATIONDISPENSE: return "MedicationDispense";
6560            case MEDICATIONREQUEST: return "MedicationRequest";
6561            case MEDICATIONSTATEMENT: return "MedicationStatement";
6562            case MESSAGEDEFINITION: return "MessageDefinition";
6563            case MESSAGEHEADER: return "MessageHeader";
6564            case NAMINGSYSTEM: return "NamingSystem";
6565            case NUTRITIONORDER: return "NutritionOrder";
6566            case OBSERVATION: return "Observation";
6567            case OPERATIONDEFINITION: return "OperationDefinition";
6568            case OPERATIONOUTCOME: return "OperationOutcome";
6569            case ORGANIZATION: return "Organization";
6570            case PARAMETERS: return "Parameters";
6571            case PATIENT: return "Patient";
6572            case PAYMENTNOTICE: return "PaymentNotice";
6573            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
6574            case PERSON: return "Person";
6575            case PLANDEFINITION: return "PlanDefinition";
6576            case PRACTITIONER: return "Practitioner";
6577            case PRACTITIONERROLE: return "PractitionerRole";
6578            case PROCEDURE: return "Procedure";
6579            case PROCEDUREREQUEST: return "ProcedureRequest";
6580            case PROCESSREQUEST: return "ProcessRequest";
6581            case PROCESSRESPONSE: return "ProcessResponse";
6582            case PROVENANCE: return "Provenance";
6583            case QUESTIONNAIRE: return "Questionnaire";
6584            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
6585            case REFERRALREQUEST: return "ReferralRequest";
6586            case RELATEDPERSON: return "RelatedPerson";
6587            case REQUESTGROUP: return "RequestGroup";
6588            case RESEARCHSTUDY: return "ResearchStudy";
6589            case RESEARCHSUBJECT: return "ResearchSubject";
6590            case RESOURCE: return "Resource";
6591            case RISKASSESSMENT: return "RiskAssessment";
6592            case SCHEDULE: return "Schedule";
6593            case SEARCHPARAMETER: return "SearchParameter";
6594            case SEQUENCE: return "Sequence";
6595            case SERVICEDEFINITION: return "ServiceDefinition";
6596            case SLOT: return "Slot";
6597            case SPECIMEN: return "Specimen";
6598            case STRUCTUREDEFINITION: return "StructureDefinition";
6599            case STRUCTUREMAP: return "StructureMap";
6600            case SUBSCRIPTION: return "Subscription";
6601            case SUBSTANCE: return "Substance";
6602            case SUPPLYDELIVERY: return "SupplyDelivery";
6603            case SUPPLYREQUEST: return "SupplyRequest";
6604            case TASK: return "Task";
6605            case TESTREPORT: return "TestReport";
6606            case TESTSCRIPT: return "TestScript";
6607            case VALUESET: return "ValueSet";
6608            case VISIONPRESCRIPTION: return "VisionPrescription";
6609            default: return "?";
6610          }
6611        }
6612    }
6613
6614  public static class FHIRDefinedTypeEnumFactory implements EnumFactory<FHIRDefinedType> {
6615    public FHIRDefinedType fromCode(String codeString) throws IllegalArgumentException {
6616      if (codeString == null || "".equals(codeString))
6617            if (codeString == null || "".equals(codeString))
6618                return null;
6619        if ("Address".equals(codeString))
6620          return FHIRDefinedType.ADDRESS;
6621        if ("Age".equals(codeString))
6622          return FHIRDefinedType.AGE;
6623        if ("Annotation".equals(codeString))
6624          return FHIRDefinedType.ANNOTATION;
6625        if ("Attachment".equals(codeString))
6626          return FHIRDefinedType.ATTACHMENT;
6627        if ("BackboneElement".equals(codeString))
6628          return FHIRDefinedType.BACKBONEELEMENT;
6629        if ("CodeableConcept".equals(codeString))
6630          return FHIRDefinedType.CODEABLECONCEPT;
6631        if ("Coding".equals(codeString))
6632          return FHIRDefinedType.CODING;
6633        if ("ContactDetail".equals(codeString))
6634          return FHIRDefinedType.CONTACTDETAIL;
6635        if ("ContactPoint".equals(codeString))
6636          return FHIRDefinedType.CONTACTPOINT;
6637        if ("Contributor".equals(codeString))
6638          return FHIRDefinedType.CONTRIBUTOR;
6639        if ("Count".equals(codeString))
6640          return FHIRDefinedType.COUNT;
6641        if ("DataRequirement".equals(codeString))
6642          return FHIRDefinedType.DATAREQUIREMENT;
6643        if ("Distance".equals(codeString))
6644          return FHIRDefinedType.DISTANCE;
6645        if ("Dosage".equals(codeString))
6646          return FHIRDefinedType.DOSAGE;
6647        if ("Duration".equals(codeString))
6648          return FHIRDefinedType.DURATION;
6649        if ("Element".equals(codeString))
6650          return FHIRDefinedType.ELEMENT;
6651        if ("ElementDefinition".equals(codeString))
6652          return FHIRDefinedType.ELEMENTDEFINITION;
6653        if ("Extension".equals(codeString))
6654          return FHIRDefinedType.EXTENSION;
6655        if ("HumanName".equals(codeString))
6656          return FHIRDefinedType.HUMANNAME;
6657        if ("Identifier".equals(codeString))
6658          return FHIRDefinedType.IDENTIFIER;
6659        if ("Meta".equals(codeString))
6660          return FHIRDefinedType.META;
6661        if ("Money".equals(codeString))
6662          return FHIRDefinedType.MONEY;
6663        if ("Narrative".equals(codeString))
6664          return FHIRDefinedType.NARRATIVE;
6665        if ("ParameterDefinition".equals(codeString))
6666          return FHIRDefinedType.PARAMETERDEFINITION;
6667        if ("Period".equals(codeString))
6668          return FHIRDefinedType.PERIOD;
6669        if ("Quantity".equals(codeString))
6670          return FHIRDefinedType.QUANTITY;
6671        if ("Range".equals(codeString))
6672          return FHIRDefinedType.RANGE;
6673        if ("Ratio".equals(codeString))
6674          return FHIRDefinedType.RATIO;
6675        if ("Reference".equals(codeString))
6676          return FHIRDefinedType.REFERENCE;
6677        if ("RelatedArtifact".equals(codeString))
6678          return FHIRDefinedType.RELATEDARTIFACT;
6679        if ("SampledData".equals(codeString))
6680          return FHIRDefinedType.SAMPLEDDATA;
6681        if ("Signature".equals(codeString))
6682          return FHIRDefinedType.SIGNATURE;
6683        if ("SimpleQuantity".equals(codeString))
6684          return FHIRDefinedType.SIMPLEQUANTITY;
6685        if ("Timing".equals(codeString))
6686          return FHIRDefinedType.TIMING;
6687        if ("TriggerDefinition".equals(codeString))
6688          return FHIRDefinedType.TRIGGERDEFINITION;
6689        if ("UsageContext".equals(codeString))
6690          return FHIRDefinedType.USAGECONTEXT;
6691        if ("base64Binary".equals(codeString))
6692          return FHIRDefinedType.BASE64BINARY;
6693        if ("boolean".equals(codeString))
6694          return FHIRDefinedType.BOOLEAN;
6695        if ("code".equals(codeString))
6696          return FHIRDefinedType.CODE;
6697        if ("date".equals(codeString))
6698          return FHIRDefinedType.DATE;
6699        if ("dateTime".equals(codeString))
6700          return FHIRDefinedType.DATETIME;
6701        if ("decimal".equals(codeString))
6702          return FHIRDefinedType.DECIMAL;
6703        if ("id".equals(codeString))
6704          return FHIRDefinedType.ID;
6705        if ("instant".equals(codeString))
6706          return FHIRDefinedType.INSTANT;
6707        if ("integer".equals(codeString))
6708          return FHIRDefinedType.INTEGER;
6709        if ("markdown".equals(codeString))
6710          return FHIRDefinedType.MARKDOWN;
6711        if ("oid".equals(codeString))
6712          return FHIRDefinedType.OID;
6713        if ("positiveInt".equals(codeString))
6714          return FHIRDefinedType.POSITIVEINT;
6715        if ("string".equals(codeString))
6716          return FHIRDefinedType.STRING;
6717        if ("time".equals(codeString))
6718          return FHIRDefinedType.TIME;
6719        if ("unsignedInt".equals(codeString))
6720          return FHIRDefinedType.UNSIGNEDINT;
6721        if ("uri".equals(codeString))
6722          return FHIRDefinedType.URI;
6723        if ("uuid".equals(codeString))
6724          return FHIRDefinedType.UUID;
6725        if ("xhtml".equals(codeString))
6726          return FHIRDefinedType.XHTML;
6727        if ("Account".equals(codeString))
6728          return FHIRDefinedType.ACCOUNT;
6729        if ("ActivityDefinition".equals(codeString))
6730          return FHIRDefinedType.ACTIVITYDEFINITION;
6731        if ("AdverseEvent".equals(codeString))
6732          return FHIRDefinedType.ADVERSEEVENT;
6733        if ("AllergyIntolerance".equals(codeString))
6734          return FHIRDefinedType.ALLERGYINTOLERANCE;
6735        if ("Appointment".equals(codeString))
6736          return FHIRDefinedType.APPOINTMENT;
6737        if ("AppointmentResponse".equals(codeString))
6738          return FHIRDefinedType.APPOINTMENTRESPONSE;
6739        if ("AuditEvent".equals(codeString))
6740          return FHIRDefinedType.AUDITEVENT;
6741        if ("Basic".equals(codeString))
6742          return FHIRDefinedType.BASIC;
6743        if ("Binary".equals(codeString))
6744          return FHIRDefinedType.BINARY;
6745        if ("BodySite".equals(codeString))
6746          return FHIRDefinedType.BODYSITE;
6747        if ("Bundle".equals(codeString))
6748          return FHIRDefinedType.BUNDLE;
6749        if ("CapabilityStatement".equals(codeString))
6750          return FHIRDefinedType.CAPABILITYSTATEMENT;
6751        if ("CarePlan".equals(codeString))
6752          return FHIRDefinedType.CAREPLAN;
6753        if ("CareTeam".equals(codeString))
6754          return FHIRDefinedType.CARETEAM;
6755        if ("ChargeItem".equals(codeString))
6756          return FHIRDefinedType.CHARGEITEM;
6757        if ("Claim".equals(codeString))
6758          return FHIRDefinedType.CLAIM;
6759        if ("ClaimResponse".equals(codeString))
6760          return FHIRDefinedType.CLAIMRESPONSE;
6761        if ("ClinicalImpression".equals(codeString))
6762          return FHIRDefinedType.CLINICALIMPRESSION;
6763        if ("CodeSystem".equals(codeString))
6764          return FHIRDefinedType.CODESYSTEM;
6765        if ("Communication".equals(codeString))
6766          return FHIRDefinedType.COMMUNICATION;
6767        if ("CommunicationRequest".equals(codeString))
6768          return FHIRDefinedType.COMMUNICATIONREQUEST;
6769        if ("CompartmentDefinition".equals(codeString))
6770          return FHIRDefinedType.COMPARTMENTDEFINITION;
6771        if ("Composition".equals(codeString))
6772          return FHIRDefinedType.COMPOSITION;
6773        if ("ConceptMap".equals(codeString))
6774          return FHIRDefinedType.CONCEPTMAP;
6775        if ("Condition".equals(codeString))
6776          return FHIRDefinedType.CONDITION;
6777        if ("Consent".equals(codeString))
6778          return FHIRDefinedType.CONSENT;
6779        if ("Contract".equals(codeString))
6780          return FHIRDefinedType.CONTRACT;
6781        if ("Coverage".equals(codeString))
6782          return FHIRDefinedType.COVERAGE;
6783        if ("DataElement".equals(codeString))
6784          return FHIRDefinedType.DATAELEMENT;
6785        if ("DetectedIssue".equals(codeString))
6786          return FHIRDefinedType.DETECTEDISSUE;
6787        if ("Device".equals(codeString))
6788          return FHIRDefinedType.DEVICE;
6789        if ("DeviceComponent".equals(codeString))
6790          return FHIRDefinedType.DEVICECOMPONENT;
6791        if ("DeviceMetric".equals(codeString))
6792          return FHIRDefinedType.DEVICEMETRIC;
6793        if ("DeviceRequest".equals(codeString))
6794          return FHIRDefinedType.DEVICEREQUEST;
6795        if ("DeviceUseStatement".equals(codeString))
6796          return FHIRDefinedType.DEVICEUSESTATEMENT;
6797        if ("DiagnosticReport".equals(codeString))
6798          return FHIRDefinedType.DIAGNOSTICREPORT;
6799        if ("DocumentManifest".equals(codeString))
6800          return FHIRDefinedType.DOCUMENTMANIFEST;
6801        if ("DocumentReference".equals(codeString))
6802          return FHIRDefinedType.DOCUMENTREFERENCE;
6803        if ("DomainResource".equals(codeString))
6804          return FHIRDefinedType.DOMAINRESOURCE;
6805        if ("EligibilityRequest".equals(codeString))
6806          return FHIRDefinedType.ELIGIBILITYREQUEST;
6807        if ("EligibilityResponse".equals(codeString))
6808          return FHIRDefinedType.ELIGIBILITYRESPONSE;
6809        if ("Encounter".equals(codeString))
6810          return FHIRDefinedType.ENCOUNTER;
6811        if ("Endpoint".equals(codeString))
6812          return FHIRDefinedType.ENDPOINT;
6813        if ("EnrollmentRequest".equals(codeString))
6814          return FHIRDefinedType.ENROLLMENTREQUEST;
6815        if ("EnrollmentResponse".equals(codeString))
6816          return FHIRDefinedType.ENROLLMENTRESPONSE;
6817        if ("EpisodeOfCare".equals(codeString))
6818          return FHIRDefinedType.EPISODEOFCARE;
6819        if ("ExpansionProfile".equals(codeString))
6820          return FHIRDefinedType.EXPANSIONPROFILE;
6821        if ("ExplanationOfBenefit".equals(codeString))
6822          return FHIRDefinedType.EXPLANATIONOFBENEFIT;
6823        if ("FamilyMemberHistory".equals(codeString))
6824          return FHIRDefinedType.FAMILYMEMBERHISTORY;
6825        if ("Flag".equals(codeString))
6826          return FHIRDefinedType.FLAG;
6827        if ("Goal".equals(codeString))
6828          return FHIRDefinedType.GOAL;
6829        if ("GraphDefinition".equals(codeString))
6830          return FHIRDefinedType.GRAPHDEFINITION;
6831        if ("Group".equals(codeString))
6832          return FHIRDefinedType.GROUP;
6833        if ("GuidanceResponse".equals(codeString))
6834          return FHIRDefinedType.GUIDANCERESPONSE;
6835        if ("HealthcareService".equals(codeString))
6836          return FHIRDefinedType.HEALTHCARESERVICE;
6837        if ("ImagingManifest".equals(codeString))
6838          return FHIRDefinedType.IMAGINGMANIFEST;
6839        if ("ImagingStudy".equals(codeString))
6840          return FHIRDefinedType.IMAGINGSTUDY;
6841        if ("Immunization".equals(codeString))
6842          return FHIRDefinedType.IMMUNIZATION;
6843        if ("ImmunizationRecommendation".equals(codeString))
6844          return FHIRDefinedType.IMMUNIZATIONRECOMMENDATION;
6845        if ("ImplementationGuide".equals(codeString))
6846          return FHIRDefinedType.IMPLEMENTATIONGUIDE;
6847        if ("Library".equals(codeString))
6848          return FHIRDefinedType.LIBRARY;
6849        if ("Linkage".equals(codeString))
6850          return FHIRDefinedType.LINKAGE;
6851        if ("List".equals(codeString))
6852          return FHIRDefinedType.LIST;
6853        if ("Location".equals(codeString))
6854          return FHIRDefinedType.LOCATION;
6855        if ("Measure".equals(codeString))
6856          return FHIRDefinedType.MEASURE;
6857        if ("MeasureReport".equals(codeString))
6858          return FHIRDefinedType.MEASUREREPORT;
6859        if ("Media".equals(codeString))
6860          return FHIRDefinedType.MEDIA;
6861        if ("Medication".equals(codeString))
6862          return FHIRDefinedType.MEDICATION;
6863        if ("MedicationAdministration".equals(codeString))
6864          return FHIRDefinedType.MEDICATIONADMINISTRATION;
6865        if ("MedicationDispense".equals(codeString))
6866          return FHIRDefinedType.MEDICATIONDISPENSE;
6867        if ("MedicationRequest".equals(codeString))
6868          return FHIRDefinedType.MEDICATIONREQUEST;
6869        if ("MedicationStatement".equals(codeString))
6870          return FHIRDefinedType.MEDICATIONSTATEMENT;
6871        if ("MessageDefinition".equals(codeString))
6872          return FHIRDefinedType.MESSAGEDEFINITION;
6873        if ("MessageHeader".equals(codeString))
6874          return FHIRDefinedType.MESSAGEHEADER;
6875        if ("NamingSystem".equals(codeString))
6876          return FHIRDefinedType.NAMINGSYSTEM;
6877        if ("NutritionOrder".equals(codeString))
6878          return FHIRDefinedType.NUTRITIONORDER;
6879        if ("Observation".equals(codeString))
6880          return FHIRDefinedType.OBSERVATION;
6881        if ("OperationDefinition".equals(codeString))
6882          return FHIRDefinedType.OPERATIONDEFINITION;
6883        if ("OperationOutcome".equals(codeString))
6884          return FHIRDefinedType.OPERATIONOUTCOME;
6885        if ("Organization".equals(codeString))
6886          return FHIRDefinedType.ORGANIZATION;
6887        if ("Parameters".equals(codeString))
6888          return FHIRDefinedType.PARAMETERS;
6889        if ("Patient".equals(codeString))
6890          return FHIRDefinedType.PATIENT;
6891        if ("PaymentNotice".equals(codeString))
6892          return FHIRDefinedType.PAYMENTNOTICE;
6893        if ("PaymentReconciliation".equals(codeString))
6894          return FHIRDefinedType.PAYMENTRECONCILIATION;
6895        if ("Person".equals(codeString))
6896          return FHIRDefinedType.PERSON;
6897        if ("PlanDefinition".equals(codeString))
6898          return FHIRDefinedType.PLANDEFINITION;
6899        if ("Practitioner".equals(codeString))
6900          return FHIRDefinedType.PRACTITIONER;
6901        if ("PractitionerRole".equals(codeString))
6902          return FHIRDefinedType.PRACTITIONERROLE;
6903        if ("Procedure".equals(codeString))
6904          return FHIRDefinedType.PROCEDURE;
6905        if ("ProcedureRequest".equals(codeString))
6906          return FHIRDefinedType.PROCEDUREREQUEST;
6907        if ("ProcessRequest".equals(codeString))
6908          return FHIRDefinedType.PROCESSREQUEST;
6909        if ("ProcessResponse".equals(codeString))
6910          return FHIRDefinedType.PROCESSRESPONSE;
6911        if ("Provenance".equals(codeString))
6912          return FHIRDefinedType.PROVENANCE;
6913        if ("Questionnaire".equals(codeString))
6914          return FHIRDefinedType.QUESTIONNAIRE;
6915        if ("QuestionnaireResponse".equals(codeString))
6916          return FHIRDefinedType.QUESTIONNAIRERESPONSE;
6917        if ("ReferralRequest".equals(codeString))
6918          return FHIRDefinedType.REFERRALREQUEST;
6919        if ("RelatedPerson".equals(codeString))
6920          return FHIRDefinedType.RELATEDPERSON;
6921        if ("RequestGroup".equals(codeString))
6922          return FHIRDefinedType.REQUESTGROUP;
6923        if ("ResearchStudy".equals(codeString))
6924          return FHIRDefinedType.RESEARCHSTUDY;
6925        if ("ResearchSubject".equals(codeString))
6926          return FHIRDefinedType.RESEARCHSUBJECT;
6927        if ("Resource".equals(codeString))
6928          return FHIRDefinedType.RESOURCE;
6929        if ("RiskAssessment".equals(codeString))
6930          return FHIRDefinedType.RISKASSESSMENT;
6931        if ("Schedule".equals(codeString))
6932          return FHIRDefinedType.SCHEDULE;
6933        if ("SearchParameter".equals(codeString))
6934          return FHIRDefinedType.SEARCHPARAMETER;
6935        if ("Sequence".equals(codeString))
6936          return FHIRDefinedType.SEQUENCE;
6937        if ("ServiceDefinition".equals(codeString))
6938          return FHIRDefinedType.SERVICEDEFINITION;
6939        if ("Slot".equals(codeString))
6940          return FHIRDefinedType.SLOT;
6941        if ("Specimen".equals(codeString))
6942          return FHIRDefinedType.SPECIMEN;
6943        if ("StructureDefinition".equals(codeString))
6944          return FHIRDefinedType.STRUCTUREDEFINITION;
6945        if ("StructureMap".equals(codeString))
6946          return FHIRDefinedType.STRUCTUREMAP;
6947        if ("Subscription".equals(codeString))
6948          return FHIRDefinedType.SUBSCRIPTION;
6949        if ("Substance".equals(codeString))
6950          return FHIRDefinedType.SUBSTANCE;
6951        if ("SupplyDelivery".equals(codeString))
6952          return FHIRDefinedType.SUPPLYDELIVERY;
6953        if ("SupplyRequest".equals(codeString))
6954          return FHIRDefinedType.SUPPLYREQUEST;
6955        if ("Task".equals(codeString))
6956          return FHIRDefinedType.TASK;
6957        if ("TestReport".equals(codeString))
6958          return FHIRDefinedType.TESTREPORT;
6959        if ("TestScript".equals(codeString))
6960          return FHIRDefinedType.TESTSCRIPT;
6961        if ("ValueSet".equals(codeString))
6962          return FHIRDefinedType.VALUESET;
6963        if ("VisionPrescription".equals(codeString))
6964          return FHIRDefinedType.VISIONPRESCRIPTION;
6965        throw new IllegalArgumentException("Unknown FHIRDefinedType code '"+codeString+"'");
6966        }
6967        public Enumeration<FHIRDefinedType> fromType(Base code) throws FHIRException {
6968          if (code == null)
6969            return null;
6970          if (code.isEmpty())
6971            return new Enumeration<FHIRDefinedType>(this);
6972          String codeString = ((PrimitiveType) code).asStringValue();
6973          if (codeString == null || "".equals(codeString))
6974            return null;
6975        if ("Address".equals(codeString))
6976          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ADDRESS);
6977        if ("Age".equals(codeString))
6978          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.AGE);
6979        if ("Annotation".equals(codeString))
6980          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ANNOTATION);
6981        if ("Attachment".equals(codeString))
6982          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ATTACHMENT);
6983        if ("BackboneElement".equals(codeString))
6984          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BACKBONEELEMENT);
6985        if ("CodeableConcept".equals(codeString))
6986          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODEABLECONCEPT);
6987        if ("Coding".equals(codeString))
6988          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODING);
6989        if ("ContactDetail".equals(codeString))
6990          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONTACTDETAIL);
6991        if ("ContactPoint".equals(codeString))
6992          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONTACTPOINT);
6993        if ("Contributor".equals(codeString))
6994          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONTRIBUTOR);
6995        if ("Count".equals(codeString))
6996          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COUNT);
6997        if ("DataRequirement".equals(codeString))
6998          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATAREQUIREMENT);
6999        if ("Distance".equals(codeString))
7000          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DISTANCE);
7001        if ("Dosage".equals(codeString))
7002          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DOSAGE);
7003        if ("Duration".equals(codeString))
7004          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DURATION);
7005        if ("Element".equals(codeString))
7006          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELEMENT);
7007        if ("ElementDefinition".equals(codeString))
7008          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELEMENTDEFINITION);
7009        if ("Extension".equals(codeString))
7010          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EXTENSION);
7011        if ("HumanName".equals(codeString))
7012          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.HUMANNAME);
7013        if ("Identifier".equals(codeString))
7014          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IDENTIFIER);
7015        if ("Meta".equals(codeString))
7016          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.META);
7017        if ("Money".equals(codeString))
7018          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MONEY);
7019        if ("Narrative".equals(codeString))
7020          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.NARRATIVE);
7021        if ("ParameterDefinition".equals(codeString))
7022          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PARAMETERDEFINITION);
7023        if ("Period".equals(codeString))
7024          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PERIOD);
7025        if ("Quantity".equals(codeString))
7026          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.QUANTITY);
7027        if ("Range".equals(codeString))
7028          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RANGE);
7029        if ("Ratio".equals(codeString))
7030          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RATIO);
7031        if ("Reference".equals(codeString))
7032          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.REFERENCE);
7033        if ("RelatedArtifact".equals(codeString))
7034          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RELATEDARTIFACT);
7035        if ("SampledData".equals(codeString))
7036          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SAMPLEDDATA);
7037        if ("Signature".equals(codeString))
7038          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SIGNATURE);
7039        if ("SimpleQuantity".equals(codeString))
7040          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SIMPLEQUANTITY);
7041        if ("Timing".equals(codeString))
7042          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TIMING);
7043        if ("TriggerDefinition".equals(codeString))
7044          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TRIGGERDEFINITION);
7045        if ("UsageContext".equals(codeString))
7046          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.USAGECONTEXT);
7047        if ("base64Binary".equals(codeString))
7048          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BASE64BINARY);
7049        if ("boolean".equals(codeString))
7050          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BOOLEAN);
7051        if ("code".equals(codeString))
7052          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODE);
7053        if ("date".equals(codeString))
7054          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATE);
7055        if ("dateTime".equals(codeString))
7056          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATETIME);
7057        if ("decimal".equals(codeString))
7058          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DECIMAL);
7059        if ("id".equals(codeString))
7060          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ID);
7061        if ("instant".equals(codeString))
7062          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.INSTANT);
7063        if ("integer".equals(codeString))
7064          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.INTEGER);
7065        if ("markdown".equals(codeString))
7066          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MARKDOWN);
7067        if ("oid".equals(codeString))
7068          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OID);
7069        if ("positiveInt".equals(codeString))
7070          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.POSITIVEINT);
7071        if ("string".equals(codeString))
7072          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.STRING);
7073        if ("time".equals(codeString))
7074          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TIME);
7075        if ("unsignedInt".equals(codeString))
7076          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.UNSIGNEDINT);
7077        if ("uri".equals(codeString))
7078          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.URI);
7079        if ("uuid".equals(codeString))
7080          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.UUID);
7081        if ("xhtml".equals(codeString))
7082          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.XHTML);
7083        if ("Account".equals(codeString))
7084          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ACCOUNT);
7085        if ("ActivityDefinition".equals(codeString))
7086          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ACTIVITYDEFINITION);
7087        if ("AdverseEvent".equals(codeString))
7088          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ADVERSEEVENT);
7089        if ("AllergyIntolerance".equals(codeString))
7090          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ALLERGYINTOLERANCE);
7091        if ("Appointment".equals(codeString))
7092          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.APPOINTMENT);
7093        if ("AppointmentResponse".equals(codeString))
7094          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.APPOINTMENTRESPONSE);
7095        if ("AuditEvent".equals(codeString))
7096          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.AUDITEVENT);
7097        if ("Basic".equals(codeString))
7098          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BASIC);
7099        if ("Binary".equals(codeString))
7100          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BINARY);
7101        if ("BodySite".equals(codeString))
7102          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BODYSITE);
7103        if ("Bundle".equals(codeString))
7104          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.BUNDLE);
7105        if ("CapabilityStatement".equals(codeString))
7106          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CAPABILITYSTATEMENT);
7107        if ("CarePlan".equals(codeString))
7108          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CAREPLAN);
7109        if ("CareTeam".equals(codeString))
7110          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CARETEAM);
7111        if ("ChargeItem".equals(codeString))
7112          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CHARGEITEM);
7113        if ("Claim".equals(codeString))
7114          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CLAIM);
7115        if ("ClaimResponse".equals(codeString))
7116          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CLAIMRESPONSE);
7117        if ("ClinicalImpression".equals(codeString))
7118          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CLINICALIMPRESSION);
7119        if ("CodeSystem".equals(codeString))
7120          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CODESYSTEM);
7121        if ("Communication".equals(codeString))
7122          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMMUNICATION);
7123        if ("CommunicationRequest".equals(codeString))
7124          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMMUNICATIONREQUEST);
7125        if ("CompartmentDefinition".equals(codeString))
7126          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMPARTMENTDEFINITION);
7127        if ("Composition".equals(codeString))
7128          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COMPOSITION);
7129        if ("ConceptMap".equals(codeString))
7130          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONCEPTMAP);
7131        if ("Condition".equals(codeString))
7132          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONDITION);
7133        if ("Consent".equals(codeString))
7134          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONSENT);
7135        if ("Contract".equals(codeString))
7136          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.CONTRACT);
7137        if ("Coverage".equals(codeString))
7138          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.COVERAGE);
7139        if ("DataElement".equals(codeString))
7140          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DATAELEMENT);
7141        if ("DetectedIssue".equals(codeString))
7142          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DETECTEDISSUE);
7143        if ("Device".equals(codeString))
7144          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICE);
7145        if ("DeviceComponent".equals(codeString))
7146          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICECOMPONENT);
7147        if ("DeviceMetric".equals(codeString))
7148          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICEMETRIC);
7149        if ("DeviceRequest".equals(codeString))
7150          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICEREQUEST);
7151        if ("DeviceUseStatement".equals(codeString))
7152          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DEVICEUSESTATEMENT);
7153        if ("DiagnosticReport".equals(codeString))
7154          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DIAGNOSTICREPORT);
7155        if ("DocumentManifest".equals(codeString))
7156          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DOCUMENTMANIFEST);
7157        if ("DocumentReference".equals(codeString))
7158          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DOCUMENTREFERENCE);
7159        if ("DomainResource".equals(codeString))
7160          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.DOMAINRESOURCE);
7161        if ("EligibilityRequest".equals(codeString))
7162          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELIGIBILITYREQUEST);
7163        if ("EligibilityResponse".equals(codeString))
7164          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ELIGIBILITYRESPONSE);
7165        if ("Encounter".equals(codeString))
7166          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ENCOUNTER);
7167        if ("Endpoint".equals(codeString))
7168          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ENDPOINT);
7169        if ("EnrollmentRequest".equals(codeString))
7170          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ENROLLMENTREQUEST);
7171        if ("EnrollmentResponse".equals(codeString))
7172          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ENROLLMENTRESPONSE);
7173        if ("EpisodeOfCare".equals(codeString))
7174          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EPISODEOFCARE);
7175        if ("ExpansionProfile".equals(codeString))
7176          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EXPANSIONPROFILE);
7177        if ("ExplanationOfBenefit".equals(codeString))
7178          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.EXPLANATIONOFBENEFIT);
7179        if ("FamilyMemberHistory".equals(codeString))
7180          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.FAMILYMEMBERHISTORY);
7181        if ("Flag".equals(codeString))
7182          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.FLAG);
7183        if ("Goal".equals(codeString))
7184          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.GOAL);
7185        if ("GraphDefinition".equals(codeString))
7186          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.GRAPHDEFINITION);
7187        if ("Group".equals(codeString))
7188          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.GROUP);
7189        if ("GuidanceResponse".equals(codeString))
7190          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.GUIDANCERESPONSE);
7191        if ("HealthcareService".equals(codeString))
7192          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.HEALTHCARESERVICE);
7193        if ("ImagingManifest".equals(codeString))
7194          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMAGINGMANIFEST);
7195        if ("ImagingStudy".equals(codeString))
7196          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMAGINGSTUDY);
7197        if ("Immunization".equals(codeString))
7198          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMMUNIZATION);
7199        if ("ImmunizationRecommendation".equals(codeString))
7200          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMMUNIZATIONRECOMMENDATION);
7201        if ("ImplementationGuide".equals(codeString))
7202          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.IMPLEMENTATIONGUIDE);
7203        if ("Library".equals(codeString))
7204          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LIBRARY);
7205        if ("Linkage".equals(codeString))
7206          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LINKAGE);
7207        if ("List".equals(codeString))
7208          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LIST);
7209        if ("Location".equals(codeString))
7210          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.LOCATION);
7211        if ("Measure".equals(codeString))
7212          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEASURE);
7213        if ("MeasureReport".equals(codeString))
7214          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEASUREREPORT);
7215        if ("Media".equals(codeString))
7216          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDIA);
7217        if ("Medication".equals(codeString))
7218          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATION);
7219        if ("MedicationAdministration".equals(codeString))
7220          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONADMINISTRATION);
7221        if ("MedicationDispense".equals(codeString))
7222          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONDISPENSE);
7223        if ("MedicationRequest".equals(codeString))
7224          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONREQUEST);
7225        if ("MedicationStatement".equals(codeString))
7226          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MEDICATIONSTATEMENT);
7227        if ("MessageDefinition".equals(codeString))
7228          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MESSAGEDEFINITION);
7229        if ("MessageHeader".equals(codeString))
7230          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.MESSAGEHEADER);
7231        if ("NamingSystem".equals(codeString))
7232          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.NAMINGSYSTEM);
7233        if ("NutritionOrder".equals(codeString))
7234          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.NUTRITIONORDER);
7235        if ("Observation".equals(codeString))
7236          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OBSERVATION);
7237        if ("OperationDefinition".equals(codeString))
7238          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OPERATIONDEFINITION);
7239        if ("OperationOutcome".equals(codeString))
7240          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.OPERATIONOUTCOME);
7241        if ("Organization".equals(codeString))
7242          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.ORGANIZATION);
7243        if ("Parameters".equals(codeString))
7244          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PARAMETERS);
7245        if ("Patient".equals(codeString))
7246          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PATIENT);
7247        if ("PaymentNotice".equals(codeString))
7248          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PAYMENTNOTICE);
7249        if ("PaymentReconciliation".equals(codeString))
7250          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PAYMENTRECONCILIATION);
7251        if ("Person".equals(codeString))
7252          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PERSON);
7253        if ("PlanDefinition".equals(codeString))
7254          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PLANDEFINITION);
7255        if ("Practitioner".equals(codeString))
7256          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PRACTITIONER);
7257        if ("PractitionerRole".equals(codeString))
7258          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PRACTITIONERROLE);
7259        if ("Procedure".equals(codeString))
7260          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCEDURE);
7261        if ("ProcedureRequest".equals(codeString))
7262          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCEDUREREQUEST);
7263        if ("ProcessRequest".equals(codeString))
7264          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCESSREQUEST);
7265        if ("ProcessResponse".equals(codeString))
7266          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROCESSRESPONSE);
7267        if ("Provenance".equals(codeString))
7268          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.PROVENANCE);
7269        if ("Questionnaire".equals(codeString))
7270          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.QUESTIONNAIRE);
7271        if ("QuestionnaireResponse".equals(codeString))
7272          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.QUESTIONNAIRERESPONSE);
7273        if ("ReferralRequest".equals(codeString))
7274          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.REFERRALREQUEST);
7275        if ("RelatedPerson".equals(codeString))
7276          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RELATEDPERSON);
7277        if ("RequestGroup".equals(codeString))
7278          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.REQUESTGROUP);
7279        if ("ResearchStudy".equals(codeString))
7280          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RESEARCHSTUDY);
7281        if ("ResearchSubject".equals(codeString))
7282          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RESEARCHSUBJECT);
7283        if ("Resource".equals(codeString))
7284          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RESOURCE);
7285        if ("RiskAssessment".equals(codeString))
7286          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.RISKASSESSMENT);
7287        if ("Schedule".equals(codeString))
7288          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SCHEDULE);
7289        if ("SearchParameter".equals(codeString))
7290          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SEARCHPARAMETER);
7291        if ("Sequence".equals(codeString))
7292          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SEQUENCE);
7293        if ("ServiceDefinition".equals(codeString))
7294          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SERVICEDEFINITION);
7295        if ("Slot".equals(codeString))
7296          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SLOT);
7297        if ("Specimen".equals(codeString))
7298          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SPECIMEN);
7299        if ("StructureDefinition".equals(codeString))
7300          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.STRUCTUREDEFINITION);
7301        if ("StructureMap".equals(codeString))
7302          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.STRUCTUREMAP);
7303        if ("Subscription".equals(codeString))
7304          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUBSCRIPTION);
7305        if ("Substance".equals(codeString))
7306          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUBSTANCE);
7307        if ("SupplyDelivery".equals(codeString))
7308          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUPPLYDELIVERY);
7309        if ("SupplyRequest".equals(codeString))
7310          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.SUPPLYREQUEST);
7311        if ("Task".equals(codeString))
7312          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TASK);
7313        if ("TestReport".equals(codeString))
7314          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TESTREPORT);
7315        if ("TestScript".equals(codeString))
7316          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.TESTSCRIPT);
7317        if ("ValueSet".equals(codeString))
7318          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.VALUESET);
7319        if ("VisionPrescription".equals(codeString))
7320          return new Enumeration<FHIRDefinedType>(this, FHIRDefinedType.VISIONPRESCRIPTION);
7321        throw new FHIRException("Unknown FHIRDefinedType code '"+codeString+"'");
7322        }
7323    public String toCode(FHIRDefinedType code) {
7324      if (code == FHIRDefinedType.ADDRESS)
7325        return "Address";
7326      if (code == FHIRDefinedType.AGE)
7327        return "Age";
7328      if (code == FHIRDefinedType.ANNOTATION)
7329        return "Annotation";
7330      if (code == FHIRDefinedType.ATTACHMENT)
7331        return "Attachment";
7332      if (code == FHIRDefinedType.BACKBONEELEMENT)
7333        return "BackboneElement";
7334      if (code == FHIRDefinedType.CODEABLECONCEPT)
7335        return "CodeableConcept";
7336      if (code == FHIRDefinedType.CODING)
7337        return "Coding";
7338      if (code == FHIRDefinedType.CONTACTDETAIL)
7339        return "ContactDetail";
7340      if (code == FHIRDefinedType.CONTACTPOINT)
7341        return "ContactPoint";
7342      if (code == FHIRDefinedType.CONTRIBUTOR)
7343        return "Contributor";
7344      if (code == FHIRDefinedType.COUNT)
7345        return "Count";
7346      if (code == FHIRDefinedType.DATAREQUIREMENT)
7347        return "DataRequirement";
7348      if (code == FHIRDefinedType.DISTANCE)
7349        return "Distance";
7350      if (code == FHIRDefinedType.DOSAGE)
7351        return "Dosage";
7352      if (code == FHIRDefinedType.DURATION)
7353        return "Duration";
7354      if (code == FHIRDefinedType.ELEMENT)
7355        return "Element";
7356      if (code == FHIRDefinedType.ELEMENTDEFINITION)
7357        return "ElementDefinition";
7358      if (code == FHIRDefinedType.EXTENSION)
7359        return "Extension";
7360      if (code == FHIRDefinedType.HUMANNAME)
7361        return "HumanName";
7362      if (code == FHIRDefinedType.IDENTIFIER)
7363        return "Identifier";
7364      if (code == FHIRDefinedType.META)
7365        return "Meta";
7366      if (code == FHIRDefinedType.MONEY)
7367        return "Money";
7368      if (code == FHIRDefinedType.NARRATIVE)
7369        return "Narrative";
7370      if (code == FHIRDefinedType.PARAMETERDEFINITION)
7371        return "ParameterDefinition";
7372      if (code == FHIRDefinedType.PERIOD)
7373        return "Period";
7374      if (code == FHIRDefinedType.QUANTITY)
7375        return "Quantity";
7376      if (code == FHIRDefinedType.RANGE)
7377        return "Range";
7378      if (code == FHIRDefinedType.RATIO)
7379        return "Ratio";
7380      if (code == FHIRDefinedType.REFERENCE)
7381        return "Reference";
7382      if (code == FHIRDefinedType.RELATEDARTIFACT)
7383        return "RelatedArtifact";
7384      if (code == FHIRDefinedType.SAMPLEDDATA)
7385        return "SampledData";
7386      if (code == FHIRDefinedType.SIGNATURE)
7387        return "Signature";
7388      if (code == FHIRDefinedType.SIMPLEQUANTITY)
7389        return "SimpleQuantity";
7390      if (code == FHIRDefinedType.TIMING)
7391        return "Timing";
7392      if (code == FHIRDefinedType.TRIGGERDEFINITION)
7393        return "TriggerDefinition";
7394      if (code == FHIRDefinedType.USAGECONTEXT)
7395        return "UsageContext";
7396      if (code == FHIRDefinedType.BASE64BINARY)
7397        return "base64Binary";
7398      if (code == FHIRDefinedType.BOOLEAN)
7399        return "boolean";
7400      if (code == FHIRDefinedType.CODE)
7401        return "code";
7402      if (code == FHIRDefinedType.DATE)
7403        return "date";
7404      if (code == FHIRDefinedType.DATETIME)
7405        return "dateTime";
7406      if (code == FHIRDefinedType.DECIMAL)
7407        return "decimal";
7408      if (code == FHIRDefinedType.ID)
7409        return "id";
7410      if (code == FHIRDefinedType.INSTANT)
7411        return "instant";
7412      if (code == FHIRDefinedType.INTEGER)
7413        return "integer";
7414      if (code == FHIRDefinedType.MARKDOWN)
7415        return "markdown";
7416      if (code == FHIRDefinedType.OID)
7417        return "oid";
7418      if (code == FHIRDefinedType.POSITIVEINT)
7419        return "positiveInt";
7420      if (code == FHIRDefinedType.STRING)
7421        return "string";
7422      if (code == FHIRDefinedType.TIME)
7423        return "time";
7424      if (code == FHIRDefinedType.UNSIGNEDINT)
7425        return "unsignedInt";
7426      if (code == FHIRDefinedType.URI)
7427        return "uri";
7428      if (code == FHIRDefinedType.UUID)
7429        return "uuid";
7430      if (code == FHIRDefinedType.XHTML)
7431        return "xhtml";
7432      if (code == FHIRDefinedType.ACCOUNT)
7433        return "Account";
7434      if (code == FHIRDefinedType.ACTIVITYDEFINITION)
7435        return "ActivityDefinition";
7436      if (code == FHIRDefinedType.ADVERSEEVENT)
7437        return "AdverseEvent";
7438      if (code == FHIRDefinedType.ALLERGYINTOLERANCE)
7439        return "AllergyIntolerance";
7440      if (code == FHIRDefinedType.APPOINTMENT)
7441        return "Appointment";
7442      if (code == FHIRDefinedType.APPOINTMENTRESPONSE)
7443        return "AppointmentResponse";
7444      if (code == FHIRDefinedType.AUDITEVENT)
7445        return "AuditEvent";
7446      if (code == FHIRDefinedType.BASIC)
7447        return "Basic";
7448      if (code == FHIRDefinedType.BINARY)
7449        return "Binary";
7450      if (code == FHIRDefinedType.BODYSITE)
7451        return "BodySite";
7452      if (code == FHIRDefinedType.BUNDLE)
7453        return "Bundle";
7454      if (code == FHIRDefinedType.CAPABILITYSTATEMENT)
7455        return "CapabilityStatement";
7456      if (code == FHIRDefinedType.CAREPLAN)
7457        return "CarePlan";
7458      if (code == FHIRDefinedType.CARETEAM)
7459        return "CareTeam";
7460      if (code == FHIRDefinedType.CHARGEITEM)
7461        return "ChargeItem";
7462      if (code == FHIRDefinedType.CLAIM)
7463        return "Claim";
7464      if (code == FHIRDefinedType.CLAIMRESPONSE)
7465        return "ClaimResponse";
7466      if (code == FHIRDefinedType.CLINICALIMPRESSION)
7467        return "ClinicalImpression";
7468      if (code == FHIRDefinedType.CODESYSTEM)
7469        return "CodeSystem";
7470      if (code == FHIRDefinedType.COMMUNICATION)
7471        return "Communication";
7472      if (code == FHIRDefinedType.COMMUNICATIONREQUEST)
7473        return "CommunicationRequest";
7474      if (code == FHIRDefinedType.COMPARTMENTDEFINITION)
7475        return "CompartmentDefinition";
7476      if (code == FHIRDefinedType.COMPOSITION)
7477        return "Composition";
7478      if (code == FHIRDefinedType.CONCEPTMAP)
7479        return "ConceptMap";
7480      if (code == FHIRDefinedType.CONDITION)
7481        return "Condition";
7482      if (code == FHIRDefinedType.CONSENT)
7483        return "Consent";
7484      if (code == FHIRDefinedType.CONTRACT)
7485        return "Contract";
7486      if (code == FHIRDefinedType.COVERAGE)
7487        return "Coverage";
7488      if (code == FHIRDefinedType.DATAELEMENT)
7489        return "DataElement";
7490      if (code == FHIRDefinedType.DETECTEDISSUE)
7491        return "DetectedIssue";
7492      if (code == FHIRDefinedType.DEVICE)
7493        return "Device";
7494      if (code == FHIRDefinedType.DEVICECOMPONENT)
7495        return "DeviceComponent";
7496      if (code == FHIRDefinedType.DEVICEMETRIC)
7497        return "DeviceMetric";
7498      if (code == FHIRDefinedType.DEVICEREQUEST)
7499        return "DeviceRequest";
7500      if (code == FHIRDefinedType.DEVICEUSESTATEMENT)
7501        return "DeviceUseStatement";
7502      if (code == FHIRDefinedType.DIAGNOSTICREPORT)
7503        return "DiagnosticReport";
7504      if (code == FHIRDefinedType.DOCUMENTMANIFEST)
7505        return "DocumentManifest";
7506      if (code == FHIRDefinedType.DOCUMENTREFERENCE)
7507        return "DocumentReference";
7508      if (code == FHIRDefinedType.DOMAINRESOURCE)
7509        return "DomainResource";
7510      if (code == FHIRDefinedType.ELIGIBILITYREQUEST)
7511        return "EligibilityRequest";
7512      if (code == FHIRDefinedType.ELIGIBILITYRESPONSE)
7513        return "EligibilityResponse";
7514      if (code == FHIRDefinedType.ENCOUNTER)
7515        return "Encounter";
7516      if (code == FHIRDefinedType.ENDPOINT)
7517        return "Endpoint";
7518      if (code == FHIRDefinedType.ENROLLMENTREQUEST)
7519        return "EnrollmentRequest";
7520      if (code == FHIRDefinedType.ENROLLMENTRESPONSE)
7521        return "EnrollmentResponse";
7522      if (code == FHIRDefinedType.EPISODEOFCARE)
7523        return "EpisodeOfCare";
7524      if (code == FHIRDefinedType.EXPANSIONPROFILE)
7525        return "ExpansionProfile";
7526      if (code == FHIRDefinedType.EXPLANATIONOFBENEFIT)
7527        return "ExplanationOfBenefit";
7528      if (code == FHIRDefinedType.FAMILYMEMBERHISTORY)
7529        return "FamilyMemberHistory";
7530      if (code == FHIRDefinedType.FLAG)
7531        return "Flag";
7532      if (code == FHIRDefinedType.GOAL)
7533        return "Goal";
7534      if (code == FHIRDefinedType.GRAPHDEFINITION)
7535        return "GraphDefinition";
7536      if (code == FHIRDefinedType.GROUP)
7537        return "Group";
7538      if (code == FHIRDefinedType.GUIDANCERESPONSE)
7539        return "GuidanceResponse";
7540      if (code == FHIRDefinedType.HEALTHCARESERVICE)
7541        return "HealthcareService";
7542      if (code == FHIRDefinedType.IMAGINGMANIFEST)
7543        return "ImagingManifest";
7544      if (code == FHIRDefinedType.IMAGINGSTUDY)
7545        return "ImagingStudy";
7546      if (code == FHIRDefinedType.IMMUNIZATION)
7547        return "Immunization";
7548      if (code == FHIRDefinedType.IMMUNIZATIONRECOMMENDATION)
7549        return "ImmunizationRecommendation";
7550      if (code == FHIRDefinedType.IMPLEMENTATIONGUIDE)
7551        return "ImplementationGuide";
7552      if (code == FHIRDefinedType.LIBRARY)
7553        return "Library";
7554      if (code == FHIRDefinedType.LINKAGE)
7555        return "Linkage";
7556      if (code == FHIRDefinedType.LIST)
7557        return "List";
7558      if (code == FHIRDefinedType.LOCATION)
7559        return "Location";
7560      if (code == FHIRDefinedType.MEASURE)
7561        return "Measure";
7562      if (code == FHIRDefinedType.MEASUREREPORT)
7563        return "MeasureReport";
7564      if (code == FHIRDefinedType.MEDIA)
7565        return "Media";
7566      if (code == FHIRDefinedType.MEDICATION)
7567        return "Medication";
7568      if (code == FHIRDefinedType.MEDICATIONADMINISTRATION)
7569        return "MedicationAdministration";
7570      if (code == FHIRDefinedType.MEDICATIONDISPENSE)
7571        return "MedicationDispense";
7572      if (code == FHIRDefinedType.MEDICATIONREQUEST)
7573        return "MedicationRequest";
7574      if (code == FHIRDefinedType.MEDICATIONSTATEMENT)
7575        return "MedicationStatement";
7576      if (code == FHIRDefinedType.MESSAGEDEFINITION)
7577        return "MessageDefinition";
7578      if (code == FHIRDefinedType.MESSAGEHEADER)
7579        return "MessageHeader";
7580      if (code == FHIRDefinedType.NAMINGSYSTEM)
7581        return "NamingSystem";
7582      if (code == FHIRDefinedType.NUTRITIONORDER)
7583        return "NutritionOrder";
7584      if (code == FHIRDefinedType.OBSERVATION)
7585        return "Observation";
7586      if (code == FHIRDefinedType.OPERATIONDEFINITION)
7587        return "OperationDefinition";
7588      if (code == FHIRDefinedType.OPERATIONOUTCOME)
7589        return "OperationOutcome";
7590      if (code == FHIRDefinedType.ORGANIZATION)
7591        return "Organization";
7592      if (code == FHIRDefinedType.PARAMETERS)
7593        return "Parameters";
7594      if (code == FHIRDefinedType.PATIENT)
7595        return "Patient";
7596      if (code == FHIRDefinedType.PAYMENTNOTICE)
7597        return "PaymentNotice";
7598      if (code == FHIRDefinedType.PAYMENTRECONCILIATION)
7599        return "PaymentReconciliation";
7600      if (code == FHIRDefinedType.PERSON)
7601        return "Person";
7602      if (code == FHIRDefinedType.PLANDEFINITION)
7603        return "PlanDefinition";
7604      if (code == FHIRDefinedType.PRACTITIONER)
7605        return "Practitioner";
7606      if (code == FHIRDefinedType.PRACTITIONERROLE)
7607        return "PractitionerRole";
7608      if (code == FHIRDefinedType.PROCEDURE)
7609        return "Procedure";
7610      if (code == FHIRDefinedType.PROCEDUREREQUEST)
7611        return "ProcedureRequest";
7612      if (code == FHIRDefinedType.PROCESSREQUEST)
7613        return "ProcessRequest";
7614      if (code == FHIRDefinedType.PROCESSRESPONSE)
7615        return "ProcessResponse";
7616      if (code == FHIRDefinedType.PROVENANCE)
7617        return "Provenance";
7618      if (code == FHIRDefinedType.QUESTIONNAIRE)
7619        return "Questionnaire";
7620      if (code == FHIRDefinedType.QUESTIONNAIRERESPONSE)
7621        return "QuestionnaireResponse";
7622      if (code == FHIRDefinedType.REFERRALREQUEST)
7623        return "ReferralRequest";
7624      if (code == FHIRDefinedType.RELATEDPERSON)
7625        return "RelatedPerson";
7626      if (code == FHIRDefinedType.REQUESTGROUP)
7627        return "RequestGroup";
7628      if (code == FHIRDefinedType.RESEARCHSTUDY)
7629        return "ResearchStudy";
7630      if (code == FHIRDefinedType.RESEARCHSUBJECT)
7631        return "ResearchSubject";
7632      if (code == FHIRDefinedType.RESOURCE)
7633        return "Resource";
7634      if (code == FHIRDefinedType.RISKASSESSMENT)
7635        return "RiskAssessment";
7636      if (code == FHIRDefinedType.SCHEDULE)
7637        return "Schedule";
7638      if (code == FHIRDefinedType.SEARCHPARAMETER)
7639        return "SearchParameter";
7640      if (code == FHIRDefinedType.SEQUENCE)
7641        return "Sequence";
7642      if (code == FHIRDefinedType.SERVICEDEFINITION)
7643        return "ServiceDefinition";
7644      if (code == FHIRDefinedType.SLOT)
7645        return "Slot";
7646      if (code == FHIRDefinedType.SPECIMEN)
7647        return "Specimen";
7648      if (code == FHIRDefinedType.STRUCTUREDEFINITION)
7649        return "StructureDefinition";
7650      if (code == FHIRDefinedType.STRUCTUREMAP)
7651        return "StructureMap";
7652      if (code == FHIRDefinedType.SUBSCRIPTION)
7653        return "Subscription";
7654      if (code == FHIRDefinedType.SUBSTANCE)
7655        return "Substance";
7656      if (code == FHIRDefinedType.SUPPLYDELIVERY)
7657        return "SupplyDelivery";
7658      if (code == FHIRDefinedType.SUPPLYREQUEST)
7659        return "SupplyRequest";
7660      if (code == FHIRDefinedType.TASK)
7661        return "Task";
7662      if (code == FHIRDefinedType.TESTREPORT)
7663        return "TestReport";
7664      if (code == FHIRDefinedType.TESTSCRIPT)
7665        return "TestScript";
7666      if (code == FHIRDefinedType.VALUESET)
7667        return "ValueSet";
7668      if (code == FHIRDefinedType.VISIONPRESCRIPTION)
7669        return "VisionPrescription";
7670      return "?";
7671      }
7672    public String toSystem(FHIRDefinedType code) {
7673      return code.getSystem();
7674      }
7675    }
7676
7677    public enum MessageEvent {
7678        /**
7679         * The definition of a code system is used to create a simple collection of codes suitable for use for data entry or validation. An expanded code system will be returned, or an error message.
7680         */
7681        CODESYSTEMEXPAND, 
7682        /**
7683         * Change the status of a Medication Administration to show that it is complete.
7684         */
7685        MEDICATIONADMINISTRATIONCOMPLETE, 
7686        /**
7687         * Someone wishes to record that the record of administration of a medication is in error and should be ignored.
7688         */
7689        MEDICATIONADMINISTRATIONNULLIFICATION, 
7690        /**
7691         * Indicates that a medication has been recorded against the patient's record.
7692         */
7693        MEDICATIONADMINISTRATIONRECORDING, 
7694        /**
7695         * Update a Medication Administration record.
7696         */
7697        MEDICATIONADMINISTRATIONUPDATE, 
7698        /**
7699         * Notification of a change to an administrative resource (either create or update). Note that there is no delete, though some administrative resources have status or period elements for this use.
7700         */
7701        ADMINNOTIFY, 
7702        /**
7703         * Notification to convey information.
7704         */
7705        COMMUNICATIONREQUEST, 
7706        /**
7707         * Provide a diagnostic report, or update a previously provided diagnostic report.
7708         */
7709        DIAGNOSTICREPORTPROVIDE, 
7710        /**
7711         * Provide a simple observation or update a previously provided simple observation.
7712         */
7713        OBSERVATIONPROVIDE, 
7714        /**
7715         * Notification that two patient records actually identify the same patient.
7716         */
7717        PATIENTLINK, 
7718        /**
7719         * Notification that previous advice that two patient records concern the same patient is now considered incorrect.
7720         */
7721        PATIENTUNLINK, 
7722        /**
7723         * The definition of a value set is used to create a simple collection of codes suitable for use for data entry or validation. An expanded value set will be returned, or an error message.
7724         */
7725        VALUESETEXPAND, 
7726        /**
7727         * added to help the parsers
7728         */
7729        NULL;
7730        public static MessageEvent fromCode(String codeString) throws FHIRException {
7731            if (codeString == null || "".equals(codeString))
7732                return null;
7733        if ("CodeSystem-expand".equals(codeString))
7734          return CODESYSTEMEXPAND;
7735        if ("MedicationAdministration-Complete".equals(codeString))
7736          return MEDICATIONADMINISTRATIONCOMPLETE;
7737        if ("MedicationAdministration-Nullification".equals(codeString))
7738          return MEDICATIONADMINISTRATIONNULLIFICATION;
7739        if ("MedicationAdministration-Recording".equals(codeString))
7740          return MEDICATIONADMINISTRATIONRECORDING;
7741        if ("MedicationAdministration-Update".equals(codeString))
7742          return MEDICATIONADMINISTRATIONUPDATE;
7743        if ("admin-notify".equals(codeString))
7744          return ADMINNOTIFY;
7745        if ("communication-request".equals(codeString))
7746          return COMMUNICATIONREQUEST;
7747        if ("diagnosticreport-provide".equals(codeString))
7748          return DIAGNOSTICREPORTPROVIDE;
7749        if ("observation-provide".equals(codeString))
7750          return OBSERVATIONPROVIDE;
7751        if ("patient-link".equals(codeString))
7752          return PATIENTLINK;
7753        if ("patient-unlink".equals(codeString))
7754          return PATIENTUNLINK;
7755        if ("valueset-expand".equals(codeString))
7756          return VALUESETEXPAND;
7757        throw new FHIRException("Unknown MessageEvent code '"+codeString+"'");
7758        }
7759        public String toCode() {
7760          switch (this) {
7761            case CODESYSTEMEXPAND: return "CodeSystem-expand";
7762            case MEDICATIONADMINISTRATIONCOMPLETE: return "MedicationAdministration-Complete";
7763            case MEDICATIONADMINISTRATIONNULLIFICATION: return "MedicationAdministration-Nullification";
7764            case MEDICATIONADMINISTRATIONRECORDING: return "MedicationAdministration-Recording";
7765            case MEDICATIONADMINISTRATIONUPDATE: return "MedicationAdministration-Update";
7766            case ADMINNOTIFY: return "admin-notify";
7767            case COMMUNICATIONREQUEST: return "communication-request";
7768            case DIAGNOSTICREPORTPROVIDE: return "diagnosticreport-provide";
7769            case OBSERVATIONPROVIDE: return "observation-provide";
7770            case PATIENTLINK: return "patient-link";
7771            case PATIENTUNLINK: return "patient-unlink";
7772            case VALUESETEXPAND: return "valueset-expand";
7773            default: return "?";
7774          }
7775        }
7776        public String getSystem() {
7777          switch (this) {
7778            case CODESYSTEMEXPAND: return "http://hl7.org/fhir/message-events";
7779            case MEDICATIONADMINISTRATIONCOMPLETE: return "http://hl7.org/fhir/message-events";
7780            case MEDICATIONADMINISTRATIONNULLIFICATION: return "http://hl7.org/fhir/message-events";
7781            case MEDICATIONADMINISTRATIONRECORDING: return "http://hl7.org/fhir/message-events";
7782            case MEDICATIONADMINISTRATIONUPDATE: return "http://hl7.org/fhir/message-events";
7783            case ADMINNOTIFY: return "http://hl7.org/fhir/message-events";
7784            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/message-events";
7785            case DIAGNOSTICREPORTPROVIDE: return "http://hl7.org/fhir/message-events";
7786            case OBSERVATIONPROVIDE: return "http://hl7.org/fhir/message-events";
7787            case PATIENTLINK: return "http://hl7.org/fhir/message-events";
7788            case PATIENTUNLINK: return "http://hl7.org/fhir/message-events";
7789            case VALUESETEXPAND: return "http://hl7.org/fhir/message-events";
7790            default: return "?";
7791          }
7792        }
7793        public String getDefinition() {
7794          switch (this) {
7795            case CODESYSTEMEXPAND: return "The definition of a code system is used to create a simple collection of codes suitable for use for data entry or validation. An expanded code system will be returned, or an error message.";
7796            case MEDICATIONADMINISTRATIONCOMPLETE: return "Change the status of a Medication Administration to show that it is complete.";
7797            case MEDICATIONADMINISTRATIONNULLIFICATION: return "Someone wishes to record that the record of administration of a medication is in error and should be ignored.";
7798            case MEDICATIONADMINISTRATIONRECORDING: return "Indicates that a medication has been recorded against the patient's record.";
7799            case MEDICATIONADMINISTRATIONUPDATE: return "Update a Medication Administration record.";
7800            case ADMINNOTIFY: return "Notification of a change to an administrative resource (either create or update). Note that there is no delete, though some administrative resources have status or period elements for this use.";
7801            case COMMUNICATIONREQUEST: return "Notification to convey information.";
7802            case DIAGNOSTICREPORTPROVIDE: return "Provide a diagnostic report, or update a previously provided diagnostic report.";
7803            case OBSERVATIONPROVIDE: return "Provide a simple observation or update a previously provided simple observation.";
7804            case PATIENTLINK: return "Notification that two patient records actually identify the same patient.";
7805            case PATIENTUNLINK: return "Notification that previous advice that two patient records concern the same patient is now considered incorrect.";
7806            case VALUESETEXPAND: return "The definition of a value set is used to create a simple collection of codes suitable for use for data entry or validation. An expanded value set will be returned, or an error message.";
7807            default: return "?";
7808          }
7809        }
7810        public String getDisplay() {
7811          switch (this) {
7812            case CODESYSTEMEXPAND: return "CodeSystem-expand";
7813            case MEDICATIONADMINISTRATIONCOMPLETE: return "MedicationAdministration-Complete";
7814            case MEDICATIONADMINISTRATIONNULLIFICATION: return "MedicationAdministration-Nullification";
7815            case MEDICATIONADMINISTRATIONRECORDING: return "MedicationAdministration-Recording";
7816            case MEDICATIONADMINISTRATIONUPDATE: return "MedicationAdministration-Update";
7817            case ADMINNOTIFY: return "admin-notify";
7818            case COMMUNICATIONREQUEST: return "communication-request";
7819            case DIAGNOSTICREPORTPROVIDE: return "diagnosticreport-provide";
7820            case OBSERVATIONPROVIDE: return "observation-provide";
7821            case PATIENTLINK: return "patient-link";
7822            case PATIENTUNLINK: return "patient-unlink";
7823            case VALUESETEXPAND: return "valueset-expand";
7824            default: return "?";
7825          }
7826        }
7827    }
7828
7829  public static class MessageEventEnumFactory implements EnumFactory<MessageEvent> {
7830    public MessageEvent fromCode(String codeString) throws IllegalArgumentException {
7831      if (codeString == null || "".equals(codeString))
7832            if (codeString == null || "".equals(codeString))
7833                return null;
7834        if ("CodeSystem-expand".equals(codeString))
7835          return MessageEvent.CODESYSTEMEXPAND;
7836        if ("MedicationAdministration-Complete".equals(codeString))
7837          return MessageEvent.MEDICATIONADMINISTRATIONCOMPLETE;
7838        if ("MedicationAdministration-Nullification".equals(codeString))
7839          return MessageEvent.MEDICATIONADMINISTRATIONNULLIFICATION;
7840        if ("MedicationAdministration-Recording".equals(codeString))
7841          return MessageEvent.MEDICATIONADMINISTRATIONRECORDING;
7842        if ("MedicationAdministration-Update".equals(codeString))
7843          return MessageEvent.MEDICATIONADMINISTRATIONUPDATE;
7844        if ("admin-notify".equals(codeString))
7845          return MessageEvent.ADMINNOTIFY;
7846        if ("communication-request".equals(codeString))
7847          return MessageEvent.COMMUNICATIONREQUEST;
7848        if ("diagnosticreport-provide".equals(codeString))
7849          return MessageEvent.DIAGNOSTICREPORTPROVIDE;
7850        if ("observation-provide".equals(codeString))
7851          return MessageEvent.OBSERVATIONPROVIDE;
7852        if ("patient-link".equals(codeString))
7853          return MessageEvent.PATIENTLINK;
7854        if ("patient-unlink".equals(codeString))
7855          return MessageEvent.PATIENTUNLINK;
7856        if ("valueset-expand".equals(codeString))
7857          return MessageEvent.VALUESETEXPAND;
7858        throw new IllegalArgumentException("Unknown MessageEvent code '"+codeString+"'");
7859        }
7860        public Enumeration<MessageEvent> fromType(Base code) throws FHIRException {
7861          if (code == null)
7862            return null;
7863          if (code.isEmpty())
7864            return new Enumeration<MessageEvent>(this);
7865          String codeString = ((PrimitiveType) code).asStringValue();
7866          if (codeString == null || "".equals(codeString))
7867            return null;
7868        if ("CodeSystem-expand".equals(codeString))
7869          return new Enumeration<MessageEvent>(this, MessageEvent.CODESYSTEMEXPAND);
7870        if ("MedicationAdministration-Complete".equals(codeString))
7871          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONCOMPLETE);
7872        if ("MedicationAdministration-Nullification".equals(codeString))
7873          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONNULLIFICATION);
7874        if ("MedicationAdministration-Recording".equals(codeString))
7875          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONRECORDING);
7876        if ("MedicationAdministration-Update".equals(codeString))
7877          return new Enumeration<MessageEvent>(this, MessageEvent.MEDICATIONADMINISTRATIONUPDATE);
7878        if ("admin-notify".equals(codeString))
7879          return new Enumeration<MessageEvent>(this, MessageEvent.ADMINNOTIFY);
7880        if ("communication-request".equals(codeString))
7881          return new Enumeration<MessageEvent>(this, MessageEvent.COMMUNICATIONREQUEST);
7882        if ("diagnosticreport-provide".equals(codeString))
7883          return new Enumeration<MessageEvent>(this, MessageEvent.DIAGNOSTICREPORTPROVIDE);
7884        if ("observation-provide".equals(codeString))
7885          return new Enumeration<MessageEvent>(this, MessageEvent.OBSERVATIONPROVIDE);
7886        if ("patient-link".equals(codeString))
7887          return new Enumeration<MessageEvent>(this, MessageEvent.PATIENTLINK);
7888        if ("patient-unlink".equals(codeString))
7889          return new Enumeration<MessageEvent>(this, MessageEvent.PATIENTUNLINK);
7890        if ("valueset-expand".equals(codeString))
7891          return new Enumeration<MessageEvent>(this, MessageEvent.VALUESETEXPAND);
7892        throw new FHIRException("Unknown MessageEvent code '"+codeString+"'");
7893        }
7894    public String toCode(MessageEvent code) {
7895      if (code == MessageEvent.CODESYSTEMEXPAND)
7896        return "CodeSystem-expand";
7897      if (code == MessageEvent.MEDICATIONADMINISTRATIONCOMPLETE)
7898        return "MedicationAdministration-Complete";
7899      if (code == MessageEvent.MEDICATIONADMINISTRATIONNULLIFICATION)
7900        return "MedicationAdministration-Nullification";
7901      if (code == MessageEvent.MEDICATIONADMINISTRATIONRECORDING)
7902        return "MedicationAdministration-Recording";
7903      if (code == MessageEvent.MEDICATIONADMINISTRATIONUPDATE)
7904        return "MedicationAdministration-Update";
7905      if (code == MessageEvent.ADMINNOTIFY)
7906        return "admin-notify";
7907      if (code == MessageEvent.COMMUNICATIONREQUEST)
7908        return "communication-request";
7909      if (code == MessageEvent.DIAGNOSTICREPORTPROVIDE)
7910        return "diagnosticreport-provide";
7911      if (code == MessageEvent.OBSERVATIONPROVIDE)
7912        return "observation-provide";
7913      if (code == MessageEvent.PATIENTLINK)
7914        return "patient-link";
7915      if (code == MessageEvent.PATIENTUNLINK)
7916        return "patient-unlink";
7917      if (code == MessageEvent.VALUESETEXPAND)
7918        return "valueset-expand";
7919      return "?";
7920      }
7921    public String toSystem(MessageEvent code) {
7922      return code.getSystem();
7923      }
7924    }
7925
7926    public enum NoteType {
7927        /**
7928         * Display the note.
7929         */
7930        DISPLAY, 
7931        /**
7932         * Print the note on the form.
7933         */
7934        PRINT, 
7935        /**
7936         * Print the note for the operator.
7937         */
7938        PRINTOPER, 
7939        /**
7940         * added to help the parsers
7941         */
7942        NULL;
7943        public static NoteType fromCode(String codeString) throws FHIRException {
7944            if (codeString == null || "".equals(codeString))
7945                return null;
7946        if ("display".equals(codeString))
7947          return DISPLAY;
7948        if ("print".equals(codeString))
7949          return PRINT;
7950        if ("printoper".equals(codeString))
7951          return PRINTOPER;
7952        throw new FHIRException("Unknown NoteType code '"+codeString+"'");
7953        }
7954        public String toCode() {
7955          switch (this) {
7956            case DISPLAY: return "display";
7957            case PRINT: return "print";
7958            case PRINTOPER: return "printoper";
7959            default: return "?";
7960          }
7961        }
7962        public String getSystem() {
7963          switch (this) {
7964            case DISPLAY: return "http://hl7.org/fhir/note-type";
7965            case PRINT: return "http://hl7.org/fhir/note-type";
7966            case PRINTOPER: return "http://hl7.org/fhir/note-type";
7967            default: return "?";
7968          }
7969        }
7970        public String getDefinition() {
7971          switch (this) {
7972            case DISPLAY: return "Display the note.";
7973            case PRINT: return "Print the note on the form.";
7974            case PRINTOPER: return "Print the note for the operator.";
7975            default: return "?";
7976          }
7977        }
7978        public String getDisplay() {
7979          switch (this) {
7980            case DISPLAY: return "Display";
7981            case PRINT: return "Print (Form)";
7982            case PRINTOPER: return "Print (Operator)";
7983            default: return "?";
7984          }
7985        }
7986    }
7987
7988  public static class NoteTypeEnumFactory implements EnumFactory<NoteType> {
7989    public NoteType fromCode(String codeString) throws IllegalArgumentException {
7990      if (codeString == null || "".equals(codeString))
7991            if (codeString == null || "".equals(codeString))
7992                return null;
7993        if ("display".equals(codeString))
7994          return NoteType.DISPLAY;
7995        if ("print".equals(codeString))
7996          return NoteType.PRINT;
7997        if ("printoper".equals(codeString))
7998          return NoteType.PRINTOPER;
7999        throw new IllegalArgumentException("Unknown NoteType code '"+codeString+"'");
8000        }
8001        public Enumeration<NoteType> fromType(Base code) throws FHIRException {
8002          if (code == null)
8003            return null;
8004          if (code.isEmpty())
8005            return new Enumeration<NoteType>(this);
8006          String codeString = ((PrimitiveType) code).asStringValue();
8007          if (codeString == null || "".equals(codeString))
8008            return null;
8009        if ("display".equals(codeString))
8010          return new Enumeration<NoteType>(this, NoteType.DISPLAY);
8011        if ("print".equals(codeString))
8012          return new Enumeration<NoteType>(this, NoteType.PRINT);
8013        if ("printoper".equals(codeString))
8014          return new Enumeration<NoteType>(this, NoteType.PRINTOPER);
8015        throw new FHIRException("Unknown NoteType code '"+codeString+"'");
8016        }
8017    public String toCode(NoteType code) {
8018      if (code == NoteType.DISPLAY)
8019        return "display";
8020      if (code == NoteType.PRINT)
8021        return "print";
8022      if (code == NoteType.PRINTOPER)
8023        return "printoper";
8024      return "?";
8025      }
8026    public String toSystem(NoteType code) {
8027      return code.getSystem();
8028      }
8029    }
8030
8031    public enum PublicationStatus {
8032        /**
8033         * This resource is still under development and is not yet considered to be ready for normal use.
8034         */
8035        DRAFT, 
8036        /**
8037         * This resource is ready for normal use.
8038         */
8039        ACTIVE, 
8040        /**
8041         * This resource has been withdrawn or superseded and should no longer be used.
8042         */
8043        RETIRED, 
8044        /**
8045         * The authoring system does not know which of the status values currently applies for this resource.  Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply, it's just not known which one.
8046         */
8047        UNKNOWN, 
8048        /**
8049         * added to help the parsers
8050         */
8051        NULL;
8052        public static PublicationStatus fromCode(String codeString) throws FHIRException {
8053            if (codeString == null || "".equals(codeString))
8054                return null;
8055        if ("draft".equals(codeString))
8056          return DRAFT;
8057        if ("active".equals(codeString))
8058          return ACTIVE;
8059        if ("retired".equals(codeString))
8060          return RETIRED;
8061        if ("unknown".equals(codeString))
8062          return UNKNOWN;
8063        throw new FHIRException("Unknown PublicationStatus code '"+codeString+"'");
8064        }
8065        public String toCode() {
8066          switch (this) {
8067            case DRAFT: return "draft";
8068            case ACTIVE: return "active";
8069            case RETIRED: return "retired";
8070            case UNKNOWN: return "unknown";
8071            default: return "?";
8072          }
8073        }
8074        public String getSystem() {
8075          switch (this) {
8076            case DRAFT: return "http://hl7.org/fhir/publication-status";
8077            case ACTIVE: return "http://hl7.org/fhir/publication-status";
8078            case RETIRED: return "http://hl7.org/fhir/publication-status";
8079            case UNKNOWN: return "http://hl7.org/fhir/publication-status";
8080            default: return "?";
8081          }
8082        }
8083        public String getDefinition() {
8084          switch (this) {
8085            case DRAFT: return "This resource is still under development and is not yet considered to be ready for normal use.";
8086            case ACTIVE: return "This resource is ready for normal use.";
8087            case RETIRED: return "This resource has been withdrawn or superseded and should no longer be used.";
8088            case UNKNOWN: return "The authoring system does not know which of the status values currently applies for this resource.  Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, it's just not known which one.";
8089            default: return "?";
8090          }
8091        }
8092        public String getDisplay() {
8093          switch (this) {
8094            case DRAFT: return "Draft";
8095            case ACTIVE: return "Active";
8096            case RETIRED: return "Retired";
8097            case UNKNOWN: return "Unknown";
8098            default: return "?";
8099          }
8100        }
8101    }
8102
8103  public static class PublicationStatusEnumFactory implements EnumFactory<PublicationStatus> {
8104    public PublicationStatus fromCode(String codeString) throws IllegalArgumentException {
8105      if (codeString == null || "".equals(codeString))
8106            if (codeString == null || "".equals(codeString))
8107                return null;
8108        if ("draft".equals(codeString))
8109          return PublicationStatus.DRAFT;
8110        if ("active".equals(codeString))
8111          return PublicationStatus.ACTIVE;
8112        if ("retired".equals(codeString))
8113          return PublicationStatus.RETIRED;
8114        if ("unknown".equals(codeString))
8115          return PublicationStatus.UNKNOWN;
8116        throw new IllegalArgumentException("Unknown PublicationStatus code '"+codeString+"'");
8117        }
8118        public Enumeration<PublicationStatus> fromType(Base code) throws FHIRException {
8119          if (code == null)
8120            return null;
8121          if (code.isEmpty())
8122            return new Enumeration<PublicationStatus>(this);
8123          String codeString = ((PrimitiveType) code).asStringValue();
8124          if (codeString == null || "".equals(codeString))
8125            return null;
8126        if ("draft".equals(codeString))
8127          return new Enumeration<PublicationStatus>(this, PublicationStatus.DRAFT);
8128        if ("active".equals(codeString))
8129          return new Enumeration<PublicationStatus>(this, PublicationStatus.ACTIVE);
8130        if ("retired".equals(codeString))
8131          return new Enumeration<PublicationStatus>(this, PublicationStatus.RETIRED);
8132        if ("unknown".equals(codeString))
8133          return new Enumeration<PublicationStatus>(this, PublicationStatus.UNKNOWN);
8134        throw new FHIRException("Unknown PublicationStatus code '"+codeString+"'");
8135        }
8136    public String toCode(PublicationStatus code) {
8137      if (code == PublicationStatus.DRAFT)
8138        return "draft";
8139      if (code == PublicationStatus.ACTIVE)
8140        return "active";
8141      if (code == PublicationStatus.RETIRED)
8142        return "retired";
8143      if (code == PublicationStatus.UNKNOWN)
8144        return "unknown";
8145      return "?";
8146      }
8147    public String toSystem(PublicationStatus code) {
8148      return code.getSystem();
8149      }
8150    }
8151
8152    public enum RemittanceOutcome {
8153        /**
8154         * The processing has completed without errors
8155         */
8156        COMPLETE, 
8157        /**
8158         * One or more errors have been detected in the Claim
8159         */
8160        ERROR, 
8161        /**
8162         * No errors have been detected in the Claim and some of the adjudication has been performed.
8163         */
8164        PARTIAL, 
8165        /**
8166         * added to help the parsers
8167         */
8168        NULL;
8169        public static RemittanceOutcome fromCode(String codeString) throws FHIRException {
8170            if (codeString == null || "".equals(codeString))
8171                return null;
8172        if ("complete".equals(codeString))
8173          return COMPLETE;
8174        if ("error".equals(codeString))
8175          return ERROR;
8176        if ("partial".equals(codeString))
8177          return PARTIAL;
8178        throw new FHIRException("Unknown RemittanceOutcome code '"+codeString+"'");
8179        }
8180        public String toCode() {
8181          switch (this) {
8182            case COMPLETE: return "complete";
8183            case ERROR: return "error";
8184            case PARTIAL: return "partial";
8185            default: return "?";
8186          }
8187        }
8188        public String getSystem() {
8189          switch (this) {
8190            case COMPLETE: return "http://hl7.org/fhir/remittance-outcome";
8191            case ERROR: return "http://hl7.org/fhir/remittance-outcome";
8192            case PARTIAL: return "http://hl7.org/fhir/remittance-outcome";
8193            default: return "?";
8194          }
8195        }
8196        public String getDefinition() {
8197          switch (this) {
8198            case COMPLETE: return "The processing has completed without errors";
8199            case ERROR: return "One or more errors have been detected in the Claim";
8200            case PARTIAL: return "No errors have been detected in the Claim and some of the adjudication has been performed.";
8201            default: return "?";
8202          }
8203        }
8204        public String getDisplay() {
8205          switch (this) {
8206            case COMPLETE: return "Processing Complete";
8207            case ERROR: return "Error";
8208            case PARTIAL: return "Partial Processing";
8209            default: return "?";
8210          }
8211        }
8212    }
8213
8214  public static class RemittanceOutcomeEnumFactory implements EnumFactory<RemittanceOutcome> {
8215    public RemittanceOutcome fromCode(String codeString) throws IllegalArgumentException {
8216      if (codeString == null || "".equals(codeString))
8217            if (codeString == null || "".equals(codeString))
8218                return null;
8219        if ("complete".equals(codeString))
8220          return RemittanceOutcome.COMPLETE;
8221        if ("error".equals(codeString))
8222          return RemittanceOutcome.ERROR;
8223        if ("partial".equals(codeString))
8224          return RemittanceOutcome.PARTIAL;
8225        throw new IllegalArgumentException("Unknown RemittanceOutcome code '"+codeString+"'");
8226        }
8227        public Enumeration<RemittanceOutcome> fromType(Base code) throws FHIRException {
8228          if (code == null)
8229            return null;
8230          if (code.isEmpty())
8231            return new Enumeration<RemittanceOutcome>(this);
8232          String codeString = ((PrimitiveType) code).asStringValue();
8233          if (codeString == null || "".equals(codeString))
8234            return null;
8235        if ("complete".equals(codeString))
8236          return new Enumeration<RemittanceOutcome>(this, RemittanceOutcome.COMPLETE);
8237        if ("error".equals(codeString))
8238          return new Enumeration<RemittanceOutcome>(this, RemittanceOutcome.ERROR);
8239        if ("partial".equals(codeString))
8240          return new Enumeration<RemittanceOutcome>(this, RemittanceOutcome.PARTIAL);
8241        throw new FHIRException("Unknown RemittanceOutcome code '"+codeString+"'");
8242        }
8243    public String toCode(RemittanceOutcome code) {
8244      if (code == RemittanceOutcome.COMPLETE)
8245        return "complete";
8246      if (code == RemittanceOutcome.ERROR)
8247        return "error";
8248      if (code == RemittanceOutcome.PARTIAL)
8249        return "partial";
8250      return "?";
8251      }
8252    public String toSystem(RemittanceOutcome code) {
8253      return code.getSystem();
8254      }
8255    }
8256
8257    public enum ResourceType {
8258        /**
8259         * 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.
8260         */
8261        ACCOUNT, 
8262        /**
8263         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
8264         */
8265        ACTIVITYDEFINITION, 
8266        /**
8267         * 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.
8268         */
8269        ADVERSEEVENT, 
8270        /**
8271         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
8272         */
8273        ALLERGYINTOLERANCE, 
8274        /**
8275         * 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).
8276         */
8277        APPOINTMENT, 
8278        /**
8279         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
8280         */
8281        APPOINTMENTRESPONSE, 
8282        /**
8283         * 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.
8284         */
8285        AUDITEVENT, 
8286        /**
8287         * 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.
8288         */
8289        BASIC, 
8290        /**
8291         * A binary resource can contain any content, whether text, image, pdf, zip archive, etc.
8292         */
8293        BINARY, 
8294        /**
8295         * Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
8296         */
8297        BODYSITE, 
8298        /**
8299         * A container for a collection of resources.
8300         */
8301        BUNDLE, 
8302        /**
8303         * A Capability Statement 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.
8304         */
8305        CAPABILITYSTATEMENT, 
8306        /**
8307         * 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.
8308         */
8309        CAREPLAN, 
8310        /**
8311         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
8312         */
8313        CARETEAM, 
8314        /**
8315         * 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.
8316         */
8317        CHARGEITEM, 
8318        /**
8319         * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
8320         */
8321        CLAIM, 
8322        /**
8323         * This resource provides the adjudication details from the processing of a Claim resource.
8324         */
8325        CLAIMRESPONSE, 
8326        /**
8327         * 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.
8328         */
8329        CLINICALIMPRESSION, 
8330        /**
8331         * A code system resource specifies a set of codes drawn from one or more code systems.
8332         */
8333        CODESYSTEM, 
8334        /**
8335         * An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.
8336         */
8337        COMMUNICATION, 
8338        /**
8339         * 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.
8340         */
8341        COMMUNICATIONREQUEST, 
8342        /**
8343         * A compartment definition that defines how resources are accessed on a server.
8344         */
8345        COMPARTMENTDEFINITION, 
8346        /**
8347         * A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.
8348         */
8349        COMPOSITION, 
8350        /**
8351         * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.
8352         */
8353        CONCEPTMAP, 
8354        /**
8355         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
8356         */
8357        CONDITION, 
8358        /**
8359         * A record of a healthcare consumer’s policy 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.
8360         */
8361        CONSENT, 
8362        /**
8363         * A formal agreement between parties regarding the conduct of business, exchange of information or other matters.
8364         */
8365        CONTRACT, 
8366        /**
8367         * Financial instrument which may be used to reimburse or pay for health care products and services.
8368         */
8369        COVERAGE, 
8370        /**
8371         * The formal description of a single piece of information that can be gathered and reported.
8372         */
8373        DATAELEMENT, 
8374        /**
8375         * 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.
8376         */
8377        DETECTEDISSUE, 
8378        /**
8379         * This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices include durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.
8380         */
8381        DEVICE, 
8382        /**
8383         * The characteristics, operational status and capabilities of a medical-related component of a medical device.
8384         */
8385        DEVICECOMPONENT, 
8386        /**
8387         * Describes a measurement, calculation or setting capability of a medical device.
8388         */
8389        DEVICEMETRIC, 
8390        /**
8391         * 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.
8392         */
8393        DEVICEREQUEST, 
8394        /**
8395         * 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.
8396         */
8397        DEVICEUSESTATEMENT, 
8398        /**
8399         * 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.
8400         */
8401        DIAGNOSTICREPORT, 
8402        /**
8403         * A collection of documents compiled for a purpose together with metadata that applies to the collection.
8404         */
8405        DOCUMENTMANIFEST, 
8406        /**
8407         * A reference to a document.
8408         */
8409        DOCUMENTREFERENCE, 
8410        /**
8411         * A resource that includes narrative, extensions, and contained resources.
8412         */
8413        DOMAINRESOURCE, 
8414        /**
8415         * The EligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an EligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.
8416         */
8417        ELIGIBILITYREQUEST, 
8418        /**
8419         * This resource provides eligibility and plan details from the processing of an Eligibility resource.
8420         */
8421        ELIGIBILITYRESPONSE, 
8422        /**
8423         * 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.
8424         */
8425        ENCOUNTER, 
8426        /**
8427         * 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.
8428         */
8429        ENDPOINT, 
8430        /**
8431         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
8432         */
8433        ENROLLMENTREQUEST, 
8434        /**
8435         * This resource provides enrollment and plan details from the processing of an Enrollment resource.
8436         */
8437        ENROLLMENTRESPONSE, 
8438        /**
8439         * 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.
8440         */
8441        EPISODEOFCARE, 
8442        /**
8443         * Resource to define constraints on the Expansion of a FHIR ValueSet.
8444         */
8445        EXPANSIONPROFILE, 
8446        /**
8447         * 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.
8448         */
8449        EXPLANATIONOFBENEFIT, 
8450        /**
8451         * Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.
8452         */
8453        FAMILYMEMBERHISTORY, 
8454        /**
8455         * Prospective warnings of potential issues when providing care to the patient.
8456         */
8457        FLAG, 
8458        /**
8459         * 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.
8460         */
8461        GOAL, 
8462        /**
8463         * 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.
8464         */
8465        GRAPHDEFINITION, 
8466        /**
8467         * 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.
8468         */
8469        GROUP, 
8470        /**
8471         * 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.
8472         */
8473        GUIDANCERESPONSE, 
8474        /**
8475         * The details of a healthcare service available at a location.
8476         */
8477        HEALTHCARESERVICE, 
8478        /**
8479         * A text description of the DICOM SOP instances selected in the ImagingManifest; or the reason for, or significance of, the selection.
8480         */
8481        IMAGINGMANIFEST, 
8482        /**
8483         * 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.
8484         */
8485        IMAGINGSTUDY, 
8486        /**
8487         * Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
8488         */
8489        IMMUNIZATION, 
8490        /**
8491         * A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.
8492         */
8493        IMMUNIZATIONRECOMMENDATION, 
8494        /**
8495         * A set of rules of how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
8496         */
8497        IMPLEMENTATIONGUIDE, 
8498        /**
8499         * 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.
8500         */
8501        LIBRARY, 
8502        /**
8503         * Identifies two or more records (resource instances) that are referring to the same real-world "occurrence".
8504         */
8505        LINKAGE, 
8506        /**
8507         * A set of information summarized from a list of other resources.
8508         */
8509        LIST, 
8510        /**
8511         * Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.
8512         */
8513        LOCATION, 
8514        /**
8515         * The Measure resource provides the definition of a quality measure.
8516         */
8517        MEASURE, 
8518        /**
8519         * The MeasureReport resource contains the results of evaluating a measure.
8520         */
8521        MEASUREREPORT, 
8522        /**
8523         * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
8524         */
8525        MEDIA, 
8526        /**
8527         * This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.
8528         */
8529        MEDICATION, 
8530        /**
8531         * 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.
8532         */
8533        MEDICATIONADMINISTRATION, 
8534        /**
8535         * 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.
8536         */
8537        MEDICATIONDISPENSE, 
8538        /**
8539         * 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.
8540         */
8541        MEDICATIONREQUEST, 
8542        /**
8543         * 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 
8544
8545The 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.
8546         */
8547        MEDICATIONSTATEMENT, 
8548        /**
8549         * 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.
8550         */
8551        MESSAGEDEFINITION, 
8552        /**
8553         * 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.
8554         */
8555        MESSAGEHEADER, 
8556        /**
8557         * 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.
8558         */
8559        NAMINGSYSTEM, 
8560        /**
8561         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
8562         */
8563        NUTRITIONORDER, 
8564        /**
8565         * Measurements and simple assertions made about a patient, device or other subject.
8566         */
8567        OBSERVATION, 
8568        /**
8569         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
8570         */
8571        OPERATIONDEFINITION, 
8572        /**
8573         * A collection of error, warning or information messages that result from a system action.
8574         */
8575        OPERATIONOUTCOME, 
8576        /**
8577         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.
8578         */
8579        ORGANIZATION, 
8580        /**
8581         * This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.
8582         */
8583        PARAMETERS, 
8584        /**
8585         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
8586         */
8587        PATIENT, 
8588        /**
8589         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
8590         */
8591        PAYMENTNOTICE, 
8592        /**
8593         * This resource provides payment details and claim references supporting a bulk payment.
8594         */
8595        PAYMENTRECONCILIATION, 
8596        /**
8597         * Demographics and administrative information about a person independent of a specific health-related context.
8598         */
8599        PERSON, 
8600        /**
8601         * 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.
8602         */
8603        PLANDEFINITION, 
8604        /**
8605         * A person who is directly or indirectly involved in the provisioning of healthcare.
8606         */
8607        PRACTITIONER, 
8608        /**
8609         * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
8610         */
8611        PRACTITIONERROLE, 
8612        /**
8613         * An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.
8614         */
8615        PROCEDURE, 
8616        /**
8617         * A record of a request for diagnostic investigations, treatments, or operations to be performed.
8618         */
8619        PROCEDUREREQUEST, 
8620        /**
8621         * This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.
8622         */
8623        PROCESSREQUEST, 
8624        /**
8625         * This resource provides processing status, errors and notes from the processing of a resource.
8626         */
8627        PROCESSRESPONSE, 
8628        /**
8629         * 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.
8630         */
8631        PROVENANCE, 
8632        /**
8633         * 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.
8634         */
8635        QUESTIONNAIRE, 
8636        /**
8637         * 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.
8638         */
8639        QUESTIONNAIRERESPONSE, 
8640        /**
8641         * Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.
8642         */
8643        REFERRALREQUEST, 
8644        /**
8645         * 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.
8646         */
8647        RELATEDPERSON, 
8648        /**
8649         * 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".
8650         */
8651        REQUESTGROUP, 
8652        /**
8653         * 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.
8654         */
8655        RESEARCHSTUDY, 
8656        /**
8657         * 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.
8658         */
8659        RESEARCHSUBJECT, 
8660        /**
8661         * This is the base resource type for everything.
8662         */
8663        RESOURCE, 
8664        /**
8665         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
8666         */
8667        RISKASSESSMENT, 
8668        /**
8669         * A container for slots of time that may be available for booking appointments.
8670         */
8671        SCHEDULE, 
8672        /**
8673         * A search parameter that defines a named search item that can be used to search/filter on a resource.
8674         */
8675        SEARCHPARAMETER, 
8676        /**
8677         * Raw data describing a biological sequence.
8678         */
8679        SEQUENCE, 
8680        /**
8681         * The ServiceDefinition describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.
8682         */
8683        SERVICEDEFINITION, 
8684        /**
8685         * A slot of time on a schedule that may be available for booking appointments.
8686         */
8687        SLOT, 
8688        /**
8689         * A sample to be used for analysis.
8690         */
8691        SPECIMEN, 
8692        /**
8693         * 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.
8694         */
8695        STRUCTUREDEFINITION, 
8696        /**
8697         * A Map of relationships between 2 structures that can be used to transform data.
8698         */
8699        STRUCTUREMAP, 
8700        /**
8701         * The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system is able to take an appropriate action.
8702         */
8703        SUBSCRIPTION, 
8704        /**
8705         * A homogeneous material with a definite composition.
8706         */
8707        SUBSTANCE, 
8708        /**
8709         * Record of delivery of what is supplied.
8710         */
8711        SUPPLYDELIVERY, 
8712        /**
8713         * A record of a request for a medication, substance or device used in the healthcare setting.
8714         */
8715        SUPPLYREQUEST, 
8716        /**
8717         * A task to be performed.
8718         */
8719        TASK, 
8720        /**
8721         * A summary of information based on the results of executing a TestScript.
8722         */
8723        TESTREPORT, 
8724        /**
8725         * A structured set of tests against a FHIR server implementation to determine compliance against the FHIR specification.
8726         */
8727        TESTSCRIPT, 
8728        /**
8729         * A value set specifies a set of codes drawn from one or more code systems.
8730         */
8731        VALUESET, 
8732        /**
8733         * An authorization for the supply of glasses and/or contact lenses to a patient.
8734         */
8735        VISIONPRESCRIPTION, 
8736        /**
8737         * added to help the parsers
8738         */
8739        NULL;
8740        public static ResourceType fromCode(String codeString) throws FHIRException {
8741            if (codeString == null || "".equals(codeString))
8742                return null;
8743        if ("Account".equals(codeString))
8744          return ACCOUNT;
8745        if ("ActivityDefinition".equals(codeString))
8746          return ACTIVITYDEFINITION;
8747        if ("AdverseEvent".equals(codeString))
8748          return ADVERSEEVENT;
8749        if ("AllergyIntolerance".equals(codeString))
8750          return ALLERGYINTOLERANCE;
8751        if ("Appointment".equals(codeString))
8752          return APPOINTMENT;
8753        if ("AppointmentResponse".equals(codeString))
8754          return APPOINTMENTRESPONSE;
8755        if ("AuditEvent".equals(codeString))
8756          return AUDITEVENT;
8757        if ("Basic".equals(codeString))
8758          return BASIC;
8759        if ("Binary".equals(codeString))
8760          return BINARY;
8761        if ("BodySite".equals(codeString))
8762          return BODYSITE;
8763        if ("Bundle".equals(codeString))
8764          return BUNDLE;
8765        if ("CapabilityStatement".equals(codeString))
8766          return CAPABILITYSTATEMENT;
8767        if ("CarePlan".equals(codeString))
8768          return CAREPLAN;
8769        if ("CareTeam".equals(codeString))
8770          return CARETEAM;
8771        if ("ChargeItem".equals(codeString))
8772          return CHARGEITEM;
8773        if ("Claim".equals(codeString))
8774          return CLAIM;
8775        if ("ClaimResponse".equals(codeString))
8776          return CLAIMRESPONSE;
8777        if ("ClinicalImpression".equals(codeString))
8778          return CLINICALIMPRESSION;
8779        if ("CodeSystem".equals(codeString))
8780          return CODESYSTEM;
8781        if ("Communication".equals(codeString))
8782          return COMMUNICATION;
8783        if ("CommunicationRequest".equals(codeString))
8784          return COMMUNICATIONREQUEST;
8785        if ("CompartmentDefinition".equals(codeString))
8786          return COMPARTMENTDEFINITION;
8787        if ("Composition".equals(codeString))
8788          return COMPOSITION;
8789        if ("ConceptMap".equals(codeString))
8790          return CONCEPTMAP;
8791        if ("Condition".equals(codeString))
8792          return CONDITION;
8793        if ("Consent".equals(codeString))
8794          return CONSENT;
8795        if ("Contract".equals(codeString))
8796          return CONTRACT;
8797        if ("Coverage".equals(codeString))
8798          return COVERAGE;
8799        if ("DataElement".equals(codeString))
8800          return DATAELEMENT;
8801        if ("DetectedIssue".equals(codeString))
8802          return DETECTEDISSUE;
8803        if ("Device".equals(codeString))
8804          return DEVICE;
8805        if ("DeviceComponent".equals(codeString))
8806          return DEVICECOMPONENT;
8807        if ("DeviceMetric".equals(codeString))
8808          return DEVICEMETRIC;
8809        if ("DeviceRequest".equals(codeString))
8810          return DEVICEREQUEST;
8811        if ("DeviceUseStatement".equals(codeString))
8812          return DEVICEUSESTATEMENT;
8813        if ("DiagnosticReport".equals(codeString))
8814          return DIAGNOSTICREPORT;
8815        if ("DocumentManifest".equals(codeString))
8816          return DOCUMENTMANIFEST;
8817        if ("DocumentReference".equals(codeString))
8818          return DOCUMENTREFERENCE;
8819        if ("DomainResource".equals(codeString))
8820          return DOMAINRESOURCE;
8821        if ("EligibilityRequest".equals(codeString))
8822          return ELIGIBILITYREQUEST;
8823        if ("EligibilityResponse".equals(codeString))
8824          return ELIGIBILITYRESPONSE;
8825        if ("Encounter".equals(codeString))
8826          return ENCOUNTER;
8827        if ("Endpoint".equals(codeString))
8828          return ENDPOINT;
8829        if ("EnrollmentRequest".equals(codeString))
8830          return ENROLLMENTREQUEST;
8831        if ("EnrollmentResponse".equals(codeString))
8832          return ENROLLMENTRESPONSE;
8833        if ("EpisodeOfCare".equals(codeString))
8834          return EPISODEOFCARE;
8835        if ("ExpansionProfile".equals(codeString))
8836          return EXPANSIONPROFILE;
8837        if ("ExplanationOfBenefit".equals(codeString))
8838          return EXPLANATIONOFBENEFIT;
8839        if ("FamilyMemberHistory".equals(codeString))
8840          return FAMILYMEMBERHISTORY;
8841        if ("Flag".equals(codeString))
8842          return FLAG;
8843        if ("Goal".equals(codeString))
8844          return GOAL;
8845        if ("GraphDefinition".equals(codeString))
8846          return GRAPHDEFINITION;
8847        if ("Group".equals(codeString))
8848          return GROUP;
8849        if ("GuidanceResponse".equals(codeString))
8850          return GUIDANCERESPONSE;
8851        if ("HealthcareService".equals(codeString))
8852          return HEALTHCARESERVICE;
8853        if ("ImagingManifest".equals(codeString))
8854          return IMAGINGMANIFEST;
8855        if ("ImagingStudy".equals(codeString))
8856          return IMAGINGSTUDY;
8857        if ("Immunization".equals(codeString))
8858          return IMMUNIZATION;
8859        if ("ImmunizationRecommendation".equals(codeString))
8860          return IMMUNIZATIONRECOMMENDATION;
8861        if ("ImplementationGuide".equals(codeString))
8862          return IMPLEMENTATIONGUIDE;
8863        if ("Library".equals(codeString))
8864          return LIBRARY;
8865        if ("Linkage".equals(codeString))
8866          return LINKAGE;
8867        if ("List".equals(codeString))
8868          return LIST;
8869        if ("Location".equals(codeString))
8870          return LOCATION;
8871        if ("Measure".equals(codeString))
8872          return MEASURE;
8873        if ("MeasureReport".equals(codeString))
8874          return MEASUREREPORT;
8875        if ("Media".equals(codeString))
8876          return MEDIA;
8877        if ("Medication".equals(codeString))
8878          return MEDICATION;
8879        if ("MedicationAdministration".equals(codeString))
8880          return MEDICATIONADMINISTRATION;
8881        if ("MedicationDispense".equals(codeString))
8882          return MEDICATIONDISPENSE;
8883        if ("MedicationRequest".equals(codeString))
8884          return MEDICATIONREQUEST;
8885        if ("MedicationStatement".equals(codeString))
8886          return MEDICATIONSTATEMENT;
8887        if ("MessageDefinition".equals(codeString))
8888          return MESSAGEDEFINITION;
8889        if ("MessageHeader".equals(codeString))
8890          return MESSAGEHEADER;
8891        if ("NamingSystem".equals(codeString))
8892          return NAMINGSYSTEM;
8893        if ("NutritionOrder".equals(codeString))
8894          return NUTRITIONORDER;
8895        if ("Observation".equals(codeString))
8896          return OBSERVATION;
8897        if ("OperationDefinition".equals(codeString))
8898          return OPERATIONDEFINITION;
8899        if ("OperationOutcome".equals(codeString))
8900          return OPERATIONOUTCOME;
8901        if ("Organization".equals(codeString))
8902          return ORGANIZATION;
8903        if ("Parameters".equals(codeString))
8904          return PARAMETERS;
8905        if ("Patient".equals(codeString))
8906          return PATIENT;
8907        if ("PaymentNotice".equals(codeString))
8908          return PAYMENTNOTICE;
8909        if ("PaymentReconciliation".equals(codeString))
8910          return PAYMENTRECONCILIATION;
8911        if ("Person".equals(codeString))
8912          return PERSON;
8913        if ("PlanDefinition".equals(codeString))
8914          return PLANDEFINITION;
8915        if ("Practitioner".equals(codeString))
8916          return PRACTITIONER;
8917        if ("PractitionerRole".equals(codeString))
8918          return PRACTITIONERROLE;
8919        if ("Procedure".equals(codeString))
8920          return PROCEDURE;
8921        if ("ProcedureRequest".equals(codeString))
8922          return PROCEDUREREQUEST;
8923        if ("ProcessRequest".equals(codeString))
8924          return PROCESSREQUEST;
8925        if ("ProcessResponse".equals(codeString))
8926          return PROCESSRESPONSE;
8927        if ("Provenance".equals(codeString))
8928          return PROVENANCE;
8929        if ("Questionnaire".equals(codeString))
8930          return QUESTIONNAIRE;
8931        if ("QuestionnaireResponse".equals(codeString))
8932          return QUESTIONNAIRERESPONSE;
8933        if ("ReferralRequest".equals(codeString))
8934          return REFERRALREQUEST;
8935        if ("RelatedPerson".equals(codeString))
8936          return RELATEDPERSON;
8937        if ("RequestGroup".equals(codeString))
8938          return REQUESTGROUP;
8939        if ("ResearchStudy".equals(codeString))
8940          return RESEARCHSTUDY;
8941        if ("ResearchSubject".equals(codeString))
8942          return RESEARCHSUBJECT;
8943        if ("Resource".equals(codeString))
8944          return RESOURCE;
8945        if ("RiskAssessment".equals(codeString))
8946          return RISKASSESSMENT;
8947        if ("Schedule".equals(codeString))
8948          return SCHEDULE;
8949        if ("SearchParameter".equals(codeString))
8950          return SEARCHPARAMETER;
8951        if ("Sequence".equals(codeString))
8952          return SEQUENCE;
8953        if ("ServiceDefinition".equals(codeString))
8954          return SERVICEDEFINITION;
8955        if ("Slot".equals(codeString))
8956          return SLOT;
8957        if ("Specimen".equals(codeString))
8958          return SPECIMEN;
8959        if ("StructureDefinition".equals(codeString))
8960          return STRUCTUREDEFINITION;
8961        if ("StructureMap".equals(codeString))
8962          return STRUCTUREMAP;
8963        if ("Subscription".equals(codeString))
8964          return SUBSCRIPTION;
8965        if ("Substance".equals(codeString))
8966          return SUBSTANCE;
8967        if ("SupplyDelivery".equals(codeString))
8968          return SUPPLYDELIVERY;
8969        if ("SupplyRequest".equals(codeString))
8970          return SUPPLYREQUEST;
8971        if ("Task".equals(codeString))
8972          return TASK;
8973        if ("TestReport".equals(codeString))
8974          return TESTREPORT;
8975        if ("TestScript".equals(codeString))
8976          return TESTSCRIPT;
8977        if ("ValueSet".equals(codeString))
8978          return VALUESET;
8979        if ("VisionPrescription".equals(codeString))
8980          return VISIONPRESCRIPTION;
8981        throw new FHIRException("Unknown ResourceType code '"+codeString+"'");
8982        }
8983        public String toCode() {
8984          switch (this) {
8985            case ACCOUNT: return "Account";
8986            case ACTIVITYDEFINITION: return "ActivityDefinition";
8987            case ADVERSEEVENT: return "AdverseEvent";
8988            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
8989            case APPOINTMENT: return "Appointment";
8990            case APPOINTMENTRESPONSE: return "AppointmentResponse";
8991            case AUDITEVENT: return "AuditEvent";
8992            case BASIC: return "Basic";
8993            case BINARY: return "Binary";
8994            case BODYSITE: return "BodySite";
8995            case BUNDLE: return "Bundle";
8996            case CAPABILITYSTATEMENT: return "CapabilityStatement";
8997            case CAREPLAN: return "CarePlan";
8998            case CARETEAM: return "CareTeam";
8999            case CHARGEITEM: return "ChargeItem";
9000            case CLAIM: return "Claim";
9001            case CLAIMRESPONSE: return "ClaimResponse";
9002            case CLINICALIMPRESSION: return "ClinicalImpression";
9003            case CODESYSTEM: return "CodeSystem";
9004            case COMMUNICATION: return "Communication";
9005            case COMMUNICATIONREQUEST: return "CommunicationRequest";
9006            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
9007            case COMPOSITION: return "Composition";
9008            case CONCEPTMAP: return "ConceptMap";
9009            case CONDITION: return "Condition";
9010            case CONSENT: return "Consent";
9011            case CONTRACT: return "Contract";
9012            case COVERAGE: return "Coverage";
9013            case DATAELEMENT: return "DataElement";
9014            case DETECTEDISSUE: return "DetectedIssue";
9015            case DEVICE: return "Device";
9016            case DEVICECOMPONENT: return "DeviceComponent";
9017            case DEVICEMETRIC: return "DeviceMetric";
9018            case DEVICEREQUEST: return "DeviceRequest";
9019            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
9020            case DIAGNOSTICREPORT: return "DiagnosticReport";
9021            case DOCUMENTMANIFEST: return "DocumentManifest";
9022            case DOCUMENTREFERENCE: return "DocumentReference";
9023            case DOMAINRESOURCE: return "DomainResource";
9024            case ELIGIBILITYREQUEST: return "EligibilityRequest";
9025            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
9026            case ENCOUNTER: return "Encounter";
9027            case ENDPOINT: return "Endpoint";
9028            case ENROLLMENTREQUEST: return "EnrollmentRequest";
9029            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
9030            case EPISODEOFCARE: return "EpisodeOfCare";
9031            case EXPANSIONPROFILE: return "ExpansionProfile";
9032            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
9033            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
9034            case FLAG: return "Flag";
9035            case GOAL: return "Goal";
9036            case GRAPHDEFINITION: return "GraphDefinition";
9037            case GROUP: return "Group";
9038            case GUIDANCERESPONSE: return "GuidanceResponse";
9039            case HEALTHCARESERVICE: return "HealthcareService";
9040            case IMAGINGMANIFEST: return "ImagingManifest";
9041            case IMAGINGSTUDY: return "ImagingStudy";
9042            case IMMUNIZATION: return "Immunization";
9043            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
9044            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
9045            case LIBRARY: return "Library";
9046            case LINKAGE: return "Linkage";
9047            case LIST: return "List";
9048            case LOCATION: return "Location";
9049            case MEASURE: return "Measure";
9050            case MEASUREREPORT: return "MeasureReport";
9051            case MEDIA: return "Media";
9052            case MEDICATION: return "Medication";
9053            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
9054            case MEDICATIONDISPENSE: return "MedicationDispense";
9055            case MEDICATIONREQUEST: return "MedicationRequest";
9056            case MEDICATIONSTATEMENT: return "MedicationStatement";
9057            case MESSAGEDEFINITION: return "MessageDefinition";
9058            case MESSAGEHEADER: return "MessageHeader";
9059            case NAMINGSYSTEM: return "NamingSystem";
9060            case NUTRITIONORDER: return "NutritionOrder";
9061            case OBSERVATION: return "Observation";
9062            case OPERATIONDEFINITION: return "OperationDefinition";
9063            case OPERATIONOUTCOME: return "OperationOutcome";
9064            case ORGANIZATION: return "Organization";
9065            case PARAMETERS: return "Parameters";
9066            case PATIENT: return "Patient";
9067            case PAYMENTNOTICE: return "PaymentNotice";
9068            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
9069            case PERSON: return "Person";
9070            case PLANDEFINITION: return "PlanDefinition";
9071            case PRACTITIONER: return "Practitioner";
9072            case PRACTITIONERROLE: return "PractitionerRole";
9073            case PROCEDURE: return "Procedure";
9074            case PROCEDUREREQUEST: return "ProcedureRequest";
9075            case PROCESSREQUEST: return "ProcessRequest";
9076            case PROCESSRESPONSE: return "ProcessResponse";
9077            case PROVENANCE: return "Provenance";
9078            case QUESTIONNAIRE: return "Questionnaire";
9079            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
9080            case REFERRALREQUEST: return "ReferralRequest";
9081            case RELATEDPERSON: return "RelatedPerson";
9082            case REQUESTGROUP: return "RequestGroup";
9083            case RESEARCHSTUDY: return "ResearchStudy";
9084            case RESEARCHSUBJECT: return "ResearchSubject";
9085            case RESOURCE: return "Resource";
9086            case RISKASSESSMENT: return "RiskAssessment";
9087            case SCHEDULE: return "Schedule";
9088            case SEARCHPARAMETER: return "SearchParameter";
9089            case SEQUENCE: return "Sequence";
9090            case SERVICEDEFINITION: return "ServiceDefinition";
9091            case SLOT: return "Slot";
9092            case SPECIMEN: return "Specimen";
9093            case STRUCTUREDEFINITION: return "StructureDefinition";
9094            case STRUCTUREMAP: return "StructureMap";
9095            case SUBSCRIPTION: return "Subscription";
9096            case SUBSTANCE: return "Substance";
9097            case SUPPLYDELIVERY: return "SupplyDelivery";
9098            case SUPPLYREQUEST: return "SupplyRequest";
9099            case TASK: return "Task";
9100            case TESTREPORT: return "TestReport";
9101            case TESTSCRIPT: return "TestScript";
9102            case VALUESET: return "ValueSet";
9103            case VISIONPRESCRIPTION: return "VisionPrescription";
9104            default: return "?";
9105          }
9106        }
9107        public String getSystem() {
9108          switch (this) {
9109            case ACCOUNT: return "http://hl7.org/fhir/resource-types";
9110            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/resource-types";
9111            case ADVERSEEVENT: return "http://hl7.org/fhir/resource-types";
9112            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/resource-types";
9113            case APPOINTMENT: return "http://hl7.org/fhir/resource-types";
9114            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
9115            case AUDITEVENT: return "http://hl7.org/fhir/resource-types";
9116            case BASIC: return "http://hl7.org/fhir/resource-types";
9117            case BINARY: return "http://hl7.org/fhir/resource-types";
9118            case BODYSITE: return "http://hl7.org/fhir/resource-types";
9119            case BUNDLE: return "http://hl7.org/fhir/resource-types";
9120            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/resource-types";
9121            case CAREPLAN: return "http://hl7.org/fhir/resource-types";
9122            case CARETEAM: return "http://hl7.org/fhir/resource-types";
9123            case CHARGEITEM: return "http://hl7.org/fhir/resource-types";
9124            case CLAIM: return "http://hl7.org/fhir/resource-types";
9125            case CLAIMRESPONSE: return "http://hl7.org/fhir/resource-types";
9126            case CLINICALIMPRESSION: return "http://hl7.org/fhir/resource-types";
9127            case CODESYSTEM: return "http://hl7.org/fhir/resource-types";
9128            case COMMUNICATION: return "http://hl7.org/fhir/resource-types";
9129            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
9130            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/resource-types";
9131            case COMPOSITION: return "http://hl7.org/fhir/resource-types";
9132            case CONCEPTMAP: return "http://hl7.org/fhir/resource-types";
9133            case CONDITION: return "http://hl7.org/fhir/resource-types";
9134            case CONSENT: return "http://hl7.org/fhir/resource-types";
9135            case CONTRACT: return "http://hl7.org/fhir/resource-types";
9136            case COVERAGE: return "http://hl7.org/fhir/resource-types";
9137            case DATAELEMENT: return "http://hl7.org/fhir/resource-types";
9138            case DETECTEDISSUE: return "http://hl7.org/fhir/resource-types";
9139            case DEVICE: return "http://hl7.org/fhir/resource-types";
9140            case DEVICECOMPONENT: return "http://hl7.org/fhir/resource-types";
9141            case DEVICEMETRIC: return "http://hl7.org/fhir/resource-types";
9142            case DEVICEREQUEST: return "http://hl7.org/fhir/resource-types";
9143            case DEVICEUSESTATEMENT: return "http://hl7.org/fhir/resource-types";
9144            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/resource-types";
9145            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/resource-types";
9146            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/resource-types";
9147            case DOMAINRESOURCE: return "http://hl7.org/fhir/resource-types";
9148            case ELIGIBILITYREQUEST: return "http://hl7.org/fhir/resource-types";
9149            case ELIGIBILITYRESPONSE: return "http://hl7.org/fhir/resource-types";
9150            case ENCOUNTER: return "http://hl7.org/fhir/resource-types";
9151            case ENDPOINT: return "http://hl7.org/fhir/resource-types";
9152            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/resource-types";
9153            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/resource-types";
9154            case EPISODEOFCARE: return "http://hl7.org/fhir/resource-types";
9155            case EXPANSIONPROFILE: return "http://hl7.org/fhir/resource-types";
9156            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/resource-types";
9157            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/resource-types";
9158            case FLAG: return "http://hl7.org/fhir/resource-types";
9159            case GOAL: return "http://hl7.org/fhir/resource-types";
9160            case GRAPHDEFINITION: return "http://hl7.org/fhir/resource-types";
9161            case GROUP: return "http://hl7.org/fhir/resource-types";
9162            case GUIDANCERESPONSE: return "http://hl7.org/fhir/resource-types";
9163            case HEALTHCARESERVICE: return "http://hl7.org/fhir/resource-types";
9164            case IMAGINGMANIFEST: return "http://hl7.org/fhir/resource-types";
9165            case IMAGINGSTUDY: return "http://hl7.org/fhir/resource-types";
9166            case IMMUNIZATION: return "http://hl7.org/fhir/resource-types";
9167            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/resource-types";
9168            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/resource-types";
9169            case LIBRARY: return "http://hl7.org/fhir/resource-types";
9170            case LINKAGE: return "http://hl7.org/fhir/resource-types";
9171            case LIST: return "http://hl7.org/fhir/resource-types";
9172            case LOCATION: return "http://hl7.org/fhir/resource-types";
9173            case MEASURE: return "http://hl7.org/fhir/resource-types";
9174            case MEASUREREPORT: return "http://hl7.org/fhir/resource-types";
9175            case MEDIA: return "http://hl7.org/fhir/resource-types";
9176            case MEDICATION: return "http://hl7.org/fhir/resource-types";
9177            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/resource-types";
9178            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/resource-types";
9179            case MEDICATIONREQUEST: return "http://hl7.org/fhir/resource-types";
9180            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/resource-types";
9181            case MESSAGEDEFINITION: return "http://hl7.org/fhir/resource-types";
9182            case MESSAGEHEADER: return "http://hl7.org/fhir/resource-types";
9183            case NAMINGSYSTEM: return "http://hl7.org/fhir/resource-types";
9184            case NUTRITIONORDER: return "http://hl7.org/fhir/resource-types";
9185            case OBSERVATION: return "http://hl7.org/fhir/resource-types";
9186            case OPERATIONDEFINITION: return "http://hl7.org/fhir/resource-types";
9187            case OPERATIONOUTCOME: return "http://hl7.org/fhir/resource-types";
9188            case ORGANIZATION: return "http://hl7.org/fhir/resource-types";
9189            case PARAMETERS: return "http://hl7.org/fhir/resource-types";
9190            case PATIENT: return "http://hl7.org/fhir/resource-types";
9191            case PAYMENTNOTICE: return "http://hl7.org/fhir/resource-types";
9192            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/resource-types";
9193            case PERSON: return "http://hl7.org/fhir/resource-types";
9194            case PLANDEFINITION: return "http://hl7.org/fhir/resource-types";
9195            case PRACTITIONER: return "http://hl7.org/fhir/resource-types";
9196            case PRACTITIONERROLE: return "http://hl7.org/fhir/resource-types";
9197            case PROCEDURE: return "http://hl7.org/fhir/resource-types";
9198            case PROCEDUREREQUEST: return "http://hl7.org/fhir/resource-types";
9199            case PROCESSREQUEST: return "http://hl7.org/fhir/resource-types";
9200            case PROCESSRESPONSE: return "http://hl7.org/fhir/resource-types";
9201            case PROVENANCE: return "http://hl7.org/fhir/resource-types";
9202            case QUESTIONNAIRE: return "http://hl7.org/fhir/resource-types";
9203            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/resource-types";
9204            case REFERRALREQUEST: return "http://hl7.org/fhir/resource-types";
9205            case RELATEDPERSON: return "http://hl7.org/fhir/resource-types";
9206            case REQUESTGROUP: return "http://hl7.org/fhir/resource-types";
9207            case RESEARCHSTUDY: return "http://hl7.org/fhir/resource-types";
9208            case RESEARCHSUBJECT: return "http://hl7.org/fhir/resource-types";
9209            case RESOURCE: return "http://hl7.org/fhir/resource-types";
9210            case RISKASSESSMENT: return "http://hl7.org/fhir/resource-types";
9211            case SCHEDULE: return "http://hl7.org/fhir/resource-types";
9212            case SEARCHPARAMETER: return "http://hl7.org/fhir/resource-types";
9213            case SEQUENCE: return "http://hl7.org/fhir/resource-types";
9214            case SERVICEDEFINITION: return "http://hl7.org/fhir/resource-types";
9215            case SLOT: return "http://hl7.org/fhir/resource-types";
9216            case SPECIMEN: return "http://hl7.org/fhir/resource-types";
9217            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/resource-types";
9218            case STRUCTUREMAP: return "http://hl7.org/fhir/resource-types";
9219            case SUBSCRIPTION: return "http://hl7.org/fhir/resource-types";
9220            case SUBSTANCE: return "http://hl7.org/fhir/resource-types";
9221            case SUPPLYDELIVERY: return "http://hl7.org/fhir/resource-types";
9222            case SUPPLYREQUEST: return "http://hl7.org/fhir/resource-types";
9223            case TASK: return "http://hl7.org/fhir/resource-types";
9224            case TESTREPORT: return "http://hl7.org/fhir/resource-types";
9225            case TESTSCRIPT: return "http://hl7.org/fhir/resource-types";
9226            case VALUESET: return "http://hl7.org/fhir/resource-types";
9227            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/resource-types";
9228            default: return "?";
9229          }
9230        }
9231        public String getDefinition() {
9232          switch (this) {
9233            case ACCOUNT: return "A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centers, etc.";
9234            case ACTIVITYDEFINITION: return "This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.";
9235            case ADVERSEEVENT: 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.";
9236            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
9237            case APPOINTMENT: return "A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).";
9238            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
9239            case AUDITEVENT: return "A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.";
9240            case BASIC: return "Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.";
9241            case BINARY: return "A binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
9242            case BODYSITE: return "Record details about the anatomical location of a specimen or body part.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
9243            case BUNDLE: return "A container for a collection of resources.";
9244            case CAPABILITYSTATEMENT: return "A Capability Statement 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.";
9245            case CAREPLAN: return "Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.";
9246            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.";
9247            case CHARGEITEM: 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.";
9248            case CLAIM: return "A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.";
9249            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
9250            case CLINICALIMPRESSION: return "A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score.";
9251            case CODESYSTEM: return "A code system resource specifies a set of codes drawn from one or more code systems.";
9252            case COMMUNICATION: return "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition.";
9253            case COMMUNICATIONREQUEST: return "A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.";
9254            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
9255            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.";
9256            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models.";
9257            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
9258            case CONSENT: return "A record of a healthcare consumer’s policy 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.";
9259            case CONTRACT: return "A formal agreement between parties regarding the conduct of business, exchange of information or other matters.";
9260            case COVERAGE: return "Financial instrument which may be used to reimburse or pay for health care products and services.";
9261            case DATAELEMENT: return "The formal description of a single piece of information that can be gathered and reported.";
9262            case DETECTEDISSUE: return "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.";
9263            case DEVICE: return "This resource identifies an instance or a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices include durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.";
9264            case DEVICECOMPONENT: return "The characteristics, operational status and capabilities of a medical-related component of a medical device.";
9265            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
9266            case DEVICEREQUEST: 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.";
9267            case DEVICEUSESTATEMENT: return "A record of a device being used by a patient where the record is the result of a report from the patient or another clinician.";
9268            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic  tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports.";
9269            case DOCUMENTMANIFEST: return "A collection of documents compiled for a purpose together with metadata that applies to the collection.";
9270            case DOCUMENTREFERENCE: return "A reference to a document.";
9271            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
9272            case ELIGIBILITYREQUEST: return "The EligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an EligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.";
9273            case ELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an Eligibility resource.";
9274            case ENCOUNTER: return "An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.";
9275            case ENDPOINT: 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.";
9276            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
9277            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an Enrollment resource.";
9278            case EPISODEOFCARE: return "An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.";
9279            case EXPANSIONPROFILE: return "Resource to define constraints on the Expansion of a FHIR ValueSet.";
9280            case EXPLANATIONOFBENEFIT: return "This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.";
9281            case FAMILYMEMBERHISTORY: return "Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.";
9282            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
9283            case GOAL: return "Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.";
9284            case GRAPHDEFINITION: 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.";
9285            case GROUP: return "Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.";
9286            case GUIDANCERESPONSE: return "A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.";
9287            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location.";
9288            case IMAGINGMANIFEST: return "A text description of the DICOM SOP instances selected in the ImagingManifest; or the reason for, or significance of, the selection.";
9289            case IMAGINGSTUDY: return "Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context.  A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities.";
9290            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.";
9291            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time immunization and recommendation (i.e. forecasting a patient's immunization eligibility according to a published schedule) with optional supporting justification.";
9292            case IMPLEMENTATIONGUIDE: return "A set of rules of how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.";
9293            case LIBRARY: 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.";
9294            case LINKAGE: return "Identifies two or more records (resource instances) that are referring to the same real-world \"occurrence\".";
9295            case LIST: return "A set of information summarized from a list of other resources.";
9296            case LOCATION: return "Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.";
9297            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
9298            case MEASUREREPORT: return "The MeasureReport resource contains the results of evaluating a measure.";
9299            case MEDIA: return "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.";
9300            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication. It covers the ingredients and the packaging for a medication.";
9301            case MEDICATIONADMINISTRATION: return "Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.";
9302            case MEDICATIONDISPENSE: return "Indicates that a medication product is to be or has been dispensed for a named person/patient.  This includes a description of the medication product (supply) provided and the instructions for administering the medication.  The medication dispense is the result of a pharmacy system responding to a medication order.";
9303            case MEDICATIONREQUEST: 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.";
9304            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now, or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains \r\rThe primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medication statement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
9305            case MESSAGEDEFINITION: 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.";
9306            case MESSAGEHEADER: return "The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.";
9307            case NAMINGSYSTEM: return "A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a \"System\" used within the Identifier and Coding data types.";
9308            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
9309            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
9310            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
9311            case OPERATIONOUTCOME: return "A collection of error, warning or information messages that result from a system action.";
9312            case ORGANIZATION: return "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.";
9313            case PARAMETERS: return "This special resource type is used to represent an operation request and response (operations.html). It has no other use, and there is no RESTful endpoint associated with it.";
9314            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
9315            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
9316            case PAYMENTRECONCILIATION: return "This resource provides payment details and claim references supporting a bulk payment.";
9317            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
9318            case PLANDEFINITION: 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.";
9319            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare.";
9320            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.";
9321            case PROCEDURE: return "An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy.";
9322            case PROCEDUREREQUEST: return "A record of a request for diagnostic investigations, treatments, or operations to be performed.";
9323            case PROCESSREQUEST: return "This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.";
9324            case PROCESSRESPONSE: return "This resource provides processing status, errors and notes from the processing of a resource.";
9325            case PROVENANCE: return "Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.";
9326            case QUESTIONNAIRE: 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.";
9327            case QUESTIONNAIRERESPONSE: return "A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the questionnaire being responded to.";
9328            case REFERRALREQUEST: return "Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.";
9329            case RELATEDPERSON: return "Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
9330            case REQUESTGROUP: 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\".";
9331            case RESEARCHSTUDY: 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.";
9332            case RESEARCHSUBJECT: 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.";
9333            case RESOURCE: return "This is the base resource type for everything.";
9334            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
9335            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
9336            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
9337            case SEQUENCE: return "Raw data describing a biological sequence.";
9338            case SERVICEDEFINITION: return "The ServiceDefinition describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.";
9339            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
9340            case SPECIMEN: return "A sample to be used for analysis.";
9341            case STRUCTUREDEFINITION: return "A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions and constraints on resources and data types.";
9342            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
9343            case SUBSCRIPTION: return "The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system is able to take an appropriate action.";
9344            case SUBSTANCE: return "A homogeneous material with a definite composition.";
9345            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
9346            case SUPPLYREQUEST: return "A record of a request for a medication, substance or device used in the healthcare setting.";
9347            case TASK: return "A task to be performed.";
9348            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
9349            case TESTSCRIPT: return "A structured set of tests against a FHIR server implementation to determine compliance against the FHIR specification.";
9350            case VALUESET: return "A value set specifies a set of codes drawn from one or more code systems.";
9351            case VISIONPRESCRIPTION: return "An authorization for the supply of glasses and/or contact lenses to a patient.";
9352            default: return "?";
9353          }
9354        }
9355        public String getDisplay() {
9356          switch (this) {
9357            case ACCOUNT: return "Account";
9358            case ACTIVITYDEFINITION: return "ActivityDefinition";
9359            case ADVERSEEVENT: return "AdverseEvent";
9360            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
9361            case APPOINTMENT: return "Appointment";
9362            case APPOINTMENTRESPONSE: return "AppointmentResponse";
9363            case AUDITEVENT: return "AuditEvent";
9364            case BASIC: return "Basic";
9365            case BINARY: return "Binary";
9366            case BODYSITE: return "BodySite";
9367            case BUNDLE: return "Bundle";
9368            case CAPABILITYSTATEMENT: return "CapabilityStatement";
9369            case CAREPLAN: return "CarePlan";
9370            case CARETEAM: return "CareTeam";
9371            case CHARGEITEM: return "ChargeItem";
9372            case CLAIM: return "Claim";
9373            case CLAIMRESPONSE: return "ClaimResponse";
9374            case CLINICALIMPRESSION: return "ClinicalImpression";
9375            case CODESYSTEM: return "CodeSystem";
9376            case COMMUNICATION: return "Communication";
9377            case COMMUNICATIONREQUEST: return "CommunicationRequest";
9378            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
9379            case COMPOSITION: return "Composition";
9380            case CONCEPTMAP: return "ConceptMap";
9381            case CONDITION: return "Condition";
9382            case CONSENT: return "Consent";
9383            case CONTRACT: return "Contract";
9384            case COVERAGE: return "Coverage";
9385            case DATAELEMENT: return "DataElement";
9386            case DETECTEDISSUE: return "DetectedIssue";
9387            case DEVICE: return "Device";
9388            case DEVICECOMPONENT: return "DeviceComponent";
9389            case DEVICEMETRIC: return "DeviceMetric";
9390            case DEVICEREQUEST: return "DeviceRequest";
9391            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
9392            case DIAGNOSTICREPORT: return "DiagnosticReport";
9393            case DOCUMENTMANIFEST: return "DocumentManifest";
9394            case DOCUMENTREFERENCE: return "DocumentReference";
9395            case DOMAINRESOURCE: return "DomainResource";
9396            case ELIGIBILITYREQUEST: return "EligibilityRequest";
9397            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
9398            case ENCOUNTER: return "Encounter";
9399            case ENDPOINT: return "Endpoint";
9400            case ENROLLMENTREQUEST: return "EnrollmentRequest";
9401            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
9402            case EPISODEOFCARE: return "EpisodeOfCare";
9403            case EXPANSIONPROFILE: return "ExpansionProfile";
9404            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
9405            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
9406            case FLAG: return "Flag";
9407            case GOAL: return "Goal";
9408            case GRAPHDEFINITION: return "GraphDefinition";
9409            case GROUP: return "Group";
9410            case GUIDANCERESPONSE: return "GuidanceResponse";
9411            case HEALTHCARESERVICE: return "HealthcareService";
9412            case IMAGINGMANIFEST: return "ImagingManifest";
9413            case IMAGINGSTUDY: return "ImagingStudy";
9414            case IMMUNIZATION: return "Immunization";
9415            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
9416            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
9417            case LIBRARY: return "Library";
9418            case LINKAGE: return "Linkage";
9419            case LIST: return "List";
9420            case LOCATION: return "Location";
9421            case MEASURE: return "Measure";
9422            case MEASUREREPORT: return "MeasureReport";
9423            case MEDIA: return "Media";
9424            case MEDICATION: return "Medication";
9425            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
9426            case MEDICATIONDISPENSE: return "MedicationDispense";
9427            case MEDICATIONREQUEST: return "MedicationRequest";
9428            case MEDICATIONSTATEMENT: return "MedicationStatement";
9429            case MESSAGEDEFINITION: return "MessageDefinition";
9430            case MESSAGEHEADER: return "MessageHeader";
9431            case NAMINGSYSTEM: return "NamingSystem";
9432            case NUTRITIONORDER: return "NutritionOrder";
9433            case OBSERVATION: return "Observation";
9434            case OPERATIONDEFINITION: return "OperationDefinition";
9435            case OPERATIONOUTCOME: return "OperationOutcome";
9436            case ORGANIZATION: return "Organization";
9437            case PARAMETERS: return "Parameters";
9438            case PATIENT: return "Patient";
9439            case PAYMENTNOTICE: return "PaymentNotice";
9440            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
9441            case PERSON: return "Person";
9442            case PLANDEFINITION: return "PlanDefinition";
9443            case PRACTITIONER: return "Practitioner";
9444            case PRACTITIONERROLE: return "PractitionerRole";
9445            case PROCEDURE: return "Procedure";
9446            case PROCEDUREREQUEST: return "ProcedureRequest";
9447            case PROCESSREQUEST: return "ProcessRequest";
9448            case PROCESSRESPONSE: return "ProcessResponse";
9449            case PROVENANCE: return "Provenance";
9450            case QUESTIONNAIRE: return "Questionnaire";
9451            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
9452            case REFERRALREQUEST: return "ReferralRequest";
9453            case RELATEDPERSON: return "RelatedPerson";
9454            case REQUESTGROUP: return "RequestGroup";
9455            case RESEARCHSTUDY: return "ResearchStudy";
9456            case RESEARCHSUBJECT: return "ResearchSubject";
9457            case RESOURCE: return "Resource";
9458            case RISKASSESSMENT: return "RiskAssessment";
9459            case SCHEDULE: return "Schedule";
9460            case SEARCHPARAMETER: return "SearchParameter";
9461            case SEQUENCE: return "Sequence";
9462            case SERVICEDEFINITION: return "ServiceDefinition";
9463            case SLOT: return "Slot";
9464            case SPECIMEN: return "Specimen";
9465            case STRUCTUREDEFINITION: return "StructureDefinition";
9466            case STRUCTUREMAP: return "StructureMap";
9467            case SUBSCRIPTION: return "Subscription";
9468            case SUBSTANCE: return "Substance";
9469            case SUPPLYDELIVERY: return "SupplyDelivery";
9470            case SUPPLYREQUEST: return "SupplyRequest";
9471            case TASK: return "Task";
9472            case TESTREPORT: return "TestReport";
9473            case TESTSCRIPT: return "TestScript";
9474            case VALUESET: return "ValueSet";
9475            case VISIONPRESCRIPTION: return "VisionPrescription";
9476            default: return "?";
9477          }
9478        }
9479    }
9480
9481  public static class ResourceTypeEnumFactory implements EnumFactory<ResourceType> {
9482    public ResourceType fromCode(String codeString) throws IllegalArgumentException {
9483      if (codeString == null || "".equals(codeString))
9484            if (codeString == null || "".equals(codeString))
9485                return null;
9486        if ("Account".equals(codeString))
9487          return ResourceType.ACCOUNT;
9488        if ("ActivityDefinition".equals(codeString))
9489          return ResourceType.ACTIVITYDEFINITION;
9490        if ("AdverseEvent".equals(codeString))
9491          return ResourceType.ADVERSEEVENT;
9492        if ("AllergyIntolerance".equals(codeString))
9493          return ResourceType.ALLERGYINTOLERANCE;
9494        if ("Appointment".equals(codeString))
9495          return ResourceType.APPOINTMENT;
9496        if ("AppointmentResponse".equals(codeString))
9497          return ResourceType.APPOINTMENTRESPONSE;
9498        if ("AuditEvent".equals(codeString))
9499          return ResourceType.AUDITEVENT;
9500        if ("Basic".equals(codeString))
9501          return ResourceType.BASIC;
9502        if ("Binary".equals(codeString))
9503          return ResourceType.BINARY;
9504        if ("BodySite".equals(codeString))
9505          return ResourceType.BODYSITE;
9506        if ("Bundle".equals(codeString))
9507          return ResourceType.BUNDLE;
9508        if ("CapabilityStatement".equals(codeString))
9509          return ResourceType.CAPABILITYSTATEMENT;
9510        if ("CarePlan".equals(codeString))
9511          return ResourceType.CAREPLAN;
9512        if ("CareTeam".equals(codeString))
9513          return ResourceType.CARETEAM;
9514        if ("ChargeItem".equals(codeString))
9515          return ResourceType.CHARGEITEM;
9516        if ("Claim".equals(codeString))
9517          return ResourceType.CLAIM;
9518        if ("ClaimResponse".equals(codeString))
9519          return ResourceType.CLAIMRESPONSE;
9520        if ("ClinicalImpression".equals(codeString))
9521          return ResourceType.CLINICALIMPRESSION;
9522        if ("CodeSystem".equals(codeString))
9523          return ResourceType.CODESYSTEM;
9524        if ("Communication".equals(codeString))
9525          return ResourceType.COMMUNICATION;
9526        if ("CommunicationRequest".equals(codeString))
9527          return ResourceType.COMMUNICATIONREQUEST;
9528        if ("CompartmentDefinition".equals(codeString))
9529          return ResourceType.COMPARTMENTDEFINITION;
9530        if ("Composition".equals(codeString))
9531          return ResourceType.COMPOSITION;
9532        if ("ConceptMap".equals(codeString))
9533          return ResourceType.CONCEPTMAP;
9534        if ("Condition".equals(codeString))
9535          return ResourceType.CONDITION;
9536        if ("Consent".equals(codeString))
9537          return ResourceType.CONSENT;
9538        if ("Contract".equals(codeString))
9539          return ResourceType.CONTRACT;
9540        if ("Coverage".equals(codeString))
9541          return ResourceType.COVERAGE;
9542        if ("DataElement".equals(codeString))
9543          return ResourceType.DATAELEMENT;
9544        if ("DetectedIssue".equals(codeString))
9545          return ResourceType.DETECTEDISSUE;
9546        if ("Device".equals(codeString))
9547          return ResourceType.DEVICE;
9548        if ("DeviceComponent".equals(codeString))
9549          return ResourceType.DEVICECOMPONENT;
9550        if ("DeviceMetric".equals(codeString))
9551          return ResourceType.DEVICEMETRIC;
9552        if ("DeviceRequest".equals(codeString))
9553          return ResourceType.DEVICEREQUEST;
9554        if ("DeviceUseStatement".equals(codeString))
9555          return ResourceType.DEVICEUSESTATEMENT;
9556        if ("DiagnosticReport".equals(codeString))
9557          return ResourceType.DIAGNOSTICREPORT;
9558        if ("DocumentManifest".equals(codeString))
9559          return ResourceType.DOCUMENTMANIFEST;
9560        if ("DocumentReference".equals(codeString))
9561          return ResourceType.DOCUMENTREFERENCE;
9562        if ("DomainResource".equals(codeString))
9563          return ResourceType.DOMAINRESOURCE;
9564        if ("EligibilityRequest".equals(codeString))
9565          return ResourceType.ELIGIBILITYREQUEST;
9566        if ("EligibilityResponse".equals(codeString))
9567          return ResourceType.ELIGIBILITYRESPONSE;
9568        if ("Encounter".equals(codeString))
9569          return ResourceType.ENCOUNTER;
9570        if ("Endpoint".equals(codeString))
9571          return ResourceType.ENDPOINT;
9572        if ("EnrollmentRequest".equals(codeString))
9573          return ResourceType.ENROLLMENTREQUEST;
9574        if ("EnrollmentResponse".equals(codeString))
9575          return ResourceType.ENROLLMENTRESPONSE;
9576        if ("EpisodeOfCare".equals(codeString))
9577          return ResourceType.EPISODEOFCARE;
9578        if ("ExpansionProfile".equals(codeString))
9579          return ResourceType.EXPANSIONPROFILE;
9580        if ("ExplanationOfBenefit".equals(codeString))
9581          return ResourceType.EXPLANATIONOFBENEFIT;
9582        if ("FamilyMemberHistory".equals(codeString))
9583          return ResourceType.FAMILYMEMBERHISTORY;
9584        if ("Flag".equals(codeString))
9585          return ResourceType.FLAG;
9586        if ("Goal".equals(codeString))
9587          return ResourceType.GOAL;
9588        if ("GraphDefinition".equals(codeString))
9589          return ResourceType.GRAPHDEFINITION;
9590        if ("Group".equals(codeString))
9591          return ResourceType.GROUP;
9592        if ("GuidanceResponse".equals(codeString))
9593          return ResourceType.GUIDANCERESPONSE;
9594        if ("HealthcareService".equals(codeString))
9595          return ResourceType.HEALTHCARESERVICE;
9596        if ("ImagingManifest".equals(codeString))
9597          return ResourceType.IMAGINGMANIFEST;
9598        if ("ImagingStudy".equals(codeString))
9599          return ResourceType.IMAGINGSTUDY;
9600        if ("Immunization".equals(codeString))
9601          return ResourceType.IMMUNIZATION;
9602        if ("ImmunizationRecommendation".equals(codeString))
9603          return ResourceType.IMMUNIZATIONRECOMMENDATION;
9604        if ("ImplementationGuide".equals(codeString))
9605          return ResourceType.IMPLEMENTATIONGUIDE;
9606        if ("Library".equals(codeString))
9607          return ResourceType.LIBRARY;
9608        if ("Linkage".equals(codeString))
9609          return ResourceType.LINKAGE;
9610        if ("List".equals(codeString))
9611          return ResourceType.LIST;
9612        if ("Location".equals(codeString))
9613          return ResourceType.LOCATION;
9614        if ("Measure".equals(codeString))
9615          return ResourceType.MEASURE;
9616        if ("MeasureReport".equals(codeString))
9617          return ResourceType.MEASUREREPORT;
9618        if ("Media".equals(codeString))
9619          return ResourceType.MEDIA;
9620        if ("Medication".equals(codeString))
9621          return ResourceType.MEDICATION;
9622        if ("MedicationAdministration".equals(codeString))
9623          return ResourceType.MEDICATIONADMINISTRATION;
9624        if ("MedicationDispense".equals(codeString))
9625          return ResourceType.MEDICATIONDISPENSE;
9626        if ("MedicationRequest".equals(codeString))
9627          return ResourceType.MEDICATIONREQUEST;
9628        if ("MedicationStatement".equals(codeString))
9629          return ResourceType.MEDICATIONSTATEMENT;
9630        if ("MessageDefinition".equals(codeString))
9631          return ResourceType.MESSAGEDEFINITION;
9632        if ("MessageHeader".equals(codeString))
9633          return ResourceType.MESSAGEHEADER;
9634        if ("NamingSystem".equals(codeString))
9635          return ResourceType.NAMINGSYSTEM;
9636        if ("NutritionOrder".equals(codeString))
9637          return ResourceType.NUTRITIONORDER;
9638        if ("Observation".equals(codeString))
9639          return ResourceType.OBSERVATION;
9640        if ("OperationDefinition".equals(codeString))
9641          return ResourceType.OPERATIONDEFINITION;
9642        if ("OperationOutcome".equals(codeString))
9643          return ResourceType.OPERATIONOUTCOME;
9644        if ("Organization".equals(codeString))
9645          return ResourceType.ORGANIZATION;
9646        if ("Parameters".equals(codeString))
9647          return ResourceType.PARAMETERS;
9648        if ("Patient".equals(codeString))
9649          return ResourceType.PATIENT;
9650        if ("PaymentNotice".equals(codeString))
9651          return ResourceType.PAYMENTNOTICE;
9652        if ("PaymentReconciliation".equals(codeString))
9653          return ResourceType.PAYMENTRECONCILIATION;
9654        if ("Person".equals(codeString))
9655          return ResourceType.PERSON;
9656        if ("PlanDefinition".equals(codeString))
9657          return ResourceType.PLANDEFINITION;
9658        if ("Practitioner".equals(codeString))
9659          return ResourceType.PRACTITIONER;
9660        if ("PractitionerRole".equals(codeString))
9661          return ResourceType.PRACTITIONERROLE;
9662        if ("Procedure".equals(codeString))
9663          return ResourceType.PROCEDURE;
9664        if ("ProcedureRequest".equals(codeString))
9665          return ResourceType.PROCEDUREREQUEST;
9666        if ("ProcessRequest".equals(codeString))
9667          return ResourceType.PROCESSREQUEST;
9668        if ("ProcessResponse".equals(codeString))
9669          return ResourceType.PROCESSRESPONSE;
9670        if ("Provenance".equals(codeString))
9671          return ResourceType.PROVENANCE;
9672        if ("Questionnaire".equals(codeString))
9673          return ResourceType.QUESTIONNAIRE;
9674        if ("QuestionnaireResponse".equals(codeString))
9675          return ResourceType.QUESTIONNAIRERESPONSE;
9676        if ("ReferralRequest".equals(codeString))
9677          return ResourceType.REFERRALREQUEST;
9678        if ("RelatedPerson".equals(codeString))
9679          return ResourceType.RELATEDPERSON;
9680        if ("RequestGroup".equals(codeString))
9681          return ResourceType.REQUESTGROUP;
9682        if ("ResearchStudy".equals(codeString))
9683          return ResourceType.RESEARCHSTUDY;
9684        if ("ResearchSubject".equals(codeString))
9685          return ResourceType.RESEARCHSUBJECT;
9686        if ("Resource".equals(codeString))
9687          return ResourceType.RESOURCE;
9688        if ("RiskAssessment".equals(codeString))
9689          return ResourceType.RISKASSESSMENT;
9690        if ("Schedule".equals(codeString))
9691          return ResourceType.SCHEDULE;
9692        if ("SearchParameter".equals(codeString))
9693          return ResourceType.SEARCHPARAMETER;
9694        if ("Sequence".equals(codeString))
9695          return ResourceType.SEQUENCE;
9696        if ("ServiceDefinition".equals(codeString))
9697          return ResourceType.SERVICEDEFINITION;
9698        if ("Slot".equals(codeString))
9699          return ResourceType.SLOT;
9700        if ("Specimen".equals(codeString))
9701          return ResourceType.SPECIMEN;
9702        if ("StructureDefinition".equals(codeString))
9703          return ResourceType.STRUCTUREDEFINITION;
9704        if ("StructureMap".equals(codeString))
9705          return ResourceType.STRUCTUREMAP;
9706        if ("Subscription".equals(codeString))
9707          return ResourceType.SUBSCRIPTION;
9708        if ("Substance".equals(codeString))
9709          return ResourceType.SUBSTANCE;
9710        if ("SupplyDelivery".equals(codeString))
9711          return ResourceType.SUPPLYDELIVERY;
9712        if ("SupplyRequest".equals(codeString))
9713          return ResourceType.SUPPLYREQUEST;
9714        if ("Task".equals(codeString))
9715          return ResourceType.TASK;
9716        if ("TestReport".equals(codeString))
9717          return ResourceType.TESTREPORT;
9718        if ("TestScript".equals(codeString))
9719          return ResourceType.TESTSCRIPT;
9720        if ("ValueSet".equals(codeString))
9721          return ResourceType.VALUESET;
9722        if ("VisionPrescription".equals(codeString))
9723          return ResourceType.VISIONPRESCRIPTION;
9724        throw new IllegalArgumentException("Unknown ResourceType code '"+codeString+"'");
9725        }
9726        public Enumeration<ResourceType> fromType(Base code) throws FHIRException {
9727          if (code == null)
9728            return null;
9729          if (code.isEmpty())
9730            return new Enumeration<ResourceType>(this);
9731          String codeString = ((PrimitiveType) code).asStringValue();
9732          if (codeString == null || "".equals(codeString))
9733            return null;
9734        if ("Account".equals(codeString))
9735          return new Enumeration<ResourceType>(this, ResourceType.ACCOUNT);
9736        if ("ActivityDefinition".equals(codeString))
9737          return new Enumeration<ResourceType>(this, ResourceType.ACTIVITYDEFINITION);
9738        if ("AdverseEvent".equals(codeString))
9739          return new Enumeration<ResourceType>(this, ResourceType.ADVERSEEVENT);
9740        if ("AllergyIntolerance".equals(codeString))
9741          return new Enumeration<ResourceType>(this, ResourceType.ALLERGYINTOLERANCE);
9742        if ("Appointment".equals(codeString))
9743          return new Enumeration<ResourceType>(this, ResourceType.APPOINTMENT);
9744        if ("AppointmentResponse".equals(codeString))
9745          return new Enumeration<ResourceType>(this, ResourceType.APPOINTMENTRESPONSE);
9746        if ("AuditEvent".equals(codeString))
9747          return new Enumeration<ResourceType>(this, ResourceType.AUDITEVENT);
9748        if ("Basic".equals(codeString))
9749          return new Enumeration<ResourceType>(this, ResourceType.BASIC);
9750        if ("Binary".equals(codeString))
9751          return new Enumeration<ResourceType>(this, ResourceType.BINARY);
9752        if ("BodySite".equals(codeString))
9753          return new Enumeration<ResourceType>(this, ResourceType.BODYSITE);
9754        if ("Bundle".equals(codeString))
9755          return new Enumeration<ResourceType>(this, ResourceType.BUNDLE);
9756        if ("CapabilityStatement".equals(codeString))
9757          return new Enumeration<ResourceType>(this, ResourceType.CAPABILITYSTATEMENT);
9758        if ("CarePlan".equals(codeString))
9759          return new Enumeration<ResourceType>(this, ResourceType.CAREPLAN);
9760        if ("CareTeam".equals(codeString))
9761          return new Enumeration<ResourceType>(this, ResourceType.CARETEAM);
9762        if ("ChargeItem".equals(codeString))
9763          return new Enumeration<ResourceType>(this, ResourceType.CHARGEITEM);
9764        if ("Claim".equals(codeString))
9765          return new Enumeration<ResourceType>(this, ResourceType.CLAIM);
9766        if ("ClaimResponse".equals(codeString))
9767          return new Enumeration<ResourceType>(this, ResourceType.CLAIMRESPONSE);
9768        if ("ClinicalImpression".equals(codeString))
9769          return new Enumeration<ResourceType>(this, ResourceType.CLINICALIMPRESSION);
9770        if ("CodeSystem".equals(codeString))
9771          return new Enumeration<ResourceType>(this, ResourceType.CODESYSTEM);
9772        if ("Communication".equals(codeString))
9773          return new Enumeration<ResourceType>(this, ResourceType.COMMUNICATION);
9774        if ("CommunicationRequest".equals(codeString))
9775          return new Enumeration<ResourceType>(this, ResourceType.COMMUNICATIONREQUEST);
9776        if ("CompartmentDefinition".equals(codeString))
9777          return new Enumeration<ResourceType>(this, ResourceType.COMPARTMENTDEFINITION);
9778        if ("Composition".equals(codeString))
9779          return new Enumeration<ResourceType>(this, ResourceType.COMPOSITION);
9780        if ("ConceptMap".equals(codeString))
9781          return new Enumeration<ResourceType>(this, ResourceType.CONCEPTMAP);
9782        if ("Condition".equals(codeString))
9783          return new Enumeration<ResourceType>(this, ResourceType.CONDITION);
9784        if ("Consent".equals(codeString))
9785          return new Enumeration<ResourceType>(this, ResourceType.CONSENT);
9786        if ("Contract".equals(codeString))
9787          return new Enumeration<ResourceType>(this, ResourceType.CONTRACT);
9788        if ("Coverage".equals(codeString))
9789          return new Enumeration<ResourceType>(this, ResourceType.COVERAGE);
9790        if ("DataElement".equals(codeString))
9791          return new Enumeration<ResourceType>(this, ResourceType.DATAELEMENT);
9792        if ("DetectedIssue".equals(codeString))
9793          return new Enumeration<ResourceType>(this, ResourceType.DETECTEDISSUE);
9794        if ("Device".equals(codeString))
9795          return new Enumeration<ResourceType>(this, ResourceType.DEVICE);
9796        if ("DeviceComponent".equals(codeString))
9797          return new Enumeration<ResourceType>(this, ResourceType.DEVICECOMPONENT);
9798        if ("DeviceMetric".equals(codeString))
9799          return new Enumeration<ResourceType>(this, ResourceType.DEVICEMETRIC);
9800        if ("DeviceRequest".equals(codeString))
9801          return new Enumeration<ResourceType>(this, ResourceType.DEVICEREQUEST);
9802        if ("DeviceUseStatement".equals(codeString))
9803          return new Enumeration<ResourceType>(this, ResourceType.DEVICEUSESTATEMENT);
9804        if ("DiagnosticReport".equals(codeString))
9805          return new Enumeration<ResourceType>(this, ResourceType.DIAGNOSTICREPORT);
9806        if ("DocumentManifest".equals(codeString))
9807          return new Enumeration<ResourceType>(this, ResourceType.DOCUMENTMANIFEST);
9808        if ("DocumentReference".equals(codeString))
9809          return new Enumeration<ResourceType>(this, ResourceType.DOCUMENTREFERENCE);
9810        if ("DomainResource".equals(codeString))
9811          return new Enumeration<ResourceType>(this, ResourceType.DOMAINRESOURCE);
9812        if ("EligibilityRequest".equals(codeString))
9813          return new Enumeration<ResourceType>(this, ResourceType.ELIGIBILITYREQUEST);
9814        if ("EligibilityResponse".equals(codeString))
9815          return new Enumeration<ResourceType>(this, ResourceType.ELIGIBILITYRESPONSE);
9816        if ("Encounter".equals(codeString))
9817          return new Enumeration<ResourceType>(this, ResourceType.ENCOUNTER);
9818        if ("Endpoint".equals(codeString))
9819          return new Enumeration<ResourceType>(this, ResourceType.ENDPOINT);
9820        if ("EnrollmentRequest".equals(codeString))
9821          return new Enumeration<ResourceType>(this, ResourceType.ENROLLMENTREQUEST);
9822        if ("EnrollmentResponse".equals(codeString))
9823          return new Enumeration<ResourceType>(this, ResourceType.ENROLLMENTRESPONSE);
9824        if ("EpisodeOfCare".equals(codeString))
9825          return new Enumeration<ResourceType>(this, ResourceType.EPISODEOFCARE);
9826        if ("ExpansionProfile".equals(codeString))
9827          return new Enumeration<ResourceType>(this, ResourceType.EXPANSIONPROFILE);
9828        if ("ExplanationOfBenefit".equals(codeString))
9829          return new Enumeration<ResourceType>(this, ResourceType.EXPLANATIONOFBENEFIT);
9830        if ("FamilyMemberHistory".equals(codeString))
9831          return new Enumeration<ResourceType>(this, ResourceType.FAMILYMEMBERHISTORY);
9832        if ("Flag".equals(codeString))
9833          return new Enumeration<ResourceType>(this, ResourceType.FLAG);
9834        if ("Goal".equals(codeString))
9835          return new Enumeration<ResourceType>(this, ResourceType.GOAL);
9836        if ("GraphDefinition".equals(codeString))
9837          return new Enumeration<ResourceType>(this, ResourceType.GRAPHDEFINITION);
9838        if ("Group".equals(codeString))
9839          return new Enumeration<ResourceType>(this, ResourceType.GROUP);
9840        if ("GuidanceResponse".equals(codeString))
9841          return new Enumeration<ResourceType>(this, ResourceType.GUIDANCERESPONSE);
9842        if ("HealthcareService".equals(codeString))
9843          return new Enumeration<ResourceType>(this, ResourceType.HEALTHCARESERVICE);
9844        if ("ImagingManifest".equals(codeString))
9845          return new Enumeration<ResourceType>(this, ResourceType.IMAGINGMANIFEST);
9846        if ("ImagingStudy".equals(codeString))
9847          return new Enumeration<ResourceType>(this, ResourceType.IMAGINGSTUDY);
9848        if ("Immunization".equals(codeString))
9849          return new Enumeration<ResourceType>(this, ResourceType.IMMUNIZATION);
9850        if ("ImmunizationRecommendation".equals(codeString))
9851          return new Enumeration<ResourceType>(this, ResourceType.IMMUNIZATIONRECOMMENDATION);
9852        if ("ImplementationGuide".equals(codeString))
9853          return new Enumeration<ResourceType>(this, ResourceType.IMPLEMENTATIONGUIDE);
9854        if ("Library".equals(codeString))
9855          return new Enumeration<ResourceType>(this, ResourceType.LIBRARY);
9856        if ("Linkage".equals(codeString))
9857          return new Enumeration<ResourceType>(this, ResourceType.LINKAGE);
9858        if ("List".equals(codeString))
9859          return new Enumeration<ResourceType>(this, ResourceType.LIST);
9860        if ("Location".equals(codeString))
9861          return new Enumeration<ResourceType>(this, ResourceType.LOCATION);
9862        if ("Measure".equals(codeString))
9863          return new Enumeration<ResourceType>(this, ResourceType.MEASURE);
9864        if ("MeasureReport".equals(codeString))
9865          return new Enumeration<ResourceType>(this, ResourceType.MEASUREREPORT);
9866        if ("Media".equals(codeString))
9867          return new Enumeration<ResourceType>(this, ResourceType.MEDIA);
9868        if ("Medication".equals(codeString))
9869          return new Enumeration<ResourceType>(this, ResourceType.MEDICATION);
9870        if ("MedicationAdministration".equals(codeString))
9871          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONADMINISTRATION);
9872        if ("MedicationDispense".equals(codeString))
9873          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONDISPENSE);
9874        if ("MedicationRequest".equals(codeString))
9875          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONREQUEST);
9876        if ("MedicationStatement".equals(codeString))
9877          return new Enumeration<ResourceType>(this, ResourceType.MEDICATIONSTATEMENT);
9878        if ("MessageDefinition".equals(codeString))
9879          return new Enumeration<ResourceType>(this, ResourceType.MESSAGEDEFINITION);
9880        if ("MessageHeader".equals(codeString))
9881          return new Enumeration<ResourceType>(this, ResourceType.MESSAGEHEADER);
9882        if ("NamingSystem".equals(codeString))
9883          return new Enumeration<ResourceType>(this, ResourceType.NAMINGSYSTEM);
9884        if ("NutritionOrder".equals(codeString))
9885          return new Enumeration<ResourceType>(this, ResourceType.NUTRITIONORDER);
9886        if ("Observation".equals(codeString))
9887          return new Enumeration<ResourceType>(this, ResourceType.OBSERVATION);
9888        if ("OperationDefinition".equals(codeString))
9889          return new Enumeration<ResourceType>(this, ResourceType.OPERATIONDEFINITION);
9890        if ("OperationOutcome".equals(codeString))
9891          return new Enumeration<ResourceType>(this, ResourceType.OPERATIONOUTCOME);
9892        if ("Organization".equals(codeString))
9893          return new Enumeration<ResourceType>(this, ResourceType.ORGANIZATION);
9894        if ("Parameters".equals(codeString))
9895          return new Enumeration<ResourceType>(this, ResourceType.PARAMETERS);
9896        if ("Patient".equals(codeString))
9897          return new Enumeration<ResourceType>(this, ResourceType.PATIENT);
9898        if ("PaymentNotice".equals(codeString))
9899          return new Enumeration<ResourceType>(this, ResourceType.PAYMENTNOTICE);
9900        if ("PaymentReconciliation".equals(codeString))
9901          return new Enumeration<ResourceType>(this, ResourceType.PAYMENTRECONCILIATION);
9902        if ("Person".equals(codeString))
9903          return new Enumeration<ResourceType>(this, ResourceType.PERSON);
9904        if ("PlanDefinition".equals(codeString))
9905          return new Enumeration<ResourceType>(this, ResourceType.PLANDEFINITION);
9906        if ("Practitioner".equals(codeString))
9907          return new Enumeration<ResourceType>(this, ResourceType.PRACTITIONER);
9908        if ("PractitionerRole".equals(codeString))
9909          return new Enumeration<ResourceType>(this, ResourceType.PRACTITIONERROLE);
9910        if ("Procedure".equals(codeString))
9911          return new Enumeration<ResourceType>(this, ResourceType.PROCEDURE);
9912        if ("ProcedureRequest".equals(codeString))
9913          return new Enumeration<ResourceType>(this, ResourceType.PROCEDUREREQUEST);
9914        if ("ProcessRequest".equals(codeString))
9915          return new Enumeration<ResourceType>(this, ResourceType.PROCESSREQUEST);
9916        if ("ProcessResponse".equals(codeString))
9917          return new Enumeration<ResourceType>(this, ResourceType.PROCESSRESPONSE);
9918        if ("Provenance".equals(codeString))
9919          return new Enumeration<ResourceType>(this, ResourceType.PROVENANCE);
9920        if ("Questionnaire".equals(codeString))
9921          return new Enumeration<ResourceType>(this, ResourceType.QUESTIONNAIRE);
9922        if ("QuestionnaireResponse".equals(codeString))
9923          return new Enumeration<ResourceType>(this, ResourceType.QUESTIONNAIRERESPONSE);
9924        if ("ReferralRequest".equals(codeString))
9925          return new Enumeration<ResourceType>(this, ResourceType.REFERRALREQUEST);
9926        if ("RelatedPerson".equals(codeString))
9927          return new Enumeration<ResourceType>(this, ResourceType.RELATEDPERSON);
9928        if ("RequestGroup".equals(codeString))
9929          return new Enumeration<ResourceType>(this, ResourceType.REQUESTGROUP);
9930        if ("ResearchStudy".equals(codeString))
9931          return new Enumeration<ResourceType>(this, ResourceType.RESEARCHSTUDY);
9932        if ("ResearchSubject".equals(codeString))
9933          return new Enumeration<ResourceType>(this, ResourceType.RESEARCHSUBJECT);
9934        if ("Resource".equals(codeString))
9935          return new Enumeration<ResourceType>(this, ResourceType.RESOURCE);
9936        if ("RiskAssessment".equals(codeString))
9937          return new Enumeration<ResourceType>(this, ResourceType.RISKASSESSMENT);
9938        if ("Schedule".equals(codeString))
9939          return new Enumeration<ResourceType>(this, ResourceType.SCHEDULE);
9940        if ("SearchParameter".equals(codeString))
9941          return new Enumeration<ResourceType>(this, ResourceType.SEARCHPARAMETER);
9942        if ("Sequence".equals(codeString))
9943          return new Enumeration<ResourceType>(this, ResourceType.SEQUENCE);
9944        if ("ServiceDefinition".equals(codeString))
9945          return new Enumeration<ResourceType>(this, ResourceType.SERVICEDEFINITION);
9946        if ("Slot".equals(codeString))
9947          return new Enumeration<ResourceType>(this, ResourceType.SLOT);
9948        if ("Specimen".equals(codeString))
9949          return new Enumeration<ResourceType>(this, ResourceType.SPECIMEN);
9950        if ("StructureDefinition".equals(codeString))
9951          return new Enumeration<ResourceType>(this, ResourceType.STRUCTUREDEFINITION);
9952        if ("StructureMap".equals(codeString))
9953          return new Enumeration<ResourceType>(this, ResourceType.STRUCTUREMAP);
9954        if ("Subscription".equals(codeString))
9955          return new Enumeration<ResourceType>(this, ResourceType.SUBSCRIPTION);
9956        if ("Substance".equals(codeString))
9957          return new Enumeration<ResourceType>(this, ResourceType.SUBSTANCE);
9958        if ("SupplyDelivery".equals(codeString))
9959          return new Enumeration<ResourceType>(this, ResourceType.SUPPLYDELIVERY);
9960        if ("SupplyRequest".equals(codeString))
9961          return new Enumeration<ResourceType>(this, ResourceType.SUPPLYREQUEST);
9962        if ("Task".equals(codeString))
9963          return new Enumeration<ResourceType>(this, ResourceType.TASK);
9964        if ("TestReport".equals(codeString))
9965          return new Enumeration<ResourceType>(this, ResourceType.TESTREPORT);
9966        if ("TestScript".equals(codeString))
9967          return new Enumeration<ResourceType>(this, ResourceType.TESTSCRIPT);
9968        if ("ValueSet".equals(codeString))
9969          return new Enumeration<ResourceType>(this, ResourceType.VALUESET);
9970        if ("VisionPrescription".equals(codeString))
9971          return new Enumeration<ResourceType>(this, ResourceType.VISIONPRESCRIPTION);
9972        throw new FHIRException("Unknown ResourceType code '"+codeString+"'");
9973        }
9974    public String toCode(ResourceType code) {
9975      if (code == ResourceType.ACCOUNT)
9976        return "Account";
9977      if (code == ResourceType.ACTIVITYDEFINITION)
9978        return "ActivityDefinition";
9979      if (code == ResourceType.ADVERSEEVENT)
9980        return "AdverseEvent";
9981      if (code == ResourceType.ALLERGYINTOLERANCE)
9982        return "AllergyIntolerance";
9983      if (code == ResourceType.APPOINTMENT)
9984        return "Appointment";
9985      if (code == ResourceType.APPOINTMENTRESPONSE)
9986        return "AppointmentResponse";
9987      if (code == ResourceType.AUDITEVENT)
9988        return "AuditEvent";
9989      if (code == ResourceType.BASIC)
9990        return "Basic";
9991      if (code == ResourceType.BINARY)
9992        return "Binary";
9993      if (code == ResourceType.BODYSITE)
9994        return "BodySite";
9995      if (code == ResourceType.BUNDLE)
9996        return "Bundle";
9997      if (code == ResourceType.CAPABILITYSTATEMENT)
9998        return "CapabilityStatement";
9999      if (code == ResourceType.CAREPLAN)
10000        return "CarePlan";
10001      if (code == ResourceType.CARETEAM)
10002        return "CareTeam";
10003      if (code == ResourceType.CHARGEITEM)
10004        return "ChargeItem";
10005      if (code == ResourceType.CLAIM)
10006        return "Claim";
10007      if (code == ResourceType.CLAIMRESPONSE)
10008        return "ClaimResponse";
10009      if (code == ResourceType.CLINICALIMPRESSION)
10010        return "ClinicalImpression";
10011      if (code == ResourceType.CODESYSTEM)
10012        return "CodeSystem";
10013      if (code == ResourceType.COMMUNICATION)
10014        return "Communication";
10015      if (code == ResourceType.COMMUNICATIONREQUEST)
10016        return "CommunicationRequest";
10017      if (code == ResourceType.COMPARTMENTDEFINITION)
10018        return "CompartmentDefinition";
10019      if (code == ResourceType.COMPOSITION)
10020        return "Composition";
10021      if (code == ResourceType.CONCEPTMAP)
10022        return "ConceptMap";
10023      if (code == ResourceType.CONDITION)
10024        return "Condition";
10025      if (code == ResourceType.CONSENT)
10026        return "Consent";
10027      if (code == ResourceType.CONTRACT)
10028        return "Contract";
10029      if (code == ResourceType.COVERAGE)
10030        return "Coverage";
10031      if (code == ResourceType.DATAELEMENT)
10032        return "DataElement";
10033      if (code == ResourceType.DETECTEDISSUE)
10034        return "DetectedIssue";
10035      if (code == ResourceType.DEVICE)
10036        return "Device";
10037      if (code == ResourceType.DEVICECOMPONENT)
10038        return "DeviceComponent";
10039      if (code == ResourceType.DEVICEMETRIC)
10040        return "DeviceMetric";
10041      if (code == ResourceType.DEVICEREQUEST)
10042        return "DeviceRequest";
10043      if (code == ResourceType.DEVICEUSESTATEMENT)
10044        return "DeviceUseStatement";
10045      if (code == ResourceType.DIAGNOSTICREPORT)
10046        return "DiagnosticReport";
10047      if (code == ResourceType.DOCUMENTMANIFEST)
10048        return "DocumentManifest";
10049      if (code == ResourceType.DOCUMENTREFERENCE)
10050        return "DocumentReference";
10051      if (code == ResourceType.DOMAINRESOURCE)
10052        return "DomainResource";
10053      if (code == ResourceType.ELIGIBILITYREQUEST)
10054        return "EligibilityRequest";
10055      if (code == ResourceType.ELIGIBILITYRESPONSE)
10056        return "EligibilityResponse";
10057      if (code == ResourceType.ENCOUNTER)
10058        return "Encounter";
10059      if (code == ResourceType.ENDPOINT)
10060        return "Endpoint";
10061      if (code == ResourceType.ENROLLMENTREQUEST)
10062        return "EnrollmentRequest";
10063      if (code == ResourceType.ENROLLMENTRESPONSE)
10064        return "EnrollmentResponse";
10065      if (code == ResourceType.EPISODEOFCARE)
10066        return "EpisodeOfCare";
10067      if (code == ResourceType.EXPANSIONPROFILE)
10068        return "ExpansionProfile";
10069      if (code == ResourceType.EXPLANATIONOFBENEFIT)
10070        return "ExplanationOfBenefit";
10071      if (code == ResourceType.FAMILYMEMBERHISTORY)
10072        return "FamilyMemberHistory";
10073      if (code == ResourceType.FLAG)
10074        return "Flag";
10075      if (code == ResourceType.GOAL)
10076        return "Goal";
10077      if (code == ResourceType.GRAPHDEFINITION)
10078        return "GraphDefinition";
10079      if (code == ResourceType.GROUP)
10080        return "Group";
10081      if (code == ResourceType.GUIDANCERESPONSE)
10082        return "GuidanceResponse";
10083      if (code == ResourceType.HEALTHCARESERVICE)
10084        return "HealthcareService";
10085      if (code == ResourceType.IMAGINGMANIFEST)
10086        return "ImagingManifest";
10087      if (code == ResourceType.IMAGINGSTUDY)
10088        return "ImagingStudy";
10089      if (code == ResourceType.IMMUNIZATION)
10090        return "Immunization";
10091      if (code == ResourceType.IMMUNIZATIONRECOMMENDATION)
10092        return "ImmunizationRecommendation";
10093      if (code == ResourceType.IMPLEMENTATIONGUIDE)
10094        return "ImplementationGuide";
10095      if (code == ResourceType.LIBRARY)
10096        return "Library";
10097      if (code == ResourceType.LINKAGE)
10098        return "Linkage";
10099      if (code == ResourceType.LIST)
10100        return "List";
10101      if (code == ResourceType.LOCATION)
10102        return "Location";
10103      if (code == ResourceType.MEASURE)
10104        return "Measure";
10105      if (code == ResourceType.MEASUREREPORT)
10106        return "MeasureReport";
10107      if (code == ResourceType.MEDIA)
10108        return "Media";
10109      if (code == ResourceType.MEDICATION)
10110        return "Medication";
10111      if (code == ResourceType.MEDICATIONADMINISTRATION)
10112        return "MedicationAdministration";
10113      if (code == ResourceType.MEDICATIONDISPENSE)
10114        return "MedicationDispense";
10115      if (code == ResourceType.MEDICATIONREQUEST)
10116        return "MedicationRequest";
10117      if (code == ResourceType.MEDICATIONSTATEMENT)
10118        return "MedicationStatement";
10119      if (code == ResourceType.MESSAGEDEFINITION)
10120        return "MessageDefinition";
10121      if (code == ResourceType.MESSAGEHEADER)
10122        return "MessageHeader";
10123      if (code == ResourceType.NAMINGSYSTEM)
10124        return "NamingSystem";
10125      if (code == ResourceType.NUTRITIONORDER)
10126        return "NutritionOrder";
10127      if (code == ResourceType.OBSERVATION)
10128        return "Observation";
10129      if (code == ResourceType.OPERATIONDEFINITION)
10130        return "OperationDefinition";
10131      if (code == ResourceType.OPERATIONOUTCOME)
10132        return "OperationOutcome";
10133      if (code == ResourceType.ORGANIZATION)
10134        return "Organization";
10135      if (code == ResourceType.PARAMETERS)
10136        return "Parameters";
10137      if (code == ResourceType.PATIENT)
10138        return "Patient";
10139      if (code == ResourceType.PAYMENTNOTICE)
10140        return "PaymentNotice";
10141      if (code == ResourceType.PAYMENTRECONCILIATION)
10142        return "PaymentReconciliation";
10143      if (code == ResourceType.PERSON)
10144        return "Person";
10145      if (code == ResourceType.PLANDEFINITION)
10146        return "PlanDefinition";
10147      if (code == ResourceType.PRACTITIONER)
10148        return "Practitioner";
10149      if (code == ResourceType.PRACTITIONERROLE)
10150        return "PractitionerRole";
10151      if (code == ResourceType.PROCEDURE)
10152        return "Procedure";
10153      if (code == ResourceType.PROCEDUREREQUEST)
10154        return "ProcedureRequest";
10155      if (code == ResourceType.PROCESSREQUEST)
10156        return "ProcessRequest";
10157      if (code == ResourceType.PROCESSRESPONSE)
10158        return "ProcessResponse";
10159      if (code == ResourceType.PROVENANCE)
10160        return "Provenance";
10161      if (code == ResourceType.QUESTIONNAIRE)
10162        return "Questionnaire";
10163      if (code == ResourceType.QUESTIONNAIRERESPONSE)
10164        return "QuestionnaireResponse";
10165      if (code == ResourceType.REFERRALREQUEST)
10166        return "ReferralRequest";
10167      if (code == ResourceType.RELATEDPERSON)
10168        return "RelatedPerson";
10169      if (code == ResourceType.REQUESTGROUP)
10170        return "RequestGroup";
10171      if (code == ResourceType.RESEARCHSTUDY)
10172        return "ResearchStudy";
10173      if (code == ResourceType.RESEARCHSUBJECT)
10174        return "ResearchSubject";
10175      if (code == ResourceType.RESOURCE)
10176        return "Resource";
10177      if (code == ResourceType.RISKASSESSMENT)
10178        return "RiskAssessment";
10179      if (code == ResourceType.SCHEDULE)
10180        return "Schedule";
10181      if (code == ResourceType.SEARCHPARAMETER)
10182        return "SearchParameter";
10183      if (code == ResourceType.SEQUENCE)
10184        return "Sequence";
10185      if (code == ResourceType.SERVICEDEFINITION)
10186        return "ServiceDefinition";
10187      if (code == ResourceType.SLOT)
10188        return "Slot";
10189      if (code == ResourceType.SPECIMEN)
10190        return "Specimen";
10191      if (code == ResourceType.STRUCTUREDEFINITION)
10192        return "StructureDefinition";
10193      if (code == ResourceType.STRUCTUREMAP)
10194        return "StructureMap";
10195      if (code == ResourceType.SUBSCRIPTION)
10196        return "Subscription";
10197      if (code == ResourceType.SUBSTANCE)
10198        return "Substance";
10199      if (code == ResourceType.SUPPLYDELIVERY)
10200        return "SupplyDelivery";
10201      if (code == ResourceType.SUPPLYREQUEST)
10202        return "SupplyRequest";
10203      if (code == ResourceType.TASK)
10204        return "Task";
10205      if (code == ResourceType.TESTREPORT)
10206        return "TestReport";
10207      if (code == ResourceType.TESTSCRIPT)
10208        return "TestScript";
10209      if (code == ResourceType.VALUESET)
10210        return "ValueSet";
10211      if (code == ResourceType.VISIONPRESCRIPTION)
10212        return "VisionPrescription";
10213      return "?";
10214      }
10215    public String toSystem(ResourceType code) {
10216      return code.getSystem();
10217      }
10218    }
10219
10220    public enum SearchParamType {
10221        /**
10222         * Search parameter SHALL be a number (a whole number, or a decimal).
10223         */
10224        NUMBER, 
10225        /**
10226         * Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.
10227         */
10228        DATE, 
10229        /**
10230         * Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces.
10231         */
10232        STRING, 
10233        /**
10234         * Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a "|", depending on the modifier used.
10235         */
10236        TOKEN, 
10237        /**
10238         * A reference to another resource.
10239         */
10240        REFERENCE, 
10241        /**
10242         * A composite search parameter that combines a search on two values together.
10243         */
10244        COMPOSITE, 
10245        /**
10246         * A search parameter that searches on a quantity.
10247         */
10248        QUANTITY, 
10249        /**
10250         * A search parameter that searches on a URI (RFC 3986).
10251         */
10252        URI, 
10253        /**
10254         * added to help the parsers
10255         */
10256        NULL;
10257        public static SearchParamType fromCode(String codeString) throws FHIRException {
10258            if (codeString == null || "".equals(codeString))
10259                return null;
10260        if ("number".equals(codeString))
10261          return NUMBER;
10262        if ("date".equals(codeString))
10263          return DATE;
10264        if ("string".equals(codeString))
10265          return STRING;
10266        if ("token".equals(codeString))
10267          return TOKEN;
10268        if ("reference".equals(codeString))
10269          return REFERENCE;
10270        if ("composite".equals(codeString))
10271          return COMPOSITE;
10272        if ("quantity".equals(codeString))
10273          return QUANTITY;
10274        if ("uri".equals(codeString))
10275          return URI;
10276        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
10277        }
10278        public String toCode() {
10279          switch (this) {
10280            case NUMBER: return "number";
10281            case DATE: return "date";
10282            case STRING: return "string";
10283            case TOKEN: return "token";
10284            case REFERENCE: return "reference";
10285            case COMPOSITE: return "composite";
10286            case QUANTITY: return "quantity";
10287            case URI: return "uri";
10288            default: return "?";
10289          }
10290        }
10291        public String getSystem() {
10292          switch (this) {
10293            case NUMBER: return "http://hl7.org/fhir/search-param-type";
10294            case DATE: return "http://hl7.org/fhir/search-param-type";
10295            case STRING: return "http://hl7.org/fhir/search-param-type";
10296            case TOKEN: return "http://hl7.org/fhir/search-param-type";
10297            case REFERENCE: return "http://hl7.org/fhir/search-param-type";
10298            case COMPOSITE: return "http://hl7.org/fhir/search-param-type";
10299            case QUANTITY: return "http://hl7.org/fhir/search-param-type";
10300            case URI: return "http://hl7.org/fhir/search-param-type";
10301            default: return "?";
10302          }
10303        }
10304        public String getDefinition() {
10305          switch (this) {
10306            case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal).";
10307            case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.";
10308            case STRING: return "Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces.";
10309            case TOKEN: return "Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a \"|\", depending on the modifier used.";
10310            case REFERENCE: return "A reference to another resource.";
10311            case COMPOSITE: return "A composite search parameter that combines a search on two values together.";
10312            case QUANTITY: return "A search parameter that searches on a quantity.";
10313            case URI: return "A search parameter that searches on a URI (RFC 3986).";
10314            default: return "?";
10315          }
10316        }
10317        public String getDisplay() {
10318          switch (this) {
10319            case NUMBER: return "Number";
10320            case DATE: return "Date/DateTime";
10321            case STRING: return "String";
10322            case TOKEN: return "Token";
10323            case REFERENCE: return "Reference";
10324            case COMPOSITE: return "Composite";
10325            case QUANTITY: return "Quantity";
10326            case URI: return "URI";
10327            default: return "?";
10328          }
10329        }
10330    }
10331
10332  public static class SearchParamTypeEnumFactory implements EnumFactory<SearchParamType> {
10333    public SearchParamType fromCode(String codeString) throws IllegalArgumentException {
10334      if (codeString == null || "".equals(codeString))
10335            if (codeString == null || "".equals(codeString))
10336                return null;
10337        if ("number".equals(codeString))
10338          return SearchParamType.NUMBER;
10339        if ("date".equals(codeString))
10340          return SearchParamType.DATE;
10341        if ("string".equals(codeString))
10342          return SearchParamType.STRING;
10343        if ("token".equals(codeString))
10344          return SearchParamType.TOKEN;
10345        if ("reference".equals(codeString))
10346          return SearchParamType.REFERENCE;
10347        if ("composite".equals(codeString))
10348          return SearchParamType.COMPOSITE;
10349        if ("quantity".equals(codeString))
10350          return SearchParamType.QUANTITY;
10351        if ("uri".equals(codeString))
10352          return SearchParamType.URI;
10353        throw new IllegalArgumentException("Unknown SearchParamType code '"+codeString+"'");
10354        }
10355        public Enumeration<SearchParamType> fromType(Base code) throws FHIRException {
10356          if (code == null)
10357            return null;
10358          if (code.isEmpty())
10359            return new Enumeration<SearchParamType>(this);
10360          String codeString = ((PrimitiveType) code).asStringValue();
10361          if (codeString == null || "".equals(codeString))
10362            return null;
10363        if ("number".equals(codeString))
10364          return new Enumeration<SearchParamType>(this, SearchParamType.NUMBER);
10365        if ("date".equals(codeString))
10366          return new Enumeration<SearchParamType>(this, SearchParamType.DATE);
10367        if ("string".equals(codeString))
10368          return new Enumeration<SearchParamType>(this, SearchParamType.STRING);
10369        if ("token".equals(codeString))
10370          return new Enumeration<SearchParamType>(this, SearchParamType.TOKEN);
10371        if ("reference".equals(codeString))
10372          return new Enumeration<SearchParamType>(this, SearchParamType.REFERENCE);
10373        if ("composite".equals(codeString))
10374          return new Enumeration<SearchParamType>(this, SearchParamType.COMPOSITE);
10375        if ("quantity".equals(codeString))
10376          return new Enumeration<SearchParamType>(this, SearchParamType.QUANTITY);
10377        if ("uri".equals(codeString))
10378          return new Enumeration<SearchParamType>(this, SearchParamType.URI);
10379        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
10380        }
10381    public String toCode(SearchParamType code) {
10382      if (code == SearchParamType.NUMBER)
10383        return "number";
10384      if (code == SearchParamType.DATE)
10385        return "date";
10386      if (code == SearchParamType.STRING)
10387        return "string";
10388      if (code == SearchParamType.TOKEN)
10389        return "token";
10390      if (code == SearchParamType.REFERENCE)
10391        return "reference";
10392      if (code == SearchParamType.COMPOSITE)
10393        return "composite";
10394      if (code == SearchParamType.QUANTITY)
10395        return "quantity";
10396      if (code == SearchParamType.URI)
10397        return "uri";
10398      return "?";
10399      }
10400    public String toSystem(SearchParamType code) {
10401      return code.getSystem();
10402      }
10403    }
10404
10405    public enum SpecialValues {
10406        /**
10407         * Boolean true.
10408         */
10409        TRUE, 
10410        /**
10411         * Boolean false.
10412         */
10413        FALSE, 
10414        /**
10415         * The content is greater than zero, but too small to be quantified.
10416         */
10417        TRACE, 
10418        /**
10419         * The specific quantity is not known, but is known to be non-zero and is not specified because it makes up the bulk of the material.
10420         */
10421        SUFFICIENT, 
10422        /**
10423         * The value is no longer available.
10424         */
10425        WITHDRAWN, 
10426        /**
10427         * The are no known applicable values in this context.
10428         */
10429        NILKNOWN, 
10430        /**
10431         * added to help the parsers
10432         */
10433        NULL;
10434        public static SpecialValues fromCode(String codeString) throws FHIRException {
10435            if (codeString == null || "".equals(codeString))
10436                return null;
10437        if ("true".equals(codeString))
10438          return TRUE;
10439        if ("false".equals(codeString))
10440          return FALSE;
10441        if ("trace".equals(codeString))
10442          return TRACE;
10443        if ("sufficient".equals(codeString))
10444          return SUFFICIENT;
10445        if ("withdrawn".equals(codeString))
10446          return WITHDRAWN;
10447        if ("nil-known".equals(codeString))
10448          return NILKNOWN;
10449        throw new FHIRException("Unknown SpecialValues code '"+codeString+"'");
10450        }
10451        public String toCode() {
10452          switch (this) {
10453            case TRUE: return "true";
10454            case FALSE: return "false";
10455            case TRACE: return "trace";
10456            case SUFFICIENT: return "sufficient";
10457            case WITHDRAWN: return "withdrawn";
10458            case NILKNOWN: return "nil-known";
10459            default: return "?";
10460          }
10461        }
10462        public String getSystem() {
10463          switch (this) {
10464            case TRUE: return "http://hl7.org/fhir/special-values";
10465            case FALSE: return "http://hl7.org/fhir/special-values";
10466            case TRACE: return "http://hl7.org/fhir/special-values";
10467            case SUFFICIENT: return "http://hl7.org/fhir/special-values";
10468            case WITHDRAWN: return "http://hl7.org/fhir/special-values";
10469            case NILKNOWN: return "http://hl7.org/fhir/special-values";
10470            default: return "?";
10471          }
10472        }
10473        public String getDefinition() {
10474          switch (this) {
10475            case TRUE: return "Boolean true.";
10476            case FALSE: return "Boolean false.";
10477            case TRACE: return "The content is greater than zero, but too small to be quantified.";
10478            case SUFFICIENT: return "The specific quantity is not known, but is known to be non-zero and is not specified because it makes up the bulk of the material.";
10479            case WITHDRAWN: return "The value is no longer available.";
10480            case NILKNOWN: return "The are no known applicable values in this context.";
10481            default: return "?";
10482          }
10483        }
10484        public String getDisplay() {
10485          switch (this) {
10486            case TRUE: return "true";
10487            case FALSE: return "false";
10488            case TRACE: return "Trace Amount Detected";
10489            case SUFFICIENT: return "Sufficient Quantity";
10490            case WITHDRAWN: return "Value Withdrawn";
10491            case NILKNOWN: return "Nil Known";
10492            default: return "?";
10493          }
10494        }
10495    }
10496
10497  public static class SpecialValuesEnumFactory implements EnumFactory<SpecialValues> {
10498    public SpecialValues fromCode(String codeString) throws IllegalArgumentException {
10499      if (codeString == null || "".equals(codeString))
10500            if (codeString == null || "".equals(codeString))
10501                return null;
10502        if ("true".equals(codeString))
10503          return SpecialValues.TRUE;
10504        if ("false".equals(codeString))
10505          return SpecialValues.FALSE;
10506        if ("trace".equals(codeString))
10507          return SpecialValues.TRACE;
10508        if ("sufficient".equals(codeString))
10509          return SpecialValues.SUFFICIENT;
10510        if ("withdrawn".equals(codeString))
10511          return SpecialValues.WITHDRAWN;
10512        if ("nil-known".equals(codeString))
10513          return SpecialValues.NILKNOWN;
10514        throw new IllegalArgumentException("Unknown SpecialValues code '"+codeString+"'");
10515        }
10516        public Enumeration<SpecialValues> fromType(Base code) throws FHIRException {
10517          if (code == null)
10518            return null;
10519          if (code.isEmpty())
10520            return new Enumeration<SpecialValues>(this);
10521          String codeString = ((PrimitiveType) code).asStringValue();
10522          if (codeString == null || "".equals(codeString))
10523            return null;
10524        if ("true".equals(codeString))
10525          return new Enumeration<SpecialValues>(this, SpecialValues.TRUE);
10526        if ("false".equals(codeString))
10527          return new Enumeration<SpecialValues>(this, SpecialValues.FALSE);
10528        if ("trace".equals(codeString))
10529          return new Enumeration<SpecialValues>(this, SpecialValues.TRACE);
10530        if ("sufficient".equals(codeString))
10531          return new Enumeration<SpecialValues>(this, SpecialValues.SUFFICIENT);
10532        if ("withdrawn".equals(codeString))
10533          return new Enumeration<SpecialValues>(this, SpecialValues.WITHDRAWN);
10534        if ("nil-known".equals(codeString))
10535          return new Enumeration<SpecialValues>(this, SpecialValues.NILKNOWN);
10536        throw new FHIRException("Unknown SpecialValues code '"+codeString+"'");
10537        }
10538    public String toCode(SpecialValues code) {
10539      if (code == SpecialValues.TRUE)
10540        return "true";
10541      if (code == SpecialValues.FALSE)
10542        return "false";
10543      if (code == SpecialValues.TRACE)
10544        return "trace";
10545      if (code == SpecialValues.SUFFICIENT)
10546        return "sufficient";
10547      if (code == SpecialValues.WITHDRAWN)
10548        return "withdrawn";
10549      if (code == SpecialValues.NILKNOWN)
10550        return "nil-known";
10551      return "?";
10552      }
10553    public String toSystem(SpecialValues code) {
10554      return code.getSystem();
10555      }
10556    }
10557
10558
10559}
10560