001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Tue, Dec 13, 2022 17:53+1100 for FHIR vcurrent
033
034
035import org.hl7.fhir.instance.model.api.*;
036import org.hl7.fhir.exceptions.FHIRException;
037
038public class Enumerations {
039
040// In here: 
041//   ActionCardinalityBehavior: Defines behavior for an action or a group for how many times that item may be repeated.[PlanDefinition, RequestOrchestration]
042//   ActionConditionKind: Defines the kinds of conditions that can appear on actions.[PlanDefinition, RequestOrchestration]
043//   ActionGroupingBehavior: Defines organization behavior of a group.[PlanDefinition, RequestOrchestration]
044//   ActionParticipantType: The type of participant for the action.[ActivityDefinition, PlanDefinition, RequestOrchestration]
045//   ActionPrecheckBehavior: Defines selection frequency behavior for an action or group.[PlanDefinition, RequestOrchestration]
046//   ActionRelationshipType: Defines the types of relationships between actions.[PlanDefinition, RequestOrchestration]
047//   ActionRequiredBehavior: Defines expectations around whether an action or action group is required.[PlanDefinition, RequestOrchestration]
048//   ActionSelectionBehavior: Defines selection behavior of a group.[PlanDefinition, RequestOrchestration]
049//   AdministrativeGender: The gender of a person used for administrative purposes.[ObservationDefinition, Patient, Person, Practitioner, RelatedPerson]
050//   AllResourceTypes: All fhir data types (including abstract resources)[GraphDefinition, SearchParameter]
051//   BindingStrength: Indication of the degree of conformance expectations associated with a binding.[ElementDefinition, OperationDefinition]
052//   CapabilityStatementKind: How a capability statement is intended to be used.[CapabilityStatement, TerminologyCapabilities]
053//   ClaimProcessingCodes: This value set includes Claim Processing Outcome codes.[ClaimResponse, ExplanationOfBenefit]
054//   CompartmentType: Which type a compartment definition describes.[CompartmentDefinition, GraphDefinition]
055//   CompositionStatus: The workflow/clinical status of the composition.[Composition, DocumentReference]
056//   ConceptMapRelationship: The relationship between concepts.[ConceptMap]
057//   ConsentDataMeaning: How a resource reference is interpreted when testing consent restrictions.[Consent, Permission]
058//   ConsentProvisionType: How a rule statement is applied, such as adding additional consent or removing consent.[Consent, Permission]
059//   Currencies: Currency codes from ISO 4217 (see https://www.iso.org/iso-4217-currency-codes.html)[Account, Money]
060//   DaysOfWeek: The days of the week.[Appointment, Availability, Timing]
061//   DeviceNameType: The type of name the device is referred by.[Device, DeviceDefinition]
062//   DocumentReferenceStatus: The status of the document reference.[DocumentManifest, DocumentReference]
063//   EventStatus: Codes identifying the lifecycle stage of an event.[ClinicalImpression, Communication, NutritionIntake, Procedure]
064//   EvidenceVariableHandling: The handling of the variable in statistical analysis for exposures or outcomes (E.g. Dichotomous, Continuous, Descriptive).[Evidence, EvidenceVariable]
065//   ExampleScenarioActorType: The type of actor - system or human.[ActorDefinition, ExampleScenario]
066//   FHIRTypes: All FHIR types[DataRequirement, Measure, OperationDefinition, ParameterDefinition]
067//   FHIRVersion: All published FHIR Versions.[CapabilityStatement, ImplementationGuide, StructureDefinition]
068//   FilterOperator: The kind of operation to perform as a part of a property based filter.[CodeSystem, ValueSet]
069//   FinancialResourceStatusCodes: This value set includes Status codes.[Claim, ClaimResponse, Coverage, CoverageEligibilityRequest, CoverageEligibilityResponse, EnrollmentRequest, EnrollmentResponse, PaymentNotice, PaymentReconciliation, VisionPrescription]
070//   ListMode: The processing mode that applies to this list.[Composition, EvidenceReport, List]
071//   MeasureImprovementNotation: Observation values that indicate what change in a measurement value or score is indicative of an improvement in the measured item or scored issue.[Measure, MeasureReport]
072//   MimeTypes: This value set includes all possible codes from BCP-13 (http://tools.ietf.org/html/bcp13)[Attachment, Binary, CapabilityStatement, ElementDefinition, Endpoint, Signature, Subscription, TestScript]
073//   NoteType: The presentation types of notes.[ClaimResponse, ExplanationOfBenefit, PaymentReconciliation]
074//   ObservationStatus: Codes providing the status of an observation.[Observation, RiskAssessment]
075//   OperationParameterUse: Whether an operation parameter is an input or an output parameter.[OperationDefinition, ParameterDefinition]
076//   ParticipationStatus: The Participation status of an appointment.[Appointment, AppointmentResponse]
077//   PublicationStatus: The lifecycle status of an artifact.[ActivityDefinition, ActorDefinition, AdministrableProductDefinition, CanonicalResource, CapabilityStatement, ChargeItemDefinition, Citation, CodeSystem, CompartmentDefinition, ConceptMap, ConditionDefinition, EventDefinition, Evidence, EvidenceReport, EvidenceVariable, ExampleScenario, GraphDefinition, ImplementationGuide, Ingredient, InsurancePlan, Library, ManufacturedItemDefinition, Measure, MessageDefinition, MetadataResource, NamingSystem, ObservationDefinition, OperationDefinition, PlanDefinition, Questionnaire, RelatedArtifact, Requirements, ResearchStudy, ResearchSubject, SearchParameter, SpecimenDefinition, StructureDefinition, StructureMap, SubscriptionTopic, TerminologyCapabilities, TestScript, ValueSet]
078//   QuantityComparator: How the Quantity should be understood and represented.[Age, Count, Distance, Duration, Quantity]
079//   RequestIntent: Codes indicating the degree of authority/intentionality associated with a request.[ActivityDefinition, CommunicationRequest, DeviceRequest, NutritionOrder, RequestOrchestration, ServiceRequest]
080//   RequestPriority: Identifies the level of importance to be assigned to actioning the request.[ActivityDefinition, Communication, CommunicationRequest, DeviceRequest, MedicationRequest, PlanDefinition, RequestOrchestration, ServiceRequest, SupplyRequest, Task, Transport]
081//   RequestStatus: Codes identifying the lifecycle stage of a request.[CarePlan, CommunicationRequest, DeviceRequest, NutritionOrder, RequestOrchestration, ServiceRequest]
082//   ResourceTypeEnum: All fhir data types[CapabilityStatement, CompartmentDefinition, ImplementationGuide, MessageDefinition, OperationDefinition, Questionnaire, SearchParameter]
083//   SearchParamType: Data types allowed to be used for search parameters.[CapabilityStatement, OperationDefinition, SearchParameter]
084//   SubscriptionSearchModifier: FHIR search modifiers allowed for use in Subscriptions and SubscriptionTopics.[Subscription, SubscriptionTopic]
085//   SubscriptionStatusCodes: State values for FHIR Subscriptions.[Subscription, SubscriptionStatus]
086//   Use: The purpose of the Claim: predetermination, preauthorization, claim.[Claim, ClaimResponse, ExplanationOfBenefit]
087
088
089    public enum ActionCardinalityBehavior {
090        /**
091         * The action may only be selected one time.
092         */
093        SINGLE, 
094        /**
095         * The action may be selected multiple times.
096         */
097        MULTIPLE, 
098        /**
099         * added to help the parsers
100         */
101        NULL;
102        public static ActionCardinalityBehavior fromCode(String codeString) throws FHIRException {
103            if (codeString == null || "".equals(codeString))
104                return null;
105        if ("single".equals(codeString))
106          return SINGLE;
107        if ("multiple".equals(codeString))
108          return MULTIPLE;
109        throw new FHIRException("Unknown ActionCardinalityBehavior code '"+codeString+"'");
110        }
111        public String toCode() {
112          switch (this) {
113            case SINGLE: return "single";
114            case MULTIPLE: return "multiple";
115            case NULL: return null;
116            default: return "?";
117          }
118        }
119        public String getSystem() {
120          switch (this) {
121            case SINGLE: return "http://hl7.org/fhir/action-cardinality-behavior";
122            case MULTIPLE: return "http://hl7.org/fhir/action-cardinality-behavior";
123            case NULL: return null;
124            default: return "?";
125          }
126        }
127        public String getDefinition() {
128          switch (this) {
129            case SINGLE: return "The action may only be selected one time.";
130            case MULTIPLE: return "The action may be selected multiple times.";
131            case NULL: return null;
132            default: return "?";
133          }
134        }
135        public String getDisplay() {
136          switch (this) {
137            case SINGLE: return "Single";
138            case MULTIPLE: return "Multiple";
139            case NULL: return null;
140            default: return "?";
141          }
142        }
143    }
144
145  public static class ActionCardinalityBehaviorEnumFactory implements EnumFactory<ActionCardinalityBehavior> {
146    public ActionCardinalityBehavior fromCode(String codeString) throws IllegalArgumentException {
147      if (codeString == null || "".equals(codeString))
148            if (codeString == null || "".equals(codeString))
149                return null;
150        if ("single".equals(codeString))
151          return ActionCardinalityBehavior.SINGLE;
152        if ("multiple".equals(codeString))
153          return ActionCardinalityBehavior.MULTIPLE;
154        throw new IllegalArgumentException("Unknown ActionCardinalityBehavior code '"+codeString+"'");
155        }
156        public Enumeration<ActionCardinalityBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
157          if (code == null)
158            return null;
159          if (code.isEmpty())
160            return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.NULL, code);
161          String codeString = ((PrimitiveType) code).asStringValue();
162          if (codeString == null || "".equals(codeString))
163            return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.NULL, code);
164        if ("single".equals(codeString))
165          return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.SINGLE, code);
166        if ("multiple".equals(codeString))
167          return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.MULTIPLE, code);
168        throw new FHIRException("Unknown ActionCardinalityBehavior code '"+codeString+"'");
169        }
170    public String toCode(ActionCardinalityBehavior code) {
171      if (code == ActionCardinalityBehavior.SINGLE)
172        return "single";
173      if (code == ActionCardinalityBehavior.MULTIPLE)
174        return "multiple";
175      return "?";
176      }
177    public String toSystem(ActionCardinalityBehavior code) {
178      return code.getSystem();
179      }
180    }
181
182    public enum ActionConditionKind {
183        /**
184         * The condition describes whether or not a given action is applicable.
185         */
186        APPLICABILITY, 
187        /**
188         * The condition is a starting condition for the action.
189         */
190        START, 
191        /**
192         * The condition is a stop, or exit condition for the action.
193         */
194        STOP, 
195        /**
196         * added to help the parsers
197         */
198        NULL;
199        public static ActionConditionKind fromCode(String codeString) throws FHIRException {
200            if (codeString == null || "".equals(codeString))
201                return null;
202        if ("applicability".equals(codeString))
203          return APPLICABILITY;
204        if ("start".equals(codeString))
205          return START;
206        if ("stop".equals(codeString))
207          return STOP;
208        throw new FHIRException("Unknown ActionConditionKind code '"+codeString+"'");
209        }
210        public String toCode() {
211          switch (this) {
212            case APPLICABILITY: return "applicability";
213            case START: return "start";
214            case STOP: return "stop";
215            case NULL: return null;
216            default: return "?";
217          }
218        }
219        public String getSystem() {
220          switch (this) {
221            case APPLICABILITY: return "http://hl7.org/fhir/action-condition-kind";
222            case START: return "http://hl7.org/fhir/action-condition-kind";
223            case STOP: return "http://hl7.org/fhir/action-condition-kind";
224            case NULL: return null;
225            default: return "?";
226          }
227        }
228        public String getDefinition() {
229          switch (this) {
230            case APPLICABILITY: return "The condition describes whether or not a given action is applicable.";
231            case START: return "The condition is a starting condition for the action.";
232            case STOP: return "The condition is a stop, or exit condition for the action.";
233            case NULL: return null;
234            default: return "?";
235          }
236        }
237        public String getDisplay() {
238          switch (this) {
239            case APPLICABILITY: return "Applicability";
240            case START: return "Start";
241            case STOP: return "Stop";
242            case NULL: return null;
243            default: return "?";
244          }
245        }
246    }
247
248  public static class ActionConditionKindEnumFactory implements EnumFactory<ActionConditionKind> {
249    public ActionConditionKind fromCode(String codeString) throws IllegalArgumentException {
250      if (codeString == null || "".equals(codeString))
251            if (codeString == null || "".equals(codeString))
252                return null;
253        if ("applicability".equals(codeString))
254          return ActionConditionKind.APPLICABILITY;
255        if ("start".equals(codeString))
256          return ActionConditionKind.START;
257        if ("stop".equals(codeString))
258          return ActionConditionKind.STOP;
259        throw new IllegalArgumentException("Unknown ActionConditionKind code '"+codeString+"'");
260        }
261        public Enumeration<ActionConditionKind> fromType(PrimitiveType<?> code) throws FHIRException {
262          if (code == null)
263            return null;
264          if (code.isEmpty())
265            return new Enumeration<ActionConditionKind>(this, ActionConditionKind.NULL, code);
266          String codeString = ((PrimitiveType) code).asStringValue();
267          if (codeString == null || "".equals(codeString))
268            return new Enumeration<ActionConditionKind>(this, ActionConditionKind.NULL, code);
269        if ("applicability".equals(codeString))
270          return new Enumeration<ActionConditionKind>(this, ActionConditionKind.APPLICABILITY, code);
271        if ("start".equals(codeString))
272          return new Enumeration<ActionConditionKind>(this, ActionConditionKind.START, code);
273        if ("stop".equals(codeString))
274          return new Enumeration<ActionConditionKind>(this, ActionConditionKind.STOP, code);
275        throw new FHIRException("Unknown ActionConditionKind code '"+codeString+"'");
276        }
277    public String toCode(ActionConditionKind code) {
278      if (code == ActionConditionKind.APPLICABILITY)
279        return "applicability";
280      if (code == ActionConditionKind.START)
281        return "start";
282      if (code == ActionConditionKind.STOP)
283        return "stop";
284      return "?";
285      }
286    public String toSystem(ActionConditionKind code) {
287      return code.getSystem();
288      }
289    }
290
291    public enum ActionGroupingBehavior {
292        /**
293         * Any group marked with this behavior should be displayed as a visual group to the end user.
294         */
295        VISUALGROUP, 
296        /**
297         * A group with this behavior logically groups its sub-elements, and may be shown as a visual group to the end user, but it is not required to do so.
298         */
299        LOGICALGROUP, 
300        /**
301         * A group of related alternative actions is a sentence group if the target referenced by the action is the same in all the actions and each action simply constitutes a different variation on how to specify the details for the target. For example, two actions that could be in a SentenceGroup are "aspirin, 500 mg, 2 times per day" and "aspirin, 300 mg, 3 times per day". In both cases, aspirin is the target referenced by the action, and the two actions represent different options for how aspirin might be ordered for the patient. Note that a SentenceGroup would almost always have an associated selection behavior of "AtMostOne", unless it's a required action, in which case, it would be "ExactlyOne".
302         */
303        SENTENCEGROUP, 
304        /**
305         * added to help the parsers
306         */
307        NULL;
308        public static ActionGroupingBehavior fromCode(String codeString) throws FHIRException {
309            if (codeString == null || "".equals(codeString))
310                return null;
311        if ("visual-group".equals(codeString))
312          return VISUALGROUP;
313        if ("logical-group".equals(codeString))
314          return LOGICALGROUP;
315        if ("sentence-group".equals(codeString))
316          return SENTENCEGROUP;
317        throw new FHIRException("Unknown ActionGroupingBehavior code '"+codeString+"'");
318        }
319        public String toCode() {
320          switch (this) {
321            case VISUALGROUP: return "visual-group";
322            case LOGICALGROUP: return "logical-group";
323            case SENTENCEGROUP: return "sentence-group";
324            case NULL: return null;
325            default: return "?";
326          }
327        }
328        public String getSystem() {
329          switch (this) {
330            case VISUALGROUP: return "http://hl7.org/fhir/action-grouping-behavior";
331            case LOGICALGROUP: return "http://hl7.org/fhir/action-grouping-behavior";
332            case SENTENCEGROUP: return "http://hl7.org/fhir/action-grouping-behavior";
333            case NULL: return null;
334            default: return "?";
335          }
336        }
337        public String getDefinition() {
338          switch (this) {
339            case VISUALGROUP: return "Any group marked with this behavior should be displayed as a visual group to the end user.";
340            case LOGICALGROUP: return "A group with this behavior logically groups its sub-elements, and may be shown as a visual group to the end user, but it is not required to do so.";
341            case SENTENCEGROUP: return "A group of related alternative actions is a sentence group if the target referenced by the action is the same in all the actions and each action simply constitutes a different variation on how to specify the details for the target. For example, two actions that could be in a SentenceGroup are \"aspirin, 500 mg, 2 times per day\" and \"aspirin, 300 mg, 3 times per day\". In both cases, aspirin is the target referenced by the action, and the two actions represent different options for how aspirin might be ordered for the patient. Note that a SentenceGroup would almost always have an associated selection behavior of \"AtMostOne\", unless it's a required action, in which case, it would be \"ExactlyOne\".";
342            case NULL: return null;
343            default: return "?";
344          }
345        }
346        public String getDisplay() {
347          switch (this) {
348            case VISUALGROUP: return "Visual Group";
349            case LOGICALGROUP: return "Logical Group";
350            case SENTENCEGROUP: return "Sentence Group";
351            case NULL: return null;
352            default: return "?";
353          }
354        }
355    }
356
357  public static class ActionGroupingBehaviorEnumFactory implements EnumFactory<ActionGroupingBehavior> {
358    public ActionGroupingBehavior fromCode(String codeString) throws IllegalArgumentException {
359      if (codeString == null || "".equals(codeString))
360            if (codeString == null || "".equals(codeString))
361                return null;
362        if ("visual-group".equals(codeString))
363          return ActionGroupingBehavior.VISUALGROUP;
364        if ("logical-group".equals(codeString))
365          return ActionGroupingBehavior.LOGICALGROUP;
366        if ("sentence-group".equals(codeString))
367          return ActionGroupingBehavior.SENTENCEGROUP;
368        throw new IllegalArgumentException("Unknown ActionGroupingBehavior code '"+codeString+"'");
369        }
370        public Enumeration<ActionGroupingBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
371          if (code == null)
372            return null;
373          if (code.isEmpty())
374            return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.NULL, code);
375          String codeString = ((PrimitiveType) code).asStringValue();
376          if (codeString == null || "".equals(codeString))
377            return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.NULL, code);
378        if ("visual-group".equals(codeString))
379          return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.VISUALGROUP, code);
380        if ("logical-group".equals(codeString))
381          return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.LOGICALGROUP, code);
382        if ("sentence-group".equals(codeString))
383          return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.SENTENCEGROUP, code);
384        throw new FHIRException("Unknown ActionGroupingBehavior code '"+codeString+"'");
385        }
386    public String toCode(ActionGroupingBehavior code) {
387      if (code == ActionGroupingBehavior.VISUALGROUP)
388        return "visual-group";
389      if (code == ActionGroupingBehavior.LOGICALGROUP)
390        return "logical-group";
391      if (code == ActionGroupingBehavior.SENTENCEGROUP)
392        return "sentence-group";
393      return "?";
394      }
395    public String toSystem(ActionGroupingBehavior code) {
396      return code.getSystem();
397      }
398    }
399
400    public enum ActionParticipantType {
401        /**
402         * The participant is a care team caring for the patient under evaluation.
403         */
404        CARETEAM, 
405        /**
406         * The participant is a system or device used in the care of the patient.
407         */
408        DEVICE, 
409        /**
410         * The participant is a group of participants involved in the care of the patient.
411         */
412        GROUP, 
413        /**
414         * The participant is an institution that can provide the given healthcare service used in the care of the patient.
415         */
416        HEALTHCARESERVICE, 
417        /**
418         * The participant is a location involved in the care of the patient.
419         */
420        LOCATION, 
421        /**
422         * The participant is an organization involved in the care of the patient.
423         */
424        ORGANIZATION, 
425        /**
426         * The participant is the patient under evaluation.
427         */
428        PATIENT, 
429        /**
430         * The participant is a practitioner involved in the patient's care.
431         */
432        PRACTITIONER, 
433        /**
434         * The participant is a particular practitioner role involved in the patient's care.
435         */
436        PRACTITIONERROLE, 
437        /**
438         * The participant is a person related to the patient.
439         */
440        RELATEDPERSON, 
441        /**
442         * added to help the parsers
443         */
444        NULL;
445        public static ActionParticipantType fromCode(String codeString) throws FHIRException {
446            if (codeString == null || "".equals(codeString))
447                return null;
448        if ("careteam".equals(codeString))
449          return CARETEAM;
450        if ("device".equals(codeString))
451          return DEVICE;
452        if ("group".equals(codeString))
453          return GROUP;
454        if ("healthcareservice".equals(codeString))
455          return HEALTHCARESERVICE;
456        if ("location".equals(codeString))
457          return LOCATION;
458        if ("organization".equals(codeString))
459          return ORGANIZATION;
460        if ("patient".equals(codeString))
461          return PATIENT;
462        if ("practitioner".equals(codeString))
463          return PRACTITIONER;
464        if ("practitionerrole".equals(codeString))
465          return PRACTITIONERROLE;
466        if ("relatedperson".equals(codeString))
467          return RELATEDPERSON;
468        throw new FHIRException("Unknown ActionParticipantType code '"+codeString+"'");
469        }
470        public String toCode() {
471          switch (this) {
472            case CARETEAM: return "careteam";
473            case DEVICE: return "device";
474            case GROUP: return "group";
475            case HEALTHCARESERVICE: return "healthcareservice";
476            case LOCATION: return "location";
477            case ORGANIZATION: return "organization";
478            case PATIENT: return "patient";
479            case PRACTITIONER: return "practitioner";
480            case PRACTITIONERROLE: return "practitionerrole";
481            case RELATEDPERSON: return "relatedperson";
482            case NULL: return null;
483            default: return "?";
484          }
485        }
486        public String getSystem() {
487          switch (this) {
488            case CARETEAM: return "http://hl7.org/fhir/action-participant-type";
489            case DEVICE: return "http://hl7.org/fhir/action-participant-type";
490            case GROUP: return "http://hl7.org/fhir/action-participant-type";
491            case HEALTHCARESERVICE: return "http://hl7.org/fhir/action-participant-type";
492            case LOCATION: return "http://hl7.org/fhir/action-participant-type";
493            case ORGANIZATION: return "http://hl7.org/fhir/action-participant-type";
494            case PATIENT: return "http://hl7.org/fhir/action-participant-type";
495            case PRACTITIONER: return "http://hl7.org/fhir/action-participant-type";
496            case PRACTITIONERROLE: return "http://hl7.org/fhir/action-participant-type";
497            case RELATEDPERSON: return "http://hl7.org/fhir/action-participant-type";
498            case NULL: return null;
499            default: return "?";
500          }
501        }
502        public String getDefinition() {
503          switch (this) {
504            case CARETEAM: return "The participant is a care team caring for the patient under evaluation.";
505            case DEVICE: return "The participant is a system or device used in the care of the patient.";
506            case GROUP: return "The participant is a group of participants involved in the care of the patient.";
507            case HEALTHCARESERVICE: return "The participant is an institution that can provide the given healthcare service used in the care of the patient.";
508            case LOCATION: return "The participant is a location involved in the care of the patient.";
509            case ORGANIZATION: return "The participant is an organization involved in the care of the patient.";
510            case PATIENT: return "The participant is the patient under evaluation.";
511            case PRACTITIONER: return "The participant is a practitioner involved in the patient's care.";
512            case PRACTITIONERROLE: return "The participant is a particular practitioner role involved in the patient's care.";
513            case RELATEDPERSON: return "The participant is a person related to the patient.";
514            case NULL: return null;
515            default: return "?";
516          }
517        }
518        public String getDisplay() {
519          switch (this) {
520            case CARETEAM: return "CareTeam";
521            case DEVICE: return "Device";
522            case GROUP: return "Group";
523            case HEALTHCARESERVICE: return "HealthcareService";
524            case LOCATION: return "Location";
525            case ORGANIZATION: return "Organization";
526            case PATIENT: return "Patient";
527            case PRACTITIONER: return "Practitioner";
528            case PRACTITIONERROLE: return "PractitionerRole";
529            case RELATEDPERSON: return "RelatedPerson";
530            case NULL: return null;
531            default: return "?";
532          }
533        }
534    }
535
536  public static class ActionParticipantTypeEnumFactory implements EnumFactory<ActionParticipantType> {
537    public ActionParticipantType fromCode(String codeString) throws IllegalArgumentException {
538      if (codeString == null || "".equals(codeString))
539            if (codeString == null || "".equals(codeString))
540                return null;
541        if ("careteam".equals(codeString))
542          return ActionParticipantType.CARETEAM;
543        if ("device".equals(codeString))
544          return ActionParticipantType.DEVICE;
545        if ("group".equals(codeString))
546          return ActionParticipantType.GROUP;
547        if ("healthcareservice".equals(codeString))
548          return ActionParticipantType.HEALTHCARESERVICE;
549        if ("location".equals(codeString))
550          return ActionParticipantType.LOCATION;
551        if ("organization".equals(codeString))
552          return ActionParticipantType.ORGANIZATION;
553        if ("patient".equals(codeString))
554          return ActionParticipantType.PATIENT;
555        if ("practitioner".equals(codeString))
556          return ActionParticipantType.PRACTITIONER;
557        if ("practitionerrole".equals(codeString))
558          return ActionParticipantType.PRACTITIONERROLE;
559        if ("relatedperson".equals(codeString))
560          return ActionParticipantType.RELATEDPERSON;
561        throw new IllegalArgumentException("Unknown ActionParticipantType code '"+codeString+"'");
562        }
563        public Enumeration<ActionParticipantType> fromType(PrimitiveType<?> code) throws FHIRException {
564          if (code == null)
565            return null;
566          if (code.isEmpty())
567            return new Enumeration<ActionParticipantType>(this, ActionParticipantType.NULL, code);
568          String codeString = ((PrimitiveType) code).asStringValue();
569          if (codeString == null || "".equals(codeString))
570            return new Enumeration<ActionParticipantType>(this, ActionParticipantType.NULL, code);
571        if ("careteam".equals(codeString))
572          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.CARETEAM, code);
573        if ("device".equals(codeString))
574          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.DEVICE, code);
575        if ("group".equals(codeString))
576          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.GROUP, code);
577        if ("healthcareservice".equals(codeString))
578          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.HEALTHCARESERVICE, code);
579        if ("location".equals(codeString))
580          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.LOCATION, code);
581        if ("organization".equals(codeString))
582          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.ORGANIZATION, code);
583        if ("patient".equals(codeString))
584          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.PATIENT, code);
585        if ("practitioner".equals(codeString))
586          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.PRACTITIONER, code);
587        if ("practitionerrole".equals(codeString))
588          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.PRACTITIONERROLE, code);
589        if ("relatedperson".equals(codeString))
590          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.RELATEDPERSON, code);
591        throw new FHIRException("Unknown ActionParticipantType code '"+codeString+"'");
592        }
593    public String toCode(ActionParticipantType code) {
594      if (code == ActionParticipantType.CARETEAM)
595        return "careteam";
596      if (code == ActionParticipantType.DEVICE)
597        return "device";
598      if (code == ActionParticipantType.GROUP)
599        return "group";
600      if (code == ActionParticipantType.HEALTHCARESERVICE)
601        return "healthcareservice";
602      if (code == ActionParticipantType.LOCATION)
603        return "location";
604      if (code == ActionParticipantType.ORGANIZATION)
605        return "organization";
606      if (code == ActionParticipantType.PATIENT)
607        return "patient";
608      if (code == ActionParticipantType.PRACTITIONER)
609        return "practitioner";
610      if (code == ActionParticipantType.PRACTITIONERROLE)
611        return "practitionerrole";
612      if (code == ActionParticipantType.RELATEDPERSON)
613        return "relatedperson";
614      return "?";
615      }
616    public String toSystem(ActionParticipantType code) {
617      return code.getSystem();
618      }
619    }
620
621    public enum ActionPrecheckBehavior {
622        /**
623         * An action with this behavior is one of the most frequent action that is, or should be, included by an end user, for the particular context in which the action occurs. The system displaying the action to the end user should consider "pre-checking" such an action as a convenience for the user.
624         */
625        YES, 
626        /**
627         * An action with this behavior is one of the less frequent actions included by the end user, for the particular context in which the action occurs. The system displaying the actions to the end user would typically not "pre-check" such an action.
628         */
629        NO, 
630        /**
631         * added to help the parsers
632         */
633        NULL;
634        public static ActionPrecheckBehavior fromCode(String codeString) throws FHIRException {
635            if (codeString == null || "".equals(codeString))
636                return null;
637        if ("yes".equals(codeString))
638          return YES;
639        if ("no".equals(codeString))
640          return NO;
641        throw new FHIRException("Unknown ActionPrecheckBehavior code '"+codeString+"'");
642        }
643        public String toCode() {
644          switch (this) {
645            case YES: return "yes";
646            case NO: return "no";
647            case NULL: return null;
648            default: return "?";
649          }
650        }
651        public String getSystem() {
652          switch (this) {
653            case YES: return "http://hl7.org/fhir/action-precheck-behavior";
654            case NO: return "http://hl7.org/fhir/action-precheck-behavior";
655            case NULL: return null;
656            default: return "?";
657          }
658        }
659        public String getDefinition() {
660          switch (this) {
661            case YES: return "An action with this behavior is one of the most frequent action that is, or should be, included by an end user, for the particular context in which the action occurs. The system displaying the action to the end user should consider \"pre-checking\" such an action as a convenience for the user.";
662            case NO: return "An action with this behavior is one of the less frequent actions included by the end user, for the particular context in which the action occurs. The system displaying the actions to the end user would typically not \"pre-check\" such an action.";
663            case NULL: return null;
664            default: return "?";
665          }
666        }
667        public String getDisplay() {
668          switch (this) {
669            case YES: return "Yes";
670            case NO: return "No";
671            case NULL: return null;
672            default: return "?";
673          }
674        }
675    }
676
677  public static class ActionPrecheckBehaviorEnumFactory implements EnumFactory<ActionPrecheckBehavior> {
678    public ActionPrecheckBehavior fromCode(String codeString) throws IllegalArgumentException {
679      if (codeString == null || "".equals(codeString))
680            if (codeString == null || "".equals(codeString))
681                return null;
682        if ("yes".equals(codeString))
683          return ActionPrecheckBehavior.YES;
684        if ("no".equals(codeString))
685          return ActionPrecheckBehavior.NO;
686        throw new IllegalArgumentException("Unknown ActionPrecheckBehavior code '"+codeString+"'");
687        }
688        public Enumeration<ActionPrecheckBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
689          if (code == null)
690            return null;
691          if (code.isEmpty())
692            return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.NULL, code);
693          String codeString = ((PrimitiveType) code).asStringValue();
694          if (codeString == null || "".equals(codeString))
695            return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.NULL, code);
696        if ("yes".equals(codeString))
697          return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.YES, code);
698        if ("no".equals(codeString))
699          return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.NO, code);
700        throw new FHIRException("Unknown ActionPrecheckBehavior code '"+codeString+"'");
701        }
702    public String toCode(ActionPrecheckBehavior code) {
703      if (code == ActionPrecheckBehavior.YES)
704        return "yes";
705      if (code == ActionPrecheckBehavior.NO)
706        return "no";
707      return "?";
708      }
709    public String toSystem(ActionPrecheckBehavior code) {
710      return code.getSystem();
711      }
712    }
713
714    public enum ActionRelationshipType {
715        /**
716         * The action must be performed before the start of the related action.
717         */
718        BEFORESTART, 
719        /**
720         * The action must be performed before the related action.
721         */
722        BEFORE, 
723        /**
724         * The action must be performed before the end of the related action.
725         */
726        BEFOREEND, 
727        /**
728         * The action must be performed concurrent with the start of the related action.
729         */
730        CONCURRENTWITHSTART, 
731        /**
732         * The action must be performed concurrent with the related action.
733         */
734        CONCURRENT, 
735        /**
736         * The action must be performed concurrent with the end of the related action.
737         */
738        CONCURRENTWITHEND, 
739        /**
740         * The action must be performed after the start of the related action.
741         */
742        AFTERSTART, 
743        /**
744         * The action must be performed after the related action.
745         */
746        AFTER, 
747        /**
748         * The action must be performed after the end of the related action.
749         */
750        AFTEREND, 
751        /**
752         * added to help the parsers
753         */
754        NULL;
755        public static ActionRelationshipType fromCode(String codeString) throws FHIRException {
756            if (codeString == null || "".equals(codeString))
757                return null;
758        if ("before-start".equals(codeString))
759          return BEFORESTART;
760        if ("before".equals(codeString))
761          return BEFORE;
762        if ("before-end".equals(codeString))
763          return BEFOREEND;
764        if ("concurrent-with-start".equals(codeString))
765          return CONCURRENTWITHSTART;
766        if ("concurrent".equals(codeString))
767          return CONCURRENT;
768        if ("concurrent-with-end".equals(codeString))
769          return CONCURRENTWITHEND;
770        if ("after-start".equals(codeString))
771          return AFTERSTART;
772        if ("after".equals(codeString))
773          return AFTER;
774        if ("after-end".equals(codeString))
775          return AFTEREND;
776        throw new FHIRException("Unknown ActionRelationshipType code '"+codeString+"'");
777        }
778        public String toCode() {
779          switch (this) {
780            case BEFORESTART: return "before-start";
781            case BEFORE: return "before";
782            case BEFOREEND: return "before-end";
783            case CONCURRENTWITHSTART: return "concurrent-with-start";
784            case CONCURRENT: return "concurrent";
785            case CONCURRENTWITHEND: return "concurrent-with-end";
786            case AFTERSTART: return "after-start";
787            case AFTER: return "after";
788            case AFTEREND: return "after-end";
789            case NULL: return null;
790            default: return "?";
791          }
792        }
793        public String getSystem() {
794          switch (this) {
795            case BEFORESTART: return "http://hl7.org/fhir/action-relationship-type";
796            case BEFORE: return "http://hl7.org/fhir/action-relationship-type";
797            case BEFOREEND: return "http://hl7.org/fhir/action-relationship-type";
798            case CONCURRENTWITHSTART: return "http://hl7.org/fhir/action-relationship-type";
799            case CONCURRENT: return "http://hl7.org/fhir/action-relationship-type";
800            case CONCURRENTWITHEND: return "http://hl7.org/fhir/action-relationship-type";
801            case AFTERSTART: return "http://hl7.org/fhir/action-relationship-type";
802            case AFTER: return "http://hl7.org/fhir/action-relationship-type";
803            case AFTEREND: return "http://hl7.org/fhir/action-relationship-type";
804            case NULL: return null;
805            default: return "?";
806          }
807        }
808        public String getDefinition() {
809          switch (this) {
810            case BEFORESTART: return "The action must be performed before the start of the related action.";
811            case BEFORE: return "The action must be performed before the related action.";
812            case BEFOREEND: return "The action must be performed before the end of the related action.";
813            case CONCURRENTWITHSTART: return "The action must be performed concurrent with the start of the related action.";
814            case CONCURRENT: return "The action must be performed concurrent with the related action.";
815            case CONCURRENTWITHEND: return "The action must be performed concurrent with the end of the related action.";
816            case AFTERSTART: return "The action must be performed after the start of the related action.";
817            case AFTER: return "The action must be performed after the related action.";
818            case AFTEREND: return "The action must be performed after the end of the related action.";
819            case NULL: return null;
820            default: return "?";
821          }
822        }
823        public String getDisplay() {
824          switch (this) {
825            case BEFORESTART: return "Before Start";
826            case BEFORE: return "Before";
827            case BEFOREEND: return "Before End";
828            case CONCURRENTWITHSTART: return "Concurrent With Start";
829            case CONCURRENT: return "Concurrent";
830            case CONCURRENTWITHEND: return "Concurrent With End";
831            case AFTERSTART: return "After Start";
832            case AFTER: return "After";
833            case AFTEREND: return "After End";
834            case NULL: return null;
835            default: return "?";
836          }
837        }
838    }
839
840  public static class ActionRelationshipTypeEnumFactory implements EnumFactory<ActionRelationshipType> {
841    public ActionRelationshipType fromCode(String codeString) throws IllegalArgumentException {
842      if (codeString == null || "".equals(codeString))
843            if (codeString == null || "".equals(codeString))
844                return null;
845        if ("before-start".equals(codeString))
846          return ActionRelationshipType.BEFORESTART;
847        if ("before".equals(codeString))
848          return ActionRelationshipType.BEFORE;
849        if ("before-end".equals(codeString))
850          return ActionRelationshipType.BEFOREEND;
851        if ("concurrent-with-start".equals(codeString))
852          return ActionRelationshipType.CONCURRENTWITHSTART;
853        if ("concurrent".equals(codeString))
854          return ActionRelationshipType.CONCURRENT;
855        if ("concurrent-with-end".equals(codeString))
856          return ActionRelationshipType.CONCURRENTWITHEND;
857        if ("after-start".equals(codeString))
858          return ActionRelationshipType.AFTERSTART;
859        if ("after".equals(codeString))
860          return ActionRelationshipType.AFTER;
861        if ("after-end".equals(codeString))
862          return ActionRelationshipType.AFTEREND;
863        throw new IllegalArgumentException("Unknown ActionRelationshipType code '"+codeString+"'");
864        }
865        public Enumeration<ActionRelationshipType> fromType(PrimitiveType<?> code) throws FHIRException {
866          if (code == null)
867            return null;
868          if (code.isEmpty())
869            return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.NULL, code);
870          String codeString = ((PrimitiveType) code).asStringValue();
871          if (codeString == null || "".equals(codeString))
872            return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.NULL, code);
873        if ("before-start".equals(codeString))
874          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.BEFORESTART, code);
875        if ("before".equals(codeString))
876          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.BEFORE, code);
877        if ("before-end".equals(codeString))
878          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.BEFOREEND, code);
879        if ("concurrent-with-start".equals(codeString))
880          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.CONCURRENTWITHSTART, code);
881        if ("concurrent".equals(codeString))
882          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.CONCURRENT, code);
883        if ("concurrent-with-end".equals(codeString))
884          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.CONCURRENTWITHEND, code);
885        if ("after-start".equals(codeString))
886          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.AFTERSTART, code);
887        if ("after".equals(codeString))
888          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.AFTER, code);
889        if ("after-end".equals(codeString))
890          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.AFTEREND, code);
891        throw new FHIRException("Unknown ActionRelationshipType code '"+codeString+"'");
892        }
893    public String toCode(ActionRelationshipType code) {
894      if (code == ActionRelationshipType.BEFORESTART)
895        return "before-start";
896      if (code == ActionRelationshipType.BEFORE)
897        return "before";
898      if (code == ActionRelationshipType.BEFOREEND)
899        return "before-end";
900      if (code == ActionRelationshipType.CONCURRENTWITHSTART)
901        return "concurrent-with-start";
902      if (code == ActionRelationshipType.CONCURRENT)
903        return "concurrent";
904      if (code == ActionRelationshipType.CONCURRENTWITHEND)
905        return "concurrent-with-end";
906      if (code == ActionRelationshipType.AFTERSTART)
907        return "after-start";
908      if (code == ActionRelationshipType.AFTER)
909        return "after";
910      if (code == ActionRelationshipType.AFTEREND)
911        return "after-end";
912      return "?";
913      }
914    public String toSystem(ActionRelationshipType code) {
915      return code.getSystem();
916      }
917    }
918
919    public enum ActionRequiredBehavior {
920        /**
921         * An action with this behavior must be included in the actions processed by the end user; the end user SHALL NOT choose not to include this action.
922         */
923        MUST, 
924        /**
925         * An action with this behavior may be included in the set of actions processed by the end user.
926         */
927        COULD, 
928        /**
929         * An action with this behavior must be included in the set of actions processed by the end user, unless the end user provides documentation as to why the action was not included.
930         */
931        MUSTUNLESSDOCUMENTED, 
932        /**
933         * added to help the parsers
934         */
935        NULL;
936        public static ActionRequiredBehavior fromCode(String codeString) throws FHIRException {
937            if (codeString == null || "".equals(codeString))
938                return null;
939        if ("must".equals(codeString))
940          return MUST;
941        if ("could".equals(codeString))
942          return COULD;
943        if ("must-unless-documented".equals(codeString))
944          return MUSTUNLESSDOCUMENTED;
945        throw new FHIRException("Unknown ActionRequiredBehavior code '"+codeString+"'");
946        }
947        public String toCode() {
948          switch (this) {
949            case MUST: return "must";
950            case COULD: return "could";
951            case MUSTUNLESSDOCUMENTED: return "must-unless-documented";
952            case NULL: return null;
953            default: return "?";
954          }
955        }
956        public String getSystem() {
957          switch (this) {
958            case MUST: return "http://hl7.org/fhir/action-required-behavior";
959            case COULD: return "http://hl7.org/fhir/action-required-behavior";
960            case MUSTUNLESSDOCUMENTED: return "http://hl7.org/fhir/action-required-behavior";
961            case NULL: return null;
962            default: return "?";
963          }
964        }
965        public String getDefinition() {
966          switch (this) {
967            case MUST: return "An action with this behavior must be included in the actions processed by the end user; the end user SHALL NOT choose not to include this action.";
968            case COULD: return "An action with this behavior may be included in the set of actions processed by the end user.";
969            case MUSTUNLESSDOCUMENTED: return "An action with this behavior must be included in the set of actions processed by the end user, unless the end user provides documentation as to why the action was not included.";
970            case NULL: return null;
971            default: return "?";
972          }
973        }
974        public String getDisplay() {
975          switch (this) {
976            case MUST: return "Must";
977            case COULD: return "Could";
978            case MUSTUNLESSDOCUMENTED: return "Must Unless Documented";
979            case NULL: return null;
980            default: return "?";
981          }
982        }
983    }
984
985  public static class ActionRequiredBehaviorEnumFactory implements EnumFactory<ActionRequiredBehavior> {
986    public ActionRequiredBehavior fromCode(String codeString) throws IllegalArgumentException {
987      if (codeString == null || "".equals(codeString))
988            if (codeString == null || "".equals(codeString))
989                return null;
990        if ("must".equals(codeString))
991          return ActionRequiredBehavior.MUST;
992        if ("could".equals(codeString))
993          return ActionRequiredBehavior.COULD;
994        if ("must-unless-documented".equals(codeString))
995          return ActionRequiredBehavior.MUSTUNLESSDOCUMENTED;
996        throw new IllegalArgumentException("Unknown ActionRequiredBehavior code '"+codeString+"'");
997        }
998        public Enumeration<ActionRequiredBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
999          if (code == null)
1000            return null;
1001          if (code.isEmpty())
1002            return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.NULL, code);
1003          String codeString = ((PrimitiveType) code).asStringValue();
1004          if (codeString == null || "".equals(codeString))
1005            return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.NULL, code);
1006        if ("must".equals(codeString))
1007          return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.MUST, code);
1008        if ("could".equals(codeString))
1009          return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.COULD, code);
1010        if ("must-unless-documented".equals(codeString))
1011          return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.MUSTUNLESSDOCUMENTED, code);
1012        throw new FHIRException("Unknown ActionRequiredBehavior code '"+codeString+"'");
1013        }
1014    public String toCode(ActionRequiredBehavior code) {
1015      if (code == ActionRequiredBehavior.MUST)
1016        return "must";
1017      if (code == ActionRequiredBehavior.COULD)
1018        return "could";
1019      if (code == ActionRequiredBehavior.MUSTUNLESSDOCUMENTED)
1020        return "must-unless-documented";
1021      return "?";
1022      }
1023    public String toSystem(ActionRequiredBehavior code) {
1024      return code.getSystem();
1025      }
1026    }
1027
1028    public enum ActionSelectionBehavior {
1029        /**
1030         * Any number of the actions in the group may be chosen, from zero to all.
1031         */
1032        ANY, 
1033        /**
1034         * All the actions in the group must be selected as a single unit.
1035         */
1036        ALL, 
1037        /**
1038         * All the actions in the group are meant to be chosen as a single unit: either all must be selected by the end user, or none may be selected.
1039         */
1040        ALLORNONE, 
1041        /**
1042         * The end user must choose one and only one of the selectable actions in the group. The user SHALL NOT choose none of the actions in the group.
1043         */
1044        EXACTLYONE, 
1045        /**
1046         * The end user may choose zero or at most one of the actions in the group.
1047         */
1048        ATMOSTONE, 
1049        /**
1050         * The end user must choose a minimum of one, and as many additional as desired.
1051         */
1052        ONEORMORE, 
1053        /**
1054         * added to help the parsers
1055         */
1056        NULL;
1057        public static ActionSelectionBehavior fromCode(String codeString) throws FHIRException {
1058            if (codeString == null || "".equals(codeString))
1059                return null;
1060        if ("any".equals(codeString))
1061          return ANY;
1062        if ("all".equals(codeString))
1063          return ALL;
1064        if ("all-or-none".equals(codeString))
1065          return ALLORNONE;
1066        if ("exactly-one".equals(codeString))
1067          return EXACTLYONE;
1068        if ("at-most-one".equals(codeString))
1069          return ATMOSTONE;
1070        if ("one-or-more".equals(codeString))
1071          return ONEORMORE;
1072        throw new FHIRException("Unknown ActionSelectionBehavior code '"+codeString+"'");
1073        }
1074        public String toCode() {
1075          switch (this) {
1076            case ANY: return "any";
1077            case ALL: return "all";
1078            case ALLORNONE: return "all-or-none";
1079            case EXACTLYONE: return "exactly-one";
1080            case ATMOSTONE: return "at-most-one";
1081            case ONEORMORE: return "one-or-more";
1082            case NULL: return null;
1083            default: return "?";
1084          }
1085        }
1086        public String getSystem() {
1087          switch (this) {
1088            case ANY: return "http://hl7.org/fhir/action-selection-behavior";
1089            case ALL: return "http://hl7.org/fhir/action-selection-behavior";
1090            case ALLORNONE: return "http://hl7.org/fhir/action-selection-behavior";
1091            case EXACTLYONE: return "http://hl7.org/fhir/action-selection-behavior";
1092            case ATMOSTONE: return "http://hl7.org/fhir/action-selection-behavior";
1093            case ONEORMORE: return "http://hl7.org/fhir/action-selection-behavior";
1094            case NULL: return null;
1095            default: return "?";
1096          }
1097        }
1098        public String getDefinition() {
1099          switch (this) {
1100            case ANY: return "Any number of the actions in the group may be chosen, from zero to all.";
1101            case ALL: return "All the actions in the group must be selected as a single unit.";
1102            case ALLORNONE: return "All the actions in the group are meant to be chosen as a single unit: either all must be selected by the end user, or none may be selected.";
1103            case EXACTLYONE: return "The end user must choose one and only one of the selectable actions in the group. The user SHALL NOT choose none of the actions in the group.";
1104            case ATMOSTONE: return "The end user may choose zero or at most one of the actions in the group.";
1105            case ONEORMORE: return "The end user must choose a minimum of one, and as many additional as desired.";
1106            case NULL: return null;
1107            default: return "?";
1108          }
1109        }
1110        public String getDisplay() {
1111          switch (this) {
1112            case ANY: return "Any";
1113            case ALL: return "All";
1114            case ALLORNONE: return "All Or None";
1115            case EXACTLYONE: return "Exactly One";
1116            case ATMOSTONE: return "At Most One";
1117            case ONEORMORE: return "One Or More";
1118            case NULL: return null;
1119            default: return "?";
1120          }
1121        }
1122    }
1123
1124  public static class ActionSelectionBehaviorEnumFactory implements EnumFactory<ActionSelectionBehavior> {
1125    public ActionSelectionBehavior fromCode(String codeString) throws IllegalArgumentException {
1126      if (codeString == null || "".equals(codeString))
1127            if (codeString == null || "".equals(codeString))
1128                return null;
1129        if ("any".equals(codeString))
1130          return ActionSelectionBehavior.ANY;
1131        if ("all".equals(codeString))
1132          return ActionSelectionBehavior.ALL;
1133        if ("all-or-none".equals(codeString))
1134          return ActionSelectionBehavior.ALLORNONE;
1135        if ("exactly-one".equals(codeString))
1136          return ActionSelectionBehavior.EXACTLYONE;
1137        if ("at-most-one".equals(codeString))
1138          return ActionSelectionBehavior.ATMOSTONE;
1139        if ("one-or-more".equals(codeString))
1140          return ActionSelectionBehavior.ONEORMORE;
1141        throw new IllegalArgumentException("Unknown ActionSelectionBehavior code '"+codeString+"'");
1142        }
1143        public Enumeration<ActionSelectionBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
1144          if (code == null)
1145            return null;
1146          if (code.isEmpty())
1147            return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.NULL, code);
1148          String codeString = ((PrimitiveType) code).asStringValue();
1149          if (codeString == null || "".equals(codeString))
1150            return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.NULL, code);
1151        if ("any".equals(codeString))
1152          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ANY, code);
1153        if ("all".equals(codeString))
1154          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ALL, code);
1155        if ("all-or-none".equals(codeString))
1156          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ALLORNONE, code);
1157        if ("exactly-one".equals(codeString))
1158          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.EXACTLYONE, code);
1159        if ("at-most-one".equals(codeString))
1160          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ATMOSTONE, code);
1161        if ("one-or-more".equals(codeString))
1162          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ONEORMORE, code);
1163        throw new FHIRException("Unknown ActionSelectionBehavior code '"+codeString+"'");
1164        }
1165    public String toCode(ActionSelectionBehavior code) {
1166      if (code == ActionSelectionBehavior.ANY)
1167        return "any";
1168      if (code == ActionSelectionBehavior.ALL)
1169        return "all";
1170      if (code == ActionSelectionBehavior.ALLORNONE)
1171        return "all-or-none";
1172      if (code == ActionSelectionBehavior.EXACTLYONE)
1173        return "exactly-one";
1174      if (code == ActionSelectionBehavior.ATMOSTONE)
1175        return "at-most-one";
1176      if (code == ActionSelectionBehavior.ONEORMORE)
1177        return "one-or-more";
1178      return "?";
1179      }
1180    public String toSystem(ActionSelectionBehavior code) {
1181      return code.getSystem();
1182      }
1183    }
1184
1185    public enum AdministrativeGender {
1186        /**
1187         * Male.
1188         */
1189        MALE, 
1190        /**
1191         * Female.
1192         */
1193        FEMALE, 
1194        /**
1195         * Other.
1196         */
1197        OTHER, 
1198        /**
1199         * Unknown.
1200         */
1201        UNKNOWN, 
1202        /**
1203         * added to help the parsers
1204         */
1205        NULL;
1206        public static AdministrativeGender fromCode(String codeString) throws FHIRException {
1207            if (codeString == null || "".equals(codeString))
1208                return null;
1209        if ("male".equals(codeString))
1210          return MALE;
1211        if ("female".equals(codeString))
1212          return FEMALE;
1213        if ("other".equals(codeString))
1214          return OTHER;
1215        if ("unknown".equals(codeString))
1216          return UNKNOWN;
1217        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
1218        }
1219        public String toCode() {
1220          switch (this) {
1221            case MALE: return "male";
1222            case FEMALE: return "female";
1223            case OTHER: return "other";
1224            case UNKNOWN: return "unknown";
1225            case NULL: return null;
1226            default: return "?";
1227          }
1228        }
1229        public String getSystem() {
1230          switch (this) {
1231            case MALE: return "http://hl7.org/fhir/administrative-gender";
1232            case FEMALE: return "http://hl7.org/fhir/administrative-gender";
1233            case OTHER: return "http://hl7.org/fhir/administrative-gender";
1234            case UNKNOWN: return "http://hl7.org/fhir/administrative-gender";
1235            case NULL: return null;
1236            default: return "?";
1237          }
1238        }
1239        public String getDefinition() {
1240          switch (this) {
1241            case MALE: return "Male.";
1242            case FEMALE: return "Female.";
1243            case OTHER: return "Other.";
1244            case UNKNOWN: return "Unknown.";
1245            case NULL: return null;
1246            default: return "?";
1247          }
1248        }
1249        public String getDisplay() {
1250          switch (this) {
1251            case MALE: return "Male";
1252            case FEMALE: return "Female";
1253            case OTHER: return "Other";
1254            case UNKNOWN: return "Unknown";
1255            case NULL: return null;
1256            default: return "?";
1257          }
1258        }
1259    }
1260
1261  public static class AdministrativeGenderEnumFactory implements EnumFactory<AdministrativeGender> {
1262    public AdministrativeGender fromCode(String codeString) throws IllegalArgumentException {
1263      if (codeString == null || "".equals(codeString))
1264            if (codeString == null || "".equals(codeString))
1265                return null;
1266        if ("male".equals(codeString))
1267          return AdministrativeGender.MALE;
1268        if ("female".equals(codeString))
1269          return AdministrativeGender.FEMALE;
1270        if ("other".equals(codeString))
1271          return AdministrativeGender.OTHER;
1272        if ("unknown".equals(codeString))
1273          return AdministrativeGender.UNKNOWN;
1274        throw new IllegalArgumentException("Unknown AdministrativeGender code '"+codeString+"'");
1275        }
1276        public Enumeration<AdministrativeGender> fromType(PrimitiveType<?> code) throws FHIRException {
1277          if (code == null)
1278            return null;
1279          if (code.isEmpty())
1280            return new Enumeration<AdministrativeGender>(this, AdministrativeGender.NULL, code);
1281          String codeString = ((PrimitiveType) code).asStringValue();
1282          if (codeString == null || "".equals(codeString))
1283            return new Enumeration<AdministrativeGender>(this, AdministrativeGender.NULL, code);
1284        if ("male".equals(codeString))
1285          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.MALE, code);
1286        if ("female".equals(codeString))
1287          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.FEMALE, code);
1288        if ("other".equals(codeString))
1289          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.OTHER, code);
1290        if ("unknown".equals(codeString))
1291          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.UNKNOWN, code);
1292        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
1293        }
1294    public String toCode(AdministrativeGender code) {
1295      if (code == AdministrativeGender.MALE)
1296        return "male";
1297      if (code == AdministrativeGender.FEMALE)
1298        return "female";
1299      if (code == AdministrativeGender.OTHER)
1300        return "other";
1301      if (code == AdministrativeGender.UNKNOWN)
1302        return "unknown";
1303      return "?";
1304      }
1305    public String toSystem(AdministrativeGender code) {
1306      return code.getSystem();
1307      }
1308    }
1309
1310    public enum AllResourceTypes {
1311        /**
1312         * 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.
1313         */
1314        ACCOUNT, 
1315        /**
1316         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
1317         */
1318        ACTIVITYDEFINITION, 
1319        /**
1320         * The ActorDefinition resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.
1321         */
1322        ACTORDEFINITION, 
1323        /**
1324         * A medicinal product in the final form which is suitable for administering to a patient (after any mixing of multiple components, dissolution etc. has been performed).
1325         */
1326        ADMINISTRABLEPRODUCTDEFINITION, 
1327        /**
1328         * An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research subject. The unintended effects may require additional monitoring, treatment, hospitalization, or may result in death. The AdverseEvent resource also extends to potential or avoided events that could have had such effects. There are two major domains where the AdverseEvent resource is expected to be used. One is in clinical care reported adverse events and the other is in reporting adverse events in clinical  research trial management. Given the differences between these two concepts, we recommend consulting the domain specific implementation guides when implementing the AdverseEvent Resource. The implementation guides include specific extensions, value sets and constraints.
1329         */
1330        ADVERSEEVENT, 
1331        /**
1332         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
1333         */
1334        ALLERGYINTOLERANCE, 
1335        /**
1336         * 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).
1337         */
1338        APPOINTMENT, 
1339        /**
1340         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
1341         */
1342        APPOINTMENTRESPONSE, 
1343        /**
1344         * This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.
1345         */
1346        ARTIFACTASSESSMENT, 
1347        /**
1348         * A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.
1349         */
1350        AUDITEVENT, 
1351        /**
1352         * 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.
1353         */
1354        BASIC, 
1355        /**
1356         * A resource that represents the data of a single raw artifact as digital content accessible in its native format.  A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.
1357         */
1358        BINARY, 
1359        /**
1360         * A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.
1361         */
1362        BIOLOGICALLYDERIVEDPRODUCT, 
1363        /**
1364         * Record details about an anatomical structure.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
1365         */
1366        BODYSTRUCTURE, 
1367        /**
1368         * A container for a collection of resources.
1369         */
1370        BUNDLE, 
1371        /**
1372         * Common Interface declaration for conformance and knowledge artifact resources.
1373         */
1374        CANONICALRESOURCE, 
1375        /**
1376         * A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server or Client for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
1377         */
1378        CAPABILITYSTATEMENT, 
1379        /**
1380         * 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.
1381         */
1382        CAREPLAN, 
1383        /**
1384         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.
1385         */
1386        CARETEAM, 
1387        /**
1388         * 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.
1389         */
1390        CHARGEITEM, 
1391        /**
1392         * The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system.
1393         */
1394        CHARGEITEMDEFINITION, 
1395        /**
1396         * The Citation Resource enables reference to any knowledge artifact for purposes of identification and attribution. The Citation Resource supports existing reference structures and developing publication practices such as versioning, expressing complex contributorship roles, and referencing computable resources.
1397         */
1398        CITATION, 
1399        /**
1400         * A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.
1401         */
1402        CLAIM, 
1403        /**
1404         * This resource provides the adjudication details from the processing of a Claim resource.
1405         */
1406        CLAIMRESPONSE, 
1407        /**
1408         * 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.
1409         */
1410        CLINICALIMPRESSION, 
1411        /**
1412         * A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.
1413         */
1414        CLINICALUSEDEFINITION, 
1415        /**
1416         * The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.
1417         */
1418        CODESYSTEM, 
1419        /**
1420         * A clinical or business level record of information being transmitted or shared; e.g. an alert that was sent to a responsible provider, a public health agency communication to a provider/reporter in response to a case report for a reportable condition.
1421         */
1422        COMMUNICATION, 
1423        /**
1424         * 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.
1425         */
1426        COMMUNICATIONREQUEST, 
1427        /**
1428         * A compartment definition that defines how resources are accessed on a server.
1429         */
1430        COMPARTMENTDEFINITION, 
1431        /**
1432         * A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).
1433         */
1434        COMPOSITION, 
1435        /**
1436         * A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.
1437         */
1438        CONCEPTMAP, 
1439        /**
1440         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
1441         */
1442        CONDITION, 
1443        /**
1444         * A definition of a condition and information relevant to managing it.
1445         */
1446        CONDITIONDEFINITION, 
1447        /**
1448         * A record of a healthcare consumer’s  choices  or choices made on their behalf by a third party, 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.
1449         */
1450        CONSENT, 
1451        /**
1452         * Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.
1453         */
1454        CONTRACT, 
1455        /**
1456         * Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.
1457         */
1458        COVERAGE, 
1459        /**
1460         * The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.
1461         */
1462        COVERAGEELIGIBILITYREQUEST, 
1463        /**
1464         * This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.
1465         */
1466        COVERAGEELIGIBILITYRESPONSE, 
1467        /**
1468         * 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.
1469         */
1470        DETECTEDISSUE, 
1471        /**
1472         * This resource describes the properties (regulated, has real time clock, etc.), adminstrative (manufacturer name, model number, serial number, firmware, etc), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serail number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element.
1473         */
1474        DEVICE, 
1475        /**
1476         * This is a specialized resource that defines the characteristics and capabilities of a device.
1477         */
1478        DEVICEDEFINITION, 
1479        /**
1480         * Indicates that a device is to be or has been dispensed for a named person/patient.  This includes a description of the product (supply) provided and the instructions for using the device.
1481         */
1482        DEVICEDISPENSE, 
1483        /**
1484         * Describes a measurement, calculation or setting capability of a medical device.
1485         */
1486        DEVICEMETRIC, 
1487        /**
1488         * Represents a request a device to be provided to a specific patient. The device may be an implantable device to be subsequently implanted, or an external assistive device, such as a walker, to be delivered and subsequently be used.
1489         */
1490        DEVICEREQUEST, 
1491        /**
1492         * A record of a device being used by a patient where the record is the result of a report from the patient or a clinician.
1493         */
1494        DEVICEUSAGE, 
1495        /**
1496         * The findings and interpretation of diagnostic tests performed on patients, groups of patients, products, substances, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports. The report also includes non-clinical context such as batch analysis and stability reporting of products and substances.
1497         */
1498        DIAGNOSTICREPORT, 
1499        /**
1500         * A collection of documents compiled for a purpose together with metadata that applies to the collection.
1501         */
1502        DOCUMENTMANIFEST, 
1503        /**
1504         * A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this "document" encompasses *any* serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare.  The DocumentReference resource provides metadata about the document so that the document can be discovered and managed.  The actual content may be inline base64 encoded data or provided by direct reference.
1505         */
1506        DOCUMENTREFERENCE, 
1507        /**
1508         * A resource that includes narrative, extensions, and contained resources.
1509         */
1510        DOMAINRESOURCE, 
1511        /**
1512         * An interaction between healthcare provider(s), and/or patient(s) for the purpose of providing healthcare service(s) or assessing the health status of patient(s).
1513         */
1514        ENCOUNTER, 
1515        /**
1516         * The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.
1517         */
1518        ENDPOINT, 
1519        /**
1520         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
1521         */
1522        ENROLLMENTREQUEST, 
1523        /**
1524         * This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.
1525         */
1526        ENROLLMENTRESPONSE, 
1527        /**
1528         * 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.
1529         */
1530        EPISODEOFCARE, 
1531        /**
1532         * The EventDefinition resource provides a reusable description of when a particular event can occur.
1533         */
1534        EVENTDEFINITION, 
1535        /**
1536         * The Evidence Resource provides a machine-interpretable expression of an evidence concept including the evidence variables (e.g., population, exposures/interventions, comparators, outcomes, measured variables, confounding variables), the statistics, and the certainty of this evidence.
1537         */
1538        EVIDENCE, 
1539        /**
1540         * The EvidenceReport Resource is a specialized container for a collection of resources and codeable concepts, adapted to support compositions of Evidence, EvidenceVariable, and Citation resources and related concepts.
1541         */
1542        EVIDENCEREPORT, 
1543        /**
1544         * The EvidenceVariable resource describes an element that knowledge (Evidence) is about.
1545         */
1546        EVIDENCEVARIABLE, 
1547        /**
1548         * A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
1549         */
1550        EXAMPLESCENARIO, 
1551        /**
1552         * 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.
1553         */
1554        EXPLANATIONOFBENEFIT, 
1555        /**
1556         * Significant health conditions for a person related to the patient relevant in the context of care for the patient.
1557         */
1558        FAMILYMEMBERHISTORY, 
1559        /**
1560         * Prospective warnings of potential issues when providing care to the patient.
1561         */
1562        FLAG, 
1563        /**
1564         * This resource describes a product or service that is available through a program and includes the conditions and constraints of availability.  All of the information in this resource is specific to the inclusion of the item in the formulary and is not inherent to the item itself.
1565         */
1566        FORMULARYITEM, 
1567        /**
1568         * A Genomic Study is a set of analysis performed to analyze and generate genomic data.
1569         */
1570        GENOMICSTUDY, 
1571        /**
1572         * 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.
1573         */
1574        GOAL, 
1575        /**
1576         * 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.
1577         */
1578        GRAPHDEFINITION, 
1579        /**
1580         * 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.
1581         */
1582        GROUP, 
1583        /**
1584         * 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.
1585         */
1586        GUIDANCERESPONSE, 
1587        /**
1588         * The details of a healthcare service available at a location or in a catalog.  In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices.
1589         */
1590        HEALTHCARESERVICE, 
1591        /**
1592         * A selection of DICOM SOP instances and/or frames within a single Study and Series. This might include additional specifics such as an image region, an Observation UID or a Segmentation Number, allowing linkage to an Observation Resource or transferring this information along with the ImagingStudy Resource.
1593         */
1594        IMAGINGSELECTION, 
1595        /**
1596         * 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.
1597         */
1598        IMAGINGSTUDY, 
1599        /**
1600         * Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
1601         */
1602        IMMUNIZATION, 
1603        /**
1604         * Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those  recommendations.
1605         */
1606        IMMUNIZATIONEVALUATION, 
1607        /**
1608         * A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.
1609         */
1610        IMMUNIZATIONRECOMMENDATION, 
1611        /**
1612         * A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
1613         */
1614        IMPLEMENTATIONGUIDE, 
1615        /**
1616         * An ingredient of a manufactured item or pharmaceutical product.
1617         */
1618        INGREDIENT, 
1619        /**
1620         * Details of a Health Insurance product/plan provided by an organization.
1621         */
1622        INSURANCEPLAN, 
1623        /**
1624         * A report of inventory or stock items.
1625         */
1626        INVENTORYREPORT, 
1627        /**
1628         * Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.
1629         */
1630        INVOICE, 
1631        /**
1632         * 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.
1633         */
1634        LIBRARY, 
1635        /**
1636         * Identifies two or more records (resource instances) that refer to the same real-world "occurrence".
1637         */
1638        LINKAGE, 
1639        /**
1640         * A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.
1641         */
1642        LIST, 
1643        /**
1644         * Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained, or accommodated.
1645         */
1646        LOCATION, 
1647        /**
1648         * The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.
1649         */
1650        MANUFACTUREDITEMDEFINITION, 
1651        /**
1652         * The Measure resource provides the definition of a quality measure.
1653         */
1654        MEASURE, 
1655        /**
1656         * The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.
1657         */
1658        MEASUREREPORT, 
1659        /**
1660         * This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.
1661         */
1662        MEDICATION, 
1663        /**
1664         * 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.
1665         */
1666        MEDICATIONADMINISTRATION, 
1667        /**
1668         * 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.
1669         */
1670        MEDICATIONDISPENSE, 
1671        /**
1672         * Information about a medication that is used to support knowledge.
1673         */
1674        MEDICATIONKNOWLEDGE, 
1675        /**
1676         * 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.
1677         */
1678        MEDICATIONREQUEST, 
1679        /**
1680         * A record of a medication that is being consumed by a patient.   A MedicationUsage 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. 
1681
1682The primary difference between a medicationusage and a medicationadministration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medicationusage 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 Usage 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.
1683         */
1684        MEDICATIONUSAGE, 
1685        /**
1686         * Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs, to support prescribing, adverse events management etc.).
1687         */
1688        MEDICINALPRODUCTDEFINITION, 
1689        /**
1690         * 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.
1691         */
1692        MESSAGEDEFINITION, 
1693        /**
1694         * 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.
1695         */
1696        MESSAGEHEADER, 
1697        /**
1698         * Common Interface declaration for conformance and knowledge artifact resources.
1699         */
1700        METADATARESOURCE, 
1701        /**
1702         * Representation of a molecular sequence.
1703         */
1704        MOLECULARSEQUENCE, 
1705        /**
1706         * 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.
1707         */
1708        NAMINGSYSTEM, 
1709        /**
1710         * A record of food or fluid that is being consumed by a patient.  A NutritionIntake may indicate that the patient may be consuming the food or fluid now or has consumed the food or fluid in the past.  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 or through an app that tracks food or fluids consumed.   The consumption information may come from sources such as the patient's memory, from a nutrition label,  or from a clinician documenting observed intake.
1711         */
1712        NUTRITIONINTAKE, 
1713        /**
1714         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
1715         */
1716        NUTRITIONORDER, 
1717        /**
1718         * A food or supplement that is consumed by patients.
1719         */
1720        NUTRITIONPRODUCT, 
1721        /**
1722         * Measurements and simple assertions made about a patient, device or other subject.
1723         */
1724        OBSERVATION, 
1725        /**
1726         * Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
1727         */
1728        OBSERVATIONDEFINITION, 
1729        /**
1730         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
1731         */
1732        OPERATIONDEFINITION, 
1733        /**
1734         * A collection of error, warning, or information messages that result from a system action.
1735         */
1736        OPERATIONOUTCOME, 
1737        /**
1738         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc.
1739         */
1740        ORGANIZATION, 
1741        /**
1742         * Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.
1743         */
1744        ORGANIZATIONAFFILIATION, 
1745        /**
1746         * A medically related item or items, in a container or package.
1747         */
1748        PACKAGEDPRODUCTDEFINITION, 
1749        /**
1750         * This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment).  It is not persisted or allowed to be referenced by other resources except as described in the definition of the Parameters resource.
1751         */
1752        PARAMETERS, 
1753        /**
1754         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
1755         */
1756        PATIENT, 
1757        /**
1758         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
1759         */
1760        PAYMENTNOTICE, 
1761        /**
1762         * This resource provides the details including amount of a payment and allocates the payment items being paid.
1763         */
1764        PAYMENTRECONCILIATION, 
1765        /**
1766         * Permission resource holds access rules for a given data and context.
1767         */
1768        PERMISSION, 
1769        /**
1770         * Demographics and administrative information about a person independent of a specific health-related context.
1771         */
1772        PERSON, 
1773        /**
1774         * 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 and non-clinical artifacts such as clinical decision support rules, order sets, protocols, and drug quality specifications.
1775         */
1776        PLANDEFINITION, 
1777        /**
1778         * A person who is directly or indirectly involved in the provisioning of healthcare or related services.
1779         */
1780        PRACTITIONER, 
1781        /**
1782         * A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.
1783         */
1784        PRACTITIONERROLE, 
1785        /**
1786         * An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy.  This can be a quality or safety inspection for a location, organization, or device.  This can be an accreditation procedure on a practitioner for licensing.
1787         */
1788        PROCEDURE, 
1789        /**
1790         * 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.
1791         */
1792        PROVENANCE, 
1793        /**
1794         * 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.
1795         */
1796        QUESTIONNAIRE, 
1797        /**
1798         * 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.
1799         */
1800        QUESTIONNAIRERESPONSE, 
1801        /**
1802         * Regulatory approval, clearance or licencing related to a regulated product, treatment, facility or activity that is cited in a guidance, regulation, rule or legislative act. An example is Market Authorization relating to a Medicinal Product.
1803         */
1804        REGULATEDAUTHORIZATION, 
1805        /**
1806         * Information about a person that is involved in a patient's health or the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
1807         */
1808        RELATEDPERSON, 
1809        /**
1810         * A set of related requests that can be used to capture intended activities that have inter-dependencies such as "give this medication after that one".
1811         */
1812        REQUESTORCHESTRATION, 
1813        /**
1814         * The Requirements resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.
1815         */
1816        REQUIREMENTS, 
1817        /**
1818         * A scientific study of nature that sometimes includes processes involved in health and disease. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future.
1819         */
1820        RESEARCHSTUDY, 
1821        /**
1822         * A physical entity which is the primary unit of operational and/or administrative interest in a study.
1823         */
1824        RESEARCHSUBJECT, 
1825        /**
1826         * This is the base resource type for everything.
1827         */
1828        RESOURCE, 
1829        /**
1830         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
1831         */
1832        RISKASSESSMENT, 
1833        /**
1834         * A container for slots of time that may be available for booking appointments.
1835         */
1836        SCHEDULE, 
1837        /**
1838         * A search parameter that defines a named search item that can be used to search/filter on a resource.
1839         */
1840        SEARCHPARAMETER, 
1841        /**
1842         * A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.
1843         */
1844        SERVICEREQUEST, 
1845        /**
1846         * A slot of time on a schedule that may be available for booking appointments.
1847         */
1848        SLOT, 
1849        /**
1850         * A sample to be used for analysis.
1851         */
1852        SPECIMEN, 
1853        /**
1854         * A kind of specimen with associated set of requirements.
1855         */
1856        SPECIMENDEFINITION, 
1857        /**
1858         * 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.
1859         */
1860        STRUCTUREDEFINITION, 
1861        /**
1862         * A Map of relationships between 2 structures that can be used to transform data.
1863         */
1864        STRUCTUREMAP, 
1865        /**
1866         * The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.
1867         */
1868        SUBSCRIPTION, 
1869        /**
1870         * The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.
1871         */
1872        SUBSCRIPTIONSTATUS, 
1873        /**
1874         * Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.
1875         */
1876        SUBSCRIPTIONTOPIC, 
1877        /**
1878         * A homogeneous material with a definite composition.
1879         */
1880        SUBSTANCE, 
1881        /**
1882         * The detailed description of a substance, typically at a level beyond what is used for prescribing.
1883         */
1884        SUBSTANCEDEFINITION, 
1885        /**
1886         * Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5’-3’ direction.
1887         */
1888        SUBSTANCENUCLEICACID, 
1889        /**
1890         * Properties of a substance specific to it being a polymer.
1891         */
1892        SUBSTANCEPOLYMER, 
1893        /**
1894         * A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators.
1895         */
1896        SUBSTANCEPROTEIN, 
1897        /**
1898         * Todo.
1899         */
1900        SUBSTANCEREFERENCEINFORMATION, 
1901        /**
1902         * Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex.
1903         */
1904        SUBSTANCESOURCEMATERIAL, 
1905        /**
1906         * Record of delivery of what is supplied.
1907         */
1908        SUPPLYDELIVERY, 
1909        /**
1910         * A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.
1911         */
1912        SUPPLYREQUEST, 
1913        /**
1914         * A task to be performed.
1915         */
1916        TASK, 
1917        /**
1918         * A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
1919         */
1920        TERMINOLOGYCAPABILITIES, 
1921        /**
1922         * A summary of information based on the results of executing a TestScript.
1923         */
1924        TESTREPORT, 
1925        /**
1926         * A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
1927         */
1928        TESTSCRIPT, 
1929        /**
1930         * Record of transport.
1931         */
1932        TRANSPORT, 
1933        /**
1934         * A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[[CodeSystem]]] definitions and their use in [coded elements](terminologies.html).
1935         */
1936        VALUESET, 
1937        /**
1938         * Describes validation requirements, source(s), status and dates for one or more elements.
1939         */
1940        VERIFICATIONRESULT, 
1941        /**
1942         * An authorization for the provision of glasses and/or contact lenses to a patient.
1943         */
1944        VISIONPRESCRIPTION, 
1945        /**
1946         * added to help the parsers
1947         */
1948        NULL;
1949        public static AllResourceTypes fromCode(String codeString) throws FHIRException {
1950            if (codeString == null || "".equals(codeString))
1951                return null;
1952        if ("Account".equals(codeString))
1953          return ACCOUNT;
1954        if ("ActivityDefinition".equals(codeString))
1955          return ACTIVITYDEFINITION;
1956        if ("ActorDefinition".equals(codeString))
1957          return ACTORDEFINITION;
1958        if ("AdministrableProductDefinition".equals(codeString))
1959          return ADMINISTRABLEPRODUCTDEFINITION;
1960        if ("AdverseEvent".equals(codeString))
1961          return ADVERSEEVENT;
1962        if ("AllergyIntolerance".equals(codeString))
1963          return ALLERGYINTOLERANCE;
1964        if ("Appointment".equals(codeString))
1965          return APPOINTMENT;
1966        if ("AppointmentResponse".equals(codeString))
1967          return APPOINTMENTRESPONSE;
1968        if ("ArtifactAssessment".equals(codeString))
1969          return ARTIFACTASSESSMENT;
1970        if ("AuditEvent".equals(codeString))
1971          return AUDITEVENT;
1972        if ("Basic".equals(codeString))
1973          return BASIC;
1974        if ("Binary".equals(codeString))
1975          return BINARY;
1976        if ("BiologicallyDerivedProduct".equals(codeString))
1977          return BIOLOGICALLYDERIVEDPRODUCT;
1978        if ("BodyStructure".equals(codeString))
1979          return BODYSTRUCTURE;
1980        if ("Bundle".equals(codeString))
1981          return BUNDLE;
1982        if ("CanonicalResource".equals(codeString))
1983          return CANONICALRESOURCE;
1984        if ("CapabilityStatement".equals(codeString))
1985          return CAPABILITYSTATEMENT;
1986        if ("CarePlan".equals(codeString))
1987          return CAREPLAN;
1988        if ("CareTeam".equals(codeString))
1989          return CARETEAM;
1990        if ("ChargeItem".equals(codeString))
1991          return CHARGEITEM;
1992        if ("ChargeItemDefinition".equals(codeString))
1993          return CHARGEITEMDEFINITION;
1994        if ("Citation".equals(codeString))
1995          return CITATION;
1996        if ("Claim".equals(codeString))
1997          return CLAIM;
1998        if ("ClaimResponse".equals(codeString))
1999          return CLAIMRESPONSE;
2000        if ("ClinicalImpression".equals(codeString))
2001          return CLINICALIMPRESSION;
2002        if ("ClinicalUseDefinition".equals(codeString))
2003          return CLINICALUSEDEFINITION;
2004        if ("CodeSystem".equals(codeString))
2005          return CODESYSTEM;
2006        if ("Communication".equals(codeString))
2007          return COMMUNICATION;
2008        if ("CommunicationRequest".equals(codeString))
2009          return COMMUNICATIONREQUEST;
2010        if ("CompartmentDefinition".equals(codeString))
2011          return COMPARTMENTDEFINITION;
2012        if ("Composition".equals(codeString))
2013          return COMPOSITION;
2014        if ("ConceptMap".equals(codeString))
2015          return CONCEPTMAP;
2016        if ("Condition".equals(codeString))
2017          return CONDITION;
2018        if ("ConditionDefinition".equals(codeString))
2019          return CONDITIONDEFINITION;
2020        if ("Consent".equals(codeString))
2021          return CONSENT;
2022        if ("Contract".equals(codeString))
2023          return CONTRACT;
2024        if ("Coverage".equals(codeString))
2025          return COVERAGE;
2026        if ("CoverageEligibilityRequest".equals(codeString))
2027          return COVERAGEELIGIBILITYREQUEST;
2028        if ("CoverageEligibilityResponse".equals(codeString))
2029          return COVERAGEELIGIBILITYRESPONSE;
2030        if ("DetectedIssue".equals(codeString))
2031          return DETECTEDISSUE;
2032        if ("Device".equals(codeString))
2033          return DEVICE;
2034        if ("DeviceDefinition".equals(codeString))
2035          return DEVICEDEFINITION;
2036        if ("DeviceDispense".equals(codeString))
2037          return DEVICEDISPENSE;
2038        if ("DeviceMetric".equals(codeString))
2039          return DEVICEMETRIC;
2040        if ("DeviceRequest".equals(codeString))
2041          return DEVICEREQUEST;
2042        if ("DeviceUsage".equals(codeString))
2043          return DEVICEUSAGE;
2044        if ("DiagnosticReport".equals(codeString))
2045          return DIAGNOSTICREPORT;
2046        if ("DocumentManifest".equals(codeString))
2047          return DOCUMENTMANIFEST;
2048        if ("DocumentReference".equals(codeString))
2049          return DOCUMENTREFERENCE;
2050        if ("DomainResource".equals(codeString))
2051          return DOMAINRESOURCE;
2052        if ("Encounter".equals(codeString))
2053          return ENCOUNTER;
2054        if ("Endpoint".equals(codeString))
2055          return ENDPOINT;
2056        if ("EnrollmentRequest".equals(codeString))
2057          return ENROLLMENTREQUEST;
2058        if ("EnrollmentResponse".equals(codeString))
2059          return ENROLLMENTRESPONSE;
2060        if ("EpisodeOfCare".equals(codeString))
2061          return EPISODEOFCARE;
2062        if ("EventDefinition".equals(codeString))
2063          return EVENTDEFINITION;
2064        if ("Evidence".equals(codeString))
2065          return EVIDENCE;
2066        if ("EvidenceReport".equals(codeString))
2067          return EVIDENCEREPORT;
2068        if ("EvidenceVariable".equals(codeString))
2069          return EVIDENCEVARIABLE;
2070        if ("ExampleScenario".equals(codeString))
2071          return EXAMPLESCENARIO;
2072        if ("ExplanationOfBenefit".equals(codeString))
2073          return EXPLANATIONOFBENEFIT;
2074        if ("FamilyMemberHistory".equals(codeString))
2075          return FAMILYMEMBERHISTORY;
2076        if ("Flag".equals(codeString))
2077          return FLAG;
2078        if ("FormularyItem".equals(codeString))
2079          return FORMULARYITEM;
2080        if ("GenomicStudy".equals(codeString))
2081          return GENOMICSTUDY;
2082        if ("Goal".equals(codeString))
2083          return GOAL;
2084        if ("GraphDefinition".equals(codeString))
2085          return GRAPHDEFINITION;
2086        if ("Group".equals(codeString))
2087          return GROUP;
2088        if ("GuidanceResponse".equals(codeString))
2089          return GUIDANCERESPONSE;
2090        if ("HealthcareService".equals(codeString))
2091          return HEALTHCARESERVICE;
2092        if ("ImagingSelection".equals(codeString))
2093          return IMAGINGSELECTION;
2094        if ("ImagingStudy".equals(codeString))
2095          return IMAGINGSTUDY;
2096        if ("Immunization".equals(codeString))
2097          return IMMUNIZATION;
2098        if ("ImmunizationEvaluation".equals(codeString))
2099          return IMMUNIZATIONEVALUATION;
2100        if ("ImmunizationRecommendation".equals(codeString))
2101          return IMMUNIZATIONRECOMMENDATION;
2102        if ("ImplementationGuide".equals(codeString))
2103          return IMPLEMENTATIONGUIDE;
2104        if ("Ingredient".equals(codeString))
2105          return INGREDIENT;
2106        if ("InsurancePlan".equals(codeString))
2107          return INSURANCEPLAN;
2108        if ("InventoryReport".equals(codeString))
2109          return INVENTORYREPORT;
2110        if ("Invoice".equals(codeString))
2111          return INVOICE;
2112        if ("Library".equals(codeString))
2113          return LIBRARY;
2114        if ("Linkage".equals(codeString))
2115          return LINKAGE;
2116        if ("List".equals(codeString))
2117          return LIST;
2118        if ("Location".equals(codeString))
2119          return LOCATION;
2120        if ("ManufacturedItemDefinition".equals(codeString))
2121          return MANUFACTUREDITEMDEFINITION;
2122        if ("Measure".equals(codeString))
2123          return MEASURE;
2124        if ("MeasureReport".equals(codeString))
2125          return MEASUREREPORT;
2126        if ("Medication".equals(codeString))
2127          return MEDICATION;
2128        if ("MedicationAdministration".equals(codeString))
2129          return MEDICATIONADMINISTRATION;
2130        if ("MedicationDispense".equals(codeString))
2131          return MEDICATIONDISPENSE;
2132        if ("MedicationKnowledge".equals(codeString))
2133          return MEDICATIONKNOWLEDGE;
2134        if ("MedicationRequest".equals(codeString))
2135          return MEDICATIONREQUEST;
2136        if ("MedicationUsage".equals(codeString))
2137          return MEDICATIONUSAGE;
2138        if ("MedicationStatement".equals(codeString))
2139          return MEDICATIONUSAGE;
2140        if ("MedicinalProductDefinition".equals(codeString))
2141          return MEDICINALPRODUCTDEFINITION;
2142        if ("MessageDefinition".equals(codeString))
2143          return MESSAGEDEFINITION;
2144        if ("MessageHeader".equals(codeString))
2145          return MESSAGEHEADER;
2146        if ("MetadataResource".equals(codeString))
2147          return METADATARESOURCE;
2148        if ("MolecularSequence".equals(codeString))
2149          return MOLECULARSEQUENCE;
2150        if ("NamingSystem".equals(codeString))
2151          return NAMINGSYSTEM;
2152        if ("NutritionIntake".equals(codeString))
2153          return NUTRITIONINTAKE;
2154        if ("NutritionOrder".equals(codeString))
2155          return NUTRITIONORDER;
2156        if ("NutritionProduct".equals(codeString))
2157          return NUTRITIONPRODUCT;
2158        if ("Observation".equals(codeString))
2159          return OBSERVATION;
2160        if ("ObservationDefinition".equals(codeString))
2161          return OBSERVATIONDEFINITION;
2162        if ("OperationDefinition".equals(codeString))
2163          return OPERATIONDEFINITION;
2164        if ("OperationOutcome".equals(codeString))
2165          return OPERATIONOUTCOME;
2166        if ("Organization".equals(codeString))
2167          return ORGANIZATION;
2168        if ("OrganizationAffiliation".equals(codeString))
2169          return ORGANIZATIONAFFILIATION;
2170        if ("PackagedProductDefinition".equals(codeString))
2171          return PACKAGEDPRODUCTDEFINITION;
2172        if ("Parameters".equals(codeString))
2173          return PARAMETERS;
2174        if ("Patient".equals(codeString))
2175          return PATIENT;
2176        if ("PaymentNotice".equals(codeString))
2177          return PAYMENTNOTICE;
2178        if ("PaymentReconciliation".equals(codeString))
2179          return PAYMENTRECONCILIATION;
2180        if ("Permission".equals(codeString))
2181          return PERMISSION;
2182        if ("Person".equals(codeString))
2183          return PERSON;
2184        if ("PlanDefinition".equals(codeString))
2185          return PLANDEFINITION;
2186        if ("Practitioner".equals(codeString))
2187          return PRACTITIONER;
2188        if ("PractitionerRole".equals(codeString))
2189          return PRACTITIONERROLE;
2190        if ("Procedure".equals(codeString))
2191          return PROCEDURE;
2192        if ("Provenance".equals(codeString))
2193          return PROVENANCE;
2194        if ("Questionnaire".equals(codeString))
2195          return QUESTIONNAIRE;
2196        if ("QuestionnaireResponse".equals(codeString))
2197          return QUESTIONNAIRERESPONSE;
2198        if ("RegulatedAuthorization".equals(codeString))
2199          return REGULATEDAUTHORIZATION;
2200        if ("RelatedPerson".equals(codeString))
2201          return RELATEDPERSON;
2202        if ("RequestOrchestration".equals(codeString))
2203          return REQUESTORCHESTRATION;
2204        if ("Requirements".equals(codeString))
2205          return REQUIREMENTS;
2206        if ("ResearchStudy".equals(codeString))
2207          return RESEARCHSTUDY;
2208        if ("ResearchSubject".equals(codeString))
2209          return RESEARCHSUBJECT;
2210        if ("Resource".equals(codeString))
2211          return RESOURCE;
2212        if ("RiskAssessment".equals(codeString))
2213          return RISKASSESSMENT;
2214        if ("Schedule".equals(codeString))
2215          return SCHEDULE;
2216        if ("SearchParameter".equals(codeString))
2217          return SEARCHPARAMETER;
2218        if ("ServiceRequest".equals(codeString))
2219          return SERVICEREQUEST;
2220        if ("Slot".equals(codeString))
2221          return SLOT;
2222        if ("Specimen".equals(codeString))
2223          return SPECIMEN;
2224        if ("SpecimenDefinition".equals(codeString))
2225          return SPECIMENDEFINITION;
2226        if ("StructureDefinition".equals(codeString))
2227          return STRUCTUREDEFINITION;
2228        if ("StructureMap".equals(codeString))
2229          return STRUCTUREMAP;
2230        if ("Subscription".equals(codeString))
2231          return SUBSCRIPTION;
2232        if ("SubscriptionStatus".equals(codeString))
2233          return SUBSCRIPTIONSTATUS;
2234        if ("SubscriptionTopic".equals(codeString))
2235          return SUBSCRIPTIONTOPIC;
2236        if ("Substance".equals(codeString))
2237          return SUBSTANCE;
2238        if ("SubstanceDefinition".equals(codeString))
2239          return SUBSTANCEDEFINITION;
2240        if ("SubstanceNucleicAcid".equals(codeString))
2241          return SUBSTANCENUCLEICACID;
2242        if ("SubstancePolymer".equals(codeString))
2243          return SUBSTANCEPOLYMER;
2244        if ("SubstanceProtein".equals(codeString))
2245          return SUBSTANCEPROTEIN;
2246        if ("SubstanceReferenceInformation".equals(codeString))
2247          return SUBSTANCEREFERENCEINFORMATION;
2248        if ("SubstanceSourceMaterial".equals(codeString))
2249          return SUBSTANCESOURCEMATERIAL;
2250        if ("SupplyDelivery".equals(codeString))
2251          return SUPPLYDELIVERY;
2252        if ("SupplyRequest".equals(codeString))
2253          return SUPPLYREQUEST;
2254        if ("Task".equals(codeString))
2255          return TASK;
2256        if ("TerminologyCapabilities".equals(codeString))
2257          return TERMINOLOGYCAPABILITIES;
2258        if ("TestReport".equals(codeString))
2259          return TESTREPORT;
2260        if ("TestScript".equals(codeString))
2261          return TESTSCRIPT;
2262        if ("Transport".equals(codeString))
2263          return TRANSPORT;
2264        if ("ValueSet".equals(codeString))
2265          return VALUESET;
2266        if ("VerificationResult".equals(codeString))
2267          return VERIFICATIONRESULT;
2268        if ("VisionPrescription".equals(codeString))
2269          return VISIONPRESCRIPTION;
2270        throw new FHIRException("Unknown AllResourceTypes code '"+codeString+"'");
2271        }
2272        public String toCode() {
2273          switch (this) {
2274            case ACCOUNT: return "Account";
2275            case ACTIVITYDEFINITION: return "ActivityDefinition";
2276            case ACTORDEFINITION: return "ActorDefinition";
2277            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
2278            case ADVERSEEVENT: return "AdverseEvent";
2279            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
2280            case APPOINTMENT: return "Appointment";
2281            case APPOINTMENTRESPONSE: return "AppointmentResponse";
2282            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
2283            case AUDITEVENT: return "AuditEvent";
2284            case BASIC: return "Basic";
2285            case BINARY: return "Binary";
2286            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
2287            case BODYSTRUCTURE: return "BodyStructure";
2288            case BUNDLE: return "Bundle";
2289            case CANONICALRESOURCE: return "CanonicalResource";
2290            case CAPABILITYSTATEMENT: return "CapabilityStatement";
2291            case CAREPLAN: return "CarePlan";
2292            case CARETEAM: return "CareTeam";
2293            case CHARGEITEM: return "ChargeItem";
2294            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
2295            case CITATION: return "Citation";
2296            case CLAIM: return "Claim";
2297            case CLAIMRESPONSE: return "ClaimResponse";
2298            case CLINICALIMPRESSION: return "ClinicalImpression";
2299            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
2300            case CODESYSTEM: return "CodeSystem";
2301            case COMMUNICATION: return "Communication";
2302            case COMMUNICATIONREQUEST: return "CommunicationRequest";
2303            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
2304            case COMPOSITION: return "Composition";
2305            case CONCEPTMAP: return "ConceptMap";
2306            case CONDITION: return "Condition";
2307            case CONDITIONDEFINITION: return "ConditionDefinition";
2308            case CONSENT: return "Consent";
2309            case CONTRACT: return "Contract";
2310            case COVERAGE: return "Coverage";
2311            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
2312            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
2313            case DETECTEDISSUE: return "DetectedIssue";
2314            case DEVICE: return "Device";
2315            case DEVICEDEFINITION: return "DeviceDefinition";
2316            case DEVICEDISPENSE: return "DeviceDispense";
2317            case DEVICEMETRIC: return "DeviceMetric";
2318            case DEVICEREQUEST: return "DeviceRequest";
2319            case DEVICEUSAGE: return "DeviceUsage";
2320            case DIAGNOSTICREPORT: return "DiagnosticReport";
2321            case DOCUMENTMANIFEST: return "DocumentManifest";
2322            case DOCUMENTREFERENCE: return "DocumentReference";
2323            case DOMAINRESOURCE: return "DomainResource";
2324            case ENCOUNTER: return "Encounter";
2325            case ENDPOINT: return "Endpoint";
2326            case ENROLLMENTREQUEST: return "EnrollmentRequest";
2327            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
2328            case EPISODEOFCARE: return "EpisodeOfCare";
2329            case EVENTDEFINITION: return "EventDefinition";
2330            case EVIDENCE: return "Evidence";
2331            case EVIDENCEREPORT: return "EvidenceReport";
2332            case EVIDENCEVARIABLE: return "EvidenceVariable";
2333            case EXAMPLESCENARIO: return "ExampleScenario";
2334            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
2335            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
2336            case FLAG: return "Flag";
2337            case FORMULARYITEM: return "FormularyItem";
2338            case GENOMICSTUDY: return "GenomicStudy";
2339            case GOAL: return "Goal";
2340            case GRAPHDEFINITION: return "GraphDefinition";
2341            case GROUP: return "Group";
2342            case GUIDANCERESPONSE: return "GuidanceResponse";
2343            case HEALTHCARESERVICE: return "HealthcareService";
2344            case IMAGINGSELECTION: return "ImagingSelection";
2345            case IMAGINGSTUDY: return "ImagingStudy";
2346            case IMMUNIZATION: return "Immunization";
2347            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
2348            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
2349            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
2350            case INGREDIENT: return "Ingredient";
2351            case INSURANCEPLAN: return "InsurancePlan";
2352            case INVENTORYREPORT: return "InventoryReport";
2353            case INVOICE: return "Invoice";
2354            case LIBRARY: return "Library";
2355            case LINKAGE: return "Linkage";
2356            case LIST: return "List";
2357            case LOCATION: return "Location";
2358            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
2359            case MEASURE: return "Measure";
2360            case MEASUREREPORT: return "MeasureReport";
2361            case MEDICATION: return "Medication";
2362            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
2363            case MEDICATIONDISPENSE: return "MedicationDispense";
2364            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
2365            case MEDICATIONREQUEST: return "MedicationRequest";
2366            case MEDICATIONUSAGE: return "MedicationUsage";
2367            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
2368            case MESSAGEDEFINITION: return "MessageDefinition";
2369            case MESSAGEHEADER: return "MessageHeader";
2370            case METADATARESOURCE: return "MetadataResource";
2371            case MOLECULARSEQUENCE: return "MolecularSequence";
2372            case NAMINGSYSTEM: return "NamingSystem";
2373            case NUTRITIONINTAKE: return "NutritionIntake";
2374            case NUTRITIONORDER: return "NutritionOrder";
2375            case NUTRITIONPRODUCT: return "NutritionProduct";
2376            case OBSERVATION: return "Observation";
2377            case OBSERVATIONDEFINITION: return "ObservationDefinition";
2378            case OPERATIONDEFINITION: return "OperationDefinition";
2379            case OPERATIONOUTCOME: return "OperationOutcome";
2380            case ORGANIZATION: return "Organization";
2381            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
2382            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
2383            case PARAMETERS: return "Parameters";
2384            case PATIENT: return "Patient";
2385            case PAYMENTNOTICE: return "PaymentNotice";
2386            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
2387            case PERMISSION: return "Permission";
2388            case PERSON: return "Person";
2389            case PLANDEFINITION: return "PlanDefinition";
2390            case PRACTITIONER: return "Practitioner";
2391            case PRACTITIONERROLE: return "PractitionerRole";
2392            case PROCEDURE: return "Procedure";
2393            case PROVENANCE: return "Provenance";
2394            case QUESTIONNAIRE: return "Questionnaire";
2395            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
2396            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
2397            case RELATEDPERSON: return "RelatedPerson";
2398            case REQUESTORCHESTRATION: return "RequestOrchestration";
2399            case REQUIREMENTS: return "Requirements";
2400            case RESEARCHSTUDY: return "ResearchStudy";
2401            case RESEARCHSUBJECT: return "ResearchSubject";
2402            case RESOURCE: return "Resource";
2403            case RISKASSESSMENT: return "RiskAssessment";
2404            case SCHEDULE: return "Schedule";
2405            case SEARCHPARAMETER: return "SearchParameter";
2406            case SERVICEREQUEST: return "ServiceRequest";
2407            case SLOT: return "Slot";
2408            case SPECIMEN: return "Specimen";
2409            case SPECIMENDEFINITION: return "SpecimenDefinition";
2410            case STRUCTUREDEFINITION: return "StructureDefinition";
2411            case STRUCTUREMAP: return "StructureMap";
2412            case SUBSCRIPTION: return "Subscription";
2413            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
2414            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
2415            case SUBSTANCE: return "Substance";
2416            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
2417            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
2418            case SUBSTANCEPOLYMER: return "SubstancePolymer";
2419            case SUBSTANCEPROTEIN: return "SubstanceProtein";
2420            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
2421            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
2422            case SUPPLYDELIVERY: return "SupplyDelivery";
2423            case SUPPLYREQUEST: return "SupplyRequest";
2424            case TASK: return "Task";
2425            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
2426            case TESTREPORT: return "TestReport";
2427            case TESTSCRIPT: return "TestScript";
2428            case TRANSPORT: return "Transport";
2429            case VALUESET: return "ValueSet";
2430            case VERIFICATIONRESULT: return "VerificationResult";
2431            case VISIONPRESCRIPTION: return "VisionPrescription";
2432            case NULL: return null;
2433            default: return "?";
2434          }
2435        }
2436        public String getSystem() {
2437          switch (this) {
2438            case ACCOUNT: return "http://hl7.org/fhir/fhir-types";
2439            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/fhir-types";
2440            case ACTORDEFINITION: return "http://hl7.org/fhir/fhir-types";
2441            case ADMINISTRABLEPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
2442            case ADVERSEEVENT: return "http://hl7.org/fhir/fhir-types";
2443            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/fhir-types";
2444            case APPOINTMENT: return "http://hl7.org/fhir/fhir-types";
2445            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
2446            case ARTIFACTASSESSMENT: return "http://hl7.org/fhir/fhir-types";
2447            case AUDITEVENT: return "http://hl7.org/fhir/fhir-types";
2448            case BASIC: return "http://hl7.org/fhir/fhir-types";
2449            case BINARY: return "http://hl7.org/fhir/fhir-types";
2450            case BIOLOGICALLYDERIVEDPRODUCT: return "http://hl7.org/fhir/fhir-types";
2451            case BODYSTRUCTURE: return "http://hl7.org/fhir/fhir-types";
2452            case BUNDLE: return "http://hl7.org/fhir/fhir-types";
2453            case CANONICALRESOURCE: return "http://hl7.org/fhir/fhir-types";
2454            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/fhir-types";
2455            case CAREPLAN: return "http://hl7.org/fhir/fhir-types";
2456            case CARETEAM: return "http://hl7.org/fhir/fhir-types";
2457            case CHARGEITEM: return "http://hl7.org/fhir/fhir-types";
2458            case CHARGEITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
2459            case CITATION: return "http://hl7.org/fhir/fhir-types";
2460            case CLAIM: return "http://hl7.org/fhir/fhir-types";
2461            case CLAIMRESPONSE: return "http://hl7.org/fhir/fhir-types";
2462            case CLINICALIMPRESSION: return "http://hl7.org/fhir/fhir-types";
2463            case CLINICALUSEDEFINITION: return "http://hl7.org/fhir/fhir-types";
2464            case CODESYSTEM: return "http://hl7.org/fhir/fhir-types";
2465            case COMMUNICATION: return "http://hl7.org/fhir/fhir-types";
2466            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
2467            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
2468            case COMPOSITION: return "http://hl7.org/fhir/fhir-types";
2469            case CONCEPTMAP: return "http://hl7.org/fhir/fhir-types";
2470            case CONDITION: return "http://hl7.org/fhir/fhir-types";
2471            case CONDITIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
2472            case CONSENT: return "http://hl7.org/fhir/fhir-types";
2473            case CONTRACT: return "http://hl7.org/fhir/fhir-types";
2474            case COVERAGE: return "http://hl7.org/fhir/fhir-types";
2475            case COVERAGEELIGIBILITYREQUEST: return "http://hl7.org/fhir/fhir-types";
2476            case COVERAGEELIGIBILITYRESPONSE: return "http://hl7.org/fhir/fhir-types";
2477            case DETECTEDISSUE: return "http://hl7.org/fhir/fhir-types";
2478            case DEVICE: return "http://hl7.org/fhir/fhir-types";
2479            case DEVICEDEFINITION: return "http://hl7.org/fhir/fhir-types";
2480            case DEVICEDISPENSE: return "http://hl7.org/fhir/fhir-types";
2481            case DEVICEMETRIC: return "http://hl7.org/fhir/fhir-types";
2482            case DEVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
2483            case DEVICEUSAGE: return "http://hl7.org/fhir/fhir-types";
2484            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/fhir-types";
2485            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/fhir-types";
2486            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/fhir-types";
2487            case DOMAINRESOURCE: return "http://hl7.org/fhir/fhir-types";
2488            case ENCOUNTER: return "http://hl7.org/fhir/fhir-types";
2489            case ENDPOINT: return "http://hl7.org/fhir/fhir-types";
2490            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/fhir-types";
2491            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
2492            case EPISODEOFCARE: return "http://hl7.org/fhir/fhir-types";
2493            case EVENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
2494            case EVIDENCE: return "http://hl7.org/fhir/fhir-types";
2495            case EVIDENCEREPORT: return "http://hl7.org/fhir/fhir-types";
2496            case EVIDENCEVARIABLE: return "http://hl7.org/fhir/fhir-types";
2497            case EXAMPLESCENARIO: return "http://hl7.org/fhir/fhir-types";
2498            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/fhir-types";
2499            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/fhir-types";
2500            case FLAG: return "http://hl7.org/fhir/fhir-types";
2501            case FORMULARYITEM: return "http://hl7.org/fhir/fhir-types";
2502            case GENOMICSTUDY: return "http://hl7.org/fhir/fhir-types";
2503            case GOAL: return "http://hl7.org/fhir/fhir-types";
2504            case GRAPHDEFINITION: return "http://hl7.org/fhir/fhir-types";
2505            case GROUP: return "http://hl7.org/fhir/fhir-types";
2506            case GUIDANCERESPONSE: return "http://hl7.org/fhir/fhir-types";
2507            case HEALTHCARESERVICE: return "http://hl7.org/fhir/fhir-types";
2508            case IMAGINGSELECTION: return "http://hl7.org/fhir/fhir-types";
2509            case IMAGINGSTUDY: return "http://hl7.org/fhir/fhir-types";
2510            case IMMUNIZATION: return "http://hl7.org/fhir/fhir-types";
2511            case IMMUNIZATIONEVALUATION: return "http://hl7.org/fhir/fhir-types";
2512            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/fhir-types";
2513            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/fhir-types";
2514            case INGREDIENT: return "http://hl7.org/fhir/fhir-types";
2515            case INSURANCEPLAN: return "http://hl7.org/fhir/fhir-types";
2516            case INVENTORYREPORT: return "http://hl7.org/fhir/fhir-types";
2517            case INVOICE: return "http://hl7.org/fhir/fhir-types";
2518            case LIBRARY: return "http://hl7.org/fhir/fhir-types";
2519            case LINKAGE: return "http://hl7.org/fhir/fhir-types";
2520            case LIST: return "http://hl7.org/fhir/fhir-types";
2521            case LOCATION: return "http://hl7.org/fhir/fhir-types";
2522            case MANUFACTUREDITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
2523            case MEASURE: return "http://hl7.org/fhir/fhir-types";
2524            case MEASUREREPORT: return "http://hl7.org/fhir/fhir-types";
2525            case MEDICATION: return "http://hl7.org/fhir/fhir-types";
2526            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/fhir-types";
2527            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/fhir-types";
2528            case MEDICATIONKNOWLEDGE: return "http://hl7.org/fhir/fhir-types";
2529            case MEDICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
2530            case MEDICATIONUSAGE: return "http://hl7.org/fhir/fhir-types";
2531            case MEDICINALPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
2532            case MESSAGEDEFINITION: return "http://hl7.org/fhir/fhir-types";
2533            case MESSAGEHEADER: return "http://hl7.org/fhir/fhir-types";
2534            case METADATARESOURCE: return "http://hl7.org/fhir/fhir-types";
2535            case MOLECULARSEQUENCE: return "http://hl7.org/fhir/fhir-types";
2536            case NAMINGSYSTEM: return "http://hl7.org/fhir/fhir-types";
2537            case NUTRITIONINTAKE: return "http://hl7.org/fhir/fhir-types";
2538            case NUTRITIONORDER: return "http://hl7.org/fhir/fhir-types";
2539            case NUTRITIONPRODUCT: return "http://hl7.org/fhir/fhir-types";
2540            case OBSERVATION: return "http://hl7.org/fhir/fhir-types";
2541            case OBSERVATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
2542            case OPERATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
2543            case OPERATIONOUTCOME: return "http://hl7.org/fhir/fhir-types";
2544            case ORGANIZATION: return "http://hl7.org/fhir/fhir-types";
2545            case ORGANIZATIONAFFILIATION: return "http://hl7.org/fhir/fhir-types";
2546            case PACKAGEDPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
2547            case PARAMETERS: return "http://hl7.org/fhir/fhir-types";
2548            case PATIENT: return "http://hl7.org/fhir/fhir-types";
2549            case PAYMENTNOTICE: return "http://hl7.org/fhir/fhir-types";
2550            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/fhir-types";
2551            case PERMISSION: return "http://hl7.org/fhir/fhir-types";
2552            case PERSON: return "http://hl7.org/fhir/fhir-types";
2553            case PLANDEFINITION: return "http://hl7.org/fhir/fhir-types";
2554            case PRACTITIONER: return "http://hl7.org/fhir/fhir-types";
2555            case PRACTITIONERROLE: return "http://hl7.org/fhir/fhir-types";
2556            case PROCEDURE: return "http://hl7.org/fhir/fhir-types";
2557            case PROVENANCE: return "http://hl7.org/fhir/fhir-types";
2558            case QUESTIONNAIRE: return "http://hl7.org/fhir/fhir-types";
2559            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/fhir-types";
2560            case REGULATEDAUTHORIZATION: return "http://hl7.org/fhir/fhir-types";
2561            case RELATEDPERSON: return "http://hl7.org/fhir/fhir-types";
2562            case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types";
2563            case REQUIREMENTS: return "http://hl7.org/fhir/fhir-types";
2564            case RESEARCHSTUDY: return "http://hl7.org/fhir/fhir-types";
2565            case RESEARCHSUBJECT: return "http://hl7.org/fhir/fhir-types";
2566            case RESOURCE: return "http://hl7.org/fhir/fhir-types";
2567            case RISKASSESSMENT: return "http://hl7.org/fhir/fhir-types";
2568            case SCHEDULE: return "http://hl7.org/fhir/fhir-types";
2569            case SEARCHPARAMETER: return "http://hl7.org/fhir/fhir-types";
2570            case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
2571            case SLOT: return "http://hl7.org/fhir/fhir-types";
2572            case SPECIMEN: return "http://hl7.org/fhir/fhir-types";
2573            case SPECIMENDEFINITION: return "http://hl7.org/fhir/fhir-types";
2574            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/fhir-types";
2575            case STRUCTUREMAP: return "http://hl7.org/fhir/fhir-types";
2576            case SUBSCRIPTION: return "http://hl7.org/fhir/fhir-types";
2577            case SUBSCRIPTIONSTATUS: return "http://hl7.org/fhir/fhir-types";
2578            case SUBSCRIPTIONTOPIC: return "http://hl7.org/fhir/fhir-types";
2579            case SUBSTANCE: return "http://hl7.org/fhir/fhir-types";
2580            case SUBSTANCEDEFINITION: return "http://hl7.org/fhir/fhir-types";
2581            case SUBSTANCENUCLEICACID: return "http://hl7.org/fhir/fhir-types";
2582            case SUBSTANCEPOLYMER: return "http://hl7.org/fhir/fhir-types";
2583            case SUBSTANCEPROTEIN: return "http://hl7.org/fhir/fhir-types";
2584            case SUBSTANCEREFERENCEINFORMATION: return "http://hl7.org/fhir/fhir-types";
2585            case SUBSTANCESOURCEMATERIAL: return "http://hl7.org/fhir/fhir-types";
2586            case SUPPLYDELIVERY: return "http://hl7.org/fhir/fhir-types";
2587            case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types";
2588            case TASK: return "http://hl7.org/fhir/fhir-types";
2589            case TERMINOLOGYCAPABILITIES: return "http://hl7.org/fhir/fhir-types";
2590            case TESTREPORT: return "http://hl7.org/fhir/fhir-types";
2591            case TESTSCRIPT: return "http://hl7.org/fhir/fhir-types";
2592            case TRANSPORT: return "http://hl7.org/fhir/fhir-types";
2593            case VALUESET: return "http://hl7.org/fhir/fhir-types";
2594            case VERIFICATIONRESULT: return "http://hl7.org/fhir/fhir-types";
2595            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types";
2596            case NULL: return null;
2597            default: return "?";
2598          }
2599        }
2600        public String getDefinition() {
2601          switch (this) {
2602            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.";
2603            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.";
2604            case ACTORDEFINITION: return "The ActorDefinition resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.";
2605            case ADMINISTRABLEPRODUCTDEFINITION: return "A medicinal product in the final form which is suitable for administering to a patient (after any mixing of multiple components, dissolution etc. has been performed).";
2606            case ADVERSEEVENT: return "An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research subject. The unintended effects may require additional monitoring, treatment, hospitalization, or may result in death. The AdverseEvent resource also extends to potential or avoided events that could have had such effects. There are two major domains where the AdverseEvent resource is expected to be used. One is in clinical care reported adverse events and the other is in reporting adverse events in clinical  research trial management. Given the differences between these two concepts, we recommend consulting the domain specific implementation guides when implementing the AdverseEvent Resource. The implementation guides include specific extensions, value sets and constraints.";
2607            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
2608            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).";
2609            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
2610            case ARTIFACTASSESSMENT: return "This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.";
2611            case AUDITEVENT: return "A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.";
2612            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.";
2613            case BINARY: return "A resource that represents the data of a single raw artifact as digital content accessible in its native format.  A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
2614            case BIOLOGICALLYDERIVEDPRODUCT: return "A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.";
2615            case BODYSTRUCTURE: return "Record details about an anatomical structure.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
2616            case BUNDLE: return "A container for a collection of resources.";
2617            case CANONICALRESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
2618            case CAPABILITYSTATEMENT: return "A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server or Client for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
2619            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.";
2620            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.";
2621            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.";
2622            case CHARGEITEMDEFINITION: return "The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system.";
2623            case CITATION: return "The Citation Resource enables reference to any knowledge artifact for purposes of identification and attribution. The Citation Resource supports existing reference structures and developing publication practices such as versioning, expressing complex contributorship roles, and referencing computable resources.";
2624            case CLAIM: return "A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.";
2625            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
2626            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.";
2627            case CLINICALUSEDEFINITION: return "A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.";
2628            case CODESYSTEM: return "The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.";
2629            case COMMUNICATION: return "A clinical or business level record of information being transmitted or shared; e.g. an alert that was sent to a responsible provider, a public health agency communication to a provider/reporter in response to a case report for a reportable condition.";
2630            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.";
2631            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
2632            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).";
2633            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.";
2634            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
2635            case CONDITIONDEFINITION: return "A definition of a condition and information relevant to managing it.";
2636            case CONSENT: return "A record of a healthcare consumer’s  choices  or choices made on their behalf by a third party, 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.";
2637            case CONTRACT: return "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.";
2638            case COVERAGE: return "Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.";
2639            case COVERAGEELIGIBILITYREQUEST: return "The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.";
2640            case COVERAGEELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.";
2641            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.";
2642            case DEVICE: return "This resource describes the properties (regulated, has real time clock, etc.), adminstrative (manufacturer name, model number, serial number, firmware, etc), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serail number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element.";
2643            case DEVICEDEFINITION: return "This is a specialized resource that defines the characteristics and capabilities of a device.";
2644            case DEVICEDISPENSE: return "Indicates that a device is to be or has been dispensed for a named person/patient.  This includes a description of the product (supply) provided and the instructions for using the device.";
2645            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
2646            case DEVICEREQUEST: return "Represents a request a device to be provided to a specific patient. The device may be an implantable device to be subsequently implanted, or an external assistive device, such as a walker, to be delivered and subsequently be used.";
2647            case DEVICEUSAGE: return "A record of a device being used by a patient where the record is the result of a report from the patient or a clinician.";
2648            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic tests performed on patients, groups of patients, products, substances, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports. The report also includes non-clinical context such as batch analysis and stability reporting of products and substances.";
2649            case DOCUMENTMANIFEST: return "A collection of documents compiled for a purpose together with metadata that applies to the collection.";
2650            case DOCUMENTREFERENCE: return "A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this \"document\" encompasses *any* serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare.  The DocumentReference resource provides metadata about the document so that the document can be discovered and managed.  The actual content may be inline base64 encoded data or provided by direct reference.";
2651            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
2652            case ENCOUNTER: return "An interaction between healthcare provider(s), and/or patient(s) for the purpose of providing healthcare service(s) or assessing the health status of patient(s).";
2653            case ENDPOINT: return "The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.";
2654            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
2655            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.";
2656            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.";
2657            case EVENTDEFINITION: return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
2658            case EVIDENCE: return "The Evidence Resource provides a machine-interpretable expression of an evidence concept including the evidence variables (e.g., population, exposures/interventions, comparators, outcomes, measured variables, confounding variables), the statistics, and the certainty of this evidence.";
2659            case EVIDENCEREPORT: return "The EvidenceReport Resource is a specialized container for a collection of resources and codeable concepts, adapted to support compositions of Evidence, EvidenceVariable, and Citation resources and related concepts.";
2660            case EVIDENCEVARIABLE: return "The EvidenceVariable resource describes an element that knowledge (Evidence) is about.";
2661            case EXAMPLESCENARIO: return "A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.";
2662            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.";
2663            case FAMILYMEMBERHISTORY: return "Significant health conditions for a person related to the patient relevant in the context of care for the patient.";
2664            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
2665            case FORMULARYITEM: return "This resource describes a product or service that is available through a program and includes the conditions and constraints of availability.  All of the information in this resource is specific to the inclusion of the item in the formulary and is not inherent to the item itself.";
2666            case GENOMICSTUDY: return "A Genomic Study is a set of analysis performed to analyze and generate genomic data.";
2667            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.";
2668            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.";
2669            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.";
2670            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.";
2671            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location or in a catalog.  In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices.";
2672            case IMAGINGSELECTION: return "A selection of DICOM SOP instances and/or frames within a single Study and Series. This might include additional specifics such as an image region, an Observation UID or a Segmentation Number, allowing linkage to an Observation Resource or transferring this information along with the ImagingStudy Resource.";
2673            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.";
2674            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.";
2675            case IMMUNIZATIONEVALUATION: return "Describes a comparison of an immunization event against published recommendations to determine if the administration is \"valid\" in relation to those  recommendations.";
2676            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.";
2677            case IMPLEMENTATIONGUIDE: return "A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.";
2678            case INGREDIENT: return "An ingredient of a manufactured item or pharmaceutical product.";
2679            case INSURANCEPLAN: return "Details of a Health Insurance product/plan provided by an organization.";
2680            case INVENTORYREPORT: return "A report of inventory or stock items.";
2681            case INVOICE: return "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.";
2682            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.";
2683            case LINKAGE: return "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\".";
2684            case LIST: return "A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.";
2685            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.";
2686            case MANUFACTUREDITEMDEFINITION: return "The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.";
2687            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
2688            case MEASUREREPORT: return "The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.";
2689            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.";
2690            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.";
2691            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.";
2692            case MEDICATIONKNOWLEDGE: return "Information about a medication that is used to support knowledge.";
2693            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.";
2694            case MEDICATIONUSAGE: return "A record of a medication that is being consumed by a patient.   A MedicationUsage may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. \n\nThe primary difference between a medicationusage and a medicationadministration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medicationusage 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 Usage 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.";
2695            case MEDICINALPRODUCTDEFINITION: return "Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs, to support prescribing, adverse events management etc.).";
2696            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.";
2697            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.";
2698            case METADATARESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
2699            case MOLECULARSEQUENCE: return "Representation of a molecular sequence.";
2700            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.";
2701            case NUTRITIONINTAKE: return "A record of food or fluid that is being consumed by a patient.  A NutritionIntake may indicate that the patient may be consuming the food or fluid now or has consumed the food or fluid in the past.  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 or through an app that tracks food or fluids consumed.   The consumption information may come from sources such as the patient's memory, from a nutrition label,  or from a clinician documenting observed intake.";
2702            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
2703            case NUTRITIONPRODUCT: return "A food or supplement that is consumed by patients.";
2704            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
2705            case OBSERVATIONDEFINITION: return "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.";
2706            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
2707            case OPERATIONOUTCOME: return "A collection of error, warning, or information messages that result from a system action.";
2708            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, payer/insurer, etc.";
2709            case ORGANIZATIONAFFILIATION: return "Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.";
2710            case PACKAGEDPRODUCTDEFINITION: return "A medically related item or items, in a container or package.";
2711            case PARAMETERS: return "This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment).  It is not persisted or allowed to be referenced by other resources except as described in the definition of the Parameters resource.";
2712            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
2713            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
2714            case PAYMENTRECONCILIATION: return "This resource provides the details including amount of a payment and allocates the payment items being paid.";
2715            case PERMISSION: return "Permission resource holds access rules for a given data and context.";
2716            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
2717            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 and non-clinical artifacts such as clinical decision support rules, order sets, protocols, and drug quality specifications.";
2718            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare or related services.";
2719            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.";
2720            case PROCEDURE: return "An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy.  This can be a quality or safety inspection for a location, organization, or device.  This can be an accreditation procedure on a practitioner for licensing.";
2721            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.";
2722            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.";
2723            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.";
2724            case REGULATEDAUTHORIZATION: return "Regulatory approval, clearance or licencing related to a regulated product, treatment, facility or activity that is cited in a guidance, regulation, rule or legislative act. An example is Market Authorization relating to a Medicinal Product.";
2725            case RELATEDPERSON: return "Information about a person that is involved in a patient's health or the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
2726            case REQUESTORCHESTRATION: return "A set of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\".";
2727            case REQUIREMENTS: return "The Requirements resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.";
2728            case RESEARCHSTUDY: return "A scientific study of nature that sometimes includes processes involved in health and disease. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future.";
2729            case RESEARCHSUBJECT: return "A physical entity which is the primary unit of operational and/or administrative interest in a study.";
2730            case RESOURCE: return "This is the base resource type for everything.";
2731            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
2732            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
2733            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
2734            case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
2735            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
2736            case SPECIMEN: return "A sample to be used for analysis.";
2737            case SPECIMENDEFINITION: return "A kind of specimen with associated set of requirements.";
2738            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.";
2739            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
2740            case SUBSCRIPTION: return "The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.";
2741            case SUBSCRIPTIONSTATUS: return "The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.";
2742            case SUBSCRIPTIONTOPIC: return "Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.";
2743            case SUBSTANCE: return "A homogeneous material with a definite composition.";
2744            case SUBSTANCEDEFINITION: return "The detailed description of a substance, typically at a level beyond what is used for prescribing.";
2745            case SUBSTANCENUCLEICACID: return "Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5’-3’ direction.";
2746            case SUBSTANCEPOLYMER: return "Properties of a substance specific to it being a polymer.";
2747            case SUBSTANCEPROTEIN: return "A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators.";
2748            case SUBSTANCEREFERENCEINFORMATION: return "Todo.";
2749            case SUBSTANCESOURCEMATERIAL: return "Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex.";
2750            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
2751            case SUPPLYREQUEST: return "A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.";
2752            case TASK: return "A task to be performed.";
2753            case TERMINOLOGYCAPABILITIES: return "A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
2754            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
2755            case TESTSCRIPT: return "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.";
2756            case TRANSPORT: return "Record of transport.";
2757            case VALUESET: return "A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[[CodeSystem]]] definitions and their use in [coded elements](terminologies.html).";
2758            case VERIFICATIONRESULT: return "Describes validation requirements, source(s), status and dates for one or more elements.";
2759            case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient.";
2760            case NULL: return null;
2761            default: return "?";
2762          }
2763        }
2764        public String getDisplay() {
2765          switch (this) {
2766            case ACCOUNT: return "Account";
2767            case ACTIVITYDEFINITION: return "ActivityDefinition";
2768            case ACTORDEFINITION: return "ActorDefinition";
2769            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
2770            case ADVERSEEVENT: return "AdverseEvent";
2771            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
2772            case APPOINTMENT: return "Appointment";
2773            case APPOINTMENTRESPONSE: return "AppointmentResponse";
2774            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
2775            case AUDITEVENT: return "AuditEvent";
2776            case BASIC: return "Basic";
2777            case BINARY: return "Binary";
2778            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
2779            case BODYSTRUCTURE: return "BodyStructure";
2780            case BUNDLE: return "Bundle";
2781            case CANONICALRESOURCE: return "CanonicalResource";
2782            case CAPABILITYSTATEMENT: return "CapabilityStatement";
2783            case CAREPLAN: return "CarePlan";
2784            case CARETEAM: return "CareTeam";
2785            case CHARGEITEM: return "ChargeItem";
2786            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
2787            case CITATION: return "Citation";
2788            case CLAIM: return "Claim";
2789            case CLAIMRESPONSE: return "ClaimResponse";
2790            case CLINICALIMPRESSION: return "ClinicalImpression";
2791            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
2792            case CODESYSTEM: return "CodeSystem";
2793            case COMMUNICATION: return "Communication";
2794            case COMMUNICATIONREQUEST: return "CommunicationRequest";
2795            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
2796            case COMPOSITION: return "Composition";
2797            case CONCEPTMAP: return "ConceptMap";
2798            case CONDITION: return "Condition";
2799            case CONDITIONDEFINITION: return "ConditionDefinition";
2800            case CONSENT: return "Consent";
2801            case CONTRACT: return "Contract";
2802            case COVERAGE: return "Coverage";
2803            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
2804            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
2805            case DETECTEDISSUE: return "DetectedIssue";
2806            case DEVICE: return "Device";
2807            case DEVICEDEFINITION: return "DeviceDefinition";
2808            case DEVICEDISPENSE: return "DeviceDispense";
2809            case DEVICEMETRIC: return "DeviceMetric";
2810            case DEVICEREQUEST: return "DeviceRequest";
2811            case DEVICEUSAGE: return "DeviceUsage";
2812            case DIAGNOSTICREPORT: return "DiagnosticReport";
2813            case DOCUMENTMANIFEST: return "DocumentManifest";
2814            case DOCUMENTREFERENCE: return "DocumentReference";
2815            case DOMAINRESOURCE: return "DomainResource";
2816            case ENCOUNTER: return "Encounter";
2817            case ENDPOINT: return "Endpoint";
2818            case ENROLLMENTREQUEST: return "EnrollmentRequest";
2819            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
2820            case EPISODEOFCARE: return "EpisodeOfCare";
2821            case EVENTDEFINITION: return "EventDefinition";
2822            case EVIDENCE: return "Evidence";
2823            case EVIDENCEREPORT: return "EvidenceReport";
2824            case EVIDENCEVARIABLE: return "EvidenceVariable";
2825            case EXAMPLESCENARIO: return "ExampleScenario";
2826            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
2827            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
2828            case FLAG: return "Flag";
2829            case FORMULARYITEM: return "FormularyItem";
2830            case GENOMICSTUDY: return "GenomicStudy";
2831            case GOAL: return "Goal";
2832            case GRAPHDEFINITION: return "GraphDefinition";
2833            case GROUP: return "Group";
2834            case GUIDANCERESPONSE: return "GuidanceResponse";
2835            case HEALTHCARESERVICE: return "HealthcareService";
2836            case IMAGINGSELECTION: return "ImagingSelection";
2837            case IMAGINGSTUDY: return "ImagingStudy";
2838            case IMMUNIZATION: return "Immunization";
2839            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
2840            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
2841            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
2842            case INGREDIENT: return "Ingredient";
2843            case INSURANCEPLAN: return "InsurancePlan";
2844            case INVENTORYREPORT: return "InventoryReport";
2845            case INVOICE: return "Invoice";
2846            case LIBRARY: return "Library";
2847            case LINKAGE: return "Linkage";
2848            case LIST: return "List";
2849            case LOCATION: return "Location";
2850            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
2851            case MEASURE: return "Measure";
2852            case MEASUREREPORT: return "MeasureReport";
2853            case MEDICATION: return "Medication";
2854            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
2855            case MEDICATIONDISPENSE: return "MedicationDispense";
2856            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
2857            case MEDICATIONREQUEST: return "MedicationRequest";
2858            case MEDICATIONUSAGE: return "MedicationUsage";
2859            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
2860            case MESSAGEDEFINITION: return "MessageDefinition";
2861            case MESSAGEHEADER: return "MessageHeader";
2862            case METADATARESOURCE: return "MetadataResource";
2863            case MOLECULARSEQUENCE: return "MolecularSequence";
2864            case NAMINGSYSTEM: return "NamingSystem";
2865            case NUTRITIONINTAKE: return "NutritionIntake";
2866            case NUTRITIONORDER: return "NutritionOrder";
2867            case NUTRITIONPRODUCT: return "NutritionProduct";
2868            case OBSERVATION: return "Observation";
2869            case OBSERVATIONDEFINITION: return "ObservationDefinition";
2870            case OPERATIONDEFINITION: return "OperationDefinition";
2871            case OPERATIONOUTCOME: return "OperationOutcome";
2872            case ORGANIZATION: return "Organization";
2873            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
2874            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
2875            case PARAMETERS: return "Parameters";
2876            case PATIENT: return "Patient";
2877            case PAYMENTNOTICE: return "PaymentNotice";
2878            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
2879            case PERMISSION: return "Permission";
2880            case PERSON: return "Person";
2881            case PLANDEFINITION: return "PlanDefinition";
2882            case PRACTITIONER: return "Practitioner";
2883            case PRACTITIONERROLE: return "PractitionerRole";
2884            case PROCEDURE: return "Procedure";
2885            case PROVENANCE: return "Provenance";
2886            case QUESTIONNAIRE: return "Questionnaire";
2887            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
2888            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
2889            case RELATEDPERSON: return "RelatedPerson";
2890            case REQUESTORCHESTRATION: return "RequestOrchestration";
2891            case REQUIREMENTS: return "Requirements";
2892            case RESEARCHSTUDY: return "ResearchStudy";
2893            case RESEARCHSUBJECT: return "ResearchSubject";
2894            case RESOURCE: return "Resource";
2895            case RISKASSESSMENT: return "RiskAssessment";
2896            case SCHEDULE: return "Schedule";
2897            case SEARCHPARAMETER: return "SearchParameter";
2898            case SERVICEREQUEST: return "ServiceRequest";
2899            case SLOT: return "Slot";
2900            case SPECIMEN: return "Specimen";
2901            case SPECIMENDEFINITION: return "SpecimenDefinition";
2902            case STRUCTUREDEFINITION: return "StructureDefinition";
2903            case STRUCTUREMAP: return "StructureMap";
2904            case SUBSCRIPTION: return "Subscription";
2905            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
2906            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
2907            case SUBSTANCE: return "Substance";
2908            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
2909            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
2910            case SUBSTANCEPOLYMER: return "SubstancePolymer";
2911            case SUBSTANCEPROTEIN: return "SubstanceProtein";
2912            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
2913            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
2914            case SUPPLYDELIVERY: return "SupplyDelivery";
2915            case SUPPLYREQUEST: return "SupplyRequest";
2916            case TASK: return "Task";
2917            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
2918            case TESTREPORT: return "TestReport";
2919            case TESTSCRIPT: return "TestScript";
2920            case TRANSPORT: return "Transport";
2921            case VALUESET: return "ValueSet";
2922            case VERIFICATIONRESULT: return "VerificationResult";
2923            case VISIONPRESCRIPTION: return "VisionPrescription";
2924            case NULL: return null;
2925            default: return "?";
2926          }
2927        }
2928    }
2929
2930  public static class AllResourceTypesEnumFactory implements EnumFactory<AllResourceTypes> {
2931    public AllResourceTypes fromCode(String codeString) throws IllegalArgumentException {
2932      if (codeString == null || "".equals(codeString))
2933            if (codeString == null || "".equals(codeString))
2934                return null;
2935        if ("Account".equals(codeString))
2936          return AllResourceTypes.ACCOUNT;
2937        if ("ActivityDefinition".equals(codeString))
2938          return AllResourceTypes.ACTIVITYDEFINITION;
2939        if ("ActorDefinition".equals(codeString))
2940          return AllResourceTypes.ACTORDEFINITION;
2941        if ("AdministrableProductDefinition".equals(codeString))
2942          return AllResourceTypes.ADMINISTRABLEPRODUCTDEFINITION;
2943        if ("AdverseEvent".equals(codeString))
2944          return AllResourceTypes.ADVERSEEVENT;
2945        if ("AllergyIntolerance".equals(codeString))
2946          return AllResourceTypes.ALLERGYINTOLERANCE;
2947        if ("Appointment".equals(codeString))
2948          return AllResourceTypes.APPOINTMENT;
2949        if ("AppointmentResponse".equals(codeString))
2950          return AllResourceTypes.APPOINTMENTRESPONSE;
2951        if ("ArtifactAssessment".equals(codeString))
2952          return AllResourceTypes.ARTIFACTASSESSMENT;
2953        if ("AuditEvent".equals(codeString))
2954          return AllResourceTypes.AUDITEVENT;
2955        if ("Basic".equals(codeString))
2956          return AllResourceTypes.BASIC;
2957        if ("Binary".equals(codeString))
2958          return AllResourceTypes.BINARY;
2959        if ("BiologicallyDerivedProduct".equals(codeString))
2960          return AllResourceTypes.BIOLOGICALLYDERIVEDPRODUCT;
2961        if ("BodyStructure".equals(codeString))
2962          return AllResourceTypes.BODYSTRUCTURE;
2963        if ("Bundle".equals(codeString))
2964          return AllResourceTypes.BUNDLE;
2965        if ("CanonicalResource".equals(codeString))
2966          return AllResourceTypes.CANONICALRESOURCE;
2967        if ("CapabilityStatement".equals(codeString))
2968          return AllResourceTypes.CAPABILITYSTATEMENT;
2969        if ("CarePlan".equals(codeString))
2970          return AllResourceTypes.CAREPLAN;
2971        if ("CareTeam".equals(codeString))
2972          return AllResourceTypes.CARETEAM;
2973        if ("ChargeItem".equals(codeString))
2974          return AllResourceTypes.CHARGEITEM;
2975        if ("ChargeItemDefinition".equals(codeString))
2976          return AllResourceTypes.CHARGEITEMDEFINITION;
2977        if ("Citation".equals(codeString))
2978          return AllResourceTypes.CITATION;
2979        if ("Claim".equals(codeString))
2980          return AllResourceTypes.CLAIM;
2981        if ("ClaimResponse".equals(codeString))
2982          return AllResourceTypes.CLAIMRESPONSE;
2983        if ("ClinicalImpression".equals(codeString))
2984          return AllResourceTypes.CLINICALIMPRESSION;
2985        if ("ClinicalUseDefinition".equals(codeString))
2986          return AllResourceTypes.CLINICALUSEDEFINITION;
2987        if ("CodeSystem".equals(codeString))
2988          return AllResourceTypes.CODESYSTEM;
2989        if ("Communication".equals(codeString))
2990          return AllResourceTypes.COMMUNICATION;
2991        if ("CommunicationRequest".equals(codeString))
2992          return AllResourceTypes.COMMUNICATIONREQUEST;
2993        if ("CompartmentDefinition".equals(codeString))
2994          return AllResourceTypes.COMPARTMENTDEFINITION;
2995        if ("Composition".equals(codeString))
2996          return AllResourceTypes.COMPOSITION;
2997        if ("ConceptMap".equals(codeString))
2998          return AllResourceTypes.CONCEPTMAP;
2999        if ("Condition".equals(codeString))
3000          return AllResourceTypes.CONDITION;
3001        if ("ConditionDefinition".equals(codeString))
3002          return AllResourceTypes.CONDITIONDEFINITION;
3003        if ("Consent".equals(codeString))
3004          return AllResourceTypes.CONSENT;
3005        if ("Contract".equals(codeString))
3006          return AllResourceTypes.CONTRACT;
3007        if ("Coverage".equals(codeString))
3008          return AllResourceTypes.COVERAGE;
3009        if ("CoverageEligibilityRequest".equals(codeString))
3010          return AllResourceTypes.COVERAGEELIGIBILITYREQUEST;
3011        if ("CoverageEligibilityResponse".equals(codeString))
3012          return AllResourceTypes.COVERAGEELIGIBILITYRESPONSE;
3013        if ("DetectedIssue".equals(codeString))
3014          return AllResourceTypes.DETECTEDISSUE;
3015        if ("Device".equals(codeString))
3016          return AllResourceTypes.DEVICE;
3017        if ("DeviceDefinition".equals(codeString))
3018          return AllResourceTypes.DEVICEDEFINITION;
3019        if ("DeviceDispense".equals(codeString))
3020          return AllResourceTypes.DEVICEDISPENSE;
3021        if ("DeviceMetric".equals(codeString))
3022          return AllResourceTypes.DEVICEMETRIC;
3023        if ("DeviceRequest".equals(codeString))
3024          return AllResourceTypes.DEVICEREQUEST;
3025        if ("DeviceUsage".equals(codeString))
3026          return AllResourceTypes.DEVICEUSAGE;
3027        if ("DiagnosticReport".equals(codeString))
3028          return AllResourceTypes.DIAGNOSTICREPORT;
3029        if ("DocumentManifest".equals(codeString))
3030          return AllResourceTypes.DOCUMENTMANIFEST;
3031        if ("DocumentReference".equals(codeString))
3032          return AllResourceTypes.DOCUMENTREFERENCE;
3033        if ("DomainResource".equals(codeString))
3034          return AllResourceTypes.DOMAINRESOURCE;
3035        if ("Encounter".equals(codeString))
3036          return AllResourceTypes.ENCOUNTER;
3037        if ("Endpoint".equals(codeString))
3038          return AllResourceTypes.ENDPOINT;
3039        if ("EnrollmentRequest".equals(codeString))
3040          return AllResourceTypes.ENROLLMENTREQUEST;
3041        if ("EnrollmentResponse".equals(codeString))
3042          return AllResourceTypes.ENROLLMENTRESPONSE;
3043        if ("EpisodeOfCare".equals(codeString))
3044          return AllResourceTypes.EPISODEOFCARE;
3045        if ("EventDefinition".equals(codeString))
3046          return AllResourceTypes.EVENTDEFINITION;
3047        if ("Evidence".equals(codeString))
3048          return AllResourceTypes.EVIDENCE;
3049        if ("EvidenceReport".equals(codeString))
3050          return AllResourceTypes.EVIDENCEREPORT;
3051        if ("EvidenceVariable".equals(codeString))
3052          return AllResourceTypes.EVIDENCEVARIABLE;
3053        if ("ExampleScenario".equals(codeString))
3054          return AllResourceTypes.EXAMPLESCENARIO;
3055        if ("ExplanationOfBenefit".equals(codeString))
3056          return AllResourceTypes.EXPLANATIONOFBENEFIT;
3057        if ("FamilyMemberHistory".equals(codeString))
3058          return AllResourceTypes.FAMILYMEMBERHISTORY;
3059        if ("Flag".equals(codeString))
3060          return AllResourceTypes.FLAG;
3061        if ("FormularyItem".equals(codeString))
3062          return AllResourceTypes.FORMULARYITEM;
3063        if ("GenomicStudy".equals(codeString))
3064          return AllResourceTypes.GENOMICSTUDY;
3065        if ("Goal".equals(codeString))
3066          return AllResourceTypes.GOAL;
3067        if ("GraphDefinition".equals(codeString))
3068          return AllResourceTypes.GRAPHDEFINITION;
3069        if ("Group".equals(codeString))
3070          return AllResourceTypes.GROUP;
3071        if ("GuidanceResponse".equals(codeString))
3072          return AllResourceTypes.GUIDANCERESPONSE;
3073        if ("HealthcareService".equals(codeString))
3074          return AllResourceTypes.HEALTHCARESERVICE;
3075        if ("ImagingSelection".equals(codeString))
3076          return AllResourceTypes.IMAGINGSELECTION;
3077        if ("ImagingStudy".equals(codeString))
3078          return AllResourceTypes.IMAGINGSTUDY;
3079        if ("Immunization".equals(codeString))
3080          return AllResourceTypes.IMMUNIZATION;
3081        if ("ImmunizationEvaluation".equals(codeString))
3082          return AllResourceTypes.IMMUNIZATIONEVALUATION;
3083        if ("ImmunizationRecommendation".equals(codeString))
3084          return AllResourceTypes.IMMUNIZATIONRECOMMENDATION;
3085        if ("ImplementationGuide".equals(codeString))
3086          return AllResourceTypes.IMPLEMENTATIONGUIDE;
3087        if ("Ingredient".equals(codeString))
3088          return AllResourceTypes.INGREDIENT;
3089        if ("InsurancePlan".equals(codeString))
3090          return AllResourceTypes.INSURANCEPLAN;
3091        if ("InventoryReport".equals(codeString))
3092          return AllResourceTypes.INVENTORYREPORT;
3093        if ("Invoice".equals(codeString))
3094          return AllResourceTypes.INVOICE;
3095        if ("Library".equals(codeString))
3096          return AllResourceTypes.LIBRARY;
3097        if ("Linkage".equals(codeString))
3098          return AllResourceTypes.LINKAGE;
3099        if ("List".equals(codeString))
3100          return AllResourceTypes.LIST;
3101        if ("Location".equals(codeString))
3102          return AllResourceTypes.LOCATION;
3103        if ("ManufacturedItemDefinition".equals(codeString))
3104          return AllResourceTypes.MANUFACTUREDITEMDEFINITION;
3105        if ("Measure".equals(codeString))
3106          return AllResourceTypes.MEASURE;
3107        if ("MeasureReport".equals(codeString))
3108          return AllResourceTypes.MEASUREREPORT;
3109        if ("Medication".equals(codeString))
3110          return AllResourceTypes.MEDICATION;
3111        if ("MedicationAdministration".equals(codeString))
3112          return AllResourceTypes.MEDICATIONADMINISTRATION;
3113        if ("MedicationDispense".equals(codeString))
3114          return AllResourceTypes.MEDICATIONDISPENSE;
3115        if ("MedicationKnowledge".equals(codeString))
3116          return AllResourceTypes.MEDICATIONKNOWLEDGE;
3117        if ("MedicationRequest".equals(codeString))
3118          return AllResourceTypes.MEDICATIONREQUEST;
3119        if ("MedicationUsage".equals(codeString))
3120          return AllResourceTypes.MEDICATIONUSAGE;
3121        if ("MedicationStatement".equals(codeString))
3122          return AllResourceTypes.MEDICATIONUSAGE;
3123        if ("MedicinalProductDefinition".equals(codeString))
3124          return AllResourceTypes.MEDICINALPRODUCTDEFINITION;
3125        if ("MessageDefinition".equals(codeString))
3126          return AllResourceTypes.MESSAGEDEFINITION;
3127        if ("MessageHeader".equals(codeString))
3128          return AllResourceTypes.MESSAGEHEADER;
3129        if ("MetadataResource".equals(codeString))
3130          return AllResourceTypes.METADATARESOURCE;
3131        if ("MolecularSequence".equals(codeString))
3132          return AllResourceTypes.MOLECULARSEQUENCE;
3133        if ("NamingSystem".equals(codeString))
3134          return AllResourceTypes.NAMINGSYSTEM;
3135        if ("NutritionIntake".equals(codeString))
3136          return AllResourceTypes.NUTRITIONINTAKE;
3137        if ("NutritionOrder".equals(codeString))
3138          return AllResourceTypes.NUTRITIONORDER;
3139        if ("NutritionProduct".equals(codeString))
3140          return AllResourceTypes.NUTRITIONPRODUCT;
3141        if ("Observation".equals(codeString))
3142          return AllResourceTypes.OBSERVATION;
3143        if ("ObservationDefinition".equals(codeString))
3144          return AllResourceTypes.OBSERVATIONDEFINITION;
3145        if ("OperationDefinition".equals(codeString))
3146          return AllResourceTypes.OPERATIONDEFINITION;
3147        if ("OperationOutcome".equals(codeString))
3148          return AllResourceTypes.OPERATIONOUTCOME;
3149        if ("Organization".equals(codeString))
3150          return AllResourceTypes.ORGANIZATION;
3151        if ("OrganizationAffiliation".equals(codeString))
3152          return AllResourceTypes.ORGANIZATIONAFFILIATION;
3153        if ("PackagedProductDefinition".equals(codeString))
3154          return AllResourceTypes.PACKAGEDPRODUCTDEFINITION;
3155        if ("Parameters".equals(codeString))
3156          return AllResourceTypes.PARAMETERS;
3157        if ("Patient".equals(codeString))
3158          return AllResourceTypes.PATIENT;
3159        if ("PaymentNotice".equals(codeString))
3160          return AllResourceTypes.PAYMENTNOTICE;
3161        if ("PaymentReconciliation".equals(codeString))
3162          return AllResourceTypes.PAYMENTRECONCILIATION;
3163        if ("Permission".equals(codeString))
3164          return AllResourceTypes.PERMISSION;
3165        if ("Person".equals(codeString))
3166          return AllResourceTypes.PERSON;
3167        if ("PlanDefinition".equals(codeString))
3168          return AllResourceTypes.PLANDEFINITION;
3169        if ("Practitioner".equals(codeString))
3170          return AllResourceTypes.PRACTITIONER;
3171        if ("PractitionerRole".equals(codeString))
3172          return AllResourceTypes.PRACTITIONERROLE;
3173        if ("Procedure".equals(codeString))
3174          return AllResourceTypes.PROCEDURE;
3175        if ("Provenance".equals(codeString))
3176          return AllResourceTypes.PROVENANCE;
3177        if ("Questionnaire".equals(codeString))
3178          return AllResourceTypes.QUESTIONNAIRE;
3179        if ("QuestionnaireResponse".equals(codeString))
3180          return AllResourceTypes.QUESTIONNAIRERESPONSE;
3181        if ("RegulatedAuthorization".equals(codeString))
3182          return AllResourceTypes.REGULATEDAUTHORIZATION;
3183        if ("RelatedPerson".equals(codeString))
3184          return AllResourceTypes.RELATEDPERSON;
3185        if ("RequestOrchestration".equals(codeString))
3186          return AllResourceTypes.REQUESTORCHESTRATION;
3187        if ("Requirements".equals(codeString))
3188          return AllResourceTypes.REQUIREMENTS;
3189        if ("ResearchStudy".equals(codeString))
3190          return AllResourceTypes.RESEARCHSTUDY;
3191        if ("ResearchSubject".equals(codeString))
3192          return AllResourceTypes.RESEARCHSUBJECT;
3193        if ("Resource".equals(codeString))
3194          return AllResourceTypes.RESOURCE;
3195        if ("RiskAssessment".equals(codeString))
3196          return AllResourceTypes.RISKASSESSMENT;
3197        if ("Schedule".equals(codeString))
3198          return AllResourceTypes.SCHEDULE;
3199        if ("SearchParameter".equals(codeString))
3200          return AllResourceTypes.SEARCHPARAMETER;
3201        if ("ServiceRequest".equals(codeString))
3202          return AllResourceTypes.SERVICEREQUEST;
3203        if ("Slot".equals(codeString))
3204          return AllResourceTypes.SLOT;
3205        if ("Specimen".equals(codeString))
3206          return AllResourceTypes.SPECIMEN;
3207        if ("SpecimenDefinition".equals(codeString))
3208          return AllResourceTypes.SPECIMENDEFINITION;
3209        if ("StructureDefinition".equals(codeString))
3210          return AllResourceTypes.STRUCTUREDEFINITION;
3211        if ("StructureMap".equals(codeString))
3212          return AllResourceTypes.STRUCTUREMAP;
3213        if ("Subscription".equals(codeString))
3214          return AllResourceTypes.SUBSCRIPTION;
3215        if ("SubscriptionStatus".equals(codeString))
3216          return AllResourceTypes.SUBSCRIPTIONSTATUS;
3217        if ("SubscriptionTopic".equals(codeString))
3218          return AllResourceTypes.SUBSCRIPTIONTOPIC;
3219        if ("Substance".equals(codeString))
3220          return AllResourceTypes.SUBSTANCE;
3221        if ("SubstanceDefinition".equals(codeString))
3222          return AllResourceTypes.SUBSTANCEDEFINITION;
3223        if ("SubstanceNucleicAcid".equals(codeString))
3224          return AllResourceTypes.SUBSTANCENUCLEICACID;
3225        if ("SubstancePolymer".equals(codeString))
3226          return AllResourceTypes.SUBSTANCEPOLYMER;
3227        if ("SubstanceProtein".equals(codeString))
3228          return AllResourceTypes.SUBSTANCEPROTEIN;
3229        if ("SubstanceReferenceInformation".equals(codeString))
3230          return AllResourceTypes.SUBSTANCEREFERENCEINFORMATION;
3231        if ("SubstanceSourceMaterial".equals(codeString))
3232          return AllResourceTypes.SUBSTANCESOURCEMATERIAL;
3233        if ("SupplyDelivery".equals(codeString))
3234          return AllResourceTypes.SUPPLYDELIVERY;
3235        if ("SupplyRequest".equals(codeString))
3236          return AllResourceTypes.SUPPLYREQUEST;
3237        if ("Task".equals(codeString))
3238          return AllResourceTypes.TASK;
3239        if ("TerminologyCapabilities".equals(codeString))
3240          return AllResourceTypes.TERMINOLOGYCAPABILITIES;
3241        if ("TestReport".equals(codeString))
3242          return AllResourceTypes.TESTREPORT;
3243        if ("TestScript".equals(codeString))
3244          return AllResourceTypes.TESTSCRIPT;
3245        if ("Transport".equals(codeString))
3246          return AllResourceTypes.TRANSPORT;
3247        if ("ValueSet".equals(codeString))
3248          return AllResourceTypes.VALUESET;
3249        if ("VerificationResult".equals(codeString))
3250          return AllResourceTypes.VERIFICATIONRESULT;
3251        if ("VisionPrescription".equals(codeString))
3252          return AllResourceTypes.VISIONPRESCRIPTION;
3253        throw new IllegalArgumentException("Unknown AllResourceTypes code '"+codeString+"'");
3254        }
3255        public Enumeration<AllResourceTypes> fromType(PrimitiveType<?> code) throws FHIRException {
3256          if (code == null)
3257            return null;
3258          if (code.isEmpty())
3259            return new Enumeration<AllResourceTypes>(this, AllResourceTypes.NULL, code);
3260          String codeString = ((PrimitiveType) code).asStringValue();
3261          if (codeString == null || "".equals(codeString))
3262            return new Enumeration<AllResourceTypes>(this, AllResourceTypes.NULL, code);
3263        if ("Account".equals(codeString))
3264          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ACCOUNT, code);
3265        if ("ActivityDefinition".equals(codeString))
3266          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ACTIVITYDEFINITION, code);
3267        if ("ActorDefinition".equals(codeString))
3268          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ACTORDEFINITION, code);
3269        if ("AdministrableProductDefinition".equals(codeString))
3270          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ADMINISTRABLEPRODUCTDEFINITION, code);
3271        if ("AdverseEvent".equals(codeString))
3272          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ADVERSEEVENT, code);
3273        if ("AllergyIntolerance".equals(codeString))
3274          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ALLERGYINTOLERANCE, code);
3275        if ("Appointment".equals(codeString))
3276          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.APPOINTMENT, code);
3277        if ("AppointmentResponse".equals(codeString))
3278          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.APPOINTMENTRESPONSE, code);
3279        if ("ArtifactAssessment".equals(codeString))
3280          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ARTIFACTASSESSMENT, code);
3281        if ("AuditEvent".equals(codeString))
3282          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.AUDITEVENT, code);
3283        if ("Basic".equals(codeString))
3284          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.BASIC, code);
3285        if ("Binary".equals(codeString))
3286          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.BINARY, code);
3287        if ("BiologicallyDerivedProduct".equals(codeString))
3288          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.BIOLOGICALLYDERIVEDPRODUCT, code);
3289        if ("BodyStructure".equals(codeString))
3290          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.BODYSTRUCTURE, code);
3291        if ("Bundle".equals(codeString))
3292          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.BUNDLE, code);
3293        if ("CanonicalResource".equals(codeString))
3294          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CANONICALRESOURCE, code);
3295        if ("CapabilityStatement".equals(codeString))
3296          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CAPABILITYSTATEMENT, code);
3297        if ("CarePlan".equals(codeString))
3298          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CAREPLAN, code);
3299        if ("CareTeam".equals(codeString))
3300          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CARETEAM, code);
3301        if ("ChargeItem".equals(codeString))
3302          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CHARGEITEM, code);
3303        if ("ChargeItemDefinition".equals(codeString))
3304          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CHARGEITEMDEFINITION, code);
3305        if ("Citation".equals(codeString))
3306          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CITATION, code);
3307        if ("Claim".equals(codeString))
3308          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CLAIM, code);
3309        if ("ClaimResponse".equals(codeString))
3310          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CLAIMRESPONSE, code);
3311        if ("ClinicalImpression".equals(codeString))
3312          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CLINICALIMPRESSION, code);
3313        if ("ClinicalUseDefinition".equals(codeString))
3314          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CLINICALUSEDEFINITION, code);
3315        if ("CodeSystem".equals(codeString))
3316          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CODESYSTEM, code);
3317        if ("Communication".equals(codeString))
3318          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.COMMUNICATION, code);
3319        if ("CommunicationRequest".equals(codeString))
3320          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.COMMUNICATIONREQUEST, code);
3321        if ("CompartmentDefinition".equals(codeString))
3322          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.COMPARTMENTDEFINITION, code);
3323        if ("Composition".equals(codeString))
3324          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.COMPOSITION, code);
3325        if ("ConceptMap".equals(codeString))
3326          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CONCEPTMAP, code);
3327        if ("Condition".equals(codeString))
3328          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CONDITION, code);
3329        if ("ConditionDefinition".equals(codeString))
3330          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CONDITIONDEFINITION, code);
3331        if ("Consent".equals(codeString))
3332          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CONSENT, code);
3333        if ("Contract".equals(codeString))
3334          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.CONTRACT, code);
3335        if ("Coverage".equals(codeString))
3336          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.COVERAGE, code);
3337        if ("CoverageEligibilityRequest".equals(codeString))
3338          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.COVERAGEELIGIBILITYREQUEST, code);
3339        if ("CoverageEligibilityResponse".equals(codeString))
3340          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.COVERAGEELIGIBILITYRESPONSE, code);
3341        if ("DetectedIssue".equals(codeString))
3342          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DETECTEDISSUE, code);
3343        if ("Device".equals(codeString))
3344          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DEVICE, code);
3345        if ("DeviceDefinition".equals(codeString))
3346          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DEVICEDEFINITION, code);
3347        if ("DeviceDispense".equals(codeString))
3348          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DEVICEDISPENSE, code);
3349        if ("DeviceMetric".equals(codeString))
3350          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DEVICEMETRIC, code);
3351        if ("DeviceRequest".equals(codeString))
3352          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DEVICEREQUEST, code);
3353        if ("DeviceUsage".equals(codeString))
3354          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DEVICEUSAGE, code);
3355        if ("DiagnosticReport".equals(codeString))
3356          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DIAGNOSTICREPORT, code);
3357        if ("DocumentManifest".equals(codeString))
3358          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DOCUMENTMANIFEST, code);
3359        if ("DocumentReference".equals(codeString))
3360          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DOCUMENTREFERENCE, code);
3361        if ("DomainResource".equals(codeString))
3362          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.DOMAINRESOURCE, code);
3363        if ("Encounter".equals(codeString))
3364          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ENCOUNTER, code);
3365        if ("Endpoint".equals(codeString))
3366          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ENDPOINT, code);
3367        if ("EnrollmentRequest".equals(codeString))
3368          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ENROLLMENTREQUEST, code);
3369        if ("EnrollmentResponse".equals(codeString))
3370          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ENROLLMENTRESPONSE, code);
3371        if ("EpisodeOfCare".equals(codeString))
3372          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.EPISODEOFCARE, code);
3373        if ("EventDefinition".equals(codeString))
3374          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.EVENTDEFINITION, code);
3375        if ("Evidence".equals(codeString))
3376          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.EVIDENCE, code);
3377        if ("EvidenceReport".equals(codeString))
3378          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.EVIDENCEREPORT, code);
3379        if ("EvidenceVariable".equals(codeString))
3380          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.EVIDENCEVARIABLE, code);
3381        if ("ExampleScenario".equals(codeString))
3382          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.EXAMPLESCENARIO, code);
3383        if ("ExplanationOfBenefit".equals(codeString))
3384          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.EXPLANATIONOFBENEFIT, code);
3385        if ("FamilyMemberHistory".equals(codeString))
3386          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.FAMILYMEMBERHISTORY, code);
3387        if ("Flag".equals(codeString))
3388          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.FLAG, code);
3389        if ("FormularyItem".equals(codeString))
3390          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.FORMULARYITEM, code);
3391        if ("GenomicStudy".equals(codeString))
3392          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.GENOMICSTUDY, code);
3393        if ("Goal".equals(codeString))
3394          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.GOAL, code);
3395        if ("GraphDefinition".equals(codeString))
3396          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.GRAPHDEFINITION, code);
3397        if ("Group".equals(codeString))
3398          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.GROUP, code);
3399        if ("GuidanceResponse".equals(codeString))
3400          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.GUIDANCERESPONSE, code);
3401        if ("HealthcareService".equals(codeString))
3402          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.HEALTHCARESERVICE, code);
3403        if ("ImagingSelection".equals(codeString))
3404          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.IMAGINGSELECTION, code);
3405        if ("ImagingStudy".equals(codeString))
3406          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.IMAGINGSTUDY, code);
3407        if ("Immunization".equals(codeString))
3408          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.IMMUNIZATION, code);
3409        if ("ImmunizationEvaluation".equals(codeString))
3410          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.IMMUNIZATIONEVALUATION, code);
3411        if ("ImmunizationRecommendation".equals(codeString))
3412          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.IMMUNIZATIONRECOMMENDATION, code);
3413        if ("ImplementationGuide".equals(codeString))
3414          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.IMPLEMENTATIONGUIDE, code);
3415        if ("Ingredient".equals(codeString))
3416          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.INGREDIENT, code);
3417        if ("InsurancePlan".equals(codeString))
3418          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.INSURANCEPLAN, code);
3419        if ("InventoryReport".equals(codeString))
3420          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.INVENTORYREPORT, code);
3421        if ("Invoice".equals(codeString))
3422          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.INVOICE, code);
3423        if ("Library".equals(codeString))
3424          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.LIBRARY, code);
3425        if ("Linkage".equals(codeString))
3426          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.LINKAGE, code);
3427        if ("List".equals(codeString))
3428          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.LIST, code);
3429        if ("Location".equals(codeString))
3430          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.LOCATION, code);
3431        if ("ManufacturedItemDefinition".equals(codeString))
3432          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MANUFACTUREDITEMDEFINITION, code);
3433        if ("Measure".equals(codeString))
3434          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEASURE, code);
3435        if ("MeasureReport".equals(codeString))
3436          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEASUREREPORT, code);
3437        if ("Medication".equals(codeString))
3438          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICATION, code);
3439        if ("MedicationAdministration".equals(codeString))
3440          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICATIONADMINISTRATION, code);
3441        if ("MedicationDispense".equals(codeString))
3442          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICATIONDISPENSE, code);
3443        if ("MedicationKnowledge".equals(codeString))
3444          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICATIONKNOWLEDGE, code);
3445        if ("MedicationRequest".equals(codeString))
3446          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICATIONREQUEST, code);
3447        if ("MedicationUsage".equals(codeString))
3448          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICATIONUSAGE, code);
3449        if ("MedicationStatement".equals(codeString))
3450          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICATIONUSAGE, code);
3451        if ("MedicinalProductDefinition".equals(codeString))
3452          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MEDICINALPRODUCTDEFINITION, code);
3453        if ("MessageDefinition".equals(codeString))
3454          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MESSAGEDEFINITION, code);
3455        if ("MessageHeader".equals(codeString))
3456          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MESSAGEHEADER, code);
3457        if ("MetadataResource".equals(codeString))
3458          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.METADATARESOURCE, code);
3459        if ("MolecularSequence".equals(codeString))
3460          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.MOLECULARSEQUENCE, code);
3461        if ("NamingSystem".equals(codeString))
3462          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.NAMINGSYSTEM, code);
3463        if ("NutritionIntake".equals(codeString))
3464          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.NUTRITIONINTAKE, code);
3465        if ("NutritionOrder".equals(codeString))
3466          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.NUTRITIONORDER, code);
3467        if ("NutritionProduct".equals(codeString))
3468          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.NUTRITIONPRODUCT, code);
3469        if ("Observation".equals(codeString))
3470          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.OBSERVATION, code);
3471        if ("ObservationDefinition".equals(codeString))
3472          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.OBSERVATIONDEFINITION, code);
3473        if ("OperationDefinition".equals(codeString))
3474          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.OPERATIONDEFINITION, code);
3475        if ("OperationOutcome".equals(codeString))
3476          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.OPERATIONOUTCOME, code);
3477        if ("Organization".equals(codeString))
3478          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ORGANIZATION, code);
3479        if ("OrganizationAffiliation".equals(codeString))
3480          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.ORGANIZATIONAFFILIATION, code);
3481        if ("PackagedProductDefinition".equals(codeString))
3482          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PACKAGEDPRODUCTDEFINITION, code);
3483        if ("Parameters".equals(codeString))
3484          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PARAMETERS, code);
3485        if ("Patient".equals(codeString))
3486          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PATIENT, code);
3487        if ("PaymentNotice".equals(codeString))
3488          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PAYMENTNOTICE, code);
3489        if ("PaymentReconciliation".equals(codeString))
3490          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PAYMENTRECONCILIATION, code);
3491        if ("Permission".equals(codeString))
3492          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PERMISSION, code);
3493        if ("Person".equals(codeString))
3494          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PERSON, code);
3495        if ("PlanDefinition".equals(codeString))
3496          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PLANDEFINITION, code);
3497        if ("Practitioner".equals(codeString))
3498          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PRACTITIONER, code);
3499        if ("PractitionerRole".equals(codeString))
3500          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PRACTITIONERROLE, code);
3501        if ("Procedure".equals(codeString))
3502          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PROCEDURE, code);
3503        if ("Provenance".equals(codeString))
3504          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.PROVENANCE, code);
3505        if ("Questionnaire".equals(codeString))
3506          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.QUESTIONNAIRE, code);
3507        if ("QuestionnaireResponse".equals(codeString))
3508          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.QUESTIONNAIRERESPONSE, code);
3509        if ("RegulatedAuthorization".equals(codeString))
3510          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.REGULATEDAUTHORIZATION, code);
3511        if ("RelatedPerson".equals(codeString))
3512          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.RELATEDPERSON, code);
3513        if ("RequestOrchestration".equals(codeString))
3514          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.REQUESTORCHESTRATION, code);
3515        if ("Requirements".equals(codeString))
3516          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.REQUIREMENTS, code);
3517        if ("ResearchStudy".equals(codeString))
3518          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.RESEARCHSTUDY, code);
3519        if ("ResearchSubject".equals(codeString))
3520          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.RESEARCHSUBJECT, code);
3521        if ("Resource".equals(codeString))
3522          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.RESOURCE, code);
3523        if ("RiskAssessment".equals(codeString))
3524          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.RISKASSESSMENT, code);
3525        if ("Schedule".equals(codeString))
3526          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SCHEDULE, code);
3527        if ("SearchParameter".equals(codeString))
3528          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SEARCHPARAMETER, code);
3529        if ("ServiceRequest".equals(codeString))
3530          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SERVICEREQUEST, code);
3531        if ("Slot".equals(codeString))
3532          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SLOT, code);
3533        if ("Specimen".equals(codeString))
3534          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SPECIMEN, code);
3535        if ("SpecimenDefinition".equals(codeString))
3536          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SPECIMENDEFINITION, code);
3537        if ("StructureDefinition".equals(codeString))
3538          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.STRUCTUREDEFINITION, code);
3539        if ("StructureMap".equals(codeString))
3540          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.STRUCTUREMAP, code);
3541        if ("Subscription".equals(codeString))
3542          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSCRIPTION, code);
3543        if ("SubscriptionStatus".equals(codeString))
3544          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSCRIPTIONSTATUS, code);
3545        if ("SubscriptionTopic".equals(codeString))
3546          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSCRIPTIONTOPIC, code);
3547        if ("Substance".equals(codeString))
3548          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSTANCE, code);
3549        if ("SubstanceDefinition".equals(codeString))
3550          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSTANCEDEFINITION, code);
3551        if ("SubstanceNucleicAcid".equals(codeString))
3552          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSTANCENUCLEICACID, code);
3553        if ("SubstancePolymer".equals(codeString))
3554          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSTANCEPOLYMER, code);
3555        if ("SubstanceProtein".equals(codeString))
3556          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSTANCEPROTEIN, code);
3557        if ("SubstanceReferenceInformation".equals(codeString))
3558          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSTANCEREFERENCEINFORMATION, code);
3559        if ("SubstanceSourceMaterial".equals(codeString))
3560          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUBSTANCESOURCEMATERIAL, code);
3561        if ("SupplyDelivery".equals(codeString))
3562          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUPPLYDELIVERY, code);
3563        if ("SupplyRequest".equals(codeString))
3564          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.SUPPLYREQUEST, code);
3565        if ("Task".equals(codeString))
3566          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.TASK, code);
3567        if ("TerminologyCapabilities".equals(codeString))
3568          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.TERMINOLOGYCAPABILITIES, code);
3569        if ("TestReport".equals(codeString))
3570          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.TESTREPORT, code);
3571        if ("TestScript".equals(codeString))
3572          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.TESTSCRIPT, code);
3573        if ("Transport".equals(codeString))
3574          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.TRANSPORT, code);
3575        if ("ValueSet".equals(codeString))
3576          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.VALUESET, code);
3577        if ("VerificationResult".equals(codeString))
3578          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.VERIFICATIONRESULT, code);
3579        if ("VisionPrescription".equals(codeString))
3580          return new Enumeration<AllResourceTypes>(this, AllResourceTypes.VISIONPRESCRIPTION, code);
3581        throw new FHIRException("Unknown AllResourceTypes code '"+codeString+"'");
3582        }
3583    public String toCode(AllResourceTypes code) {
3584      if (code == AllResourceTypes.ACCOUNT)
3585        return "Account";
3586      if (code == AllResourceTypes.ACTIVITYDEFINITION)
3587        return "ActivityDefinition";
3588      if (code == AllResourceTypes.ACTORDEFINITION)
3589        return "ActorDefinition";
3590      if (code == AllResourceTypes.ADMINISTRABLEPRODUCTDEFINITION)
3591        return "AdministrableProductDefinition";
3592      if (code == AllResourceTypes.ADVERSEEVENT)
3593        return "AdverseEvent";
3594      if (code == AllResourceTypes.ALLERGYINTOLERANCE)
3595        return "AllergyIntolerance";
3596      if (code == AllResourceTypes.APPOINTMENT)
3597        return "Appointment";
3598      if (code == AllResourceTypes.APPOINTMENTRESPONSE)
3599        return "AppointmentResponse";
3600      if (code == AllResourceTypes.ARTIFACTASSESSMENT)
3601        return "ArtifactAssessment";
3602      if (code == AllResourceTypes.AUDITEVENT)
3603        return "AuditEvent";
3604      if (code == AllResourceTypes.BASIC)
3605        return "Basic";
3606      if (code == AllResourceTypes.BINARY)
3607        return "Binary";
3608      if (code == AllResourceTypes.BIOLOGICALLYDERIVEDPRODUCT)
3609        return "BiologicallyDerivedProduct";
3610      if (code == AllResourceTypes.BODYSTRUCTURE)
3611        return "BodyStructure";
3612      if (code == AllResourceTypes.BUNDLE)
3613        return "Bundle";
3614      if (code == AllResourceTypes.CANONICALRESOURCE)
3615        return "CanonicalResource";
3616      if (code == AllResourceTypes.CAPABILITYSTATEMENT)
3617        return "CapabilityStatement";
3618      if (code == AllResourceTypes.CAREPLAN)
3619        return "CarePlan";
3620      if (code == AllResourceTypes.CARETEAM)
3621        return "CareTeam";
3622      if (code == AllResourceTypes.CHARGEITEM)
3623        return "ChargeItem";
3624      if (code == AllResourceTypes.CHARGEITEMDEFINITION)
3625        return "ChargeItemDefinition";
3626      if (code == AllResourceTypes.CITATION)
3627        return "Citation";
3628      if (code == AllResourceTypes.CLAIM)
3629        return "Claim";
3630      if (code == AllResourceTypes.CLAIMRESPONSE)
3631        return "ClaimResponse";
3632      if (code == AllResourceTypes.CLINICALIMPRESSION)
3633        return "ClinicalImpression";
3634      if (code == AllResourceTypes.CLINICALUSEDEFINITION)
3635        return "ClinicalUseDefinition";
3636      if (code == AllResourceTypes.CODESYSTEM)
3637        return "CodeSystem";
3638      if (code == AllResourceTypes.COMMUNICATION)
3639        return "Communication";
3640      if (code == AllResourceTypes.COMMUNICATIONREQUEST)
3641        return "CommunicationRequest";
3642      if (code == AllResourceTypes.COMPARTMENTDEFINITION)
3643        return "CompartmentDefinition";
3644      if (code == AllResourceTypes.COMPOSITION)
3645        return "Composition";
3646      if (code == AllResourceTypes.CONCEPTMAP)
3647        return "ConceptMap";
3648      if (code == AllResourceTypes.CONDITION)
3649        return "Condition";
3650      if (code == AllResourceTypes.CONDITIONDEFINITION)
3651        return "ConditionDefinition";
3652      if (code == AllResourceTypes.CONSENT)
3653        return "Consent";
3654      if (code == AllResourceTypes.CONTRACT)
3655        return "Contract";
3656      if (code == AllResourceTypes.COVERAGE)
3657        return "Coverage";
3658      if (code == AllResourceTypes.COVERAGEELIGIBILITYREQUEST)
3659        return "CoverageEligibilityRequest";
3660      if (code == AllResourceTypes.COVERAGEELIGIBILITYRESPONSE)
3661        return "CoverageEligibilityResponse";
3662      if (code == AllResourceTypes.DETECTEDISSUE)
3663        return "DetectedIssue";
3664      if (code == AllResourceTypes.DEVICE)
3665        return "Device";
3666      if (code == AllResourceTypes.DEVICEDEFINITION)
3667        return "DeviceDefinition";
3668      if (code == AllResourceTypes.DEVICEDISPENSE)
3669        return "DeviceDispense";
3670      if (code == AllResourceTypes.DEVICEMETRIC)
3671        return "DeviceMetric";
3672      if (code == AllResourceTypes.DEVICEREQUEST)
3673        return "DeviceRequest";
3674      if (code == AllResourceTypes.DEVICEUSAGE)
3675        return "DeviceUsage";
3676      if (code == AllResourceTypes.DIAGNOSTICREPORT)
3677        return "DiagnosticReport";
3678      if (code == AllResourceTypes.DOCUMENTMANIFEST)
3679        return "DocumentManifest";
3680      if (code == AllResourceTypes.DOCUMENTREFERENCE)
3681        return "DocumentReference";
3682      if (code == AllResourceTypes.DOMAINRESOURCE)
3683        return "DomainResource";
3684      if (code == AllResourceTypes.ENCOUNTER)
3685        return "Encounter";
3686      if (code == AllResourceTypes.ENDPOINT)
3687        return "Endpoint";
3688      if (code == AllResourceTypes.ENROLLMENTREQUEST)
3689        return "EnrollmentRequest";
3690      if (code == AllResourceTypes.ENROLLMENTRESPONSE)
3691        return "EnrollmentResponse";
3692      if (code == AllResourceTypes.EPISODEOFCARE)
3693        return "EpisodeOfCare";
3694      if (code == AllResourceTypes.EVENTDEFINITION)
3695        return "EventDefinition";
3696      if (code == AllResourceTypes.EVIDENCE)
3697        return "Evidence";
3698      if (code == AllResourceTypes.EVIDENCEREPORT)
3699        return "EvidenceReport";
3700      if (code == AllResourceTypes.EVIDENCEVARIABLE)
3701        return "EvidenceVariable";
3702      if (code == AllResourceTypes.EXAMPLESCENARIO)
3703        return "ExampleScenario";
3704      if (code == AllResourceTypes.EXPLANATIONOFBENEFIT)
3705        return "ExplanationOfBenefit";
3706      if (code == AllResourceTypes.FAMILYMEMBERHISTORY)
3707        return "FamilyMemberHistory";
3708      if (code == AllResourceTypes.FLAG)
3709        return "Flag";
3710      if (code == AllResourceTypes.FORMULARYITEM)
3711        return "FormularyItem";
3712      if (code == AllResourceTypes.GENOMICSTUDY)
3713        return "GenomicStudy";
3714      if (code == AllResourceTypes.GOAL)
3715        return "Goal";
3716      if (code == AllResourceTypes.GRAPHDEFINITION)
3717        return "GraphDefinition";
3718      if (code == AllResourceTypes.GROUP)
3719        return "Group";
3720      if (code == AllResourceTypes.GUIDANCERESPONSE)
3721        return "GuidanceResponse";
3722      if (code == AllResourceTypes.HEALTHCARESERVICE)
3723        return "HealthcareService";
3724      if (code == AllResourceTypes.IMAGINGSELECTION)
3725        return "ImagingSelection";
3726      if (code == AllResourceTypes.IMAGINGSTUDY)
3727        return "ImagingStudy";
3728      if (code == AllResourceTypes.IMMUNIZATION)
3729        return "Immunization";
3730      if (code == AllResourceTypes.IMMUNIZATIONEVALUATION)
3731        return "ImmunizationEvaluation";
3732      if (code == AllResourceTypes.IMMUNIZATIONRECOMMENDATION)
3733        return "ImmunizationRecommendation";
3734      if (code == AllResourceTypes.IMPLEMENTATIONGUIDE)
3735        return "ImplementationGuide";
3736      if (code == AllResourceTypes.INGREDIENT)
3737        return "Ingredient";
3738      if (code == AllResourceTypes.INSURANCEPLAN)
3739        return "InsurancePlan";
3740      if (code == AllResourceTypes.INVENTORYREPORT)
3741        return "InventoryReport";
3742      if (code == AllResourceTypes.INVOICE)
3743        return "Invoice";
3744      if (code == AllResourceTypes.LIBRARY)
3745        return "Library";
3746      if (code == AllResourceTypes.LINKAGE)
3747        return "Linkage";
3748      if (code == AllResourceTypes.LIST)
3749        return "List";
3750      if (code == AllResourceTypes.LOCATION)
3751        return "Location";
3752      if (code == AllResourceTypes.MANUFACTUREDITEMDEFINITION)
3753        return "ManufacturedItemDefinition";
3754      if (code == AllResourceTypes.MEASURE)
3755        return "Measure";
3756      if (code == AllResourceTypes.MEASUREREPORT)
3757        return "MeasureReport";
3758      if (code == AllResourceTypes.MEDICATION)
3759        return "Medication";
3760      if (code == AllResourceTypes.MEDICATIONADMINISTRATION)
3761        return "MedicationAdministration";
3762      if (code == AllResourceTypes.MEDICATIONDISPENSE)
3763        return "MedicationDispense";
3764      if (code == AllResourceTypes.MEDICATIONKNOWLEDGE)
3765        return "MedicationKnowledge";
3766      if (code == AllResourceTypes.MEDICATIONREQUEST)
3767        return "MedicationRequest";
3768      if (code == AllResourceTypes.MEDICATIONUSAGE)
3769        return "MedicationUsage";
3770      if (code == AllResourceTypes.MEDICINALPRODUCTDEFINITION)
3771        return "MedicinalProductDefinition";
3772      if (code == AllResourceTypes.MESSAGEDEFINITION)
3773        return "MessageDefinition";
3774      if (code == AllResourceTypes.MESSAGEHEADER)
3775        return "MessageHeader";
3776      if (code == AllResourceTypes.METADATARESOURCE)
3777        return "MetadataResource";
3778      if (code == AllResourceTypes.MOLECULARSEQUENCE)
3779        return "MolecularSequence";
3780      if (code == AllResourceTypes.NAMINGSYSTEM)
3781        return "NamingSystem";
3782      if (code == AllResourceTypes.NUTRITIONINTAKE)
3783        return "NutritionIntake";
3784      if (code == AllResourceTypes.NUTRITIONORDER)
3785        return "NutritionOrder";
3786      if (code == AllResourceTypes.NUTRITIONPRODUCT)
3787        return "NutritionProduct";
3788      if (code == AllResourceTypes.OBSERVATION)
3789        return "Observation";
3790      if (code == AllResourceTypes.OBSERVATIONDEFINITION)
3791        return "ObservationDefinition";
3792      if (code == AllResourceTypes.OPERATIONDEFINITION)
3793        return "OperationDefinition";
3794      if (code == AllResourceTypes.OPERATIONOUTCOME)
3795        return "OperationOutcome";
3796      if (code == AllResourceTypes.ORGANIZATION)
3797        return "Organization";
3798      if (code == AllResourceTypes.ORGANIZATIONAFFILIATION)
3799        return "OrganizationAffiliation";
3800      if (code == AllResourceTypes.PACKAGEDPRODUCTDEFINITION)
3801        return "PackagedProductDefinition";
3802      if (code == AllResourceTypes.PARAMETERS)
3803        return "Parameters";
3804      if (code == AllResourceTypes.PATIENT)
3805        return "Patient";
3806      if (code == AllResourceTypes.PAYMENTNOTICE)
3807        return "PaymentNotice";
3808      if (code == AllResourceTypes.PAYMENTRECONCILIATION)
3809        return "PaymentReconciliation";
3810      if (code == AllResourceTypes.PERMISSION)
3811        return "Permission";
3812      if (code == AllResourceTypes.PERSON)
3813        return "Person";
3814      if (code == AllResourceTypes.PLANDEFINITION)
3815        return "PlanDefinition";
3816      if (code == AllResourceTypes.PRACTITIONER)
3817        return "Practitioner";
3818      if (code == AllResourceTypes.PRACTITIONERROLE)
3819        return "PractitionerRole";
3820      if (code == AllResourceTypes.PROCEDURE)
3821        return "Procedure";
3822      if (code == AllResourceTypes.PROVENANCE)
3823        return "Provenance";
3824      if (code == AllResourceTypes.QUESTIONNAIRE)
3825        return "Questionnaire";
3826      if (code == AllResourceTypes.QUESTIONNAIRERESPONSE)
3827        return "QuestionnaireResponse";
3828      if (code == AllResourceTypes.REGULATEDAUTHORIZATION)
3829        return "RegulatedAuthorization";
3830      if (code == AllResourceTypes.RELATEDPERSON)
3831        return "RelatedPerson";
3832      if (code == AllResourceTypes.REQUESTORCHESTRATION)
3833        return "RequestOrchestration";
3834      if (code == AllResourceTypes.REQUIREMENTS)
3835        return "Requirements";
3836      if (code == AllResourceTypes.RESEARCHSTUDY)
3837        return "ResearchStudy";
3838      if (code == AllResourceTypes.RESEARCHSUBJECT)
3839        return "ResearchSubject";
3840      if (code == AllResourceTypes.RESOURCE)
3841        return "Resource";
3842      if (code == AllResourceTypes.RISKASSESSMENT)
3843        return "RiskAssessment";
3844      if (code == AllResourceTypes.SCHEDULE)
3845        return "Schedule";
3846      if (code == AllResourceTypes.SEARCHPARAMETER)
3847        return "SearchParameter";
3848      if (code == AllResourceTypes.SERVICEREQUEST)
3849        return "ServiceRequest";
3850      if (code == AllResourceTypes.SLOT)
3851        return "Slot";
3852      if (code == AllResourceTypes.SPECIMEN)
3853        return "Specimen";
3854      if (code == AllResourceTypes.SPECIMENDEFINITION)
3855        return "SpecimenDefinition";
3856      if (code == AllResourceTypes.STRUCTUREDEFINITION)
3857        return "StructureDefinition";
3858      if (code == AllResourceTypes.STRUCTUREMAP)
3859        return "StructureMap";
3860      if (code == AllResourceTypes.SUBSCRIPTION)
3861        return "Subscription";
3862      if (code == AllResourceTypes.SUBSCRIPTIONSTATUS)
3863        return "SubscriptionStatus";
3864      if (code == AllResourceTypes.SUBSCRIPTIONTOPIC)
3865        return "SubscriptionTopic";
3866      if (code == AllResourceTypes.SUBSTANCE)
3867        return "Substance";
3868      if (code == AllResourceTypes.SUBSTANCEDEFINITION)
3869        return "SubstanceDefinition";
3870      if (code == AllResourceTypes.SUBSTANCENUCLEICACID)
3871        return "SubstanceNucleicAcid";
3872      if (code == AllResourceTypes.SUBSTANCEPOLYMER)
3873        return "SubstancePolymer";
3874      if (code == AllResourceTypes.SUBSTANCEPROTEIN)
3875        return "SubstanceProtein";
3876      if (code == AllResourceTypes.SUBSTANCEREFERENCEINFORMATION)
3877        return "SubstanceReferenceInformation";
3878      if (code == AllResourceTypes.SUBSTANCESOURCEMATERIAL)
3879        return "SubstanceSourceMaterial";
3880      if (code == AllResourceTypes.SUPPLYDELIVERY)
3881        return "SupplyDelivery";
3882      if (code == AllResourceTypes.SUPPLYREQUEST)
3883        return "SupplyRequest";
3884      if (code == AllResourceTypes.TASK)
3885        return "Task";
3886      if (code == AllResourceTypes.TERMINOLOGYCAPABILITIES)
3887        return "TerminologyCapabilities";
3888      if (code == AllResourceTypes.TESTREPORT)
3889        return "TestReport";
3890      if (code == AllResourceTypes.TESTSCRIPT)
3891        return "TestScript";
3892      if (code == AllResourceTypes.TRANSPORT)
3893        return "Transport";
3894      if (code == AllResourceTypes.VALUESET)
3895        return "ValueSet";
3896      if (code == AllResourceTypes.VERIFICATIONRESULT)
3897        return "VerificationResult";
3898      if (code == AllResourceTypes.VISIONPRESCRIPTION)
3899        return "VisionPrescription";
3900      return "?";
3901      }
3902    public String toSystem(AllResourceTypes code) {
3903      return code.getSystem();
3904      }
3905    }
3906
3907    public enum BindingStrength {
3908        /**
3909         * To be conformant, the concept in this element SHALL be from the specified value set.
3910         */
3911        REQUIRED, 
3912        /**
3913         * 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.
3914         */
3915        EXTENSIBLE, 
3916        /**
3917         * Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.
3918         */
3919        PREFERRED, 
3920        /**
3921         * 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.
3922         */
3923        EXAMPLE, 
3924        /**
3925         * added to help the parsers
3926         */
3927        NULL;
3928        public static BindingStrength fromCode(String codeString) throws FHIRException {
3929            if (codeString == null || "".equals(codeString))
3930                return null;
3931        if ("required".equals(codeString))
3932          return REQUIRED;
3933        if ("extensible".equals(codeString))
3934          return EXTENSIBLE;
3935        if ("preferred".equals(codeString))
3936          return PREFERRED;
3937        if ("example".equals(codeString))
3938          return EXAMPLE;
3939        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
3940        }
3941        public String toCode() {
3942          switch (this) {
3943            case REQUIRED: return "required";
3944            case EXTENSIBLE: return "extensible";
3945            case PREFERRED: return "preferred";
3946            case EXAMPLE: return "example";
3947            case NULL: return null;
3948            default: return "?";
3949          }
3950        }
3951        public String getSystem() {
3952          switch (this) {
3953            case REQUIRED: return "http://hl7.org/fhir/binding-strength";
3954            case EXTENSIBLE: return "http://hl7.org/fhir/binding-strength";
3955            case PREFERRED: return "http://hl7.org/fhir/binding-strength";
3956            case EXAMPLE: return "http://hl7.org/fhir/binding-strength";
3957            case NULL: return null;
3958            default: return "?";
3959          }
3960        }
3961        public String getDefinition() {
3962          switch (this) {
3963            case REQUIRED: return "To be conformant, the concept in this element SHALL be from the specified value set.";
3964            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.";
3965            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.";
3966            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.";
3967            case NULL: return null;
3968            default: return "?";
3969          }
3970        }
3971        public String getDisplay() {
3972          switch (this) {
3973            case REQUIRED: return "Required";
3974            case EXTENSIBLE: return "Extensible";
3975            case PREFERRED: return "Preferred";
3976            case EXAMPLE: return "Example";
3977            case NULL: return null;
3978            default: return "?";
3979          }
3980        }
3981    }
3982
3983  public static class BindingStrengthEnumFactory implements EnumFactory<BindingStrength> {
3984    public BindingStrength fromCode(String codeString) throws IllegalArgumentException {
3985      if (codeString == null || "".equals(codeString))
3986            if (codeString == null || "".equals(codeString))
3987                return null;
3988        if ("required".equals(codeString))
3989          return BindingStrength.REQUIRED;
3990        if ("extensible".equals(codeString))
3991          return BindingStrength.EXTENSIBLE;
3992        if ("preferred".equals(codeString))
3993          return BindingStrength.PREFERRED;
3994        if ("example".equals(codeString))
3995          return BindingStrength.EXAMPLE;
3996        throw new IllegalArgumentException("Unknown BindingStrength code '"+codeString+"'");
3997        }
3998        public Enumeration<BindingStrength> fromType(PrimitiveType<?> code) throws FHIRException {
3999          if (code == null)
4000            return null;
4001          if (code.isEmpty())
4002            return new Enumeration<BindingStrength>(this, BindingStrength.NULL, code);
4003          String codeString = ((PrimitiveType) code).asStringValue();
4004          if (codeString == null || "".equals(codeString))
4005            return new Enumeration<BindingStrength>(this, BindingStrength.NULL, code);
4006        if ("required".equals(codeString))
4007          return new Enumeration<BindingStrength>(this, BindingStrength.REQUIRED, code);
4008        if ("extensible".equals(codeString))
4009          return new Enumeration<BindingStrength>(this, BindingStrength.EXTENSIBLE, code);
4010        if ("preferred".equals(codeString))
4011          return new Enumeration<BindingStrength>(this, BindingStrength.PREFERRED, code);
4012        if ("example".equals(codeString))
4013          return new Enumeration<BindingStrength>(this, BindingStrength.EXAMPLE, code);
4014        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
4015        }
4016    public String toCode(BindingStrength code) {
4017      if (code == BindingStrength.REQUIRED)
4018        return "required";
4019      if (code == BindingStrength.EXTENSIBLE)
4020        return "extensible";
4021      if (code == BindingStrength.PREFERRED)
4022        return "preferred";
4023      if (code == BindingStrength.EXAMPLE)
4024        return "example";
4025      return "?";
4026      }
4027    public String toSystem(BindingStrength code) {
4028      return code.getSystem();
4029      }
4030    }
4031
4032    public enum CapabilityStatementKind {
4033        /**
4034         * The CapabilityStatement instance represents the present capabilities of a specific system instance.  This is the kind returned by /metadata for a FHIR server end-point.
4035         */
4036        INSTANCE, 
4037        /**
4038         * The CapabilityStatement instance represents the capabilities of a system or piece of software, independent of a particular installation.
4039         */
4040        CAPABILITY, 
4041        /**
4042         * The CapabilityStatement instance represents a set of requirements for other systems to meet; e.g. as part of an implementation guide or 'request for proposal'.
4043         */
4044        REQUIREMENTS, 
4045        /**
4046         * added to help the parsers
4047         */
4048        NULL;
4049        public static CapabilityStatementKind fromCode(String codeString) throws FHIRException {
4050            if (codeString == null || "".equals(codeString))
4051                return null;
4052        if ("instance".equals(codeString))
4053          return INSTANCE;
4054        if ("capability".equals(codeString))
4055          return CAPABILITY;
4056        if ("requirements".equals(codeString))
4057          return REQUIREMENTS;
4058        throw new FHIRException("Unknown CapabilityStatementKind code '"+codeString+"'");
4059        }
4060        public String toCode() {
4061          switch (this) {
4062            case INSTANCE: return "instance";
4063            case CAPABILITY: return "capability";
4064            case REQUIREMENTS: return "requirements";
4065            case NULL: return null;
4066            default: return "?";
4067          }
4068        }
4069        public String getSystem() {
4070          switch (this) {
4071            case INSTANCE: return "http://hl7.org/fhir/capability-statement-kind";
4072            case CAPABILITY: return "http://hl7.org/fhir/capability-statement-kind";
4073            case REQUIREMENTS: return "http://hl7.org/fhir/capability-statement-kind";
4074            case NULL: return null;
4075            default: return "?";
4076          }
4077        }
4078        public String getDefinition() {
4079          switch (this) {
4080            case INSTANCE: return "The CapabilityStatement instance represents the present capabilities of a specific system instance.  This is the kind returned by /metadata for a FHIR server end-point.";
4081            case CAPABILITY: return "The CapabilityStatement instance represents the capabilities of a system or piece of software, independent of a particular installation.";
4082            case REQUIREMENTS: return "The CapabilityStatement instance represents a set of requirements for other systems to meet; e.g. as part of an implementation guide or 'request for proposal'.";
4083            case NULL: return null;
4084            default: return "?";
4085          }
4086        }
4087        public String getDisplay() {
4088          switch (this) {
4089            case INSTANCE: return "Instance";
4090            case CAPABILITY: return "Capability";
4091            case REQUIREMENTS: return "Requirements";
4092            case NULL: return null;
4093            default: return "?";
4094          }
4095        }
4096    }
4097
4098  public static class CapabilityStatementKindEnumFactory implements EnumFactory<CapabilityStatementKind> {
4099    public CapabilityStatementKind fromCode(String codeString) throws IllegalArgumentException {
4100      if (codeString == null || "".equals(codeString))
4101            if (codeString == null || "".equals(codeString))
4102                return null;
4103        if ("instance".equals(codeString))
4104          return CapabilityStatementKind.INSTANCE;
4105        if ("capability".equals(codeString))
4106          return CapabilityStatementKind.CAPABILITY;
4107        if ("requirements".equals(codeString))
4108          return CapabilityStatementKind.REQUIREMENTS;
4109        throw new IllegalArgumentException("Unknown CapabilityStatementKind code '"+codeString+"'");
4110        }
4111        public Enumeration<CapabilityStatementKind> fromType(PrimitiveType<?> code) throws FHIRException {
4112          if (code == null)
4113            return null;
4114          if (code.isEmpty())
4115            return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.NULL, code);
4116          String codeString = ((PrimitiveType) code).asStringValue();
4117          if (codeString == null || "".equals(codeString))
4118            return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.NULL, code);
4119        if ("instance".equals(codeString))
4120          return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.INSTANCE, code);
4121        if ("capability".equals(codeString))
4122          return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.CAPABILITY, code);
4123        if ("requirements".equals(codeString))
4124          return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.REQUIREMENTS, code);
4125        throw new FHIRException("Unknown CapabilityStatementKind code '"+codeString+"'");
4126        }
4127    public String toCode(CapabilityStatementKind code) {
4128      if (code == CapabilityStatementKind.INSTANCE)
4129        return "instance";
4130      if (code == CapabilityStatementKind.CAPABILITY)
4131        return "capability";
4132      if (code == CapabilityStatementKind.REQUIREMENTS)
4133        return "requirements";
4134      return "?";
4135      }
4136    public String toSystem(CapabilityStatementKind code) {
4137      return code.getSystem();
4138      }
4139    }
4140
4141    public enum ClaimProcessingCodes {
4142        /**
4143         * The Claim/Pre-authorization/Pre-determination has been received but processing has not begun.
4144         */
4145        QUEUED, 
4146        /**
4147         * The processing has completed without errors
4148         */
4149        COMPLETE, 
4150        /**
4151         * One or more errors have been detected in the Claim
4152         */
4153        ERROR, 
4154        /**
4155         * No errors have been detected in the Claim and some of the adjudication has been performed.
4156         */
4157        PARTIAL, 
4158        /**
4159         * added to help the parsers
4160         */
4161        NULL;
4162        public static ClaimProcessingCodes fromCode(String codeString) throws FHIRException {
4163            if (codeString == null || "".equals(codeString))
4164                return null;
4165        if ("queued".equals(codeString))
4166          return QUEUED;
4167        if ("complete".equals(codeString))
4168          return COMPLETE;
4169        if ("error".equals(codeString))
4170          return ERROR;
4171        if ("partial".equals(codeString))
4172          return PARTIAL;
4173        throw new FHIRException("Unknown ClaimProcessingCodes code '"+codeString+"'");
4174        }
4175        public String toCode() {
4176          switch (this) {
4177            case QUEUED: return "queued";
4178            case COMPLETE: return "complete";
4179            case ERROR: return "error";
4180            case PARTIAL: return "partial";
4181            case NULL: return null;
4182            default: return "?";
4183          }
4184        }
4185        public String getSystem() {
4186          switch (this) {
4187            case QUEUED: return "http://hl7.org/fhir/claim-outcome";
4188            case COMPLETE: return "http://hl7.org/fhir/claim-outcome";
4189            case ERROR: return "http://hl7.org/fhir/claim-outcome";
4190            case PARTIAL: return "http://hl7.org/fhir/claim-outcome";
4191            case NULL: return null;
4192            default: return "?";
4193          }
4194        }
4195        public String getDefinition() {
4196          switch (this) {
4197            case QUEUED: return "The Claim/Pre-authorization/Pre-determination has been received but processing has not begun.";
4198            case COMPLETE: return "The processing has completed without errors";
4199            case ERROR: return "One or more errors have been detected in the Claim";
4200            case PARTIAL: return "No errors have been detected in the Claim and some of the adjudication has been performed.";
4201            case NULL: return null;
4202            default: return "?";
4203          }
4204        }
4205        public String getDisplay() {
4206          switch (this) {
4207            case QUEUED: return "Queued";
4208            case COMPLETE: return "Processing Complete";
4209            case ERROR: return "Error";
4210            case PARTIAL: return "Partial Processing";
4211            case NULL: return null;
4212            default: return "?";
4213          }
4214        }
4215    }
4216
4217  public static class ClaimProcessingCodesEnumFactory implements EnumFactory<ClaimProcessingCodes> {
4218    public ClaimProcessingCodes fromCode(String codeString) throws IllegalArgumentException {
4219      if (codeString == null || "".equals(codeString))
4220            if (codeString == null || "".equals(codeString))
4221                return null;
4222        if ("queued".equals(codeString))
4223          return ClaimProcessingCodes.QUEUED;
4224        if ("complete".equals(codeString))
4225          return ClaimProcessingCodes.COMPLETE;
4226        if ("error".equals(codeString))
4227          return ClaimProcessingCodes.ERROR;
4228        if ("partial".equals(codeString))
4229          return ClaimProcessingCodes.PARTIAL;
4230        throw new IllegalArgumentException("Unknown ClaimProcessingCodes code '"+codeString+"'");
4231        }
4232        public Enumeration<ClaimProcessingCodes> fromType(PrimitiveType<?> code) throws FHIRException {
4233          if (code == null)
4234            return null;
4235          if (code.isEmpty())
4236            return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.NULL, code);
4237          String codeString = ((PrimitiveType) code).asStringValue();
4238          if (codeString == null || "".equals(codeString))
4239            return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.NULL, code);
4240        if ("queued".equals(codeString))
4241          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.QUEUED, code);
4242        if ("complete".equals(codeString))
4243          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.COMPLETE, code);
4244        if ("error".equals(codeString))
4245          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.ERROR, code);
4246        if ("partial".equals(codeString))
4247          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.PARTIAL, code);
4248        throw new FHIRException("Unknown ClaimProcessingCodes code '"+codeString+"'");
4249        }
4250    public String toCode(ClaimProcessingCodes code) {
4251      if (code == ClaimProcessingCodes.QUEUED)
4252        return "queued";
4253      if (code == ClaimProcessingCodes.COMPLETE)
4254        return "complete";
4255      if (code == ClaimProcessingCodes.ERROR)
4256        return "error";
4257      if (code == ClaimProcessingCodes.PARTIAL)
4258        return "partial";
4259      return "?";
4260      }
4261    public String toSystem(ClaimProcessingCodes code) {
4262      return code.getSystem();
4263      }
4264    }
4265
4266    public enum CompartmentType {
4267        /**
4268         * The compartment definition is for the patient compartment.
4269         */
4270        PATIENT, 
4271        /**
4272         * The compartment definition is for the encounter compartment.
4273         */
4274        ENCOUNTER, 
4275        /**
4276         * The compartment definition is for the related-person compartment.
4277         */
4278        RELATEDPERSON, 
4279        /**
4280         * The compartment definition is for the practitioner compartment.
4281         */
4282        PRACTITIONER, 
4283        /**
4284         * The compartment definition is for the device compartment.
4285         */
4286        DEVICE, 
4287        /**
4288         * added to help the parsers
4289         */
4290        NULL;
4291        public static CompartmentType fromCode(String codeString) throws FHIRException {
4292            if (codeString == null || "".equals(codeString))
4293                return null;
4294        if ("Patient".equals(codeString))
4295          return PATIENT;
4296        if ("Encounter".equals(codeString))
4297          return ENCOUNTER;
4298        if ("RelatedPerson".equals(codeString))
4299          return RELATEDPERSON;
4300        if ("Practitioner".equals(codeString))
4301          return PRACTITIONER;
4302        if ("Device".equals(codeString))
4303          return DEVICE;
4304        throw new FHIRException("Unknown CompartmentType code '"+codeString+"'");
4305        }
4306        public String toCode() {
4307          switch (this) {
4308            case PATIENT: return "Patient";
4309            case ENCOUNTER: return "Encounter";
4310            case RELATEDPERSON: return "RelatedPerson";
4311            case PRACTITIONER: return "Practitioner";
4312            case DEVICE: return "Device";
4313            case NULL: return null;
4314            default: return "?";
4315          }
4316        }
4317        public String getSystem() {
4318          switch (this) {
4319            case PATIENT: return "http://hl7.org/fhir/compartment-type";
4320            case ENCOUNTER: return "http://hl7.org/fhir/compartment-type";
4321            case RELATEDPERSON: return "http://hl7.org/fhir/compartment-type";
4322            case PRACTITIONER: return "http://hl7.org/fhir/compartment-type";
4323            case DEVICE: return "http://hl7.org/fhir/compartment-type";
4324            case NULL: return null;
4325            default: return "?";
4326          }
4327        }
4328        public String getDefinition() {
4329          switch (this) {
4330            case PATIENT: return "The compartment definition is for the patient compartment.";
4331            case ENCOUNTER: return "The compartment definition is for the encounter compartment.";
4332            case RELATEDPERSON: return "The compartment definition is for the related-person compartment.";
4333            case PRACTITIONER: return "The compartment definition is for the practitioner compartment.";
4334            case DEVICE: return "The compartment definition is for the device compartment.";
4335            case NULL: return null;
4336            default: return "?";
4337          }
4338        }
4339        public String getDisplay() {
4340          switch (this) {
4341            case PATIENT: return "Patient";
4342            case ENCOUNTER: return "Encounter";
4343            case RELATEDPERSON: return "RelatedPerson";
4344            case PRACTITIONER: return "Practitioner";
4345            case DEVICE: return "Device";
4346            case NULL: return null;
4347            default: return "?";
4348          }
4349        }
4350    }
4351
4352  public static class CompartmentTypeEnumFactory implements EnumFactory<CompartmentType> {
4353    public CompartmentType fromCode(String codeString) throws IllegalArgumentException {
4354      if (codeString == null || "".equals(codeString))
4355            if (codeString == null || "".equals(codeString))
4356                return null;
4357        if ("Patient".equals(codeString))
4358          return CompartmentType.PATIENT;
4359        if ("Encounter".equals(codeString))
4360          return CompartmentType.ENCOUNTER;
4361        if ("RelatedPerson".equals(codeString))
4362          return CompartmentType.RELATEDPERSON;
4363        if ("Practitioner".equals(codeString))
4364          return CompartmentType.PRACTITIONER;
4365        if ("Device".equals(codeString))
4366          return CompartmentType.DEVICE;
4367        throw new IllegalArgumentException("Unknown CompartmentType code '"+codeString+"'");
4368        }
4369        public Enumeration<CompartmentType> fromType(PrimitiveType<?> code) throws FHIRException {
4370          if (code == null)
4371            return null;
4372          if (code.isEmpty())
4373            return new Enumeration<CompartmentType>(this, CompartmentType.NULL, code);
4374          String codeString = ((PrimitiveType) code).asStringValue();
4375          if (codeString == null || "".equals(codeString))
4376            return new Enumeration<CompartmentType>(this, CompartmentType.NULL, code);
4377        if ("Patient".equals(codeString))
4378          return new Enumeration<CompartmentType>(this, CompartmentType.PATIENT, code);
4379        if ("Encounter".equals(codeString))
4380          return new Enumeration<CompartmentType>(this, CompartmentType.ENCOUNTER, code);
4381        if ("RelatedPerson".equals(codeString))
4382          return new Enumeration<CompartmentType>(this, CompartmentType.RELATEDPERSON, code);
4383        if ("Practitioner".equals(codeString))
4384          return new Enumeration<CompartmentType>(this, CompartmentType.PRACTITIONER, code);
4385        if ("Device".equals(codeString))
4386          return new Enumeration<CompartmentType>(this, CompartmentType.DEVICE, code);
4387        throw new FHIRException("Unknown CompartmentType code '"+codeString+"'");
4388        }
4389    public String toCode(CompartmentType code) {
4390      if (code == CompartmentType.PATIENT)
4391        return "Patient";
4392      if (code == CompartmentType.ENCOUNTER)
4393        return "Encounter";
4394      if (code == CompartmentType.RELATEDPERSON)
4395        return "RelatedPerson";
4396      if (code == CompartmentType.PRACTITIONER)
4397        return "Practitioner";
4398      if (code == CompartmentType.DEVICE)
4399        return "Device";
4400      return "?";
4401      }
4402    public String toSystem(CompartmentType code) {
4403      return code.getSystem();
4404      }
4405    }
4406
4407    public enum CompositionStatus {
4408        /**
4409         * The existence of the report is registered, but there is nothing yet available.
4410         */
4411        REGISTERED, 
4412        /**
4413         * This is a partial (e.g. initial, interim or preliminary) report: data in the report may be incomplete or unverified.
4414         */
4415        PARTIAL, 
4416        /**
4417         * Verified early results are available, but not all results are final.
4418         */
4419        PRELIMINARY, 
4420        /**
4421         * This version of the composition is complete and verified by an appropriate person and no further work is planned. Any subsequent updates would be on a new version of the composition.
4422         */
4423        FINAL, 
4424        /**
4425         * The composition content or the referenced resources have been modified (edited or added to) subsequent to being released as "final" and the composition is complete and verified by an authorized person.
4426         */
4427        AMENDED, 
4428        /**
4429         * Subsequent to being final, the composition content has been modified to correct an error in the report or referenced results.
4430         */
4431        CORRECTED, 
4432        /**
4433         * Subsequent to being final, the composition content has been modified by adding new content. The existing content is unchanged.
4434         */
4435        APPENDED, 
4436        /**
4437         * The composition is unavailable because the measurement was not started or not completed (also sometimes called "aborted").
4438         */
4439        CANCELLED, 
4440        /**
4441         * The composition or document was originally created/issued in error, and this is an amendment that marks that the entire series should not be considered as valid.
4442         */
4443        ENTEREDINERROR, 
4444        /**
4445         * This composition has been withdrawn or superseded and should no longer be used.
4446         */
4447        DEPRECATED, 
4448        /**
4449         * The authoring/source system does not know which of the status values currently applies for this observation. Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which.
4450         */
4451        UNKNOWN, 
4452        /**
4453         * added to help the parsers
4454         */
4455        NULL;
4456        public static CompositionStatus fromCode(String codeString) throws FHIRException {
4457            if (codeString == null || "".equals(codeString))
4458                return null;
4459        if ("registered".equals(codeString))
4460          return REGISTERED;
4461        if ("partial".equals(codeString))
4462          return PARTIAL;
4463        if ("preliminary".equals(codeString))
4464          return PRELIMINARY;
4465        if ("final".equals(codeString))
4466          return FINAL;
4467        if ("amended".equals(codeString))
4468          return AMENDED;
4469        if ("corrected".equals(codeString))
4470          return CORRECTED;
4471        if ("appended".equals(codeString))
4472          return APPENDED;
4473        if ("cancelled".equals(codeString))
4474          return CANCELLED;
4475        if ("entered-in-error".equals(codeString))
4476          return ENTEREDINERROR;
4477        if ("deprecated".equals(codeString))
4478          return DEPRECATED;
4479        if ("unknown".equals(codeString))
4480          return UNKNOWN;
4481        throw new FHIRException("Unknown CompositionStatus code '"+codeString+"'");
4482        }
4483        public String toCode() {
4484          switch (this) {
4485            case REGISTERED: return "registered";
4486            case PARTIAL: return "partial";
4487            case PRELIMINARY: return "preliminary";
4488            case FINAL: return "final";
4489            case AMENDED: return "amended";
4490            case CORRECTED: return "corrected";
4491            case APPENDED: return "appended";
4492            case CANCELLED: return "cancelled";
4493            case ENTEREDINERROR: return "entered-in-error";
4494            case DEPRECATED: return "deprecated";
4495            case UNKNOWN: return "unknown";
4496            case NULL: return null;
4497            default: return "?";
4498          }
4499        }
4500        public String getSystem() {
4501          switch (this) {
4502            case REGISTERED: return "http://hl7.org/fhir/composition-status";
4503            case PARTIAL: return "http://hl7.org/fhir/composition-status";
4504            case PRELIMINARY: return "http://hl7.org/fhir/composition-status";
4505            case FINAL: return "http://hl7.org/fhir/composition-status";
4506            case AMENDED: return "http://hl7.org/fhir/composition-status";
4507            case CORRECTED: return "http://hl7.org/fhir/composition-status";
4508            case APPENDED: return "http://hl7.org/fhir/composition-status";
4509            case CANCELLED: return "http://hl7.org/fhir/composition-status";
4510            case ENTEREDINERROR: return "http://hl7.org/fhir/composition-status";
4511            case DEPRECATED: return "http://hl7.org/fhir/composition-status";
4512            case UNKNOWN: return "http://hl7.org/fhir/composition-status";
4513            case NULL: return null;
4514            default: return "?";
4515          }
4516        }
4517        public String getDefinition() {
4518          switch (this) {
4519            case REGISTERED: return "The existence of the report is registered, but there is nothing yet available.";
4520            case PARTIAL: return "This is a partial (e.g. initial, interim or preliminary) report: data in the report may be incomplete or unverified.";
4521            case PRELIMINARY: return "Verified early results are available, but not all results are final.";
4522            case FINAL: return "This version of the composition is complete and verified by an appropriate person and no further work is planned. Any subsequent updates would be on a new version of the composition.";
4523            case AMENDED: return "The composition content or the referenced resources have been modified (edited or added to) subsequent to being released as \"final\" and the composition is complete and verified by an authorized person.";
4524            case CORRECTED: return "Subsequent to being final, the composition content has been modified to correct an error in the report or referenced results.";
4525            case APPENDED: return "Subsequent to being final, the composition content has been modified by adding new content. The existing content is unchanged.";
4526            case CANCELLED: return "The composition is unavailable because the measurement was not started or not completed (also sometimes called \"aborted\").";
4527            case ENTEREDINERROR: return "The composition or document was originally created/issued in error, and this is an amendment that marks that the entire series should not be considered as valid.";
4528            case DEPRECATED: return "This composition has been withdrawn or superseded and should no longer be used.";
4529            case UNKNOWN: return "The authoring/source system does not know which of the status values currently applies for this observation. Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which.";
4530            case NULL: return null;
4531            default: return "?";
4532          }
4533        }
4534        public String getDisplay() {
4535          switch (this) {
4536            case REGISTERED: return "Registered";
4537            case PARTIAL: return "Partial";
4538            case PRELIMINARY: return "Preliminary";
4539            case FINAL: return "Final";
4540            case AMENDED: return "Amended";
4541            case CORRECTED: return "Corrected";
4542            case APPENDED: return "Appended";
4543            case CANCELLED: return "Cancelled";
4544            case ENTEREDINERROR: return "Entered in Error";
4545            case DEPRECATED: return "Deprecated";
4546            case UNKNOWN: return "Unknown";
4547            case NULL: return null;
4548            default: return "?";
4549          }
4550        }
4551    }
4552
4553  public static class CompositionStatusEnumFactory implements EnumFactory<CompositionStatus> {
4554    public CompositionStatus fromCode(String codeString) throws IllegalArgumentException {
4555      if (codeString == null || "".equals(codeString))
4556            if (codeString == null || "".equals(codeString))
4557                return null;
4558        if ("registered".equals(codeString))
4559          return CompositionStatus.REGISTERED;
4560        if ("partial".equals(codeString))
4561          return CompositionStatus.PARTIAL;
4562        if ("preliminary".equals(codeString))
4563          return CompositionStatus.PRELIMINARY;
4564        if ("final".equals(codeString))
4565          return CompositionStatus.FINAL;
4566        if ("amended".equals(codeString))
4567          return CompositionStatus.AMENDED;
4568        if ("corrected".equals(codeString))
4569          return CompositionStatus.CORRECTED;
4570        if ("appended".equals(codeString))
4571          return CompositionStatus.APPENDED;
4572        if ("cancelled".equals(codeString))
4573          return CompositionStatus.CANCELLED;
4574        if ("entered-in-error".equals(codeString))
4575          return CompositionStatus.ENTEREDINERROR;
4576        if ("deprecated".equals(codeString))
4577          return CompositionStatus.DEPRECATED;
4578        if ("unknown".equals(codeString))
4579          return CompositionStatus.UNKNOWN;
4580        throw new IllegalArgumentException("Unknown CompositionStatus code '"+codeString+"'");
4581        }
4582        public Enumeration<CompositionStatus> fromType(PrimitiveType<?> code) throws FHIRException {
4583          if (code == null)
4584            return null;
4585          if (code.isEmpty())
4586            return new Enumeration<CompositionStatus>(this, CompositionStatus.NULL, code);
4587          String codeString = ((PrimitiveType) code).asStringValue();
4588          if (codeString == null || "".equals(codeString))
4589            return new Enumeration<CompositionStatus>(this, CompositionStatus.NULL, code);
4590        if ("registered".equals(codeString))
4591          return new Enumeration<CompositionStatus>(this, CompositionStatus.REGISTERED, code);
4592        if ("partial".equals(codeString))
4593          return new Enumeration<CompositionStatus>(this, CompositionStatus.PARTIAL, code);
4594        if ("preliminary".equals(codeString))
4595          return new Enumeration<CompositionStatus>(this, CompositionStatus.PRELIMINARY, code);
4596        if ("final".equals(codeString))
4597          return new Enumeration<CompositionStatus>(this, CompositionStatus.FINAL, code);
4598        if ("amended".equals(codeString))
4599          return new Enumeration<CompositionStatus>(this, CompositionStatus.AMENDED, code);
4600        if ("corrected".equals(codeString))
4601          return new Enumeration<CompositionStatus>(this, CompositionStatus.CORRECTED, code);
4602        if ("appended".equals(codeString))
4603          return new Enumeration<CompositionStatus>(this, CompositionStatus.APPENDED, code);
4604        if ("cancelled".equals(codeString))
4605          return new Enumeration<CompositionStatus>(this, CompositionStatus.CANCELLED, code);
4606        if ("entered-in-error".equals(codeString))
4607          return new Enumeration<CompositionStatus>(this, CompositionStatus.ENTEREDINERROR, code);
4608        if ("deprecated".equals(codeString))
4609          return new Enumeration<CompositionStatus>(this, CompositionStatus.DEPRECATED, code);
4610        if ("unknown".equals(codeString))
4611          return new Enumeration<CompositionStatus>(this, CompositionStatus.UNKNOWN, code);
4612        throw new FHIRException("Unknown CompositionStatus code '"+codeString+"'");
4613        }
4614    public String toCode(CompositionStatus code) {
4615      if (code == CompositionStatus.REGISTERED)
4616        return "registered";
4617      if (code == CompositionStatus.PARTIAL)
4618        return "partial";
4619      if (code == CompositionStatus.PRELIMINARY)
4620        return "preliminary";
4621      if (code == CompositionStatus.FINAL)
4622        return "final";
4623      if (code == CompositionStatus.AMENDED)
4624        return "amended";
4625      if (code == CompositionStatus.CORRECTED)
4626        return "corrected";
4627      if (code == CompositionStatus.APPENDED)
4628        return "appended";
4629      if (code == CompositionStatus.CANCELLED)
4630        return "cancelled";
4631      if (code == CompositionStatus.ENTEREDINERROR)
4632        return "entered-in-error";
4633      if (code == CompositionStatus.DEPRECATED)
4634        return "deprecated";
4635      if (code == CompositionStatus.UNKNOWN)
4636        return "unknown";
4637      return "?";
4638      }
4639    public String toSystem(CompositionStatus code) {
4640      return code.getSystem();
4641      }
4642    }
4643
4644    public enum ConceptMapRelationship {
4645        /**
4646         * The concepts are related to each other, but the exact relationship is not known.
4647         */
4648        RELATEDTO, 
4649        /**
4650         * The definitions of the concepts mean the same thing.
4651         */
4652        EQUIVALENT, 
4653        /**
4654         * The source concept is narrower in meaning than the target concept.
4655         */
4656        SOURCEISNARROWERTHANTARGET, 
4657        /**
4658         * The source concept is broader in meaning than the target concept.
4659         */
4660        SOURCEISBROADERTHANTARGET, 
4661        /**
4662         * This is an explicit assertion that the target concept is not related to the source concept.
4663         */
4664        NOTRELATEDTO, 
4665        /**
4666         * added to help the parsers
4667         */
4668        NULL;
4669        public static ConceptMapRelationship fromCode(String codeString) throws FHIRException {
4670            if (codeString == null || "".equals(codeString))
4671                return null;
4672        if ("related-to".equals(codeString))
4673          return RELATEDTO;
4674        if ("equivalent".equals(codeString))
4675          return EQUIVALENT;
4676        if ("source-is-narrower-than-target".equals(codeString))
4677          return SOURCEISNARROWERTHANTARGET;
4678        if ("source-is-broader-than-target".equals(codeString))
4679          return SOURCEISBROADERTHANTARGET;
4680        if ("not-related-to".equals(codeString))
4681          return NOTRELATEDTO;
4682        throw new FHIRException("Unknown ConceptMapRelationship code '"+codeString+"'");
4683        }
4684        public String toCode() {
4685          switch (this) {
4686            case RELATEDTO: return "related-to";
4687            case EQUIVALENT: return "equivalent";
4688            case SOURCEISNARROWERTHANTARGET: return "source-is-narrower-than-target";
4689            case SOURCEISBROADERTHANTARGET: return "source-is-broader-than-target";
4690            case NOTRELATEDTO: return "not-related-to";
4691            case NULL: return null;
4692            default: return "?";
4693          }
4694        }
4695        public String getSystem() {
4696          switch (this) {
4697            case RELATEDTO: return "http://hl7.org/fhir/concept-map-relationship";
4698            case EQUIVALENT: return "http://hl7.org/fhir/concept-map-relationship";
4699            case SOURCEISNARROWERTHANTARGET: return "http://hl7.org/fhir/concept-map-relationship";
4700            case SOURCEISBROADERTHANTARGET: return "http://hl7.org/fhir/concept-map-relationship";
4701            case NOTRELATEDTO: return "http://hl7.org/fhir/concept-map-relationship";
4702            case NULL: return null;
4703            default: return "?";
4704          }
4705        }
4706        public String getDefinition() {
4707          switch (this) {
4708            case RELATEDTO: return "The concepts are related to each other, but the exact relationship is not known.";
4709            case EQUIVALENT: return "The definitions of the concepts mean the same thing.";
4710            case SOURCEISNARROWERTHANTARGET: return "The source concept is narrower in meaning than the target concept.";
4711            case SOURCEISBROADERTHANTARGET: return "The source concept is broader in meaning than the target concept.";
4712            case NOTRELATEDTO: return "This is an explicit assertion that the target concept is not related to the source concept.";
4713            case NULL: return null;
4714            default: return "?";
4715          }
4716        }
4717        public String getDisplay() {
4718          switch (this) {
4719            case RELATEDTO: return "Related To";
4720            case EQUIVALENT: return "Equivalent";
4721            case SOURCEISNARROWERTHANTARGET: return "Source Is Narrower Than Target";
4722            case SOURCEISBROADERTHANTARGET: return "Source Is Broader Than Target";
4723            case NOTRELATEDTO: return "Not Related To";
4724            case NULL: return null;
4725            default: return "?";
4726          }
4727        }
4728    }
4729
4730  public static class ConceptMapRelationshipEnumFactory implements EnumFactory<ConceptMapRelationship> {
4731    public ConceptMapRelationship fromCode(String codeString) throws IllegalArgumentException {
4732      if (codeString == null || "".equals(codeString))
4733            if (codeString == null || "".equals(codeString))
4734                return null;
4735        if ("related-to".equals(codeString))
4736          return ConceptMapRelationship.RELATEDTO;
4737        if ("equivalent".equals(codeString))
4738          return ConceptMapRelationship.EQUIVALENT;
4739        if ("source-is-narrower-than-target".equals(codeString))
4740          return ConceptMapRelationship.SOURCEISNARROWERTHANTARGET;
4741        if ("source-is-broader-than-target".equals(codeString))
4742          return ConceptMapRelationship.SOURCEISBROADERTHANTARGET;
4743        if ("not-related-to".equals(codeString))
4744          return ConceptMapRelationship.NOTRELATEDTO;
4745        throw new IllegalArgumentException("Unknown ConceptMapRelationship code '"+codeString+"'");
4746        }
4747        public Enumeration<ConceptMapRelationship> fromType(PrimitiveType<?> code) throws FHIRException {
4748          if (code == null)
4749            return null;
4750          if (code.isEmpty())
4751            return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.NULL, code);
4752          String codeString = ((PrimitiveType) code).asStringValue();
4753          if (codeString == null || "".equals(codeString))
4754            return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.NULL, code);
4755        if ("related-to".equals(codeString))
4756          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.RELATEDTO, code);
4757        if ("equivalent".equals(codeString))
4758          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.EQUIVALENT, code);
4759        if ("source-is-narrower-than-target".equals(codeString))
4760          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.SOURCEISNARROWERTHANTARGET, code);
4761        if ("source-is-broader-than-target".equals(codeString))
4762          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.SOURCEISBROADERTHANTARGET, code);
4763        if ("not-related-to".equals(codeString))
4764          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.NOTRELATEDTO, code);
4765        throw new FHIRException("Unknown ConceptMapRelationship code '"+codeString+"'");
4766        }
4767    public String toCode(ConceptMapRelationship code) {
4768      if (code == ConceptMapRelationship.RELATEDTO)
4769        return "related-to";
4770      if (code == ConceptMapRelationship.EQUIVALENT)
4771        return "equivalent";
4772      if (code == ConceptMapRelationship.SOURCEISNARROWERTHANTARGET)
4773        return "source-is-narrower-than-target";
4774      if (code == ConceptMapRelationship.SOURCEISBROADERTHANTARGET)
4775        return "source-is-broader-than-target";
4776      if (code == ConceptMapRelationship.NOTRELATEDTO)
4777        return "not-related-to";
4778      return "?";
4779      }
4780    public String toSystem(ConceptMapRelationship code) {
4781      return code.getSystem();
4782      }
4783    }
4784
4785    public enum ConsentDataMeaning {
4786        /**
4787         * The consent applies directly to the instance of the resource.
4788         */
4789        INSTANCE, 
4790        /**
4791         * The consent applies directly to the instance of the resource and instances it refers to.
4792         */
4793        RELATED, 
4794        /**
4795         * The consent applies directly to the instance of the resource and instances that refer to it.
4796         */
4797        DEPENDENTS, 
4798        /**
4799         * The consent applies to instances of resources that are authored by.
4800         */
4801        AUTHOREDBY, 
4802        /**
4803         * added to help the parsers
4804         */
4805        NULL;
4806        public static ConsentDataMeaning fromCode(String codeString) throws FHIRException {
4807            if (codeString == null || "".equals(codeString))
4808                return null;
4809        if ("instance".equals(codeString))
4810          return INSTANCE;
4811        if ("related".equals(codeString))
4812          return RELATED;
4813        if ("dependents".equals(codeString))
4814          return DEPENDENTS;
4815        if ("authoredby".equals(codeString))
4816          return AUTHOREDBY;
4817        throw new FHIRException("Unknown ConsentDataMeaning code '"+codeString+"'");
4818        }
4819        public String toCode() {
4820          switch (this) {
4821            case INSTANCE: return "instance";
4822            case RELATED: return "related";
4823            case DEPENDENTS: return "dependents";
4824            case AUTHOREDBY: return "authoredby";
4825            case NULL: return null;
4826            default: return "?";
4827          }
4828        }
4829        public String getSystem() {
4830          switch (this) {
4831            case INSTANCE: return "http://hl7.org/fhir/consent-data-meaning";
4832            case RELATED: return "http://hl7.org/fhir/consent-data-meaning";
4833            case DEPENDENTS: return "http://hl7.org/fhir/consent-data-meaning";
4834            case AUTHOREDBY: return "http://hl7.org/fhir/consent-data-meaning";
4835            case NULL: return null;
4836            default: return "?";
4837          }
4838        }
4839        public String getDefinition() {
4840          switch (this) {
4841            case INSTANCE: return "The consent applies directly to the instance of the resource.";
4842            case RELATED: return "The consent applies directly to the instance of the resource and instances it refers to.";
4843            case DEPENDENTS: return "The consent applies directly to the instance of the resource and instances that refer to it.";
4844            case AUTHOREDBY: return "The consent applies to instances of resources that are authored by.";
4845            case NULL: return null;
4846            default: return "?";
4847          }
4848        }
4849        public String getDisplay() {
4850          switch (this) {
4851            case INSTANCE: return "Instance";
4852            case RELATED: return "Related";
4853            case DEPENDENTS: return "Dependents";
4854            case AUTHOREDBY: return "AuthoredBy";
4855            case NULL: return null;
4856            default: return "?";
4857          }
4858        }
4859    }
4860
4861  public static class ConsentDataMeaningEnumFactory implements EnumFactory<ConsentDataMeaning> {
4862    public ConsentDataMeaning fromCode(String codeString) throws IllegalArgumentException {
4863      if (codeString == null || "".equals(codeString))
4864            if (codeString == null || "".equals(codeString))
4865                return null;
4866        if ("instance".equals(codeString))
4867          return ConsentDataMeaning.INSTANCE;
4868        if ("related".equals(codeString))
4869          return ConsentDataMeaning.RELATED;
4870        if ("dependents".equals(codeString))
4871          return ConsentDataMeaning.DEPENDENTS;
4872        if ("authoredby".equals(codeString))
4873          return ConsentDataMeaning.AUTHOREDBY;
4874        throw new IllegalArgumentException("Unknown ConsentDataMeaning code '"+codeString+"'");
4875        }
4876        public Enumeration<ConsentDataMeaning> fromType(PrimitiveType<?> code) throws FHIRException {
4877          if (code == null)
4878            return null;
4879          if (code.isEmpty())
4880            return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.NULL, code);
4881          String codeString = ((PrimitiveType) code).asStringValue();
4882          if (codeString == null || "".equals(codeString))
4883            return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.NULL, code);
4884        if ("instance".equals(codeString))
4885          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.INSTANCE, code);
4886        if ("related".equals(codeString))
4887          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.RELATED, code);
4888        if ("dependents".equals(codeString))
4889          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.DEPENDENTS, code);
4890        if ("authoredby".equals(codeString))
4891          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.AUTHOREDBY, code);
4892        throw new FHIRException("Unknown ConsentDataMeaning code '"+codeString+"'");
4893        }
4894    public String toCode(ConsentDataMeaning code) {
4895      if (code == ConsentDataMeaning.INSTANCE)
4896        return "instance";
4897      if (code == ConsentDataMeaning.RELATED)
4898        return "related";
4899      if (code == ConsentDataMeaning.DEPENDENTS)
4900        return "dependents";
4901      if (code == ConsentDataMeaning.AUTHOREDBY)
4902        return "authoredby";
4903      return "?";
4904      }
4905    public String toSystem(ConsentDataMeaning code) {
4906      return code.getSystem();
4907      }
4908    }
4909
4910    public enum ConsentProvisionType {
4911        /**
4912         * Consent is denied for actions meeting these rules.
4913         */
4914        DENY, 
4915        /**
4916         * Consent is provided for actions meeting these rules.
4917         */
4918        PERMIT, 
4919        /**
4920         * added to help the parsers
4921         */
4922        NULL;
4923        public static ConsentProvisionType fromCode(String codeString) throws FHIRException {
4924            if (codeString == null || "".equals(codeString))
4925                return null;
4926        if ("deny".equals(codeString))
4927          return DENY;
4928        if ("permit".equals(codeString))
4929          return PERMIT;
4930        throw new FHIRException("Unknown ConsentProvisionType code '"+codeString+"'");
4931        }
4932        public String toCode() {
4933          switch (this) {
4934            case DENY: return "deny";
4935            case PERMIT: return "permit";
4936            case NULL: return null;
4937            default: return "?";
4938          }
4939        }
4940        public String getSystem() {
4941          switch (this) {
4942            case DENY: return "http://hl7.org/fhir/consent-provision-type";
4943            case PERMIT: return "http://hl7.org/fhir/consent-provision-type";
4944            case NULL: return null;
4945            default: return "?";
4946          }
4947        }
4948        public String getDefinition() {
4949          switch (this) {
4950            case DENY: return "Consent is denied for actions meeting these rules.";
4951            case PERMIT: return "Consent is provided for actions meeting these rules.";
4952            case NULL: return null;
4953            default: return "?";
4954          }
4955        }
4956        public String getDisplay() {
4957          switch (this) {
4958            case DENY: return "Deny";
4959            case PERMIT: return "Permit";
4960            case NULL: return null;
4961            default: return "?";
4962          }
4963        }
4964    }
4965
4966  public static class ConsentProvisionTypeEnumFactory implements EnumFactory<ConsentProvisionType> {
4967    public ConsentProvisionType fromCode(String codeString) throws IllegalArgumentException {
4968      if (codeString == null || "".equals(codeString))
4969            if (codeString == null || "".equals(codeString))
4970                return null;
4971        if ("deny".equals(codeString))
4972          return ConsentProvisionType.DENY;
4973        if ("permit".equals(codeString))
4974          return ConsentProvisionType.PERMIT;
4975        throw new IllegalArgumentException("Unknown ConsentProvisionType code '"+codeString+"'");
4976        }
4977        public Enumeration<ConsentProvisionType> fromType(PrimitiveType<?> code) throws FHIRException {
4978          if (code == null)
4979            return null;
4980          if (code.isEmpty())
4981            return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.NULL, code);
4982          String codeString = ((PrimitiveType) code).asStringValue();
4983          if (codeString == null || "".equals(codeString))
4984            return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.NULL, code);
4985        if ("deny".equals(codeString))
4986          return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.DENY, code);
4987        if ("permit".equals(codeString))
4988          return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.PERMIT, code);
4989        throw new FHIRException("Unknown ConsentProvisionType code '"+codeString+"'");
4990        }
4991    public String toCode(ConsentProvisionType code) {
4992      if (code == ConsentProvisionType.DENY)
4993        return "deny";
4994      if (code == ConsentProvisionType.PERMIT)
4995        return "permit";
4996      return "?";
4997      }
4998    public String toSystem(ConsentProvisionType code) {
4999      return code.getSystem();
5000      }
5001    }
5002
5003    public enum Currencies {
5004        /**
5005         * null
5006         */
5007        AED, 
5008        /**
5009         * null
5010         */
5011        AFN, 
5012        /**
5013         * null
5014         */
5015        ALL, 
5016        /**
5017         * null
5018         */
5019        AMD, 
5020        /**
5021         * null
5022         */
5023        ANG, 
5024        /**
5025         * null
5026         */
5027        AOA, 
5028        /**
5029         * null
5030         */
5031        ARS, 
5032        /**
5033         * null
5034         */
5035        AUD, 
5036        /**
5037         * null
5038         */
5039        AWG, 
5040        /**
5041         * null
5042         */
5043        AZN, 
5044        /**
5045         * null
5046         */
5047        BAM, 
5048        /**
5049         * null
5050         */
5051        BBD, 
5052        /**
5053         * null
5054         */
5055        BDT, 
5056        /**
5057         * null
5058         */
5059        BGN, 
5060        /**
5061         * null
5062         */
5063        BHD, 
5064        /**
5065         * null
5066         */
5067        BIF, 
5068        /**
5069         * null
5070         */
5071        BMD, 
5072        /**
5073         * null
5074         */
5075        BND, 
5076        /**
5077         * null
5078         */
5079        BOB, 
5080        /**
5081         * null
5082         */
5083        BOV, 
5084        /**
5085         * null
5086         */
5087        BRL, 
5088        /**
5089         * null
5090         */
5091        BSD, 
5092        /**
5093         * null
5094         */
5095        BTN, 
5096        /**
5097         * null
5098         */
5099        BWP, 
5100        /**
5101         * null
5102         */
5103        BYN, 
5104        /**
5105         * null
5106         */
5107        BZD, 
5108        /**
5109         * null
5110         */
5111        CAD, 
5112        /**
5113         * null
5114         */
5115        CDF, 
5116        /**
5117         * null
5118         */
5119        CHE, 
5120        /**
5121         * null
5122         */
5123        CHF, 
5124        /**
5125         * null
5126         */
5127        CHW, 
5128        /**
5129         * null
5130         */
5131        CLF, 
5132        /**
5133         * null
5134         */
5135        CLP, 
5136        /**
5137         * null
5138         */
5139        CNY, 
5140        /**
5141         * null
5142         */
5143        COP, 
5144        /**
5145         * null
5146         */
5147        COU, 
5148        /**
5149         * null
5150         */
5151        CRC, 
5152        /**
5153         * null
5154         */
5155        CUC, 
5156        /**
5157         * null
5158         */
5159        CUP, 
5160        /**
5161         * null
5162         */
5163        CVE, 
5164        /**
5165         * null
5166         */
5167        CZK, 
5168        /**
5169         * null
5170         */
5171        DJF, 
5172        /**
5173         * null
5174         */
5175        DKK, 
5176        /**
5177         * null
5178         */
5179        DOP, 
5180        /**
5181         * null
5182         */
5183        DZD, 
5184        /**
5185         * null
5186         */
5187        EGP, 
5188        /**
5189         * null
5190         */
5191        ERN, 
5192        /**
5193         * null
5194         */
5195        ETB, 
5196        /**
5197         * null
5198         */
5199        EUR, 
5200        /**
5201         * null
5202         */
5203        FJD, 
5204        /**
5205         * null
5206         */
5207        FKP, 
5208        /**
5209         * null
5210         */
5211        GBP, 
5212        /**
5213         * null
5214         */
5215        GEL, 
5216        /**
5217         * null
5218         */
5219        GGP, 
5220        /**
5221         * null
5222         */
5223        GHS, 
5224        /**
5225         * null
5226         */
5227        GIP, 
5228        /**
5229         * null
5230         */
5231        GMD, 
5232        /**
5233         * null
5234         */
5235        GNF, 
5236        /**
5237         * null
5238         */
5239        GTQ, 
5240        /**
5241         * null
5242         */
5243        GYD, 
5244        /**
5245         * null
5246         */
5247        HKD, 
5248        /**
5249         * null
5250         */
5251        HNL, 
5252        /**
5253         * null
5254         */
5255        HRK, 
5256        /**
5257         * null
5258         */
5259        HTG, 
5260        /**
5261         * null
5262         */
5263        HUF, 
5264        /**
5265         * null
5266         */
5267        IDR, 
5268        /**
5269         * null
5270         */
5271        ILS, 
5272        /**
5273         * null
5274         */
5275        IMP, 
5276        /**
5277         * null
5278         */
5279        INR, 
5280        /**
5281         * null
5282         */
5283        IQD, 
5284        /**
5285         * null
5286         */
5287        IRR, 
5288        /**
5289         * null
5290         */
5291        ISK, 
5292        /**
5293         * null
5294         */
5295        JEP, 
5296        /**
5297         * null
5298         */
5299        JMD, 
5300        /**
5301         * null
5302         */
5303        JOD, 
5304        /**
5305         * null
5306         */
5307        JPY, 
5308        /**
5309         * null
5310         */
5311        KES, 
5312        /**
5313         * null
5314         */
5315        KGS, 
5316        /**
5317         * null
5318         */
5319        KHR, 
5320        /**
5321         * null
5322         */
5323        KMF, 
5324        /**
5325         * null
5326         */
5327        KPW, 
5328        /**
5329         * null
5330         */
5331        KRW, 
5332        /**
5333         * null
5334         */
5335        KWD, 
5336        /**
5337         * null
5338         */
5339        KYD, 
5340        /**
5341         * null
5342         */
5343        KZT, 
5344        /**
5345         * null
5346         */
5347        LAK, 
5348        /**
5349         * null
5350         */
5351        LBP, 
5352        /**
5353         * null
5354         */
5355        LKR, 
5356        /**
5357         * null
5358         */
5359        LRD, 
5360        /**
5361         * null
5362         */
5363        LSL, 
5364        /**
5365         * null
5366         */
5367        LYD, 
5368        /**
5369         * null
5370         */
5371        MAD, 
5372        /**
5373         * null
5374         */
5375        MDL, 
5376        /**
5377         * null
5378         */
5379        MGA, 
5380        /**
5381         * null
5382         */
5383        MKD, 
5384        /**
5385         * null
5386         */
5387        MMK, 
5388        /**
5389         * null
5390         */
5391        MNT, 
5392        /**
5393         * null
5394         */
5395        MOP, 
5396        /**
5397         * null
5398         */
5399        MRU, 
5400        /**
5401         * null
5402         */
5403        MUR, 
5404        /**
5405         * null
5406         */
5407        MVR, 
5408        /**
5409         * null
5410         */
5411        MWK, 
5412        /**
5413         * null
5414         */
5415        MXN, 
5416        /**
5417         * null
5418         */
5419        MXV, 
5420        /**
5421         * null
5422         */
5423        MYR, 
5424        /**
5425         * null
5426         */
5427        MZN, 
5428        /**
5429         * null
5430         */
5431        NAD, 
5432        /**
5433         * null
5434         */
5435        NGN, 
5436        /**
5437         * null
5438         */
5439        NIO, 
5440        /**
5441         * null
5442         */
5443        NOK, 
5444        /**
5445         * null
5446         */
5447        NPR, 
5448        /**
5449         * null
5450         */
5451        NZD, 
5452        /**
5453         * null
5454         */
5455        OMR, 
5456        /**
5457         * null
5458         */
5459        PAB, 
5460        /**
5461         * null
5462         */
5463        PEN, 
5464        /**
5465         * null
5466         */
5467        PGK, 
5468        /**
5469         * null
5470         */
5471        PHP, 
5472        /**
5473         * null
5474         */
5475        PKR, 
5476        /**
5477         * null
5478         */
5479        PLN, 
5480        /**
5481         * null
5482         */
5483        PYG, 
5484        /**
5485         * null
5486         */
5487        QAR, 
5488        /**
5489         * null
5490         */
5491        RON, 
5492        /**
5493         * null
5494         */
5495        RSD, 
5496        /**
5497         * null
5498         */
5499        RUB, 
5500        /**
5501         * null
5502         */
5503        RWF, 
5504        /**
5505         * null
5506         */
5507        SAR, 
5508        /**
5509         * null
5510         */
5511        SBD, 
5512        /**
5513         * null
5514         */
5515        SCR, 
5516        /**
5517         * null
5518         */
5519        SDG, 
5520        /**
5521         * null
5522         */
5523        SEK, 
5524        /**
5525         * null
5526         */
5527        SGD, 
5528        /**
5529         * null
5530         */
5531        SHP, 
5532        /**
5533         * null
5534         */
5535        SLL, 
5536        /**
5537         * null
5538         */
5539        SOS, 
5540        /**
5541         * null
5542         */
5543        SRD, 
5544        /**
5545         * null
5546         */
5547        SSP, 
5548        /**
5549         * null
5550         */
5551        STN, 
5552        /**
5553         * null
5554         */
5555        SVC, 
5556        /**
5557         * null
5558         */
5559        SYP, 
5560        /**
5561         * null
5562         */
5563        SZL, 
5564        /**
5565         * null
5566         */
5567        THB, 
5568        /**
5569         * null
5570         */
5571        TJS, 
5572        /**
5573         * null
5574         */
5575        TMT, 
5576        /**
5577         * null
5578         */
5579        TND, 
5580        /**
5581         * null
5582         */
5583        TOP, 
5584        /**
5585         * null
5586         */
5587        TRY, 
5588        /**
5589         * null
5590         */
5591        TTD, 
5592        /**
5593         * null
5594         */
5595        TVD, 
5596        /**
5597         * null
5598         */
5599        TWD, 
5600        /**
5601         * null
5602         */
5603        TZS, 
5604        /**
5605         * null
5606         */
5607        UAH, 
5608        /**
5609         * null
5610         */
5611        UGX, 
5612        /**
5613         * null
5614         */
5615        USD, 
5616        /**
5617         * null
5618         */
5619        USN, 
5620        /**
5621         * null
5622         */
5623        UYI, 
5624        /**
5625         * null
5626         */
5627        UYU, 
5628        /**
5629         * null
5630         */
5631        UZS, 
5632        /**
5633         * null
5634         */
5635        VEF, 
5636        /**
5637         * null
5638         */
5639        VND, 
5640        /**
5641         * null
5642         */
5643        VUV, 
5644        /**
5645         * null
5646         */
5647        WST, 
5648        /**
5649         * null
5650         */
5651        XAF, 
5652        /**
5653         * null
5654         */
5655        XAG, 
5656        /**
5657         * null
5658         */
5659        XAU, 
5660        /**
5661         * null
5662         */
5663        XBA, 
5664        /**
5665         * null
5666         */
5667        XBB, 
5668        /**
5669         * null
5670         */
5671        XBC, 
5672        /**
5673         * null
5674         */
5675        XBD, 
5676        /**
5677         * null
5678         */
5679        XCD, 
5680        /**
5681         * null
5682         */
5683        XDR, 
5684        /**
5685         * null
5686         */
5687        XOF, 
5688        /**
5689         * null
5690         */
5691        XPD, 
5692        /**
5693         * null
5694         */
5695        XPF, 
5696        /**
5697         * null
5698         */
5699        XPT, 
5700        /**
5701         * null
5702         */
5703        XSU, 
5704        /**
5705         * null
5706         */
5707        XTS, 
5708        /**
5709         * null
5710         */
5711        XUA, 
5712        /**
5713         * null
5714         */
5715        XXX, 
5716        /**
5717         * null
5718         */
5719        YER, 
5720        /**
5721         * null
5722         */
5723        ZAR, 
5724        /**
5725         * null
5726         */
5727        ZMW, 
5728        /**
5729         * null
5730         */
5731        ZWL, 
5732        /**
5733         * added to help the parsers
5734         */
5735        NULL;
5736        public static Currencies fromCode(String codeString) throws FHIRException {
5737            if (codeString == null || "".equals(codeString))
5738                return null;
5739        if ("AED".equals(codeString))
5740          return AED;
5741        if ("AFN".equals(codeString))
5742          return AFN;
5743        if ("ALL".equals(codeString))
5744          return ALL;
5745        if ("AMD".equals(codeString))
5746          return AMD;
5747        if ("ANG".equals(codeString))
5748          return ANG;
5749        if ("AOA".equals(codeString))
5750          return AOA;
5751        if ("ARS".equals(codeString))
5752          return ARS;
5753        if ("AUD".equals(codeString))
5754          return AUD;
5755        if ("AWG".equals(codeString))
5756          return AWG;
5757        if ("AZN".equals(codeString))
5758          return AZN;
5759        if ("BAM".equals(codeString))
5760          return BAM;
5761        if ("BBD".equals(codeString))
5762          return BBD;
5763        if ("BDT".equals(codeString))
5764          return BDT;
5765        if ("BGN".equals(codeString))
5766          return BGN;
5767        if ("BHD".equals(codeString))
5768          return BHD;
5769        if ("BIF".equals(codeString))
5770          return BIF;
5771        if ("BMD".equals(codeString))
5772          return BMD;
5773        if ("BND".equals(codeString))
5774          return BND;
5775        if ("BOB".equals(codeString))
5776          return BOB;
5777        if ("BOV".equals(codeString))
5778          return BOV;
5779        if ("BRL".equals(codeString))
5780          return BRL;
5781        if ("BSD".equals(codeString))
5782          return BSD;
5783        if ("BTN".equals(codeString))
5784          return BTN;
5785        if ("BWP".equals(codeString))
5786          return BWP;
5787        if ("BYN".equals(codeString))
5788          return BYN;
5789        if ("BZD".equals(codeString))
5790          return BZD;
5791        if ("CAD".equals(codeString))
5792          return CAD;
5793        if ("CDF".equals(codeString))
5794          return CDF;
5795        if ("CHE".equals(codeString))
5796          return CHE;
5797        if ("CHF".equals(codeString))
5798          return CHF;
5799        if ("CHW".equals(codeString))
5800          return CHW;
5801        if ("CLF".equals(codeString))
5802          return CLF;
5803        if ("CLP".equals(codeString))
5804          return CLP;
5805        if ("CNY".equals(codeString))
5806          return CNY;
5807        if ("COP".equals(codeString))
5808          return COP;
5809        if ("COU".equals(codeString))
5810          return COU;
5811        if ("CRC".equals(codeString))
5812          return CRC;
5813        if ("CUC".equals(codeString))
5814          return CUC;
5815        if ("CUP".equals(codeString))
5816          return CUP;
5817        if ("CVE".equals(codeString))
5818          return CVE;
5819        if ("CZK".equals(codeString))
5820          return CZK;
5821        if ("DJF".equals(codeString))
5822          return DJF;
5823        if ("DKK".equals(codeString))
5824          return DKK;
5825        if ("DOP".equals(codeString))
5826          return DOP;
5827        if ("DZD".equals(codeString))
5828          return DZD;
5829        if ("EGP".equals(codeString))
5830          return EGP;
5831        if ("ERN".equals(codeString))
5832          return ERN;
5833        if ("ETB".equals(codeString))
5834          return ETB;
5835        if ("EUR".equals(codeString))
5836          return EUR;
5837        if ("FJD".equals(codeString))
5838          return FJD;
5839        if ("FKP".equals(codeString))
5840          return FKP;
5841        if ("GBP".equals(codeString))
5842          return GBP;
5843        if ("GEL".equals(codeString))
5844          return GEL;
5845        if ("GGP".equals(codeString))
5846          return GGP;
5847        if ("GHS".equals(codeString))
5848          return GHS;
5849        if ("GIP".equals(codeString))
5850          return GIP;
5851        if ("GMD".equals(codeString))
5852          return GMD;
5853        if ("GNF".equals(codeString))
5854          return GNF;
5855        if ("GTQ".equals(codeString))
5856          return GTQ;
5857        if ("GYD".equals(codeString))
5858          return GYD;
5859        if ("HKD".equals(codeString))
5860          return HKD;
5861        if ("HNL".equals(codeString))
5862          return HNL;
5863        if ("HRK".equals(codeString))
5864          return HRK;
5865        if ("HTG".equals(codeString))
5866          return HTG;
5867        if ("HUF".equals(codeString))
5868          return HUF;
5869        if ("IDR".equals(codeString))
5870          return IDR;
5871        if ("ILS".equals(codeString))
5872          return ILS;
5873        if ("IMP".equals(codeString))
5874          return IMP;
5875        if ("INR".equals(codeString))
5876          return INR;
5877        if ("IQD".equals(codeString))
5878          return IQD;
5879        if ("IRR".equals(codeString))
5880          return IRR;
5881        if ("ISK".equals(codeString))
5882          return ISK;
5883        if ("JEP".equals(codeString))
5884          return JEP;
5885        if ("JMD".equals(codeString))
5886          return JMD;
5887        if ("JOD".equals(codeString))
5888          return JOD;
5889        if ("JPY".equals(codeString))
5890          return JPY;
5891        if ("KES".equals(codeString))
5892          return KES;
5893        if ("KGS".equals(codeString))
5894          return KGS;
5895        if ("KHR".equals(codeString))
5896          return KHR;
5897        if ("KMF".equals(codeString))
5898          return KMF;
5899        if ("KPW".equals(codeString))
5900          return KPW;
5901        if ("KRW".equals(codeString))
5902          return KRW;
5903        if ("KWD".equals(codeString))
5904          return KWD;
5905        if ("KYD".equals(codeString))
5906          return KYD;
5907        if ("KZT".equals(codeString))
5908          return KZT;
5909        if ("LAK".equals(codeString))
5910          return LAK;
5911        if ("LBP".equals(codeString))
5912          return LBP;
5913        if ("LKR".equals(codeString))
5914          return LKR;
5915        if ("LRD".equals(codeString))
5916          return LRD;
5917        if ("LSL".equals(codeString))
5918          return LSL;
5919        if ("LYD".equals(codeString))
5920          return LYD;
5921        if ("MAD".equals(codeString))
5922          return MAD;
5923        if ("MDL".equals(codeString))
5924          return MDL;
5925        if ("MGA".equals(codeString))
5926          return MGA;
5927        if ("MKD".equals(codeString))
5928          return MKD;
5929        if ("MMK".equals(codeString))
5930          return MMK;
5931        if ("MNT".equals(codeString))
5932          return MNT;
5933        if ("MOP".equals(codeString))
5934          return MOP;
5935        if ("MRU".equals(codeString))
5936          return MRU;
5937        if ("MUR".equals(codeString))
5938          return MUR;
5939        if ("MVR".equals(codeString))
5940          return MVR;
5941        if ("MWK".equals(codeString))
5942          return MWK;
5943        if ("MXN".equals(codeString))
5944          return MXN;
5945        if ("MXV".equals(codeString))
5946          return MXV;
5947        if ("MYR".equals(codeString))
5948          return MYR;
5949        if ("MZN".equals(codeString))
5950          return MZN;
5951        if ("NAD".equals(codeString))
5952          return NAD;
5953        if ("NGN".equals(codeString))
5954          return NGN;
5955        if ("NIO".equals(codeString))
5956          return NIO;
5957        if ("NOK".equals(codeString))
5958          return NOK;
5959        if ("NPR".equals(codeString))
5960          return NPR;
5961        if ("NZD".equals(codeString))
5962          return NZD;
5963        if ("OMR".equals(codeString))
5964          return OMR;
5965        if ("PAB".equals(codeString))
5966          return PAB;
5967        if ("PEN".equals(codeString))
5968          return PEN;
5969        if ("PGK".equals(codeString))
5970          return PGK;
5971        if ("PHP".equals(codeString))
5972          return PHP;
5973        if ("PKR".equals(codeString))
5974          return PKR;
5975        if ("PLN".equals(codeString))
5976          return PLN;
5977        if ("PYG".equals(codeString))
5978          return PYG;
5979        if ("QAR".equals(codeString))
5980          return QAR;
5981        if ("RON".equals(codeString))
5982          return RON;
5983        if ("RSD".equals(codeString))
5984          return RSD;
5985        if ("RUB".equals(codeString))
5986          return RUB;
5987        if ("RWF".equals(codeString))
5988          return RWF;
5989        if ("SAR".equals(codeString))
5990          return SAR;
5991        if ("SBD".equals(codeString))
5992          return SBD;
5993        if ("SCR".equals(codeString))
5994          return SCR;
5995        if ("SDG".equals(codeString))
5996          return SDG;
5997        if ("SEK".equals(codeString))
5998          return SEK;
5999        if ("SGD".equals(codeString))
6000          return SGD;
6001        if ("SHP".equals(codeString))
6002          return SHP;
6003        if ("SLL".equals(codeString))
6004          return SLL;
6005        if ("SOS".equals(codeString))
6006          return SOS;
6007        if ("SRD".equals(codeString))
6008          return SRD;
6009        if ("SSP".equals(codeString))
6010          return SSP;
6011        if ("STN".equals(codeString))
6012          return STN;
6013        if ("SVC".equals(codeString))
6014          return SVC;
6015        if ("SYP".equals(codeString))
6016          return SYP;
6017        if ("SZL".equals(codeString))
6018          return SZL;
6019        if ("THB".equals(codeString))
6020          return THB;
6021        if ("TJS".equals(codeString))
6022          return TJS;
6023        if ("TMT".equals(codeString))
6024          return TMT;
6025        if ("TND".equals(codeString))
6026          return TND;
6027        if ("TOP".equals(codeString))
6028          return TOP;
6029        if ("TRY".equals(codeString))
6030          return TRY;
6031        if ("TTD".equals(codeString))
6032          return TTD;
6033        if ("TVD".equals(codeString))
6034          return TVD;
6035        if ("TWD".equals(codeString))
6036          return TWD;
6037        if ("TZS".equals(codeString))
6038          return TZS;
6039        if ("UAH".equals(codeString))
6040          return UAH;
6041        if ("UGX".equals(codeString))
6042          return UGX;
6043        if ("USD".equals(codeString))
6044          return USD;
6045        if ("USN".equals(codeString))
6046          return USN;
6047        if ("UYI".equals(codeString))
6048          return UYI;
6049        if ("UYU".equals(codeString))
6050          return UYU;
6051        if ("UZS".equals(codeString))
6052          return UZS;
6053        if ("VEF".equals(codeString))
6054          return VEF;
6055        if ("VND".equals(codeString))
6056          return VND;
6057        if ("VUV".equals(codeString))
6058          return VUV;
6059        if ("WST".equals(codeString))
6060          return WST;
6061        if ("XAF".equals(codeString))
6062          return XAF;
6063        if ("XAG".equals(codeString))
6064          return XAG;
6065        if ("XAU".equals(codeString))
6066          return XAU;
6067        if ("XBA".equals(codeString))
6068          return XBA;
6069        if ("XBB".equals(codeString))
6070          return XBB;
6071        if ("XBC".equals(codeString))
6072          return XBC;
6073        if ("XBD".equals(codeString))
6074          return XBD;
6075        if ("XCD".equals(codeString))
6076          return XCD;
6077        if ("XDR".equals(codeString))
6078          return XDR;
6079        if ("XOF".equals(codeString))
6080          return XOF;
6081        if ("XPD".equals(codeString))
6082          return XPD;
6083        if ("XPF".equals(codeString))
6084          return XPF;
6085        if ("XPT".equals(codeString))
6086          return XPT;
6087        if ("XSU".equals(codeString))
6088          return XSU;
6089        if ("XTS".equals(codeString))
6090          return XTS;
6091        if ("XUA".equals(codeString))
6092          return XUA;
6093        if ("XXX".equals(codeString))
6094          return XXX;
6095        if ("YER".equals(codeString))
6096          return YER;
6097        if ("ZAR".equals(codeString))
6098          return ZAR;
6099        if ("ZMW".equals(codeString))
6100          return ZMW;
6101        if ("ZWL".equals(codeString))
6102          return ZWL;
6103        throw new FHIRException("Unknown Currencies code '"+codeString+"'");
6104        }
6105        public String toCode() {
6106          switch (this) {
6107            case AED: return "AED";
6108            case AFN: return "AFN";
6109            case ALL: return "ALL";
6110            case AMD: return "AMD";
6111            case ANG: return "ANG";
6112            case AOA: return "AOA";
6113            case ARS: return "ARS";
6114            case AUD: return "AUD";
6115            case AWG: return "AWG";
6116            case AZN: return "AZN";
6117            case BAM: return "BAM";
6118            case BBD: return "BBD";
6119            case BDT: return "BDT";
6120            case BGN: return "BGN";
6121            case BHD: return "BHD";
6122            case BIF: return "BIF";
6123            case BMD: return "BMD";
6124            case BND: return "BND";
6125            case BOB: return "BOB";
6126            case BOV: return "BOV";
6127            case BRL: return "BRL";
6128            case BSD: return "BSD";
6129            case BTN: return "BTN";
6130            case BWP: return "BWP";
6131            case BYN: return "BYN";
6132            case BZD: return "BZD";
6133            case CAD: return "CAD";
6134            case CDF: return "CDF";
6135            case CHE: return "CHE";
6136            case CHF: return "CHF";
6137            case CHW: return "CHW";
6138            case CLF: return "CLF";
6139            case CLP: return "CLP";
6140            case CNY: return "CNY";
6141            case COP: return "COP";
6142            case COU: return "COU";
6143            case CRC: return "CRC";
6144            case CUC: return "CUC";
6145            case CUP: return "CUP";
6146            case CVE: return "CVE";
6147            case CZK: return "CZK";
6148            case DJF: return "DJF";
6149            case DKK: return "DKK";
6150            case DOP: return "DOP";
6151            case DZD: return "DZD";
6152            case EGP: return "EGP";
6153            case ERN: return "ERN";
6154            case ETB: return "ETB";
6155            case EUR: return "EUR";
6156            case FJD: return "FJD";
6157            case FKP: return "FKP";
6158            case GBP: return "GBP";
6159            case GEL: return "GEL";
6160            case GGP: return "GGP";
6161            case GHS: return "GHS";
6162            case GIP: return "GIP";
6163            case GMD: return "GMD";
6164            case GNF: return "GNF";
6165            case GTQ: return "GTQ";
6166            case GYD: return "GYD";
6167            case HKD: return "HKD";
6168            case HNL: return "HNL";
6169            case HRK: return "HRK";
6170            case HTG: return "HTG";
6171            case HUF: return "HUF";
6172            case IDR: return "IDR";
6173            case ILS: return "ILS";
6174            case IMP: return "IMP";
6175            case INR: return "INR";
6176            case IQD: return "IQD";
6177            case IRR: return "IRR";
6178            case ISK: return "ISK";
6179            case JEP: return "JEP";
6180            case JMD: return "JMD";
6181            case JOD: return "JOD";
6182            case JPY: return "JPY";
6183            case KES: return "KES";
6184            case KGS: return "KGS";
6185            case KHR: return "KHR";
6186            case KMF: return "KMF";
6187            case KPW: return "KPW";
6188            case KRW: return "KRW";
6189            case KWD: return "KWD";
6190            case KYD: return "KYD";
6191            case KZT: return "KZT";
6192            case LAK: return "LAK";
6193            case LBP: return "LBP";
6194            case LKR: return "LKR";
6195            case LRD: return "LRD";
6196            case LSL: return "LSL";
6197            case LYD: return "LYD";
6198            case MAD: return "MAD";
6199            case MDL: return "MDL";
6200            case MGA: return "MGA";
6201            case MKD: return "MKD";
6202            case MMK: return "MMK";
6203            case MNT: return "MNT";
6204            case MOP: return "MOP";
6205            case MRU: return "MRU";
6206            case MUR: return "MUR";
6207            case MVR: return "MVR";
6208            case MWK: return "MWK";
6209            case MXN: return "MXN";
6210            case MXV: return "MXV";
6211            case MYR: return "MYR";
6212            case MZN: return "MZN";
6213            case NAD: return "NAD";
6214            case NGN: return "NGN";
6215            case NIO: return "NIO";
6216            case NOK: return "NOK";
6217            case NPR: return "NPR";
6218            case NZD: return "NZD";
6219            case OMR: return "OMR";
6220            case PAB: return "PAB";
6221            case PEN: return "PEN";
6222            case PGK: return "PGK";
6223            case PHP: return "PHP";
6224            case PKR: return "PKR";
6225            case PLN: return "PLN";
6226            case PYG: return "PYG";
6227            case QAR: return "QAR";
6228            case RON: return "RON";
6229            case RSD: return "RSD";
6230            case RUB: return "RUB";
6231            case RWF: return "RWF";
6232            case SAR: return "SAR";
6233            case SBD: return "SBD";
6234            case SCR: return "SCR";
6235            case SDG: return "SDG";
6236            case SEK: return "SEK";
6237            case SGD: return "SGD";
6238            case SHP: return "SHP";
6239            case SLL: return "SLL";
6240            case SOS: return "SOS";
6241            case SRD: return "SRD";
6242            case SSP: return "SSP";
6243            case STN: return "STN";
6244            case SVC: return "SVC";
6245            case SYP: return "SYP";
6246            case SZL: return "SZL";
6247            case THB: return "THB";
6248            case TJS: return "TJS";
6249            case TMT: return "TMT";
6250            case TND: return "TND";
6251            case TOP: return "TOP";
6252            case TRY: return "TRY";
6253            case TTD: return "TTD";
6254            case TVD: return "TVD";
6255            case TWD: return "TWD";
6256            case TZS: return "TZS";
6257            case UAH: return "UAH";
6258            case UGX: return "UGX";
6259            case USD: return "USD";
6260            case USN: return "USN";
6261            case UYI: return "UYI";
6262            case UYU: return "UYU";
6263            case UZS: return "UZS";
6264            case VEF: return "VEF";
6265            case VND: return "VND";
6266            case VUV: return "VUV";
6267            case WST: return "WST";
6268            case XAF: return "XAF";
6269            case XAG: return "XAG";
6270            case XAU: return "XAU";
6271            case XBA: return "XBA";
6272            case XBB: return "XBB";
6273            case XBC: return "XBC";
6274            case XBD: return "XBD";
6275            case XCD: return "XCD";
6276            case XDR: return "XDR";
6277            case XOF: return "XOF";
6278            case XPD: return "XPD";
6279            case XPF: return "XPF";
6280            case XPT: return "XPT";
6281            case XSU: return "XSU";
6282            case XTS: return "XTS";
6283            case XUA: return "XUA";
6284            case XXX: return "XXX";
6285            case YER: return "YER";
6286            case ZAR: return "ZAR";
6287            case ZMW: return "ZMW";
6288            case ZWL: return "ZWL";
6289            case NULL: return null;
6290            default: return "?";
6291          }
6292        }
6293        public String getSystem() {
6294          switch (this) {
6295            case AED: return "urn:iso:std:iso:4217";
6296            case AFN: return "urn:iso:std:iso:4217";
6297            case ALL: return "urn:iso:std:iso:4217";
6298            case AMD: return "urn:iso:std:iso:4217";
6299            case ANG: return "urn:iso:std:iso:4217";
6300            case AOA: return "urn:iso:std:iso:4217";
6301            case ARS: return "urn:iso:std:iso:4217";
6302            case AUD: return "urn:iso:std:iso:4217";
6303            case AWG: return "urn:iso:std:iso:4217";
6304            case AZN: return "urn:iso:std:iso:4217";
6305            case BAM: return "urn:iso:std:iso:4217";
6306            case BBD: return "urn:iso:std:iso:4217";
6307            case BDT: return "urn:iso:std:iso:4217";
6308            case BGN: return "urn:iso:std:iso:4217";
6309            case BHD: return "urn:iso:std:iso:4217";
6310            case BIF: return "urn:iso:std:iso:4217";
6311            case BMD: return "urn:iso:std:iso:4217";
6312            case BND: return "urn:iso:std:iso:4217";
6313            case BOB: return "urn:iso:std:iso:4217";
6314            case BOV: return "urn:iso:std:iso:4217";
6315            case BRL: return "urn:iso:std:iso:4217";
6316            case BSD: return "urn:iso:std:iso:4217";
6317            case BTN: return "urn:iso:std:iso:4217";
6318            case BWP: return "urn:iso:std:iso:4217";
6319            case BYN: return "urn:iso:std:iso:4217";
6320            case BZD: return "urn:iso:std:iso:4217";
6321            case CAD: return "urn:iso:std:iso:4217";
6322            case CDF: return "urn:iso:std:iso:4217";
6323            case CHE: return "urn:iso:std:iso:4217";
6324            case CHF: return "urn:iso:std:iso:4217";
6325            case CHW: return "urn:iso:std:iso:4217";
6326            case CLF: return "urn:iso:std:iso:4217";
6327            case CLP: return "urn:iso:std:iso:4217";
6328            case CNY: return "urn:iso:std:iso:4217";
6329            case COP: return "urn:iso:std:iso:4217";
6330            case COU: return "urn:iso:std:iso:4217";
6331            case CRC: return "urn:iso:std:iso:4217";
6332            case CUC: return "urn:iso:std:iso:4217";
6333            case CUP: return "urn:iso:std:iso:4217";
6334            case CVE: return "urn:iso:std:iso:4217";
6335            case CZK: return "urn:iso:std:iso:4217";
6336            case DJF: return "urn:iso:std:iso:4217";
6337            case DKK: return "urn:iso:std:iso:4217";
6338            case DOP: return "urn:iso:std:iso:4217";
6339            case DZD: return "urn:iso:std:iso:4217";
6340            case EGP: return "urn:iso:std:iso:4217";
6341            case ERN: return "urn:iso:std:iso:4217";
6342            case ETB: return "urn:iso:std:iso:4217";
6343            case EUR: return "urn:iso:std:iso:4217";
6344            case FJD: return "urn:iso:std:iso:4217";
6345            case FKP: return "urn:iso:std:iso:4217";
6346            case GBP: return "urn:iso:std:iso:4217";
6347            case GEL: return "urn:iso:std:iso:4217";
6348            case GGP: return "urn:iso:std:iso:4217";
6349            case GHS: return "urn:iso:std:iso:4217";
6350            case GIP: return "urn:iso:std:iso:4217";
6351            case GMD: return "urn:iso:std:iso:4217";
6352            case GNF: return "urn:iso:std:iso:4217";
6353            case GTQ: return "urn:iso:std:iso:4217";
6354            case GYD: return "urn:iso:std:iso:4217";
6355            case HKD: return "urn:iso:std:iso:4217";
6356            case HNL: return "urn:iso:std:iso:4217";
6357            case HRK: return "urn:iso:std:iso:4217";
6358            case HTG: return "urn:iso:std:iso:4217";
6359            case HUF: return "urn:iso:std:iso:4217";
6360            case IDR: return "urn:iso:std:iso:4217";
6361            case ILS: return "urn:iso:std:iso:4217";
6362            case IMP: return "urn:iso:std:iso:4217";
6363            case INR: return "urn:iso:std:iso:4217";
6364            case IQD: return "urn:iso:std:iso:4217";
6365            case IRR: return "urn:iso:std:iso:4217";
6366            case ISK: return "urn:iso:std:iso:4217";
6367            case JEP: return "urn:iso:std:iso:4217";
6368            case JMD: return "urn:iso:std:iso:4217";
6369            case JOD: return "urn:iso:std:iso:4217";
6370            case JPY: return "urn:iso:std:iso:4217";
6371            case KES: return "urn:iso:std:iso:4217";
6372            case KGS: return "urn:iso:std:iso:4217";
6373            case KHR: return "urn:iso:std:iso:4217";
6374            case KMF: return "urn:iso:std:iso:4217";
6375            case KPW: return "urn:iso:std:iso:4217";
6376            case KRW: return "urn:iso:std:iso:4217";
6377            case KWD: return "urn:iso:std:iso:4217";
6378            case KYD: return "urn:iso:std:iso:4217";
6379            case KZT: return "urn:iso:std:iso:4217";
6380            case LAK: return "urn:iso:std:iso:4217";
6381            case LBP: return "urn:iso:std:iso:4217";
6382            case LKR: return "urn:iso:std:iso:4217";
6383            case LRD: return "urn:iso:std:iso:4217";
6384            case LSL: return "urn:iso:std:iso:4217";
6385            case LYD: return "urn:iso:std:iso:4217";
6386            case MAD: return "urn:iso:std:iso:4217";
6387            case MDL: return "urn:iso:std:iso:4217";
6388            case MGA: return "urn:iso:std:iso:4217";
6389            case MKD: return "urn:iso:std:iso:4217";
6390            case MMK: return "urn:iso:std:iso:4217";
6391            case MNT: return "urn:iso:std:iso:4217";
6392            case MOP: return "urn:iso:std:iso:4217";
6393            case MRU: return "urn:iso:std:iso:4217";
6394            case MUR: return "urn:iso:std:iso:4217";
6395            case MVR: return "urn:iso:std:iso:4217";
6396            case MWK: return "urn:iso:std:iso:4217";
6397            case MXN: return "urn:iso:std:iso:4217";
6398            case MXV: return "urn:iso:std:iso:4217";
6399            case MYR: return "urn:iso:std:iso:4217";
6400            case MZN: return "urn:iso:std:iso:4217";
6401            case NAD: return "urn:iso:std:iso:4217";
6402            case NGN: return "urn:iso:std:iso:4217";
6403            case NIO: return "urn:iso:std:iso:4217";
6404            case NOK: return "urn:iso:std:iso:4217";
6405            case NPR: return "urn:iso:std:iso:4217";
6406            case NZD: return "urn:iso:std:iso:4217";
6407            case OMR: return "urn:iso:std:iso:4217";
6408            case PAB: return "urn:iso:std:iso:4217";
6409            case PEN: return "urn:iso:std:iso:4217";
6410            case PGK: return "urn:iso:std:iso:4217";
6411            case PHP: return "urn:iso:std:iso:4217";
6412            case PKR: return "urn:iso:std:iso:4217";
6413            case PLN: return "urn:iso:std:iso:4217";
6414            case PYG: return "urn:iso:std:iso:4217";
6415            case QAR: return "urn:iso:std:iso:4217";
6416            case RON: return "urn:iso:std:iso:4217";
6417            case RSD: return "urn:iso:std:iso:4217";
6418            case RUB: return "urn:iso:std:iso:4217";
6419            case RWF: return "urn:iso:std:iso:4217";
6420            case SAR: return "urn:iso:std:iso:4217";
6421            case SBD: return "urn:iso:std:iso:4217";
6422            case SCR: return "urn:iso:std:iso:4217";
6423            case SDG: return "urn:iso:std:iso:4217";
6424            case SEK: return "urn:iso:std:iso:4217";
6425            case SGD: return "urn:iso:std:iso:4217";
6426            case SHP: return "urn:iso:std:iso:4217";
6427            case SLL: return "urn:iso:std:iso:4217";
6428            case SOS: return "urn:iso:std:iso:4217";
6429            case SRD: return "urn:iso:std:iso:4217";
6430            case SSP: return "urn:iso:std:iso:4217";
6431            case STN: return "urn:iso:std:iso:4217";
6432            case SVC: return "urn:iso:std:iso:4217";
6433            case SYP: return "urn:iso:std:iso:4217";
6434            case SZL: return "urn:iso:std:iso:4217";
6435            case THB: return "urn:iso:std:iso:4217";
6436            case TJS: return "urn:iso:std:iso:4217";
6437            case TMT: return "urn:iso:std:iso:4217";
6438            case TND: return "urn:iso:std:iso:4217";
6439            case TOP: return "urn:iso:std:iso:4217";
6440            case TRY: return "urn:iso:std:iso:4217";
6441            case TTD: return "urn:iso:std:iso:4217";
6442            case TVD: return "urn:iso:std:iso:4217";
6443            case TWD: return "urn:iso:std:iso:4217";
6444            case TZS: return "urn:iso:std:iso:4217";
6445            case UAH: return "urn:iso:std:iso:4217";
6446            case UGX: return "urn:iso:std:iso:4217";
6447            case USD: return "urn:iso:std:iso:4217";
6448            case USN: return "urn:iso:std:iso:4217";
6449            case UYI: return "urn:iso:std:iso:4217";
6450            case UYU: return "urn:iso:std:iso:4217";
6451            case UZS: return "urn:iso:std:iso:4217";
6452            case VEF: return "urn:iso:std:iso:4217";
6453            case VND: return "urn:iso:std:iso:4217";
6454            case VUV: return "urn:iso:std:iso:4217";
6455            case WST: return "urn:iso:std:iso:4217";
6456            case XAF: return "urn:iso:std:iso:4217";
6457            case XAG: return "urn:iso:std:iso:4217";
6458            case XAU: return "urn:iso:std:iso:4217";
6459            case XBA: return "urn:iso:std:iso:4217";
6460            case XBB: return "urn:iso:std:iso:4217";
6461            case XBC: return "urn:iso:std:iso:4217";
6462            case XBD: return "urn:iso:std:iso:4217";
6463            case XCD: return "urn:iso:std:iso:4217";
6464            case XDR: return "urn:iso:std:iso:4217";
6465            case XOF: return "urn:iso:std:iso:4217";
6466            case XPD: return "urn:iso:std:iso:4217";
6467            case XPF: return "urn:iso:std:iso:4217";
6468            case XPT: return "urn:iso:std:iso:4217";
6469            case XSU: return "urn:iso:std:iso:4217";
6470            case XTS: return "urn:iso:std:iso:4217";
6471            case XUA: return "urn:iso:std:iso:4217";
6472            case XXX: return "urn:iso:std:iso:4217";
6473            case YER: return "urn:iso:std:iso:4217";
6474            case ZAR: return "urn:iso:std:iso:4217";
6475            case ZMW: return "urn:iso:std:iso:4217";
6476            case ZWL: return "urn:iso:std:iso:4217";
6477            case NULL: return null;
6478            default: return "?";
6479          }
6480        }
6481        public String getDefinition() {
6482          switch (this) {
6483            case AED: return "";
6484            case AFN: return "";
6485            case ALL: return "";
6486            case AMD: return "";
6487            case ANG: return "";
6488            case AOA: return "";
6489            case ARS: return "";
6490            case AUD: return "";
6491            case AWG: return "";
6492            case AZN: return "";
6493            case BAM: return "";
6494            case BBD: return "";
6495            case BDT: return "";
6496            case BGN: return "";
6497            case BHD: return "";
6498            case BIF: return "";
6499            case BMD: return "";
6500            case BND: return "";
6501            case BOB: return "";
6502            case BOV: return "";
6503            case BRL: return "";
6504            case BSD: return "";
6505            case BTN: return "";
6506            case BWP: return "";
6507            case BYN: return "";
6508            case BZD: return "";
6509            case CAD: return "";
6510            case CDF: return "";
6511            case CHE: return "";
6512            case CHF: return "";
6513            case CHW: return "";
6514            case CLF: return "";
6515            case CLP: return "";
6516            case CNY: return "";
6517            case COP: return "";
6518            case COU: return "";
6519            case CRC: return "";
6520            case CUC: return "";
6521            case CUP: return "";
6522            case CVE: return "";
6523            case CZK: return "";
6524            case DJF: return "";
6525            case DKK: return "";
6526            case DOP: return "";
6527            case DZD: return "";
6528            case EGP: return "";
6529            case ERN: return "";
6530            case ETB: return "";
6531            case EUR: return "";
6532            case FJD: return "";
6533            case FKP: return "";
6534            case GBP: return "";
6535            case GEL: return "";
6536            case GGP: return "";
6537            case GHS: return "";
6538            case GIP: return "";
6539            case GMD: return "";
6540            case GNF: return "";
6541            case GTQ: return "";
6542            case GYD: return "";
6543            case HKD: return "";
6544            case HNL: return "";
6545            case HRK: return "";
6546            case HTG: return "";
6547            case HUF: return "";
6548            case IDR: return "";
6549            case ILS: return "";
6550            case IMP: return "";
6551            case INR: return "";
6552            case IQD: return "";
6553            case IRR: return "";
6554            case ISK: return "";
6555            case JEP: return "";
6556            case JMD: return "";
6557            case JOD: return "";
6558            case JPY: return "";
6559            case KES: return "";
6560            case KGS: return "";
6561            case KHR: return "";
6562            case KMF: return "";
6563            case KPW: return "";
6564            case KRW: return "";
6565            case KWD: return "";
6566            case KYD: return "";
6567            case KZT: return "";
6568            case LAK: return "";
6569            case LBP: return "";
6570            case LKR: return "";
6571            case LRD: return "";
6572            case LSL: return "";
6573            case LYD: return "";
6574            case MAD: return "";
6575            case MDL: return "";
6576            case MGA: return "";
6577            case MKD: return "";
6578            case MMK: return "";
6579            case MNT: return "";
6580            case MOP: return "";
6581            case MRU: return "";
6582            case MUR: return "";
6583            case MVR: return "";
6584            case MWK: return "";
6585            case MXN: return "";
6586            case MXV: return "";
6587            case MYR: return "";
6588            case MZN: return "";
6589            case NAD: return "";
6590            case NGN: return "";
6591            case NIO: return "";
6592            case NOK: return "";
6593            case NPR: return "";
6594            case NZD: return "";
6595            case OMR: return "";
6596            case PAB: return "";
6597            case PEN: return "";
6598            case PGK: return "";
6599            case PHP: return "";
6600            case PKR: return "";
6601            case PLN: return "";
6602            case PYG: return "";
6603            case QAR: return "";
6604            case RON: return "";
6605            case RSD: return "";
6606            case RUB: return "";
6607            case RWF: return "";
6608            case SAR: return "";
6609            case SBD: return "";
6610            case SCR: return "";
6611            case SDG: return "";
6612            case SEK: return "";
6613            case SGD: return "";
6614            case SHP: return "";
6615            case SLL: return "";
6616            case SOS: return "";
6617            case SRD: return "";
6618            case SSP: return "";
6619            case STN: return "";
6620            case SVC: return "";
6621            case SYP: return "";
6622            case SZL: return "";
6623            case THB: return "";
6624            case TJS: return "";
6625            case TMT: return "";
6626            case TND: return "";
6627            case TOP: return "";
6628            case TRY: return "";
6629            case TTD: return "";
6630            case TVD: return "";
6631            case TWD: return "";
6632            case TZS: return "";
6633            case UAH: return "";
6634            case UGX: return "";
6635            case USD: return "";
6636            case USN: return "";
6637            case UYI: return "";
6638            case UYU: return "";
6639            case UZS: return "";
6640            case VEF: return "";
6641            case VND: return "";
6642            case VUV: return "";
6643            case WST: return "";
6644            case XAF: return "";
6645            case XAG: return "";
6646            case XAU: return "";
6647            case XBA: return "";
6648            case XBB: return "";
6649            case XBC: return "";
6650            case XBD: return "";
6651            case XCD: return "";
6652            case XDR: return "";
6653            case XOF: return "";
6654            case XPD: return "";
6655            case XPF: return "";
6656            case XPT: return "";
6657            case XSU: return "";
6658            case XTS: return "";
6659            case XUA: return "";
6660            case XXX: return "";
6661            case YER: return "";
6662            case ZAR: return "";
6663            case ZMW: return "";
6664            case ZWL: return "";
6665            case NULL: return null;
6666            default: return "?";
6667          }
6668        }
6669        public String getDisplay() {
6670          switch (this) {
6671            case AED: return "United Arab Emirates dirham";
6672            case AFN: return "Afghan afghani";
6673            case ALL: return "Albanian lek";
6674            case AMD: return "Armenian dram";
6675            case ANG: return "Netherlands Antillean guilder";
6676            case AOA: return "Angolan kwanza";
6677            case ARS: return "Argentine peso";
6678            case AUD: return "Australian dollar";
6679            case AWG: return "Aruban florin";
6680            case AZN: return "Azerbaijani manat";
6681            case BAM: return "Bosnia and Herzegovina convertible mark";
6682            case BBD: return "Barbados dollar";
6683            case BDT: return "Bangladeshi taka";
6684            case BGN: return "Bulgarian lev";
6685            case BHD: return "Bahraini dinar";
6686            case BIF: return "Burundian franc";
6687            case BMD: return "Bermudian dollar";
6688            case BND: return "Brunei dollar";
6689            case BOB: return "Boliviano";
6690            case BOV: return "Bolivian Mvdol (funds code)";
6691            case BRL: return "Brazilian real";
6692            case BSD: return "Bahamian dollar";
6693            case BTN: return "Bhutanese ngultrum";
6694            case BWP: return "Botswana pula";
6695            case BYN: return "Belarusian ruble";
6696            case BZD: return "Belize dollar";
6697            case CAD: return "Canadian dollar";
6698            case CDF: return "Congolese franc";
6699            case CHE: return "WIR Euro (complementary currency)";
6700            case CHF: return "Swiss franc";
6701            case CHW: return "WIR Franc (complementary currency)";
6702            case CLF: return "Unidad de Fomento (funds code)";
6703            case CLP: return "Chilean peso";
6704            case CNY: return "Renminbi (Chinese) yuan[8]";
6705            case COP: return "Colombian peso";
6706            case COU: return "Unidad de Valor Real (UVR) (funds code)[9]";
6707            case CRC: return "Costa Rican colon";
6708            case CUC: return "Cuban convertible peso";
6709            case CUP: return "Cuban peso";
6710            case CVE: return "Cape Verde escudo";
6711            case CZK: return "Czech koruna";
6712            case DJF: return "Djiboutian franc";
6713            case DKK: return "Danish krone";
6714            case DOP: return "Dominican peso";
6715            case DZD: return "Algerian dinar";
6716            case EGP: return "Egyptian pound";
6717            case ERN: return "Eritrean nakfa";
6718            case ETB: return "Ethiopian birr";
6719            case EUR: return "Euro";
6720            case FJD: return "Fiji dollar";
6721            case FKP: return "Falkland Islands pound";
6722            case GBP: return "Pound sterling";
6723            case GEL: return "Georgian lari";
6724            case GGP: return "Guernsey Pound";
6725            case GHS: return "Ghanaian cedi";
6726            case GIP: return "Gibraltar pound";
6727            case GMD: return "Gambian dalasi";
6728            case GNF: return "Guinean franc";
6729            case GTQ: return "Guatemalan quetzal";
6730            case GYD: return "Guyanese dollar";
6731            case HKD: return "Hong Kong dollar";
6732            case HNL: return "Honduran lempira";
6733            case HRK: return "Croatian kuna";
6734            case HTG: return "Haitian gourde";
6735            case HUF: return "Hungarian forint";
6736            case IDR: return "Indonesian rupiah";
6737            case ILS: return "Israeli new shekel";
6738            case IMP: return "Isle of Man Pound";
6739            case INR: return "Indian rupee";
6740            case IQD: return "Iraqi dinar";
6741            case IRR: return "Iranian rial";
6742            case ISK: return "Icelandic króna";
6743            case JEP: return "Jersey Pound";
6744            case JMD: return "Jamaican dollar";
6745            case JOD: return "Jordanian dinar";
6746            case JPY: return "Japanese yen";
6747            case KES: return "Kenyan shilling";
6748            case KGS: return "Kyrgyzstani som";
6749            case KHR: return "Cambodian riel";
6750            case KMF: return "Comoro franc";
6751            case KPW: return "North Korean won";
6752            case KRW: return "South Korean won";
6753            case KWD: return "Kuwaiti dinar";
6754            case KYD: return "Cayman Islands dollar";
6755            case KZT: return "Kazakhstani tenge";
6756            case LAK: return "Lao kip";
6757            case LBP: return "Lebanese pound";
6758            case LKR: return "Sri Lankan rupee";
6759            case LRD: return "Liberian dollar";
6760            case LSL: return "Lesotho loti";
6761            case LYD: return "Libyan dinar";
6762            case MAD: return "Moroccan dirham";
6763            case MDL: return "Moldovan leu";
6764            case MGA: return "Malagasy ariary";
6765            case MKD: return "Macedonian denar";
6766            case MMK: return "Myanmar kyat";
6767            case MNT: return "Mongolian tögrög";
6768            case MOP: return "Macanese pataca";
6769            case MRU: return "Mauritanian ouguiya";
6770            case MUR: return "Mauritian rupee";
6771            case MVR: return "Maldivian rufiyaa";
6772            case MWK: return "Malawian kwacha";
6773            case MXN: return "Mexican peso";
6774            case MXV: return "Mexican Unidad de Inversion (UDI) (funds code)";
6775            case MYR: return "Malaysian ringgit";
6776            case MZN: return "Mozambican metical";
6777            case NAD: return "Namibian dollar";
6778            case NGN: return "Nigerian naira";
6779            case NIO: return "Nicaraguan córdoba";
6780            case NOK: return "Norwegian krone";
6781            case NPR: return "Nepalese rupee";
6782            case NZD: return "New Zealand dollar";
6783            case OMR: return "Omani rial";
6784            case PAB: return "Panamanian balboa";
6785            case PEN: return "Peruvian Sol";
6786            case PGK: return "Papua New Guinean kina";
6787            case PHP: return "Philippine piso[13]";
6788            case PKR: return "Pakistani rupee";
6789            case PLN: return "Polish złoty";
6790            case PYG: return "Paraguayan guaraní";
6791            case QAR: return "Qatari riyal";
6792            case RON: return "Romanian leu";
6793            case RSD: return "Serbian dinar";
6794            case RUB: return "Russian ruble";
6795            case RWF: return "Rwandan franc";
6796            case SAR: return "Saudi riyal";
6797            case SBD: return "Solomon Islands dollar";
6798            case SCR: return "Seychelles rupee";
6799            case SDG: return "Sudanese pound";
6800            case SEK: return "Swedish krona/kronor";
6801            case SGD: return "Singapore dollar";
6802            case SHP: return "Saint Helena pound";
6803            case SLL: return "Sierra Leonean leone";
6804            case SOS: return "Somali shilling";
6805            case SRD: return "Surinamese dollar";
6806            case SSP: return "South Sudanese pound";
6807            case STN: return "São Tomé and Príncipe dobra";
6808            case SVC: return "Salvadoran colón";
6809            case SYP: return "Syrian pound";
6810            case SZL: return "Swazi lilangeni";
6811            case THB: return "Thai baht";
6812            case TJS: return "Tajikistani somoni";
6813            case TMT: return "Turkmenistan manat";
6814            case TND: return "Tunisian dinar";
6815            case TOP: return "Tongan paʻanga";
6816            case TRY: return "Turkish lira";
6817            case TTD: return "Trinidad and Tobago dollar";
6818            case TVD: return "Tuvalu Dollar";
6819            case TWD: return "New Taiwan dollar";
6820            case TZS: return "Tanzanian shilling";
6821            case UAH: return "Ukrainian hryvnia";
6822            case UGX: return "Ugandan shilling";
6823            case USD: return "United States dollar";
6824            case USN: return "United States dollar (next day) (funds code)";
6825            case UYI: return "Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code)";
6826            case UYU: return "Uruguayan peso";
6827            case UZS: return "Uzbekistan som";
6828            case VEF: return "Venezuelan bolívar";
6829            case VND: return "Vietnamese đồng";
6830            case VUV: return "Vanuatu vatu";
6831            case WST: return "Samoan tala";
6832            case XAF: return "CFA franc BEAC";
6833            case XAG: return "Silver (one troy ounce)";
6834            case XAU: return "Gold (one troy ounce)";
6835            case XBA: return "European Composite Unit (EURCO) (bond market unit)";
6836            case XBB: return "European Monetary Unit (E.M.U.-6) (bond market unit)";
6837            case XBC: return "European Unit of Account 9 (E.U.A.-9) (bond market unit)";
6838            case XBD: return "European Unit of Account 17 (E.U.A.-17) (bond market unit)";
6839            case XCD: return "East Caribbean dollar";
6840            case XDR: return "Special drawing rights";
6841            case XOF: return "CFA franc BCEAO";
6842            case XPD: return "Palladium (one troy ounce)";
6843            case XPF: return "CFP franc (franc Pacifique)";
6844            case XPT: return "Platinum (one troy ounce)";
6845            case XSU: return "SUCRE";
6846            case XTS: return "Code reserved for testing purposes";
6847            case XUA: return "ADB Unit of Account";
6848            case XXX: return "No currency";
6849            case YER: return "Yemeni rial";
6850            case ZAR: return "South African rand";
6851            case ZMW: return "Zambian kwacha";
6852            case ZWL: return "Zimbabwean dollar A/10";
6853            case NULL: return null;
6854            default: return "?";
6855          }
6856        }
6857    }
6858
6859  public static class CurrenciesEnumFactory implements EnumFactory<Currencies> {
6860    public Currencies fromCode(String codeString) throws IllegalArgumentException {
6861      if (codeString == null || "".equals(codeString))
6862            if (codeString == null || "".equals(codeString))
6863                return null;
6864        if ("AED".equals(codeString))
6865          return Currencies.AED;
6866        if ("AFN".equals(codeString))
6867          return Currencies.AFN;
6868        if ("ALL".equals(codeString))
6869          return Currencies.ALL;
6870        if ("AMD".equals(codeString))
6871          return Currencies.AMD;
6872        if ("ANG".equals(codeString))
6873          return Currencies.ANG;
6874        if ("AOA".equals(codeString))
6875          return Currencies.AOA;
6876        if ("ARS".equals(codeString))
6877          return Currencies.ARS;
6878        if ("AUD".equals(codeString))
6879          return Currencies.AUD;
6880        if ("AWG".equals(codeString))
6881          return Currencies.AWG;
6882        if ("AZN".equals(codeString))
6883          return Currencies.AZN;
6884        if ("BAM".equals(codeString))
6885          return Currencies.BAM;
6886        if ("BBD".equals(codeString))
6887          return Currencies.BBD;
6888        if ("BDT".equals(codeString))
6889          return Currencies.BDT;
6890        if ("BGN".equals(codeString))
6891          return Currencies.BGN;
6892        if ("BHD".equals(codeString))
6893          return Currencies.BHD;
6894        if ("BIF".equals(codeString))
6895          return Currencies.BIF;
6896        if ("BMD".equals(codeString))
6897          return Currencies.BMD;
6898        if ("BND".equals(codeString))
6899          return Currencies.BND;
6900        if ("BOB".equals(codeString))
6901          return Currencies.BOB;
6902        if ("BOV".equals(codeString))
6903          return Currencies.BOV;
6904        if ("BRL".equals(codeString))
6905          return Currencies.BRL;
6906        if ("BSD".equals(codeString))
6907          return Currencies.BSD;
6908        if ("BTN".equals(codeString))
6909          return Currencies.BTN;
6910        if ("BWP".equals(codeString))
6911          return Currencies.BWP;
6912        if ("BYN".equals(codeString))
6913          return Currencies.BYN;
6914        if ("BZD".equals(codeString))
6915          return Currencies.BZD;
6916        if ("CAD".equals(codeString))
6917          return Currencies.CAD;
6918        if ("CDF".equals(codeString))
6919          return Currencies.CDF;
6920        if ("CHE".equals(codeString))
6921          return Currencies.CHE;
6922        if ("CHF".equals(codeString))
6923          return Currencies.CHF;
6924        if ("CHW".equals(codeString))
6925          return Currencies.CHW;
6926        if ("CLF".equals(codeString))
6927          return Currencies.CLF;
6928        if ("CLP".equals(codeString))
6929          return Currencies.CLP;
6930        if ("CNY".equals(codeString))
6931          return Currencies.CNY;
6932        if ("COP".equals(codeString))
6933          return Currencies.COP;
6934        if ("COU".equals(codeString))
6935          return Currencies.COU;
6936        if ("CRC".equals(codeString))
6937          return Currencies.CRC;
6938        if ("CUC".equals(codeString))
6939          return Currencies.CUC;
6940        if ("CUP".equals(codeString))
6941          return Currencies.CUP;
6942        if ("CVE".equals(codeString))
6943          return Currencies.CVE;
6944        if ("CZK".equals(codeString))
6945          return Currencies.CZK;
6946        if ("DJF".equals(codeString))
6947          return Currencies.DJF;
6948        if ("DKK".equals(codeString))
6949          return Currencies.DKK;
6950        if ("DOP".equals(codeString))
6951          return Currencies.DOP;
6952        if ("DZD".equals(codeString))
6953          return Currencies.DZD;
6954        if ("EGP".equals(codeString))
6955          return Currencies.EGP;
6956        if ("ERN".equals(codeString))
6957          return Currencies.ERN;
6958        if ("ETB".equals(codeString))
6959          return Currencies.ETB;
6960        if ("EUR".equals(codeString))
6961          return Currencies.EUR;
6962        if ("FJD".equals(codeString))
6963          return Currencies.FJD;
6964        if ("FKP".equals(codeString))
6965          return Currencies.FKP;
6966        if ("GBP".equals(codeString))
6967          return Currencies.GBP;
6968        if ("GEL".equals(codeString))
6969          return Currencies.GEL;
6970        if ("GGP".equals(codeString))
6971          return Currencies.GGP;
6972        if ("GHS".equals(codeString))
6973          return Currencies.GHS;
6974        if ("GIP".equals(codeString))
6975          return Currencies.GIP;
6976        if ("GMD".equals(codeString))
6977          return Currencies.GMD;
6978        if ("GNF".equals(codeString))
6979          return Currencies.GNF;
6980        if ("GTQ".equals(codeString))
6981          return Currencies.GTQ;
6982        if ("GYD".equals(codeString))
6983          return Currencies.GYD;
6984        if ("HKD".equals(codeString))
6985          return Currencies.HKD;
6986        if ("HNL".equals(codeString))
6987          return Currencies.HNL;
6988        if ("HRK".equals(codeString))
6989          return Currencies.HRK;
6990        if ("HTG".equals(codeString))
6991          return Currencies.HTG;
6992        if ("HUF".equals(codeString))
6993          return Currencies.HUF;
6994        if ("IDR".equals(codeString))
6995          return Currencies.IDR;
6996        if ("ILS".equals(codeString))
6997          return Currencies.ILS;
6998        if ("IMP".equals(codeString))
6999          return Currencies.IMP;
7000        if ("INR".equals(codeString))
7001          return Currencies.INR;
7002        if ("IQD".equals(codeString))
7003          return Currencies.IQD;
7004        if ("IRR".equals(codeString))
7005          return Currencies.IRR;
7006        if ("ISK".equals(codeString))
7007          return Currencies.ISK;
7008        if ("JEP".equals(codeString))
7009          return Currencies.JEP;
7010        if ("JMD".equals(codeString))
7011          return Currencies.JMD;
7012        if ("JOD".equals(codeString))
7013          return Currencies.JOD;
7014        if ("JPY".equals(codeString))
7015          return Currencies.JPY;
7016        if ("KES".equals(codeString))
7017          return Currencies.KES;
7018        if ("KGS".equals(codeString))
7019          return Currencies.KGS;
7020        if ("KHR".equals(codeString))
7021          return Currencies.KHR;
7022        if ("KMF".equals(codeString))
7023          return Currencies.KMF;
7024        if ("KPW".equals(codeString))
7025          return Currencies.KPW;
7026        if ("KRW".equals(codeString))
7027          return Currencies.KRW;
7028        if ("KWD".equals(codeString))
7029          return Currencies.KWD;
7030        if ("KYD".equals(codeString))
7031          return Currencies.KYD;
7032        if ("KZT".equals(codeString))
7033          return Currencies.KZT;
7034        if ("LAK".equals(codeString))
7035          return Currencies.LAK;
7036        if ("LBP".equals(codeString))
7037          return Currencies.LBP;
7038        if ("LKR".equals(codeString))
7039          return Currencies.LKR;
7040        if ("LRD".equals(codeString))
7041          return Currencies.LRD;
7042        if ("LSL".equals(codeString))
7043          return Currencies.LSL;
7044        if ("LYD".equals(codeString))
7045          return Currencies.LYD;
7046        if ("MAD".equals(codeString))
7047          return Currencies.MAD;
7048        if ("MDL".equals(codeString))
7049          return Currencies.MDL;
7050        if ("MGA".equals(codeString))
7051          return Currencies.MGA;
7052        if ("MKD".equals(codeString))
7053          return Currencies.MKD;
7054        if ("MMK".equals(codeString))
7055          return Currencies.MMK;
7056        if ("MNT".equals(codeString))
7057          return Currencies.MNT;
7058        if ("MOP".equals(codeString))
7059          return Currencies.MOP;
7060        if ("MRU".equals(codeString))
7061          return Currencies.MRU;
7062        if ("MUR".equals(codeString))
7063          return Currencies.MUR;
7064        if ("MVR".equals(codeString))
7065          return Currencies.MVR;
7066        if ("MWK".equals(codeString))
7067          return Currencies.MWK;
7068        if ("MXN".equals(codeString))
7069          return Currencies.MXN;
7070        if ("MXV".equals(codeString))
7071          return Currencies.MXV;
7072        if ("MYR".equals(codeString))
7073          return Currencies.MYR;
7074        if ("MZN".equals(codeString))
7075          return Currencies.MZN;
7076        if ("NAD".equals(codeString))
7077          return Currencies.NAD;
7078        if ("NGN".equals(codeString))
7079          return Currencies.NGN;
7080        if ("NIO".equals(codeString))
7081          return Currencies.NIO;
7082        if ("NOK".equals(codeString))
7083          return Currencies.NOK;
7084        if ("NPR".equals(codeString))
7085          return Currencies.NPR;
7086        if ("NZD".equals(codeString))
7087          return Currencies.NZD;
7088        if ("OMR".equals(codeString))
7089          return Currencies.OMR;
7090        if ("PAB".equals(codeString))
7091          return Currencies.PAB;
7092        if ("PEN".equals(codeString))
7093          return Currencies.PEN;
7094        if ("PGK".equals(codeString))
7095          return Currencies.PGK;
7096        if ("PHP".equals(codeString))
7097          return Currencies.PHP;
7098        if ("PKR".equals(codeString))
7099          return Currencies.PKR;
7100        if ("PLN".equals(codeString))
7101          return Currencies.PLN;
7102        if ("PYG".equals(codeString))
7103          return Currencies.PYG;
7104        if ("QAR".equals(codeString))
7105          return Currencies.QAR;
7106        if ("RON".equals(codeString))
7107          return Currencies.RON;
7108        if ("RSD".equals(codeString))
7109          return Currencies.RSD;
7110        if ("RUB".equals(codeString))
7111          return Currencies.RUB;
7112        if ("RWF".equals(codeString))
7113          return Currencies.RWF;
7114        if ("SAR".equals(codeString))
7115          return Currencies.SAR;
7116        if ("SBD".equals(codeString))
7117          return Currencies.SBD;
7118        if ("SCR".equals(codeString))
7119          return Currencies.SCR;
7120        if ("SDG".equals(codeString))
7121          return Currencies.SDG;
7122        if ("SEK".equals(codeString))
7123          return Currencies.SEK;
7124        if ("SGD".equals(codeString))
7125          return Currencies.SGD;
7126        if ("SHP".equals(codeString))
7127          return Currencies.SHP;
7128        if ("SLL".equals(codeString))
7129          return Currencies.SLL;
7130        if ("SOS".equals(codeString))
7131          return Currencies.SOS;
7132        if ("SRD".equals(codeString))
7133          return Currencies.SRD;
7134        if ("SSP".equals(codeString))
7135          return Currencies.SSP;
7136        if ("STN".equals(codeString))
7137          return Currencies.STN;
7138        if ("SVC".equals(codeString))
7139          return Currencies.SVC;
7140        if ("SYP".equals(codeString))
7141          return Currencies.SYP;
7142        if ("SZL".equals(codeString))
7143          return Currencies.SZL;
7144        if ("THB".equals(codeString))
7145          return Currencies.THB;
7146        if ("TJS".equals(codeString))
7147          return Currencies.TJS;
7148        if ("TMT".equals(codeString))
7149          return Currencies.TMT;
7150        if ("TND".equals(codeString))
7151          return Currencies.TND;
7152        if ("TOP".equals(codeString))
7153          return Currencies.TOP;
7154        if ("TRY".equals(codeString))
7155          return Currencies.TRY;
7156        if ("TTD".equals(codeString))
7157          return Currencies.TTD;
7158        if ("TVD".equals(codeString))
7159          return Currencies.TVD;
7160        if ("TWD".equals(codeString))
7161          return Currencies.TWD;
7162        if ("TZS".equals(codeString))
7163          return Currencies.TZS;
7164        if ("UAH".equals(codeString))
7165          return Currencies.UAH;
7166        if ("UGX".equals(codeString))
7167          return Currencies.UGX;
7168        if ("USD".equals(codeString))
7169          return Currencies.USD;
7170        if ("USN".equals(codeString))
7171          return Currencies.USN;
7172        if ("UYI".equals(codeString))
7173          return Currencies.UYI;
7174        if ("UYU".equals(codeString))
7175          return Currencies.UYU;
7176        if ("UZS".equals(codeString))
7177          return Currencies.UZS;
7178        if ("VEF".equals(codeString))
7179          return Currencies.VEF;
7180        if ("VND".equals(codeString))
7181          return Currencies.VND;
7182        if ("VUV".equals(codeString))
7183          return Currencies.VUV;
7184        if ("WST".equals(codeString))
7185          return Currencies.WST;
7186        if ("XAF".equals(codeString))
7187          return Currencies.XAF;
7188        if ("XAG".equals(codeString))
7189          return Currencies.XAG;
7190        if ("XAU".equals(codeString))
7191          return Currencies.XAU;
7192        if ("XBA".equals(codeString))
7193          return Currencies.XBA;
7194        if ("XBB".equals(codeString))
7195          return Currencies.XBB;
7196        if ("XBC".equals(codeString))
7197          return Currencies.XBC;
7198        if ("XBD".equals(codeString))
7199          return Currencies.XBD;
7200        if ("XCD".equals(codeString))
7201          return Currencies.XCD;
7202        if ("XDR".equals(codeString))
7203          return Currencies.XDR;
7204        if ("XOF".equals(codeString))
7205          return Currencies.XOF;
7206        if ("XPD".equals(codeString))
7207          return Currencies.XPD;
7208        if ("XPF".equals(codeString))
7209          return Currencies.XPF;
7210        if ("XPT".equals(codeString))
7211          return Currencies.XPT;
7212        if ("XSU".equals(codeString))
7213          return Currencies.XSU;
7214        if ("XTS".equals(codeString))
7215          return Currencies.XTS;
7216        if ("XUA".equals(codeString))
7217          return Currencies.XUA;
7218        if ("XXX".equals(codeString))
7219          return Currencies.XXX;
7220        if ("YER".equals(codeString))
7221          return Currencies.YER;
7222        if ("ZAR".equals(codeString))
7223          return Currencies.ZAR;
7224        if ("ZMW".equals(codeString))
7225          return Currencies.ZMW;
7226        if ("ZWL".equals(codeString))
7227          return Currencies.ZWL;
7228        throw new IllegalArgumentException("Unknown Currencies code '"+codeString+"'");
7229        }
7230        public Enumeration<Currencies> fromType(PrimitiveType<?> code) throws FHIRException {
7231          if (code == null)
7232            return null;
7233          if (code.isEmpty())
7234            return new Enumeration<Currencies>(this, Currencies.NULL, code);
7235          String codeString = ((PrimitiveType) code).asStringValue();
7236          if (codeString == null || "".equals(codeString))
7237            return new Enumeration<Currencies>(this, Currencies.NULL, code);
7238        if ("AED".equals(codeString))
7239          return new Enumeration<Currencies>(this, Currencies.AED, code);
7240        if ("AFN".equals(codeString))
7241          return new Enumeration<Currencies>(this, Currencies.AFN, code);
7242        if ("ALL".equals(codeString))
7243          return new Enumeration<Currencies>(this, Currencies.ALL, code);
7244        if ("AMD".equals(codeString))
7245          return new Enumeration<Currencies>(this, Currencies.AMD, code);
7246        if ("ANG".equals(codeString))
7247          return new Enumeration<Currencies>(this, Currencies.ANG, code);
7248        if ("AOA".equals(codeString))
7249          return new Enumeration<Currencies>(this, Currencies.AOA, code);
7250        if ("ARS".equals(codeString))
7251          return new Enumeration<Currencies>(this, Currencies.ARS, code);
7252        if ("AUD".equals(codeString))
7253          return new Enumeration<Currencies>(this, Currencies.AUD, code);
7254        if ("AWG".equals(codeString))
7255          return new Enumeration<Currencies>(this, Currencies.AWG, code);
7256        if ("AZN".equals(codeString))
7257          return new Enumeration<Currencies>(this, Currencies.AZN, code);
7258        if ("BAM".equals(codeString))
7259          return new Enumeration<Currencies>(this, Currencies.BAM, code);
7260        if ("BBD".equals(codeString))
7261          return new Enumeration<Currencies>(this, Currencies.BBD, code);
7262        if ("BDT".equals(codeString))
7263          return new Enumeration<Currencies>(this, Currencies.BDT, code);
7264        if ("BGN".equals(codeString))
7265          return new Enumeration<Currencies>(this, Currencies.BGN, code);
7266        if ("BHD".equals(codeString))
7267          return new Enumeration<Currencies>(this, Currencies.BHD, code);
7268        if ("BIF".equals(codeString))
7269          return new Enumeration<Currencies>(this, Currencies.BIF, code);
7270        if ("BMD".equals(codeString))
7271          return new Enumeration<Currencies>(this, Currencies.BMD, code);
7272        if ("BND".equals(codeString))
7273          return new Enumeration<Currencies>(this, Currencies.BND, code);
7274        if ("BOB".equals(codeString))
7275          return new Enumeration<Currencies>(this, Currencies.BOB, code);
7276        if ("BOV".equals(codeString))
7277          return new Enumeration<Currencies>(this, Currencies.BOV, code);
7278        if ("BRL".equals(codeString))
7279          return new Enumeration<Currencies>(this, Currencies.BRL, code);
7280        if ("BSD".equals(codeString))
7281          return new Enumeration<Currencies>(this, Currencies.BSD, code);
7282        if ("BTN".equals(codeString))
7283          return new Enumeration<Currencies>(this, Currencies.BTN, code);
7284        if ("BWP".equals(codeString))
7285          return new Enumeration<Currencies>(this, Currencies.BWP, code);
7286        if ("BYN".equals(codeString))
7287          return new Enumeration<Currencies>(this, Currencies.BYN, code);
7288        if ("BZD".equals(codeString))
7289          return new Enumeration<Currencies>(this, Currencies.BZD, code);
7290        if ("CAD".equals(codeString))
7291          return new Enumeration<Currencies>(this, Currencies.CAD, code);
7292        if ("CDF".equals(codeString))
7293          return new Enumeration<Currencies>(this, Currencies.CDF, code);
7294        if ("CHE".equals(codeString))
7295          return new Enumeration<Currencies>(this, Currencies.CHE, code);
7296        if ("CHF".equals(codeString))
7297          return new Enumeration<Currencies>(this, Currencies.CHF, code);
7298        if ("CHW".equals(codeString))
7299          return new Enumeration<Currencies>(this, Currencies.CHW, code);
7300        if ("CLF".equals(codeString))
7301          return new Enumeration<Currencies>(this, Currencies.CLF, code);
7302        if ("CLP".equals(codeString))
7303          return new Enumeration<Currencies>(this, Currencies.CLP, code);
7304        if ("CNY".equals(codeString))
7305          return new Enumeration<Currencies>(this, Currencies.CNY, code);
7306        if ("COP".equals(codeString))
7307          return new Enumeration<Currencies>(this, Currencies.COP, code);
7308        if ("COU".equals(codeString))
7309          return new Enumeration<Currencies>(this, Currencies.COU, code);
7310        if ("CRC".equals(codeString))
7311          return new Enumeration<Currencies>(this, Currencies.CRC, code);
7312        if ("CUC".equals(codeString))
7313          return new Enumeration<Currencies>(this, Currencies.CUC, code);
7314        if ("CUP".equals(codeString))
7315          return new Enumeration<Currencies>(this, Currencies.CUP, code);
7316        if ("CVE".equals(codeString))
7317          return new Enumeration<Currencies>(this, Currencies.CVE, code);
7318        if ("CZK".equals(codeString))
7319          return new Enumeration<Currencies>(this, Currencies.CZK, code);
7320        if ("DJF".equals(codeString))
7321          return new Enumeration<Currencies>(this, Currencies.DJF, code);
7322        if ("DKK".equals(codeString))
7323          return new Enumeration<Currencies>(this, Currencies.DKK, code);
7324        if ("DOP".equals(codeString))
7325          return new Enumeration<Currencies>(this, Currencies.DOP, code);
7326        if ("DZD".equals(codeString))
7327          return new Enumeration<Currencies>(this, Currencies.DZD, code);
7328        if ("EGP".equals(codeString))
7329          return new Enumeration<Currencies>(this, Currencies.EGP, code);
7330        if ("ERN".equals(codeString))
7331          return new Enumeration<Currencies>(this, Currencies.ERN, code);
7332        if ("ETB".equals(codeString))
7333          return new Enumeration<Currencies>(this, Currencies.ETB, code);
7334        if ("EUR".equals(codeString))
7335          return new Enumeration<Currencies>(this, Currencies.EUR, code);
7336        if ("FJD".equals(codeString))
7337          return new Enumeration<Currencies>(this, Currencies.FJD, code);
7338        if ("FKP".equals(codeString))
7339          return new Enumeration<Currencies>(this, Currencies.FKP, code);
7340        if ("GBP".equals(codeString))
7341          return new Enumeration<Currencies>(this, Currencies.GBP, code);
7342        if ("GEL".equals(codeString))
7343          return new Enumeration<Currencies>(this, Currencies.GEL, code);
7344        if ("GGP".equals(codeString))
7345          return new Enumeration<Currencies>(this, Currencies.GGP, code);
7346        if ("GHS".equals(codeString))
7347          return new Enumeration<Currencies>(this, Currencies.GHS, code);
7348        if ("GIP".equals(codeString))
7349          return new Enumeration<Currencies>(this, Currencies.GIP, code);
7350        if ("GMD".equals(codeString))
7351          return new Enumeration<Currencies>(this, Currencies.GMD, code);
7352        if ("GNF".equals(codeString))
7353          return new Enumeration<Currencies>(this, Currencies.GNF, code);
7354        if ("GTQ".equals(codeString))
7355          return new Enumeration<Currencies>(this, Currencies.GTQ, code);
7356        if ("GYD".equals(codeString))
7357          return new Enumeration<Currencies>(this, Currencies.GYD, code);
7358        if ("HKD".equals(codeString))
7359          return new Enumeration<Currencies>(this, Currencies.HKD, code);
7360        if ("HNL".equals(codeString))
7361          return new Enumeration<Currencies>(this, Currencies.HNL, code);
7362        if ("HRK".equals(codeString))
7363          return new Enumeration<Currencies>(this, Currencies.HRK, code);
7364        if ("HTG".equals(codeString))
7365          return new Enumeration<Currencies>(this, Currencies.HTG, code);
7366        if ("HUF".equals(codeString))
7367          return new Enumeration<Currencies>(this, Currencies.HUF, code);
7368        if ("IDR".equals(codeString))
7369          return new Enumeration<Currencies>(this, Currencies.IDR, code);
7370        if ("ILS".equals(codeString))
7371          return new Enumeration<Currencies>(this, Currencies.ILS, code);
7372        if ("IMP".equals(codeString))
7373          return new Enumeration<Currencies>(this, Currencies.IMP, code);
7374        if ("INR".equals(codeString))
7375          return new Enumeration<Currencies>(this, Currencies.INR, code);
7376        if ("IQD".equals(codeString))
7377          return new Enumeration<Currencies>(this, Currencies.IQD, code);
7378        if ("IRR".equals(codeString))
7379          return new Enumeration<Currencies>(this, Currencies.IRR, code);
7380        if ("ISK".equals(codeString))
7381          return new Enumeration<Currencies>(this, Currencies.ISK, code);
7382        if ("JEP".equals(codeString))
7383          return new Enumeration<Currencies>(this, Currencies.JEP, code);
7384        if ("JMD".equals(codeString))
7385          return new Enumeration<Currencies>(this, Currencies.JMD, code);
7386        if ("JOD".equals(codeString))
7387          return new Enumeration<Currencies>(this, Currencies.JOD, code);
7388        if ("JPY".equals(codeString))
7389          return new Enumeration<Currencies>(this, Currencies.JPY, code);
7390        if ("KES".equals(codeString))
7391          return new Enumeration<Currencies>(this, Currencies.KES, code);
7392        if ("KGS".equals(codeString))
7393          return new Enumeration<Currencies>(this, Currencies.KGS, code);
7394        if ("KHR".equals(codeString))
7395          return new Enumeration<Currencies>(this, Currencies.KHR, code);
7396        if ("KMF".equals(codeString))
7397          return new Enumeration<Currencies>(this, Currencies.KMF, code);
7398        if ("KPW".equals(codeString))
7399          return new Enumeration<Currencies>(this, Currencies.KPW, code);
7400        if ("KRW".equals(codeString))
7401          return new Enumeration<Currencies>(this, Currencies.KRW, code);
7402        if ("KWD".equals(codeString))
7403          return new Enumeration<Currencies>(this, Currencies.KWD, code);
7404        if ("KYD".equals(codeString))
7405          return new Enumeration<Currencies>(this, Currencies.KYD, code);
7406        if ("KZT".equals(codeString))
7407          return new Enumeration<Currencies>(this, Currencies.KZT, code);
7408        if ("LAK".equals(codeString))
7409          return new Enumeration<Currencies>(this, Currencies.LAK, code);
7410        if ("LBP".equals(codeString))
7411          return new Enumeration<Currencies>(this, Currencies.LBP, code);
7412        if ("LKR".equals(codeString))
7413          return new Enumeration<Currencies>(this, Currencies.LKR, code);
7414        if ("LRD".equals(codeString))
7415          return new Enumeration<Currencies>(this, Currencies.LRD, code);
7416        if ("LSL".equals(codeString))
7417          return new Enumeration<Currencies>(this, Currencies.LSL, code);
7418        if ("LYD".equals(codeString))
7419          return new Enumeration<Currencies>(this, Currencies.LYD, code);
7420        if ("MAD".equals(codeString))
7421          return new Enumeration<Currencies>(this, Currencies.MAD, code);
7422        if ("MDL".equals(codeString))
7423          return new Enumeration<Currencies>(this, Currencies.MDL, code);
7424        if ("MGA".equals(codeString))
7425          return new Enumeration<Currencies>(this, Currencies.MGA, code);
7426        if ("MKD".equals(codeString))
7427          return new Enumeration<Currencies>(this, Currencies.MKD, code);
7428        if ("MMK".equals(codeString))
7429          return new Enumeration<Currencies>(this, Currencies.MMK, code);
7430        if ("MNT".equals(codeString))
7431          return new Enumeration<Currencies>(this, Currencies.MNT, code);
7432        if ("MOP".equals(codeString))
7433          return new Enumeration<Currencies>(this, Currencies.MOP, code);
7434        if ("MRU".equals(codeString))
7435          return new Enumeration<Currencies>(this, Currencies.MRU, code);
7436        if ("MUR".equals(codeString))
7437          return new Enumeration<Currencies>(this, Currencies.MUR, code);
7438        if ("MVR".equals(codeString))
7439          return new Enumeration<Currencies>(this, Currencies.MVR, code);
7440        if ("MWK".equals(codeString))
7441          return new Enumeration<Currencies>(this, Currencies.MWK, code);
7442        if ("MXN".equals(codeString))
7443          return new Enumeration<Currencies>(this, Currencies.MXN, code);
7444        if ("MXV".equals(codeString))
7445          return new Enumeration<Currencies>(this, Currencies.MXV, code);
7446        if ("MYR".equals(codeString))
7447          return new Enumeration<Currencies>(this, Currencies.MYR, code);
7448        if ("MZN".equals(codeString))
7449          return new Enumeration<Currencies>(this, Currencies.MZN, code);
7450        if ("NAD".equals(codeString))
7451          return new Enumeration<Currencies>(this, Currencies.NAD, code);
7452        if ("NGN".equals(codeString))
7453          return new Enumeration<Currencies>(this, Currencies.NGN, code);
7454        if ("NIO".equals(codeString))
7455          return new Enumeration<Currencies>(this, Currencies.NIO, code);
7456        if ("NOK".equals(codeString))
7457          return new Enumeration<Currencies>(this, Currencies.NOK, code);
7458        if ("NPR".equals(codeString))
7459          return new Enumeration<Currencies>(this, Currencies.NPR, code);
7460        if ("NZD".equals(codeString))
7461          return new Enumeration<Currencies>(this, Currencies.NZD, code);
7462        if ("OMR".equals(codeString))
7463          return new Enumeration<Currencies>(this, Currencies.OMR, code);
7464        if ("PAB".equals(codeString))
7465          return new Enumeration<Currencies>(this, Currencies.PAB, code);
7466        if ("PEN".equals(codeString))
7467          return new Enumeration<Currencies>(this, Currencies.PEN, code);
7468        if ("PGK".equals(codeString))
7469          return new Enumeration<Currencies>(this, Currencies.PGK, code);
7470        if ("PHP".equals(codeString))
7471          return new Enumeration<Currencies>(this, Currencies.PHP, code);
7472        if ("PKR".equals(codeString))
7473          return new Enumeration<Currencies>(this, Currencies.PKR, code);
7474        if ("PLN".equals(codeString))
7475          return new Enumeration<Currencies>(this, Currencies.PLN, code);
7476        if ("PYG".equals(codeString))
7477          return new Enumeration<Currencies>(this, Currencies.PYG, code);
7478        if ("QAR".equals(codeString))
7479          return new Enumeration<Currencies>(this, Currencies.QAR, code);
7480        if ("RON".equals(codeString))
7481          return new Enumeration<Currencies>(this, Currencies.RON, code);
7482        if ("RSD".equals(codeString))
7483          return new Enumeration<Currencies>(this, Currencies.RSD, code);
7484        if ("RUB".equals(codeString))
7485          return new Enumeration<Currencies>(this, Currencies.RUB, code);
7486        if ("RWF".equals(codeString))
7487          return new Enumeration<Currencies>(this, Currencies.RWF, code);
7488        if ("SAR".equals(codeString))
7489          return new Enumeration<Currencies>(this, Currencies.SAR, code);
7490        if ("SBD".equals(codeString))
7491          return new Enumeration<Currencies>(this, Currencies.SBD, code);
7492        if ("SCR".equals(codeString))
7493          return new Enumeration<Currencies>(this, Currencies.SCR, code);
7494        if ("SDG".equals(codeString))
7495          return new Enumeration<Currencies>(this, Currencies.SDG, code);
7496        if ("SEK".equals(codeString))
7497          return new Enumeration<Currencies>(this, Currencies.SEK, code);
7498        if ("SGD".equals(codeString))
7499          return new Enumeration<Currencies>(this, Currencies.SGD, code);
7500        if ("SHP".equals(codeString))
7501          return new Enumeration<Currencies>(this, Currencies.SHP, code);
7502        if ("SLL".equals(codeString))
7503          return new Enumeration<Currencies>(this, Currencies.SLL, code);
7504        if ("SOS".equals(codeString))
7505          return new Enumeration<Currencies>(this, Currencies.SOS, code);
7506        if ("SRD".equals(codeString))
7507          return new Enumeration<Currencies>(this, Currencies.SRD, code);
7508        if ("SSP".equals(codeString))
7509          return new Enumeration<Currencies>(this, Currencies.SSP, code);
7510        if ("STN".equals(codeString))
7511          return new Enumeration<Currencies>(this, Currencies.STN, code);
7512        if ("SVC".equals(codeString))
7513          return new Enumeration<Currencies>(this, Currencies.SVC, code);
7514        if ("SYP".equals(codeString))
7515          return new Enumeration<Currencies>(this, Currencies.SYP, code);
7516        if ("SZL".equals(codeString))
7517          return new Enumeration<Currencies>(this, Currencies.SZL, code);
7518        if ("THB".equals(codeString))
7519          return new Enumeration<Currencies>(this, Currencies.THB, code);
7520        if ("TJS".equals(codeString))
7521          return new Enumeration<Currencies>(this, Currencies.TJS, code);
7522        if ("TMT".equals(codeString))
7523          return new Enumeration<Currencies>(this, Currencies.TMT, code);
7524        if ("TND".equals(codeString))
7525          return new Enumeration<Currencies>(this, Currencies.TND, code);
7526        if ("TOP".equals(codeString))
7527          return new Enumeration<Currencies>(this, Currencies.TOP, code);
7528        if ("TRY".equals(codeString))
7529          return new Enumeration<Currencies>(this, Currencies.TRY, code);
7530        if ("TTD".equals(codeString))
7531          return new Enumeration<Currencies>(this, Currencies.TTD, code);
7532        if ("TVD".equals(codeString))
7533          return new Enumeration<Currencies>(this, Currencies.TVD, code);
7534        if ("TWD".equals(codeString))
7535          return new Enumeration<Currencies>(this, Currencies.TWD, code);
7536        if ("TZS".equals(codeString))
7537          return new Enumeration<Currencies>(this, Currencies.TZS, code);
7538        if ("UAH".equals(codeString))
7539          return new Enumeration<Currencies>(this, Currencies.UAH, code);
7540        if ("UGX".equals(codeString))
7541          return new Enumeration<Currencies>(this, Currencies.UGX, code);
7542        if ("USD".equals(codeString))
7543          return new Enumeration<Currencies>(this, Currencies.USD, code);
7544        if ("USN".equals(codeString))
7545          return new Enumeration<Currencies>(this, Currencies.USN, code);
7546        if ("UYI".equals(codeString))
7547          return new Enumeration<Currencies>(this, Currencies.UYI, code);
7548        if ("UYU".equals(codeString))
7549          return new Enumeration<Currencies>(this, Currencies.UYU, code);
7550        if ("UZS".equals(codeString))
7551          return new Enumeration<Currencies>(this, Currencies.UZS, code);
7552        if ("VEF".equals(codeString))
7553          return new Enumeration<Currencies>(this, Currencies.VEF, code);
7554        if ("VND".equals(codeString))
7555          return new Enumeration<Currencies>(this, Currencies.VND, code);
7556        if ("VUV".equals(codeString))
7557          return new Enumeration<Currencies>(this, Currencies.VUV, code);
7558        if ("WST".equals(codeString))
7559          return new Enumeration<Currencies>(this, Currencies.WST, code);
7560        if ("XAF".equals(codeString))
7561          return new Enumeration<Currencies>(this, Currencies.XAF, code);
7562        if ("XAG".equals(codeString))
7563          return new Enumeration<Currencies>(this, Currencies.XAG, code);
7564        if ("XAU".equals(codeString))
7565          return new Enumeration<Currencies>(this, Currencies.XAU, code);
7566        if ("XBA".equals(codeString))
7567          return new Enumeration<Currencies>(this, Currencies.XBA, code);
7568        if ("XBB".equals(codeString))
7569          return new Enumeration<Currencies>(this, Currencies.XBB, code);
7570        if ("XBC".equals(codeString))
7571          return new Enumeration<Currencies>(this, Currencies.XBC, code);
7572        if ("XBD".equals(codeString))
7573          return new Enumeration<Currencies>(this, Currencies.XBD, code);
7574        if ("XCD".equals(codeString))
7575          return new Enumeration<Currencies>(this, Currencies.XCD, code);
7576        if ("XDR".equals(codeString))
7577          return new Enumeration<Currencies>(this, Currencies.XDR, code);
7578        if ("XOF".equals(codeString))
7579          return new Enumeration<Currencies>(this, Currencies.XOF, code);
7580        if ("XPD".equals(codeString))
7581          return new Enumeration<Currencies>(this, Currencies.XPD, code);
7582        if ("XPF".equals(codeString))
7583          return new Enumeration<Currencies>(this, Currencies.XPF, code);
7584        if ("XPT".equals(codeString))
7585          return new Enumeration<Currencies>(this, Currencies.XPT, code);
7586        if ("XSU".equals(codeString))
7587          return new Enumeration<Currencies>(this, Currencies.XSU, code);
7588        if ("XTS".equals(codeString))
7589          return new Enumeration<Currencies>(this, Currencies.XTS, code);
7590        if ("XUA".equals(codeString))
7591          return new Enumeration<Currencies>(this, Currencies.XUA, code);
7592        if ("XXX".equals(codeString))
7593          return new Enumeration<Currencies>(this, Currencies.XXX, code);
7594        if ("YER".equals(codeString))
7595          return new Enumeration<Currencies>(this, Currencies.YER, code);
7596        if ("ZAR".equals(codeString))
7597          return new Enumeration<Currencies>(this, Currencies.ZAR, code);
7598        if ("ZMW".equals(codeString))
7599          return new Enumeration<Currencies>(this, Currencies.ZMW, code);
7600        if ("ZWL".equals(codeString))
7601          return new Enumeration<Currencies>(this, Currencies.ZWL, code);
7602        throw new FHIRException("Unknown Currencies code '"+codeString+"'");
7603        }
7604    public String toCode(Currencies code) {
7605      if (code == Currencies.AED)
7606        return "AED";
7607      if (code == Currencies.AFN)
7608        return "AFN";
7609      if (code == Currencies.ALL)
7610        return "ALL";
7611      if (code == Currencies.AMD)
7612        return "AMD";
7613      if (code == Currencies.ANG)
7614        return "ANG";
7615      if (code == Currencies.AOA)
7616        return "AOA";
7617      if (code == Currencies.ARS)
7618        return "ARS";
7619      if (code == Currencies.AUD)
7620        return "AUD";
7621      if (code == Currencies.AWG)
7622        return "AWG";
7623      if (code == Currencies.AZN)
7624        return "AZN";
7625      if (code == Currencies.BAM)
7626        return "BAM";
7627      if (code == Currencies.BBD)
7628        return "BBD";
7629      if (code == Currencies.BDT)
7630        return "BDT";
7631      if (code == Currencies.BGN)
7632        return "BGN";
7633      if (code == Currencies.BHD)
7634        return "BHD";
7635      if (code == Currencies.BIF)
7636        return "BIF";
7637      if (code == Currencies.BMD)
7638        return "BMD";
7639      if (code == Currencies.BND)
7640        return "BND";
7641      if (code == Currencies.BOB)
7642        return "BOB";
7643      if (code == Currencies.BOV)
7644        return "BOV";
7645      if (code == Currencies.BRL)
7646        return "BRL";
7647      if (code == Currencies.BSD)
7648        return "BSD";
7649      if (code == Currencies.BTN)
7650        return "BTN";
7651      if (code == Currencies.BWP)
7652        return "BWP";
7653      if (code == Currencies.BYN)
7654        return "BYN";
7655      if (code == Currencies.BZD)
7656        return "BZD";
7657      if (code == Currencies.CAD)
7658        return "CAD";
7659      if (code == Currencies.CDF)
7660        return "CDF";
7661      if (code == Currencies.CHE)
7662        return "CHE";
7663      if (code == Currencies.CHF)
7664        return "CHF";
7665      if (code == Currencies.CHW)
7666        return "CHW";
7667      if (code == Currencies.CLF)
7668        return "CLF";
7669      if (code == Currencies.CLP)
7670        return "CLP";
7671      if (code == Currencies.CNY)
7672        return "CNY";
7673      if (code == Currencies.COP)
7674        return "COP";
7675      if (code == Currencies.COU)
7676        return "COU";
7677      if (code == Currencies.CRC)
7678        return "CRC";
7679      if (code == Currencies.CUC)
7680        return "CUC";
7681      if (code == Currencies.CUP)
7682        return "CUP";
7683      if (code == Currencies.CVE)
7684        return "CVE";
7685      if (code == Currencies.CZK)
7686        return "CZK";
7687      if (code == Currencies.DJF)
7688        return "DJF";
7689      if (code == Currencies.DKK)
7690        return "DKK";
7691      if (code == Currencies.DOP)
7692        return "DOP";
7693      if (code == Currencies.DZD)
7694        return "DZD";
7695      if (code == Currencies.EGP)
7696        return "EGP";
7697      if (code == Currencies.ERN)
7698        return "ERN";
7699      if (code == Currencies.ETB)
7700        return "ETB";
7701      if (code == Currencies.EUR)
7702        return "EUR";
7703      if (code == Currencies.FJD)
7704        return "FJD";
7705      if (code == Currencies.FKP)
7706        return "FKP";
7707      if (code == Currencies.GBP)
7708        return "GBP";
7709      if (code == Currencies.GEL)
7710        return "GEL";
7711      if (code == Currencies.GGP)
7712        return "GGP";
7713      if (code == Currencies.GHS)
7714        return "GHS";
7715      if (code == Currencies.GIP)
7716        return "GIP";
7717      if (code == Currencies.GMD)
7718        return "GMD";
7719      if (code == Currencies.GNF)
7720        return "GNF";
7721      if (code == Currencies.GTQ)
7722        return "GTQ";
7723      if (code == Currencies.GYD)
7724        return "GYD";
7725      if (code == Currencies.HKD)
7726        return "HKD";
7727      if (code == Currencies.HNL)
7728        return "HNL";
7729      if (code == Currencies.HRK)
7730        return "HRK";
7731      if (code == Currencies.HTG)
7732        return "HTG";
7733      if (code == Currencies.HUF)
7734        return "HUF";
7735      if (code == Currencies.IDR)
7736        return "IDR";
7737      if (code == Currencies.ILS)
7738        return "ILS";
7739      if (code == Currencies.IMP)
7740        return "IMP";
7741      if (code == Currencies.INR)
7742        return "INR";
7743      if (code == Currencies.IQD)
7744        return "IQD";
7745      if (code == Currencies.IRR)
7746        return "IRR";
7747      if (code == Currencies.ISK)
7748        return "ISK";
7749      if (code == Currencies.JEP)
7750        return "JEP";
7751      if (code == Currencies.JMD)
7752        return "JMD";
7753      if (code == Currencies.JOD)
7754        return "JOD";
7755      if (code == Currencies.JPY)
7756        return "JPY";
7757      if (code == Currencies.KES)
7758        return "KES";
7759      if (code == Currencies.KGS)
7760        return "KGS";
7761      if (code == Currencies.KHR)
7762        return "KHR";
7763      if (code == Currencies.KMF)
7764        return "KMF";
7765      if (code == Currencies.KPW)
7766        return "KPW";
7767      if (code == Currencies.KRW)
7768        return "KRW";
7769      if (code == Currencies.KWD)
7770        return "KWD";
7771      if (code == Currencies.KYD)
7772        return "KYD";
7773      if (code == Currencies.KZT)
7774        return "KZT";
7775      if (code == Currencies.LAK)
7776        return "LAK";
7777      if (code == Currencies.LBP)
7778        return "LBP";
7779      if (code == Currencies.LKR)
7780        return "LKR";
7781      if (code == Currencies.LRD)
7782        return "LRD";
7783      if (code == Currencies.LSL)
7784        return "LSL";
7785      if (code == Currencies.LYD)
7786        return "LYD";
7787      if (code == Currencies.MAD)
7788        return "MAD";
7789      if (code == Currencies.MDL)
7790        return "MDL";
7791      if (code == Currencies.MGA)
7792        return "MGA";
7793      if (code == Currencies.MKD)
7794        return "MKD";
7795      if (code == Currencies.MMK)
7796        return "MMK";
7797      if (code == Currencies.MNT)
7798        return "MNT";
7799      if (code == Currencies.MOP)
7800        return "MOP";
7801      if (code == Currencies.MRU)
7802        return "MRU";
7803      if (code == Currencies.MUR)
7804        return "MUR";
7805      if (code == Currencies.MVR)
7806        return "MVR";
7807      if (code == Currencies.MWK)
7808        return "MWK";
7809      if (code == Currencies.MXN)
7810        return "MXN";
7811      if (code == Currencies.MXV)
7812        return "MXV";
7813      if (code == Currencies.MYR)
7814        return "MYR";
7815      if (code == Currencies.MZN)
7816        return "MZN";
7817      if (code == Currencies.NAD)
7818        return "NAD";
7819      if (code == Currencies.NGN)
7820        return "NGN";
7821      if (code == Currencies.NIO)
7822        return "NIO";
7823      if (code == Currencies.NOK)
7824        return "NOK";
7825      if (code == Currencies.NPR)
7826        return "NPR";
7827      if (code == Currencies.NZD)
7828        return "NZD";
7829      if (code == Currencies.OMR)
7830        return "OMR";
7831      if (code == Currencies.PAB)
7832        return "PAB";
7833      if (code == Currencies.PEN)
7834        return "PEN";
7835      if (code == Currencies.PGK)
7836        return "PGK";
7837      if (code == Currencies.PHP)
7838        return "PHP";
7839      if (code == Currencies.PKR)
7840        return "PKR";
7841      if (code == Currencies.PLN)
7842        return "PLN";
7843      if (code == Currencies.PYG)
7844        return "PYG";
7845      if (code == Currencies.QAR)
7846        return "QAR";
7847      if (code == Currencies.RON)
7848        return "RON";
7849      if (code == Currencies.RSD)
7850        return "RSD";
7851      if (code == Currencies.RUB)
7852        return "RUB";
7853      if (code == Currencies.RWF)
7854        return "RWF";
7855      if (code == Currencies.SAR)
7856        return "SAR";
7857      if (code == Currencies.SBD)
7858        return "SBD";
7859      if (code == Currencies.SCR)
7860        return "SCR";
7861      if (code == Currencies.SDG)
7862        return "SDG";
7863      if (code == Currencies.SEK)
7864        return "SEK";
7865      if (code == Currencies.SGD)
7866        return "SGD";
7867      if (code == Currencies.SHP)
7868        return "SHP";
7869      if (code == Currencies.SLL)
7870        return "SLL";
7871      if (code == Currencies.SOS)
7872        return "SOS";
7873      if (code == Currencies.SRD)
7874        return "SRD";
7875      if (code == Currencies.SSP)
7876        return "SSP";
7877      if (code == Currencies.STN)
7878        return "STN";
7879      if (code == Currencies.SVC)
7880        return "SVC";
7881      if (code == Currencies.SYP)
7882        return "SYP";
7883      if (code == Currencies.SZL)
7884        return "SZL";
7885      if (code == Currencies.THB)
7886        return "THB";
7887      if (code == Currencies.TJS)
7888        return "TJS";
7889      if (code == Currencies.TMT)
7890        return "TMT";
7891      if (code == Currencies.TND)
7892        return "TND";
7893      if (code == Currencies.TOP)
7894        return "TOP";
7895      if (code == Currencies.TRY)
7896        return "TRY";
7897      if (code == Currencies.TTD)
7898        return "TTD";
7899      if (code == Currencies.TVD)
7900        return "TVD";
7901      if (code == Currencies.TWD)
7902        return "TWD";
7903      if (code == Currencies.TZS)
7904        return "TZS";
7905      if (code == Currencies.UAH)
7906        return "UAH";
7907      if (code == Currencies.UGX)
7908        return "UGX";
7909      if (code == Currencies.USD)
7910        return "USD";
7911      if (code == Currencies.USN)
7912        return "USN";
7913      if (code == Currencies.UYI)
7914        return "UYI";
7915      if (code == Currencies.UYU)
7916        return "UYU";
7917      if (code == Currencies.UZS)
7918        return "UZS";
7919      if (code == Currencies.VEF)
7920        return "VEF";
7921      if (code == Currencies.VND)
7922        return "VND";
7923      if (code == Currencies.VUV)
7924        return "VUV";
7925      if (code == Currencies.WST)
7926        return "WST";
7927      if (code == Currencies.XAF)
7928        return "XAF";
7929      if (code == Currencies.XAG)
7930        return "XAG";
7931      if (code == Currencies.XAU)
7932        return "XAU";
7933      if (code == Currencies.XBA)
7934        return "XBA";
7935      if (code == Currencies.XBB)
7936        return "XBB";
7937      if (code == Currencies.XBC)
7938        return "XBC";
7939      if (code == Currencies.XBD)
7940        return "XBD";
7941      if (code == Currencies.XCD)
7942        return "XCD";
7943      if (code == Currencies.XDR)
7944        return "XDR";
7945      if (code == Currencies.XOF)
7946        return "XOF";
7947      if (code == Currencies.XPD)
7948        return "XPD";
7949      if (code == Currencies.XPF)
7950        return "XPF";
7951      if (code == Currencies.XPT)
7952        return "XPT";
7953      if (code == Currencies.XSU)
7954        return "XSU";
7955      if (code == Currencies.XTS)
7956        return "XTS";
7957      if (code == Currencies.XUA)
7958        return "XUA";
7959      if (code == Currencies.XXX)
7960        return "XXX";
7961      if (code == Currencies.YER)
7962        return "YER";
7963      if (code == Currencies.ZAR)
7964        return "ZAR";
7965      if (code == Currencies.ZMW)
7966        return "ZMW";
7967      if (code == Currencies.ZWL)
7968        return "ZWL";
7969      return "?";
7970      }
7971    public String toSystem(Currencies code) {
7972      return code.getSystem();
7973      }
7974    }
7975
7976    public enum DaysOfWeek {
7977        /**
7978         * Monday.
7979         */
7980        MON, 
7981        /**
7982         * Tuesday.
7983         */
7984        TUE, 
7985        /**
7986         * Wednesday.
7987         */
7988        WED, 
7989        /**
7990         * Thursday.
7991         */
7992        THU, 
7993        /**
7994         * Friday.
7995         */
7996        FRI, 
7997        /**
7998         * Saturday.
7999         */
8000        SAT, 
8001        /**
8002         * Sunday.
8003         */
8004        SUN, 
8005        /**
8006         * added to help the parsers
8007         */
8008        NULL;
8009        public static DaysOfWeek fromCode(String codeString) throws FHIRException {
8010            if (codeString == null || "".equals(codeString))
8011                return null;
8012        if ("mon".equals(codeString))
8013          return MON;
8014        if ("tue".equals(codeString))
8015          return TUE;
8016        if ("wed".equals(codeString))
8017          return WED;
8018        if ("thu".equals(codeString))
8019          return THU;
8020        if ("fri".equals(codeString))
8021          return FRI;
8022        if ("sat".equals(codeString))
8023          return SAT;
8024        if ("sun".equals(codeString))
8025          return SUN;
8026        throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'");
8027        }
8028        public String toCode() {
8029          switch (this) {
8030            case MON: return "mon";
8031            case TUE: return "tue";
8032            case WED: return "wed";
8033            case THU: return "thu";
8034            case FRI: return "fri";
8035            case SAT: return "sat";
8036            case SUN: return "sun";
8037            case NULL: return null;
8038            default: return "?";
8039          }
8040        }
8041        public String getSystem() {
8042          switch (this) {
8043            case MON: return "http://hl7.org/fhir/days-of-week";
8044            case TUE: return "http://hl7.org/fhir/days-of-week";
8045            case WED: return "http://hl7.org/fhir/days-of-week";
8046            case THU: return "http://hl7.org/fhir/days-of-week";
8047            case FRI: return "http://hl7.org/fhir/days-of-week";
8048            case SAT: return "http://hl7.org/fhir/days-of-week";
8049            case SUN: return "http://hl7.org/fhir/days-of-week";
8050            case NULL: return null;
8051            default: return "?";
8052          }
8053        }
8054        public String getDefinition() {
8055          switch (this) {
8056            case MON: return "Monday.";
8057            case TUE: return "Tuesday.";
8058            case WED: return "Wednesday.";
8059            case THU: return "Thursday.";
8060            case FRI: return "Friday.";
8061            case SAT: return "Saturday.";
8062            case SUN: return "Sunday.";
8063            case NULL: return null;
8064            default: return "?";
8065          }
8066        }
8067        public String getDisplay() {
8068          switch (this) {
8069            case MON: return "Monday";
8070            case TUE: return "Tuesday";
8071            case WED: return "Wednesday";
8072            case THU: return "Thursday";
8073            case FRI: return "Friday";
8074            case SAT: return "Saturday";
8075            case SUN: return "Sunday";
8076            case NULL: return null;
8077            default: return "?";
8078          }
8079        }
8080    }
8081
8082  public static class DaysOfWeekEnumFactory implements EnumFactory<DaysOfWeek> {
8083    public DaysOfWeek fromCode(String codeString) throws IllegalArgumentException {
8084      if (codeString == null || "".equals(codeString))
8085            if (codeString == null || "".equals(codeString))
8086                return null;
8087        if ("mon".equals(codeString))
8088          return DaysOfWeek.MON;
8089        if ("tue".equals(codeString))
8090          return DaysOfWeek.TUE;
8091        if ("wed".equals(codeString))
8092          return DaysOfWeek.WED;
8093        if ("thu".equals(codeString))
8094          return DaysOfWeek.THU;
8095        if ("fri".equals(codeString))
8096          return DaysOfWeek.FRI;
8097        if ("sat".equals(codeString))
8098          return DaysOfWeek.SAT;
8099        if ("sun".equals(codeString))
8100          return DaysOfWeek.SUN;
8101        throw new IllegalArgumentException("Unknown DaysOfWeek code '"+codeString+"'");
8102        }
8103        public Enumeration<DaysOfWeek> fromType(PrimitiveType<?> code) throws FHIRException {
8104          if (code == null)
8105            return null;
8106          if (code.isEmpty())
8107            return new Enumeration<DaysOfWeek>(this, DaysOfWeek.NULL, code);
8108          String codeString = ((PrimitiveType) code).asStringValue();
8109          if (codeString == null || "".equals(codeString))
8110            return new Enumeration<DaysOfWeek>(this, DaysOfWeek.NULL, code);
8111        if ("mon".equals(codeString))
8112          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.MON, code);
8113        if ("tue".equals(codeString))
8114          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.TUE, code);
8115        if ("wed".equals(codeString))
8116          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.WED, code);
8117        if ("thu".equals(codeString))
8118          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.THU, code);
8119        if ("fri".equals(codeString))
8120          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.FRI, code);
8121        if ("sat".equals(codeString))
8122          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SAT, code);
8123        if ("sun".equals(codeString))
8124          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SUN, code);
8125        throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'");
8126        }
8127    public String toCode(DaysOfWeek code) {
8128      if (code == DaysOfWeek.MON)
8129        return "mon";
8130      if (code == DaysOfWeek.TUE)
8131        return "tue";
8132      if (code == DaysOfWeek.WED)
8133        return "wed";
8134      if (code == DaysOfWeek.THU)
8135        return "thu";
8136      if (code == DaysOfWeek.FRI)
8137        return "fri";
8138      if (code == DaysOfWeek.SAT)
8139        return "sat";
8140      if (code == DaysOfWeek.SUN)
8141        return "sun";
8142      return "?";
8143      }
8144    public String toSystem(DaysOfWeek code) {
8145      return code.getSystem();
8146      }
8147    }
8148
8149    public enum DeviceNameType {
8150        /**
8151         * The term assigned to a medical device by the entity who registers or submits information about it to a jurisdiction or its databases. This may be considered the manufacturer assigned name (e.g., brand name assigned by the labeler or manufacturer in US, or device name assigned by the manufacturer in EU) and may also be synonymous with proprietary name or trade name of the device.
8152         */
8153        REGISTEREDNAME, 
8154        /**
8155         * The term that generically describes the device by a name as assigned by the manufacturer that is recognized by lay person.  This common or generic name may be printed on the package it came in or some combination of that name with the model number, serial number, or other attribute that makes the name easy to understand for the user of that device. It is often exposed in communicating devices transport protocols. It is provided to help users identify the device when reported in discovery operations.
8156         */
8157        USERFRIENDLYNAME, 
8158        /**
8159         * the term used by the patient associated with the device when describing the device, for example 'knee implant', when documented as a self-reported device.
8160         */
8161        PATIENTREPORTEDNAME, 
8162        /**
8163         * added to help the parsers
8164         */
8165        NULL;
8166        public static DeviceNameType fromCode(String codeString) throws FHIRException {
8167            if (codeString == null || "".equals(codeString))
8168                return null;
8169        if ("registered-name".equals(codeString))
8170          return REGISTEREDNAME;
8171        if ("user-friendly-name".equals(codeString))
8172          return USERFRIENDLYNAME;
8173        if ("patient-reported-name".equals(codeString))
8174          return PATIENTREPORTEDNAME;
8175        throw new FHIRException("Unknown DeviceNameType code '"+codeString+"'");
8176        }
8177        public String toCode() {
8178          switch (this) {
8179            case REGISTEREDNAME: return "registered-name";
8180            case USERFRIENDLYNAME: return "user-friendly-name";
8181            case PATIENTREPORTEDNAME: return "patient-reported-name";
8182            case NULL: return null;
8183            default: return "?";
8184          }
8185        }
8186        public String getSystem() {
8187          switch (this) {
8188            case REGISTEREDNAME: return "http://hl7.org/fhir/device-nametype";
8189            case USERFRIENDLYNAME: return "http://hl7.org/fhir/device-nametype";
8190            case PATIENTREPORTEDNAME: return "http://hl7.org/fhir/device-nametype";
8191            case NULL: return null;
8192            default: return "?";
8193          }
8194        }
8195        public String getDefinition() {
8196          switch (this) {
8197            case REGISTEREDNAME: return "The term assigned to a medical device by the entity who registers or submits information about it to a jurisdiction or its databases. This may be considered the manufacturer assigned name (e.g., brand name assigned by the labeler or manufacturer in US, or device name assigned by the manufacturer in EU) and may also be synonymous with proprietary name or trade name of the device.";
8198            case USERFRIENDLYNAME: return "The term that generically describes the device by a name as assigned by the manufacturer that is recognized by lay person.  This common or generic name may be printed on the package it came in or some combination of that name with the model number, serial number, or other attribute that makes the name easy to understand for the user of that device. It is often exposed in communicating devices transport protocols. It is provided to help users identify the device when reported in discovery operations.";
8199            case PATIENTREPORTEDNAME: return "the term used by the patient associated with the device when describing the device, for example 'knee implant', when documented as a self-reported device.";
8200            case NULL: return null;
8201            default: return "?";
8202          }
8203        }
8204        public String getDisplay() {
8205          switch (this) {
8206            case REGISTEREDNAME: return "Registered name";
8207            case USERFRIENDLYNAME: return "User Friendly name";
8208            case PATIENTREPORTEDNAME: return "Patient Reported name";
8209            case NULL: return null;
8210            default: return "?";
8211          }
8212        }
8213    }
8214
8215  public static class DeviceNameTypeEnumFactory implements EnumFactory<DeviceNameType> {
8216    public DeviceNameType fromCode(String codeString) throws IllegalArgumentException {
8217      if (codeString == null || "".equals(codeString))
8218            if (codeString == null || "".equals(codeString))
8219                return null;
8220        if ("registered-name".equals(codeString))
8221          return DeviceNameType.REGISTEREDNAME;
8222        if ("user-friendly-name".equals(codeString))
8223          return DeviceNameType.USERFRIENDLYNAME;
8224        if ("patient-reported-name".equals(codeString))
8225          return DeviceNameType.PATIENTREPORTEDNAME;
8226        throw new IllegalArgumentException("Unknown DeviceNameType code '"+codeString+"'");
8227        }
8228        public Enumeration<DeviceNameType> fromType(PrimitiveType<?> code) throws FHIRException {
8229          if (code == null)
8230            return null;
8231          if (code.isEmpty())
8232            return new Enumeration<DeviceNameType>(this, DeviceNameType.NULL, code);
8233          String codeString = ((PrimitiveType) code).asStringValue();
8234          if (codeString == null || "".equals(codeString))
8235            return new Enumeration<DeviceNameType>(this, DeviceNameType.NULL, code);
8236        if ("registered-name".equals(codeString))
8237          return new Enumeration<DeviceNameType>(this, DeviceNameType.REGISTEREDNAME, code);
8238        if ("user-friendly-name".equals(codeString))
8239          return new Enumeration<DeviceNameType>(this, DeviceNameType.USERFRIENDLYNAME, code);
8240        if ("patient-reported-name".equals(codeString))
8241          return new Enumeration<DeviceNameType>(this, DeviceNameType.PATIENTREPORTEDNAME, code);
8242        throw new FHIRException("Unknown DeviceNameType code '"+codeString+"'");
8243        }
8244    public String toCode(DeviceNameType code) {
8245      if (code == DeviceNameType.REGISTEREDNAME)
8246        return "registered-name";
8247      if (code == DeviceNameType.USERFRIENDLYNAME)
8248        return "user-friendly-name";
8249      if (code == DeviceNameType.PATIENTREPORTEDNAME)
8250        return "patient-reported-name";
8251      return "?";
8252      }
8253    public String toSystem(DeviceNameType code) {
8254      return code.getSystem();
8255      }
8256    }
8257
8258    public enum DocumentReferenceStatus {
8259        /**
8260         * This is the current reference for this document.
8261         */
8262        CURRENT, 
8263        /**
8264         * This reference has been superseded by another reference.
8265         */
8266        SUPERSEDED, 
8267        /**
8268         * This reference was created in error.
8269         */
8270        ENTEREDINERROR, 
8271        /**
8272         * added to help the parsers
8273         */
8274        NULL;
8275        public static DocumentReferenceStatus fromCode(String codeString) throws FHIRException {
8276            if (codeString == null || "".equals(codeString))
8277                return null;
8278        if ("current".equals(codeString))
8279          return CURRENT;
8280        if ("superseded".equals(codeString))
8281          return SUPERSEDED;
8282        if ("entered-in-error".equals(codeString))
8283          return ENTEREDINERROR;
8284        throw new FHIRException("Unknown DocumentReferenceStatus code '"+codeString+"'");
8285        }
8286        public String toCode() {
8287          switch (this) {
8288            case CURRENT: return "current";
8289            case SUPERSEDED: return "superseded";
8290            case ENTEREDINERROR: return "entered-in-error";
8291            case NULL: return null;
8292            default: return "?";
8293          }
8294        }
8295        public String getSystem() {
8296          switch (this) {
8297            case CURRENT: return "http://hl7.org/fhir/document-reference-status";
8298            case SUPERSEDED: return "http://hl7.org/fhir/document-reference-status";
8299            case ENTEREDINERROR: return "http://hl7.org/fhir/document-reference-status";
8300            case NULL: return null;
8301            default: return "?";
8302          }
8303        }
8304        public String getDefinition() {
8305          switch (this) {
8306            case CURRENT: return "This is the current reference for this document.";
8307            case SUPERSEDED: return "This reference has been superseded by another reference.";
8308            case ENTEREDINERROR: return "This reference was created in error.";
8309            case NULL: return null;
8310            default: return "?";
8311          }
8312        }
8313        public String getDisplay() {
8314          switch (this) {
8315            case CURRENT: return "Current";
8316            case SUPERSEDED: return "Superseded";
8317            case ENTEREDINERROR: return "Entered in Error";
8318            case NULL: return null;
8319            default: return "?";
8320          }
8321        }
8322    }
8323
8324  public static class DocumentReferenceStatusEnumFactory implements EnumFactory<DocumentReferenceStatus> {
8325    public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException {
8326      if (codeString == null || "".equals(codeString))
8327            if (codeString == null || "".equals(codeString))
8328                return null;
8329        if ("current".equals(codeString))
8330          return DocumentReferenceStatus.CURRENT;
8331        if ("superseded".equals(codeString))
8332          return DocumentReferenceStatus.SUPERSEDED;
8333        if ("entered-in-error".equals(codeString))
8334          return DocumentReferenceStatus.ENTEREDINERROR;
8335        throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'");
8336        }
8337        public Enumeration<DocumentReferenceStatus> fromType(PrimitiveType<?> code) throws FHIRException {
8338          if (code == null)
8339            return null;
8340          if (code.isEmpty())
8341            return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.NULL, code);
8342          String codeString = ((PrimitiveType) code).asStringValue();
8343          if (codeString == null || "".equals(codeString))
8344            return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.NULL, code);
8345        if ("current".equals(codeString))
8346          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.CURRENT, code);
8347        if ("superseded".equals(codeString))
8348          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.SUPERSEDED, code);
8349        if ("entered-in-error".equals(codeString))
8350          return new Enumeration<DocumentReferenceStatus>(this, DocumentReferenceStatus.ENTEREDINERROR, code);
8351        throw new FHIRException("Unknown DocumentReferenceStatus code '"+codeString+"'");
8352        }
8353    public String toCode(DocumentReferenceStatus code) {
8354      if (code == DocumentReferenceStatus.CURRENT)
8355        return "current";
8356      if (code == DocumentReferenceStatus.SUPERSEDED)
8357        return "superseded";
8358      if (code == DocumentReferenceStatus.ENTEREDINERROR)
8359        return "entered-in-error";
8360      return "?";
8361      }
8362    public String toSystem(DocumentReferenceStatus code) {
8363      return code.getSystem();
8364      }
8365    }
8366
8367    public enum EventStatus {
8368        /**
8369         * The core event has not started yet, but some staging activities have begun (e.g. surgical suite preparation).  Preparation stages may be tracked for billing purposes.
8370         */
8371        PREPARATION, 
8372        /**
8373         * The event is currently occurring.
8374         */
8375        INPROGRESS, 
8376        /**
8377         * The event was terminated prior to any activity beyond preparation.  I.e. The 'main' activity has not yet begun.  The boundary between preparatory and the 'main' activity is context-specific.
8378         */
8379        NOTDONE, 
8380        /**
8381         * The event has been temporarily stopped but is expected to resume in the future.
8382         */
8383        ONHOLD, 
8384        /**
8385         * The event was terminated prior to the full completion of the intended activity but after at least some of the 'main' activity (beyond preparation) has occurred.
8386         */
8387        STOPPED, 
8388        /**
8389         * The event has now concluded.
8390         */
8391        COMPLETED, 
8392        /**
8393         * This electronic record should never have existed, though it is possible that real-world decisions were based on it.  (If real-world activity has occurred, the status should be "stopped" rather than "entered-in-error".).
8394         */
8395        ENTEREDINERROR, 
8396        /**
8397         * The authoring/source system does not know which of the status values currently applies for this event.  Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply,  but the authoring/source system does not know which.
8398         */
8399        UNKNOWN, 
8400        /**
8401         * added to help the parsers
8402         */
8403        NULL;
8404        public static EventStatus fromCode(String codeString) throws FHIRException {
8405            if (codeString == null || "".equals(codeString))
8406                return null;
8407        if ("preparation".equals(codeString))
8408          return PREPARATION;
8409        if ("in-progress".equals(codeString))
8410          return INPROGRESS;
8411        if ("not-done".equals(codeString))
8412          return NOTDONE;
8413        if ("on-hold".equals(codeString))
8414          return ONHOLD;
8415        if ("stopped".equals(codeString))
8416          return STOPPED;
8417        if ("completed".equals(codeString))
8418          return COMPLETED;
8419        if ("entered-in-error".equals(codeString))
8420          return ENTEREDINERROR;
8421        if ("unknown".equals(codeString))
8422          return UNKNOWN;
8423        throw new FHIRException("Unknown EventStatus code '"+codeString+"'");
8424        }
8425        public String toCode() {
8426          switch (this) {
8427            case PREPARATION: return "preparation";
8428            case INPROGRESS: return "in-progress";
8429            case NOTDONE: return "not-done";
8430            case ONHOLD: return "on-hold";
8431            case STOPPED: return "stopped";
8432            case COMPLETED: return "completed";
8433            case ENTEREDINERROR: return "entered-in-error";
8434            case UNKNOWN: return "unknown";
8435            case NULL: return null;
8436            default: return "?";
8437          }
8438        }
8439        public String getSystem() {
8440          switch (this) {
8441            case PREPARATION: return "http://hl7.org/fhir/event-status";
8442            case INPROGRESS: return "http://hl7.org/fhir/event-status";
8443            case NOTDONE: return "http://hl7.org/fhir/event-status";
8444            case ONHOLD: return "http://hl7.org/fhir/event-status";
8445            case STOPPED: return "http://hl7.org/fhir/event-status";
8446            case COMPLETED: return "http://hl7.org/fhir/event-status";
8447            case ENTEREDINERROR: return "http://hl7.org/fhir/event-status";
8448            case UNKNOWN: return "http://hl7.org/fhir/event-status";
8449            case NULL: return null;
8450            default: return "?";
8451          }
8452        }
8453        public String getDefinition() {
8454          switch (this) {
8455            case PREPARATION: return "The core event has not started yet, but some staging activities have begun (e.g. surgical suite preparation).  Preparation stages may be tracked for billing purposes.";
8456            case INPROGRESS: return "The event is currently occurring.";
8457            case NOTDONE: return "The event was terminated prior to any activity beyond preparation.  I.e. The 'main' activity has not yet begun.  The boundary between preparatory and the 'main' activity is context-specific.";
8458            case ONHOLD: return "The event has been temporarily stopped but is expected to resume in the future.";
8459            case STOPPED: return "The event was terminated prior to the full completion of the intended activity but after at least some of the 'main' activity (beyond preparation) has occurred.";
8460            case COMPLETED: return "The event has now concluded.";
8461            case ENTEREDINERROR: return "This electronic record should never have existed, though it is possible that real-world decisions were based on it.  (If real-world activity has occurred, the status should be \"stopped\" rather than \"entered-in-error\".).";
8462            case UNKNOWN: return "The authoring/source system does not know which of the status values currently applies for this event.  Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply,  but the authoring/source system does not know which.";
8463            case NULL: return null;
8464            default: return "?";
8465          }
8466        }
8467        public String getDisplay() {
8468          switch (this) {
8469            case PREPARATION: return "Preparation";
8470            case INPROGRESS: return "In Progress";
8471            case NOTDONE: return "Not Done";
8472            case ONHOLD: return "On Hold";
8473            case STOPPED: return "Stopped";
8474            case COMPLETED: return "Completed";
8475            case ENTEREDINERROR: return "Entered in Error";
8476            case UNKNOWN: return "Unknown";
8477            case NULL: return null;
8478            default: return "?";
8479          }
8480        }
8481    }
8482
8483  public static class EventStatusEnumFactory implements EnumFactory<EventStatus> {
8484    public EventStatus fromCode(String codeString) throws IllegalArgumentException {
8485      if (codeString == null || "".equals(codeString))
8486            if (codeString == null || "".equals(codeString))
8487                return null;
8488        if ("preparation".equals(codeString))
8489          return EventStatus.PREPARATION;
8490        if ("in-progress".equals(codeString))
8491          return EventStatus.INPROGRESS;
8492        if ("not-done".equals(codeString))
8493          return EventStatus.NOTDONE;
8494        if ("on-hold".equals(codeString))
8495          return EventStatus.ONHOLD;
8496        if ("stopped".equals(codeString))
8497          return EventStatus.STOPPED;
8498        if ("completed".equals(codeString))
8499          return EventStatus.COMPLETED;
8500        if ("entered-in-error".equals(codeString))
8501          return EventStatus.ENTEREDINERROR;
8502        if ("unknown".equals(codeString))
8503          return EventStatus.UNKNOWN;
8504        throw new IllegalArgumentException("Unknown EventStatus code '"+codeString+"'");
8505        }
8506        public Enumeration<EventStatus> fromType(PrimitiveType<?> code) throws FHIRException {
8507          if (code == null)
8508            return null;
8509          if (code.isEmpty())
8510            return new Enumeration<EventStatus>(this, EventStatus.NULL, code);
8511          String codeString = ((PrimitiveType) code).asStringValue();
8512          if (codeString == null || "".equals(codeString))
8513            return new Enumeration<EventStatus>(this, EventStatus.NULL, code);
8514        if ("preparation".equals(codeString))
8515          return new Enumeration<EventStatus>(this, EventStatus.PREPARATION, code);
8516        if ("in-progress".equals(codeString))
8517          return new Enumeration<EventStatus>(this, EventStatus.INPROGRESS, code);
8518        if ("not-done".equals(codeString))
8519          return new Enumeration<EventStatus>(this, EventStatus.NOTDONE, code);
8520        if ("on-hold".equals(codeString))
8521          return new Enumeration<EventStatus>(this, EventStatus.ONHOLD, code);
8522        if ("stopped".equals(codeString))
8523          return new Enumeration<EventStatus>(this, EventStatus.STOPPED, code);
8524        if ("completed".equals(codeString))
8525          return new Enumeration<EventStatus>(this, EventStatus.COMPLETED, code);
8526        if ("entered-in-error".equals(codeString))
8527          return new Enumeration<EventStatus>(this, EventStatus.ENTEREDINERROR, code);
8528        if ("unknown".equals(codeString))
8529          return new Enumeration<EventStatus>(this, EventStatus.UNKNOWN, code);
8530        throw new FHIRException("Unknown EventStatus code '"+codeString+"'");
8531        }
8532    public String toCode(EventStatus code) {
8533      if (code == EventStatus.PREPARATION)
8534        return "preparation";
8535      if (code == EventStatus.INPROGRESS)
8536        return "in-progress";
8537      if (code == EventStatus.NOTDONE)
8538        return "not-done";
8539      if (code == EventStatus.ONHOLD)
8540        return "on-hold";
8541      if (code == EventStatus.STOPPED)
8542        return "stopped";
8543      if (code == EventStatus.COMPLETED)
8544        return "completed";
8545      if (code == EventStatus.ENTEREDINERROR)
8546        return "entered-in-error";
8547      if (code == EventStatus.UNKNOWN)
8548        return "unknown";
8549      return "?";
8550      }
8551    public String toSystem(EventStatus code) {
8552      return code.getSystem();
8553      }
8554    }
8555
8556    public enum EvidenceVariableHandling {
8557        /**
8558         * A continuous variable is one for which, within the limits the variable ranges, any value is possible (from STATO http://purl.obolibrary.org/obo/STATO_0000251).
8559         */
8560        CONTINUOUS, 
8561        /**
8562         * A dichotomous variable is a categorical variable which is defined to have only 2 categories or possible values (from STATO http://purl.obolibrary.org/obo/STATO_0000090).
8563         */
8564        DICHOTOMOUS, 
8565        /**
8566         * An ordinal variable is a categorical variable where the discrete possible values are ordered or correspond to an implicit ranking (from STATO http://purl.obolibrary.org/obo/STATO_0000228).
8567         */
8568        ORDINAL, 
8569        /**
8570         * A polychotomous variable is a categorical variable which is defined to have minimally 2 categories or possible values. (from STATO  http://purl.obolibrary.org/obo/STATO_0000087).  Suggestion to limit code use to situations when neither dichotomous nor ordinal variables apply.
8571         */
8572        POLYCHOTOMOUS, 
8573        /**
8574         * added to help the parsers
8575         */
8576        NULL;
8577        public static EvidenceVariableHandling fromCode(String codeString) throws FHIRException {
8578            if (codeString == null || "".equals(codeString))
8579                return null;
8580        if ("continuous".equals(codeString))
8581          return CONTINUOUS;
8582        if ("dichotomous".equals(codeString))
8583          return DICHOTOMOUS;
8584        if ("ordinal".equals(codeString))
8585          return ORDINAL;
8586        if ("polychotomous".equals(codeString))
8587          return POLYCHOTOMOUS;
8588        throw new FHIRException("Unknown EvidenceVariableHandling code '"+codeString+"'");
8589        }
8590        public String toCode() {
8591          switch (this) {
8592            case CONTINUOUS: return "continuous";
8593            case DICHOTOMOUS: return "dichotomous";
8594            case ORDINAL: return "ordinal";
8595            case POLYCHOTOMOUS: return "polychotomous";
8596            case NULL: return null;
8597            default: return "?";
8598          }
8599        }
8600        public String getSystem() {
8601          switch (this) {
8602            case CONTINUOUS: return "http://hl7.org/fhir/variable-handling";
8603            case DICHOTOMOUS: return "http://hl7.org/fhir/variable-handling";
8604            case ORDINAL: return "http://hl7.org/fhir/variable-handling";
8605            case POLYCHOTOMOUS: return "http://hl7.org/fhir/variable-handling";
8606            case NULL: return null;
8607            default: return "?";
8608          }
8609        }
8610        public String getDefinition() {
8611          switch (this) {
8612            case CONTINUOUS: return "A continuous variable is one for which, within the limits the variable ranges, any value is possible (from STATO http://purl.obolibrary.org/obo/STATO_0000251).";
8613            case DICHOTOMOUS: return "A dichotomous variable is a categorical variable which is defined to have only 2 categories or possible values (from STATO http://purl.obolibrary.org/obo/STATO_0000090).";
8614            case ORDINAL: return "An ordinal variable is a categorical variable where the discrete possible values are ordered or correspond to an implicit ranking (from STATO http://purl.obolibrary.org/obo/STATO_0000228).";
8615            case POLYCHOTOMOUS: return "A polychotomous variable is a categorical variable which is defined to have minimally 2 categories or possible values. (from STATO  http://purl.obolibrary.org/obo/STATO_0000087).  Suggestion to limit code use to situations when neither dichotomous nor ordinal variables apply.";
8616            case NULL: return null;
8617            default: return "?";
8618          }
8619        }
8620        public String getDisplay() {
8621          switch (this) {
8622            case CONTINUOUS: return "continuous variable";
8623            case DICHOTOMOUS: return "dichotomous variable";
8624            case ORDINAL: return "ordinal variable";
8625            case POLYCHOTOMOUS: return "polychotomous variable";
8626            case NULL: return null;
8627            default: return "?";
8628          }
8629        }
8630    }
8631
8632  public static class EvidenceVariableHandlingEnumFactory implements EnumFactory<EvidenceVariableHandling> {
8633    public EvidenceVariableHandling fromCode(String codeString) throws IllegalArgumentException {
8634      if (codeString == null || "".equals(codeString))
8635            if (codeString == null || "".equals(codeString))
8636                return null;
8637        if ("continuous".equals(codeString))
8638          return EvidenceVariableHandling.CONTINUOUS;
8639        if ("dichotomous".equals(codeString))
8640          return EvidenceVariableHandling.DICHOTOMOUS;
8641        if ("ordinal".equals(codeString))
8642          return EvidenceVariableHandling.ORDINAL;
8643        if ("polychotomous".equals(codeString))
8644          return EvidenceVariableHandling.POLYCHOTOMOUS;
8645        throw new IllegalArgumentException("Unknown EvidenceVariableHandling code '"+codeString+"'");
8646        }
8647        public Enumeration<EvidenceVariableHandling> fromType(PrimitiveType<?> code) throws FHIRException {
8648          if (code == null)
8649            return null;
8650          if (code.isEmpty())
8651            return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.NULL, code);
8652          String codeString = ((PrimitiveType) code).asStringValue();
8653          if (codeString == null || "".equals(codeString))
8654            return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.NULL, code);
8655        if ("continuous".equals(codeString))
8656          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.CONTINUOUS, code);
8657        if ("dichotomous".equals(codeString))
8658          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.DICHOTOMOUS, code);
8659        if ("ordinal".equals(codeString))
8660          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.ORDINAL, code);
8661        if ("polychotomous".equals(codeString))
8662          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.POLYCHOTOMOUS, code);
8663        throw new FHIRException("Unknown EvidenceVariableHandling code '"+codeString+"'");
8664        }
8665    public String toCode(EvidenceVariableHandling code) {
8666      if (code == EvidenceVariableHandling.CONTINUOUS)
8667        return "continuous";
8668      if (code == EvidenceVariableHandling.DICHOTOMOUS)
8669        return "dichotomous";
8670      if (code == EvidenceVariableHandling.ORDINAL)
8671        return "ordinal";
8672      if (code == EvidenceVariableHandling.POLYCHOTOMOUS)
8673        return "polychotomous";
8674      return "?";
8675      }
8676    public String toSystem(EvidenceVariableHandling code) {
8677      return code.getSystem();
8678      }
8679    }
8680
8681    public enum ExampleScenarioActorType {
8682        /**
8683         * A human actor
8684         */
8685        PERSON, 
8686        /**
8687         * A software application or other system
8688         */
8689        SYSTEM, 
8690        /**
8691         * added to help the parsers
8692         */
8693        NULL;
8694        public static ExampleScenarioActorType fromCode(String codeString) throws FHIRException {
8695            if (codeString == null || "".equals(codeString))
8696                return null;
8697        if ("person".equals(codeString))
8698          return PERSON;
8699        if ("system".equals(codeString))
8700          return SYSTEM;
8701        throw new FHIRException("Unknown ExampleScenarioActorType code '"+codeString+"'");
8702        }
8703        public String toCode() {
8704          switch (this) {
8705            case PERSON: return "person";
8706            case SYSTEM: return "system";
8707            case NULL: return null;
8708            default: return "?";
8709          }
8710        }
8711        public String getSystem() {
8712          switch (this) {
8713            case PERSON: return "http://hl7.org/fhir/examplescenario-actor-type";
8714            case SYSTEM: return "http://hl7.org/fhir/examplescenario-actor-type";
8715            case NULL: return null;
8716            default: return "?";
8717          }
8718        }
8719        public String getDefinition() {
8720          switch (this) {
8721            case PERSON: return "A human actor";
8722            case SYSTEM: return "A software application or other system";
8723            case NULL: return null;
8724            default: return "?";
8725          }
8726        }
8727        public String getDisplay() {
8728          switch (this) {
8729            case PERSON: return "Person";
8730            case SYSTEM: return "System";
8731            case NULL: return null;
8732            default: return "?";
8733          }
8734        }
8735    }
8736
8737  public static class ExampleScenarioActorTypeEnumFactory implements EnumFactory<ExampleScenarioActorType> {
8738    public ExampleScenarioActorType fromCode(String codeString) throws IllegalArgumentException {
8739      if (codeString == null || "".equals(codeString))
8740            if (codeString == null || "".equals(codeString))
8741                return null;
8742        if ("person".equals(codeString))
8743          return ExampleScenarioActorType.PERSON;
8744        if ("system".equals(codeString))
8745          return ExampleScenarioActorType.SYSTEM;
8746        throw new IllegalArgumentException("Unknown ExampleScenarioActorType code '"+codeString+"'");
8747        }
8748        public Enumeration<ExampleScenarioActorType> fromType(PrimitiveType<?> code) throws FHIRException {
8749          if (code == null)
8750            return null;
8751          if (code.isEmpty())
8752            return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.NULL, code);
8753          String codeString = ((PrimitiveType) code).asStringValue();
8754          if (codeString == null || "".equals(codeString))
8755            return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.NULL, code);
8756        if ("person".equals(codeString))
8757          return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.PERSON, code);
8758        if ("system".equals(codeString))
8759          return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.SYSTEM, code);
8760        throw new FHIRException("Unknown ExampleScenarioActorType code '"+codeString+"'");
8761        }
8762    public String toCode(ExampleScenarioActorType code) {
8763      if (code == ExampleScenarioActorType.PERSON)
8764        return "person";
8765      if (code == ExampleScenarioActorType.SYSTEM)
8766        return "system";
8767      return "?";
8768      }
8769    public String toSystem(ExampleScenarioActorType code) {
8770      return code.getSystem();
8771      }
8772    }
8773
8774    public enum FHIRTypes {
8775        /**
8776         * Base Type: Base definition for all types defined in FHIR type system.
8777         */
8778        BASE, 
8779        /**
8780         * Element Type: Base definition for all elements in a resource.
8781         */
8782        ELEMENT, 
8783        /**
8784         * BackboneElement Type: Base definition for all elements that are defined inside a resource - but not those in a data type.
8785         */
8786        BACKBONEELEMENT, 
8787        /**
8788         * DataType Type: The base class for all re-useable types defined as part of the FHIR Specification.
8789         */
8790        DATATYPE, 
8791        /**
8792         * Address Type: 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.
8793The ISO21090-codedString may be used to provide a coded representation of the contents of strings in an Address.
8794         */
8795        ADDRESS, 
8796        /**
8797         * Annotation Type: A  text note which also  contains information about who made the statement and when.
8798         */
8799        ANNOTATION, 
8800        /**
8801         * Attachment Type: For referring to data content defined in other formats.
8802         */
8803        ATTACHMENT, 
8804        /**
8805         * Availability Type: Availability data for an {item}.
8806         */
8807        AVAILABILITY, 
8808        /**
8809         * BackboneType Type: Base definition for the few data types that are allowed to carry modifier extensions.
8810         */
8811        BACKBONETYPE, 
8812        /**
8813         * Dosage Type: Indicates how the medication is/was taken or should be taken by the patient.
8814         */
8815        DOSAGE, 
8816        /**
8817         * ElementDefinition Type: Captures constraints on each element within the resource, profile, or extension.
8818         */
8819        ELEMENTDEFINITION, 
8820        /**
8821         * MarketingStatus Type: The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.
8822         */
8823        MARKETINGSTATUS, 
8824        /**
8825         * Population Type: A populatioof people with some set of grouping criteria.
8826         */
8827        POPULATION, 
8828        /**
8829         * ProductShelfLife Type: The shelf-life and storage information for a medicinal product item or container can be described using this class.
8830         */
8831        PRODUCTSHELFLIFE, 
8832        /**
8833         * Timing Type: 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.
8834         */
8835        TIMING, 
8836        /**
8837         * CodeableConcept Type: A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
8838         */
8839        CODEABLECONCEPT, 
8840        /**
8841         * CodeableReference Type: A reference to a resource (by instance), or instead, a reference to a concept defined in a terminology or ontology (by class).
8842         */
8843        CODEABLEREFERENCE, 
8844        /**
8845         * Coding Type: A reference to a code defined by a terminology system.
8846         */
8847        CODING, 
8848        /**
8849         * ContactDetail Type: Specifies contact information for a person or organization.
8850         */
8851        CONTACTDETAIL, 
8852        /**
8853         * ContactPoint Type: Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
8854         */
8855        CONTACTPOINT, 
8856        /**
8857         * Contributor Type: A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.
8858         */
8859        CONTRIBUTOR, 
8860        /**
8861         * DataRequirement Type: Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.
8862         */
8863        DATAREQUIREMENT, 
8864        /**
8865         * Expression Type: A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used.
8866         */
8867        EXPRESSION, 
8868        /**
8869         * ExtendedContactDetail Type: Specifies contact information for a specific purpose over a period of time, might be handled/monitored by a specific named person or organization.
8870         */
8871        EXTENDEDCONTACTDETAIL, 
8872        /**
8873         * Extension Type: Optional Extension Element - found in all resources.
8874         */
8875        EXTENSION, 
8876        /**
8877         * HumanName Type: A name, normally of a human, that can be used for other living entities (eg. animals but not organizations) that have been assigned names by a human and may need the use of name parts or the need for usage information.
8878         */
8879        HUMANNAME, 
8880        /**
8881         * Identifier Type: An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.
8882         */
8883        IDENTIFIER, 
8884        /**
8885         * Meta Type: The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
8886         */
8887        META, 
8888        /**
8889         * MonetaryComponent Type: Availability data for an {item}.
8890         */
8891        MONETARYCOMPONENT, 
8892        /**
8893         * Money Type: An amount of economic utility in some recognized currency.
8894         */
8895        MONEY, 
8896        /**
8897         * Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.
8898         */
8899        NARRATIVE, 
8900        /**
8901         * ParameterDefinition Type: 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.
8902         */
8903        PARAMETERDEFINITION, 
8904        /**
8905         * Period Type: A time period defined by a start and end date and optionally time.
8906         */
8907        PERIOD, 
8908        /**
8909         * PrimitiveType Type: The base type for all re-useable types defined that have a simple property.
8910         */
8911        PRIMITIVETYPE, 
8912        /**
8913         * base64Binary Type: A stream of bytes
8914         */
8915        BASE64BINARY, 
8916        /**
8917         * boolean Type: Value of "true" or "false"
8918         */
8919        BOOLEAN, 
8920        /**
8921         * date Type: A date or partial date (e.g. just year or year + month). There is no UTC offset. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.
8922         */
8923        DATE, 
8924        /**
8925         * dateTime Type: A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a UTC offset 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.
8926         */
8927        DATETIME, 
8928        /**
8929         * decimal Type: A rational number with implicit precision
8930         */
8931        DECIMAL, 
8932        /**
8933         * instant Type: An instant in time - known at least to the second
8934         */
8935        INSTANT, 
8936        /**
8937         * integer Type: A whole number
8938         */
8939        INTEGER, 
8940        /**
8941         * positiveInt type: An integer with a value that is positive (e.g. >0)
8942         */
8943        POSITIVEINT, 
8944        /**
8945         * unsignedInt type: An integer with a value that is not negative (e.g. >= 0)
8946         */
8947        UNSIGNEDINT, 
8948        /**
8949         * integer64 Type: A very large whole number
8950         */
8951        INTEGER64, 
8952        /**
8953         * string Type: A sequence of Unicode characters
8954         */
8955        STRING, 
8956        /**
8957         * code type: 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
8958         */
8959        CODE, 
8960        /**
8961         * id type: 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.
8962         */
8963        ID, 
8964        /**
8965         * markdown type: A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine
8966         */
8967        MARKDOWN, 
8968        /**
8969         * time Type: A time during the day, with no date specified
8970         */
8971        TIME, 
8972        /**
8973         * uri Type: String of characters used to identify a name or a resource
8974         */
8975        URI, 
8976        /**
8977         * canonical type: A URI that is a reference to a canonical URL on a FHIR resource
8978         */
8979        CANONICAL, 
8980        /**
8981         * oid type: An OID represented as a URI
8982         */
8983        OID, 
8984        /**
8985         * url type: A URI that is a literal reference
8986         */
8987        URL, 
8988        /**
8989         * uuid type: A UUID, represented as a URI
8990         */
8991        UUID, 
8992        /**
8993         * Quantity Type: 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.
8994         */
8995        QUANTITY, 
8996        /**
8997         * Age Type: A duration of time during which an organism (or a process) has existed.
8998         */
8999        AGE, 
9000        /**
9001         * Count Type: 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.
9002         */
9003        COUNT, 
9004        /**
9005         * Distance Type: A length - a value with a unit that is a physical distance.
9006         */
9007        DISTANCE, 
9008        /**
9009         * Duration Type: A length of time.
9010         */
9011        DURATION, 
9012        /**
9013         * Range Type: A set of ordered Quantities defined by a low and high limit.
9014         */
9015        RANGE, 
9016        /**
9017         * Ratio Type: A relationship of two Quantity values - expressed as a numerator and a denominator.
9018         */
9019        RATIO, 
9020        /**
9021         * RatioRange Type: A range of ratios expressed as a low and high numerator and a denominator.
9022         */
9023        RATIORANGE, 
9024        /**
9025         * Reference Type: A reference from one resource to another.
9026         */
9027        REFERENCE, 
9028        /**
9029         * RelatedArtifact Type: Related artifacts such as additional documentation, justification, or bibliographic references.
9030         */
9031        RELATEDARTIFACT, 
9032        /**
9033         * SampledData Type: A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
9034         */
9035        SAMPLEDDATA, 
9036        /**
9037         * Signature Type: A signature along with supporting context. The signature may be a digital signature that is cryptographic in nature, or some other signature acceptable to the domain. This other signature may be as simple as a graphical image representing a hand-written signature, or a signature ceremony Different signature approaches have different utilities.
9038         */
9039        SIGNATURE, 
9040        /**
9041         * TriggerDefinition Type: A description of a triggering event. Triggering events can be named events, data events, or periodic, as determined by the type element.
9042         */
9043        TRIGGERDEFINITION, 
9044        /**
9045         * UsageContext Type: 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).
9046         */
9047        USAGECONTEXT, 
9048        /**
9049         * VirtualServiceDetail Type: Virtual Service Contact Details.
9050         */
9051        VIRTUALSERVICEDETAIL, 
9052        /**
9053         * xhtml Type definition
9054         */
9055        XHTML, 
9056        /**
9057         * This is the base resource type for everything.
9058         */
9059        RESOURCE, 
9060        /**
9061         * A resource that represents the data of a single raw artifact as digital content accessible in its native format.  A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.
9062         */
9063        BINARY, 
9064        /**
9065         * A container for a collection of resources.
9066         */
9067        BUNDLE, 
9068        /**
9069         * A resource that includes narrative, extensions, and contained resources.
9070         */
9071        DOMAINRESOURCE, 
9072        /**
9073         * 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.
9074         */
9075        ACCOUNT, 
9076        /**
9077         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
9078         */
9079        ACTIVITYDEFINITION, 
9080        /**
9081         * The ActorDefinition resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.
9082         */
9083        ACTORDEFINITION, 
9084        /**
9085         * A medicinal product in the final form which is suitable for administering to a patient (after any mixing of multiple components, dissolution etc. has been performed).
9086         */
9087        ADMINISTRABLEPRODUCTDEFINITION, 
9088        /**
9089         * An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research subject. The unintended effects may require additional monitoring, treatment, hospitalization, or may result in death. The AdverseEvent resource also extends to potential or avoided events that could have had such effects. There are two major domains where the AdverseEvent resource is expected to be used. One is in clinical care reported adverse events and the other is in reporting adverse events in clinical  research trial management. Given the differences between these two concepts, we recommend consulting the domain specific implementation guides when implementing the AdverseEvent Resource. The implementation guides include specific extensions, value sets and constraints.
9090         */
9091        ADVERSEEVENT, 
9092        /**
9093         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
9094         */
9095        ALLERGYINTOLERANCE, 
9096        /**
9097         * 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).
9098         */
9099        APPOINTMENT, 
9100        /**
9101         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
9102         */
9103        APPOINTMENTRESPONSE, 
9104        /**
9105         * This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.
9106         */
9107        ARTIFACTASSESSMENT, 
9108        /**
9109         * A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.
9110         */
9111        AUDITEVENT, 
9112        /**
9113         * 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.
9114         */
9115        BASIC, 
9116        /**
9117         * A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.
9118         */
9119        BIOLOGICALLYDERIVEDPRODUCT, 
9120        /**
9121         * Record details about an anatomical structure.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
9122         */
9123        BODYSTRUCTURE, 
9124        /**
9125         * Common Interface declaration for conformance and knowledge artifact resources.
9126         */
9127        CANONICALRESOURCE, 
9128        /**
9129         * A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server or Client for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
9130         */
9131        CAPABILITYSTATEMENT, 
9132        /**
9133         * 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.
9134         */
9135        CAREPLAN, 
9136        /**
9137         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.
9138         */
9139        CARETEAM, 
9140        /**
9141         * 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.
9142         */
9143        CHARGEITEM, 
9144        /**
9145         * The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system.
9146         */
9147        CHARGEITEMDEFINITION, 
9148        /**
9149         * The Citation Resource enables reference to any knowledge artifact for purposes of identification and attribution. The Citation Resource supports existing reference structures and developing publication practices such as versioning, expressing complex contributorship roles, and referencing computable resources.
9150         */
9151        CITATION, 
9152        /**
9153         * A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.
9154         */
9155        CLAIM, 
9156        /**
9157         * This resource provides the adjudication details from the processing of a Claim resource.
9158         */
9159        CLAIMRESPONSE, 
9160        /**
9161         * 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.
9162         */
9163        CLINICALIMPRESSION, 
9164        /**
9165         * A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.
9166         */
9167        CLINICALUSEDEFINITION, 
9168        /**
9169         * The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.
9170         */
9171        CODESYSTEM, 
9172        /**
9173         * A clinical or business level record of information being transmitted or shared; e.g. an alert that was sent to a responsible provider, a public health agency communication to a provider/reporter in response to a case report for a reportable condition.
9174         */
9175        COMMUNICATION, 
9176        /**
9177         * 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.
9178         */
9179        COMMUNICATIONREQUEST, 
9180        /**
9181         * A compartment definition that defines how resources are accessed on a server.
9182         */
9183        COMPARTMENTDEFINITION, 
9184        /**
9185         * A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).
9186         */
9187        COMPOSITION, 
9188        /**
9189         * A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.
9190         */
9191        CONCEPTMAP, 
9192        /**
9193         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
9194         */
9195        CONDITION, 
9196        /**
9197         * A definition of a condition and information relevant to managing it.
9198         */
9199        CONDITIONDEFINITION, 
9200        /**
9201         * A record of a healthcare consumer’s  choices  or choices made on their behalf by a third party, 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.
9202         */
9203        CONSENT, 
9204        /**
9205         * Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.
9206         */
9207        CONTRACT, 
9208        /**
9209         * Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.
9210         */
9211        COVERAGE, 
9212        /**
9213         * The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.
9214         */
9215        COVERAGEELIGIBILITYREQUEST, 
9216        /**
9217         * This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.
9218         */
9219        COVERAGEELIGIBILITYRESPONSE, 
9220        /**
9221         * 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.
9222         */
9223        DETECTEDISSUE, 
9224        /**
9225         * This resource describes the properties (regulated, has real time clock, etc.), adminstrative (manufacturer name, model number, serial number, firmware, etc), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serail number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element.
9226         */
9227        DEVICE, 
9228        /**
9229         * This is a specialized resource that defines the characteristics and capabilities of a device.
9230         */
9231        DEVICEDEFINITION, 
9232        /**
9233         * Indicates that a device is to be or has been dispensed for a named person/patient.  This includes a description of the product (supply) provided and the instructions for using the device.
9234         */
9235        DEVICEDISPENSE, 
9236        /**
9237         * Describes a measurement, calculation or setting capability of a medical device.
9238         */
9239        DEVICEMETRIC, 
9240        /**
9241         * Represents a request a device to be provided to a specific patient. The device may be an implantable device to be subsequently implanted, or an external assistive device, such as a walker, to be delivered and subsequently be used.
9242         */
9243        DEVICEREQUEST, 
9244        /**
9245         * A record of a device being used by a patient where the record is the result of a report from the patient or a clinician.
9246         */
9247        DEVICEUSAGE, 
9248        /**
9249         * The findings and interpretation of diagnostic tests performed on patients, groups of patients, products, substances, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports. The report also includes non-clinical context such as batch analysis and stability reporting of products and substances.
9250         */
9251        DIAGNOSTICREPORT, 
9252        /**
9253         * A collection of documents compiled for a purpose together with metadata that applies to the collection.
9254         */
9255        DOCUMENTMANIFEST, 
9256        /**
9257         * A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this "document" encompasses *any* serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare.  The DocumentReference resource provides metadata about the document so that the document can be discovered and managed.  The actual content may be inline base64 encoded data or provided by direct reference.
9258         */
9259        DOCUMENTREFERENCE, 
9260        /**
9261         * An interaction between healthcare provider(s), and/or patient(s) for the purpose of providing healthcare service(s) or assessing the health status of patient(s).
9262         */
9263        ENCOUNTER, 
9264        /**
9265         * The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.
9266         */
9267        ENDPOINT, 
9268        /**
9269         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
9270         */
9271        ENROLLMENTREQUEST, 
9272        /**
9273         * This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.
9274         */
9275        ENROLLMENTRESPONSE, 
9276        /**
9277         * 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.
9278         */
9279        EPISODEOFCARE, 
9280        /**
9281         * The EventDefinition resource provides a reusable description of when a particular event can occur.
9282         */
9283        EVENTDEFINITION, 
9284        /**
9285         * The Evidence Resource provides a machine-interpretable expression of an evidence concept including the evidence variables (e.g., population, exposures/interventions, comparators, outcomes, measured variables, confounding variables), the statistics, and the certainty of this evidence.
9286         */
9287        EVIDENCE, 
9288        /**
9289         * The EvidenceReport Resource is a specialized container for a collection of resources and codeable concepts, adapted to support compositions of Evidence, EvidenceVariable, and Citation resources and related concepts.
9290         */
9291        EVIDENCEREPORT, 
9292        /**
9293         * The EvidenceVariable resource describes an element that knowledge (Evidence) is about.
9294         */
9295        EVIDENCEVARIABLE, 
9296        /**
9297         * A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
9298         */
9299        EXAMPLESCENARIO, 
9300        /**
9301         * 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.
9302         */
9303        EXPLANATIONOFBENEFIT, 
9304        /**
9305         * Significant health conditions for a person related to the patient relevant in the context of care for the patient.
9306         */
9307        FAMILYMEMBERHISTORY, 
9308        /**
9309         * Prospective warnings of potential issues when providing care to the patient.
9310         */
9311        FLAG, 
9312        /**
9313         * This resource describes a product or service that is available through a program and includes the conditions and constraints of availability.  All of the information in this resource is specific to the inclusion of the item in the formulary and is not inherent to the item itself.
9314         */
9315        FORMULARYITEM, 
9316        /**
9317         * A Genomic Study is a set of analysis performed to analyze and generate genomic data.
9318         */
9319        GENOMICSTUDY, 
9320        /**
9321         * 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.
9322         */
9323        GOAL, 
9324        /**
9325         * 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.
9326         */
9327        GRAPHDEFINITION, 
9328        /**
9329         * 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.
9330         */
9331        GROUP, 
9332        /**
9333         * 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.
9334         */
9335        GUIDANCERESPONSE, 
9336        /**
9337         * The details of a healthcare service available at a location or in a catalog.  In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices.
9338         */
9339        HEALTHCARESERVICE, 
9340        /**
9341         * A selection of DICOM SOP instances and/or frames within a single Study and Series. This might include additional specifics such as an image region, an Observation UID or a Segmentation Number, allowing linkage to an Observation Resource or transferring this information along with the ImagingStudy Resource.
9342         */
9343        IMAGINGSELECTION, 
9344        /**
9345         * 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.
9346         */
9347        IMAGINGSTUDY, 
9348        /**
9349         * Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
9350         */
9351        IMMUNIZATION, 
9352        /**
9353         * Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those  recommendations.
9354         */
9355        IMMUNIZATIONEVALUATION, 
9356        /**
9357         * A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.
9358         */
9359        IMMUNIZATIONRECOMMENDATION, 
9360        /**
9361         * A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
9362         */
9363        IMPLEMENTATIONGUIDE, 
9364        /**
9365         * An ingredient of a manufactured item or pharmaceutical product.
9366         */
9367        INGREDIENT, 
9368        /**
9369         * Details of a Health Insurance product/plan provided by an organization.
9370         */
9371        INSURANCEPLAN, 
9372        /**
9373         * A report of inventory or stock items.
9374         */
9375        INVENTORYREPORT, 
9376        /**
9377         * Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.
9378         */
9379        INVOICE, 
9380        /**
9381         * 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.
9382         */
9383        LIBRARY, 
9384        /**
9385         * Identifies two or more records (resource instances) that refer to the same real-world "occurrence".
9386         */
9387        LINKAGE, 
9388        /**
9389         * A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.
9390         */
9391        LIST, 
9392        /**
9393         * Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained, or accommodated.
9394         */
9395        LOCATION, 
9396        /**
9397         * The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.
9398         */
9399        MANUFACTUREDITEMDEFINITION, 
9400        /**
9401         * The Measure resource provides the definition of a quality measure.
9402         */
9403        MEASURE, 
9404        /**
9405         * The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.
9406         */
9407        MEASUREREPORT, 
9408        /**
9409         * This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.
9410         */
9411        MEDICATION, 
9412        /**
9413         * 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.
9414         */
9415        MEDICATIONADMINISTRATION, 
9416        /**
9417         * 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.
9418         */
9419        MEDICATIONDISPENSE, 
9420        /**
9421         * Information about a medication that is used to support knowledge.
9422         */
9423        MEDICATIONKNOWLEDGE, 
9424        /**
9425         * 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.
9426         */
9427        MEDICATIONREQUEST, 
9428        /**
9429         * A record of a medication that is being consumed by a patient.   A MedicationUsage 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. 
9430
9431The primary difference between a medicationusage and a medicationadministration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medicationusage 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 Usage 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.
9432         */
9433        MEDICATIONUSAGE, 
9434        /**
9435         * Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs, to support prescribing, adverse events management etc.).
9436         */
9437        MEDICINALPRODUCTDEFINITION, 
9438        /**
9439         * 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.
9440         */
9441        MESSAGEDEFINITION, 
9442        /**
9443         * 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.
9444         */
9445        MESSAGEHEADER, 
9446        /**
9447         * Common Interface declaration for conformance and knowledge artifact resources.
9448         */
9449        METADATARESOURCE, 
9450        /**
9451         * Representation of a molecular sequence.
9452         */
9453        MOLECULARSEQUENCE, 
9454        /**
9455         * 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.
9456         */
9457        NAMINGSYSTEM, 
9458        /**
9459         * A record of food or fluid that is being consumed by a patient.  A NutritionIntake may indicate that the patient may be consuming the food or fluid now or has consumed the food or fluid in the past.  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 or through an app that tracks food or fluids consumed.   The consumption information may come from sources such as the patient's memory, from a nutrition label,  or from a clinician documenting observed intake.
9460         */
9461        NUTRITIONINTAKE, 
9462        /**
9463         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
9464         */
9465        NUTRITIONORDER, 
9466        /**
9467         * A food or supplement that is consumed by patients.
9468         */
9469        NUTRITIONPRODUCT, 
9470        /**
9471         * Measurements and simple assertions made about a patient, device or other subject.
9472         */
9473        OBSERVATION, 
9474        /**
9475         * Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
9476         */
9477        OBSERVATIONDEFINITION, 
9478        /**
9479         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
9480         */
9481        OPERATIONDEFINITION, 
9482        /**
9483         * A collection of error, warning, or information messages that result from a system action.
9484         */
9485        OPERATIONOUTCOME, 
9486        /**
9487         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc.
9488         */
9489        ORGANIZATION, 
9490        /**
9491         * Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.
9492         */
9493        ORGANIZATIONAFFILIATION, 
9494        /**
9495         * A medically related item or items, in a container or package.
9496         */
9497        PACKAGEDPRODUCTDEFINITION, 
9498        /**
9499         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
9500         */
9501        PATIENT, 
9502        /**
9503         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
9504         */
9505        PAYMENTNOTICE, 
9506        /**
9507         * This resource provides the details including amount of a payment and allocates the payment items being paid.
9508         */
9509        PAYMENTRECONCILIATION, 
9510        /**
9511         * Permission resource holds access rules for a given data and context.
9512         */
9513        PERMISSION, 
9514        /**
9515         * Demographics and administrative information about a person independent of a specific health-related context.
9516         */
9517        PERSON, 
9518        /**
9519         * 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 and non-clinical artifacts such as clinical decision support rules, order sets, protocols, and drug quality specifications.
9520         */
9521        PLANDEFINITION, 
9522        /**
9523         * A person who is directly or indirectly involved in the provisioning of healthcare or related services.
9524         */
9525        PRACTITIONER, 
9526        /**
9527         * A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.
9528         */
9529        PRACTITIONERROLE, 
9530        /**
9531         * An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy.  This can be a quality or safety inspection for a location, organization, or device.  This can be an accreditation procedure on a practitioner for licensing.
9532         */
9533        PROCEDURE, 
9534        /**
9535         * 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.
9536         */
9537        PROVENANCE, 
9538        /**
9539         * 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.
9540         */
9541        QUESTIONNAIRE, 
9542        /**
9543         * 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.
9544         */
9545        QUESTIONNAIRERESPONSE, 
9546        /**
9547         * Regulatory approval, clearance or licencing related to a regulated product, treatment, facility or activity that is cited in a guidance, regulation, rule or legislative act. An example is Market Authorization relating to a Medicinal Product.
9548         */
9549        REGULATEDAUTHORIZATION, 
9550        /**
9551         * Information about a person that is involved in a patient's health or the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
9552         */
9553        RELATEDPERSON, 
9554        /**
9555         * A set of related requests that can be used to capture intended activities that have inter-dependencies such as "give this medication after that one".
9556         */
9557        REQUESTORCHESTRATION, 
9558        /**
9559         * The Requirements resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.
9560         */
9561        REQUIREMENTS, 
9562        /**
9563         * A scientific study of nature that sometimes includes processes involved in health and disease. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future.
9564         */
9565        RESEARCHSTUDY, 
9566        /**
9567         * A physical entity which is the primary unit of operational and/or administrative interest in a study.
9568         */
9569        RESEARCHSUBJECT, 
9570        /**
9571         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
9572         */
9573        RISKASSESSMENT, 
9574        /**
9575         * A container for slots of time that may be available for booking appointments.
9576         */
9577        SCHEDULE, 
9578        /**
9579         * A search parameter that defines a named search item that can be used to search/filter on a resource.
9580         */
9581        SEARCHPARAMETER, 
9582        /**
9583         * A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.
9584         */
9585        SERVICEREQUEST, 
9586        /**
9587         * A slot of time on a schedule that may be available for booking appointments.
9588         */
9589        SLOT, 
9590        /**
9591         * A sample to be used for analysis.
9592         */
9593        SPECIMEN, 
9594        /**
9595         * A kind of specimen with associated set of requirements.
9596         */
9597        SPECIMENDEFINITION, 
9598        /**
9599         * 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.
9600         */
9601        STRUCTUREDEFINITION, 
9602        /**
9603         * A Map of relationships between 2 structures that can be used to transform data.
9604         */
9605        STRUCTUREMAP, 
9606        /**
9607         * The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.
9608         */
9609        SUBSCRIPTION, 
9610        /**
9611         * The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.
9612         */
9613        SUBSCRIPTIONSTATUS, 
9614        /**
9615         * Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.
9616         */
9617        SUBSCRIPTIONTOPIC, 
9618        /**
9619         * A homogeneous material with a definite composition.
9620         */
9621        SUBSTANCE, 
9622        /**
9623         * The detailed description of a substance, typically at a level beyond what is used for prescribing.
9624         */
9625        SUBSTANCEDEFINITION, 
9626        /**
9627         * Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5’-3’ direction.
9628         */
9629        SUBSTANCENUCLEICACID, 
9630        /**
9631         * Properties of a substance specific to it being a polymer.
9632         */
9633        SUBSTANCEPOLYMER, 
9634        /**
9635         * A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators.
9636         */
9637        SUBSTANCEPROTEIN, 
9638        /**
9639         * Todo.
9640         */
9641        SUBSTANCEREFERENCEINFORMATION, 
9642        /**
9643         * Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex.
9644         */
9645        SUBSTANCESOURCEMATERIAL, 
9646        /**
9647         * Record of delivery of what is supplied.
9648         */
9649        SUPPLYDELIVERY, 
9650        /**
9651         * A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.
9652         */
9653        SUPPLYREQUEST, 
9654        /**
9655         * A task to be performed.
9656         */
9657        TASK, 
9658        /**
9659         * A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
9660         */
9661        TERMINOLOGYCAPABILITIES, 
9662        /**
9663         * A summary of information based on the results of executing a TestScript.
9664         */
9665        TESTREPORT, 
9666        /**
9667         * A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
9668         */
9669        TESTSCRIPT, 
9670        /**
9671         * Record of transport.
9672         */
9673        TRANSPORT, 
9674        /**
9675         * A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[[CodeSystem]]] definitions and their use in [coded elements](terminologies.html).
9676         */
9677        VALUESET, 
9678        /**
9679         * Describes validation requirements, source(s), status and dates for one or more elements.
9680         */
9681        VERIFICATIONRESULT, 
9682        /**
9683         * An authorization for the provision of glasses and/or contact lenses to a patient.
9684         */
9685        VISIONPRESCRIPTION, 
9686        /**
9687         * This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment).  It is not persisted or allowed to be referenced by other resources except as described in the definition of the Parameters resource.
9688         */
9689        PARAMETERS, 
9690        /**
9691         * added to help the parsers
9692         */
9693        NULL;
9694        public static FHIRTypes fromCode(String codeString) throws FHIRException {
9695            if (codeString == null || "".equals(codeString))
9696                return null;
9697        if ("Base".equals(codeString))
9698          return BASE;
9699        if ("Element".equals(codeString))
9700          return ELEMENT;
9701        if ("BackboneElement".equals(codeString))
9702          return BACKBONEELEMENT;
9703        if ("DataType".equals(codeString))
9704          return DATATYPE;
9705        if ("Address".equals(codeString))
9706          return ADDRESS;
9707        if ("Annotation".equals(codeString))
9708          return ANNOTATION;
9709        if ("Attachment".equals(codeString))
9710          return ATTACHMENT;
9711        if ("Availability".equals(codeString))
9712          return AVAILABILITY;
9713        if ("BackboneType".equals(codeString))
9714          return BACKBONETYPE;
9715        if ("Dosage".equals(codeString))
9716          return DOSAGE;
9717        if ("ElementDefinition".equals(codeString))
9718          return ELEMENTDEFINITION;
9719        if ("MarketingStatus".equals(codeString))
9720          return MARKETINGSTATUS;
9721        if ("Population".equals(codeString))
9722          return POPULATION;
9723        if ("ProductShelfLife".equals(codeString))
9724          return PRODUCTSHELFLIFE;
9725        if ("Timing".equals(codeString))
9726          return TIMING;
9727        if ("CodeableConcept".equals(codeString))
9728          return CODEABLECONCEPT;
9729        if ("CodeableReference".equals(codeString))
9730          return CODEABLEREFERENCE;
9731        if ("Coding".equals(codeString))
9732          return CODING;
9733        if ("ContactDetail".equals(codeString))
9734          return CONTACTDETAIL;
9735        if ("ContactPoint".equals(codeString))
9736          return CONTACTPOINT;
9737        if ("Contributor".equals(codeString))
9738          return CONTRIBUTOR;
9739        if ("DataRequirement".equals(codeString))
9740          return DATAREQUIREMENT;
9741        if ("Expression".equals(codeString))
9742          return EXPRESSION;
9743        if ("ExtendedContactDetail".equals(codeString))
9744          return EXTENDEDCONTACTDETAIL;
9745        if ("Extension".equals(codeString))
9746          return EXTENSION;
9747        if ("HumanName".equals(codeString))
9748          return HUMANNAME;
9749        if ("Identifier".equals(codeString))
9750          return IDENTIFIER;
9751        if ("Meta".equals(codeString))
9752          return META;
9753        if ("MonetaryComponent".equals(codeString))
9754          return MONETARYCOMPONENT;
9755        if ("Money".equals(codeString))
9756          return MONEY;
9757        if ("Narrative".equals(codeString))
9758          return NARRATIVE;
9759        if ("ParameterDefinition".equals(codeString))
9760          return PARAMETERDEFINITION;
9761        if ("Period".equals(codeString))
9762          return PERIOD;
9763        if ("PrimitiveType".equals(codeString))
9764          return PRIMITIVETYPE;
9765        if ("base64Binary".equals(codeString))
9766          return BASE64BINARY;
9767        if ("boolean".equals(codeString))
9768          return BOOLEAN;
9769        if ("date".equals(codeString))
9770          return DATE;
9771        if ("dateTime".equals(codeString))
9772          return DATETIME;
9773        if ("decimal".equals(codeString))
9774          return DECIMAL;
9775        if ("instant".equals(codeString))
9776          return INSTANT;
9777        if ("integer".equals(codeString))
9778          return INTEGER;
9779        if ("positiveInt".equals(codeString))
9780          return POSITIVEINT;
9781        if ("unsignedInt".equals(codeString))
9782          return UNSIGNEDINT;
9783        if ("integer64".equals(codeString))
9784          return INTEGER64;
9785        if ("string".equals(codeString))
9786          return STRING;
9787        if ("code".equals(codeString))
9788          return CODE;
9789        if ("id".equals(codeString))
9790          return ID;
9791        if ("markdown".equals(codeString))
9792          return MARKDOWN;
9793        if ("time".equals(codeString))
9794          return TIME;
9795        if ("uri".equals(codeString))
9796          return URI;
9797        if ("canonical".equals(codeString))
9798          return CANONICAL;
9799        if ("oid".equals(codeString))
9800          return OID;
9801        if ("url".equals(codeString))
9802          return URL;
9803        if ("uuid".equals(codeString))
9804          return UUID;
9805        if ("Quantity".equals(codeString))
9806          return QUANTITY;
9807        if ("Age".equals(codeString))
9808          return AGE;
9809        if ("Count".equals(codeString))
9810          return COUNT;
9811        if ("Distance".equals(codeString))
9812          return DISTANCE;
9813        if ("Duration".equals(codeString))
9814          return DURATION;
9815        if ("Range".equals(codeString))
9816          return RANGE;
9817        if ("Ratio".equals(codeString))
9818          return RATIO;
9819        if ("RatioRange".equals(codeString))
9820          return RATIORANGE;
9821        if ("Reference".equals(codeString))
9822          return REFERENCE;
9823        if ("RelatedArtifact".equals(codeString))
9824          return RELATEDARTIFACT;
9825        if ("SampledData".equals(codeString))
9826          return SAMPLEDDATA;
9827        if ("Signature".equals(codeString))
9828          return SIGNATURE;
9829        if ("TriggerDefinition".equals(codeString))
9830          return TRIGGERDEFINITION;
9831        if ("UsageContext".equals(codeString))
9832          return USAGECONTEXT;
9833        if ("VirtualServiceDetail".equals(codeString))
9834          return VIRTUALSERVICEDETAIL;
9835        if ("xhtml".equals(codeString))
9836          return XHTML;
9837        if ("Resource".equals(codeString))
9838          return RESOURCE;
9839        if ("Binary".equals(codeString))
9840          return BINARY;
9841        if ("Bundle".equals(codeString))
9842          return BUNDLE;
9843        if ("DomainResource".equals(codeString))
9844          return DOMAINRESOURCE;
9845        if ("Account".equals(codeString))
9846          return ACCOUNT;
9847        if ("ActivityDefinition".equals(codeString))
9848          return ACTIVITYDEFINITION;
9849        if ("ActorDefinition".equals(codeString))
9850          return ACTORDEFINITION;
9851        if ("AdministrableProductDefinition".equals(codeString))
9852          return ADMINISTRABLEPRODUCTDEFINITION;
9853        if ("AdverseEvent".equals(codeString))
9854          return ADVERSEEVENT;
9855        if ("AllergyIntolerance".equals(codeString))
9856          return ALLERGYINTOLERANCE;
9857        if ("Appointment".equals(codeString))
9858          return APPOINTMENT;
9859        if ("AppointmentResponse".equals(codeString))
9860          return APPOINTMENTRESPONSE;
9861        if ("ArtifactAssessment".equals(codeString))
9862          return ARTIFACTASSESSMENT;
9863        if ("AuditEvent".equals(codeString))
9864          return AUDITEVENT;
9865        if ("Basic".equals(codeString))
9866          return BASIC;
9867        if ("BiologicallyDerivedProduct".equals(codeString))
9868          return BIOLOGICALLYDERIVEDPRODUCT;
9869        if ("BodyStructure".equals(codeString))
9870          return BODYSTRUCTURE;
9871        if ("CanonicalResource".equals(codeString))
9872          return CANONICALRESOURCE;
9873        if ("CapabilityStatement".equals(codeString))
9874          return CAPABILITYSTATEMENT;
9875        if ("CarePlan".equals(codeString))
9876          return CAREPLAN;
9877        if ("CareTeam".equals(codeString))
9878          return CARETEAM;
9879        if ("ChargeItem".equals(codeString))
9880          return CHARGEITEM;
9881        if ("ChargeItemDefinition".equals(codeString))
9882          return CHARGEITEMDEFINITION;
9883        if ("Citation".equals(codeString))
9884          return CITATION;
9885        if ("Claim".equals(codeString))
9886          return CLAIM;
9887        if ("ClaimResponse".equals(codeString))
9888          return CLAIMRESPONSE;
9889        if ("ClinicalImpression".equals(codeString))
9890          return CLINICALIMPRESSION;
9891        if ("ClinicalUseDefinition".equals(codeString))
9892          return CLINICALUSEDEFINITION;
9893        if ("CodeSystem".equals(codeString))
9894          return CODESYSTEM;
9895        if ("Communication".equals(codeString))
9896          return COMMUNICATION;
9897        if ("CommunicationRequest".equals(codeString))
9898          return COMMUNICATIONREQUEST;
9899        if ("CompartmentDefinition".equals(codeString))
9900          return COMPARTMENTDEFINITION;
9901        if ("Composition".equals(codeString))
9902          return COMPOSITION;
9903        if ("ConceptMap".equals(codeString))
9904          return CONCEPTMAP;
9905        if ("Condition".equals(codeString))
9906          return CONDITION;
9907        if ("ConditionDefinition".equals(codeString))
9908          return CONDITIONDEFINITION;
9909        if ("Consent".equals(codeString))
9910          return CONSENT;
9911        if ("Contract".equals(codeString))
9912          return CONTRACT;
9913        if ("Coverage".equals(codeString))
9914          return COVERAGE;
9915        if ("CoverageEligibilityRequest".equals(codeString))
9916          return COVERAGEELIGIBILITYREQUEST;
9917        if ("CoverageEligibilityResponse".equals(codeString))
9918          return COVERAGEELIGIBILITYRESPONSE;
9919        if ("DetectedIssue".equals(codeString))
9920          return DETECTEDISSUE;
9921        if ("Device".equals(codeString))
9922          return DEVICE;
9923        if ("DeviceDefinition".equals(codeString))
9924          return DEVICEDEFINITION;
9925        if ("DeviceDispense".equals(codeString))
9926          return DEVICEDISPENSE;
9927        if ("DeviceMetric".equals(codeString))
9928          return DEVICEMETRIC;
9929        if ("DeviceRequest".equals(codeString))
9930          return DEVICEREQUEST;
9931        if ("DeviceUsage".equals(codeString))
9932          return DEVICEUSAGE;
9933        if ("DiagnosticReport".equals(codeString))
9934          return DIAGNOSTICREPORT;
9935        if ("DocumentManifest".equals(codeString))
9936          return DOCUMENTMANIFEST;
9937        if ("DocumentReference".equals(codeString))
9938          return DOCUMENTREFERENCE;
9939        if ("Encounter".equals(codeString))
9940          return ENCOUNTER;
9941        if ("Endpoint".equals(codeString))
9942          return ENDPOINT;
9943        if ("EnrollmentRequest".equals(codeString))
9944          return ENROLLMENTREQUEST;
9945        if ("EnrollmentResponse".equals(codeString))
9946          return ENROLLMENTRESPONSE;
9947        if ("EpisodeOfCare".equals(codeString))
9948          return EPISODEOFCARE;
9949        if ("EventDefinition".equals(codeString))
9950          return EVENTDEFINITION;
9951        if ("Evidence".equals(codeString))
9952          return EVIDENCE;
9953        if ("EvidenceReport".equals(codeString))
9954          return EVIDENCEREPORT;
9955        if ("EvidenceVariable".equals(codeString))
9956          return EVIDENCEVARIABLE;
9957        if ("ExampleScenario".equals(codeString))
9958          return EXAMPLESCENARIO;
9959        if ("ExplanationOfBenefit".equals(codeString))
9960          return EXPLANATIONOFBENEFIT;
9961        if ("FamilyMemberHistory".equals(codeString))
9962          return FAMILYMEMBERHISTORY;
9963        if ("Flag".equals(codeString))
9964          return FLAG;
9965        if ("FormularyItem".equals(codeString))
9966          return FORMULARYITEM;
9967        if ("GenomicStudy".equals(codeString))
9968          return GENOMICSTUDY;
9969        if ("Goal".equals(codeString))
9970          return GOAL;
9971        if ("GraphDefinition".equals(codeString))
9972          return GRAPHDEFINITION;
9973        if ("Group".equals(codeString))
9974          return GROUP;
9975        if ("GuidanceResponse".equals(codeString))
9976          return GUIDANCERESPONSE;
9977        if ("HealthcareService".equals(codeString))
9978          return HEALTHCARESERVICE;
9979        if ("ImagingSelection".equals(codeString))
9980          return IMAGINGSELECTION;
9981        if ("ImagingStudy".equals(codeString))
9982          return IMAGINGSTUDY;
9983        if ("Immunization".equals(codeString))
9984          return IMMUNIZATION;
9985        if ("ImmunizationEvaluation".equals(codeString))
9986          return IMMUNIZATIONEVALUATION;
9987        if ("ImmunizationRecommendation".equals(codeString))
9988          return IMMUNIZATIONRECOMMENDATION;
9989        if ("ImplementationGuide".equals(codeString))
9990          return IMPLEMENTATIONGUIDE;
9991        if ("Ingredient".equals(codeString))
9992          return INGREDIENT;
9993        if ("InsurancePlan".equals(codeString))
9994          return INSURANCEPLAN;
9995        if ("InventoryReport".equals(codeString))
9996          return INVENTORYREPORT;
9997        if ("Invoice".equals(codeString))
9998          return INVOICE;
9999        if ("Library".equals(codeString))
10000          return LIBRARY;
10001        if ("Linkage".equals(codeString))
10002          return LINKAGE;
10003        if ("List".equals(codeString))
10004          return LIST;
10005        if ("Location".equals(codeString))
10006          return LOCATION;
10007        if ("ManufacturedItemDefinition".equals(codeString))
10008          return MANUFACTUREDITEMDEFINITION;
10009        if ("Measure".equals(codeString))
10010          return MEASURE;
10011        if ("MeasureReport".equals(codeString))
10012          return MEASUREREPORT;
10013        if ("Medication".equals(codeString))
10014          return MEDICATION;
10015        if ("MedicationAdministration".equals(codeString))
10016          return MEDICATIONADMINISTRATION;
10017        if ("MedicationDispense".equals(codeString))
10018          return MEDICATIONDISPENSE;
10019        if ("MedicationKnowledge".equals(codeString))
10020          return MEDICATIONKNOWLEDGE;
10021        if ("MedicationRequest".equals(codeString))
10022          return MEDICATIONREQUEST;
10023        if ("MedicationUsage".equals(codeString))
10024          return MEDICATIONUSAGE;
10025        if ("MedicationStatement".equals(codeString))
10026          return MEDICATIONUSAGE;
10027        if ("MedicinalProductDefinition".equals(codeString))
10028          return MEDICINALPRODUCTDEFINITION;
10029        if ("MessageDefinition".equals(codeString))
10030          return MESSAGEDEFINITION;
10031        if ("MessageHeader".equals(codeString))
10032          return MESSAGEHEADER;
10033        if ("MetadataResource".equals(codeString))
10034          return METADATARESOURCE;
10035        if ("MolecularSequence".equals(codeString))
10036          return MOLECULARSEQUENCE;
10037        if ("NamingSystem".equals(codeString))
10038          return NAMINGSYSTEM;
10039        if ("NutritionIntake".equals(codeString))
10040          return NUTRITIONINTAKE;
10041        if ("NutritionOrder".equals(codeString))
10042          return NUTRITIONORDER;
10043        if ("NutritionProduct".equals(codeString))
10044          return NUTRITIONPRODUCT;
10045        if ("Observation".equals(codeString))
10046          return OBSERVATION;
10047        if ("ObservationDefinition".equals(codeString))
10048          return OBSERVATIONDEFINITION;
10049        if ("OperationDefinition".equals(codeString))
10050          return OPERATIONDEFINITION;
10051        if ("OperationOutcome".equals(codeString))
10052          return OPERATIONOUTCOME;
10053        if ("Organization".equals(codeString))
10054          return ORGANIZATION;
10055        if ("OrganizationAffiliation".equals(codeString))
10056          return ORGANIZATIONAFFILIATION;
10057        if ("PackagedProductDefinition".equals(codeString))
10058          return PACKAGEDPRODUCTDEFINITION;
10059        if ("Patient".equals(codeString))
10060          return PATIENT;
10061        if ("PaymentNotice".equals(codeString))
10062          return PAYMENTNOTICE;
10063        if ("PaymentReconciliation".equals(codeString))
10064          return PAYMENTRECONCILIATION;
10065        if ("Permission".equals(codeString))
10066          return PERMISSION;
10067        if ("Person".equals(codeString))
10068          return PERSON;
10069        if ("PlanDefinition".equals(codeString))
10070          return PLANDEFINITION;
10071        if ("Practitioner".equals(codeString))
10072          return PRACTITIONER;
10073        if ("PractitionerRole".equals(codeString))
10074          return PRACTITIONERROLE;
10075        if ("Procedure".equals(codeString))
10076          return PROCEDURE;
10077        if ("Provenance".equals(codeString))
10078          return PROVENANCE;
10079        if ("Questionnaire".equals(codeString))
10080          return QUESTIONNAIRE;
10081        if ("QuestionnaireResponse".equals(codeString))
10082          return QUESTIONNAIRERESPONSE;
10083        if ("RegulatedAuthorization".equals(codeString))
10084          return REGULATEDAUTHORIZATION;
10085        if ("RelatedPerson".equals(codeString))
10086          return RELATEDPERSON;
10087        if ("RequestOrchestration".equals(codeString))
10088          return REQUESTORCHESTRATION;
10089        if ("Requirements".equals(codeString))
10090          return REQUIREMENTS;
10091        if ("ResearchStudy".equals(codeString))
10092          return RESEARCHSTUDY;
10093        if ("ResearchSubject".equals(codeString))
10094          return RESEARCHSUBJECT;
10095        if ("RiskAssessment".equals(codeString))
10096          return RISKASSESSMENT;
10097        if ("Schedule".equals(codeString))
10098          return SCHEDULE;
10099        if ("SearchParameter".equals(codeString))
10100          return SEARCHPARAMETER;
10101        if ("ServiceRequest".equals(codeString))
10102          return SERVICEREQUEST;
10103        if ("Slot".equals(codeString))
10104          return SLOT;
10105        if ("Specimen".equals(codeString))
10106          return SPECIMEN;
10107        if ("SpecimenDefinition".equals(codeString))
10108          return SPECIMENDEFINITION;
10109        if ("StructureDefinition".equals(codeString))
10110          return STRUCTUREDEFINITION;
10111        if ("StructureMap".equals(codeString))
10112          return STRUCTUREMAP;
10113        if ("Subscription".equals(codeString))
10114          return SUBSCRIPTION;
10115        if ("SubscriptionStatus".equals(codeString))
10116          return SUBSCRIPTIONSTATUS;
10117        if ("SubscriptionTopic".equals(codeString))
10118          return SUBSCRIPTIONTOPIC;
10119        if ("Substance".equals(codeString))
10120          return SUBSTANCE;
10121        if ("SubstanceDefinition".equals(codeString))
10122          return SUBSTANCEDEFINITION;
10123        if ("SubstanceNucleicAcid".equals(codeString))
10124          return SUBSTANCENUCLEICACID;
10125        if ("SubstancePolymer".equals(codeString))
10126          return SUBSTANCEPOLYMER;
10127        if ("SubstanceProtein".equals(codeString))
10128          return SUBSTANCEPROTEIN;
10129        if ("SubstanceReferenceInformation".equals(codeString))
10130          return SUBSTANCEREFERENCEINFORMATION;
10131        if ("SubstanceSourceMaterial".equals(codeString))
10132          return SUBSTANCESOURCEMATERIAL;
10133        if ("SupplyDelivery".equals(codeString))
10134          return SUPPLYDELIVERY;
10135        if ("SupplyRequest".equals(codeString))
10136          return SUPPLYREQUEST;
10137        if ("Task".equals(codeString))
10138          return TASK;
10139        if ("TerminologyCapabilities".equals(codeString))
10140          return TERMINOLOGYCAPABILITIES;
10141        if ("TestReport".equals(codeString))
10142          return TESTREPORT;
10143        if ("TestScript".equals(codeString))
10144          return TESTSCRIPT;
10145        if ("Transport".equals(codeString))
10146          return TRANSPORT;
10147        if ("ValueSet".equals(codeString))
10148          return VALUESET;
10149        if ("VerificationResult".equals(codeString))
10150          return VERIFICATIONRESULT;
10151        if ("VisionPrescription".equals(codeString))
10152          return VISIONPRESCRIPTION;
10153        if ("Parameters".equals(codeString))
10154          return PARAMETERS;
10155        if ("Any".equals(codeString))
10156          return RESOURCE;
10157        throw new FHIRException("Unknown FHIRTypes code '"+codeString+"'");
10158        }
10159        public String toCode() {
10160          switch (this) {
10161            case BASE: return "Base";
10162            case ELEMENT: return "Element";
10163            case BACKBONEELEMENT: return "BackboneElement";
10164            case DATATYPE: return "DataType";
10165            case ADDRESS: return "Address";
10166            case ANNOTATION: return "Annotation";
10167            case ATTACHMENT: return "Attachment";
10168            case AVAILABILITY: return "Availability";
10169            case BACKBONETYPE: return "BackboneType";
10170            case DOSAGE: return "Dosage";
10171            case ELEMENTDEFINITION: return "ElementDefinition";
10172            case MARKETINGSTATUS: return "MarketingStatus";
10173            case POPULATION: return "Population";
10174            case PRODUCTSHELFLIFE: return "ProductShelfLife";
10175            case TIMING: return "Timing";
10176            case CODEABLECONCEPT: return "CodeableConcept";
10177            case CODEABLEREFERENCE: return "CodeableReference";
10178            case CODING: return "Coding";
10179            case CONTACTDETAIL: return "ContactDetail";
10180            case CONTACTPOINT: return "ContactPoint";
10181            case CONTRIBUTOR: return "Contributor";
10182            case DATAREQUIREMENT: return "DataRequirement";
10183            case EXPRESSION: return "Expression";
10184            case EXTENDEDCONTACTDETAIL: return "ExtendedContactDetail";
10185            case EXTENSION: return "Extension";
10186            case HUMANNAME: return "HumanName";
10187            case IDENTIFIER: return "Identifier";
10188            case META: return "Meta";
10189            case MONETARYCOMPONENT: return "MonetaryComponent";
10190            case MONEY: return "Money";
10191            case NARRATIVE: return "Narrative";
10192            case PARAMETERDEFINITION: return "ParameterDefinition";
10193            case PERIOD: return "Period";
10194            case PRIMITIVETYPE: return "PrimitiveType";
10195            case BASE64BINARY: return "base64Binary";
10196            case BOOLEAN: return "boolean";
10197            case DATE: return "date";
10198            case DATETIME: return "dateTime";
10199            case DECIMAL: return "decimal";
10200            case INSTANT: return "instant";
10201            case INTEGER: return "integer";
10202            case POSITIVEINT: return "positiveInt";
10203            case UNSIGNEDINT: return "unsignedInt";
10204            case INTEGER64: return "integer64";
10205            case STRING: return "string";
10206            case CODE: return "code";
10207            case ID: return "id";
10208            case MARKDOWN: return "markdown";
10209            case TIME: return "time";
10210            case URI: return "uri";
10211            case CANONICAL: return "canonical";
10212            case OID: return "oid";
10213            case URL: return "url";
10214            case UUID: return "uuid";
10215            case QUANTITY: return "Quantity";
10216            case AGE: return "Age";
10217            case COUNT: return "Count";
10218            case DISTANCE: return "Distance";
10219            case DURATION: return "Duration";
10220            case RANGE: return "Range";
10221            case RATIO: return "Ratio";
10222            case RATIORANGE: return "RatioRange";
10223            case REFERENCE: return "Reference";
10224            case RELATEDARTIFACT: return "RelatedArtifact";
10225            case SAMPLEDDATA: return "SampledData";
10226            case SIGNATURE: return "Signature";
10227            case TRIGGERDEFINITION: return "TriggerDefinition";
10228            case USAGECONTEXT: return "UsageContext";
10229            case VIRTUALSERVICEDETAIL: return "VirtualServiceDetail";
10230            case XHTML: return "xhtml";
10231            case RESOURCE: return "Resource";
10232            case BINARY: return "Binary";
10233            case BUNDLE: return "Bundle";
10234            case DOMAINRESOURCE: return "DomainResource";
10235            case ACCOUNT: return "Account";
10236            case ACTIVITYDEFINITION: return "ActivityDefinition";
10237            case ACTORDEFINITION: return "ActorDefinition";
10238            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
10239            case ADVERSEEVENT: return "AdverseEvent";
10240            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
10241            case APPOINTMENT: return "Appointment";
10242            case APPOINTMENTRESPONSE: return "AppointmentResponse";
10243            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
10244            case AUDITEVENT: return "AuditEvent";
10245            case BASIC: return "Basic";
10246            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
10247            case BODYSTRUCTURE: return "BodyStructure";
10248            case CANONICALRESOURCE: return "CanonicalResource";
10249            case CAPABILITYSTATEMENT: return "CapabilityStatement";
10250            case CAREPLAN: return "CarePlan";
10251            case CARETEAM: return "CareTeam";
10252            case CHARGEITEM: return "ChargeItem";
10253            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
10254            case CITATION: return "Citation";
10255            case CLAIM: return "Claim";
10256            case CLAIMRESPONSE: return "ClaimResponse";
10257            case CLINICALIMPRESSION: return "ClinicalImpression";
10258            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
10259            case CODESYSTEM: return "CodeSystem";
10260            case COMMUNICATION: return "Communication";
10261            case COMMUNICATIONREQUEST: return "CommunicationRequest";
10262            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
10263            case COMPOSITION: return "Composition";
10264            case CONCEPTMAP: return "ConceptMap";
10265            case CONDITION: return "Condition";
10266            case CONDITIONDEFINITION: return "ConditionDefinition";
10267            case CONSENT: return "Consent";
10268            case CONTRACT: return "Contract";
10269            case COVERAGE: return "Coverage";
10270            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
10271            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
10272            case DETECTEDISSUE: return "DetectedIssue";
10273            case DEVICE: return "Device";
10274            case DEVICEDEFINITION: return "DeviceDefinition";
10275            case DEVICEDISPENSE: return "DeviceDispense";
10276            case DEVICEMETRIC: return "DeviceMetric";
10277            case DEVICEREQUEST: return "DeviceRequest";
10278            case DEVICEUSAGE: return "DeviceUsage";
10279            case DIAGNOSTICREPORT: return "DiagnosticReport";
10280            case DOCUMENTMANIFEST: return "DocumentManifest";
10281            case DOCUMENTREFERENCE: return "DocumentReference";
10282            case ENCOUNTER: return "Encounter";
10283            case ENDPOINT: return "Endpoint";
10284            case ENROLLMENTREQUEST: return "EnrollmentRequest";
10285            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
10286            case EPISODEOFCARE: return "EpisodeOfCare";
10287            case EVENTDEFINITION: return "EventDefinition";
10288            case EVIDENCE: return "Evidence";
10289            case EVIDENCEREPORT: return "EvidenceReport";
10290            case EVIDENCEVARIABLE: return "EvidenceVariable";
10291            case EXAMPLESCENARIO: return "ExampleScenario";
10292            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
10293            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
10294            case FLAG: return "Flag";
10295            case FORMULARYITEM: return "FormularyItem";
10296            case GENOMICSTUDY: return "GenomicStudy";
10297            case GOAL: return "Goal";
10298            case GRAPHDEFINITION: return "GraphDefinition";
10299            case GROUP: return "Group";
10300            case GUIDANCERESPONSE: return "GuidanceResponse";
10301            case HEALTHCARESERVICE: return "HealthcareService";
10302            case IMAGINGSELECTION: return "ImagingSelection";
10303            case IMAGINGSTUDY: return "ImagingStudy";
10304            case IMMUNIZATION: return "Immunization";
10305            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
10306            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
10307            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
10308            case INGREDIENT: return "Ingredient";
10309            case INSURANCEPLAN: return "InsurancePlan";
10310            case INVENTORYREPORT: return "InventoryReport";
10311            case INVOICE: return "Invoice";
10312            case LIBRARY: return "Library";
10313            case LINKAGE: return "Linkage";
10314            case LIST: return "List";
10315            case LOCATION: return "Location";
10316            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
10317            case MEASURE: return "Measure";
10318            case MEASUREREPORT: return "MeasureReport";
10319            case MEDICATION: return "Medication";
10320            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
10321            case MEDICATIONDISPENSE: return "MedicationDispense";
10322            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
10323            case MEDICATIONREQUEST: return "MedicationRequest";
10324            case MEDICATIONUSAGE: return "MedicationUsage";
10325            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
10326            case MESSAGEDEFINITION: return "MessageDefinition";
10327            case MESSAGEHEADER: return "MessageHeader";
10328            case METADATARESOURCE: return "MetadataResource";
10329            case MOLECULARSEQUENCE: return "MolecularSequence";
10330            case NAMINGSYSTEM: return "NamingSystem";
10331            case NUTRITIONINTAKE: return "NutritionIntake";
10332            case NUTRITIONORDER: return "NutritionOrder";
10333            case NUTRITIONPRODUCT: return "NutritionProduct";
10334            case OBSERVATION: return "Observation";
10335            case OBSERVATIONDEFINITION: return "ObservationDefinition";
10336            case OPERATIONDEFINITION: return "OperationDefinition";
10337            case OPERATIONOUTCOME: return "OperationOutcome";
10338            case ORGANIZATION: return "Organization";
10339            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
10340            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
10341            case PATIENT: return "Patient";
10342            case PAYMENTNOTICE: return "PaymentNotice";
10343            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
10344            case PERMISSION: return "Permission";
10345            case PERSON: return "Person";
10346            case PLANDEFINITION: return "PlanDefinition";
10347            case PRACTITIONER: return "Practitioner";
10348            case PRACTITIONERROLE: return "PractitionerRole";
10349            case PROCEDURE: return "Procedure";
10350            case PROVENANCE: return "Provenance";
10351            case QUESTIONNAIRE: return "Questionnaire";
10352            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
10353            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
10354            case RELATEDPERSON: return "RelatedPerson";
10355            case REQUESTORCHESTRATION: return "RequestOrchestration";
10356            case REQUIREMENTS: return "Requirements";
10357            case RESEARCHSTUDY: return "ResearchStudy";
10358            case RESEARCHSUBJECT: return "ResearchSubject";
10359            case RISKASSESSMENT: return "RiskAssessment";
10360            case SCHEDULE: return "Schedule";
10361            case SEARCHPARAMETER: return "SearchParameter";
10362            case SERVICEREQUEST: return "ServiceRequest";
10363            case SLOT: return "Slot";
10364            case SPECIMEN: return "Specimen";
10365            case SPECIMENDEFINITION: return "SpecimenDefinition";
10366            case STRUCTUREDEFINITION: return "StructureDefinition";
10367            case STRUCTUREMAP: return "StructureMap";
10368            case SUBSCRIPTION: return "Subscription";
10369            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
10370            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
10371            case SUBSTANCE: return "Substance";
10372            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
10373            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
10374            case SUBSTANCEPOLYMER: return "SubstancePolymer";
10375            case SUBSTANCEPROTEIN: return "SubstanceProtein";
10376            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
10377            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
10378            case SUPPLYDELIVERY: return "SupplyDelivery";
10379            case SUPPLYREQUEST: return "SupplyRequest";
10380            case TASK: return "Task";
10381            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
10382            case TESTREPORT: return "TestReport";
10383            case TESTSCRIPT: return "TestScript";
10384            case TRANSPORT: return "Transport";
10385            case VALUESET: return "ValueSet";
10386            case VERIFICATIONRESULT: return "VerificationResult";
10387            case VISIONPRESCRIPTION: return "VisionPrescription";
10388            case PARAMETERS: return "Parameters";
10389            case NULL: return null;
10390            default: return "?";
10391          }
10392        }
10393        public String getSystem() {
10394          switch (this) {
10395            case BASE: return "http://hl7.org/fhir/fhir-types";
10396            case ELEMENT: return "http://hl7.org/fhir/fhir-types";
10397            case BACKBONEELEMENT: return "http://hl7.org/fhir/fhir-types";
10398            case DATATYPE: return "http://hl7.org/fhir/fhir-types";
10399            case ADDRESS: return "http://hl7.org/fhir/fhir-types";
10400            case ANNOTATION: return "http://hl7.org/fhir/fhir-types";
10401            case ATTACHMENT: return "http://hl7.org/fhir/fhir-types";
10402            case AVAILABILITY: return "http://hl7.org/fhir/fhir-types";
10403            case BACKBONETYPE: return "http://hl7.org/fhir/fhir-types";
10404            case DOSAGE: return "http://hl7.org/fhir/fhir-types";
10405            case ELEMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
10406            case MARKETINGSTATUS: return "http://hl7.org/fhir/fhir-types";
10407            case POPULATION: return "http://hl7.org/fhir/fhir-types";
10408            case PRODUCTSHELFLIFE: return "http://hl7.org/fhir/fhir-types";
10409            case TIMING: return "http://hl7.org/fhir/fhir-types";
10410            case CODEABLECONCEPT: return "http://hl7.org/fhir/fhir-types";
10411            case CODEABLEREFERENCE: return "http://hl7.org/fhir/fhir-types";
10412            case CODING: return "http://hl7.org/fhir/fhir-types";
10413            case CONTACTDETAIL: return "http://hl7.org/fhir/fhir-types";
10414            case CONTACTPOINT: return "http://hl7.org/fhir/fhir-types";
10415            case CONTRIBUTOR: return "http://hl7.org/fhir/fhir-types";
10416            case DATAREQUIREMENT: return "http://hl7.org/fhir/fhir-types";
10417            case EXPRESSION: return "http://hl7.org/fhir/fhir-types";
10418            case EXTENDEDCONTACTDETAIL: return "http://hl7.org/fhir/fhir-types";
10419            case EXTENSION: return "http://hl7.org/fhir/fhir-types";
10420            case HUMANNAME: return "http://hl7.org/fhir/fhir-types";
10421            case IDENTIFIER: return "http://hl7.org/fhir/fhir-types";
10422            case META: return "http://hl7.org/fhir/fhir-types";
10423            case MONETARYCOMPONENT: return "http://hl7.org/fhir/fhir-types";
10424            case MONEY: return "http://hl7.org/fhir/fhir-types";
10425            case NARRATIVE: return "http://hl7.org/fhir/fhir-types";
10426            case PARAMETERDEFINITION: return "http://hl7.org/fhir/fhir-types";
10427            case PERIOD: return "http://hl7.org/fhir/fhir-types";
10428            case PRIMITIVETYPE: return "http://hl7.org/fhir/fhir-types";
10429            case BASE64BINARY: return "http://hl7.org/fhir/fhir-types";
10430            case BOOLEAN: return "http://hl7.org/fhir/fhir-types";
10431            case DATE: return "http://hl7.org/fhir/fhir-types";
10432            case DATETIME: return "http://hl7.org/fhir/fhir-types";
10433            case DECIMAL: return "http://hl7.org/fhir/fhir-types";
10434            case INSTANT: return "http://hl7.org/fhir/fhir-types";
10435            case INTEGER: return "http://hl7.org/fhir/fhir-types";
10436            case POSITIVEINT: return "http://hl7.org/fhir/fhir-types";
10437            case UNSIGNEDINT: return "http://hl7.org/fhir/fhir-types";
10438            case INTEGER64: return "http://hl7.org/fhir/fhir-types";
10439            case STRING: return "http://hl7.org/fhir/fhir-types";
10440            case CODE: return "http://hl7.org/fhir/fhir-types";
10441            case ID: return "http://hl7.org/fhir/fhir-types";
10442            case MARKDOWN: return "http://hl7.org/fhir/fhir-types";
10443            case TIME: return "http://hl7.org/fhir/fhir-types";
10444            case URI: return "http://hl7.org/fhir/fhir-types";
10445            case CANONICAL: return "http://hl7.org/fhir/fhir-types";
10446            case OID: return "http://hl7.org/fhir/fhir-types";
10447            case URL: return "http://hl7.org/fhir/fhir-types";
10448            case UUID: return "http://hl7.org/fhir/fhir-types";
10449            case QUANTITY: return "http://hl7.org/fhir/fhir-types";
10450            case AGE: return "http://hl7.org/fhir/fhir-types";
10451            case COUNT: return "http://hl7.org/fhir/fhir-types";
10452            case DISTANCE: return "http://hl7.org/fhir/fhir-types";
10453            case DURATION: return "http://hl7.org/fhir/fhir-types";
10454            case RANGE: return "http://hl7.org/fhir/fhir-types";
10455            case RATIO: return "http://hl7.org/fhir/fhir-types";
10456            case RATIORANGE: return "http://hl7.org/fhir/fhir-types";
10457            case REFERENCE: return "http://hl7.org/fhir/fhir-types";
10458            case RELATEDARTIFACT: return "http://hl7.org/fhir/fhir-types";
10459            case SAMPLEDDATA: return "http://hl7.org/fhir/fhir-types";
10460            case SIGNATURE: return "http://hl7.org/fhir/fhir-types";
10461            case TRIGGERDEFINITION: return "http://hl7.org/fhir/fhir-types";
10462            case USAGECONTEXT: return "http://hl7.org/fhir/fhir-types";
10463            case VIRTUALSERVICEDETAIL: return "http://hl7.org/fhir/fhir-types";
10464            case XHTML: return "http://hl7.org/fhir/fhir-types";
10465            case RESOURCE: return "http://hl7.org/fhir/fhir-types";
10466            case BINARY: return "http://hl7.org/fhir/fhir-types";
10467            case BUNDLE: return "http://hl7.org/fhir/fhir-types";
10468            case DOMAINRESOURCE: return "http://hl7.org/fhir/fhir-types";
10469            case ACCOUNT: return "http://hl7.org/fhir/fhir-types";
10470            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/fhir-types";
10471            case ACTORDEFINITION: return "http://hl7.org/fhir/fhir-types";
10472            case ADMINISTRABLEPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
10473            case ADVERSEEVENT: return "http://hl7.org/fhir/fhir-types";
10474            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/fhir-types";
10475            case APPOINTMENT: return "http://hl7.org/fhir/fhir-types";
10476            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
10477            case ARTIFACTASSESSMENT: return "http://hl7.org/fhir/fhir-types";
10478            case AUDITEVENT: return "http://hl7.org/fhir/fhir-types";
10479            case BASIC: return "http://hl7.org/fhir/fhir-types";
10480            case BIOLOGICALLYDERIVEDPRODUCT: return "http://hl7.org/fhir/fhir-types";
10481            case BODYSTRUCTURE: return "http://hl7.org/fhir/fhir-types";
10482            case CANONICALRESOURCE: return "http://hl7.org/fhir/fhir-types";
10483            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/fhir-types";
10484            case CAREPLAN: return "http://hl7.org/fhir/fhir-types";
10485            case CARETEAM: return "http://hl7.org/fhir/fhir-types";
10486            case CHARGEITEM: return "http://hl7.org/fhir/fhir-types";
10487            case CHARGEITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
10488            case CITATION: return "http://hl7.org/fhir/fhir-types";
10489            case CLAIM: return "http://hl7.org/fhir/fhir-types";
10490            case CLAIMRESPONSE: return "http://hl7.org/fhir/fhir-types";
10491            case CLINICALIMPRESSION: return "http://hl7.org/fhir/fhir-types";
10492            case CLINICALUSEDEFINITION: return "http://hl7.org/fhir/fhir-types";
10493            case CODESYSTEM: return "http://hl7.org/fhir/fhir-types";
10494            case COMMUNICATION: return "http://hl7.org/fhir/fhir-types";
10495            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
10496            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
10497            case COMPOSITION: return "http://hl7.org/fhir/fhir-types";
10498            case CONCEPTMAP: return "http://hl7.org/fhir/fhir-types";
10499            case CONDITION: return "http://hl7.org/fhir/fhir-types";
10500            case CONDITIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
10501            case CONSENT: return "http://hl7.org/fhir/fhir-types";
10502            case CONTRACT: return "http://hl7.org/fhir/fhir-types";
10503            case COVERAGE: return "http://hl7.org/fhir/fhir-types";
10504            case COVERAGEELIGIBILITYREQUEST: return "http://hl7.org/fhir/fhir-types";
10505            case COVERAGEELIGIBILITYRESPONSE: return "http://hl7.org/fhir/fhir-types";
10506            case DETECTEDISSUE: return "http://hl7.org/fhir/fhir-types";
10507            case DEVICE: return "http://hl7.org/fhir/fhir-types";
10508            case DEVICEDEFINITION: return "http://hl7.org/fhir/fhir-types";
10509            case DEVICEDISPENSE: return "http://hl7.org/fhir/fhir-types";
10510            case DEVICEMETRIC: return "http://hl7.org/fhir/fhir-types";
10511            case DEVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
10512            case DEVICEUSAGE: return "http://hl7.org/fhir/fhir-types";
10513            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/fhir-types";
10514            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/fhir-types";
10515            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/fhir-types";
10516            case ENCOUNTER: return "http://hl7.org/fhir/fhir-types";
10517            case ENDPOINT: return "http://hl7.org/fhir/fhir-types";
10518            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/fhir-types";
10519            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
10520            case EPISODEOFCARE: return "http://hl7.org/fhir/fhir-types";
10521            case EVENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
10522            case EVIDENCE: return "http://hl7.org/fhir/fhir-types";
10523            case EVIDENCEREPORT: return "http://hl7.org/fhir/fhir-types";
10524            case EVIDENCEVARIABLE: return "http://hl7.org/fhir/fhir-types";
10525            case EXAMPLESCENARIO: return "http://hl7.org/fhir/fhir-types";
10526            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/fhir-types";
10527            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/fhir-types";
10528            case FLAG: return "http://hl7.org/fhir/fhir-types";
10529            case FORMULARYITEM: return "http://hl7.org/fhir/fhir-types";
10530            case GENOMICSTUDY: return "http://hl7.org/fhir/fhir-types";
10531            case GOAL: return "http://hl7.org/fhir/fhir-types";
10532            case GRAPHDEFINITION: return "http://hl7.org/fhir/fhir-types";
10533            case GROUP: return "http://hl7.org/fhir/fhir-types";
10534            case GUIDANCERESPONSE: return "http://hl7.org/fhir/fhir-types";
10535            case HEALTHCARESERVICE: return "http://hl7.org/fhir/fhir-types";
10536            case IMAGINGSELECTION: return "http://hl7.org/fhir/fhir-types";
10537            case IMAGINGSTUDY: return "http://hl7.org/fhir/fhir-types";
10538            case IMMUNIZATION: return "http://hl7.org/fhir/fhir-types";
10539            case IMMUNIZATIONEVALUATION: return "http://hl7.org/fhir/fhir-types";
10540            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/fhir-types";
10541            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/fhir-types";
10542            case INGREDIENT: return "http://hl7.org/fhir/fhir-types";
10543            case INSURANCEPLAN: return "http://hl7.org/fhir/fhir-types";
10544            case INVENTORYREPORT: return "http://hl7.org/fhir/fhir-types";
10545            case INVOICE: return "http://hl7.org/fhir/fhir-types";
10546            case LIBRARY: return "http://hl7.org/fhir/fhir-types";
10547            case LINKAGE: return "http://hl7.org/fhir/fhir-types";
10548            case LIST: return "http://hl7.org/fhir/fhir-types";
10549            case LOCATION: return "http://hl7.org/fhir/fhir-types";
10550            case MANUFACTUREDITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
10551            case MEASURE: return "http://hl7.org/fhir/fhir-types";
10552            case MEASUREREPORT: return "http://hl7.org/fhir/fhir-types";
10553            case MEDICATION: return "http://hl7.org/fhir/fhir-types";
10554            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/fhir-types";
10555            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/fhir-types";
10556            case MEDICATIONKNOWLEDGE: return "http://hl7.org/fhir/fhir-types";
10557            case MEDICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
10558            case MEDICATIONUSAGE: return "http://hl7.org/fhir/fhir-types";
10559            case MEDICINALPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
10560            case MESSAGEDEFINITION: return "http://hl7.org/fhir/fhir-types";
10561            case MESSAGEHEADER: return "http://hl7.org/fhir/fhir-types";
10562            case METADATARESOURCE: return "http://hl7.org/fhir/fhir-types";
10563            case MOLECULARSEQUENCE: return "http://hl7.org/fhir/fhir-types";
10564            case NAMINGSYSTEM: return "http://hl7.org/fhir/fhir-types";
10565            case NUTRITIONINTAKE: return "http://hl7.org/fhir/fhir-types";
10566            case NUTRITIONORDER: return "http://hl7.org/fhir/fhir-types";
10567            case NUTRITIONPRODUCT: return "http://hl7.org/fhir/fhir-types";
10568            case OBSERVATION: return "http://hl7.org/fhir/fhir-types";
10569            case OBSERVATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
10570            case OPERATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
10571            case OPERATIONOUTCOME: return "http://hl7.org/fhir/fhir-types";
10572            case ORGANIZATION: return "http://hl7.org/fhir/fhir-types";
10573            case ORGANIZATIONAFFILIATION: return "http://hl7.org/fhir/fhir-types";
10574            case PACKAGEDPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
10575            case PATIENT: return "http://hl7.org/fhir/fhir-types";
10576            case PAYMENTNOTICE: return "http://hl7.org/fhir/fhir-types";
10577            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/fhir-types";
10578            case PERMISSION: return "http://hl7.org/fhir/fhir-types";
10579            case PERSON: return "http://hl7.org/fhir/fhir-types";
10580            case PLANDEFINITION: return "http://hl7.org/fhir/fhir-types";
10581            case PRACTITIONER: return "http://hl7.org/fhir/fhir-types";
10582            case PRACTITIONERROLE: return "http://hl7.org/fhir/fhir-types";
10583            case PROCEDURE: return "http://hl7.org/fhir/fhir-types";
10584            case PROVENANCE: return "http://hl7.org/fhir/fhir-types";
10585            case QUESTIONNAIRE: return "http://hl7.org/fhir/fhir-types";
10586            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/fhir-types";
10587            case REGULATEDAUTHORIZATION: return "http://hl7.org/fhir/fhir-types";
10588            case RELATEDPERSON: return "http://hl7.org/fhir/fhir-types";
10589            case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types";
10590            case REQUIREMENTS: return "http://hl7.org/fhir/fhir-types";
10591            case RESEARCHSTUDY: return "http://hl7.org/fhir/fhir-types";
10592            case RESEARCHSUBJECT: return "http://hl7.org/fhir/fhir-types";
10593            case RISKASSESSMENT: return "http://hl7.org/fhir/fhir-types";
10594            case SCHEDULE: return "http://hl7.org/fhir/fhir-types";
10595            case SEARCHPARAMETER: return "http://hl7.org/fhir/fhir-types";
10596            case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
10597            case SLOT: return "http://hl7.org/fhir/fhir-types";
10598            case SPECIMEN: return "http://hl7.org/fhir/fhir-types";
10599            case SPECIMENDEFINITION: return "http://hl7.org/fhir/fhir-types";
10600            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/fhir-types";
10601            case STRUCTUREMAP: return "http://hl7.org/fhir/fhir-types";
10602            case SUBSCRIPTION: return "http://hl7.org/fhir/fhir-types";
10603            case SUBSCRIPTIONSTATUS: return "http://hl7.org/fhir/fhir-types";
10604            case SUBSCRIPTIONTOPIC: return "http://hl7.org/fhir/fhir-types";
10605            case SUBSTANCE: return "http://hl7.org/fhir/fhir-types";
10606            case SUBSTANCEDEFINITION: return "http://hl7.org/fhir/fhir-types";
10607            case SUBSTANCENUCLEICACID: return "http://hl7.org/fhir/fhir-types";
10608            case SUBSTANCEPOLYMER: return "http://hl7.org/fhir/fhir-types";
10609            case SUBSTANCEPROTEIN: return "http://hl7.org/fhir/fhir-types";
10610            case SUBSTANCEREFERENCEINFORMATION: return "http://hl7.org/fhir/fhir-types";
10611            case SUBSTANCESOURCEMATERIAL: return "http://hl7.org/fhir/fhir-types";
10612            case SUPPLYDELIVERY: return "http://hl7.org/fhir/fhir-types";
10613            case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types";
10614            case TASK: return "http://hl7.org/fhir/fhir-types";
10615            case TERMINOLOGYCAPABILITIES: return "http://hl7.org/fhir/fhir-types";
10616            case TESTREPORT: return "http://hl7.org/fhir/fhir-types";
10617            case TESTSCRIPT: return "http://hl7.org/fhir/fhir-types";
10618            case TRANSPORT: return "http://hl7.org/fhir/fhir-types";
10619            case VALUESET: return "http://hl7.org/fhir/fhir-types";
10620            case VERIFICATIONRESULT: return "http://hl7.org/fhir/fhir-types";
10621            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types";
10622            case PARAMETERS: return "http://hl7.org/fhir/fhir-types";
10623            case NULL: return null;
10624            default: return "?";
10625          }
10626        }
10627        public String getDefinition() {
10628          switch (this) {
10629            case BASE: return "Base Type: Base definition for all types defined in FHIR type system.";
10630            case ELEMENT: return "Element Type: Base definition for all elements in a resource.";
10631            case BACKBONEELEMENT: return "BackboneElement Type: Base definition for all elements that are defined inside a resource - but not those in a data type.";
10632            case DATATYPE: return "DataType Type: The base class for all re-useable types defined as part of the FHIR Specification.";
10633            case ADDRESS: return "Address Type: 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.\nThe ISO21090-codedString may be used to provide a coded representation of the contents of strings in an Address.";
10634            case ANNOTATION: return "Annotation Type: A  text note which also  contains information about who made the statement and when.";
10635            case ATTACHMENT: return "Attachment Type: For referring to data content defined in other formats.";
10636            case AVAILABILITY: return "Availability Type: Availability data for an {item}.";
10637            case BACKBONETYPE: return "BackboneType Type: Base definition for the few data types that are allowed to carry modifier extensions.";
10638            case DOSAGE: return "Dosage Type: Indicates how the medication is/was taken or should be taken by the patient.";
10639            case ELEMENTDEFINITION: return "ElementDefinition Type: Captures constraints on each element within the resource, profile, or extension.";
10640            case MARKETINGSTATUS: return "MarketingStatus Type: The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.";
10641            case POPULATION: return "Population Type: A populatioof people with some set of grouping criteria.";
10642            case PRODUCTSHELFLIFE: return "ProductShelfLife Type: The shelf-life and storage information for a medicinal product item or container can be described using this class.";
10643            case TIMING: return "Timing Type: 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.";
10644            case CODEABLECONCEPT: return "CodeableConcept Type: A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
10645            case CODEABLEREFERENCE: return "CodeableReference Type: A reference to a resource (by instance), or instead, a reference to a concept defined in a terminology or ontology (by class).";
10646            case CODING: return "Coding Type: A reference to a code defined by a terminology system.";
10647            case CONTACTDETAIL: return "ContactDetail Type: Specifies contact information for a person or organization.";
10648            case CONTACTPOINT: return "ContactPoint Type: Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
10649            case CONTRIBUTOR: return "Contributor Type: A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
10650            case DATAREQUIREMENT: return "DataRequirement Type: Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.";
10651            case EXPRESSION: return "Expression Type: A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used.";
10652            case EXTENDEDCONTACTDETAIL: return "ExtendedContactDetail Type: Specifies contact information for a specific purpose over a period of time, might be handled/monitored by a specific named person or organization.";
10653            case EXTENSION: return "Extension Type: Optional Extension Element - found in all resources.";
10654            case HUMANNAME: return "HumanName Type: A name, normally of a human, that can be used for other living entities (eg. animals but not organizations) that have been assigned names by a human and may need the use of name parts or the need for usage information.";
10655            case IDENTIFIER: return "Identifier Type: An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.";
10656            case META: return "Meta Type: The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.";
10657            case MONETARYCOMPONENT: return "MonetaryComponent Type: Availability data for an {item}.";
10658            case MONEY: return "Money Type: An amount of economic utility in some recognized currency.";
10659            case NARRATIVE: return "Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.";
10660            case PARAMETERDEFINITION: return "ParameterDefinition Type: 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.";
10661            case PERIOD: return "Period Type: A time period defined by a start and end date and optionally time.";
10662            case PRIMITIVETYPE: return "PrimitiveType Type: The base type for all re-useable types defined that have a simple property.";
10663            case BASE64BINARY: return "base64Binary Type: A stream of bytes";
10664            case BOOLEAN: return "boolean Type: Value of \"true\" or \"false\"";
10665            case DATE: return "date Type: A date or partial date (e.g. just year or year + month). There is no UTC offset. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
10666            case DATETIME: return "dateTime Type: A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a UTC offset 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.";
10667            case DECIMAL: return "decimal Type: A rational number with implicit precision";
10668            case INSTANT: return "instant Type: An instant in time - known at least to the second";
10669            case INTEGER: return "integer Type: A whole number";
10670            case POSITIVEINT: return "positiveInt type: An integer with a value that is positive (e.g. >0)";
10671            case UNSIGNEDINT: return "unsignedInt type: An integer with a value that is not negative (e.g. >= 0)";
10672            case INTEGER64: return "integer64 Type: A very large whole number";
10673            case STRING: return "string Type: A sequence of Unicode characters";
10674            case CODE: return "code type: 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";
10675            case ID: return "id type: 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.";
10676            case MARKDOWN: return "markdown type: A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine";
10677            case TIME: return "time Type: A time during the day, with no date specified";
10678            case URI: return "uri Type: String of characters used to identify a name or a resource";
10679            case CANONICAL: return "canonical type: A URI that is a reference to a canonical URL on a FHIR resource";
10680            case OID: return "oid type: An OID represented as a URI";
10681            case URL: return "url type: A URI that is a literal reference";
10682            case UUID: return "uuid type: A UUID, represented as a URI";
10683            case QUANTITY: return "Quantity Type: 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.";
10684            case AGE: return "Age Type: A duration of time during which an organism (or a process) has existed.";
10685            case COUNT: return "Count Type: 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.";
10686            case DISTANCE: return "Distance Type: A length - a value with a unit that is a physical distance.";
10687            case DURATION: return "Duration Type: A length of time.";
10688            case RANGE: return "Range Type: A set of ordered Quantities defined by a low and high limit.";
10689            case RATIO: return "Ratio Type: A relationship of two Quantity values - expressed as a numerator and a denominator.";
10690            case RATIORANGE: return "RatioRange Type: A range of ratios expressed as a low and high numerator and a denominator.";
10691            case REFERENCE: return "Reference Type: A reference from one resource to another.";
10692            case RELATEDARTIFACT: return "RelatedArtifact Type: Related artifacts such as additional documentation, justification, or bibliographic references.";
10693            case SAMPLEDDATA: return "SampledData Type: A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
10694            case SIGNATURE: return "Signature Type: A signature along with supporting context. The signature may be a digital signature that is cryptographic in nature, or some other signature acceptable to the domain. This other signature may be as simple as a graphical image representing a hand-written signature, or a signature ceremony Different signature approaches have different utilities.";
10695            case TRIGGERDEFINITION: return "TriggerDefinition Type: A description of a triggering event. Triggering events can be named events, data events, or periodic, as determined by the type element.";
10696            case USAGECONTEXT: return "UsageContext Type: 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).";
10697            case VIRTUALSERVICEDETAIL: return "VirtualServiceDetail Type: Virtual Service Contact Details.";
10698            case XHTML: return "xhtml Type definition";
10699            case RESOURCE: return "This is the base resource type for everything.";
10700            case BINARY: return "A resource that represents the data of a single raw artifact as digital content accessible in its native format.  A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
10701            case BUNDLE: return "A container for a collection of resources.";
10702            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
10703            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.";
10704            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.";
10705            case ACTORDEFINITION: return "The ActorDefinition resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.";
10706            case ADMINISTRABLEPRODUCTDEFINITION: return "A medicinal product in the final form which is suitable for administering to a patient (after any mixing of multiple components, dissolution etc. has been performed).";
10707            case ADVERSEEVENT: return "An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research subject. The unintended effects may require additional monitoring, treatment, hospitalization, or may result in death. The AdverseEvent resource also extends to potential or avoided events that could have had such effects. There are two major domains where the AdverseEvent resource is expected to be used. One is in clinical care reported adverse events and the other is in reporting adverse events in clinical  research trial management. Given the differences between these two concepts, we recommend consulting the domain specific implementation guides when implementing the AdverseEvent Resource. The implementation guides include specific extensions, value sets and constraints.";
10708            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
10709            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).";
10710            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
10711            case ARTIFACTASSESSMENT: return "This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.";
10712            case AUDITEVENT: return "A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.";
10713            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.";
10714            case BIOLOGICALLYDERIVEDPRODUCT: return "A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.";
10715            case BODYSTRUCTURE: return "Record details about an anatomical structure.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
10716            case CANONICALRESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
10717            case CAPABILITYSTATEMENT: return "A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server or Client for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
10718            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.";
10719            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.";
10720            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.";
10721            case CHARGEITEMDEFINITION: return "The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system.";
10722            case CITATION: return "The Citation Resource enables reference to any knowledge artifact for purposes of identification and attribution. The Citation Resource supports existing reference structures and developing publication practices such as versioning, expressing complex contributorship roles, and referencing computable resources.";
10723            case CLAIM: return "A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.";
10724            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
10725            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.";
10726            case CLINICALUSEDEFINITION: return "A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.";
10727            case CODESYSTEM: return "The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.";
10728            case COMMUNICATION: return "A clinical or business level record of information being transmitted or shared; e.g. an alert that was sent to a responsible provider, a public health agency communication to a provider/reporter in response to a case report for a reportable condition.";
10729            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.";
10730            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
10731            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).";
10732            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.";
10733            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
10734            case CONDITIONDEFINITION: return "A definition of a condition and information relevant to managing it.";
10735            case CONSENT: return "A record of a healthcare consumer’s  choices  or choices made on their behalf by a third party, 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.";
10736            case CONTRACT: return "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.";
10737            case COVERAGE: return "Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.";
10738            case COVERAGEELIGIBILITYREQUEST: return "The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.";
10739            case COVERAGEELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.";
10740            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.";
10741            case DEVICE: return "This resource describes the properties (regulated, has real time clock, etc.), adminstrative (manufacturer name, model number, serial number, firmware, etc), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serail number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element.";
10742            case DEVICEDEFINITION: return "This is a specialized resource that defines the characteristics and capabilities of a device.";
10743            case DEVICEDISPENSE: return "Indicates that a device is to be or has been dispensed for a named person/patient.  This includes a description of the product (supply) provided and the instructions for using the device.";
10744            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
10745            case DEVICEREQUEST: return "Represents a request a device to be provided to a specific patient. The device may be an implantable device to be subsequently implanted, or an external assistive device, such as a walker, to be delivered and subsequently be used.";
10746            case DEVICEUSAGE: return "A record of a device being used by a patient where the record is the result of a report from the patient or a clinician.";
10747            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic tests performed on patients, groups of patients, products, substances, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports. The report also includes non-clinical context such as batch analysis and stability reporting of products and substances.";
10748            case DOCUMENTMANIFEST: return "A collection of documents compiled for a purpose together with metadata that applies to the collection.";
10749            case DOCUMENTREFERENCE: return "A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this \"document\" encompasses *any* serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare.  The DocumentReference resource provides metadata about the document so that the document can be discovered and managed.  The actual content may be inline base64 encoded data or provided by direct reference.";
10750            case ENCOUNTER: return "An interaction between healthcare provider(s), and/or patient(s) for the purpose of providing healthcare service(s) or assessing the health status of patient(s).";
10751            case ENDPOINT: return "The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.";
10752            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
10753            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.";
10754            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.";
10755            case EVENTDEFINITION: return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
10756            case EVIDENCE: return "The Evidence Resource provides a machine-interpretable expression of an evidence concept including the evidence variables (e.g., population, exposures/interventions, comparators, outcomes, measured variables, confounding variables), the statistics, and the certainty of this evidence.";
10757            case EVIDENCEREPORT: return "The EvidenceReport Resource is a specialized container for a collection of resources and codeable concepts, adapted to support compositions of Evidence, EvidenceVariable, and Citation resources and related concepts.";
10758            case EVIDENCEVARIABLE: return "The EvidenceVariable resource describes an element that knowledge (Evidence) is about.";
10759            case EXAMPLESCENARIO: return "A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.";
10760            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.";
10761            case FAMILYMEMBERHISTORY: return "Significant health conditions for a person related to the patient relevant in the context of care for the patient.";
10762            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
10763            case FORMULARYITEM: return "This resource describes a product or service that is available through a program and includes the conditions and constraints of availability.  All of the information in this resource is specific to the inclusion of the item in the formulary and is not inherent to the item itself.";
10764            case GENOMICSTUDY: return "A Genomic Study is a set of analysis performed to analyze and generate genomic data.";
10765            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.";
10766            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.";
10767            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.";
10768            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.";
10769            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location or in a catalog.  In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices.";
10770            case IMAGINGSELECTION: return "A selection of DICOM SOP instances and/or frames within a single Study and Series. This might include additional specifics such as an image region, an Observation UID or a Segmentation Number, allowing linkage to an Observation Resource or transferring this information along with the ImagingStudy Resource.";
10771            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.";
10772            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.";
10773            case IMMUNIZATIONEVALUATION: return "Describes a comparison of an immunization event against published recommendations to determine if the administration is \"valid\" in relation to those  recommendations.";
10774            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.";
10775            case IMPLEMENTATIONGUIDE: return "A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.";
10776            case INGREDIENT: return "An ingredient of a manufactured item or pharmaceutical product.";
10777            case INSURANCEPLAN: return "Details of a Health Insurance product/plan provided by an organization.";
10778            case INVENTORYREPORT: return "A report of inventory or stock items.";
10779            case INVOICE: return "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.";
10780            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.";
10781            case LINKAGE: return "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\".";
10782            case LIST: return "A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.";
10783            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.";
10784            case MANUFACTUREDITEMDEFINITION: return "The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.";
10785            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
10786            case MEASUREREPORT: return "The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.";
10787            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.";
10788            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.";
10789            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.";
10790            case MEDICATIONKNOWLEDGE: return "Information about a medication that is used to support knowledge.";
10791            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.";
10792            case MEDICATIONUSAGE: return "A record of a medication that is being consumed by a patient.   A MedicationUsage may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. \n\nThe primary difference between a medicationusage and a medicationadministration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medicationusage 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 Usage 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.";
10793            case MEDICINALPRODUCTDEFINITION: return "Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs, to support prescribing, adverse events management etc.).";
10794            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.";
10795            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.";
10796            case METADATARESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
10797            case MOLECULARSEQUENCE: return "Representation of a molecular sequence.";
10798            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.";
10799            case NUTRITIONINTAKE: return "A record of food or fluid that is being consumed by a patient.  A NutritionIntake may indicate that the patient may be consuming the food or fluid now or has consumed the food or fluid in the past.  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 or through an app that tracks food or fluids consumed.   The consumption information may come from sources such as the patient's memory, from a nutrition label,  or from a clinician documenting observed intake.";
10800            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
10801            case NUTRITIONPRODUCT: return "A food or supplement that is consumed by patients.";
10802            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
10803            case OBSERVATIONDEFINITION: return "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.";
10804            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
10805            case OPERATIONOUTCOME: return "A collection of error, warning, or information messages that result from a system action.";
10806            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, payer/insurer, etc.";
10807            case ORGANIZATIONAFFILIATION: return "Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.";
10808            case PACKAGEDPRODUCTDEFINITION: return "A medically related item or items, in a container or package.";
10809            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
10810            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
10811            case PAYMENTRECONCILIATION: return "This resource provides the details including amount of a payment and allocates the payment items being paid.";
10812            case PERMISSION: return "Permission resource holds access rules for a given data and context.";
10813            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
10814            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 and non-clinical artifacts such as clinical decision support rules, order sets, protocols, and drug quality specifications.";
10815            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare or related services.";
10816            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.";
10817            case PROCEDURE: return "An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy.  This can be a quality or safety inspection for a location, organization, or device.  This can be an accreditation procedure on a practitioner for licensing.";
10818            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.";
10819            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.";
10820            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.";
10821            case REGULATEDAUTHORIZATION: return "Regulatory approval, clearance or licencing related to a regulated product, treatment, facility or activity that is cited in a guidance, regulation, rule or legislative act. An example is Market Authorization relating to a Medicinal Product.";
10822            case RELATEDPERSON: return "Information about a person that is involved in a patient's health or the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
10823            case REQUESTORCHESTRATION: return "A set of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\".";
10824            case REQUIREMENTS: return "The Requirements resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.";
10825            case RESEARCHSTUDY: return "A scientific study of nature that sometimes includes processes involved in health and disease. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future.";
10826            case RESEARCHSUBJECT: return "A physical entity which is the primary unit of operational and/or administrative interest in a study.";
10827            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
10828            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
10829            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
10830            case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
10831            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
10832            case SPECIMEN: return "A sample to be used for analysis.";
10833            case SPECIMENDEFINITION: return "A kind of specimen with associated set of requirements.";
10834            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.";
10835            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
10836            case SUBSCRIPTION: return "The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.";
10837            case SUBSCRIPTIONSTATUS: return "The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.";
10838            case SUBSCRIPTIONTOPIC: return "Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.";
10839            case SUBSTANCE: return "A homogeneous material with a definite composition.";
10840            case SUBSTANCEDEFINITION: return "The detailed description of a substance, typically at a level beyond what is used for prescribing.";
10841            case SUBSTANCENUCLEICACID: return "Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5’-3’ direction.";
10842            case SUBSTANCEPOLYMER: return "Properties of a substance specific to it being a polymer.";
10843            case SUBSTANCEPROTEIN: return "A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators.";
10844            case SUBSTANCEREFERENCEINFORMATION: return "Todo.";
10845            case SUBSTANCESOURCEMATERIAL: return "Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex.";
10846            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
10847            case SUPPLYREQUEST: return "A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.";
10848            case TASK: return "A task to be performed.";
10849            case TERMINOLOGYCAPABILITIES: return "A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
10850            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
10851            case TESTSCRIPT: return "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.";
10852            case TRANSPORT: return "Record of transport.";
10853            case VALUESET: return "A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[[CodeSystem]]] definitions and their use in [coded elements](terminologies.html).";
10854            case VERIFICATIONRESULT: return "Describes validation requirements, source(s), status and dates for one or more elements.";
10855            case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient.";
10856            case PARAMETERS: return "This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment).  It is not persisted or allowed to be referenced by other resources except as described in the definition of the Parameters resource.";
10857            case NULL: return null;
10858            default: return "?";
10859          }
10860        }
10861        public String getDisplay() {
10862          switch (this) {
10863            case BASE: return "Base";
10864            case ELEMENT: return "Element";
10865            case BACKBONEELEMENT: return "BackboneElement";
10866            case DATATYPE: return "DataType";
10867            case ADDRESS: return "Address";
10868            case ANNOTATION: return "Annotation";
10869            case ATTACHMENT: return "Attachment";
10870            case AVAILABILITY: return "Availability";
10871            case BACKBONETYPE: return "BackboneType";
10872            case DOSAGE: return "Dosage";
10873            case ELEMENTDEFINITION: return "ElementDefinition";
10874            case MARKETINGSTATUS: return "MarketingStatus";
10875            case POPULATION: return "Population";
10876            case PRODUCTSHELFLIFE: return "ProductShelfLife";
10877            case TIMING: return "Timing";
10878            case CODEABLECONCEPT: return "CodeableConcept";
10879            case CODEABLEREFERENCE: return "CodeableReference";
10880            case CODING: return "Coding";
10881            case CONTACTDETAIL: return "ContactDetail";
10882            case CONTACTPOINT: return "ContactPoint";
10883            case CONTRIBUTOR: return "Contributor";
10884            case DATAREQUIREMENT: return "DataRequirement";
10885            case EXPRESSION: return "Expression";
10886            case EXTENDEDCONTACTDETAIL: return "ExtendedContactDetail";
10887            case EXTENSION: return "Extension";
10888            case HUMANNAME: return "HumanName";
10889            case IDENTIFIER: return "Identifier";
10890            case META: return "Meta";
10891            case MONETARYCOMPONENT: return "MonetaryComponent";
10892            case MONEY: return "Money";
10893            case NARRATIVE: return "Narrative";
10894            case PARAMETERDEFINITION: return "ParameterDefinition";
10895            case PERIOD: return "Period";
10896            case PRIMITIVETYPE: return "PrimitiveType";
10897            case BASE64BINARY: return "base64Binary";
10898            case BOOLEAN: return "boolean";
10899            case DATE: return "date";
10900            case DATETIME: return "dateTime";
10901            case DECIMAL: return "decimal";
10902            case INSTANT: return "instant";
10903            case INTEGER: return "integer";
10904            case POSITIVEINT: return "positiveInt";
10905            case UNSIGNEDINT: return "unsignedInt";
10906            case INTEGER64: return "integer64";
10907            case STRING: return "string";
10908            case CODE: return "code";
10909            case ID: return "id";
10910            case MARKDOWN: return "markdown";
10911            case TIME: return "time";
10912            case URI: return "uri";
10913            case CANONICAL: return "canonical";
10914            case OID: return "oid";
10915            case URL: return "url";
10916            case UUID: return "uuid";
10917            case QUANTITY: return "Quantity";
10918            case AGE: return "Age";
10919            case COUNT: return "Count";
10920            case DISTANCE: return "Distance";
10921            case DURATION: return "Duration";
10922            case RANGE: return "Range";
10923            case RATIO: return "Ratio";
10924            case RATIORANGE: return "RatioRange";
10925            case REFERENCE: return "Reference";
10926            case RELATEDARTIFACT: return "RelatedArtifact";
10927            case SAMPLEDDATA: return "SampledData";
10928            case SIGNATURE: return "Signature";
10929            case TRIGGERDEFINITION: return "TriggerDefinition";
10930            case USAGECONTEXT: return "UsageContext";
10931            case VIRTUALSERVICEDETAIL: return "VirtualServiceDetail";
10932            case XHTML: return "xhtml";
10933            case RESOURCE: return "Resource";
10934            case BINARY: return "Binary";
10935            case BUNDLE: return "Bundle";
10936            case DOMAINRESOURCE: return "DomainResource";
10937            case ACCOUNT: return "Account";
10938            case ACTIVITYDEFINITION: return "ActivityDefinition";
10939            case ACTORDEFINITION: return "ActorDefinition";
10940            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
10941            case ADVERSEEVENT: return "AdverseEvent";
10942            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
10943            case APPOINTMENT: return "Appointment";
10944            case APPOINTMENTRESPONSE: return "AppointmentResponse";
10945            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
10946            case AUDITEVENT: return "AuditEvent";
10947            case BASIC: return "Basic";
10948            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
10949            case BODYSTRUCTURE: return "BodyStructure";
10950            case CANONICALRESOURCE: return "CanonicalResource";
10951            case CAPABILITYSTATEMENT: return "CapabilityStatement";
10952            case CAREPLAN: return "CarePlan";
10953            case CARETEAM: return "CareTeam";
10954            case CHARGEITEM: return "ChargeItem";
10955            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
10956            case CITATION: return "Citation";
10957            case CLAIM: return "Claim";
10958            case CLAIMRESPONSE: return "ClaimResponse";
10959            case CLINICALIMPRESSION: return "ClinicalImpression";
10960            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
10961            case CODESYSTEM: return "CodeSystem";
10962            case COMMUNICATION: return "Communication";
10963            case COMMUNICATIONREQUEST: return "CommunicationRequest";
10964            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
10965            case COMPOSITION: return "Composition";
10966            case CONCEPTMAP: return "ConceptMap";
10967            case CONDITION: return "Condition";
10968            case CONDITIONDEFINITION: return "ConditionDefinition";
10969            case CONSENT: return "Consent";
10970            case CONTRACT: return "Contract";
10971            case COVERAGE: return "Coverage";
10972            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
10973            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
10974            case DETECTEDISSUE: return "DetectedIssue";
10975            case DEVICE: return "Device";
10976            case DEVICEDEFINITION: return "DeviceDefinition";
10977            case DEVICEDISPENSE: return "DeviceDispense";
10978            case DEVICEMETRIC: return "DeviceMetric";
10979            case DEVICEREQUEST: return "DeviceRequest";
10980            case DEVICEUSAGE: return "DeviceUsage";
10981            case DIAGNOSTICREPORT: return "DiagnosticReport";
10982            case DOCUMENTMANIFEST: return "DocumentManifest";
10983            case DOCUMENTREFERENCE: return "DocumentReference";
10984            case ENCOUNTER: return "Encounter";
10985            case ENDPOINT: return "Endpoint";
10986            case ENROLLMENTREQUEST: return "EnrollmentRequest";
10987            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
10988            case EPISODEOFCARE: return "EpisodeOfCare";
10989            case EVENTDEFINITION: return "EventDefinition";
10990            case EVIDENCE: return "Evidence";
10991            case EVIDENCEREPORT: return "EvidenceReport";
10992            case EVIDENCEVARIABLE: return "EvidenceVariable";
10993            case EXAMPLESCENARIO: return "ExampleScenario";
10994            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
10995            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
10996            case FLAG: return "Flag";
10997            case FORMULARYITEM: return "FormularyItem";
10998            case GENOMICSTUDY: return "GenomicStudy";
10999            case GOAL: return "Goal";
11000            case GRAPHDEFINITION: return "GraphDefinition";
11001            case GROUP: return "Group";
11002            case GUIDANCERESPONSE: return "GuidanceResponse";
11003            case HEALTHCARESERVICE: return "HealthcareService";
11004            case IMAGINGSELECTION: return "ImagingSelection";
11005            case IMAGINGSTUDY: return "ImagingStudy";
11006            case IMMUNIZATION: return "Immunization";
11007            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
11008            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
11009            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
11010            case INGREDIENT: return "Ingredient";
11011            case INSURANCEPLAN: return "InsurancePlan";
11012            case INVENTORYREPORT: return "InventoryReport";
11013            case INVOICE: return "Invoice";
11014            case LIBRARY: return "Library";
11015            case LINKAGE: return "Linkage";
11016            case LIST: return "List";
11017            case LOCATION: return "Location";
11018            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
11019            case MEASURE: return "Measure";
11020            case MEASUREREPORT: return "MeasureReport";
11021            case MEDICATION: return "Medication";
11022            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
11023            case MEDICATIONDISPENSE: return "MedicationDispense";
11024            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
11025            case MEDICATIONREQUEST: return "MedicationRequest";
11026            case MEDICATIONUSAGE: return "MedicationUsage";
11027            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
11028            case MESSAGEDEFINITION: return "MessageDefinition";
11029            case MESSAGEHEADER: return "MessageHeader";
11030            case METADATARESOURCE: return "MetadataResource";
11031            case MOLECULARSEQUENCE: return "MolecularSequence";
11032            case NAMINGSYSTEM: return "NamingSystem";
11033            case NUTRITIONINTAKE: return "NutritionIntake";
11034            case NUTRITIONORDER: return "NutritionOrder";
11035            case NUTRITIONPRODUCT: return "NutritionProduct";
11036            case OBSERVATION: return "Observation";
11037            case OBSERVATIONDEFINITION: return "ObservationDefinition";
11038            case OPERATIONDEFINITION: return "OperationDefinition";
11039            case OPERATIONOUTCOME: return "OperationOutcome";
11040            case ORGANIZATION: return "Organization";
11041            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
11042            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
11043            case PATIENT: return "Patient";
11044            case PAYMENTNOTICE: return "PaymentNotice";
11045            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
11046            case PERMISSION: return "Permission";
11047            case PERSON: return "Person";
11048            case PLANDEFINITION: return "PlanDefinition";
11049            case PRACTITIONER: return "Practitioner";
11050            case PRACTITIONERROLE: return "PractitionerRole";
11051            case PROCEDURE: return "Procedure";
11052            case PROVENANCE: return "Provenance";
11053            case QUESTIONNAIRE: return "Questionnaire";
11054            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
11055            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
11056            case RELATEDPERSON: return "RelatedPerson";
11057            case REQUESTORCHESTRATION: return "RequestOrchestration";
11058            case REQUIREMENTS: return "Requirements";
11059            case RESEARCHSTUDY: return "ResearchStudy";
11060            case RESEARCHSUBJECT: return "ResearchSubject";
11061            case RISKASSESSMENT: return "RiskAssessment";
11062            case SCHEDULE: return "Schedule";
11063            case SEARCHPARAMETER: return "SearchParameter";
11064            case SERVICEREQUEST: return "ServiceRequest";
11065            case SLOT: return "Slot";
11066            case SPECIMEN: return "Specimen";
11067            case SPECIMENDEFINITION: return "SpecimenDefinition";
11068            case STRUCTUREDEFINITION: return "StructureDefinition";
11069            case STRUCTUREMAP: return "StructureMap";
11070            case SUBSCRIPTION: return "Subscription";
11071            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
11072            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
11073            case SUBSTANCE: return "Substance";
11074            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
11075            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
11076            case SUBSTANCEPOLYMER: return "SubstancePolymer";
11077            case SUBSTANCEPROTEIN: return "SubstanceProtein";
11078            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
11079            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
11080            case SUPPLYDELIVERY: return "SupplyDelivery";
11081            case SUPPLYREQUEST: return "SupplyRequest";
11082            case TASK: return "Task";
11083            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
11084            case TESTREPORT: return "TestReport";
11085            case TESTSCRIPT: return "TestScript";
11086            case TRANSPORT: return "Transport";
11087            case VALUESET: return "ValueSet";
11088            case VERIFICATIONRESULT: return "VerificationResult";
11089            case VISIONPRESCRIPTION: return "VisionPrescription";
11090            case PARAMETERS: return "Parameters";
11091            case NULL: return null;
11092            default: return "?";
11093          }
11094        }
11095    }
11096
11097  public static class FHIRTypesEnumFactory implements EnumFactory<FHIRTypes> {
11098    public FHIRTypes fromCode(String codeString) throws IllegalArgumentException {
11099      if (codeString == null || "".equals(codeString))
11100            if (codeString == null || "".equals(codeString))
11101                return null;
11102        if ("Base".equals(codeString))
11103          return FHIRTypes.BASE;
11104        if ("Element".equals(codeString))
11105          return FHIRTypes.ELEMENT;
11106        if ("BackboneElement".equals(codeString))
11107          return FHIRTypes.BACKBONEELEMENT;
11108        if ("DataType".equals(codeString))
11109          return FHIRTypes.DATATYPE;
11110        if ("Address".equals(codeString))
11111          return FHIRTypes.ADDRESS;
11112        if ("Annotation".equals(codeString))
11113          return FHIRTypes.ANNOTATION;
11114        if ("Attachment".equals(codeString))
11115          return FHIRTypes.ATTACHMENT;
11116        if ("Availability".equals(codeString))
11117          return FHIRTypes.AVAILABILITY;
11118        if ("BackboneType".equals(codeString))
11119          return FHIRTypes.BACKBONETYPE;
11120        if ("Dosage".equals(codeString))
11121          return FHIRTypes.DOSAGE;
11122        if ("ElementDefinition".equals(codeString))
11123          return FHIRTypes.ELEMENTDEFINITION;
11124        if ("MarketingStatus".equals(codeString))
11125          return FHIRTypes.MARKETINGSTATUS;
11126        if ("Population".equals(codeString))
11127          return FHIRTypes.POPULATION;
11128        if ("ProductShelfLife".equals(codeString))
11129          return FHIRTypes.PRODUCTSHELFLIFE;
11130        if ("Timing".equals(codeString))
11131          return FHIRTypes.TIMING;
11132        if ("CodeableConcept".equals(codeString))
11133          return FHIRTypes.CODEABLECONCEPT;
11134        if ("CodeableReference".equals(codeString))
11135          return FHIRTypes.CODEABLEREFERENCE;
11136        if ("Coding".equals(codeString))
11137          return FHIRTypes.CODING;
11138        if ("ContactDetail".equals(codeString))
11139          return FHIRTypes.CONTACTDETAIL;
11140        if ("ContactPoint".equals(codeString))
11141          return FHIRTypes.CONTACTPOINT;
11142        if ("Contributor".equals(codeString))
11143          return FHIRTypes.CONTRIBUTOR;
11144        if ("DataRequirement".equals(codeString))
11145          return FHIRTypes.DATAREQUIREMENT;
11146        if ("Expression".equals(codeString))
11147          return FHIRTypes.EXPRESSION;
11148        if ("ExtendedContactDetail".equals(codeString))
11149          return FHIRTypes.EXTENDEDCONTACTDETAIL;
11150        if ("Extension".equals(codeString))
11151          return FHIRTypes.EXTENSION;
11152        if ("HumanName".equals(codeString))
11153          return FHIRTypes.HUMANNAME;
11154        if ("Identifier".equals(codeString))
11155          return FHIRTypes.IDENTIFIER;
11156        if ("Meta".equals(codeString))
11157          return FHIRTypes.META;
11158        if ("MonetaryComponent".equals(codeString))
11159          return FHIRTypes.MONETARYCOMPONENT;
11160        if ("Money".equals(codeString))
11161          return FHIRTypes.MONEY;
11162        if ("Narrative".equals(codeString))
11163          return FHIRTypes.NARRATIVE;
11164        if ("ParameterDefinition".equals(codeString))
11165          return FHIRTypes.PARAMETERDEFINITION;
11166        if ("Period".equals(codeString))
11167          return FHIRTypes.PERIOD;
11168        if ("PrimitiveType".equals(codeString))
11169          return FHIRTypes.PRIMITIVETYPE;
11170        if ("base64Binary".equals(codeString))
11171          return FHIRTypes.BASE64BINARY;
11172        if ("boolean".equals(codeString))
11173          return FHIRTypes.BOOLEAN;
11174        if ("date".equals(codeString))
11175          return FHIRTypes.DATE;
11176        if ("dateTime".equals(codeString))
11177          return FHIRTypes.DATETIME;
11178        if ("decimal".equals(codeString))
11179          return FHIRTypes.DECIMAL;
11180        if ("instant".equals(codeString))
11181          return FHIRTypes.INSTANT;
11182        if ("integer".equals(codeString))
11183          return FHIRTypes.INTEGER;
11184        if ("positiveInt".equals(codeString))
11185          return FHIRTypes.POSITIVEINT;
11186        if ("unsignedInt".equals(codeString))
11187          return FHIRTypes.UNSIGNEDINT;
11188        if ("integer64".equals(codeString))
11189          return FHIRTypes.INTEGER64;
11190        if ("string".equals(codeString))
11191          return FHIRTypes.STRING;
11192        if ("code".equals(codeString))
11193          return FHIRTypes.CODE;
11194        if ("id".equals(codeString))
11195          return FHIRTypes.ID;
11196        if ("markdown".equals(codeString))
11197          return FHIRTypes.MARKDOWN;
11198        if ("time".equals(codeString))
11199          return FHIRTypes.TIME;
11200        if ("uri".equals(codeString))
11201          return FHIRTypes.URI;
11202        if ("canonical".equals(codeString))
11203          return FHIRTypes.CANONICAL;
11204        if ("oid".equals(codeString))
11205          return FHIRTypes.OID;
11206        if ("url".equals(codeString))
11207          return FHIRTypes.URL;
11208        if ("uuid".equals(codeString))
11209          return FHIRTypes.UUID;
11210        if ("Quantity".equals(codeString))
11211          return FHIRTypes.QUANTITY;
11212        if ("Age".equals(codeString))
11213          return FHIRTypes.AGE;
11214        if ("Count".equals(codeString))
11215          return FHIRTypes.COUNT;
11216        if ("Distance".equals(codeString))
11217          return FHIRTypes.DISTANCE;
11218        if ("Duration".equals(codeString))
11219          return FHIRTypes.DURATION;
11220        if ("Range".equals(codeString))
11221          return FHIRTypes.RANGE;
11222        if ("Ratio".equals(codeString))
11223          return FHIRTypes.RATIO;
11224        if ("RatioRange".equals(codeString))
11225          return FHIRTypes.RATIORANGE;
11226        if ("Reference".equals(codeString))
11227          return FHIRTypes.REFERENCE;
11228        if ("RelatedArtifact".equals(codeString))
11229          return FHIRTypes.RELATEDARTIFACT;
11230        if ("SampledData".equals(codeString))
11231          return FHIRTypes.SAMPLEDDATA;
11232        if ("Signature".equals(codeString))
11233          return FHIRTypes.SIGNATURE;
11234        if ("TriggerDefinition".equals(codeString))
11235          return FHIRTypes.TRIGGERDEFINITION;
11236        if ("UsageContext".equals(codeString))
11237          return FHIRTypes.USAGECONTEXT;
11238        if ("VirtualServiceDetail".equals(codeString))
11239          return FHIRTypes.VIRTUALSERVICEDETAIL;
11240        if ("xhtml".equals(codeString))
11241          return FHIRTypes.XHTML;
11242        if ("Resource".equals(codeString))
11243          return FHIRTypes.RESOURCE;
11244        if ("Binary".equals(codeString))
11245          return FHIRTypes.BINARY;
11246        if ("Bundle".equals(codeString))
11247          return FHIRTypes.BUNDLE;
11248        if ("DomainResource".equals(codeString))
11249          return FHIRTypes.DOMAINRESOURCE;
11250        if ("Account".equals(codeString))
11251          return FHIRTypes.ACCOUNT;
11252        if ("ActivityDefinition".equals(codeString))
11253          return FHIRTypes.ACTIVITYDEFINITION;
11254        if ("ActorDefinition".equals(codeString))
11255          return FHIRTypes.ACTORDEFINITION;
11256        if ("AdministrableProductDefinition".equals(codeString))
11257          return FHIRTypes.ADMINISTRABLEPRODUCTDEFINITION;
11258        if ("AdverseEvent".equals(codeString))
11259          return FHIRTypes.ADVERSEEVENT;
11260        if ("AllergyIntolerance".equals(codeString))
11261          return FHIRTypes.ALLERGYINTOLERANCE;
11262        if ("Appointment".equals(codeString))
11263          return FHIRTypes.APPOINTMENT;
11264        if ("AppointmentResponse".equals(codeString))
11265          return FHIRTypes.APPOINTMENTRESPONSE;
11266        if ("ArtifactAssessment".equals(codeString))
11267          return FHIRTypes.ARTIFACTASSESSMENT;
11268        if ("AuditEvent".equals(codeString))
11269          return FHIRTypes.AUDITEVENT;
11270        if ("Basic".equals(codeString))
11271          return FHIRTypes.BASIC;
11272        if ("BiologicallyDerivedProduct".equals(codeString))
11273          return FHIRTypes.BIOLOGICALLYDERIVEDPRODUCT;
11274        if ("BodyStructure".equals(codeString))
11275          return FHIRTypes.BODYSTRUCTURE;
11276        if ("CanonicalResource".equals(codeString))
11277          return FHIRTypes.CANONICALRESOURCE;
11278        if ("CapabilityStatement".equals(codeString))
11279          return FHIRTypes.CAPABILITYSTATEMENT;
11280        if ("CarePlan".equals(codeString))
11281          return FHIRTypes.CAREPLAN;
11282        if ("CareTeam".equals(codeString))
11283          return FHIRTypes.CARETEAM;
11284        if ("ChargeItem".equals(codeString))
11285          return FHIRTypes.CHARGEITEM;
11286        if ("ChargeItemDefinition".equals(codeString))
11287          return FHIRTypes.CHARGEITEMDEFINITION;
11288        if ("Citation".equals(codeString))
11289          return FHIRTypes.CITATION;
11290        if ("Claim".equals(codeString))
11291          return FHIRTypes.CLAIM;
11292        if ("ClaimResponse".equals(codeString))
11293          return FHIRTypes.CLAIMRESPONSE;
11294        if ("ClinicalImpression".equals(codeString))
11295          return FHIRTypes.CLINICALIMPRESSION;
11296        if ("ClinicalUseDefinition".equals(codeString))
11297          return FHIRTypes.CLINICALUSEDEFINITION;
11298        if ("CodeSystem".equals(codeString))
11299          return FHIRTypes.CODESYSTEM;
11300        if ("Communication".equals(codeString))
11301          return FHIRTypes.COMMUNICATION;
11302        if ("CommunicationRequest".equals(codeString))
11303          return FHIRTypes.COMMUNICATIONREQUEST;
11304        if ("CompartmentDefinition".equals(codeString))
11305          return FHIRTypes.COMPARTMENTDEFINITION;
11306        if ("Composition".equals(codeString))
11307          return FHIRTypes.COMPOSITION;
11308        if ("ConceptMap".equals(codeString))
11309          return FHIRTypes.CONCEPTMAP;
11310        if ("Condition".equals(codeString))
11311          return FHIRTypes.CONDITION;
11312        if ("ConditionDefinition".equals(codeString))
11313          return FHIRTypes.CONDITIONDEFINITION;
11314        if ("Consent".equals(codeString))
11315          return FHIRTypes.CONSENT;
11316        if ("Contract".equals(codeString))
11317          return FHIRTypes.CONTRACT;
11318        if ("Coverage".equals(codeString))
11319          return FHIRTypes.COVERAGE;
11320        if ("CoverageEligibilityRequest".equals(codeString))
11321          return FHIRTypes.COVERAGEELIGIBILITYREQUEST;
11322        if ("CoverageEligibilityResponse".equals(codeString))
11323          return FHIRTypes.COVERAGEELIGIBILITYRESPONSE;
11324        if ("DetectedIssue".equals(codeString))
11325          return FHIRTypes.DETECTEDISSUE;
11326        if ("Device".equals(codeString))
11327          return FHIRTypes.DEVICE;
11328        if ("DeviceDefinition".equals(codeString))
11329          return FHIRTypes.DEVICEDEFINITION;
11330        if ("DeviceDispense".equals(codeString))
11331          return FHIRTypes.DEVICEDISPENSE;
11332        if ("DeviceMetric".equals(codeString))
11333          return FHIRTypes.DEVICEMETRIC;
11334        if ("DeviceRequest".equals(codeString))
11335          return FHIRTypes.DEVICEREQUEST;
11336        if ("DeviceUsage".equals(codeString))
11337          return FHIRTypes.DEVICEUSAGE;
11338        if ("DiagnosticReport".equals(codeString))
11339          return FHIRTypes.DIAGNOSTICREPORT;
11340        if ("DocumentManifest".equals(codeString))
11341          return FHIRTypes.DOCUMENTMANIFEST;
11342        if ("DocumentReference".equals(codeString))
11343          return FHIRTypes.DOCUMENTREFERENCE;
11344        if ("Encounter".equals(codeString))
11345          return FHIRTypes.ENCOUNTER;
11346        if ("Endpoint".equals(codeString))
11347          return FHIRTypes.ENDPOINT;
11348        if ("EnrollmentRequest".equals(codeString))
11349          return FHIRTypes.ENROLLMENTREQUEST;
11350        if ("EnrollmentResponse".equals(codeString))
11351          return FHIRTypes.ENROLLMENTRESPONSE;
11352        if ("EpisodeOfCare".equals(codeString))
11353          return FHIRTypes.EPISODEOFCARE;
11354        if ("EventDefinition".equals(codeString))
11355          return FHIRTypes.EVENTDEFINITION;
11356        if ("Evidence".equals(codeString))
11357          return FHIRTypes.EVIDENCE;
11358        if ("EvidenceReport".equals(codeString))
11359          return FHIRTypes.EVIDENCEREPORT;
11360        if ("EvidenceVariable".equals(codeString))
11361          return FHIRTypes.EVIDENCEVARIABLE;
11362        if ("ExampleScenario".equals(codeString))
11363          return FHIRTypes.EXAMPLESCENARIO;
11364        if ("ExplanationOfBenefit".equals(codeString))
11365          return FHIRTypes.EXPLANATIONOFBENEFIT;
11366        if ("FamilyMemberHistory".equals(codeString))
11367          return FHIRTypes.FAMILYMEMBERHISTORY;
11368        if ("Flag".equals(codeString))
11369          return FHIRTypes.FLAG;
11370        if ("FormularyItem".equals(codeString))
11371          return FHIRTypes.FORMULARYITEM;
11372        if ("GenomicStudy".equals(codeString))
11373          return FHIRTypes.GENOMICSTUDY;
11374        if ("Goal".equals(codeString))
11375          return FHIRTypes.GOAL;
11376        if ("GraphDefinition".equals(codeString))
11377          return FHIRTypes.GRAPHDEFINITION;
11378        if ("Group".equals(codeString))
11379          return FHIRTypes.GROUP;
11380        if ("GuidanceResponse".equals(codeString))
11381          return FHIRTypes.GUIDANCERESPONSE;
11382        if ("HealthcareService".equals(codeString))
11383          return FHIRTypes.HEALTHCARESERVICE;
11384        if ("ImagingSelection".equals(codeString))
11385          return FHIRTypes.IMAGINGSELECTION;
11386        if ("ImagingStudy".equals(codeString))
11387          return FHIRTypes.IMAGINGSTUDY;
11388        if ("Immunization".equals(codeString))
11389          return FHIRTypes.IMMUNIZATION;
11390        if ("ImmunizationEvaluation".equals(codeString))
11391          return FHIRTypes.IMMUNIZATIONEVALUATION;
11392        if ("ImmunizationRecommendation".equals(codeString))
11393          return FHIRTypes.IMMUNIZATIONRECOMMENDATION;
11394        if ("ImplementationGuide".equals(codeString))
11395          return FHIRTypes.IMPLEMENTATIONGUIDE;
11396        if ("Ingredient".equals(codeString))
11397          return FHIRTypes.INGREDIENT;
11398        if ("InsurancePlan".equals(codeString))
11399          return FHIRTypes.INSURANCEPLAN;
11400        if ("InventoryReport".equals(codeString))
11401          return FHIRTypes.INVENTORYREPORT;
11402        if ("Invoice".equals(codeString))
11403          return FHIRTypes.INVOICE;
11404        if ("Library".equals(codeString))
11405          return FHIRTypes.LIBRARY;
11406        if ("Linkage".equals(codeString))
11407          return FHIRTypes.LINKAGE;
11408        if ("List".equals(codeString))
11409          return FHIRTypes.LIST;
11410        if ("Location".equals(codeString))
11411          return FHIRTypes.LOCATION;
11412        if ("ManufacturedItemDefinition".equals(codeString))
11413          return FHIRTypes.MANUFACTUREDITEMDEFINITION;
11414        if ("Measure".equals(codeString))
11415          return FHIRTypes.MEASURE;
11416        if ("MeasureReport".equals(codeString))
11417          return FHIRTypes.MEASUREREPORT;
11418        if ("Medication".equals(codeString))
11419          return FHIRTypes.MEDICATION;
11420        if ("MedicationAdministration".equals(codeString))
11421          return FHIRTypes.MEDICATIONADMINISTRATION;
11422        if ("MedicationDispense".equals(codeString))
11423          return FHIRTypes.MEDICATIONDISPENSE;
11424        if ("MedicationKnowledge".equals(codeString))
11425          return FHIRTypes.MEDICATIONKNOWLEDGE;
11426        if ("MedicationRequest".equals(codeString))
11427          return FHIRTypes.MEDICATIONREQUEST;
11428        if ("MedicationUsage".equals(codeString))
11429          return FHIRTypes.MEDICATIONUSAGE;
11430        if ("MedicationStatement".equals(codeString))
11431          return FHIRTypes.MEDICATIONUSAGE;
11432        if ("MedicinalProductDefinition".equals(codeString))
11433          return FHIRTypes.MEDICINALPRODUCTDEFINITION;
11434        if ("MessageDefinition".equals(codeString))
11435          return FHIRTypes.MESSAGEDEFINITION;
11436        if ("MessageHeader".equals(codeString))
11437          return FHIRTypes.MESSAGEHEADER;
11438        if ("MetadataResource".equals(codeString))
11439          return FHIRTypes.METADATARESOURCE;
11440        if ("MolecularSequence".equals(codeString))
11441          return FHIRTypes.MOLECULARSEQUENCE;
11442        if ("NamingSystem".equals(codeString))
11443          return FHIRTypes.NAMINGSYSTEM;
11444        if ("NutritionIntake".equals(codeString))
11445          return FHIRTypes.NUTRITIONINTAKE;
11446        if ("NutritionOrder".equals(codeString))
11447          return FHIRTypes.NUTRITIONORDER;
11448        if ("NutritionProduct".equals(codeString))
11449          return FHIRTypes.NUTRITIONPRODUCT;
11450        if ("Observation".equals(codeString))
11451          return FHIRTypes.OBSERVATION;
11452        if ("ObservationDefinition".equals(codeString))
11453          return FHIRTypes.OBSERVATIONDEFINITION;
11454        if ("OperationDefinition".equals(codeString))
11455          return FHIRTypes.OPERATIONDEFINITION;
11456        if ("OperationOutcome".equals(codeString))
11457          return FHIRTypes.OPERATIONOUTCOME;
11458        if ("Organization".equals(codeString))
11459          return FHIRTypes.ORGANIZATION;
11460        if ("OrganizationAffiliation".equals(codeString))
11461          return FHIRTypes.ORGANIZATIONAFFILIATION;
11462        if ("PackagedProductDefinition".equals(codeString))
11463          return FHIRTypes.PACKAGEDPRODUCTDEFINITION;
11464        if ("Patient".equals(codeString))
11465          return FHIRTypes.PATIENT;
11466        if ("PaymentNotice".equals(codeString))
11467          return FHIRTypes.PAYMENTNOTICE;
11468        if ("PaymentReconciliation".equals(codeString))
11469          return FHIRTypes.PAYMENTRECONCILIATION;
11470        if ("Permission".equals(codeString))
11471          return FHIRTypes.PERMISSION;
11472        if ("Person".equals(codeString))
11473          return FHIRTypes.PERSON;
11474        if ("PlanDefinition".equals(codeString))
11475          return FHIRTypes.PLANDEFINITION;
11476        if ("Practitioner".equals(codeString))
11477          return FHIRTypes.PRACTITIONER;
11478        if ("PractitionerRole".equals(codeString))
11479          return FHIRTypes.PRACTITIONERROLE;
11480        if ("Procedure".equals(codeString))
11481          return FHIRTypes.PROCEDURE;
11482        if ("Provenance".equals(codeString))
11483          return FHIRTypes.PROVENANCE;
11484        if ("Questionnaire".equals(codeString))
11485          return FHIRTypes.QUESTIONNAIRE;
11486        if ("QuestionnaireResponse".equals(codeString))
11487          return FHIRTypes.QUESTIONNAIRERESPONSE;
11488        if ("RegulatedAuthorization".equals(codeString))
11489          return FHIRTypes.REGULATEDAUTHORIZATION;
11490        if ("RelatedPerson".equals(codeString))
11491          return FHIRTypes.RELATEDPERSON;
11492        if ("RequestOrchestration".equals(codeString))
11493          return FHIRTypes.REQUESTORCHESTRATION;
11494        if ("Requirements".equals(codeString))
11495          return FHIRTypes.REQUIREMENTS;
11496        if ("ResearchStudy".equals(codeString))
11497          return FHIRTypes.RESEARCHSTUDY;
11498        if ("ResearchSubject".equals(codeString))
11499          return FHIRTypes.RESEARCHSUBJECT;
11500        if ("RiskAssessment".equals(codeString))
11501          return FHIRTypes.RISKASSESSMENT;
11502        if ("Schedule".equals(codeString))
11503          return FHIRTypes.SCHEDULE;
11504        if ("SearchParameter".equals(codeString))
11505          return FHIRTypes.SEARCHPARAMETER;
11506        if ("ServiceRequest".equals(codeString))
11507          return FHIRTypes.SERVICEREQUEST;
11508        if ("Slot".equals(codeString))
11509          return FHIRTypes.SLOT;
11510        if ("Specimen".equals(codeString))
11511          return FHIRTypes.SPECIMEN;
11512        if ("SpecimenDefinition".equals(codeString))
11513          return FHIRTypes.SPECIMENDEFINITION;
11514        if ("StructureDefinition".equals(codeString))
11515          return FHIRTypes.STRUCTUREDEFINITION;
11516        if ("StructureMap".equals(codeString))
11517          return FHIRTypes.STRUCTUREMAP;
11518        if ("Subscription".equals(codeString))
11519          return FHIRTypes.SUBSCRIPTION;
11520        if ("SubscriptionStatus".equals(codeString))
11521          return FHIRTypes.SUBSCRIPTIONSTATUS;
11522        if ("SubscriptionTopic".equals(codeString))
11523          return FHIRTypes.SUBSCRIPTIONTOPIC;
11524        if ("Substance".equals(codeString))
11525          return FHIRTypes.SUBSTANCE;
11526        if ("SubstanceDefinition".equals(codeString))
11527          return FHIRTypes.SUBSTANCEDEFINITION;
11528        if ("SubstanceNucleicAcid".equals(codeString))
11529          return FHIRTypes.SUBSTANCENUCLEICACID;
11530        if ("SubstancePolymer".equals(codeString))
11531          return FHIRTypes.SUBSTANCEPOLYMER;
11532        if ("SubstanceProtein".equals(codeString))
11533          return FHIRTypes.SUBSTANCEPROTEIN;
11534        if ("SubstanceReferenceInformation".equals(codeString))
11535          return FHIRTypes.SUBSTANCEREFERENCEINFORMATION;
11536        if ("SubstanceSourceMaterial".equals(codeString))
11537          return FHIRTypes.SUBSTANCESOURCEMATERIAL;
11538        if ("SupplyDelivery".equals(codeString))
11539          return FHIRTypes.SUPPLYDELIVERY;
11540        if ("SupplyRequest".equals(codeString))
11541          return FHIRTypes.SUPPLYREQUEST;
11542        if ("Task".equals(codeString))
11543          return FHIRTypes.TASK;
11544        if ("TerminologyCapabilities".equals(codeString))
11545          return FHIRTypes.TERMINOLOGYCAPABILITIES;
11546        if ("TestReport".equals(codeString))
11547          return FHIRTypes.TESTREPORT;
11548        if ("TestScript".equals(codeString))
11549          return FHIRTypes.TESTSCRIPT;
11550        if ("Transport".equals(codeString))
11551          return FHIRTypes.TRANSPORT;
11552        if ("ValueSet".equals(codeString))
11553          return FHIRTypes.VALUESET;
11554        if ("VerificationResult".equals(codeString))
11555          return FHIRTypes.VERIFICATIONRESULT;
11556        if ("VisionPrescription".equals(codeString))
11557          return FHIRTypes.VISIONPRESCRIPTION;
11558        if ("Parameters".equals(codeString))
11559          return FHIRTypes.PARAMETERS;
11560        if ("Any".equals(codeString))
11561          return FHIRTypes.RESOURCE;
11562        throw new IllegalArgumentException("Unknown FHIRTypes code '"+codeString+"'");
11563        }
11564        public Enumeration<FHIRTypes> fromType(PrimitiveType<?> code) throws FHIRException {
11565          if (code == null)
11566            return null;
11567          if (code.isEmpty())
11568            return new Enumeration<FHIRTypes>(this, FHIRTypes.NULL, code);
11569          String codeString = ((PrimitiveType) code).asStringValue();
11570          if (codeString == null || "".equals(codeString))
11571            return new Enumeration<FHIRTypes>(this, FHIRTypes.NULL, code);
11572        if ("Base".equals(codeString))
11573          return new Enumeration<FHIRTypes>(this, FHIRTypes.BASE, code);
11574        if ("Element".equals(codeString))
11575          return new Enumeration<FHIRTypes>(this, FHIRTypes.ELEMENT, code);
11576        if ("BackboneElement".equals(codeString))
11577          return new Enumeration<FHIRTypes>(this, FHIRTypes.BACKBONEELEMENT, code);
11578        if ("DataType".equals(codeString))
11579          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATATYPE, code);
11580        if ("Address".equals(codeString))
11581          return new Enumeration<FHIRTypes>(this, FHIRTypes.ADDRESS, code);
11582        if ("Annotation".equals(codeString))
11583          return new Enumeration<FHIRTypes>(this, FHIRTypes.ANNOTATION, code);
11584        if ("Attachment".equals(codeString))
11585          return new Enumeration<FHIRTypes>(this, FHIRTypes.ATTACHMENT, code);
11586        if ("Availability".equals(codeString))
11587          return new Enumeration<FHIRTypes>(this, FHIRTypes.AVAILABILITY, code);
11588        if ("BackboneType".equals(codeString))
11589          return new Enumeration<FHIRTypes>(this, FHIRTypes.BACKBONETYPE, code);
11590        if ("Dosage".equals(codeString))
11591          return new Enumeration<FHIRTypes>(this, FHIRTypes.DOSAGE, code);
11592        if ("ElementDefinition".equals(codeString))
11593          return new Enumeration<FHIRTypes>(this, FHIRTypes.ELEMENTDEFINITION, code);
11594        if ("MarketingStatus".equals(codeString))
11595          return new Enumeration<FHIRTypes>(this, FHIRTypes.MARKETINGSTATUS, code);
11596        if ("Population".equals(codeString))
11597          return new Enumeration<FHIRTypes>(this, FHIRTypes.POPULATION, code);
11598        if ("ProductShelfLife".equals(codeString))
11599          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRODUCTSHELFLIFE, code);
11600        if ("Timing".equals(codeString))
11601          return new Enumeration<FHIRTypes>(this, FHIRTypes.TIMING, code);
11602        if ("CodeableConcept".equals(codeString))
11603          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODEABLECONCEPT, code);
11604        if ("CodeableReference".equals(codeString))
11605          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODEABLEREFERENCE, code);
11606        if ("Coding".equals(codeString))
11607          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODING, code);
11608        if ("ContactDetail".equals(codeString))
11609          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTACTDETAIL, code);
11610        if ("ContactPoint".equals(codeString))
11611          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTACTPOINT, code);
11612        if ("Contributor".equals(codeString))
11613          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTRIBUTOR, code);
11614        if ("DataRequirement".equals(codeString))
11615          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATAREQUIREMENT, code);
11616        if ("Expression".equals(codeString))
11617          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXPRESSION, code);
11618        if ("ExtendedContactDetail".equals(codeString))
11619          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXTENDEDCONTACTDETAIL, code);
11620        if ("Extension".equals(codeString))
11621          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXTENSION, code);
11622        if ("HumanName".equals(codeString))
11623          return new Enumeration<FHIRTypes>(this, FHIRTypes.HUMANNAME, code);
11624        if ("Identifier".equals(codeString))
11625          return new Enumeration<FHIRTypes>(this, FHIRTypes.IDENTIFIER, code);
11626        if ("Meta".equals(codeString))
11627          return new Enumeration<FHIRTypes>(this, FHIRTypes.META, code);
11628        if ("MonetaryComponent".equals(codeString))
11629          return new Enumeration<FHIRTypes>(this, FHIRTypes.MONETARYCOMPONENT, code);
11630        if ("Money".equals(codeString))
11631          return new Enumeration<FHIRTypes>(this, FHIRTypes.MONEY, code);
11632        if ("Narrative".equals(codeString))
11633          return new Enumeration<FHIRTypes>(this, FHIRTypes.NARRATIVE, code);
11634        if ("ParameterDefinition".equals(codeString))
11635          return new Enumeration<FHIRTypes>(this, FHIRTypes.PARAMETERDEFINITION, code);
11636        if ("Period".equals(codeString))
11637          return new Enumeration<FHIRTypes>(this, FHIRTypes.PERIOD, code);
11638        if ("PrimitiveType".equals(codeString))
11639          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRIMITIVETYPE, code);
11640        if ("base64Binary".equals(codeString))
11641          return new Enumeration<FHIRTypes>(this, FHIRTypes.BASE64BINARY, code);
11642        if ("boolean".equals(codeString))
11643          return new Enumeration<FHIRTypes>(this, FHIRTypes.BOOLEAN, code);
11644        if ("date".equals(codeString))
11645          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATE, code);
11646        if ("dateTime".equals(codeString))
11647          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATETIME, code);
11648        if ("decimal".equals(codeString))
11649          return new Enumeration<FHIRTypes>(this, FHIRTypes.DECIMAL, code);
11650        if ("instant".equals(codeString))
11651          return new Enumeration<FHIRTypes>(this, FHIRTypes.INSTANT, code);
11652        if ("integer".equals(codeString))
11653          return new Enumeration<FHIRTypes>(this, FHIRTypes.INTEGER, code);
11654        if ("positiveInt".equals(codeString))
11655          return new Enumeration<FHIRTypes>(this, FHIRTypes.POSITIVEINT, code);
11656        if ("unsignedInt".equals(codeString))
11657          return new Enumeration<FHIRTypes>(this, FHIRTypes.UNSIGNEDINT, code);
11658        if ("integer64".equals(codeString))
11659          return new Enumeration<FHIRTypes>(this, FHIRTypes.INTEGER64, code);
11660        if ("string".equals(codeString))
11661          return new Enumeration<FHIRTypes>(this, FHIRTypes.STRING, code);
11662        if ("code".equals(codeString))
11663          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODE, code);
11664        if ("id".equals(codeString))
11665          return new Enumeration<FHIRTypes>(this, FHIRTypes.ID, code);
11666        if ("markdown".equals(codeString))
11667          return new Enumeration<FHIRTypes>(this, FHIRTypes.MARKDOWN, code);
11668        if ("time".equals(codeString))
11669          return new Enumeration<FHIRTypes>(this, FHIRTypes.TIME, code);
11670        if ("uri".equals(codeString))
11671          return new Enumeration<FHIRTypes>(this, FHIRTypes.URI, code);
11672        if ("canonical".equals(codeString))
11673          return new Enumeration<FHIRTypes>(this, FHIRTypes.CANONICAL, code);
11674        if ("oid".equals(codeString))
11675          return new Enumeration<FHIRTypes>(this, FHIRTypes.OID, code);
11676        if ("url".equals(codeString))
11677          return new Enumeration<FHIRTypes>(this, FHIRTypes.URL, code);
11678        if ("uuid".equals(codeString))
11679          return new Enumeration<FHIRTypes>(this, FHIRTypes.UUID, code);
11680        if ("Quantity".equals(codeString))
11681          return new Enumeration<FHIRTypes>(this, FHIRTypes.QUANTITY, code);
11682        if ("Age".equals(codeString))
11683          return new Enumeration<FHIRTypes>(this, FHIRTypes.AGE, code);
11684        if ("Count".equals(codeString))
11685          return new Enumeration<FHIRTypes>(this, FHIRTypes.COUNT, code);
11686        if ("Distance".equals(codeString))
11687          return new Enumeration<FHIRTypes>(this, FHIRTypes.DISTANCE, code);
11688        if ("Duration".equals(codeString))
11689          return new Enumeration<FHIRTypes>(this, FHIRTypes.DURATION, code);
11690        if ("Range".equals(codeString))
11691          return new Enumeration<FHIRTypes>(this, FHIRTypes.RANGE, code);
11692        if ("Ratio".equals(codeString))
11693          return new Enumeration<FHIRTypes>(this, FHIRTypes.RATIO, code);
11694        if ("RatioRange".equals(codeString))
11695          return new Enumeration<FHIRTypes>(this, FHIRTypes.RATIORANGE, code);
11696        if ("Reference".equals(codeString))
11697          return new Enumeration<FHIRTypes>(this, FHIRTypes.REFERENCE, code);
11698        if ("RelatedArtifact".equals(codeString))
11699          return new Enumeration<FHIRTypes>(this, FHIRTypes.RELATEDARTIFACT, code);
11700        if ("SampledData".equals(codeString))
11701          return new Enumeration<FHIRTypes>(this, FHIRTypes.SAMPLEDDATA, code);
11702        if ("Signature".equals(codeString))
11703          return new Enumeration<FHIRTypes>(this, FHIRTypes.SIGNATURE, code);
11704        if ("TriggerDefinition".equals(codeString))
11705          return new Enumeration<FHIRTypes>(this, FHIRTypes.TRIGGERDEFINITION, code);
11706        if ("UsageContext".equals(codeString))
11707          return new Enumeration<FHIRTypes>(this, FHIRTypes.USAGECONTEXT, code);
11708        if ("VirtualServiceDetail".equals(codeString))
11709          return new Enumeration<FHIRTypes>(this, FHIRTypes.VIRTUALSERVICEDETAIL, code);
11710        if ("xhtml".equals(codeString))
11711          return new Enumeration<FHIRTypes>(this, FHIRTypes.XHTML, code);
11712        if ("Resource".equals(codeString))
11713          return new Enumeration<FHIRTypes>(this, FHIRTypes.RESOURCE, code);
11714        if ("Binary".equals(codeString))
11715          return new Enumeration<FHIRTypes>(this, FHIRTypes.BINARY, code);
11716        if ("Bundle".equals(codeString))
11717          return new Enumeration<FHIRTypes>(this, FHIRTypes.BUNDLE, code);
11718        if ("DomainResource".equals(codeString))
11719          return new Enumeration<FHIRTypes>(this, FHIRTypes.DOMAINRESOURCE, code);
11720        if ("Account".equals(codeString))
11721          return new Enumeration<FHIRTypes>(this, FHIRTypes.ACCOUNT, code);
11722        if ("ActivityDefinition".equals(codeString))
11723          return new Enumeration<FHIRTypes>(this, FHIRTypes.ACTIVITYDEFINITION, code);
11724        if ("ActorDefinition".equals(codeString))
11725          return new Enumeration<FHIRTypes>(this, FHIRTypes.ACTORDEFINITION, code);
11726        if ("AdministrableProductDefinition".equals(codeString))
11727          return new Enumeration<FHIRTypes>(this, FHIRTypes.ADMINISTRABLEPRODUCTDEFINITION, code);
11728        if ("AdverseEvent".equals(codeString))
11729          return new Enumeration<FHIRTypes>(this, FHIRTypes.ADVERSEEVENT, code);
11730        if ("AllergyIntolerance".equals(codeString))
11731          return new Enumeration<FHIRTypes>(this, FHIRTypes.ALLERGYINTOLERANCE, code);
11732        if ("Appointment".equals(codeString))
11733          return new Enumeration<FHIRTypes>(this, FHIRTypes.APPOINTMENT, code);
11734        if ("AppointmentResponse".equals(codeString))
11735          return new Enumeration<FHIRTypes>(this, FHIRTypes.APPOINTMENTRESPONSE, code);
11736        if ("ArtifactAssessment".equals(codeString))
11737          return new Enumeration<FHIRTypes>(this, FHIRTypes.ARTIFACTASSESSMENT, code);
11738        if ("AuditEvent".equals(codeString))
11739          return new Enumeration<FHIRTypes>(this, FHIRTypes.AUDITEVENT, code);
11740        if ("Basic".equals(codeString))
11741          return new Enumeration<FHIRTypes>(this, FHIRTypes.BASIC, code);
11742        if ("BiologicallyDerivedProduct".equals(codeString))
11743          return new Enumeration<FHIRTypes>(this, FHIRTypes.BIOLOGICALLYDERIVEDPRODUCT, code);
11744        if ("BodyStructure".equals(codeString))
11745          return new Enumeration<FHIRTypes>(this, FHIRTypes.BODYSTRUCTURE, code);
11746        if ("CanonicalResource".equals(codeString))
11747          return new Enumeration<FHIRTypes>(this, FHIRTypes.CANONICALRESOURCE, code);
11748        if ("CapabilityStatement".equals(codeString))
11749          return new Enumeration<FHIRTypes>(this, FHIRTypes.CAPABILITYSTATEMENT, code);
11750        if ("CarePlan".equals(codeString))
11751          return new Enumeration<FHIRTypes>(this, FHIRTypes.CAREPLAN, code);
11752        if ("CareTeam".equals(codeString))
11753          return new Enumeration<FHIRTypes>(this, FHIRTypes.CARETEAM, code);
11754        if ("ChargeItem".equals(codeString))
11755          return new Enumeration<FHIRTypes>(this, FHIRTypes.CHARGEITEM, code);
11756        if ("ChargeItemDefinition".equals(codeString))
11757          return new Enumeration<FHIRTypes>(this, FHIRTypes.CHARGEITEMDEFINITION, code);
11758        if ("Citation".equals(codeString))
11759          return new Enumeration<FHIRTypes>(this, FHIRTypes.CITATION, code);
11760        if ("Claim".equals(codeString))
11761          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLAIM, code);
11762        if ("ClaimResponse".equals(codeString))
11763          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLAIMRESPONSE, code);
11764        if ("ClinicalImpression".equals(codeString))
11765          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLINICALIMPRESSION, code);
11766        if ("ClinicalUseDefinition".equals(codeString))
11767          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLINICALUSEDEFINITION, code);
11768        if ("CodeSystem".equals(codeString))
11769          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODESYSTEM, code);
11770        if ("Communication".equals(codeString))
11771          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMMUNICATION, code);
11772        if ("CommunicationRequest".equals(codeString))
11773          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMMUNICATIONREQUEST, code);
11774        if ("CompartmentDefinition".equals(codeString))
11775          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMPARTMENTDEFINITION, code);
11776        if ("Composition".equals(codeString))
11777          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMPOSITION, code);
11778        if ("ConceptMap".equals(codeString))
11779          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONCEPTMAP, code);
11780        if ("Condition".equals(codeString))
11781          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONDITION, code);
11782        if ("ConditionDefinition".equals(codeString))
11783          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONDITIONDEFINITION, code);
11784        if ("Consent".equals(codeString))
11785          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONSENT, code);
11786        if ("Contract".equals(codeString))
11787          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTRACT, code);
11788        if ("Coverage".equals(codeString))
11789          return new Enumeration<FHIRTypes>(this, FHIRTypes.COVERAGE, code);
11790        if ("CoverageEligibilityRequest".equals(codeString))
11791          return new Enumeration<FHIRTypes>(this, FHIRTypes.COVERAGEELIGIBILITYREQUEST, code);
11792        if ("CoverageEligibilityResponse".equals(codeString))
11793          return new Enumeration<FHIRTypes>(this, FHIRTypes.COVERAGEELIGIBILITYRESPONSE, code);
11794        if ("DetectedIssue".equals(codeString))
11795          return new Enumeration<FHIRTypes>(this, FHIRTypes.DETECTEDISSUE, code);
11796        if ("Device".equals(codeString))
11797          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICE, code);
11798        if ("DeviceDefinition".equals(codeString))
11799          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEDEFINITION, code);
11800        if ("DeviceDispense".equals(codeString))
11801          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEDISPENSE, code);
11802        if ("DeviceMetric".equals(codeString))
11803          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEMETRIC, code);
11804        if ("DeviceRequest".equals(codeString))
11805          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEREQUEST, code);
11806        if ("DeviceUsage".equals(codeString))
11807          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEUSAGE, code);
11808        if ("DiagnosticReport".equals(codeString))
11809          return new Enumeration<FHIRTypes>(this, FHIRTypes.DIAGNOSTICREPORT, code);
11810        if ("DocumentManifest".equals(codeString))
11811          return new Enumeration<FHIRTypes>(this, FHIRTypes.DOCUMENTMANIFEST, code);
11812        if ("DocumentReference".equals(codeString))
11813          return new Enumeration<FHIRTypes>(this, FHIRTypes.DOCUMENTREFERENCE, code);
11814        if ("Encounter".equals(codeString))
11815          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENCOUNTER, code);
11816        if ("Endpoint".equals(codeString))
11817          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENDPOINT, code);
11818        if ("EnrollmentRequest".equals(codeString))
11819          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENROLLMENTREQUEST, code);
11820        if ("EnrollmentResponse".equals(codeString))
11821          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENROLLMENTRESPONSE, code);
11822        if ("EpisodeOfCare".equals(codeString))
11823          return new Enumeration<FHIRTypes>(this, FHIRTypes.EPISODEOFCARE, code);
11824        if ("EventDefinition".equals(codeString))
11825          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVENTDEFINITION, code);
11826        if ("Evidence".equals(codeString))
11827          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVIDENCE, code);
11828        if ("EvidenceReport".equals(codeString))
11829          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVIDENCEREPORT, code);
11830        if ("EvidenceVariable".equals(codeString))
11831          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVIDENCEVARIABLE, code);
11832        if ("ExampleScenario".equals(codeString))
11833          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXAMPLESCENARIO, code);
11834        if ("ExplanationOfBenefit".equals(codeString))
11835          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXPLANATIONOFBENEFIT, code);
11836        if ("FamilyMemberHistory".equals(codeString))
11837          return new Enumeration<FHIRTypes>(this, FHIRTypes.FAMILYMEMBERHISTORY, code);
11838        if ("Flag".equals(codeString))
11839          return new Enumeration<FHIRTypes>(this, FHIRTypes.FLAG, code);
11840        if ("FormularyItem".equals(codeString))
11841          return new Enumeration<FHIRTypes>(this, FHIRTypes.FORMULARYITEM, code);
11842        if ("GenomicStudy".equals(codeString))
11843          return new Enumeration<FHIRTypes>(this, FHIRTypes.GENOMICSTUDY, code);
11844        if ("Goal".equals(codeString))
11845          return new Enumeration<FHIRTypes>(this, FHIRTypes.GOAL, code);
11846        if ("GraphDefinition".equals(codeString))
11847          return new Enumeration<FHIRTypes>(this, FHIRTypes.GRAPHDEFINITION, code);
11848        if ("Group".equals(codeString))
11849          return new Enumeration<FHIRTypes>(this, FHIRTypes.GROUP, code);
11850        if ("GuidanceResponse".equals(codeString))
11851          return new Enumeration<FHIRTypes>(this, FHIRTypes.GUIDANCERESPONSE, code);
11852        if ("HealthcareService".equals(codeString))
11853          return new Enumeration<FHIRTypes>(this, FHIRTypes.HEALTHCARESERVICE, code);
11854        if ("ImagingSelection".equals(codeString))
11855          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMAGINGSELECTION, code);
11856        if ("ImagingStudy".equals(codeString))
11857          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMAGINGSTUDY, code);
11858        if ("Immunization".equals(codeString))
11859          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMMUNIZATION, code);
11860        if ("ImmunizationEvaluation".equals(codeString))
11861          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMMUNIZATIONEVALUATION, code);
11862        if ("ImmunizationRecommendation".equals(codeString))
11863          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMMUNIZATIONRECOMMENDATION, code);
11864        if ("ImplementationGuide".equals(codeString))
11865          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMPLEMENTATIONGUIDE, code);
11866        if ("Ingredient".equals(codeString))
11867          return new Enumeration<FHIRTypes>(this, FHIRTypes.INGREDIENT, code);
11868        if ("InsurancePlan".equals(codeString))
11869          return new Enumeration<FHIRTypes>(this, FHIRTypes.INSURANCEPLAN, code);
11870        if ("InventoryReport".equals(codeString))
11871          return new Enumeration<FHIRTypes>(this, FHIRTypes.INVENTORYREPORT, code);
11872        if ("Invoice".equals(codeString))
11873          return new Enumeration<FHIRTypes>(this, FHIRTypes.INVOICE, code);
11874        if ("Library".equals(codeString))
11875          return new Enumeration<FHIRTypes>(this, FHIRTypes.LIBRARY, code);
11876        if ("Linkage".equals(codeString))
11877          return new Enumeration<FHIRTypes>(this, FHIRTypes.LINKAGE, code);
11878        if ("List".equals(codeString))
11879          return new Enumeration<FHIRTypes>(this, FHIRTypes.LIST, code);
11880        if ("Location".equals(codeString))
11881          return new Enumeration<FHIRTypes>(this, FHIRTypes.LOCATION, code);
11882        if ("ManufacturedItemDefinition".equals(codeString))
11883          return new Enumeration<FHIRTypes>(this, FHIRTypes.MANUFACTUREDITEMDEFINITION, code);
11884        if ("Measure".equals(codeString))
11885          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEASURE, code);
11886        if ("MeasureReport".equals(codeString))
11887          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEASUREREPORT, code);
11888        if ("Medication".equals(codeString))
11889          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATION, code);
11890        if ("MedicationAdministration".equals(codeString))
11891          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONADMINISTRATION, code);
11892        if ("MedicationDispense".equals(codeString))
11893          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONDISPENSE, code);
11894        if ("MedicationKnowledge".equals(codeString))
11895          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONKNOWLEDGE, code);
11896        if ("MedicationRequest".equals(codeString))
11897          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONREQUEST, code);
11898        if ("MedicationUsage".equals(codeString))
11899          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONUSAGE, code);
11900        if ("MedicationStatement".equals(codeString))
11901          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONUSAGE, code);
11902        if ("MedicinalProductDefinition".equals(codeString))
11903          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICINALPRODUCTDEFINITION, code);
11904        if ("MessageDefinition".equals(codeString))
11905          return new Enumeration<FHIRTypes>(this, FHIRTypes.MESSAGEDEFINITION, code);
11906        if ("MessageHeader".equals(codeString))
11907          return new Enumeration<FHIRTypes>(this, FHIRTypes.MESSAGEHEADER, code);
11908        if ("MetadataResource".equals(codeString))
11909          return new Enumeration<FHIRTypes>(this, FHIRTypes.METADATARESOURCE, code);
11910        if ("MolecularSequence".equals(codeString))
11911          return new Enumeration<FHIRTypes>(this, FHIRTypes.MOLECULARSEQUENCE, code);
11912        if ("NamingSystem".equals(codeString))
11913          return new Enumeration<FHIRTypes>(this, FHIRTypes.NAMINGSYSTEM, code);
11914        if ("NutritionIntake".equals(codeString))
11915          return new Enumeration<FHIRTypes>(this, FHIRTypes.NUTRITIONINTAKE, code);
11916        if ("NutritionOrder".equals(codeString))
11917          return new Enumeration<FHIRTypes>(this, FHIRTypes.NUTRITIONORDER, code);
11918        if ("NutritionProduct".equals(codeString))
11919          return new Enumeration<FHIRTypes>(this, FHIRTypes.NUTRITIONPRODUCT, code);
11920        if ("Observation".equals(codeString))
11921          return new Enumeration<FHIRTypes>(this, FHIRTypes.OBSERVATION, code);
11922        if ("ObservationDefinition".equals(codeString))
11923          return new Enumeration<FHIRTypes>(this, FHIRTypes.OBSERVATIONDEFINITION, code);
11924        if ("OperationDefinition".equals(codeString))
11925          return new Enumeration<FHIRTypes>(this, FHIRTypes.OPERATIONDEFINITION, code);
11926        if ("OperationOutcome".equals(codeString))
11927          return new Enumeration<FHIRTypes>(this, FHIRTypes.OPERATIONOUTCOME, code);
11928        if ("Organization".equals(codeString))
11929          return new Enumeration<FHIRTypes>(this, FHIRTypes.ORGANIZATION, code);
11930        if ("OrganizationAffiliation".equals(codeString))
11931          return new Enumeration<FHIRTypes>(this, FHIRTypes.ORGANIZATIONAFFILIATION, code);
11932        if ("PackagedProductDefinition".equals(codeString))
11933          return new Enumeration<FHIRTypes>(this, FHIRTypes.PACKAGEDPRODUCTDEFINITION, code);
11934        if ("Patient".equals(codeString))
11935          return new Enumeration<FHIRTypes>(this, FHIRTypes.PATIENT, code);
11936        if ("PaymentNotice".equals(codeString))
11937          return new Enumeration<FHIRTypes>(this, FHIRTypes.PAYMENTNOTICE, code);
11938        if ("PaymentReconciliation".equals(codeString))
11939          return new Enumeration<FHIRTypes>(this, FHIRTypes.PAYMENTRECONCILIATION, code);
11940        if ("Permission".equals(codeString))
11941          return new Enumeration<FHIRTypes>(this, FHIRTypes.PERMISSION, code);
11942        if ("Person".equals(codeString))
11943          return new Enumeration<FHIRTypes>(this, FHIRTypes.PERSON, code);
11944        if ("PlanDefinition".equals(codeString))
11945          return new Enumeration<FHIRTypes>(this, FHIRTypes.PLANDEFINITION, code);
11946        if ("Practitioner".equals(codeString))
11947          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRACTITIONER, code);
11948        if ("PractitionerRole".equals(codeString))
11949          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRACTITIONERROLE, code);
11950        if ("Procedure".equals(codeString))
11951          return new Enumeration<FHIRTypes>(this, FHIRTypes.PROCEDURE, code);
11952        if ("Provenance".equals(codeString))
11953          return new Enumeration<FHIRTypes>(this, FHIRTypes.PROVENANCE, code);
11954        if ("Questionnaire".equals(codeString))
11955          return new Enumeration<FHIRTypes>(this, FHIRTypes.QUESTIONNAIRE, code);
11956        if ("QuestionnaireResponse".equals(codeString))
11957          return new Enumeration<FHIRTypes>(this, FHIRTypes.QUESTIONNAIRERESPONSE, code);
11958        if ("RegulatedAuthorization".equals(codeString))
11959          return new Enumeration<FHIRTypes>(this, FHIRTypes.REGULATEDAUTHORIZATION, code);
11960        if ("RelatedPerson".equals(codeString))
11961          return new Enumeration<FHIRTypes>(this, FHIRTypes.RELATEDPERSON, code);
11962        if ("RequestOrchestration".equals(codeString))
11963          return new Enumeration<FHIRTypes>(this, FHIRTypes.REQUESTORCHESTRATION, code);
11964        if ("Requirements".equals(codeString))
11965          return new Enumeration<FHIRTypes>(this, FHIRTypes.REQUIREMENTS, code);
11966        if ("ResearchStudy".equals(codeString))
11967          return new Enumeration<FHIRTypes>(this, FHIRTypes.RESEARCHSTUDY, code);
11968        if ("ResearchSubject".equals(codeString))
11969          return new Enumeration<FHIRTypes>(this, FHIRTypes.RESEARCHSUBJECT, code);
11970        if ("RiskAssessment".equals(codeString))
11971          return new Enumeration<FHIRTypes>(this, FHIRTypes.RISKASSESSMENT, code);
11972        if ("Schedule".equals(codeString))
11973          return new Enumeration<FHIRTypes>(this, FHIRTypes.SCHEDULE, code);
11974        if ("SearchParameter".equals(codeString))
11975          return new Enumeration<FHIRTypes>(this, FHIRTypes.SEARCHPARAMETER, code);
11976        if ("ServiceRequest".equals(codeString))
11977          return new Enumeration<FHIRTypes>(this, FHIRTypes.SERVICEREQUEST, code);
11978        if ("Slot".equals(codeString))
11979          return new Enumeration<FHIRTypes>(this, FHIRTypes.SLOT, code);
11980        if ("Specimen".equals(codeString))
11981          return new Enumeration<FHIRTypes>(this, FHIRTypes.SPECIMEN, code);
11982        if ("SpecimenDefinition".equals(codeString))
11983          return new Enumeration<FHIRTypes>(this, FHIRTypes.SPECIMENDEFINITION, code);
11984        if ("StructureDefinition".equals(codeString))
11985          return new Enumeration<FHIRTypes>(this, FHIRTypes.STRUCTUREDEFINITION, code);
11986        if ("StructureMap".equals(codeString))
11987          return new Enumeration<FHIRTypes>(this, FHIRTypes.STRUCTUREMAP, code);
11988        if ("Subscription".equals(codeString))
11989          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSCRIPTION, code);
11990        if ("SubscriptionStatus".equals(codeString))
11991          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSCRIPTIONSTATUS, code);
11992        if ("SubscriptionTopic".equals(codeString))
11993          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSCRIPTIONTOPIC, code);
11994        if ("Substance".equals(codeString))
11995          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCE, code);
11996        if ("SubstanceDefinition".equals(codeString))
11997          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEDEFINITION, code);
11998        if ("SubstanceNucleicAcid".equals(codeString))
11999          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCENUCLEICACID, code);
12000        if ("SubstancePolymer".equals(codeString))
12001          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEPOLYMER, code);
12002        if ("SubstanceProtein".equals(codeString))
12003          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEPROTEIN, code);
12004        if ("SubstanceReferenceInformation".equals(codeString))
12005          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEREFERENCEINFORMATION, code);
12006        if ("SubstanceSourceMaterial".equals(codeString))
12007          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCESOURCEMATERIAL, code);
12008        if ("SupplyDelivery".equals(codeString))
12009          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUPPLYDELIVERY, code);
12010        if ("SupplyRequest".equals(codeString))
12011          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUPPLYREQUEST, code);
12012        if ("Task".equals(codeString))
12013          return new Enumeration<FHIRTypes>(this, FHIRTypes.TASK, code);
12014        if ("TerminologyCapabilities".equals(codeString))
12015          return new Enumeration<FHIRTypes>(this, FHIRTypes.TERMINOLOGYCAPABILITIES, code);
12016        if ("TestReport".equals(codeString))
12017          return new Enumeration<FHIRTypes>(this, FHIRTypes.TESTREPORT, code);
12018        if ("TestScript".equals(codeString))
12019          return new Enumeration<FHIRTypes>(this, FHIRTypes.TESTSCRIPT, code);
12020        if ("Transport".equals(codeString))
12021          return new Enumeration<FHIRTypes>(this, FHIRTypes.TRANSPORT, code);
12022        if ("ValueSet".equals(codeString))
12023          return new Enumeration<FHIRTypes>(this, FHIRTypes.VALUESET, code);
12024        if ("VerificationResult".equals(codeString))
12025          return new Enumeration<FHIRTypes>(this, FHIRTypes.VERIFICATIONRESULT, code);
12026        if ("VisionPrescription".equals(codeString))
12027          return new Enumeration<FHIRTypes>(this, FHIRTypes.VISIONPRESCRIPTION, code);
12028        if ("Parameters".equals(codeString))
12029          return new Enumeration<FHIRTypes>(this, FHIRTypes.PARAMETERS, code);
12030        throw new FHIRException("Unknown FHIRTypes code '"+codeString+"'");
12031        }
12032    public String toCode(FHIRTypes code) {
12033      if (code == FHIRTypes.BASE)
12034        return "Base";
12035      if (code == FHIRTypes.ELEMENT)
12036        return "Element";
12037      if (code == FHIRTypes.BACKBONEELEMENT)
12038        return "BackboneElement";
12039      if (code == FHIRTypes.DATATYPE)
12040        return "DataType";
12041      if (code == FHIRTypes.ADDRESS)
12042        return "Address";
12043      if (code == FHIRTypes.ANNOTATION)
12044        return "Annotation";
12045      if (code == FHIRTypes.ATTACHMENT)
12046        return "Attachment";
12047      if (code == FHIRTypes.AVAILABILITY)
12048        return "Availability";
12049      if (code == FHIRTypes.BACKBONETYPE)
12050        return "BackboneType";
12051      if (code == FHIRTypes.DOSAGE)
12052        return "Dosage";
12053      if (code == FHIRTypes.ELEMENTDEFINITION)
12054        return "ElementDefinition";
12055      if (code == FHIRTypes.MARKETINGSTATUS)
12056        return "MarketingStatus";
12057      if (code == FHIRTypes.POPULATION)
12058        return "Population";
12059      if (code == FHIRTypes.PRODUCTSHELFLIFE)
12060        return "ProductShelfLife";
12061      if (code == FHIRTypes.TIMING)
12062        return "Timing";
12063      if (code == FHIRTypes.CODEABLECONCEPT)
12064        return "CodeableConcept";
12065      if (code == FHIRTypes.CODEABLEREFERENCE)
12066        return "CodeableReference";
12067      if (code == FHIRTypes.CODING)
12068        return "Coding";
12069      if (code == FHIRTypes.CONTACTDETAIL)
12070        return "ContactDetail";
12071      if (code == FHIRTypes.CONTACTPOINT)
12072        return "ContactPoint";
12073      if (code == FHIRTypes.CONTRIBUTOR)
12074        return "Contributor";
12075      if (code == FHIRTypes.DATAREQUIREMENT)
12076        return "DataRequirement";
12077      if (code == FHIRTypes.EXPRESSION)
12078        return "Expression";
12079      if (code == FHIRTypes.EXTENDEDCONTACTDETAIL)
12080        return "ExtendedContactDetail";
12081      if (code == FHIRTypes.EXTENSION)
12082        return "Extension";
12083      if (code == FHIRTypes.HUMANNAME)
12084        return "HumanName";
12085      if (code == FHIRTypes.IDENTIFIER)
12086        return "Identifier";
12087      if (code == FHIRTypes.META)
12088        return "Meta";
12089      if (code == FHIRTypes.MONETARYCOMPONENT)
12090        return "MonetaryComponent";
12091      if (code == FHIRTypes.MONEY)
12092        return "Money";
12093      if (code == FHIRTypes.NARRATIVE)
12094        return "Narrative";
12095      if (code == FHIRTypes.PARAMETERDEFINITION)
12096        return "ParameterDefinition";
12097      if (code == FHIRTypes.PERIOD)
12098        return "Period";
12099      if (code == FHIRTypes.PRIMITIVETYPE)
12100        return "PrimitiveType";
12101      if (code == FHIRTypes.BASE64BINARY)
12102        return "base64Binary";
12103      if (code == FHIRTypes.BOOLEAN)
12104        return "boolean";
12105      if (code == FHIRTypes.DATE)
12106        return "date";
12107      if (code == FHIRTypes.DATETIME)
12108        return "dateTime";
12109      if (code == FHIRTypes.DECIMAL)
12110        return "decimal";
12111      if (code == FHIRTypes.INSTANT)
12112        return "instant";
12113      if (code == FHIRTypes.INTEGER)
12114        return "integer";
12115      if (code == FHIRTypes.POSITIVEINT)
12116        return "positiveInt";
12117      if (code == FHIRTypes.UNSIGNEDINT)
12118        return "unsignedInt";
12119      if (code == FHIRTypes.INTEGER64)
12120        return "integer64";
12121      if (code == FHIRTypes.STRING)
12122        return "string";
12123      if (code == FHIRTypes.CODE)
12124        return "code";
12125      if (code == FHIRTypes.ID)
12126        return "id";
12127      if (code == FHIRTypes.MARKDOWN)
12128        return "markdown";
12129      if (code == FHIRTypes.TIME)
12130        return "time";
12131      if (code == FHIRTypes.URI)
12132        return "uri";
12133      if (code == FHIRTypes.CANONICAL)
12134        return "canonical";
12135      if (code == FHIRTypes.OID)
12136        return "oid";
12137      if (code == FHIRTypes.URL)
12138        return "url";
12139      if (code == FHIRTypes.UUID)
12140        return "uuid";
12141      if (code == FHIRTypes.QUANTITY)
12142        return "Quantity";
12143      if (code == FHIRTypes.AGE)
12144        return "Age";
12145      if (code == FHIRTypes.COUNT)
12146        return "Count";
12147      if (code == FHIRTypes.DISTANCE)
12148        return "Distance";
12149      if (code == FHIRTypes.DURATION)
12150        return "Duration";
12151      if (code == FHIRTypes.RANGE)
12152        return "Range";
12153      if (code == FHIRTypes.RATIO)
12154        return "Ratio";
12155      if (code == FHIRTypes.RATIORANGE)
12156        return "RatioRange";
12157      if (code == FHIRTypes.REFERENCE)
12158        return "Reference";
12159      if (code == FHIRTypes.RELATEDARTIFACT)
12160        return "RelatedArtifact";
12161      if (code == FHIRTypes.SAMPLEDDATA)
12162        return "SampledData";
12163      if (code == FHIRTypes.SIGNATURE)
12164        return "Signature";
12165      if (code == FHIRTypes.TRIGGERDEFINITION)
12166        return "TriggerDefinition";
12167      if (code == FHIRTypes.USAGECONTEXT)
12168        return "UsageContext";
12169      if (code == FHIRTypes.VIRTUALSERVICEDETAIL)
12170        return "VirtualServiceDetail";
12171      if (code == FHIRTypes.XHTML)
12172        return "xhtml";
12173      if (code == FHIRTypes.RESOURCE)
12174        return "Resource";
12175      if (code == FHIRTypes.BINARY)
12176        return "Binary";
12177      if (code == FHIRTypes.BUNDLE)
12178        return "Bundle";
12179      if (code == FHIRTypes.DOMAINRESOURCE)
12180        return "DomainResource";
12181      if (code == FHIRTypes.ACCOUNT)
12182        return "Account";
12183      if (code == FHIRTypes.ACTIVITYDEFINITION)
12184        return "ActivityDefinition";
12185      if (code == FHIRTypes.ACTORDEFINITION)
12186        return "ActorDefinition";
12187      if (code == FHIRTypes.ADMINISTRABLEPRODUCTDEFINITION)
12188        return "AdministrableProductDefinition";
12189      if (code == FHIRTypes.ADVERSEEVENT)
12190        return "AdverseEvent";
12191      if (code == FHIRTypes.ALLERGYINTOLERANCE)
12192        return "AllergyIntolerance";
12193      if (code == FHIRTypes.APPOINTMENT)
12194        return "Appointment";
12195      if (code == FHIRTypes.APPOINTMENTRESPONSE)
12196        return "AppointmentResponse";
12197      if (code == FHIRTypes.ARTIFACTASSESSMENT)
12198        return "ArtifactAssessment";
12199      if (code == FHIRTypes.AUDITEVENT)
12200        return "AuditEvent";
12201      if (code == FHIRTypes.BASIC)
12202        return "Basic";
12203      if (code == FHIRTypes.BIOLOGICALLYDERIVEDPRODUCT)
12204        return "BiologicallyDerivedProduct";
12205      if (code == FHIRTypes.BODYSTRUCTURE)
12206        return "BodyStructure";
12207      if (code == FHIRTypes.CANONICALRESOURCE)
12208        return "CanonicalResource";
12209      if (code == FHIRTypes.CAPABILITYSTATEMENT)
12210        return "CapabilityStatement";
12211      if (code == FHIRTypes.CAREPLAN)
12212        return "CarePlan";
12213      if (code == FHIRTypes.CARETEAM)
12214        return "CareTeam";
12215      if (code == FHIRTypes.CHARGEITEM)
12216        return "ChargeItem";
12217      if (code == FHIRTypes.CHARGEITEMDEFINITION)
12218        return "ChargeItemDefinition";
12219      if (code == FHIRTypes.CITATION)
12220        return "Citation";
12221      if (code == FHIRTypes.CLAIM)
12222        return "Claim";
12223      if (code == FHIRTypes.CLAIMRESPONSE)
12224        return "ClaimResponse";
12225      if (code == FHIRTypes.CLINICALIMPRESSION)
12226        return "ClinicalImpression";
12227      if (code == FHIRTypes.CLINICALUSEDEFINITION)
12228        return "ClinicalUseDefinition";
12229      if (code == FHIRTypes.CODESYSTEM)
12230        return "CodeSystem";
12231      if (code == FHIRTypes.COMMUNICATION)
12232        return "Communication";
12233      if (code == FHIRTypes.COMMUNICATIONREQUEST)
12234        return "CommunicationRequest";
12235      if (code == FHIRTypes.COMPARTMENTDEFINITION)
12236        return "CompartmentDefinition";
12237      if (code == FHIRTypes.COMPOSITION)
12238        return "Composition";
12239      if (code == FHIRTypes.CONCEPTMAP)
12240        return "ConceptMap";
12241      if (code == FHIRTypes.CONDITION)
12242        return "Condition";
12243      if (code == FHIRTypes.CONDITIONDEFINITION)
12244        return "ConditionDefinition";
12245      if (code == FHIRTypes.CONSENT)
12246        return "Consent";
12247      if (code == FHIRTypes.CONTRACT)
12248        return "Contract";
12249      if (code == FHIRTypes.COVERAGE)
12250        return "Coverage";
12251      if (code == FHIRTypes.COVERAGEELIGIBILITYREQUEST)
12252        return "CoverageEligibilityRequest";
12253      if (code == FHIRTypes.COVERAGEELIGIBILITYRESPONSE)
12254        return "CoverageEligibilityResponse";
12255      if (code == FHIRTypes.DETECTEDISSUE)
12256        return "DetectedIssue";
12257      if (code == FHIRTypes.DEVICE)
12258        return "Device";
12259      if (code == FHIRTypes.DEVICEDEFINITION)
12260        return "DeviceDefinition";
12261      if (code == FHIRTypes.DEVICEDISPENSE)
12262        return "DeviceDispense";
12263      if (code == FHIRTypes.DEVICEMETRIC)
12264        return "DeviceMetric";
12265      if (code == FHIRTypes.DEVICEREQUEST)
12266        return "DeviceRequest";
12267      if (code == FHIRTypes.DEVICEUSAGE)
12268        return "DeviceUsage";
12269      if (code == FHIRTypes.DIAGNOSTICREPORT)
12270        return "DiagnosticReport";
12271      if (code == FHIRTypes.DOCUMENTMANIFEST)
12272        return "DocumentManifest";
12273      if (code == FHIRTypes.DOCUMENTREFERENCE)
12274        return "DocumentReference";
12275      if (code == FHIRTypes.ENCOUNTER)
12276        return "Encounter";
12277      if (code == FHIRTypes.ENDPOINT)
12278        return "Endpoint";
12279      if (code == FHIRTypes.ENROLLMENTREQUEST)
12280        return "EnrollmentRequest";
12281      if (code == FHIRTypes.ENROLLMENTRESPONSE)
12282        return "EnrollmentResponse";
12283      if (code == FHIRTypes.EPISODEOFCARE)
12284        return "EpisodeOfCare";
12285      if (code == FHIRTypes.EVENTDEFINITION)
12286        return "EventDefinition";
12287      if (code == FHIRTypes.EVIDENCE)
12288        return "Evidence";
12289      if (code == FHIRTypes.EVIDENCEREPORT)
12290        return "EvidenceReport";
12291      if (code == FHIRTypes.EVIDENCEVARIABLE)
12292        return "EvidenceVariable";
12293      if (code == FHIRTypes.EXAMPLESCENARIO)
12294        return "ExampleScenario";
12295      if (code == FHIRTypes.EXPLANATIONOFBENEFIT)
12296        return "ExplanationOfBenefit";
12297      if (code == FHIRTypes.FAMILYMEMBERHISTORY)
12298        return "FamilyMemberHistory";
12299      if (code == FHIRTypes.FLAG)
12300        return "Flag";
12301      if (code == FHIRTypes.FORMULARYITEM)
12302        return "FormularyItem";
12303      if (code == FHIRTypes.GENOMICSTUDY)
12304        return "GenomicStudy";
12305      if (code == FHIRTypes.GOAL)
12306        return "Goal";
12307      if (code == FHIRTypes.GRAPHDEFINITION)
12308        return "GraphDefinition";
12309      if (code == FHIRTypes.GROUP)
12310        return "Group";
12311      if (code == FHIRTypes.GUIDANCERESPONSE)
12312        return "GuidanceResponse";
12313      if (code == FHIRTypes.HEALTHCARESERVICE)
12314        return "HealthcareService";
12315      if (code == FHIRTypes.IMAGINGSELECTION)
12316        return "ImagingSelection";
12317      if (code == FHIRTypes.IMAGINGSTUDY)
12318        return "ImagingStudy";
12319      if (code == FHIRTypes.IMMUNIZATION)
12320        return "Immunization";
12321      if (code == FHIRTypes.IMMUNIZATIONEVALUATION)
12322        return "ImmunizationEvaluation";
12323      if (code == FHIRTypes.IMMUNIZATIONRECOMMENDATION)
12324        return "ImmunizationRecommendation";
12325      if (code == FHIRTypes.IMPLEMENTATIONGUIDE)
12326        return "ImplementationGuide";
12327      if (code == FHIRTypes.INGREDIENT)
12328        return "Ingredient";
12329      if (code == FHIRTypes.INSURANCEPLAN)
12330        return "InsurancePlan";
12331      if (code == FHIRTypes.INVENTORYREPORT)
12332        return "InventoryReport";
12333      if (code == FHIRTypes.INVOICE)
12334        return "Invoice";
12335      if (code == FHIRTypes.LIBRARY)
12336        return "Library";
12337      if (code == FHIRTypes.LINKAGE)
12338        return "Linkage";
12339      if (code == FHIRTypes.LIST)
12340        return "List";
12341      if (code == FHIRTypes.LOCATION)
12342        return "Location";
12343      if (code == FHIRTypes.MANUFACTUREDITEMDEFINITION)
12344        return "ManufacturedItemDefinition";
12345      if (code == FHIRTypes.MEASURE)
12346        return "Measure";
12347      if (code == FHIRTypes.MEASUREREPORT)
12348        return "MeasureReport";
12349      if (code == FHIRTypes.MEDICATION)
12350        return "Medication";
12351      if (code == FHIRTypes.MEDICATIONADMINISTRATION)
12352        return "MedicationAdministration";
12353      if (code == FHIRTypes.MEDICATIONDISPENSE)
12354        return "MedicationDispense";
12355      if (code == FHIRTypes.MEDICATIONKNOWLEDGE)
12356        return "MedicationKnowledge";
12357      if (code == FHIRTypes.MEDICATIONREQUEST)
12358        return "MedicationRequest";
12359      if (code == FHIRTypes.MEDICATIONUSAGE)
12360        return "MedicationUsage";
12361      if (code == FHIRTypes.MEDICINALPRODUCTDEFINITION)
12362        return "MedicinalProductDefinition";
12363      if (code == FHIRTypes.MESSAGEDEFINITION)
12364        return "MessageDefinition";
12365      if (code == FHIRTypes.MESSAGEHEADER)
12366        return "MessageHeader";
12367      if (code == FHIRTypes.METADATARESOURCE)
12368        return "MetadataResource";
12369      if (code == FHIRTypes.MOLECULARSEQUENCE)
12370        return "MolecularSequence";
12371      if (code == FHIRTypes.NAMINGSYSTEM)
12372        return "NamingSystem";
12373      if (code == FHIRTypes.NUTRITIONINTAKE)
12374        return "NutritionIntake";
12375      if (code == FHIRTypes.NUTRITIONORDER)
12376        return "NutritionOrder";
12377      if (code == FHIRTypes.NUTRITIONPRODUCT)
12378        return "NutritionProduct";
12379      if (code == FHIRTypes.OBSERVATION)
12380        return "Observation";
12381      if (code == FHIRTypes.OBSERVATIONDEFINITION)
12382        return "ObservationDefinition";
12383      if (code == FHIRTypes.OPERATIONDEFINITION)
12384        return "OperationDefinition";
12385      if (code == FHIRTypes.OPERATIONOUTCOME)
12386        return "OperationOutcome";
12387      if (code == FHIRTypes.ORGANIZATION)
12388        return "Organization";
12389      if (code == FHIRTypes.ORGANIZATIONAFFILIATION)
12390        return "OrganizationAffiliation";
12391      if (code == FHIRTypes.PACKAGEDPRODUCTDEFINITION)
12392        return "PackagedProductDefinition";
12393      if (code == FHIRTypes.PATIENT)
12394        return "Patient";
12395      if (code == FHIRTypes.PAYMENTNOTICE)
12396        return "PaymentNotice";
12397      if (code == FHIRTypes.PAYMENTRECONCILIATION)
12398        return "PaymentReconciliation";
12399      if (code == FHIRTypes.PERMISSION)
12400        return "Permission";
12401      if (code == FHIRTypes.PERSON)
12402        return "Person";
12403      if (code == FHIRTypes.PLANDEFINITION)
12404        return "PlanDefinition";
12405      if (code == FHIRTypes.PRACTITIONER)
12406        return "Practitioner";
12407      if (code == FHIRTypes.PRACTITIONERROLE)
12408        return "PractitionerRole";
12409      if (code == FHIRTypes.PROCEDURE)
12410        return "Procedure";
12411      if (code == FHIRTypes.PROVENANCE)
12412        return "Provenance";
12413      if (code == FHIRTypes.QUESTIONNAIRE)
12414        return "Questionnaire";
12415      if (code == FHIRTypes.QUESTIONNAIRERESPONSE)
12416        return "QuestionnaireResponse";
12417      if (code == FHIRTypes.REGULATEDAUTHORIZATION)
12418        return "RegulatedAuthorization";
12419      if (code == FHIRTypes.RELATEDPERSON)
12420        return "RelatedPerson";
12421      if (code == FHIRTypes.REQUESTORCHESTRATION)
12422        return "RequestOrchestration";
12423      if (code == FHIRTypes.REQUIREMENTS)
12424        return "Requirements";
12425      if (code == FHIRTypes.RESEARCHSTUDY)
12426        return "ResearchStudy";
12427      if (code == FHIRTypes.RESEARCHSUBJECT)
12428        return "ResearchSubject";
12429      if (code == FHIRTypes.RISKASSESSMENT)
12430        return "RiskAssessment";
12431      if (code == FHIRTypes.SCHEDULE)
12432        return "Schedule";
12433      if (code == FHIRTypes.SEARCHPARAMETER)
12434        return "SearchParameter";
12435      if (code == FHIRTypes.SERVICEREQUEST)
12436        return "ServiceRequest";
12437      if (code == FHIRTypes.SLOT)
12438        return "Slot";
12439      if (code == FHIRTypes.SPECIMEN)
12440        return "Specimen";
12441      if (code == FHIRTypes.SPECIMENDEFINITION)
12442        return "SpecimenDefinition";
12443      if (code == FHIRTypes.STRUCTUREDEFINITION)
12444        return "StructureDefinition";
12445      if (code == FHIRTypes.STRUCTUREMAP)
12446        return "StructureMap";
12447      if (code == FHIRTypes.SUBSCRIPTION)
12448        return "Subscription";
12449      if (code == FHIRTypes.SUBSCRIPTIONSTATUS)
12450        return "SubscriptionStatus";
12451      if (code == FHIRTypes.SUBSCRIPTIONTOPIC)
12452        return "SubscriptionTopic";
12453      if (code == FHIRTypes.SUBSTANCE)
12454        return "Substance";
12455      if (code == FHIRTypes.SUBSTANCEDEFINITION)
12456        return "SubstanceDefinition";
12457      if (code == FHIRTypes.SUBSTANCENUCLEICACID)
12458        return "SubstanceNucleicAcid";
12459      if (code == FHIRTypes.SUBSTANCEPOLYMER)
12460        return "SubstancePolymer";
12461      if (code == FHIRTypes.SUBSTANCEPROTEIN)
12462        return "SubstanceProtein";
12463      if (code == FHIRTypes.SUBSTANCEREFERENCEINFORMATION)
12464        return "SubstanceReferenceInformation";
12465      if (code == FHIRTypes.SUBSTANCESOURCEMATERIAL)
12466        return "SubstanceSourceMaterial";
12467      if (code == FHIRTypes.SUPPLYDELIVERY)
12468        return "SupplyDelivery";
12469      if (code == FHIRTypes.SUPPLYREQUEST)
12470        return "SupplyRequest";
12471      if (code == FHIRTypes.TASK)
12472        return "Task";
12473      if (code == FHIRTypes.TERMINOLOGYCAPABILITIES)
12474        return "TerminologyCapabilities";
12475      if (code == FHIRTypes.TESTREPORT)
12476        return "TestReport";
12477      if (code == FHIRTypes.TESTSCRIPT)
12478        return "TestScript";
12479      if (code == FHIRTypes.TRANSPORT)
12480        return "Transport";
12481      if (code == FHIRTypes.VALUESET)
12482        return "ValueSet";
12483      if (code == FHIRTypes.VERIFICATIONRESULT)
12484        return "VerificationResult";
12485      if (code == FHIRTypes.VISIONPRESCRIPTION)
12486        return "VisionPrescription";
12487      if (code == FHIRTypes.PARAMETERS)
12488        return "Parameters";
12489      return "?";
12490      }
12491    public String toSystem(FHIRTypes code) {
12492      return code.getSystem();
12493      }
12494    }
12495
12496    public enum FHIRVersion {
12497        /**
12498         * Oldest archived version of FHIR.
12499         */
12500        _0_01, 
12501        /**
12502         * 1st Draft for Comment (Sept 2012 Ballot).
12503         */
12504        _0_05, 
12505        /**
12506         * 2nd Draft for Comment (January 2013 Ballot).
12507         */
12508        _0_06, 
12509        /**
12510         * DSTU 1 Ballot version.
12511         */
12512        _0_11, 
12513        /**
12514         * DSTU 1 version.
12515         */
12516        _0_0, 
12517        /**
12518         * DSTU 1 Official version.
12519         */
12520        _0_0_80, 
12521        /**
12522         * DSTU 1 Official version Technical Errata #1.
12523         */
12524        _0_0_81, 
12525        /**
12526         * DSTU 1 Official version Technical Errata #2.
12527         */
12528        _0_0_82, 
12529        /**
12530         * January 2015 Ballot.
12531         */
12532        _0_4, 
12533        /**
12534         * Draft For Comment (January 2015 Ballot).
12535         */
12536        _0_4_0, 
12537        /**
12538         * May 2015 Ballot.
12539         */
12540        _0_5, 
12541        /**
12542         * DSTU 2 Ballot version (May 2015 Ballot).
12543         */
12544        _0_5_0, 
12545        /**
12546         * DSTU 2 version.
12547         */
12548        _1_0, 
12549        /**
12550         * DSTU 2 QA Preview + CQIF Ballot (Sep 2015).
12551         */
12552        _1_0_0, 
12553        /**
12554         * DSTU 2 (Official version).
12555         */
12556        _1_0_1, 
12557        /**
12558         * DSTU 2 (Official version) with 1 technical errata.
12559         */
12560        _1_0_2, 
12561        /**
12562         * GAO Ballot version.
12563         */
12564        _1_1, 
12565        /**
12566         * GAO Ballot + draft changes to main FHIR standard.
12567         */
12568        _1_1_0, 
12569        /**
12570         * Connectathon 12 (Montreal) version.
12571         */
12572        _1_4, 
12573        /**
12574         * CQF on FHIR Ballot + Connectathon 12 (Montreal).
12575         */
12576        _1_4_0, 
12577        /**
12578         * Connectathon 13 (Baltimore) version.
12579         */
12580        _1_6, 
12581        /**
12582         * FHIR STU3 Ballot + Connectathon 13 (Baltimore).
12583         */
12584        _1_6_0, 
12585        /**
12586         * Connectathon 14 (San Antonio) version.
12587         */
12588        _1_8, 
12589        /**
12590         * FHIR STU3 Candidate + Connectathon 14 (San Antonio).
12591         */
12592        _1_8_0, 
12593        /**
12594         * STU3 version.
12595         */
12596        _3_0, 
12597        /**
12598         * FHIR Release 3 (STU).
12599         */
12600        _3_0_0, 
12601        /**
12602         * FHIR Release 3 (STU) with 1 technical errata.
12603         */
12604        _3_0_1, 
12605        /**
12606         * FHIR Release 3 (STU) with 2 technical errata.
12607         */
12608        _3_0_2, 
12609        /**
12610         * R4 Ballot #1 version.
12611         */
12612        _3_3, 
12613        /**
12614         * R4 Ballot #1 + Connectaton 18 (Cologne).
12615         */
12616        _3_3_0, 
12617        /**
12618         * R4 Ballot #2 version.
12619         */
12620        _3_5, 
12621        /**
12622         * R4 Ballot #2 + Connectathon 19 (Baltimore).
12623         */
12624        _3_5_0, 
12625        /**
12626         * R4 version.
12627         */
12628        _4_0, 
12629        /**
12630         * FHIR Release 4 (Normative + STU).
12631         */
12632        _4_0_0, 
12633        /**
12634         * FHIR Release 4 (Normative + STU) with 1 technical errata.
12635         */
12636        _4_0_1, 
12637        /**
12638         * R4B Ballot #1 version.
12639         */
12640        _4_1, 
12641        /**
12642         * R4B Ballot #1 + Connectathon 27 (Virtual).
12643         */
12644        _4_1_0, 
12645        /**
12646         * R5 Preview #1 version.
12647         */
12648        _4_2, 
12649        /**
12650         * R5 Preview #1 + Connectathon 23 (Sydney).
12651         */
12652        _4_2_0, 
12653        /**
12654         * R4B version.
12655         */
12656        _4_3, 
12657        /**
12658         * FHIR Release 4B (Normative + STU).
12659         */
12660        _4_3_0,
12661        _4_3_0_SNAPSHOT1,
12662        _4_3_0_CIBUILD,
12663
12664        /**
12665         * R5 Preview #2 version.
12666         */
12667        _4_4, 
12668        /**
12669         * R5 Preview #2 + Connectathon 24 (Virtual).
12670         */
12671        _4_4_0, 
12672        /**
12673         * R5 Preview #3 version.
12674         */
12675        _4_5, 
12676        /**
12677         * R5 Preview #3 + Connectathon 25 (Virtual).
12678         */
12679        _4_5_0, 
12680        /**
12681         * R5 Draft Ballot version.
12682         */
12683        _4_6, 
12684        /**
12685         * R5 Draft Ballot + Connectathon 27 (Virtual).
12686         */
12687        _4_6_0, 
12688        /**
12689         * R5 Versions.
12690         */
12691        _5_0, 
12692        /**
12693         * R5 Final Version.
12694         */
12695        _5_0_0, 
12696        /**
12697         * R5 Rolling ci-build.
12698         */
12699        _5_0_0CIBUILD, 
12700        /**
12701         * R5 Preview #2.
12702         */
12703        _5_0_0SNAPSHOT1, 
12704        /**
12705         * R5 Interim tooling stage.
12706         */
12707        _5_0_0SNAPSHOT2, 
12708        /**
12709         * R5 Ballot.
12710         */
12711        _5_0_0BALLOT, 
12712        /**
12713         * R5 January 2023 Staging Release + Connectathon 32.
12714         */
12715        _5_0_0SNAPSHOT3, 
12716        /**
12717         * added to help the parsers
12718         */
12719        NULL;
12720        public static FHIRVersion fromCode(String codeString) throws FHIRException {
12721            if (codeString == null || "".equals(codeString))
12722                return null;
12723        if ("0.01".equals(codeString))
12724          return _0_01;
12725        if ("0.05".equals(codeString))
12726          return _0_05;
12727        if ("0.06".equals(codeString))
12728          return _0_06;
12729        if ("0.11".equals(codeString))
12730          return _0_11;
12731        if ("0.0".equals(codeString))
12732          return _0_0;
12733        if ("0.0.80".equals(codeString))
12734          return _0_0_80;
12735        if ("0.0.81".equals(codeString))
12736          return _0_0_81;
12737        if ("0.0.82".equals(codeString))
12738          return _0_0_82;
12739        if ("0.4".equals(codeString))
12740          return _0_4;
12741        if ("0.4.0".equals(codeString))
12742          return _0_4_0;
12743        if ("0.5".equals(codeString))
12744          return _0_5;
12745        if ("0.5.0".equals(codeString))
12746          return _0_5_0;
12747        if ("1.0".equals(codeString))
12748          return _1_0;
12749        if ("1.0.0".equals(codeString))
12750          return _1_0_0;
12751        if ("1.0.1".equals(codeString))
12752          return _1_0_1;
12753        if ("1.0.2".equals(codeString))
12754          return _1_0_2;
12755        if ("1.1".equals(codeString))
12756          return _1_1;
12757        if ("1.1.0".equals(codeString))
12758          return _1_1_0;
12759        if ("1.4".equals(codeString))
12760          return _1_4;
12761        if ("1.4.0".equals(codeString))
12762          return _1_4_0;
12763        if ("1.6".equals(codeString))
12764          return _1_6;
12765        if ("1.6.0".equals(codeString))
12766          return _1_6_0;
12767        if ("1.8".equals(codeString))
12768          return _1_8;
12769        if ("1.8.0".equals(codeString))
12770          return _1_8_0;
12771        if ("3.0".equals(codeString))
12772          return _3_0;
12773        if ("3.0.0".equals(codeString))
12774          return _3_0_0;
12775        if ("3.0.1".equals(codeString))
12776          return _3_0_1;
12777        if ("3.0.2".equals(codeString))
12778          return _3_0_2;
12779        if ("3.3".equals(codeString))
12780          return _3_3;
12781        if ("3.3.0".equals(codeString))
12782          return _3_3_0;
12783        if ("3.5".equals(codeString))
12784          return _3_5;
12785        if ("3.5.0".equals(codeString))
12786          return _3_5_0;
12787        if ("4.0".equals(codeString))
12788          return _4_0;
12789        if ("4.0.0".equals(codeString))
12790          return _4_0_0;
12791        if ("4.0.1".equals(codeString))
12792          return _4_0_1;
12793        if ("4.1".equals(codeString))
12794          return _4_1;
12795        if ("4.1.0".equals(codeString))
12796          return _4_1_0;
12797        if ("4.2".equals(codeString))
12798          return _4_2;
12799        if ("4.2.0".equals(codeString))
12800          return _4_2_0;
12801        if ("4.3".equals(codeString))
12802          return _4_3;
12803        if ("4.3.0".equals(codeString))
12804          return _4_3_0;
12805        if ("4.3.0-snapshot1".equals(codeString))
12806          return _4_3_0_SNAPSHOT1;
12807        if ("4.3.0-cibuild".equals(codeString))
12808          return _4_3_0_CIBUILD;
12809        if ("4.4".equals(codeString))
12810          return _4_4;
12811        if ("4.4.0".equals(codeString))
12812          return _4_4_0;
12813        if ("4.5".equals(codeString))
12814          return _4_5;
12815        if ("4.5.0".equals(codeString))
12816          return _4_5_0;
12817        if ("4.6".equals(codeString))
12818          return _4_6;
12819        if ("4.6.0".equals(codeString))
12820          return _4_6_0;
12821        if ("5.0".equals(codeString))
12822          return _5_0;
12823        if ("5.0.0".equals(codeString))
12824          return _5_0_0;
12825        if ("5.0.0-cibuild".equals(codeString))
12826          return _5_0_0CIBUILD;
12827        if ("5.0.0-snapshot1".equals(codeString))
12828          return _5_0_0SNAPSHOT1;
12829        if ("5.0.0-snapshot2".equals(codeString))
12830          return _5_0_0SNAPSHOT2;
12831        if ("5.0.0-ballot".equals(codeString))
12832          return _5_0_0BALLOT;
12833        if ("5.0.0-snapshot3".equals(codeString))
12834          return _5_0_0SNAPSHOT3;
12835        throw new FHIRException("Unknown FHIRVersion code '"+codeString+"'");
12836        }
12837        public String toCode() {
12838          switch (this) {
12839            case _0_01: return "0.01";
12840            case _0_05: return "0.05";
12841            case _0_06: return "0.06";
12842            case _0_11: return "0.11";
12843            case _0_0: return "0.0";
12844            case _0_0_80: return "0.0.80";
12845            case _0_0_81: return "0.0.81";
12846            case _0_0_82: return "0.0.82";
12847            case _0_4: return "0.4";
12848            case _0_4_0: return "0.4.0";
12849            case _0_5: return "0.5";
12850            case _0_5_0: return "0.5.0";
12851            case _1_0: return "1.0";
12852            case _1_0_0: return "1.0.0";
12853            case _1_0_1: return "1.0.1";
12854            case _1_0_2: return "1.0.2";
12855            case _1_1: return "1.1";
12856            case _1_1_0: return "1.1.0";
12857            case _1_4: return "1.4";
12858            case _1_4_0: return "1.4.0";
12859            case _1_6: return "1.6";
12860            case _1_6_0: return "1.6.0";
12861            case _1_8: return "1.8";
12862            case _1_8_0: return "1.8.0";
12863            case _3_0: return "3.0";
12864            case _3_0_0: return "3.0.0";
12865            case _3_0_1: return "3.0.1";
12866            case _3_0_2: return "3.0.2";
12867            case _3_3: return "3.3";
12868            case _3_3_0: return "3.3.0";
12869            case _3_5: return "3.5";
12870            case _3_5_0: return "3.5.0";
12871            case _4_0: return "4.0";
12872            case _4_0_0: return "4.0.0";
12873            case _4_0_1: return "4.0.1";
12874            case _4_1: return "4.1";
12875            case _4_1_0: return "4.1.0";
12876            case _4_2: return "4.2";
12877            case _4_2_0: return "4.2.0";
12878            case _4_3: return "4.3";
12879            case _4_3_0: return "4.3.0";
12880            case _4_3_0_SNAPSHOT1: return "4.3.0-snapshot1";
12881            case _4_3_0_CIBUILD: return "4.3.0-cibuild";
12882            case _4_4: return "4.4";
12883            case _4_4_0: return "4.4.0";
12884            case _4_5: return "4.5";
12885            case _4_5_0: return "4.5.0";
12886            case _4_6: return "4.6";
12887            case _4_6_0: return "4.6.0";
12888            case _5_0: return "5.0";
12889            case _5_0_0: return "5.0.0";
12890            case _5_0_0CIBUILD: return "5.0.0-cibuild";
12891            case _5_0_0SNAPSHOT1: return "5.0.0-snapshot1";
12892            case _5_0_0SNAPSHOT2: return "5.0.0-snapshot2";
12893            case _5_0_0BALLOT: return "5.0.0-ballot";
12894            case _5_0_0SNAPSHOT3: return "5.0.0-snapshot3";
12895            case NULL: return null;
12896            default: return "?";
12897          }
12898        }
12899        public String getSystem() {
12900          switch (this) {
12901            case _0_01: return "http://hl7.org/fhir/FHIR-version";
12902            case _0_05: return "http://hl7.org/fhir/FHIR-version";
12903            case _0_06: return "http://hl7.org/fhir/FHIR-version";
12904            case _0_11: return "http://hl7.org/fhir/FHIR-version";
12905            case _0_0: return "http://hl7.org/fhir/FHIR-version";
12906            case _0_0_80: return "http://hl7.org/fhir/FHIR-version";
12907            case _0_0_81: return "http://hl7.org/fhir/FHIR-version";
12908            case _0_0_82: return "http://hl7.org/fhir/FHIR-version";
12909            case _0_4: return "http://hl7.org/fhir/FHIR-version";
12910            case _0_4_0: return "http://hl7.org/fhir/FHIR-version";
12911            case _0_5: return "http://hl7.org/fhir/FHIR-version";
12912            case _0_5_0: return "http://hl7.org/fhir/FHIR-version";
12913            case _1_0: return "http://hl7.org/fhir/FHIR-version";
12914            case _1_0_0: return "http://hl7.org/fhir/FHIR-version";
12915            case _1_0_1: return "http://hl7.org/fhir/FHIR-version";
12916            case _1_0_2: return "http://hl7.org/fhir/FHIR-version";
12917            case _1_1: return "http://hl7.org/fhir/FHIR-version";
12918            case _1_1_0: return "http://hl7.org/fhir/FHIR-version";
12919            case _1_4: return "http://hl7.org/fhir/FHIR-version";
12920            case _1_4_0: return "http://hl7.org/fhir/FHIR-version";
12921            case _1_6: return "http://hl7.org/fhir/FHIR-version";
12922            case _1_6_0: return "http://hl7.org/fhir/FHIR-version";
12923            case _1_8: return "http://hl7.org/fhir/FHIR-version";
12924            case _1_8_0: return "http://hl7.org/fhir/FHIR-version";
12925            case _3_0: return "http://hl7.org/fhir/FHIR-version";
12926            case _3_0_0: return "http://hl7.org/fhir/FHIR-version";
12927            case _3_0_1: return "http://hl7.org/fhir/FHIR-version";
12928            case _3_0_2: return "http://hl7.org/fhir/FHIR-version";
12929            case _3_3: return "http://hl7.org/fhir/FHIR-version";
12930            case _3_3_0: return "http://hl7.org/fhir/FHIR-version";
12931            case _3_5: return "http://hl7.org/fhir/FHIR-version";
12932            case _3_5_0: return "http://hl7.org/fhir/FHIR-version";
12933            case _4_0: return "http://hl7.org/fhir/FHIR-version";
12934            case _4_0_0: return "http://hl7.org/fhir/FHIR-version";
12935            case _4_0_1: return "http://hl7.org/fhir/FHIR-version";
12936            case _4_1: return "http://hl7.org/fhir/FHIR-version";
12937            case _4_1_0: return "http://hl7.org/fhir/FHIR-version";
12938            case _4_2: return "http://hl7.org/fhir/FHIR-version";
12939            case _4_2_0: return "http://hl7.org/fhir/FHIR-version";
12940            case _4_3: return "http://hl7.org/fhir/FHIR-version";
12941            case _4_3_0: return "http://hl7.org/fhir/FHIR-version";
12942            case _4_3_0_SNAPSHOT1: return "http://hl7.org/fhir/FHIR-version";
12943            case _4_3_0_CIBUILD: return "http://hl7.org/fhir/FHIR-version";
12944            case _4_4: return "http://hl7.org/fhir/FHIR-version";
12945            case _4_4_0: return "http://hl7.org/fhir/FHIR-version";
12946            case _4_5: return "http://hl7.org/fhir/FHIR-version";
12947            case _4_5_0: return "http://hl7.org/fhir/FHIR-version";
12948            case _4_6: return "http://hl7.org/fhir/FHIR-version";
12949            case _4_6_0: return "http://hl7.org/fhir/FHIR-version";
12950            case _5_0: return "http://hl7.org/fhir/FHIR-version";
12951            case _5_0_0: return "http://hl7.org/fhir/FHIR-version";
12952            case _5_0_0CIBUILD: return "http://hl7.org/fhir/FHIR-version";
12953            case _5_0_0SNAPSHOT1: return "http://hl7.org/fhir/FHIR-version";
12954            case _5_0_0SNAPSHOT2: return "http://hl7.org/fhir/FHIR-version";
12955            case _5_0_0BALLOT: return "http://hl7.org/fhir/FHIR-version";
12956            case _5_0_0SNAPSHOT3: return "http://hl7.org/fhir/FHIR-version";
12957            case NULL: return null;
12958            default: return "?";
12959          }
12960        }
12961        public String getDefinition() {
12962          switch (this) {
12963            case _0_01: return "Oldest archived version of FHIR.";
12964            case _0_05: return "1st Draft for Comment (Sept 2012 Ballot).";
12965            case _0_06: return "2nd Draft for Comment (January 2013 Ballot).";
12966            case _0_11: return "DSTU 1 Ballot version.";
12967            case _0_0: return "DSTU 1 version.";
12968            case _0_0_80: return "DSTU 1 Official version.";
12969            case _0_0_81: return "DSTU 1 Official version Technical Errata #1.";
12970            case _0_0_82: return "DSTU 1 Official version Technical Errata #2.";
12971            case _0_4: return "January 2015 Ballot.";
12972            case _0_4_0: return "Draft For Comment (January 2015 Ballot).";
12973            case _0_5: return "May 2015 Ballot.";
12974            case _0_5_0: return "DSTU 2 Ballot version (May 2015 Ballot).";
12975            case _1_0: return "DSTU 2 version.";
12976            case _1_0_0: return "DSTU 2 QA Preview + CQIF Ballot (Sep 2015).";
12977            case _1_0_1: return "DSTU 2 (Official version).";
12978            case _1_0_2: return "DSTU 2 (Official version) with 1 technical errata.";
12979            case _1_1: return "GAO Ballot version.";
12980            case _1_1_0: return "GAO Ballot + draft changes to main FHIR standard.";
12981            case _1_4: return "Connectathon 12 (Montreal) version.";
12982            case _1_4_0: return "CQF on FHIR Ballot + Connectathon 12 (Montreal).";
12983            case _1_6: return "Connectathon 13 (Baltimore) version.";
12984            case _1_6_0: return "FHIR STU3 Ballot + Connectathon 13 (Baltimore).";
12985            case _1_8: return "Connectathon 14 (San Antonio) version.";
12986            case _1_8_0: return "FHIR STU3 Candidate + Connectathon 14 (San Antonio).";
12987            case _3_0: return "STU3 version.";
12988            case _3_0_0: return "FHIR Release 3 (STU).";
12989            case _3_0_1: return "FHIR Release 3 (STU) with 1 technical errata.";
12990            case _3_0_2: return "FHIR Release 3 (STU) with 2 technical errata.";
12991            case _3_3: return "R4 Ballot #1 version.";
12992            case _3_3_0: return "R4 Ballot #1 + Connectaton 18 (Cologne).";
12993            case _3_5: return "R4 Ballot #2 version.";
12994            case _3_5_0: return "R4 Ballot #2 + Connectathon 19 (Baltimore).";
12995            case _4_0: return "R4 version.";
12996            case _4_0_0: return "FHIR Release 4 (Normative + STU).";
12997            case _4_0_1: return "FHIR Release 4 (Normative + STU) with 1 technical errata.";
12998            case _4_1: return "R4B Ballot #1 version.";
12999            case _4_1_0: return "R4B Ballot #1 + Connectathon 27 (Virtual).";
13000            case _4_2: return "R5 Preview #1 version.";
13001            case _4_2_0: return "R5 Preview #1 + Connectathon 23 (Sydney).";
13002            case _4_3: return "R4B version.";
13003            case _4_3_0: return "FHIR Release 4B (Normative + STU).";
13004            case _4_3_0_SNAPSHOT1: return "FHIR Release 4B Snapshot #1";
13005            case _4_3_0_CIBUILD: return "FHIR Release 4B CI-Builld";
13006            case _4_4: return "R5 Preview #2 version.";
13007            case _4_4_0: return "R5 Preview #2 + Connectathon 24 (Virtual).";
13008            case _4_5: return "R5 Preview #3 version.";
13009            case _4_5_0: return "R5 Preview #3 + Connectathon 25 (Virtual).";
13010            case _4_6: return "R5 Draft Ballot version.";
13011            case _4_6_0: return "R5 Draft Ballot + Connectathon 27 (Virtual).";
13012            case _5_0: return "R5 Versions.";
13013            case _5_0_0: return "R5 Final Version.";
13014            case _5_0_0CIBUILD: return "R5 Rolling ci-build.";
13015            case _5_0_0SNAPSHOT1: return "R5 Preview #2.";
13016            case _5_0_0SNAPSHOT2: return "R5 Interim tooling stage.";
13017            case _5_0_0BALLOT: return "R5 Ballot.";
13018            case _5_0_0SNAPSHOT3: return "R5 January 2023 Staging Release + Connectathon 32.";
13019            case NULL: return null;
13020            default: return "?";
13021          }
13022        }
13023        public String getDisplay() {
13024          switch (this) {
13025            case _0_01: return "0.01";
13026            case _0_05: return "0.05";
13027            case _0_06: return "0.06";
13028            case _0_11: return "0.11";
13029            case _0_0: return "0.0";
13030            case _0_0_80: return "0.0.80";
13031            case _0_0_81: return "0.0.81";
13032            case _0_0_82: return "0.0.82";
13033            case _0_4: return "0.4";
13034            case _0_4_0: return "0.4.0";
13035            case _0_5: return "0.5";
13036            case _0_5_0: return "0.5.0";
13037            case _1_0: return "1.0";
13038            case _1_0_0: return "1.0.0";
13039            case _1_0_1: return "1.0.1";
13040            case _1_0_2: return "1.0.2";
13041            case _1_1: return "1.1";
13042            case _1_1_0: return "1.1.0";
13043            case _1_4: return "1.4";
13044            case _1_4_0: return "1.4.0";
13045            case _1_6: return "1.6";
13046            case _1_6_0: return "1.6.0";
13047            case _1_8: return "1.8";
13048            case _1_8_0: return "1.8.0";
13049            case _3_0: return "3.0";
13050            case _3_0_0: return "3.0.0";
13051            case _3_0_1: return "3.0.1";
13052            case _3_0_2: return "3.0.2";
13053            case _3_3: return "3.3";
13054            case _3_3_0: return "3.3.0";
13055            case _3_5: return "3.5";
13056            case _3_5_0: return "3.5.0";
13057            case _4_0: return "4.0";
13058            case _4_0_0: return "4.0.0";
13059            case _4_0_1: return "4.0.1";
13060            case _4_1: return "4.1";
13061            case _4_1_0: return "4.1.0";
13062            case _4_2: return "4.2";
13063            case _4_2_0: return "4.2.0";
13064            case _4_3: return "4.3";
13065            case _4_3_0: return "4.3.0";
13066            case _4_3_0_SNAPSHOT1: return "4.3.0-snapshot";
13067            case _4_3_0_CIBUILD: return "4.3.0-cibuild";
13068            case _4_4: return "4.4";
13069            case _4_4_0: return "4.4.0";
13070            case _4_5: return "4.5";
13071            case _4_5_0: return "4.5.0";
13072            case _4_6: return "4.6";
13073            case _4_6_0: return "4.6.0";
13074            case _5_0: return "5.0";
13075            case _5_0_0: return "5.0.0";
13076            case _5_0_0CIBUILD: return "5.0.0-cibuild";
13077            case _5_0_0SNAPSHOT1: return "5.0.0-snapshot1";
13078            case _5_0_0SNAPSHOT2: return "5.0.0-snapshot2";
13079            case _5_0_0BALLOT: return "5.0.0-ballot";
13080            case _5_0_0SNAPSHOT3: return "5.0.0-snapshot3";
13081            case NULL: return null;
13082            default: return "?";
13083          }
13084        }
13085        
13086        public static boolean isValidCode(String codeString) { 
13087          if (codeString == null || "".equals(codeString)) 
13088              return false; 
13089      if ("0.01".equals(codeString)) 
13090        return true; 
13091      if ("0.05".equals(codeString)) 
13092        return true; 
13093      if ("0.06".equals(codeString)) 
13094        return true; 
13095      if ("0.11".equals(codeString)) 
13096        return true; 
13097      if ("0.0".equals(codeString)) 
13098        return true; 
13099      if ("0.0.80".equals(codeString)) 
13100        return true; 
13101      if ("0.0.81".equals(codeString)) 
13102        return true; 
13103      if ("0.0.82".equals(codeString)) 
13104        return true; 
13105      if ("0.4".equals(codeString)) 
13106        return true; 
13107      if ("0.4.0".equals(codeString)) 
13108        return true; 
13109      if ("0.5".equals(codeString)) 
13110        return true; 
13111      if ("0.5.0".equals(codeString)) 
13112        return true; 
13113      if ("1.0".equals(codeString)) 
13114        return true; 
13115      if ("1.0.0".equals(codeString)) 
13116        return true; 
13117      if ("1.0.1".equals(codeString)) 
13118        return true; 
13119      if ("1.0.2".equals(codeString)) 
13120        return true; 
13121      if ("1.1".equals(codeString)) 
13122        return true; 
13123      if ("1.1.0".equals(codeString)) 
13124        return true; 
13125      if ("1.4".equals(codeString)) 
13126        return true; 
13127      if ("1.4.0".equals(codeString)) 
13128        return true; 
13129      if ("1.6".equals(codeString)) 
13130        return true; 
13131      if ("1.6.0".equals(codeString)) 
13132        return true; 
13133      if ("1.8".equals(codeString)) 
13134        return true; 
13135      if ("1.8.0".equals(codeString)) 
13136        return true; 
13137      if ("3.0".equals(codeString)) 
13138        return true; 
13139      if ("3.0.0".equals(codeString)) 
13140        return true; 
13141      if ("3.0.1".equals(codeString)) 
13142        return true; 
13143      if ("3.0.2".equals(codeString)) 
13144        return true; 
13145      if ("3.3".equals(codeString)) 
13146        return true; 
13147      if ("3.3.0".equals(codeString)) 
13148        return true; 
13149      if ("3.5".equals(codeString)) 
13150        return true; 
13151      if ("3.5.0".equals(codeString)) 
13152        return true; 
13153      if ("4.0".equals(codeString)) 
13154        return true; 
13155      if ("4.0.0".equals(codeString)) 
13156        return true; 
13157      if ("4.0.1".equals(codeString)) 
13158        return true; 
13159      if ("4.1".equals(codeString)) 
13160        return true; 
13161      if ("4.1.0".equals(codeString)) 
13162        return true; 
13163      if ("4.2".equals(codeString)) 
13164        return true; 
13165      if ("4.2.0".equals(codeString)) 
13166        return true; 
13167      if ("4.3".equals(codeString)) 
13168        return true; 
13169      if ("4.3.0".equals(codeString)) 
13170        return true; 
13171      if ("4.4".equals(codeString)) 
13172        return true; 
13173      if ("4.4.0".equals(codeString)) 
13174        return true; 
13175      if ("4.5".equals(codeString)) 
13176        return true; 
13177      if ("4.5.0".equals(codeString)) 
13178        return true; 
13179      if ("4.6".equals(codeString)) 
13180        return true; 
13181      if ("4.6.0".equals(codeString)) 
13182        return true; 
13183      if ("5.0".equals(codeString)) 
13184        return true; 
13185      if ("5.0.0".equals(codeString)) 
13186        return true; 
13187      if ("5.0.0-cibuild".equals(codeString)) 
13188        return true; 
13189      if ("5.0.0-snapshot1".equals(codeString)) 
13190        return true; 
13191      if ("5.0.0-snapshot2".equals(codeString)) 
13192        return true; 
13193      if ("5.0.0-ballot".equals(codeString)) 
13194        return true; 
13195      return false; 
13196      } 
13197 
13198
13199// manual code from configuration.txt:
13200//public String toCode(int len) {
13201//          return toCode().substring(0, len);
13202//        }
13203//
13204//     
13205//        @Override
13206//        public String toString() {
13207//          return toCode();
13208//        }
13209//        
13210//        
13211//        public boolean isR4B() {
13212//          return toCode().startsWith("4.1");
13213//        }
13214//        
13215// end addition
13216    }
13217
13218  public static class FHIRVersionEnumFactory implements EnumFactory<FHIRVersion> {
13219    public FHIRVersion fromCode(String codeString) throws IllegalArgumentException {
13220      if (codeString == null || "".equals(codeString))
13221            if (codeString == null || "".equals(codeString))
13222                return null;
13223        if ("0.01".equals(codeString))
13224          return FHIRVersion._0_01;
13225        if ("0.05".equals(codeString))
13226          return FHIRVersion._0_05;
13227        if ("0.06".equals(codeString))
13228          return FHIRVersion._0_06;
13229        if ("0.11".equals(codeString))
13230          return FHIRVersion._0_11;
13231        if ("0.0".equals(codeString))
13232          return FHIRVersion._0_0;
13233        if ("0.0.80".equals(codeString))
13234          return FHIRVersion._0_0_80;
13235        if ("0.0.81".equals(codeString))
13236          return FHIRVersion._0_0_81;
13237        if ("0.0.82".equals(codeString))
13238          return FHIRVersion._0_0_82;
13239        if ("0.4".equals(codeString))
13240          return FHIRVersion._0_4;
13241        if ("0.4.0".equals(codeString))
13242          return FHIRVersion._0_4_0;
13243        if ("0.5".equals(codeString))
13244          return FHIRVersion._0_5;
13245        if ("0.5.0".equals(codeString))
13246          return FHIRVersion._0_5_0;
13247        if ("1.0".equals(codeString))
13248          return FHIRVersion._1_0;
13249        if ("1.0.0".equals(codeString))
13250          return FHIRVersion._1_0_0;
13251        if ("1.0.1".equals(codeString))
13252          return FHIRVersion._1_0_1;
13253        if ("1.0.2".equals(codeString))
13254          return FHIRVersion._1_0_2;
13255        if ("1.1".equals(codeString))
13256          return FHIRVersion._1_1;
13257        if ("1.1.0".equals(codeString))
13258          return FHIRVersion._1_1_0;
13259        if ("1.4".equals(codeString))
13260          return FHIRVersion._1_4;
13261        if ("1.4.0".equals(codeString))
13262          return FHIRVersion._1_4_0;
13263        if ("1.6".equals(codeString))
13264          return FHIRVersion._1_6;
13265        if ("1.6.0".equals(codeString))
13266          return FHIRVersion._1_6_0;
13267        if ("1.8".equals(codeString))
13268          return FHIRVersion._1_8;
13269        if ("1.8.0".equals(codeString))
13270          return FHIRVersion._1_8_0;
13271        if ("3.0".equals(codeString))
13272          return FHIRVersion._3_0;
13273        if ("3.0.0".equals(codeString))
13274          return FHIRVersion._3_0_0;
13275        if ("3.0.1".equals(codeString))
13276          return FHIRVersion._3_0_1;
13277        if ("3.0.2".equals(codeString))
13278          return FHIRVersion._3_0_2;
13279        if ("3.3".equals(codeString))
13280          return FHIRVersion._3_3;
13281        if ("3.3.0".equals(codeString))
13282          return FHIRVersion._3_3_0;
13283        if ("3.5".equals(codeString))
13284          return FHIRVersion._3_5;
13285        if ("3.5.0".equals(codeString))
13286          return FHIRVersion._3_5_0;
13287        if ("4.0".equals(codeString))
13288          return FHIRVersion._4_0;
13289        if ("4.0.0".equals(codeString))
13290          return FHIRVersion._4_0_0;
13291        if ("4.0.1".equals(codeString))
13292          return FHIRVersion._4_0_1;
13293        if ("4.1".equals(codeString))
13294          return FHIRVersion._4_1;
13295        if ("4.1.0".equals(codeString))
13296          return FHIRVersion._4_1_0;
13297        if ("4.2".equals(codeString))
13298          return FHIRVersion._4_2;
13299        if ("4.2.0".equals(codeString))
13300          return FHIRVersion._4_2_0;
13301        if ("4.3".equals(codeString))
13302          return FHIRVersion._4_3;
13303        if ("4.3.0".equals(codeString))
13304          return FHIRVersion._4_3_0;
13305        if ("4.3.0-snapshot1".equalsIgnoreCase(codeString))
13306          return FHIRVersion._4_3_0_SNAPSHOT1;
13307        if ("4.3.0-cibuild".equalsIgnoreCase(codeString))
13308          return FHIRVersion._4_3_0_CIBUILD;
13309        if ("4.4".equals(codeString))
13310          return FHIRVersion._4_4;
13311        if ("4.4.0".equals(codeString))
13312          return FHIRVersion._4_4_0;
13313        if ("4.5".equals(codeString))
13314          return FHIRVersion._4_5;
13315        if ("4.5.0".equals(codeString))
13316          return FHIRVersion._4_5_0;
13317        if ("4.6".equals(codeString))
13318          return FHIRVersion._4_6;
13319        if ("4.6.0".equals(codeString))
13320          return FHIRVersion._4_6_0;
13321        if ("5.0".equals(codeString))
13322          return FHIRVersion._5_0;
13323        if ("5.0.0".equals(codeString))
13324          return FHIRVersion._5_0_0;
13325        if ("5.0.0-cibuild".equals(codeString))
13326          return FHIRVersion._5_0_0CIBUILD;
13327        if ("5.0.0-snapshot1".equals(codeString))
13328          return FHIRVersion._5_0_0SNAPSHOT1;
13329        if ("5.0.0-snapshot2".equals(codeString))
13330          return FHIRVersion._5_0_0SNAPSHOT2;
13331        if ("5.0.0-ballot".equals(codeString))
13332          return FHIRVersion._5_0_0BALLOT;
13333        if ("5.0.0-snapshot3".equals(codeString))
13334          return FHIRVersion._5_0_0SNAPSHOT3;
13335        throw new IllegalArgumentException("Unknown FHIRVersion code '"+codeString+"'");
13336        }
13337        public Enumeration<FHIRVersion> fromType(PrimitiveType<?> code) throws FHIRException {
13338          if (code == null)
13339            return null;
13340          if (code.isEmpty())
13341            return new Enumeration<FHIRVersion>(this, FHIRVersion.NULL, code);
13342          String codeString = ((PrimitiveType) code).asStringValue();
13343          if (codeString == null || "".equals(codeString))
13344            return new Enumeration<FHIRVersion>(this, FHIRVersion.NULL, code);
13345        if ("0.01".equals(codeString))
13346          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_01, code);
13347        if ("0.05".equals(codeString))
13348          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_05, code);
13349        if ("0.06".equals(codeString))
13350          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_06, code);
13351        if ("0.11".equals(codeString))
13352          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_11, code);
13353        if ("0.0".equals(codeString))
13354          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0, code);
13355        if ("0.0.80".equals(codeString))
13356          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0_80, code);
13357        if ("0.0.81".equals(codeString))
13358          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0_81, code);
13359        if ("0.0.82".equals(codeString))
13360          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0_82, code);
13361        if ("0.4".equals(codeString))
13362          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_4, code);
13363        if ("0.4.0".equals(codeString))
13364          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_4_0, code);
13365        if ("0.5".equals(codeString))
13366          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_5, code);
13367        if ("0.5.0".equals(codeString))
13368          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_5_0, code);
13369        if ("1.0".equals(codeString))
13370          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0, code);
13371        if ("1.0.0".equals(codeString))
13372          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0_0, code);
13373        if ("1.0.1".equals(codeString))
13374          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0_1, code);
13375        if ("1.0.2".equals(codeString))
13376          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0_2, code);
13377        if ("1.1".equals(codeString))
13378          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_1, code);
13379        if ("1.1.0".equals(codeString))
13380          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_1_0, code);
13381        if ("1.4".equals(codeString))
13382          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_4, code);
13383        if ("1.4.0".equals(codeString))
13384          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_4_0, code);
13385        if ("1.6".equals(codeString))
13386          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_6, code);
13387        if ("1.6.0".equals(codeString))
13388          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_6_0, code);
13389        if ("1.8".equals(codeString))
13390          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_8, code);
13391        if ("1.8.0".equals(codeString))
13392          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_8_0, code);
13393        if ("3.0".equals(codeString))
13394          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0, code);
13395        if ("3.0.0".equals(codeString))
13396          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0_0, code);
13397        if ("3.0.1".equals(codeString))
13398          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0_1, code);
13399        if ("3.0.2".equals(codeString))
13400          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0_2, code);
13401        if ("3.3".equals(codeString))
13402          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_3, code);
13403        if ("3.3.0".equals(codeString))
13404          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_3_0, code);
13405        if ("3.5".equals(codeString))
13406          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_5, code);
13407        if ("3.5.0".equals(codeString))
13408          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_5_0, code);
13409        if ("4.0".equals(codeString))
13410          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_0, code);
13411        if ("4.0.0".equals(codeString))
13412          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_0_0, code);
13413        if ("4.0.1".equals(codeString))
13414          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_0_1, code);
13415        if ("4.1".equals(codeString))
13416          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_1, code);
13417        if ("4.1.0".equals(codeString))
13418          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_1_0, code);
13419        if ("4.2".equals(codeString))
13420          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_2, code);
13421        if ("4.2.0".equals(codeString))
13422          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_2_0, code);
13423        if ("4.3".equals(codeString))
13424          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3, code);
13425        if ("4.3.0".equals(codeString))
13426          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3_0, code);
13427        if ("4.3.0-snapshot1".equals(codeString))
13428          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3_0_SNAPSHOT1, code);
13429        if ("4.3.0-cibuild".equals(codeString))
13430          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3_0_CIBUILD, code);
13431        if ("4.4".equals(codeString))
13432          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_4, code);
13433        if ("4.4.0".equals(codeString))
13434          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_4_0, code);
13435        if ("4.5".equals(codeString))
13436          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_5, code);
13437        if ("4.5.0".equals(codeString))
13438          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_5_0, code);
13439        if ("4.6".equals(codeString))
13440          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_6, code);
13441        if ("4.6.0".equals(codeString))
13442          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_6_0, code);
13443        if ("5.0".equals(codeString))
13444          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0, code);
13445        if ("5.0.0".equals(codeString))
13446          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0, code);
13447        if ("5.0.0-cibuild".equals(codeString))
13448          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0CIBUILD, code);
13449        if ("5.0.0-snapshot1".equals(codeString))
13450          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0SNAPSHOT1, code);
13451        if ("5.0.0-snapshot2".equals(codeString))
13452          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0SNAPSHOT2, code);
13453        if ("5.0.0-ballot".equals(codeString))
13454          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0BALLOT, code);
13455        if ("5.0.0-snapshot3".equals(codeString))
13456          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0SNAPSHOT3, code);
13457        throw new FHIRException("Unknown FHIRVersion code '"+codeString+"'");
13458        }
13459    public String toCode(FHIRVersion code) {
13460      if (code == FHIRVersion._0_01)
13461        return "0.01";
13462      if (code == FHIRVersion._0_05)
13463        return "0.05";
13464      if (code == FHIRVersion._0_06)
13465        return "0.06";
13466      if (code == FHIRVersion._0_11)
13467        return "0.11";
13468      if (code == FHIRVersion._0_0)
13469        return "0.0";
13470      if (code == FHIRVersion._0_0_80)
13471        return "0.0.80";
13472      if (code == FHIRVersion._0_0_81)
13473        return "0.0.81";
13474      if (code == FHIRVersion._0_0_82)
13475        return "0.0.82";
13476      if (code == FHIRVersion._0_4)
13477        return "0.4";
13478      if (code == FHIRVersion._0_4_0)
13479        return "0.4.0";
13480      if (code == FHIRVersion._0_5)
13481        return "0.5";
13482      if (code == FHIRVersion._0_5_0)
13483        return "0.5.0";
13484      if (code == FHIRVersion._1_0)
13485        return "1.0";
13486      if (code == FHIRVersion._1_0_0)
13487        return "1.0.0";
13488      if (code == FHIRVersion._1_0_1)
13489        return "1.0.1";
13490      if (code == FHIRVersion._1_0_2)
13491        return "1.0.2";
13492      if (code == FHIRVersion._1_1)
13493        return "1.1";
13494      if (code == FHIRVersion._1_1_0)
13495        return "1.1.0";
13496      if (code == FHIRVersion._1_4)
13497        return "1.4";
13498      if (code == FHIRVersion._1_4_0)
13499        return "1.4.0";
13500      if (code == FHIRVersion._1_6)
13501        return "1.6";
13502      if (code == FHIRVersion._1_6_0)
13503        return "1.6.0";
13504      if (code == FHIRVersion._1_8)
13505        return "1.8";
13506      if (code == FHIRVersion._1_8_0)
13507        return "1.8.0";
13508      if (code == FHIRVersion._3_0)
13509        return "3.0";
13510      if (code == FHIRVersion._3_0_0)
13511        return "3.0.0";
13512      if (code == FHIRVersion._3_0_1)
13513        return "3.0.1";
13514      if (code == FHIRVersion._3_0_2)
13515        return "3.0.2";
13516      if (code == FHIRVersion._3_3)
13517        return "3.3";
13518      if (code == FHIRVersion._3_3_0)
13519        return "3.3.0";
13520      if (code == FHIRVersion._3_5)
13521        return "3.5";
13522      if (code == FHIRVersion._3_5_0)
13523        return "3.5.0";
13524      if (code == FHIRVersion._4_0)
13525        return "4.0";
13526      if (code == FHIRVersion._4_0_0)
13527        return "4.0.0";
13528      if (code == FHIRVersion._4_0_1)
13529        return "4.0.1";
13530      if (code == FHIRVersion._4_1)
13531        return "4.1";
13532      if (code == FHIRVersion._4_1_0)
13533        return "4.1.0";
13534      if (code == FHIRVersion._4_2)
13535        return "4.2";
13536      if (code == FHIRVersion._4_2_0)
13537        return "4.2.0";
13538      if (code == FHIRVersion._4_3)
13539        return "4.3";
13540      if (code == FHIRVersion._4_3_0)
13541        return "4.3.0";
13542      if (code == FHIRVersion._4_3_0_SNAPSHOT1)
13543        return "4.3.0-snapshot1";      
13544      if (code == FHIRVersion._4_3_0_CIBUILD)
13545        return "4.3.0-cibuild";      
13546      if (code == FHIRVersion._4_4)
13547        return "4.4";
13548      if (code == FHIRVersion._4_4_0)
13549        return "4.4.0";
13550      if (code == FHIRVersion._4_5)
13551        return "4.5";
13552      if (code == FHIRVersion._4_5_0)
13553        return "4.5.0";
13554      if (code == FHIRVersion._4_6)
13555        return "4.6";
13556      if (code == FHIRVersion._4_6_0)
13557        return "4.6.0";
13558      if (code == FHIRVersion._5_0)
13559        return "5.0";
13560      if (code == FHIRVersion._5_0_0)
13561        return "5.0.0";
13562      if (code == FHIRVersion._5_0_0CIBUILD)
13563        return "5.0.0-cibuild";
13564      if (code == FHIRVersion._5_0_0SNAPSHOT1)
13565        return "5.0.0-snapshot1";
13566      if (code == FHIRVersion._5_0_0SNAPSHOT2)
13567        return "5.0.0-snapshot2";
13568      if (code == FHIRVersion._5_0_0BALLOT)
13569        return "5.0.0-ballot";
13570      if (code == FHIRVersion._5_0_0SNAPSHOT3)
13571        return "5.0.0-snapshot3";
13572      return "?";
13573      }
13574    public String toSystem(FHIRVersion code) {
13575      return code.getSystem();
13576      }
13577    }
13578
13579    public enum FilterOperator {
13580        /**
13581         * The specified property of the code equals the provided value.
13582         */
13583        EQUAL, 
13584        /**
13585         * Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, including the provided concept itself (include descendant codes and self).
13586         */
13587        ISA, 
13588        /**
13589         * Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, excluding the provided concept itself i.e. include descendant codes only).
13590         */
13591        DESCENDENTOF, 
13592        /**
13593         * The specified property of the code does not have an is-a relationship with the provided value.
13594         */
13595        ISNOTA, 
13596        /**
13597         * The specified property of the code  matches the regex specified in the provided value.
13598         */
13599        REGEX, 
13600        /**
13601         * The specified property of the code is in the set of codes or concepts specified in the provided value (comma separated list).
13602         */
13603        IN, 
13604        /**
13605         * The specified property of the code is not in the set of codes or concepts specified in the provided value (comma separated list).
13606         */
13607        NOTIN, 
13608        /**
13609         * Includes all concept ids that have a transitive is-a relationship from the concept Id provided as the value, including the provided concept itself (i.e. include ancestor codes and self).
13610         */
13611        GENERALIZES, 
13612        /**
13613         * Only concepts with a direct hierarchical relationship to the index code and no other concepts. This does not include the index code in the output.
13614         */
13615        CHILDOF, 
13616        /**
13617         * Includes concept ids that have a transitive is-a relationship with the concept Id provided as the value, but which do not have any concept ids with transitive is-a relationships with themselves.
13618         */
13619        DESCENDENTLEAF, 
13620        /**
13621         * The specified property of the code has at least one value (if the specified value is true; if the specified value is false, then matches when the specified property of the code has no values).
13622         */
13623        EXISTS, 
13624        /**
13625         * added to help the parsers
13626         */
13627        NULL;
13628        public static FilterOperator fromCode(String codeString) throws FHIRException {
13629            if (codeString == null || "".equals(codeString))
13630                return null;
13631        if ("=".equals(codeString))
13632          return EQUAL;
13633        if ("is-a".equals(codeString))
13634          return ISA;
13635        if ("descendent-of".equals(codeString))
13636          return DESCENDENTOF;
13637        if ("is-not-a".equals(codeString))
13638          return ISNOTA;
13639        if ("regex".equals(codeString))
13640          return REGEX;
13641        if ("in".equals(codeString))
13642          return IN;
13643        if ("not-in".equals(codeString))
13644          return NOTIN;
13645        if ("generalizes".equals(codeString))
13646          return GENERALIZES;
13647        if ("child-of".equals(codeString))
13648          return CHILDOF;
13649        if ("descendent-leaf".equals(codeString))
13650          return DESCENDENTLEAF;
13651        if ("exists".equals(codeString))
13652          return EXISTS;
13653        throw new FHIRException("Unknown FilterOperator code '"+codeString+"'");
13654        }
13655        public String toCode() {
13656          switch (this) {
13657            case EQUAL: return "=";
13658            case ISA: return "is-a";
13659            case DESCENDENTOF: return "descendent-of";
13660            case ISNOTA: return "is-not-a";
13661            case REGEX: return "regex";
13662            case IN: return "in";
13663            case NOTIN: return "not-in";
13664            case GENERALIZES: return "generalizes";
13665            case CHILDOF: return "child-of";
13666            case DESCENDENTLEAF: return "descendent-leaf";
13667            case EXISTS: return "exists";
13668            case NULL: return null;
13669            default: return "?";
13670          }
13671        }
13672        public String getSystem() {
13673          switch (this) {
13674            case EQUAL: return "http://hl7.org/fhir/filter-operator";
13675            case ISA: return "http://hl7.org/fhir/filter-operator";
13676            case DESCENDENTOF: return "http://hl7.org/fhir/filter-operator";
13677            case ISNOTA: return "http://hl7.org/fhir/filter-operator";
13678            case REGEX: return "http://hl7.org/fhir/filter-operator";
13679            case IN: return "http://hl7.org/fhir/filter-operator";
13680            case NOTIN: return "http://hl7.org/fhir/filter-operator";
13681            case GENERALIZES: return "http://hl7.org/fhir/filter-operator";
13682            case CHILDOF: return "http://hl7.org/fhir/filter-operator";
13683            case DESCENDENTLEAF: return "http://hl7.org/fhir/filter-operator";
13684            case EXISTS: return "http://hl7.org/fhir/filter-operator";
13685            case NULL: return null;
13686            default: return "?";
13687          }
13688        }
13689        public String getDefinition() {
13690          switch (this) {
13691            case EQUAL: return "The specified property of the code equals the provided value.";
13692            case ISA: return "Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, including the provided concept itself (include descendant codes and self).";
13693            case DESCENDENTOF: return "Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, excluding the provided concept itself i.e. include descendant codes only).";
13694            case ISNOTA: return "The specified property of the code does not have an is-a relationship with the provided value.";
13695            case REGEX: return "The specified property of the code  matches the regex specified in the provided value.";
13696            case IN: return "The specified property of the code is in the set of codes or concepts specified in the provided value (comma separated list).";
13697            case NOTIN: return "The specified property of the code is not in the set of codes or concepts specified in the provided value (comma separated list).";
13698            case GENERALIZES: return "Includes all concept ids that have a transitive is-a relationship from the concept Id provided as the value, including the provided concept itself (i.e. include ancestor codes and self).";
13699            case CHILDOF: return "Only concepts with a direct hierarchical relationship to the index code and no other concepts. This does not include the index code in the output.";
13700            case DESCENDENTLEAF: return "Includes concept ids that have a transitive is-a relationship with the concept Id provided as the value, but which do not have any concept ids with transitive is-a relationships with themselves.";
13701            case EXISTS: return "The specified property of the code has at least one value (if the specified value is true; if the specified value is false, then matches when the specified property of the code has no values).";
13702            case NULL: return null;
13703            default: return "?";
13704          }
13705        }
13706        public String getDisplay() {
13707          switch (this) {
13708            case EQUAL: return "Equals";
13709            case ISA: return "Is A (by subsumption)";
13710            case DESCENDENTOF: return "Descendent Of (by subsumption)";
13711            case ISNOTA: return "Not (Is A) (by subsumption)";
13712            case REGEX: return "Regular Expression";
13713            case IN: return "In Set";
13714            case NOTIN: return "Not in Set";
13715            case GENERALIZES: return "Generalizes (by Subsumption)";
13716            case CHILDOF: return "Child Of";
13717            case DESCENDENTLEAF: return "Descendent Leaf";
13718            case EXISTS: return "Exists";
13719            case NULL: return null;
13720            default: return "?";
13721          }
13722        }
13723    }
13724
13725  public static class FilterOperatorEnumFactory implements EnumFactory<FilterOperator> {
13726    public FilterOperator fromCode(String codeString) throws IllegalArgumentException {
13727      if (codeString == null || "".equals(codeString))
13728            if (codeString == null || "".equals(codeString))
13729                return null;
13730        if ("=".equals(codeString))
13731          return FilterOperator.EQUAL;
13732        if ("is-a".equals(codeString))
13733          return FilterOperator.ISA;
13734        if ("descendent-of".equals(codeString))
13735          return FilterOperator.DESCENDENTOF;
13736        if ("is-not-a".equals(codeString))
13737          return FilterOperator.ISNOTA;
13738        if ("regex".equals(codeString))
13739          return FilterOperator.REGEX;
13740        if ("in".equals(codeString))
13741          return FilterOperator.IN;
13742        if ("not-in".equals(codeString))
13743          return FilterOperator.NOTIN;
13744        if ("generalizes".equals(codeString))
13745          return FilterOperator.GENERALIZES;
13746        if ("child-of".equals(codeString))
13747          return FilterOperator.CHILDOF;
13748        if ("descendent-leaf".equals(codeString))
13749          return FilterOperator.DESCENDENTLEAF;
13750        if ("exists".equals(codeString))
13751          return FilterOperator.EXISTS;
13752        throw new IllegalArgumentException("Unknown FilterOperator code '"+codeString+"'");
13753        }
13754        public Enumeration<FilterOperator> fromType(PrimitiveType<?> code) throws FHIRException {
13755          if (code == null)
13756            return null;
13757          if (code.isEmpty())
13758            return new Enumeration<FilterOperator>(this, FilterOperator.NULL, code);
13759          String codeString = ((PrimitiveType) code).asStringValue();
13760          if (codeString == null || "".equals(codeString))
13761            return new Enumeration<FilterOperator>(this, FilterOperator.NULL, code);
13762        if ("=".equals(codeString))
13763          return new Enumeration<FilterOperator>(this, FilterOperator.EQUAL, code);
13764        if ("is-a".equals(codeString))
13765          return new Enumeration<FilterOperator>(this, FilterOperator.ISA, code);
13766        if ("descendent-of".equals(codeString))
13767          return new Enumeration<FilterOperator>(this, FilterOperator.DESCENDENTOF, code);
13768        if ("is-not-a".equals(codeString))
13769          return new Enumeration<FilterOperator>(this, FilterOperator.ISNOTA, code);
13770        if ("regex".equals(codeString))
13771          return new Enumeration<FilterOperator>(this, FilterOperator.REGEX, code);
13772        if ("in".equals(codeString))
13773          return new Enumeration<FilterOperator>(this, FilterOperator.IN, code);
13774        if ("not-in".equals(codeString))
13775          return new Enumeration<FilterOperator>(this, FilterOperator.NOTIN, code);
13776        if ("generalizes".equals(codeString))
13777          return new Enumeration<FilterOperator>(this, FilterOperator.GENERALIZES, code);
13778        if ("child-of".equals(codeString))
13779          return new Enumeration<FilterOperator>(this, FilterOperator.CHILDOF, code);
13780        if ("descendent-leaf".equals(codeString))
13781          return new Enumeration<FilterOperator>(this, FilterOperator.DESCENDENTLEAF, code);
13782        if ("exists".equals(codeString))
13783          return new Enumeration<FilterOperator>(this, FilterOperator.EXISTS, code);
13784        throw new FHIRException("Unknown FilterOperator code '"+codeString+"'");
13785        }
13786    public String toCode(FilterOperator code) {
13787      if (code == FilterOperator.EQUAL)
13788        return "=";
13789      if (code == FilterOperator.ISA)
13790        return "is-a";
13791      if (code == FilterOperator.DESCENDENTOF)
13792        return "descendent-of";
13793      if (code == FilterOperator.ISNOTA)
13794        return "is-not-a";
13795      if (code == FilterOperator.REGEX)
13796        return "regex";
13797      if (code == FilterOperator.IN)
13798        return "in";
13799      if (code == FilterOperator.NOTIN)
13800        return "not-in";
13801      if (code == FilterOperator.GENERALIZES)
13802        return "generalizes";
13803      if (code == FilterOperator.CHILDOF)
13804        return "child-of";
13805      if (code == FilterOperator.DESCENDENTLEAF)
13806        return "descendent-leaf";
13807      if (code == FilterOperator.EXISTS)
13808        return "exists";
13809      return "?";
13810      }
13811    public String toSystem(FilterOperator code) {
13812      return code.getSystem();
13813      }
13814    }
13815
13816    public enum FinancialResourceStatusCodes {
13817        /**
13818         * The instance is currently in-force.
13819         */
13820        ACTIVE, 
13821        /**
13822         * The instance is withdrawn, rescinded or reversed.
13823         */
13824        CANCELLED, 
13825        /**
13826         * A new instance the contents of which is not complete.
13827         */
13828        DRAFT, 
13829        /**
13830         * The instance was entered in error.
13831         */
13832        ENTEREDINERROR, 
13833        /**
13834         * added to help the parsers
13835         */
13836        NULL;
13837        public static FinancialResourceStatusCodes fromCode(String codeString) throws FHIRException {
13838            if (codeString == null || "".equals(codeString))
13839                return null;
13840        if ("active".equals(codeString))
13841          return ACTIVE;
13842        if ("cancelled".equals(codeString))
13843          return CANCELLED;
13844        if ("draft".equals(codeString))
13845          return DRAFT;
13846        if ("entered-in-error".equals(codeString))
13847          return ENTEREDINERROR;
13848        throw new FHIRException("Unknown FinancialResourceStatusCodes code '"+codeString+"'");
13849        }
13850        public String toCode() {
13851          switch (this) {
13852            case ACTIVE: return "active";
13853            case CANCELLED: return "cancelled";
13854            case DRAFT: return "draft";
13855            case ENTEREDINERROR: return "entered-in-error";
13856            case NULL: return null;
13857            default: return "?";
13858          }
13859        }
13860        public String getSystem() {
13861          switch (this) {
13862            case ACTIVE: return "http://hl7.org/fhir/fm-status";
13863            case CANCELLED: return "http://hl7.org/fhir/fm-status";
13864            case DRAFT: return "http://hl7.org/fhir/fm-status";
13865            case ENTEREDINERROR: return "http://hl7.org/fhir/fm-status";
13866            case NULL: return null;
13867            default: return "?";
13868          }
13869        }
13870        public String getDefinition() {
13871          switch (this) {
13872            case ACTIVE: return "The instance is currently in-force.";
13873            case CANCELLED: return "The instance is withdrawn, rescinded or reversed.";
13874            case DRAFT: return "A new instance the contents of which is not complete.";
13875            case ENTEREDINERROR: return "The instance was entered in error.";
13876            case NULL: return null;
13877            default: return "?";
13878          }
13879        }
13880        public String getDisplay() {
13881          switch (this) {
13882            case ACTIVE: return "Active";
13883            case CANCELLED: return "Cancelled";
13884            case DRAFT: return "Draft";
13885            case ENTEREDINERROR: return "Entered in Error";
13886            case NULL: return null;
13887            default: return "?";
13888          }
13889        }
13890    }
13891
13892  public static class FinancialResourceStatusCodesEnumFactory implements EnumFactory<FinancialResourceStatusCodes> {
13893    public FinancialResourceStatusCodes fromCode(String codeString) throws IllegalArgumentException {
13894      if (codeString == null || "".equals(codeString))
13895            if (codeString == null || "".equals(codeString))
13896                return null;
13897        if ("active".equals(codeString))
13898          return FinancialResourceStatusCodes.ACTIVE;
13899        if ("cancelled".equals(codeString))
13900          return FinancialResourceStatusCodes.CANCELLED;
13901        if ("draft".equals(codeString))
13902          return FinancialResourceStatusCodes.DRAFT;
13903        if ("entered-in-error".equals(codeString))
13904          return FinancialResourceStatusCodes.ENTEREDINERROR;
13905        throw new IllegalArgumentException("Unknown FinancialResourceStatusCodes code '"+codeString+"'");
13906        }
13907        public Enumeration<FinancialResourceStatusCodes> fromType(PrimitiveType<?> code) throws FHIRException {
13908          if (code == null)
13909            return null;
13910          if (code.isEmpty())
13911            return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.NULL, code);
13912          String codeString = ((PrimitiveType) code).asStringValue();
13913          if (codeString == null || "".equals(codeString))
13914            return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.NULL, code);
13915        if ("active".equals(codeString))
13916          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.ACTIVE, code);
13917        if ("cancelled".equals(codeString))
13918          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.CANCELLED, code);
13919        if ("draft".equals(codeString))
13920          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.DRAFT, code);
13921        if ("entered-in-error".equals(codeString))
13922          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.ENTEREDINERROR, code);
13923        throw new FHIRException("Unknown FinancialResourceStatusCodes code '"+codeString+"'");
13924        }
13925    public String toCode(FinancialResourceStatusCodes code) {
13926      if (code == FinancialResourceStatusCodes.ACTIVE)
13927        return "active";
13928      if (code == FinancialResourceStatusCodes.CANCELLED)
13929        return "cancelled";
13930      if (code == FinancialResourceStatusCodes.DRAFT)
13931        return "draft";
13932      if (code == FinancialResourceStatusCodes.ENTEREDINERROR)
13933        return "entered-in-error";
13934      return "?";
13935      }
13936    public String toSystem(FinancialResourceStatusCodes code) {
13937      return code.getSystem();
13938      }
13939    }
13940
13941    public enum ListMode {
13942        /**
13943         * This list is the master list, maintained in an ongoing fashion with regular updates as the real world list it is tracking changes.
13944         */
13945        WORKING, 
13946        /**
13947         * This list was prepared as a snapshot. It should not be assumed to be current.
13948         */
13949        SNAPSHOT, 
13950        /**
13951         * A point-in-time list that shows what changes have been made or recommended.  E.g. a discharge medication list showing what was added and removed during an encounter.
13952         */
13953        CHANGES, 
13954        /**
13955         * added to help the parsers
13956         */
13957        NULL;
13958        public static ListMode fromCode(String codeString) throws FHIRException {
13959            if (codeString == null || "".equals(codeString))
13960                return null;
13961        if ("working".equals(codeString))
13962          return WORKING;
13963        if ("snapshot".equals(codeString))
13964          return SNAPSHOT;
13965        if ("changes".equals(codeString))
13966          return CHANGES;
13967        throw new FHIRException("Unknown ListMode code '"+codeString+"'");
13968        }
13969        public String toCode() {
13970          switch (this) {
13971            case WORKING: return "working";
13972            case SNAPSHOT: return "snapshot";
13973            case CHANGES: return "changes";
13974            case NULL: return null;
13975            default: return "?";
13976          }
13977        }
13978        public String getSystem() {
13979          switch (this) {
13980            case WORKING: return "http://hl7.org/fhir/list-mode";
13981            case SNAPSHOT: return "http://hl7.org/fhir/list-mode";
13982            case CHANGES: return "http://hl7.org/fhir/list-mode";
13983            case NULL: return null;
13984            default: return "?";
13985          }
13986        }
13987        public String getDefinition() {
13988          switch (this) {
13989            case WORKING: return "This list is the master list, maintained in an ongoing fashion with regular updates as the real world list it is tracking changes.";
13990            case SNAPSHOT: return "This list was prepared as a snapshot. It should not be assumed to be current.";
13991            case CHANGES: return "A point-in-time list that shows what changes have been made or recommended.  E.g. a discharge medication list showing what was added and removed during an encounter.";
13992            case NULL: return null;
13993            default: return "?";
13994          }
13995        }
13996        public String getDisplay() {
13997          switch (this) {
13998            case WORKING: return "Working List";
13999            case SNAPSHOT: return "Snapshot List";
14000            case CHANGES: return "Change List";
14001            case NULL: return null;
14002            default: return "?";
14003          }
14004        }
14005    }
14006
14007  public static class ListModeEnumFactory implements EnumFactory<ListMode> {
14008    public ListMode fromCode(String codeString) throws IllegalArgumentException {
14009      if (codeString == null || "".equals(codeString))
14010            if (codeString == null || "".equals(codeString))
14011                return null;
14012        if ("working".equals(codeString))
14013          return ListMode.WORKING;
14014        if ("snapshot".equals(codeString))
14015          return ListMode.SNAPSHOT;
14016        if ("changes".equals(codeString))
14017          return ListMode.CHANGES;
14018        throw new IllegalArgumentException("Unknown ListMode code '"+codeString+"'");
14019        }
14020        public Enumeration<ListMode> fromType(PrimitiveType<?> code) throws FHIRException {
14021          if (code == null)
14022            return null;
14023          if (code.isEmpty())
14024            return new Enumeration<ListMode>(this, ListMode.NULL, code);
14025          String codeString = ((PrimitiveType) code).asStringValue();
14026          if (codeString == null || "".equals(codeString))
14027            return new Enumeration<ListMode>(this, ListMode.NULL, code);
14028        if ("working".equals(codeString))
14029          return new Enumeration<ListMode>(this, ListMode.WORKING, code);
14030        if ("snapshot".equals(codeString))
14031          return new Enumeration<ListMode>(this, ListMode.SNAPSHOT, code);
14032        if ("changes".equals(codeString))
14033          return new Enumeration<ListMode>(this, ListMode.CHANGES, code);
14034        throw new FHIRException("Unknown ListMode code '"+codeString+"'");
14035        }
14036    public String toCode(ListMode code) {
14037      if (code == ListMode.WORKING)
14038        return "working";
14039      if (code == ListMode.SNAPSHOT)
14040        return "snapshot";
14041      if (code == ListMode.CHANGES)
14042        return "changes";
14043      return "?";
14044      }
14045    public String toSystem(ListMode code) {
14046      return code.getSystem();
14047      }
14048    }
14049
14050    public enum MeasureImprovementNotation {
14051        /**
14052         * null
14053         */
14054        INCREASE, 
14055        /**
14056         * null
14057         */
14058        DECREASE, 
14059        /**
14060         * added to help the parsers
14061         */
14062        NULL;
14063        public static MeasureImprovementNotation fromCode(String codeString) throws FHIRException {
14064            if (codeString == null || "".equals(codeString))
14065                return null;
14066        if ("increase".equals(codeString))
14067          return INCREASE;
14068        if ("decrease".equals(codeString))
14069          return DECREASE;
14070        throw new FHIRException("Unknown MeasureImprovementNotation code '"+codeString+"'");
14071        }
14072        public String toCode() {
14073          switch (this) {
14074            case INCREASE: return "increase";
14075            case DECREASE: return "decrease";
14076            case NULL: return null;
14077            default: return "?";
14078          }
14079        }
14080        public String getSystem() {
14081          switch (this) {
14082            case INCREASE: return "http://terminology.hl7.org/CodeSystem/measure-improvement-notation";
14083            case DECREASE: return "http://terminology.hl7.org/CodeSystem/measure-improvement-notation";
14084            case NULL: return null;
14085            default: return "?";
14086          }
14087        }
14088        public String getDefinition() {
14089          switch (this) {
14090            case INCREASE: return "";
14091            case DECREASE: return "";
14092            case NULL: return null;
14093            default: return "?";
14094          }
14095        }
14096        public String getDisplay() {
14097          switch (this) {
14098            case INCREASE: return "Increased score indicates improvement";
14099            case DECREASE: return "Decreased score indicates improvement";
14100            case NULL: return null;
14101            default: return "?";
14102          }
14103        }
14104    }
14105
14106  public static class MeasureImprovementNotationEnumFactory implements EnumFactory<MeasureImprovementNotation> {
14107    public MeasureImprovementNotation fromCode(String codeString) throws IllegalArgumentException {
14108      if (codeString == null || "".equals(codeString))
14109            if (codeString == null || "".equals(codeString))
14110                return null;
14111        if ("increase".equals(codeString))
14112          return MeasureImprovementNotation.INCREASE;
14113        if ("decrease".equals(codeString))
14114          return MeasureImprovementNotation.DECREASE;
14115        throw new IllegalArgumentException("Unknown MeasureImprovementNotation code '"+codeString+"'");
14116        }
14117        public Enumeration<MeasureImprovementNotation> fromType(PrimitiveType<?> code) throws FHIRException {
14118          if (code == null)
14119            return null;
14120          if (code.isEmpty())
14121            return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.NULL, code);
14122          String codeString = ((PrimitiveType) code).asStringValue();
14123          if (codeString == null || "".equals(codeString))
14124            return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.NULL, code);
14125        if ("increase".equals(codeString))
14126          return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.INCREASE, code);
14127        if ("decrease".equals(codeString))
14128          return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.DECREASE, code);
14129        throw new FHIRException("Unknown MeasureImprovementNotation code '"+codeString+"'");
14130        }
14131    public String toCode(MeasureImprovementNotation code) {
14132      if (code == MeasureImprovementNotation.INCREASE)
14133        return "increase";
14134      if (code == MeasureImprovementNotation.DECREASE)
14135        return "decrease";
14136      return "?";
14137      }
14138    public String toSystem(MeasureImprovementNotation code) {
14139      return code.getSystem();
14140      }
14141    }
14142
14143    public enum MimeTypes {
14144        /**
14145         * added to help the parsers
14146         */
14147        NULL;
14148        public static MimeTypes fromCode(String codeString) throws FHIRException {
14149            if (codeString == null || "".equals(codeString))
14150                return null;
14151        throw new FHIRException("Unknown MimeTypes code '"+codeString+"'");
14152        }
14153        public String toCode() {
14154          switch (this) {
14155            case NULL: return null;
14156            default: return "?";
14157          }
14158        }
14159        public String getSystem() {
14160          switch (this) {
14161            case NULL: return null;
14162            default: return "?";
14163          }
14164        }
14165        public String getDefinition() {
14166          switch (this) {
14167            case NULL: return null;
14168            default: return "?";
14169          }
14170        }
14171        public String getDisplay() {
14172          switch (this) {
14173            case NULL: return null;
14174            default: return "?";
14175          }
14176        }
14177    }
14178
14179  public static class MimeTypesEnumFactory implements EnumFactory<MimeTypes> {
14180    public MimeTypes fromCode(String codeString) throws IllegalArgumentException {
14181      if (codeString == null || "".equals(codeString))
14182            if (codeString == null || "".equals(codeString))
14183                return null;
14184        throw new IllegalArgumentException("Unknown MimeTypes code '"+codeString+"'");
14185        }
14186        public Enumeration<MimeTypes> fromType(PrimitiveType<?> code) throws FHIRException {
14187          if (code == null)
14188            return null;
14189          if (code.isEmpty())
14190            return new Enumeration<MimeTypes>(this, MimeTypes.NULL, code);
14191          String codeString = ((PrimitiveType) code).asStringValue();
14192          if (codeString == null || "".equals(codeString))
14193            return new Enumeration<MimeTypes>(this, MimeTypes.NULL, code);
14194        throw new FHIRException("Unknown MimeTypes code '"+codeString+"'");
14195        }
14196    public String toCode(MimeTypes code) {
14197      return "?";
14198      }
14199    public String toSystem(MimeTypes code) {
14200      return code.getSystem();
14201      }
14202    }
14203
14204    public enum NoteType {
14205        /**
14206         * Display the note.
14207         */
14208        DISPLAY, 
14209        /**
14210         * Print the note on the form.
14211         */
14212        PRINT, 
14213        /**
14214         * Print the note for the operator.
14215         */
14216        PRINTOPER, 
14217        /**
14218         * added to help the parsers
14219         */
14220        NULL;
14221        public static NoteType fromCode(String codeString) throws FHIRException {
14222            if (codeString == null || "".equals(codeString))
14223                return null;
14224        if ("display".equals(codeString))
14225          return DISPLAY;
14226        if ("print".equals(codeString))
14227          return PRINT;
14228        if ("printoper".equals(codeString))
14229          return PRINTOPER;
14230        throw new FHIRException("Unknown NoteType code '"+codeString+"'");
14231        }
14232        public String toCode() {
14233          switch (this) {
14234            case DISPLAY: return "display";
14235            case PRINT: return "print";
14236            case PRINTOPER: return "printoper";
14237            case NULL: return null;
14238            default: return "?";
14239          }
14240        }
14241        public String getSystem() {
14242          switch (this) {
14243            case DISPLAY: return "http://hl7.org/fhir/note-type";
14244            case PRINT: return "http://hl7.org/fhir/note-type";
14245            case PRINTOPER: return "http://hl7.org/fhir/note-type";
14246            case NULL: return null;
14247            default: return "?";
14248          }
14249        }
14250        public String getDefinition() {
14251          switch (this) {
14252            case DISPLAY: return "Display the note.";
14253            case PRINT: return "Print the note on the form.";
14254            case PRINTOPER: return "Print the note for the operator.";
14255            case NULL: return null;
14256            default: return "?";
14257          }
14258        }
14259        public String getDisplay() {
14260          switch (this) {
14261            case DISPLAY: return "Display";
14262            case PRINT: return "Print (Form)";
14263            case PRINTOPER: return "Print (Operator)";
14264            case NULL: return null;
14265            default: return "?";
14266          }
14267        }
14268    }
14269
14270  public static class NoteTypeEnumFactory implements EnumFactory<NoteType> {
14271    public NoteType fromCode(String codeString) throws IllegalArgumentException {
14272      if (codeString == null || "".equals(codeString))
14273            if (codeString == null || "".equals(codeString))
14274                return null;
14275        if ("display".equals(codeString))
14276          return NoteType.DISPLAY;
14277        if ("print".equals(codeString))
14278          return NoteType.PRINT;
14279        if ("printoper".equals(codeString))
14280          return NoteType.PRINTOPER;
14281        throw new IllegalArgumentException("Unknown NoteType code '"+codeString+"'");
14282        }
14283        public Enumeration<NoteType> fromType(PrimitiveType<?> code) throws FHIRException {
14284          if (code == null)
14285            return null;
14286          if (code.isEmpty())
14287            return new Enumeration<NoteType>(this, NoteType.NULL, code);
14288          String codeString = ((PrimitiveType) code).asStringValue();
14289          if (codeString == null || "".equals(codeString))
14290            return new Enumeration<NoteType>(this, NoteType.NULL, code);
14291        if ("display".equals(codeString))
14292          return new Enumeration<NoteType>(this, NoteType.DISPLAY, code);
14293        if ("print".equals(codeString))
14294          return new Enumeration<NoteType>(this, NoteType.PRINT, code);
14295        if ("printoper".equals(codeString))
14296          return new Enumeration<NoteType>(this, NoteType.PRINTOPER, code);
14297        throw new FHIRException("Unknown NoteType code '"+codeString+"'");
14298        }
14299    public String toCode(NoteType code) {
14300      if (code == NoteType.DISPLAY)
14301        return "display";
14302      if (code == NoteType.PRINT)
14303        return "print";
14304      if (code == NoteType.PRINTOPER)
14305        return "printoper";
14306      return "?";
14307      }
14308    public String toSystem(NoteType code) {
14309      return code.getSystem();
14310      }
14311    }
14312
14313    public enum ObservationStatus {
14314        /**
14315         * The existence of the observation is registered, but there is no result yet available.
14316         */
14317        REGISTERED, 
14318        /**
14319         * This is an initial or interim observation: data may be incomplete or unverified.
14320         */
14321        PRELIMINARY, 
14322        /**
14323         * The observation is complete and there are no further actions needed. Additional information such "released", "signed", etc would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied.
14324         */
14325        FINAL, 
14326        /**
14327         * Subsequent to being Final, the observation has been modified subsequent.  This includes updates/new information and corrections.
14328         */
14329        AMENDED, 
14330        /**
14331         * Subsequent to being Final, the observation has been modified to correct an error in the test result.
14332         */
14333        CORRECTED, 
14334        /**
14335         * The observation is unavailable because the measurement was not started or not completed (also sometimes called "aborted").
14336         */
14337        CANCELLED, 
14338        /**
14339         * The observation has been withdrawn following previous final release.  This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be "cancelled" rather than "entered-in-error".).
14340         */
14341        ENTEREDINERROR, 
14342        /**
14343         * The authoring/source system does not know which of the status values currently applies for this observation. Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which.
14344         */
14345        UNKNOWN, 
14346        /**
14347         * added to help the parsers
14348         */
14349        NULL;
14350        public static ObservationStatus fromCode(String codeString) throws FHIRException {
14351            if (codeString == null || "".equals(codeString))
14352                return null;
14353        if ("registered".equals(codeString))
14354          return REGISTERED;
14355        if ("preliminary".equals(codeString))
14356          return PRELIMINARY;
14357        if ("final".equals(codeString))
14358          return FINAL;
14359        if ("amended".equals(codeString))
14360          return AMENDED;
14361        if ("corrected".equals(codeString))
14362          return CORRECTED;
14363        if ("cancelled".equals(codeString))
14364          return CANCELLED;
14365        if ("entered-in-error".equals(codeString))
14366          return ENTEREDINERROR;
14367        if ("unknown".equals(codeString))
14368          return UNKNOWN;
14369        throw new FHIRException("Unknown ObservationStatus code '"+codeString+"'");
14370        }
14371        public String toCode() {
14372          switch (this) {
14373            case REGISTERED: return "registered";
14374            case PRELIMINARY: return "preliminary";
14375            case FINAL: return "final";
14376            case AMENDED: return "amended";
14377            case CORRECTED: return "corrected";
14378            case CANCELLED: return "cancelled";
14379            case ENTEREDINERROR: return "entered-in-error";
14380            case UNKNOWN: return "unknown";
14381            case NULL: return null;
14382            default: return "?";
14383          }
14384        }
14385        public String getSystem() {
14386          switch (this) {
14387            case REGISTERED: return "http://hl7.org/fhir/observation-status";
14388            case PRELIMINARY: return "http://hl7.org/fhir/observation-status";
14389            case FINAL: return "http://hl7.org/fhir/observation-status";
14390            case AMENDED: return "http://hl7.org/fhir/observation-status";
14391            case CORRECTED: return "http://hl7.org/fhir/observation-status";
14392            case CANCELLED: return "http://hl7.org/fhir/observation-status";
14393            case ENTEREDINERROR: return "http://hl7.org/fhir/observation-status";
14394            case UNKNOWN: return "http://hl7.org/fhir/observation-status";
14395            case NULL: return null;
14396            default: return "?";
14397          }
14398        }
14399        public String getDefinition() {
14400          switch (this) {
14401            case REGISTERED: return "The existence of the observation is registered, but there is no result yet available.";
14402            case PRELIMINARY: return "This is an initial or interim observation: data may be incomplete or unverified.";
14403            case FINAL: return "The observation is complete and there are no further actions needed. Additional information such \"released\", \"signed\", etc would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied.";
14404            case AMENDED: return "Subsequent to being Final, the observation has been modified subsequent.  This includes updates/new information and corrections.";
14405            case CORRECTED: return "Subsequent to being Final, the observation has been modified to correct an error in the test result.";
14406            case CANCELLED: return "The observation is unavailable because the measurement was not started or not completed (also sometimes called \"aborted\").";
14407            case ENTEREDINERROR: return "The observation has been withdrawn following previous final release.  This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be \"cancelled\" rather than \"entered-in-error\".).";
14408            case UNKNOWN: return "The authoring/source system does not know which of the status values currently applies for this observation. Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which.";
14409            case NULL: return null;
14410            default: return "?";
14411          }
14412        }
14413        public String getDisplay() {
14414          switch (this) {
14415            case REGISTERED: return "Registered";
14416            case PRELIMINARY: return "Preliminary";
14417            case FINAL: return "Final";
14418            case AMENDED: return "Amended";
14419            case CORRECTED: return "Corrected";
14420            case CANCELLED: return "Cancelled";
14421            case ENTEREDINERROR: return "Entered in Error";
14422            case UNKNOWN: return "Unknown";
14423            case NULL: return null;
14424            default: return "?";
14425          }
14426        }
14427    }
14428
14429  public static class ObservationStatusEnumFactory implements EnumFactory<ObservationStatus> {
14430    public ObservationStatus fromCode(String codeString) throws IllegalArgumentException {
14431      if (codeString == null || "".equals(codeString))
14432            if (codeString == null || "".equals(codeString))
14433                return null;
14434        if ("registered".equals(codeString))
14435          return ObservationStatus.REGISTERED;
14436        if ("preliminary".equals(codeString))
14437          return ObservationStatus.PRELIMINARY;
14438        if ("final".equals(codeString))
14439          return ObservationStatus.FINAL;
14440        if ("amended".equals(codeString))
14441          return ObservationStatus.AMENDED;
14442        if ("corrected".equals(codeString))
14443          return ObservationStatus.CORRECTED;
14444        if ("cancelled".equals(codeString))
14445          return ObservationStatus.CANCELLED;
14446        if ("entered-in-error".equals(codeString))
14447          return ObservationStatus.ENTEREDINERROR;
14448        if ("unknown".equals(codeString))
14449          return ObservationStatus.UNKNOWN;
14450        throw new IllegalArgumentException("Unknown ObservationStatus code '"+codeString+"'");
14451        }
14452        public Enumeration<ObservationStatus> fromType(PrimitiveType<?> code) throws FHIRException {
14453          if (code == null)
14454            return null;
14455          if (code.isEmpty())
14456            return new Enumeration<ObservationStatus>(this, ObservationStatus.NULL, code);
14457          String codeString = ((PrimitiveType) code).asStringValue();
14458          if (codeString == null || "".equals(codeString))
14459            return new Enumeration<ObservationStatus>(this, ObservationStatus.NULL, code);
14460        if ("registered".equals(codeString))
14461          return new Enumeration<ObservationStatus>(this, ObservationStatus.REGISTERED, code);
14462        if ("preliminary".equals(codeString))
14463          return new Enumeration<ObservationStatus>(this, ObservationStatus.PRELIMINARY, code);
14464        if ("final".equals(codeString))
14465          return new Enumeration<ObservationStatus>(this, ObservationStatus.FINAL, code);
14466        if ("amended".equals(codeString))
14467          return new Enumeration<ObservationStatus>(this, ObservationStatus.AMENDED, code);
14468        if ("corrected".equals(codeString))
14469          return new Enumeration<ObservationStatus>(this, ObservationStatus.CORRECTED, code);
14470        if ("cancelled".equals(codeString))
14471          return new Enumeration<ObservationStatus>(this, ObservationStatus.CANCELLED, code);
14472        if ("entered-in-error".equals(codeString))
14473          return new Enumeration<ObservationStatus>(this, ObservationStatus.ENTEREDINERROR, code);
14474        if ("unknown".equals(codeString))
14475          return new Enumeration<ObservationStatus>(this, ObservationStatus.UNKNOWN, code);
14476        throw new FHIRException("Unknown ObservationStatus code '"+codeString+"'");
14477        }
14478    public String toCode(ObservationStatus code) {
14479      if (code == ObservationStatus.REGISTERED)
14480        return "registered";
14481      if (code == ObservationStatus.PRELIMINARY)
14482        return "preliminary";
14483      if (code == ObservationStatus.FINAL)
14484        return "final";
14485      if (code == ObservationStatus.AMENDED)
14486        return "amended";
14487      if (code == ObservationStatus.CORRECTED)
14488        return "corrected";
14489      if (code == ObservationStatus.CANCELLED)
14490        return "cancelled";
14491      if (code == ObservationStatus.ENTEREDINERROR)
14492        return "entered-in-error";
14493      if (code == ObservationStatus.UNKNOWN)
14494        return "unknown";
14495      return "?";
14496      }
14497    public String toSystem(ObservationStatus code) {
14498      return code.getSystem();
14499      }
14500    }
14501
14502    public enum OperationParameterUse {
14503        /**
14504         * This is an input parameter.
14505         */
14506        IN, 
14507        /**
14508         * This is an output parameter.
14509         */
14510        OUT, 
14511        /**
14512         * added to help the parsers
14513         */
14514        NULL;
14515        public static OperationParameterUse fromCode(String codeString) throws FHIRException {
14516            if (codeString == null || "".equals(codeString))
14517                return null;
14518        if ("in".equals(codeString))
14519          return IN;
14520        if ("out".equals(codeString))
14521          return OUT;
14522        throw new FHIRException("Unknown OperationParameterUse code '"+codeString+"'");
14523        }
14524        public String toCode() {
14525          switch (this) {
14526            case IN: return "in";
14527            case OUT: return "out";
14528            case NULL: return null;
14529            default: return "?";
14530          }
14531        }
14532        public String getSystem() {
14533          switch (this) {
14534            case IN: return "http://hl7.org/fhir/operation-parameter-use";
14535            case OUT: return "http://hl7.org/fhir/operation-parameter-use";
14536            case NULL: return null;
14537            default: return "?";
14538          }
14539        }
14540        public String getDefinition() {
14541          switch (this) {
14542            case IN: return "This is an input parameter.";
14543            case OUT: return "This is an output parameter.";
14544            case NULL: return null;
14545            default: return "?";
14546          }
14547        }
14548        public String getDisplay() {
14549          switch (this) {
14550            case IN: return "In";
14551            case OUT: return "Out";
14552            case NULL: return null;
14553            default: return "?";
14554          }
14555        }
14556    }
14557
14558  public static class OperationParameterUseEnumFactory implements EnumFactory<OperationParameterUse> {
14559    public OperationParameterUse fromCode(String codeString) throws IllegalArgumentException {
14560      if (codeString == null || "".equals(codeString))
14561            if (codeString == null || "".equals(codeString))
14562                return null;
14563        if ("in".equals(codeString))
14564          return OperationParameterUse.IN;
14565        if ("out".equals(codeString))
14566          return OperationParameterUse.OUT;
14567        throw new IllegalArgumentException("Unknown OperationParameterUse code '"+codeString+"'");
14568        }
14569        public Enumeration<OperationParameterUse> fromType(PrimitiveType<?> code) throws FHIRException {
14570          if (code == null)
14571            return null;
14572          if (code.isEmpty())
14573            return new Enumeration<OperationParameterUse>(this, OperationParameterUse.NULL, code);
14574          String codeString = ((PrimitiveType) code).asStringValue();
14575          if (codeString == null || "".equals(codeString))
14576            return new Enumeration<OperationParameterUse>(this, OperationParameterUse.NULL, code);
14577        if ("in".equals(codeString))
14578          return new Enumeration<OperationParameterUse>(this, OperationParameterUse.IN, code);
14579        if ("out".equals(codeString))
14580          return new Enumeration<OperationParameterUse>(this, OperationParameterUse.OUT, code);
14581        throw new FHIRException("Unknown OperationParameterUse code '"+codeString+"'");
14582        }
14583    public String toCode(OperationParameterUse code) {
14584      if (code == OperationParameterUse.IN)
14585        return "in";
14586      if (code == OperationParameterUse.OUT)
14587        return "out";
14588      return "?";
14589      }
14590    public String toSystem(OperationParameterUse code) {
14591      return code.getSystem();
14592      }
14593    }
14594
14595    public enum ParticipationStatus {
14596        /**
14597         * The participant has accepted the appointment.
14598         */
14599        ACCEPTED, 
14600        /**
14601         * The participant has declined the appointment and will not participate in the appointment.
14602         */
14603        DECLINED, 
14604        /**
14605         * The participant has  tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur.
14606         */
14607        TENTATIVE, 
14608        /**
14609         * The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses.
14610         */
14611        NEEDSACTION, 
14612        /**
14613         * added to help the parsers
14614         */
14615        NULL;
14616        public static ParticipationStatus fromCode(String codeString) throws FHIRException {
14617            if (codeString == null || "".equals(codeString))
14618                return null;
14619        if ("accepted".equals(codeString))
14620          return ACCEPTED;
14621        if ("declined".equals(codeString))
14622          return DECLINED;
14623        if ("tentative".equals(codeString))
14624          return TENTATIVE;
14625        if ("needs-action".equals(codeString))
14626          return NEEDSACTION;
14627        throw new FHIRException("Unknown ParticipationStatus code '"+codeString+"'");
14628        }
14629        public String toCode() {
14630          switch (this) {
14631            case ACCEPTED: return "accepted";
14632            case DECLINED: return "declined";
14633            case TENTATIVE: return "tentative";
14634            case NEEDSACTION: return "needs-action";
14635            case NULL: return null;
14636            default: return "?";
14637          }
14638        }
14639        public String getSystem() {
14640          switch (this) {
14641            case ACCEPTED: return "http://hl7.org/fhir/participationstatus";
14642            case DECLINED: return "http://hl7.org/fhir/participationstatus";
14643            case TENTATIVE: return "http://hl7.org/fhir/participationstatus";
14644            case NEEDSACTION: return "http://hl7.org/fhir/participationstatus";
14645            case NULL: return null;
14646            default: return "?";
14647          }
14648        }
14649        public String getDefinition() {
14650          switch (this) {
14651            case ACCEPTED: return "The participant has accepted the appointment.";
14652            case DECLINED: return "The participant has declined the appointment and will not participate in the appointment.";
14653            case TENTATIVE: return "The participant has  tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur.";
14654            case NEEDSACTION: return "The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses.";
14655            case NULL: return null;
14656            default: return "?";
14657          }
14658        }
14659        public String getDisplay() {
14660          switch (this) {
14661            case ACCEPTED: return "Accepted";
14662            case DECLINED: return "Declined";
14663            case TENTATIVE: return "Tentative";
14664            case NEEDSACTION: return "Needs Action";
14665            case NULL: return null;
14666            default: return "?";
14667          }
14668        }
14669    }
14670
14671  public static class ParticipationStatusEnumFactory implements EnumFactory<ParticipationStatus> {
14672    public ParticipationStatus fromCode(String codeString) throws IllegalArgumentException {
14673      if (codeString == null || "".equals(codeString))
14674            if (codeString == null || "".equals(codeString))
14675                return null;
14676        if ("accepted".equals(codeString))
14677          return ParticipationStatus.ACCEPTED;
14678        if ("declined".equals(codeString))
14679          return ParticipationStatus.DECLINED;
14680        if ("tentative".equals(codeString))
14681          return ParticipationStatus.TENTATIVE;
14682        if ("needs-action".equals(codeString))
14683          return ParticipationStatus.NEEDSACTION;
14684        throw new IllegalArgumentException("Unknown ParticipationStatus code '"+codeString+"'");
14685        }
14686        public Enumeration<ParticipationStatus> fromType(PrimitiveType<?> code) throws FHIRException {
14687          if (code == null)
14688            return null;
14689          if (code.isEmpty())
14690            return new Enumeration<ParticipationStatus>(this, ParticipationStatus.NULL, code);
14691          String codeString = ((PrimitiveType) code).asStringValue();
14692          if (codeString == null || "".equals(codeString))
14693            return new Enumeration<ParticipationStatus>(this, ParticipationStatus.NULL, code);
14694        if ("accepted".equals(codeString))
14695          return new Enumeration<ParticipationStatus>(this, ParticipationStatus.ACCEPTED, code);
14696        if ("declined".equals(codeString))
14697          return new Enumeration<ParticipationStatus>(this, ParticipationStatus.DECLINED, code);
14698        if ("tentative".equals(codeString))
14699          return new Enumeration<ParticipationStatus>(this, ParticipationStatus.TENTATIVE, code);
14700        if ("needs-action".equals(codeString))
14701          return new Enumeration<ParticipationStatus>(this, ParticipationStatus.NEEDSACTION, code);
14702        throw new FHIRException("Unknown ParticipationStatus code '"+codeString+"'");
14703        }
14704    public String toCode(ParticipationStatus code) {
14705      if (code == ParticipationStatus.ACCEPTED)
14706        return "accepted";
14707      if (code == ParticipationStatus.DECLINED)
14708        return "declined";
14709      if (code == ParticipationStatus.TENTATIVE)
14710        return "tentative";
14711      if (code == ParticipationStatus.NEEDSACTION)
14712        return "needs-action";
14713      return "?";
14714      }
14715    public String toSystem(ParticipationStatus code) {
14716      return code.getSystem();
14717      }
14718    }
14719
14720    public enum PublicationStatus {
14721        /**
14722         * This resource is still under development and is not yet considered to be ready for normal use.
14723         */
14724        DRAFT, 
14725        /**
14726         * This resource is ready for normal use.
14727         */
14728        ACTIVE, 
14729        /**
14730         * This resource has been withdrawn or superseded and should no longer be used.
14731         */
14732        RETIRED, 
14733        /**
14734         * 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.
14735         */
14736        UNKNOWN, 
14737        /**
14738         * added to help the parsers
14739         */
14740        NULL;
14741        public static PublicationStatus fromCode(String codeString) throws FHIRException {
14742            if (codeString == null || "".equals(codeString))
14743                return null;
14744        if ("draft".equals(codeString))
14745          return DRAFT;
14746        if ("active".equals(codeString))
14747          return ACTIVE;
14748        if ("retired".equals(codeString))
14749          return RETIRED;
14750        if ("unknown".equals(codeString))
14751          return UNKNOWN;
14752        throw new FHIRException("Unknown PublicationStatus code '"+codeString+"'");
14753        }
14754        public String toCode() {
14755          switch (this) {
14756            case DRAFT: return "draft";
14757            case ACTIVE: return "active";
14758            case RETIRED: return "retired";
14759            case UNKNOWN: return "unknown";
14760            case NULL: return null;
14761            default: return "?";
14762          }
14763        }
14764        public String getSystem() {
14765          switch (this) {
14766            case DRAFT: return "http://hl7.org/fhir/publication-status";
14767            case ACTIVE: return "http://hl7.org/fhir/publication-status";
14768            case RETIRED: return "http://hl7.org/fhir/publication-status";
14769            case UNKNOWN: return "http://hl7.org/fhir/publication-status";
14770            case NULL: return null;
14771            default: return "?";
14772          }
14773        }
14774        public String getDefinition() {
14775          switch (this) {
14776            case DRAFT: return "This resource is still under development and is not yet considered to be ready for normal use.";
14777            case ACTIVE: return "This resource is ready for normal use.";
14778            case RETIRED: return "This resource has been withdrawn or superseded and should no longer be used.";
14779            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.";
14780            case NULL: return null;
14781            default: return "?";
14782          }
14783        }
14784        public String getDisplay() {
14785          switch (this) {
14786            case DRAFT: return "Draft";
14787            case ACTIVE: return "Active";
14788            case RETIRED: return "Retired";
14789            case UNKNOWN: return "Unknown";
14790            case NULL: return null;
14791            default: return "?";
14792          }
14793        }
14794    }
14795
14796  public static class PublicationStatusEnumFactory implements EnumFactory<PublicationStatus> {
14797    public PublicationStatus fromCode(String codeString) throws IllegalArgumentException {
14798      if (codeString == null || "".equals(codeString))
14799            if (codeString == null || "".equals(codeString))
14800                return null;
14801        if ("draft".equals(codeString))
14802          return PublicationStatus.DRAFT;
14803        if ("active".equals(codeString))
14804          return PublicationStatus.ACTIVE;
14805        if ("retired".equals(codeString))
14806          return PublicationStatus.RETIRED;
14807        if ("unknown".equals(codeString))
14808          return PublicationStatus.UNKNOWN;
14809        throw new IllegalArgumentException("Unknown PublicationStatus code '"+codeString+"'");
14810        }
14811        public Enumeration<PublicationStatus> fromType(PrimitiveType<?> code) throws FHIRException {
14812          if (code == null)
14813            return null;
14814          if (code.isEmpty())
14815            return new Enumeration<PublicationStatus>(this, PublicationStatus.NULL, code);
14816          String codeString = ((PrimitiveType) code).asStringValue();
14817          if (codeString == null || "".equals(codeString))
14818            return new Enumeration<PublicationStatus>(this, PublicationStatus.NULL, code);
14819        if ("draft".equals(codeString))
14820          return new Enumeration<PublicationStatus>(this, PublicationStatus.DRAFT, code);
14821        if ("active".equals(codeString))
14822          return new Enumeration<PublicationStatus>(this, PublicationStatus.ACTIVE, code);
14823        if ("retired".equals(codeString))
14824          return new Enumeration<PublicationStatus>(this, PublicationStatus.RETIRED, code);
14825        if ("unknown".equals(codeString))
14826          return new Enumeration<PublicationStatus>(this, PublicationStatus.UNKNOWN, code);
14827        throw new FHIRException("Unknown PublicationStatus code '"+codeString+"'");
14828        }
14829    public String toCode(PublicationStatus code) {
14830      if (code == PublicationStatus.DRAFT)
14831        return "draft";
14832      if (code == PublicationStatus.ACTIVE)
14833        return "active";
14834      if (code == PublicationStatus.RETIRED)
14835        return "retired";
14836      if (code == PublicationStatus.UNKNOWN)
14837        return "unknown";
14838      return "?";
14839      }
14840    public String toSystem(PublicationStatus code) {
14841      return code.getSystem();
14842      }
14843    }
14844
14845    public enum QuantityComparator {
14846        /**
14847         * The actual value is less than the given value.
14848         */
14849        LESS_THAN, 
14850        /**
14851         * The actual value is less than or equal to the given value.
14852         */
14853        LESS_OR_EQUAL, 
14854        /**
14855         * The actual value is greater than or equal to the given value.
14856         */
14857        GREATER_OR_EQUAL, 
14858        /**
14859         * The actual value is greater than the given value.
14860         */
14861        GREATER_THAN, 
14862        /**
14863         * The actual value is sufficient for the total quantity to equal the given value.
14864         */
14865        AD, 
14866        /**
14867         * added to help the parsers
14868         */
14869        NULL;
14870        public static QuantityComparator fromCode(String codeString) throws FHIRException {
14871            if (codeString == null || "".equals(codeString))
14872                return null;
14873        if ("<".equals(codeString))
14874          return LESS_THAN;
14875        if ("<=".equals(codeString))
14876          return LESS_OR_EQUAL;
14877        if (">=".equals(codeString))
14878          return GREATER_OR_EQUAL;
14879        if (">".equals(codeString))
14880          return GREATER_THAN;
14881        if ("ad".equals(codeString))
14882          return AD;
14883        throw new FHIRException("Unknown QuantityComparator code '"+codeString+"'");
14884        }
14885        public String toCode() {
14886          switch (this) {
14887            case LESS_THAN: return "<";
14888            case LESS_OR_EQUAL: return "<=";
14889            case GREATER_OR_EQUAL: return ">=";
14890            case GREATER_THAN: return ">";
14891            case AD: return "ad";
14892            case NULL: return null;
14893            default: return "?";
14894          }
14895        }
14896        public String getSystem() {
14897          switch (this) {
14898            case LESS_THAN: return "http://hl7.org/fhir/quantity-comparator";
14899            case LESS_OR_EQUAL: return "http://hl7.org/fhir/quantity-comparator";
14900            case GREATER_OR_EQUAL: return "http://hl7.org/fhir/quantity-comparator";
14901            case GREATER_THAN: return "http://hl7.org/fhir/quantity-comparator";
14902            case AD: return "http://hl7.org/fhir/quantity-comparator";
14903            case NULL: return null;
14904            default: return "?";
14905          }
14906        }
14907        public String getDefinition() {
14908          switch (this) {
14909            case LESS_THAN: return "The actual value is less than the given value.";
14910            case LESS_OR_EQUAL: return "The actual value is less than or equal to the given value.";
14911            case GREATER_OR_EQUAL: return "The actual value is greater than or equal to the given value.";
14912            case GREATER_THAN: return "The actual value is greater than the given value.";
14913            case AD: return "The actual value is sufficient for the total quantity to equal the given value.";
14914            case NULL: return null;
14915            default: return "?";
14916          }
14917        }
14918        public String getDisplay() {
14919          switch (this) {
14920            case LESS_THAN: return "Less than";
14921            case LESS_OR_EQUAL: return "Less or Equal to";
14922            case GREATER_OR_EQUAL: return "Greater or Equal to";
14923            case GREATER_THAN: return "Greater than";
14924            case AD: return "Sufficient to achieve this total quantity";
14925            case NULL: return null;
14926            default: return "?";
14927          }
14928        }
14929    }
14930
14931  public static class QuantityComparatorEnumFactory implements EnumFactory<QuantityComparator> {
14932    public QuantityComparator fromCode(String codeString) throws IllegalArgumentException {
14933      if (codeString == null || "".equals(codeString))
14934            if (codeString == null || "".equals(codeString))
14935                return null;
14936        if ("<".equals(codeString))
14937          return QuantityComparator.LESS_THAN;
14938        if ("<=".equals(codeString))
14939          return QuantityComparator.LESS_OR_EQUAL;
14940        if (">=".equals(codeString))
14941          return QuantityComparator.GREATER_OR_EQUAL;
14942        if (">".equals(codeString))
14943          return QuantityComparator.GREATER_THAN;
14944        if ("ad".equals(codeString))
14945          return QuantityComparator.AD;
14946        throw new IllegalArgumentException("Unknown QuantityComparator code '"+codeString+"'");
14947        }
14948        public Enumeration<QuantityComparator> fromType(PrimitiveType<?> code) throws FHIRException {
14949          if (code == null)
14950            return null;
14951          if (code.isEmpty())
14952            return new Enumeration<QuantityComparator>(this, QuantityComparator.NULL, code);
14953          String codeString = ((PrimitiveType) code).asStringValue();
14954          if (codeString == null || "".equals(codeString))
14955            return new Enumeration<QuantityComparator>(this, QuantityComparator.NULL, code);
14956        if ("<".equals(codeString))
14957          return new Enumeration<QuantityComparator>(this, QuantityComparator.LESS_THAN, code);
14958        if ("<=".equals(codeString))
14959          return new Enumeration<QuantityComparator>(this, QuantityComparator.LESS_OR_EQUAL, code);
14960        if (">=".equals(codeString))
14961          return new Enumeration<QuantityComparator>(this, QuantityComparator.GREATER_OR_EQUAL, code);
14962        if (">".equals(codeString))
14963          return new Enumeration<QuantityComparator>(this, QuantityComparator.GREATER_THAN, code);
14964        if ("ad".equals(codeString))
14965          return new Enumeration<QuantityComparator>(this, QuantityComparator.AD, code);
14966        throw new FHIRException("Unknown QuantityComparator code '"+codeString+"'");
14967        }
14968    public String toCode(QuantityComparator code) {
14969      if (code == QuantityComparator.LESS_THAN)
14970        return "<";
14971      if (code == QuantityComparator.LESS_OR_EQUAL)
14972        return "<=";
14973      if (code == QuantityComparator.GREATER_OR_EQUAL)
14974        return ">=";
14975      if (code == QuantityComparator.GREATER_THAN)
14976        return ">";
14977      if (code == QuantityComparator.AD)
14978        return "ad";
14979      return "?";
14980      }
14981    public String toSystem(QuantityComparator code) {
14982      return code.getSystem();
14983      }
14984    }
14985
14986    public enum RequestIntent {
14987        /**
14988         * The request is a suggestion made by someone/something that does not have an intention to ensure it occurs and without providing an authorization to act.
14989         */
14990        PROPOSAL, 
14991        /**
14992         * The request represents an intention to ensure something occurs without providing an authorization for others to act.
14993         */
14994        PLAN, 
14995        /**
14996         * The request represents a legally binding instruction authored by a Patient or RelatedPerson.
14997         */
14998        DIRECTIVE, 
14999        /**
15000         * The request represents a request/demand and authorization for action by the requestor.
15001         */
15002        ORDER, 
15003        /**
15004         * The request represents an original authorization for action.
15005         */
15006        ORIGINALORDER, 
15007        /**
15008         * The request represents an automatically generated supplemental authorization for action based on a parent authorization together with initial results of the action taken against that parent authorization.
15009         */
15010        REFLEXORDER, 
15011        /**
15012         * The request represents the view of an authorization instantiated by a fulfilling system representing the details of the fulfiller's intention to act upon a submitted order.
15013         */
15014        FILLERORDER, 
15015        /**
15016         * An order created in fulfillment of a broader order that represents the authorization for a single activity occurrence.  E.g. The administration of a single dose of a drug.
15017         */
15018        INSTANCEORDER, 
15019        /**
15020         * The request represents a component or option for a RequestOrchestration that establishes timing, conditionality and/or other constraints among a set of requests.  Refer to [[[RequestOrchestration]]] for additional information on how this status is used.
15021         */
15022        OPTION, 
15023        /**
15024         * added to help the parsers
15025         */
15026        NULL;
15027        public static RequestIntent fromCode(String codeString) throws FHIRException {
15028            if (codeString == null || "".equals(codeString))
15029                return null;
15030        if ("proposal".equals(codeString))
15031          return PROPOSAL;
15032        if ("plan".equals(codeString))
15033          return PLAN;
15034        if ("directive".equals(codeString))
15035          return DIRECTIVE;
15036        if ("order".equals(codeString))
15037          return ORDER;
15038        if ("original-order".equals(codeString))
15039          return ORIGINALORDER;
15040        if ("reflex-order".equals(codeString))
15041          return REFLEXORDER;
15042        if ("filler-order".equals(codeString))
15043          return FILLERORDER;
15044        if ("instance-order".equals(codeString))
15045          return INSTANCEORDER;
15046        if ("option".equals(codeString))
15047          return OPTION;
15048        throw new FHIRException("Unknown RequestIntent code '"+codeString+"'");
15049        }
15050        public String toCode() {
15051          switch (this) {
15052            case PROPOSAL: return "proposal";
15053            case PLAN: return "plan";
15054            case DIRECTIVE: return "directive";
15055            case ORDER: return "order";
15056            case ORIGINALORDER: return "original-order";
15057            case REFLEXORDER: return "reflex-order";
15058            case FILLERORDER: return "filler-order";
15059            case INSTANCEORDER: return "instance-order";
15060            case OPTION: return "option";
15061            case NULL: return null;
15062            default: return "?";
15063          }
15064        }
15065        public String getSystem() {
15066          switch (this) {
15067            case PROPOSAL: return "http://hl7.org/fhir/request-intent";
15068            case PLAN: return "http://hl7.org/fhir/request-intent";
15069            case DIRECTIVE: return "http://hl7.org/fhir/request-intent";
15070            case ORDER: return "http://hl7.org/fhir/request-intent";
15071            case ORIGINALORDER: return "http://hl7.org/fhir/request-intent";
15072            case REFLEXORDER: return "http://hl7.org/fhir/request-intent";
15073            case FILLERORDER: return "http://hl7.org/fhir/request-intent";
15074            case INSTANCEORDER: return "http://hl7.org/fhir/request-intent";
15075            case OPTION: return "http://hl7.org/fhir/request-intent";
15076            case NULL: return null;
15077            default: return "?";
15078          }
15079        }
15080        public String getDefinition() {
15081          switch (this) {
15082            case PROPOSAL: return "The request is a suggestion made by someone/something that does not have an intention to ensure it occurs and without providing an authorization to act.";
15083            case PLAN: return "The request represents an intention to ensure something occurs without providing an authorization for others to act.";
15084            case DIRECTIVE: return "The request represents a legally binding instruction authored by a Patient or RelatedPerson.";
15085            case ORDER: return "The request represents a request/demand and authorization for action by the requestor.";
15086            case ORIGINALORDER: return "The request represents an original authorization for action.";
15087            case REFLEXORDER: return "The request represents an automatically generated supplemental authorization for action based on a parent authorization together with initial results of the action taken against that parent authorization.";
15088            case FILLERORDER: return "The request represents the view of an authorization instantiated by a fulfilling system representing the details of the fulfiller's intention to act upon a submitted order.";
15089            case INSTANCEORDER: return "An order created in fulfillment of a broader order that represents the authorization for a single activity occurrence.  E.g. The administration of a single dose of a drug.";
15090            case OPTION: return "The request represents a component or option for a RequestOrchestration that establishes timing, conditionality and/or other constraints among a set of requests.  Refer to [[[RequestOrchestration]]] for additional information on how this status is used.";
15091            case NULL: return null;
15092            default: return "?";
15093          }
15094        }
15095        public String getDisplay() {
15096          switch (this) {
15097            case PROPOSAL: return "Proposal";
15098            case PLAN: return "Plan";
15099            case DIRECTIVE: return "Directive";
15100            case ORDER: return "Order";
15101            case ORIGINALORDER: return "Original Order";
15102            case REFLEXORDER: return "Reflex Order";
15103            case FILLERORDER: return "Filler Order";
15104            case INSTANCEORDER: return "Instance Order";
15105            case OPTION: return "Option";
15106            case NULL: return null;
15107            default: return "?";
15108          }
15109        }
15110    }
15111
15112  public static class RequestIntentEnumFactory implements EnumFactory<RequestIntent> {
15113    public RequestIntent fromCode(String codeString) throws IllegalArgumentException {
15114      if (codeString == null || "".equals(codeString))
15115            if (codeString == null || "".equals(codeString))
15116                return null;
15117        if ("proposal".equals(codeString))
15118          return RequestIntent.PROPOSAL;
15119        if ("plan".equals(codeString))
15120          return RequestIntent.PLAN;
15121        if ("directive".equals(codeString))
15122          return RequestIntent.DIRECTIVE;
15123        if ("order".equals(codeString))
15124          return RequestIntent.ORDER;
15125        if ("original-order".equals(codeString))
15126          return RequestIntent.ORIGINALORDER;
15127        if ("reflex-order".equals(codeString))
15128          return RequestIntent.REFLEXORDER;
15129        if ("filler-order".equals(codeString))
15130          return RequestIntent.FILLERORDER;
15131        if ("instance-order".equals(codeString))
15132          return RequestIntent.INSTANCEORDER;
15133        if ("option".equals(codeString))
15134          return RequestIntent.OPTION;
15135        throw new IllegalArgumentException("Unknown RequestIntent code '"+codeString+"'");
15136        }
15137        public Enumeration<RequestIntent> fromType(PrimitiveType<?> code) throws FHIRException {
15138          if (code == null)
15139            return null;
15140          if (code.isEmpty())
15141            return new Enumeration<RequestIntent>(this, RequestIntent.NULL, code);
15142          String codeString = ((PrimitiveType) code).asStringValue();
15143          if (codeString == null || "".equals(codeString))
15144            return new Enumeration<RequestIntent>(this, RequestIntent.NULL, code);
15145        if ("proposal".equals(codeString))
15146          return new Enumeration<RequestIntent>(this, RequestIntent.PROPOSAL, code);
15147        if ("plan".equals(codeString))
15148          return new Enumeration<RequestIntent>(this, RequestIntent.PLAN, code);
15149        if ("directive".equals(codeString))
15150          return new Enumeration<RequestIntent>(this, RequestIntent.DIRECTIVE, code);
15151        if ("order".equals(codeString))
15152          return new Enumeration<RequestIntent>(this, RequestIntent.ORDER, code);
15153        if ("original-order".equals(codeString))
15154          return new Enumeration<RequestIntent>(this, RequestIntent.ORIGINALORDER, code);
15155        if ("reflex-order".equals(codeString))
15156          return new Enumeration<RequestIntent>(this, RequestIntent.REFLEXORDER, code);
15157        if ("filler-order".equals(codeString))
15158          return new Enumeration<RequestIntent>(this, RequestIntent.FILLERORDER, code);
15159        if ("instance-order".equals(codeString))
15160          return new Enumeration<RequestIntent>(this, RequestIntent.INSTANCEORDER, code);
15161        if ("option".equals(codeString))
15162          return new Enumeration<RequestIntent>(this, RequestIntent.OPTION, code);
15163        throw new FHIRException("Unknown RequestIntent code '"+codeString+"'");
15164        }
15165    public String toCode(RequestIntent code) {
15166      if (code == RequestIntent.PROPOSAL)
15167        return "proposal";
15168      if (code == RequestIntent.PLAN)
15169        return "plan";
15170      if (code == RequestIntent.DIRECTIVE)
15171        return "directive";
15172      if (code == RequestIntent.ORDER)
15173        return "order";
15174      if (code == RequestIntent.ORIGINALORDER)
15175        return "original-order";
15176      if (code == RequestIntent.REFLEXORDER)
15177        return "reflex-order";
15178      if (code == RequestIntent.FILLERORDER)
15179        return "filler-order";
15180      if (code == RequestIntent.INSTANCEORDER)
15181        return "instance-order";
15182      if (code == RequestIntent.OPTION)
15183        return "option";
15184      return "?";
15185      }
15186    public String toSystem(RequestIntent code) {
15187      return code.getSystem();
15188      }
15189    }
15190
15191    public enum RequestPriority {
15192        /**
15193         * The request has normal priority.
15194         */
15195        ROUTINE, 
15196        /**
15197         * The request should be actioned promptly - higher priority than routine.
15198         */
15199        URGENT, 
15200        /**
15201         * The request should be actioned as soon as possible - higher priority than urgent.
15202         */
15203        ASAP, 
15204        /**
15205         * The request should be actioned immediately - highest possible priority.  E.g. an emergency.
15206         */
15207        STAT, 
15208        /**
15209         * added to help the parsers
15210         */
15211        NULL;
15212        public static RequestPriority fromCode(String codeString) throws FHIRException {
15213            if (codeString == null || "".equals(codeString))
15214                return null;
15215        if ("routine".equals(codeString))
15216          return ROUTINE;
15217        if ("urgent".equals(codeString))
15218          return URGENT;
15219        if ("asap".equals(codeString))
15220          return ASAP;
15221        if ("stat".equals(codeString))
15222          return STAT;
15223        throw new FHIRException("Unknown RequestPriority code '"+codeString+"'");
15224        }
15225        public String toCode() {
15226          switch (this) {
15227            case ROUTINE: return "routine";
15228            case URGENT: return "urgent";
15229            case ASAP: return "asap";
15230            case STAT: return "stat";
15231            case NULL: return null;
15232            default: return "?";
15233          }
15234        }
15235        public String getSystem() {
15236          switch (this) {
15237            case ROUTINE: return "http://hl7.org/fhir/request-priority";
15238            case URGENT: return "http://hl7.org/fhir/request-priority";
15239            case ASAP: return "http://hl7.org/fhir/request-priority";
15240            case STAT: return "http://hl7.org/fhir/request-priority";
15241            case NULL: return null;
15242            default: return "?";
15243          }
15244        }
15245        public String getDefinition() {
15246          switch (this) {
15247            case ROUTINE: return "The request has normal priority.";
15248            case URGENT: return "The request should be actioned promptly - higher priority than routine.";
15249            case ASAP: return "The request should be actioned as soon as possible - higher priority than urgent.";
15250            case STAT: return "The request should be actioned immediately - highest possible priority.  E.g. an emergency.";
15251            case NULL: return null;
15252            default: return "?";
15253          }
15254        }
15255        public String getDisplay() {
15256          switch (this) {
15257            case ROUTINE: return "Routine";
15258            case URGENT: return "Urgent";
15259            case ASAP: return "ASAP";
15260            case STAT: return "STAT";
15261            case NULL: return null;
15262            default: return "?";
15263          }
15264        }
15265    }
15266
15267  public static class RequestPriorityEnumFactory implements EnumFactory<RequestPriority> {
15268    public RequestPriority fromCode(String codeString) throws IllegalArgumentException {
15269      if (codeString == null || "".equals(codeString))
15270            if (codeString == null || "".equals(codeString))
15271                return null;
15272        if ("routine".equals(codeString))
15273          return RequestPriority.ROUTINE;
15274        if ("urgent".equals(codeString))
15275          return RequestPriority.URGENT;
15276        if ("asap".equals(codeString))
15277          return RequestPriority.ASAP;
15278        if ("stat".equals(codeString))
15279          return RequestPriority.STAT;
15280        throw new IllegalArgumentException("Unknown RequestPriority code '"+codeString+"'");
15281        }
15282        public Enumeration<RequestPriority> fromType(PrimitiveType<?> code) throws FHIRException {
15283          if (code == null)
15284            return null;
15285          if (code.isEmpty())
15286            return new Enumeration<RequestPriority>(this, RequestPriority.NULL, code);
15287          String codeString = ((PrimitiveType) code).asStringValue();
15288          if (codeString == null || "".equals(codeString))
15289            return new Enumeration<RequestPriority>(this, RequestPriority.NULL, code);
15290        if ("routine".equals(codeString))
15291          return new Enumeration<RequestPriority>(this, RequestPriority.ROUTINE, code);
15292        if ("urgent".equals(codeString))
15293          return new Enumeration<RequestPriority>(this, RequestPriority.URGENT, code);
15294        if ("asap".equals(codeString))
15295          return new Enumeration<RequestPriority>(this, RequestPriority.ASAP, code);
15296        if ("stat".equals(codeString))
15297          return new Enumeration<RequestPriority>(this, RequestPriority.STAT, code);
15298        throw new FHIRException("Unknown RequestPriority code '"+codeString+"'");
15299        }
15300    public String toCode(RequestPriority code) {
15301      if (code == RequestPriority.ROUTINE)
15302        return "routine";
15303      if (code == RequestPriority.URGENT)
15304        return "urgent";
15305      if (code == RequestPriority.ASAP)
15306        return "asap";
15307      if (code == RequestPriority.STAT)
15308        return "stat";
15309      return "?";
15310      }
15311    public String toSystem(RequestPriority code) {
15312      return code.getSystem();
15313      }
15314    }
15315
15316    public enum RequestStatus {
15317        /**
15318         * The request has been created but is not yet complete or ready for action.
15319         */
15320        DRAFT, 
15321        /**
15322         * The request is in force and ready to be acted upon.
15323         */
15324        ACTIVE, 
15325        /**
15326         * The request (and any implicit authorization to act) has been temporarily withdrawn but is expected to resume in the future.
15327         */
15328        ONHOLD, 
15329        /**
15330         * The request (and any implicit authorization to act) has been terminated prior to the known full completion of the intended actions.  No further activity should occur.
15331         */
15332        REVOKED, 
15333        /**
15334         * The activity described by the request has been fully performed.  No further activity will occur.
15335         */
15336        COMPLETED, 
15337        /**
15338         * This request should never have existed and should be considered 'void'.  (It is possible that real-world decisions were based on it.  If real-world activity has occurred, the status should be "revoked" rather than "entered-in-error".).
15339         */
15340        ENTEREDINERROR, 
15341        /**
15342         * The authoring/source system does not know which of the status values currently applies for this request.  Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply,  but the authoring/source system does not know which.
15343         */
15344        UNKNOWN, 
15345        /**
15346         * added to help the parsers
15347         */
15348        NULL;
15349        public static RequestStatus fromCode(String codeString) throws FHIRException {
15350            if (codeString == null || "".equals(codeString))
15351                return null;
15352        if ("draft".equals(codeString))
15353          return DRAFT;
15354        if ("active".equals(codeString))
15355          return ACTIVE;
15356        if ("on-hold".equals(codeString))
15357          return ONHOLD;
15358        if ("revoked".equals(codeString))
15359          return REVOKED;
15360        if ("completed".equals(codeString))
15361          return COMPLETED;
15362        if ("entered-in-error".equals(codeString))
15363          return ENTEREDINERROR;
15364        if ("unknown".equals(codeString))
15365          return UNKNOWN;
15366        throw new FHIRException("Unknown RequestStatus code '"+codeString+"'");
15367        }
15368        public String toCode() {
15369          switch (this) {
15370            case DRAFT: return "draft";
15371            case ACTIVE: return "active";
15372            case ONHOLD: return "on-hold";
15373            case REVOKED: return "revoked";
15374            case COMPLETED: return "completed";
15375            case ENTEREDINERROR: return "entered-in-error";
15376            case UNKNOWN: return "unknown";
15377            case NULL: return null;
15378            default: return "?";
15379          }
15380        }
15381        public String getSystem() {
15382          switch (this) {
15383            case DRAFT: return "http://hl7.org/fhir/request-status";
15384            case ACTIVE: return "http://hl7.org/fhir/request-status";
15385            case ONHOLD: return "http://hl7.org/fhir/request-status";
15386            case REVOKED: return "http://hl7.org/fhir/request-status";
15387            case COMPLETED: return "http://hl7.org/fhir/request-status";
15388            case ENTEREDINERROR: return "http://hl7.org/fhir/request-status";
15389            case UNKNOWN: return "http://hl7.org/fhir/request-status";
15390            case NULL: return null;
15391            default: return "?";
15392          }
15393        }
15394        public String getDefinition() {
15395          switch (this) {
15396            case DRAFT: return "The request has been created but is not yet complete or ready for action.";
15397            case ACTIVE: return "The request is in force and ready to be acted upon.";
15398            case ONHOLD: return "The request (and any implicit authorization to act) has been temporarily withdrawn but is expected to resume in the future.";
15399            case REVOKED: return "The request (and any implicit authorization to act) has been terminated prior to the known full completion of the intended actions.  No further activity should occur.";
15400            case COMPLETED: return "The activity described by the request has been fully performed.  No further activity will occur.";
15401            case ENTEREDINERROR: return "This request should never have existed and should be considered 'void'.  (It is possible that real-world decisions were based on it.  If real-world activity has occurred, the status should be \"revoked\" rather than \"entered-in-error\".).";
15402            case UNKNOWN: return "The authoring/source system does not know which of the status values currently applies for this request.  Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply,  but the authoring/source system does not know which.";
15403            case NULL: return null;
15404            default: return "?";
15405          }
15406        }
15407        public String getDisplay() {
15408          switch (this) {
15409            case DRAFT: return "Draft";
15410            case ACTIVE: return "Active";
15411            case ONHOLD: return "On Hold";
15412            case REVOKED: return "Revoked";
15413            case COMPLETED: return "Completed";
15414            case ENTEREDINERROR: return "Entered in Error";
15415            case UNKNOWN: return "Unknown";
15416            case NULL: return null;
15417            default: return "?";
15418          }
15419        }
15420    }
15421
15422  public static class RequestStatusEnumFactory implements EnumFactory<RequestStatus> {
15423    public RequestStatus fromCode(String codeString) throws IllegalArgumentException {
15424      if (codeString == null || "".equals(codeString))
15425            if (codeString == null || "".equals(codeString))
15426                return null;
15427        if ("draft".equals(codeString))
15428          return RequestStatus.DRAFT;
15429        if ("active".equals(codeString))
15430          return RequestStatus.ACTIVE;
15431        if ("on-hold".equals(codeString))
15432          return RequestStatus.ONHOLD;
15433        if ("revoked".equals(codeString))
15434          return RequestStatus.REVOKED;
15435        if ("completed".equals(codeString))
15436          return RequestStatus.COMPLETED;
15437        if ("entered-in-error".equals(codeString))
15438          return RequestStatus.ENTEREDINERROR;
15439        if ("unknown".equals(codeString))
15440          return RequestStatus.UNKNOWN;
15441        throw new IllegalArgumentException("Unknown RequestStatus code '"+codeString+"'");
15442        }
15443        public Enumeration<RequestStatus> fromType(PrimitiveType<?> code) throws FHIRException {
15444          if (code == null)
15445            return null;
15446          if (code.isEmpty())
15447            return new Enumeration<RequestStatus>(this, RequestStatus.NULL, code);
15448          String codeString = ((PrimitiveType) code).asStringValue();
15449          if (codeString == null || "".equals(codeString))
15450            return new Enumeration<RequestStatus>(this, RequestStatus.NULL, code);
15451        if ("draft".equals(codeString))
15452          return new Enumeration<RequestStatus>(this, RequestStatus.DRAFT, code);
15453        if ("active".equals(codeString))
15454          return new Enumeration<RequestStatus>(this, RequestStatus.ACTIVE, code);
15455        if ("on-hold".equals(codeString))
15456          return new Enumeration<RequestStatus>(this, RequestStatus.ONHOLD, code);
15457        if ("revoked".equals(codeString))
15458          return new Enumeration<RequestStatus>(this, RequestStatus.REVOKED, code);
15459        if ("completed".equals(codeString))
15460          return new Enumeration<RequestStatus>(this, RequestStatus.COMPLETED, code);
15461        if ("entered-in-error".equals(codeString))
15462          return new Enumeration<RequestStatus>(this, RequestStatus.ENTEREDINERROR, code);
15463        if ("unknown".equals(codeString))
15464          return new Enumeration<RequestStatus>(this, RequestStatus.UNKNOWN, code);
15465        throw new FHIRException("Unknown RequestStatus code '"+codeString+"'");
15466        }
15467    public String toCode(RequestStatus code) {
15468      if (code == RequestStatus.DRAFT)
15469        return "draft";
15470      if (code == RequestStatus.ACTIVE)
15471        return "active";
15472      if (code == RequestStatus.ONHOLD)
15473        return "on-hold";
15474      if (code == RequestStatus.REVOKED)
15475        return "revoked";
15476      if (code == RequestStatus.COMPLETED)
15477        return "completed";
15478      if (code == RequestStatus.ENTEREDINERROR)
15479        return "entered-in-error";
15480      if (code == RequestStatus.UNKNOWN)
15481        return "unknown";
15482      return "?";
15483      }
15484    public String toSystem(RequestStatus code) {
15485      return code.getSystem();
15486      }
15487    }
15488
15489    public enum ResourceTypeEnum {
15490        /**
15491         * 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.
15492         */
15493        ACCOUNT, 
15494        /**
15495         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
15496         */
15497        ACTIVITYDEFINITION, 
15498        /**
15499         * The ActorDefinition resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.
15500         */
15501        ACTORDEFINITION, 
15502        /**
15503         * A medicinal product in the final form which is suitable for administering to a patient (after any mixing of multiple components, dissolution etc. has been performed).
15504         */
15505        ADMINISTRABLEPRODUCTDEFINITION, 
15506        /**
15507         * An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research subject. The unintended effects may require additional monitoring, treatment, hospitalization, or may result in death. The AdverseEvent resource also extends to potential or avoided events that could have had such effects. There are two major domains where the AdverseEvent resource is expected to be used. One is in clinical care reported adverse events and the other is in reporting adverse events in clinical  research trial management. Given the differences between these two concepts, we recommend consulting the domain specific implementation guides when implementing the AdverseEvent Resource. The implementation guides include specific extensions, value sets and constraints.
15508         */
15509        ADVERSEEVENT, 
15510        /**
15511         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
15512         */
15513        ALLERGYINTOLERANCE, 
15514        /**
15515         * 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).
15516         */
15517        APPOINTMENT, 
15518        /**
15519         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
15520         */
15521        APPOINTMENTRESPONSE, 
15522        /**
15523         * This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.
15524         */
15525        ARTIFACTASSESSMENT, 
15526        /**
15527         * A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.
15528         */
15529        AUDITEVENT, 
15530        /**
15531         * 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.
15532         */
15533        BASIC, 
15534        /**
15535         * A resource that represents the data of a single raw artifact as digital content accessible in its native format.  A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.
15536         */
15537        BINARY, 
15538        /**
15539         * A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.
15540         */
15541        BIOLOGICALLYDERIVEDPRODUCT, 
15542        /**
15543         * Record details about an anatomical structure.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
15544         */
15545        BODYSTRUCTURE, 
15546        /**
15547         * A container for a collection of resources.
15548         */
15549        BUNDLE, 
15550        /**
15551         * A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server or Client for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
15552         */
15553        CAPABILITYSTATEMENT, 
15554        /**
15555         * 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.
15556         */
15557        CAREPLAN, 
15558        /**
15559         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.
15560         */
15561        CARETEAM, 
15562        /**
15563         * 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.
15564         */
15565        CHARGEITEM, 
15566        /**
15567         * The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system.
15568         */
15569        CHARGEITEMDEFINITION, 
15570        /**
15571         * The Citation Resource enables reference to any knowledge artifact for purposes of identification and attribution. The Citation Resource supports existing reference structures and developing publication practices such as versioning, expressing complex contributorship roles, and referencing computable resources.
15572         */
15573        CITATION, 
15574        /**
15575         * A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.
15576         */
15577        CLAIM, 
15578        /**
15579         * This resource provides the adjudication details from the processing of a Claim resource.
15580         */
15581        CLAIMRESPONSE, 
15582        /**
15583         * 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.
15584         */
15585        CLINICALIMPRESSION, 
15586        /**
15587         * A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.
15588         */
15589        CLINICALUSEDEFINITION, 
15590        /**
15591         * The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.
15592         */
15593        CODESYSTEM, 
15594        /**
15595         * A clinical or business level record of information being transmitted or shared; e.g. an alert that was sent to a responsible provider, a public health agency communication to a provider/reporter in response to a case report for a reportable condition.
15596         */
15597        COMMUNICATION, 
15598        /**
15599         * 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.
15600         */
15601        COMMUNICATIONREQUEST, 
15602        /**
15603         * A compartment definition that defines how resources are accessed on a server.
15604         */
15605        COMPARTMENTDEFINITION, 
15606        /**
15607         * A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).
15608         */
15609        COMPOSITION, 
15610        /**
15611         * A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.
15612         */
15613        CONCEPTMAP, 
15614        /**
15615         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
15616         */
15617        CONDITION, 
15618        /**
15619         * A definition of a condition and information relevant to managing it.
15620         */
15621        CONDITIONDEFINITION, 
15622        /**
15623         * A record of a healthcare consumer’s  choices  or choices made on their behalf by a third party, 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.
15624         */
15625        CONSENT, 
15626        /**
15627         * Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.
15628         */
15629        CONTRACT, 
15630        /**
15631         * Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.
15632         */
15633        COVERAGE, 
15634        /**
15635         * The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.
15636         */
15637        COVERAGEELIGIBILITYREQUEST, 
15638        /**
15639         * This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.
15640         */
15641        COVERAGEELIGIBILITYRESPONSE, 
15642        /**
15643         * 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.
15644         */
15645        DETECTEDISSUE, 
15646        /**
15647         * This resource describes the properties (regulated, has real time clock, etc.), adminstrative (manufacturer name, model number, serial number, firmware, etc), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serail number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element.
15648         */
15649        DEVICE, 
15650        /**
15651         * This is a specialized resource that defines the characteristics and capabilities of a device.
15652         */
15653        DEVICEDEFINITION, 
15654        /**
15655         * Indicates that a device is to be or has been dispensed for a named person/patient.  This includes a description of the product (supply) provided and the instructions for using the device.
15656         */
15657        DEVICEDISPENSE, 
15658        /**
15659         * Describes a measurement, calculation or setting capability of a medical device.
15660         */
15661        DEVICEMETRIC, 
15662        /**
15663         * Represents a request a device to be provided to a specific patient. The device may be an implantable device to be subsequently implanted, or an external assistive device, such as a walker, to be delivered and subsequently be used.
15664         */
15665        DEVICEREQUEST, 
15666        /**
15667         * A record of a device being used by a patient where the record is the result of a report from the patient or a clinician.
15668         */
15669        DEVICEUSAGE, 
15670        /**
15671         * The findings and interpretation of diagnostic tests performed on patients, groups of patients, products, substances, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports. The report also includes non-clinical context such as batch analysis and stability reporting of products and substances.
15672         */
15673        DIAGNOSTICREPORT, 
15674        /**
15675         * A collection of documents compiled for a purpose together with metadata that applies to the collection.
15676         */
15677        DOCUMENTMANIFEST, 
15678        /**
15679         * A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this "document" encompasses *any* serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare.  The DocumentReference resource provides metadata about the document so that the document can be discovered and managed.  The actual content may be inline base64 encoded data or provided by direct reference.
15680         */
15681        DOCUMENTREFERENCE, 
15682        /**
15683         * An interaction between healthcare provider(s), and/or patient(s) for the purpose of providing healthcare service(s) or assessing the health status of patient(s).
15684         */
15685        ENCOUNTER, 
15686        /**
15687         * The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.
15688         */
15689        ENDPOINT, 
15690        /**
15691         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
15692         */
15693        ENROLLMENTREQUEST, 
15694        /**
15695         * This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.
15696         */
15697        ENROLLMENTRESPONSE, 
15698        /**
15699         * 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.
15700         */
15701        EPISODEOFCARE, 
15702        /**
15703         * The EventDefinition resource provides a reusable description of when a particular event can occur.
15704         */
15705        EVENTDEFINITION, 
15706        /**
15707         * The Evidence Resource provides a machine-interpretable expression of an evidence concept including the evidence variables (e.g., population, exposures/interventions, comparators, outcomes, measured variables, confounding variables), the statistics, and the certainty of this evidence.
15708         */
15709        EVIDENCE, 
15710        /**
15711         * The EvidenceReport Resource is a specialized container for a collection of resources and codeable concepts, adapted to support compositions of Evidence, EvidenceVariable, and Citation resources and related concepts.
15712         */
15713        EVIDENCEREPORT, 
15714        /**
15715         * The EvidenceVariable resource describes an element that knowledge (Evidence) is about.
15716         */
15717        EVIDENCEVARIABLE, 
15718        /**
15719         * A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
15720         */
15721        EXAMPLESCENARIO, 
15722        /**
15723         * 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.
15724         */
15725        EXPLANATIONOFBENEFIT, 
15726        /**
15727         * Significant health conditions for a person related to the patient relevant in the context of care for the patient.
15728         */
15729        FAMILYMEMBERHISTORY, 
15730        /**
15731         * Prospective warnings of potential issues when providing care to the patient.
15732         */
15733        FLAG, 
15734        /**
15735         * This resource describes a product or service that is available through a program and includes the conditions and constraints of availability.  All of the information in this resource is specific to the inclusion of the item in the formulary and is not inherent to the item itself.
15736         */
15737        FORMULARYITEM, 
15738        /**
15739         * A Genomic Study is a set of analysis performed to analyze and generate genomic data.
15740         */
15741        GENOMICSTUDY, 
15742        /**
15743         * 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.
15744         */
15745        GOAL, 
15746        /**
15747         * 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.
15748         */
15749        GRAPHDEFINITION, 
15750        /**
15751         * 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.
15752         */
15753        GROUP, 
15754        /**
15755         * 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.
15756         */
15757        GUIDANCERESPONSE, 
15758        /**
15759         * The details of a healthcare service available at a location or in a catalog.  In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices.
15760         */
15761        HEALTHCARESERVICE, 
15762        /**
15763         * A selection of DICOM SOP instances and/or frames within a single Study and Series. This might include additional specifics such as an image region, an Observation UID or a Segmentation Number, allowing linkage to an Observation Resource or transferring this information along with the ImagingStudy Resource.
15764         */
15765        IMAGINGSELECTION, 
15766        /**
15767         * 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.
15768         */
15769        IMAGINGSTUDY, 
15770        /**
15771         * Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
15772         */
15773        IMMUNIZATION, 
15774        /**
15775         * Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those  recommendations.
15776         */
15777        IMMUNIZATIONEVALUATION, 
15778        /**
15779         * A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.
15780         */
15781        IMMUNIZATIONRECOMMENDATION, 
15782        /**
15783         * A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
15784         */
15785        IMPLEMENTATIONGUIDE, 
15786        /**
15787         * An ingredient of a manufactured item or pharmaceutical product.
15788         */
15789        INGREDIENT, 
15790        /**
15791         * Details of a Health Insurance product/plan provided by an organization.
15792         */
15793        INSURANCEPLAN, 
15794        /**
15795         * A report of inventory or stock items.
15796         */
15797        INVENTORYREPORT, 
15798        /**
15799         * Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.
15800         */
15801        INVOICE, 
15802        /**
15803         * 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.
15804         */
15805        LIBRARY, 
15806        /**
15807         * Identifies two or more records (resource instances) that refer to the same real-world "occurrence".
15808         */
15809        LINKAGE, 
15810        /**
15811         * A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.
15812         */
15813        LIST, 
15814        /**
15815         * Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained, or accommodated.
15816         */
15817        LOCATION, 
15818        /**
15819         * The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.
15820         */
15821        MANUFACTUREDITEMDEFINITION, 
15822        /**
15823         * The Measure resource provides the definition of a quality measure.
15824         */
15825        MEASURE, 
15826        /**
15827         * The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.
15828         */
15829        MEASUREREPORT, 
15830        /**
15831         * This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.
15832         */
15833        MEDICATION, 
15834        /**
15835         * 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.
15836         */
15837        MEDICATIONADMINISTRATION, 
15838        /**
15839         * 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.
15840         */
15841        MEDICATIONDISPENSE, 
15842        /**
15843         * Information about a medication that is used to support knowledge.
15844         */
15845        MEDICATIONKNOWLEDGE, 
15846        /**
15847         * 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.
15848         */
15849        MEDICATIONREQUEST, 
15850        /**
15851         * A record of a medication that is being consumed by a patient.   A MedicationUsage 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. 
15852
15853The primary difference between a medicationusage and a medicationadministration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medicationusage 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 Usage 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.
15854         */
15855        MEDICATIONUSAGE, 
15856        /**
15857         * Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs, to support prescribing, adverse events management etc.).
15858         */
15859        MEDICINALPRODUCTDEFINITION, 
15860        /**
15861         * 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.
15862         */
15863        MESSAGEDEFINITION, 
15864        /**
15865         * 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.
15866         */
15867        MESSAGEHEADER, 
15868        /**
15869         * Representation of a molecular sequence.
15870         */
15871        MOLECULARSEQUENCE, 
15872        /**
15873         * 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.
15874         */
15875        NAMINGSYSTEM, 
15876        /**
15877         * A record of food or fluid that is being consumed by a patient.  A NutritionIntake may indicate that the patient may be consuming the food or fluid now or has consumed the food or fluid in the past.  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 or through an app that tracks food or fluids consumed.   The consumption information may come from sources such as the patient's memory, from a nutrition label,  or from a clinician documenting observed intake.
15878         */
15879        NUTRITIONINTAKE, 
15880        /**
15881         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
15882         */
15883        NUTRITIONORDER, 
15884        /**
15885         * A food or supplement that is consumed by patients.
15886         */
15887        NUTRITIONPRODUCT, 
15888        /**
15889         * Measurements and simple assertions made about a patient, device or other subject.
15890         */
15891        OBSERVATION, 
15892        /**
15893         * Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
15894         */
15895        OBSERVATIONDEFINITION, 
15896        /**
15897         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
15898         */
15899        OPERATIONDEFINITION, 
15900        /**
15901         * A collection of error, warning, or information messages that result from a system action.
15902         */
15903        OPERATIONOUTCOME, 
15904        /**
15905         * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc.
15906         */
15907        ORGANIZATION, 
15908        /**
15909         * Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.
15910         */
15911        ORGANIZATIONAFFILIATION, 
15912        /**
15913         * A medically related item or items, in a container or package.
15914         */
15915        PACKAGEDPRODUCTDEFINITION, 
15916        /**
15917         * This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment).  It is not persisted or allowed to be referenced by other resources except as described in the definition of the Parameters resource.
15918         */
15919        PARAMETERS, 
15920        /**
15921         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
15922         */
15923        PATIENT, 
15924        /**
15925         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
15926         */
15927        PAYMENTNOTICE, 
15928        /**
15929         * This resource provides the details including amount of a payment and allocates the payment items being paid.
15930         */
15931        PAYMENTRECONCILIATION, 
15932        /**
15933         * Permission resource holds access rules for a given data and context.
15934         */
15935        PERMISSION, 
15936        /**
15937         * Demographics and administrative information about a person independent of a specific health-related context.
15938         */
15939        PERSON, 
15940        /**
15941         * 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 and non-clinical artifacts such as clinical decision support rules, order sets, protocols, and drug quality specifications.
15942         */
15943        PLANDEFINITION, 
15944        /**
15945         * A person who is directly or indirectly involved in the provisioning of healthcare or related services.
15946         */
15947        PRACTITIONER, 
15948        /**
15949         * A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.
15950         */
15951        PRACTITIONERROLE, 
15952        /**
15953         * An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy.  This can be a quality or safety inspection for a location, organization, or device.  This can be an accreditation procedure on a practitioner for licensing.
15954         */
15955        PROCEDURE, 
15956        /**
15957         * 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.
15958         */
15959        PROVENANCE, 
15960        /**
15961         * 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.
15962         */
15963        QUESTIONNAIRE, 
15964        /**
15965         * 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.
15966         */
15967        QUESTIONNAIRERESPONSE, 
15968        /**
15969         * Regulatory approval, clearance or licencing related to a regulated product, treatment, facility or activity that is cited in a guidance, regulation, rule or legislative act. An example is Market Authorization relating to a Medicinal Product.
15970         */
15971        REGULATEDAUTHORIZATION, 
15972        /**
15973         * Information about a person that is involved in a patient's health or the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
15974         */
15975        RELATEDPERSON, 
15976        /**
15977         * A set of related requests that can be used to capture intended activities that have inter-dependencies such as "give this medication after that one".
15978         */
15979        REQUESTORCHESTRATION, 
15980        /**
15981         * The Requirements resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.
15982         */
15983        REQUIREMENTS, 
15984        /**
15985         * A scientific study of nature that sometimes includes processes involved in health and disease. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future.
15986         */
15987        RESEARCHSTUDY, 
15988        /**
15989         * A physical entity which is the primary unit of operational and/or administrative interest in a study.
15990         */
15991        RESEARCHSUBJECT, 
15992        /**
15993         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
15994         */
15995        RISKASSESSMENT, 
15996        /**
15997         * A container for slots of time that may be available for booking appointments.
15998         */
15999        SCHEDULE, 
16000        /**
16001         * A search parameter that defines a named search item that can be used to search/filter on a resource.
16002         */
16003        SEARCHPARAMETER, 
16004        /**
16005         * A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.
16006         */
16007        SERVICEREQUEST, 
16008        /**
16009         * A slot of time on a schedule that may be available for booking appointments.
16010         */
16011        SLOT, 
16012        /**
16013         * A sample to be used for analysis.
16014         */
16015        SPECIMEN, 
16016        /**
16017         * A kind of specimen with associated set of requirements.
16018         */
16019        SPECIMENDEFINITION, 
16020        /**
16021         * 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.
16022         */
16023        STRUCTUREDEFINITION, 
16024        /**
16025         * A Map of relationships between 2 structures that can be used to transform data.
16026         */
16027        STRUCTUREMAP, 
16028        /**
16029         * The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.
16030         */
16031        SUBSCRIPTION, 
16032        /**
16033         * The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.
16034         */
16035        SUBSCRIPTIONSTATUS, 
16036        /**
16037         * Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.
16038         */
16039        SUBSCRIPTIONTOPIC, 
16040        /**
16041         * A homogeneous material with a definite composition.
16042         */
16043        SUBSTANCE, 
16044        /**
16045         * The detailed description of a substance, typically at a level beyond what is used for prescribing.
16046         */
16047        SUBSTANCEDEFINITION, 
16048        /**
16049         * Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5’-3’ direction.
16050         */
16051        SUBSTANCENUCLEICACID, 
16052        /**
16053         * Properties of a substance specific to it being a polymer.
16054         */
16055        SUBSTANCEPOLYMER, 
16056        /**
16057         * A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators.
16058         */
16059        SUBSTANCEPROTEIN, 
16060        /**
16061         * Todo.
16062         */
16063        SUBSTANCEREFERENCEINFORMATION, 
16064        /**
16065         * Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex.
16066         */
16067        SUBSTANCESOURCEMATERIAL, 
16068        /**
16069         * Record of delivery of what is supplied.
16070         */
16071        SUPPLYDELIVERY, 
16072        /**
16073         * A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.
16074         */
16075        SUPPLYREQUEST, 
16076        /**
16077         * A task to be performed.
16078         */
16079        TASK, 
16080        /**
16081         * A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.
16082         */
16083        TERMINOLOGYCAPABILITIES, 
16084        /**
16085         * A summary of information based on the results of executing a TestScript.
16086         */
16087        TESTREPORT, 
16088        /**
16089         * A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
16090         */
16091        TESTSCRIPT, 
16092        /**
16093         * Record of transport.
16094         */
16095        TRANSPORT, 
16096        /**
16097         * A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[[CodeSystem]]] definitions and their use in [coded elements](terminologies.html).
16098         */
16099        VALUESET, 
16100        /**
16101         * Describes validation requirements, source(s), status and dates for one or more elements.
16102         */
16103        VERIFICATIONRESULT, 
16104        /**
16105         * An authorization for the provision of glasses and/or contact lenses to a patient.
16106         */
16107        VISIONPRESCRIPTION, 
16108        /**
16109         * added to help the parsers
16110         */
16111        NULL;
16112        public static ResourceTypeEnum fromCode(String codeString) throws FHIRException {
16113            if (codeString == null || "".equals(codeString))
16114                return null;
16115        if ("Account".equals(codeString))
16116          return ACCOUNT;
16117        if ("ActivityDefinition".equals(codeString))
16118          return ACTIVITYDEFINITION;
16119        if ("ActorDefinition".equals(codeString))
16120          return ACTORDEFINITION;
16121        if ("AdministrableProductDefinition".equals(codeString))
16122          return ADMINISTRABLEPRODUCTDEFINITION;
16123        if ("AdverseEvent".equals(codeString))
16124          return ADVERSEEVENT;
16125        if ("AllergyIntolerance".equals(codeString))
16126          return ALLERGYINTOLERANCE;
16127        if ("Appointment".equals(codeString))
16128          return APPOINTMENT;
16129        if ("AppointmentResponse".equals(codeString))
16130          return APPOINTMENTRESPONSE;
16131        if ("ArtifactAssessment".equals(codeString))
16132          return ARTIFACTASSESSMENT;
16133        if ("AuditEvent".equals(codeString))
16134          return AUDITEVENT;
16135        if ("Basic".equals(codeString))
16136          return BASIC;
16137        if ("Binary".equals(codeString))
16138          return BINARY;
16139        if ("BiologicallyDerivedProduct".equals(codeString))
16140          return BIOLOGICALLYDERIVEDPRODUCT;
16141        if ("BodyStructure".equals(codeString))
16142          return BODYSTRUCTURE;
16143        if ("Bundle".equals(codeString))
16144          return BUNDLE;
16145        if ("CapabilityStatement".equals(codeString))
16146          return CAPABILITYSTATEMENT;
16147        if ("CarePlan".equals(codeString))
16148          return CAREPLAN;
16149        if ("CareTeam".equals(codeString))
16150          return CARETEAM;
16151        if ("ChargeItem".equals(codeString))
16152          return CHARGEITEM;
16153        if ("ChargeItemDefinition".equals(codeString))
16154          return CHARGEITEMDEFINITION;
16155        if ("Citation".equals(codeString))
16156          return CITATION;
16157        if ("Claim".equals(codeString))
16158          return CLAIM;
16159        if ("ClaimResponse".equals(codeString))
16160          return CLAIMRESPONSE;
16161        if ("ClinicalImpression".equals(codeString))
16162          return CLINICALIMPRESSION;
16163        if ("ClinicalUseDefinition".equals(codeString))
16164          return CLINICALUSEDEFINITION;
16165        if ("CodeSystem".equals(codeString))
16166          return CODESYSTEM;
16167        if ("Communication".equals(codeString))
16168          return COMMUNICATION;
16169        if ("CommunicationRequest".equals(codeString))
16170          return COMMUNICATIONREQUEST;
16171        if ("CompartmentDefinition".equals(codeString))
16172          return COMPARTMENTDEFINITION;
16173        if ("Composition".equals(codeString))
16174          return COMPOSITION;
16175        if ("ConceptMap".equals(codeString))
16176          return CONCEPTMAP;
16177        if ("Condition".equals(codeString))
16178          return CONDITION;
16179        if ("ConditionDefinition".equals(codeString))
16180          return CONDITIONDEFINITION;
16181        if ("Consent".equals(codeString))
16182          return CONSENT;
16183        if ("Contract".equals(codeString))
16184          return CONTRACT;
16185        if ("Coverage".equals(codeString))
16186          return COVERAGE;
16187        if ("CoverageEligibilityRequest".equals(codeString))
16188          return COVERAGEELIGIBILITYREQUEST;
16189        if ("CoverageEligibilityResponse".equals(codeString))
16190          return COVERAGEELIGIBILITYRESPONSE;
16191        if ("DetectedIssue".equals(codeString))
16192          return DETECTEDISSUE;
16193        if ("Device".equals(codeString))
16194          return DEVICE;
16195        if ("DeviceDefinition".equals(codeString))
16196          return DEVICEDEFINITION;
16197        if ("DeviceDispense".equals(codeString))
16198          return DEVICEDISPENSE;
16199        if ("DeviceMetric".equals(codeString))
16200          return DEVICEMETRIC;
16201        if ("DeviceRequest".equals(codeString))
16202          return DEVICEREQUEST;
16203        if ("DeviceUsage".equals(codeString))
16204          return DEVICEUSAGE;
16205        if ("DiagnosticReport".equals(codeString))
16206          return DIAGNOSTICREPORT;
16207        if ("DocumentManifest".equals(codeString))
16208          return DOCUMENTMANIFEST;
16209        if ("DocumentReference".equals(codeString))
16210          return DOCUMENTREFERENCE;
16211        if ("Encounter".equals(codeString))
16212          return ENCOUNTER;
16213        if ("Endpoint".equals(codeString))
16214          return ENDPOINT;
16215        if ("EnrollmentRequest".equals(codeString))
16216          return ENROLLMENTREQUEST;
16217        if ("EnrollmentResponse".equals(codeString))
16218          return ENROLLMENTRESPONSE;
16219        if ("EpisodeOfCare".equals(codeString))
16220          return EPISODEOFCARE;
16221        if ("EventDefinition".equals(codeString))
16222          return EVENTDEFINITION;
16223        if ("Evidence".equals(codeString))
16224          return EVIDENCE;
16225        if ("EvidenceReport".equals(codeString))
16226          return EVIDENCEREPORT;
16227        if ("EvidenceVariable".equals(codeString))
16228          return EVIDENCEVARIABLE;
16229        if ("ExampleScenario".equals(codeString))
16230          return EXAMPLESCENARIO;
16231        if ("ExplanationOfBenefit".equals(codeString))
16232          return EXPLANATIONOFBENEFIT;
16233        if ("FamilyMemberHistory".equals(codeString))
16234          return FAMILYMEMBERHISTORY;
16235        if ("Flag".equals(codeString))
16236          return FLAG;
16237        if ("FormularyItem".equals(codeString))
16238          return FORMULARYITEM;
16239        if ("GenomicStudy".equals(codeString))
16240          return GENOMICSTUDY;
16241        if ("Goal".equals(codeString))
16242          return GOAL;
16243        if ("GraphDefinition".equals(codeString))
16244          return GRAPHDEFINITION;
16245        if ("Group".equals(codeString))
16246          return GROUP;
16247        if ("GuidanceResponse".equals(codeString))
16248          return GUIDANCERESPONSE;
16249        if ("HealthcareService".equals(codeString))
16250          return HEALTHCARESERVICE;
16251        if ("ImagingSelection".equals(codeString))
16252          return IMAGINGSELECTION;
16253        if ("ImagingStudy".equals(codeString))
16254          return IMAGINGSTUDY;
16255        if ("Immunization".equals(codeString))
16256          return IMMUNIZATION;
16257        if ("ImmunizationEvaluation".equals(codeString))
16258          return IMMUNIZATIONEVALUATION;
16259        if ("ImmunizationRecommendation".equals(codeString))
16260          return IMMUNIZATIONRECOMMENDATION;
16261        if ("ImplementationGuide".equals(codeString))
16262          return IMPLEMENTATIONGUIDE;
16263        if ("Ingredient".equals(codeString))
16264          return INGREDIENT;
16265        if ("InsurancePlan".equals(codeString))
16266          return INSURANCEPLAN;
16267        if ("InventoryReport".equals(codeString))
16268          return INVENTORYREPORT;
16269        if ("Invoice".equals(codeString))
16270          return INVOICE;
16271        if ("Library".equals(codeString))
16272          return LIBRARY;
16273        if ("Linkage".equals(codeString))
16274          return LINKAGE;
16275        if ("List".equals(codeString))
16276          return LIST;
16277        if ("Location".equals(codeString))
16278          return LOCATION;
16279        if ("ManufacturedItemDefinition".equals(codeString))
16280          return MANUFACTUREDITEMDEFINITION;
16281        if ("Measure".equals(codeString))
16282          return MEASURE;
16283        if ("MeasureReport".equals(codeString))
16284          return MEASUREREPORT;
16285        if ("Medication".equals(codeString))
16286          return MEDICATION;
16287        if ("MedicationAdministration".equals(codeString))
16288          return MEDICATIONADMINISTRATION;
16289        if ("MedicationDispense".equals(codeString))
16290          return MEDICATIONDISPENSE;
16291        if ("MedicationKnowledge".equals(codeString))
16292          return MEDICATIONKNOWLEDGE;
16293        if ("MedicationRequest".equals(codeString))
16294          return MEDICATIONREQUEST;
16295        if ("MedicationUsage".equals(codeString))
16296          return MEDICATIONUSAGE;
16297        if ("MedicationStatement".equals(codeString))
16298          return MEDICATIONUSAGE;
16299        if ("MedicinalProductDefinition".equals(codeString))
16300          return MEDICINALPRODUCTDEFINITION;
16301        if ("MessageDefinition".equals(codeString))
16302          return MESSAGEDEFINITION;
16303        if ("MessageHeader".equals(codeString))
16304          return MESSAGEHEADER;
16305        if ("MolecularSequence".equals(codeString))
16306          return MOLECULARSEQUENCE;
16307        if ("NamingSystem".equals(codeString))
16308          return NAMINGSYSTEM;
16309        if ("NutritionIntake".equals(codeString))
16310          return NUTRITIONINTAKE;
16311        if ("NutritionOrder".equals(codeString))
16312          return NUTRITIONORDER;
16313        if ("NutritionProduct".equals(codeString))
16314          return NUTRITIONPRODUCT;
16315        if ("Observation".equals(codeString))
16316          return OBSERVATION;
16317        if ("ObservationDefinition".equals(codeString))
16318          return OBSERVATIONDEFINITION;
16319        if ("OperationDefinition".equals(codeString))
16320          return OPERATIONDEFINITION;
16321        if ("OperationOutcome".equals(codeString))
16322          return OPERATIONOUTCOME;
16323        if ("Organization".equals(codeString))
16324          return ORGANIZATION;
16325        if ("OrganizationAffiliation".equals(codeString))
16326          return ORGANIZATIONAFFILIATION;
16327        if ("PackagedProductDefinition".equals(codeString))
16328          return PACKAGEDPRODUCTDEFINITION;
16329        if ("Parameters".equals(codeString))
16330          return PARAMETERS;
16331        if ("Patient".equals(codeString))
16332          return PATIENT;
16333        if ("PaymentNotice".equals(codeString))
16334          return PAYMENTNOTICE;
16335        if ("PaymentReconciliation".equals(codeString))
16336          return PAYMENTRECONCILIATION;
16337        if ("Permission".equals(codeString))
16338          return PERMISSION;
16339        if ("Person".equals(codeString))
16340          return PERSON;
16341        if ("PlanDefinition".equals(codeString))
16342          return PLANDEFINITION;
16343        if ("Practitioner".equals(codeString))
16344          return PRACTITIONER;
16345        if ("PractitionerRole".equals(codeString))
16346          return PRACTITIONERROLE;
16347        if ("Procedure".equals(codeString))
16348          return PROCEDURE;
16349        if ("Provenance".equals(codeString))
16350          return PROVENANCE;
16351        if ("Questionnaire".equals(codeString))
16352          return QUESTIONNAIRE;
16353        if ("QuestionnaireResponse".equals(codeString))
16354          return QUESTIONNAIRERESPONSE;
16355        if ("RegulatedAuthorization".equals(codeString))
16356          return REGULATEDAUTHORIZATION;
16357        if ("RelatedPerson".equals(codeString))
16358          return RELATEDPERSON;
16359        if ("RequestOrchestration".equals(codeString))
16360          return REQUESTORCHESTRATION;
16361        if ("Requirements".equals(codeString))
16362          return REQUIREMENTS;
16363        if ("ResearchStudy".equals(codeString))
16364          return RESEARCHSTUDY;
16365        if ("ResearchSubject".equals(codeString))
16366          return RESEARCHSUBJECT;
16367        if ("RiskAssessment".equals(codeString))
16368          return RISKASSESSMENT;
16369        if ("Schedule".equals(codeString))
16370          return SCHEDULE;
16371        if ("SearchParameter".equals(codeString))
16372          return SEARCHPARAMETER;
16373        if ("ServiceRequest".equals(codeString))
16374          return SERVICEREQUEST;
16375        if ("Slot".equals(codeString))
16376          return SLOT;
16377        if ("Specimen".equals(codeString))
16378          return SPECIMEN;
16379        if ("SpecimenDefinition".equals(codeString))
16380          return SPECIMENDEFINITION;
16381        if ("StructureDefinition".equals(codeString))
16382          return STRUCTUREDEFINITION;
16383        if ("StructureMap".equals(codeString))
16384          return STRUCTUREMAP;
16385        if ("Subscription".equals(codeString))
16386          return SUBSCRIPTION;
16387        if ("SubscriptionStatus".equals(codeString))
16388          return SUBSCRIPTIONSTATUS;
16389        if ("SubscriptionTopic".equals(codeString))
16390          return SUBSCRIPTIONTOPIC;
16391        if ("Substance".equals(codeString))
16392          return SUBSTANCE;
16393        if ("SubstanceDefinition".equals(codeString))
16394          return SUBSTANCEDEFINITION;
16395        if ("SubstanceNucleicAcid".equals(codeString))
16396          return SUBSTANCENUCLEICACID;
16397        if ("SubstancePolymer".equals(codeString))
16398          return SUBSTANCEPOLYMER;
16399        if ("SubstanceProtein".equals(codeString))
16400          return SUBSTANCEPROTEIN;
16401        if ("SubstanceReferenceInformation".equals(codeString))
16402          return SUBSTANCEREFERENCEINFORMATION;
16403        if ("SubstanceSourceMaterial".equals(codeString))
16404          return SUBSTANCESOURCEMATERIAL;
16405        if ("SupplyDelivery".equals(codeString))
16406          return SUPPLYDELIVERY;
16407        if ("SupplyRequest".equals(codeString))
16408          return SUPPLYREQUEST;
16409        if ("Task".equals(codeString))
16410          return TASK;
16411        if ("TerminologyCapabilities".equals(codeString))
16412          return TERMINOLOGYCAPABILITIES;
16413        if ("TestReport".equals(codeString))
16414          return TESTREPORT;
16415        if ("TestScript".equals(codeString))
16416          return TESTSCRIPT;
16417        if ("Transport".equals(codeString))
16418          return TRANSPORT;
16419        if ("ValueSet".equals(codeString))
16420          return VALUESET;
16421        if ("VerificationResult".equals(codeString))
16422          return VERIFICATIONRESULT;
16423        if ("VisionPrescription".equals(codeString))
16424          return VISIONPRESCRIPTION;
16425        throw new FHIRException("Unknown ResourceTypeEnum code '"+codeString+"'");
16426        }
16427        public String toCode() {
16428          switch (this) {
16429            case ACCOUNT: return "Account";
16430            case ACTIVITYDEFINITION: return "ActivityDefinition";
16431            case ACTORDEFINITION: return "ActorDefinition";
16432            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
16433            case ADVERSEEVENT: return "AdverseEvent";
16434            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
16435            case APPOINTMENT: return "Appointment";
16436            case APPOINTMENTRESPONSE: return "AppointmentResponse";
16437            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
16438            case AUDITEVENT: return "AuditEvent";
16439            case BASIC: return "Basic";
16440            case BINARY: return "Binary";
16441            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
16442            case BODYSTRUCTURE: return "BodyStructure";
16443            case BUNDLE: return "Bundle";
16444            case CAPABILITYSTATEMENT: return "CapabilityStatement";
16445            case CAREPLAN: return "CarePlan";
16446            case CARETEAM: return "CareTeam";
16447            case CHARGEITEM: return "ChargeItem";
16448            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
16449            case CITATION: return "Citation";
16450            case CLAIM: return "Claim";
16451            case CLAIMRESPONSE: return "ClaimResponse";
16452            case CLINICALIMPRESSION: return "ClinicalImpression";
16453            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
16454            case CODESYSTEM: return "CodeSystem";
16455            case COMMUNICATION: return "Communication";
16456            case COMMUNICATIONREQUEST: return "CommunicationRequest";
16457            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
16458            case COMPOSITION: return "Composition";
16459            case CONCEPTMAP: return "ConceptMap";
16460            case CONDITION: return "Condition";
16461            case CONDITIONDEFINITION: return "ConditionDefinition";
16462            case CONSENT: return "Consent";
16463            case CONTRACT: return "Contract";
16464            case COVERAGE: return "Coverage";
16465            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
16466            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
16467            case DETECTEDISSUE: return "DetectedIssue";
16468            case DEVICE: return "Device";
16469            case DEVICEDEFINITION: return "DeviceDefinition";
16470            case DEVICEDISPENSE: return "DeviceDispense";
16471            case DEVICEMETRIC: return "DeviceMetric";
16472            case DEVICEREQUEST: return "DeviceRequest";
16473            case DEVICEUSAGE: return "DeviceUsage";
16474            case DIAGNOSTICREPORT: return "DiagnosticReport";
16475            case DOCUMENTMANIFEST: return "DocumentManifest";
16476            case DOCUMENTREFERENCE: return "DocumentReference";
16477            case ENCOUNTER: return "Encounter";
16478            case ENDPOINT: return "Endpoint";
16479            case ENROLLMENTREQUEST: return "EnrollmentRequest";
16480            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
16481            case EPISODEOFCARE: return "EpisodeOfCare";
16482            case EVENTDEFINITION: return "EventDefinition";
16483            case EVIDENCE: return "Evidence";
16484            case EVIDENCEREPORT: return "EvidenceReport";
16485            case EVIDENCEVARIABLE: return "EvidenceVariable";
16486            case EXAMPLESCENARIO: return "ExampleScenario";
16487            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
16488            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
16489            case FLAG: return "Flag";
16490            case FORMULARYITEM: return "FormularyItem";
16491            case GENOMICSTUDY: return "GenomicStudy";
16492            case GOAL: return "Goal";
16493            case GRAPHDEFINITION: return "GraphDefinition";
16494            case GROUP: return "Group";
16495            case GUIDANCERESPONSE: return "GuidanceResponse";
16496            case HEALTHCARESERVICE: return "HealthcareService";
16497            case IMAGINGSELECTION: return "ImagingSelection";
16498            case IMAGINGSTUDY: return "ImagingStudy";
16499            case IMMUNIZATION: return "Immunization";
16500            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
16501            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
16502            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
16503            case INGREDIENT: return "Ingredient";
16504            case INSURANCEPLAN: return "InsurancePlan";
16505            case INVENTORYREPORT: return "InventoryReport";
16506            case INVOICE: return "Invoice";
16507            case LIBRARY: return "Library";
16508            case LINKAGE: return "Linkage";
16509            case LIST: return "List";
16510            case LOCATION: return "Location";
16511            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
16512            case MEASURE: return "Measure";
16513            case MEASUREREPORT: return "MeasureReport";
16514            case MEDICATION: return "Medication";
16515            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
16516            case MEDICATIONDISPENSE: return "MedicationDispense";
16517            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
16518            case MEDICATIONREQUEST: return "MedicationRequest";
16519            case MEDICATIONUSAGE: return "MedicationUsage";
16520            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
16521            case MESSAGEDEFINITION: return "MessageDefinition";
16522            case MESSAGEHEADER: return "MessageHeader";
16523            case MOLECULARSEQUENCE: return "MolecularSequence";
16524            case NAMINGSYSTEM: return "NamingSystem";
16525            case NUTRITIONINTAKE: return "NutritionIntake";
16526            case NUTRITIONORDER: return "NutritionOrder";
16527            case NUTRITIONPRODUCT: return "NutritionProduct";
16528            case OBSERVATION: return "Observation";
16529            case OBSERVATIONDEFINITION: return "ObservationDefinition";
16530            case OPERATIONDEFINITION: return "OperationDefinition";
16531            case OPERATIONOUTCOME: return "OperationOutcome";
16532            case ORGANIZATION: return "Organization";
16533            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
16534            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
16535            case PARAMETERS: return "Parameters";
16536            case PATIENT: return "Patient";
16537            case PAYMENTNOTICE: return "PaymentNotice";
16538            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
16539            case PERMISSION: return "Permission";
16540            case PERSON: return "Person";
16541            case PLANDEFINITION: return "PlanDefinition";
16542            case PRACTITIONER: return "Practitioner";
16543            case PRACTITIONERROLE: return "PractitionerRole";
16544            case PROCEDURE: return "Procedure";
16545            case PROVENANCE: return "Provenance";
16546            case QUESTIONNAIRE: return "Questionnaire";
16547            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
16548            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
16549            case RELATEDPERSON: return "RelatedPerson";
16550            case REQUESTORCHESTRATION: return "RequestOrchestration";
16551            case REQUIREMENTS: return "Requirements";
16552            case RESEARCHSTUDY: return "ResearchStudy";
16553            case RESEARCHSUBJECT: return "ResearchSubject";
16554            case RISKASSESSMENT: return "RiskAssessment";
16555            case SCHEDULE: return "Schedule";
16556            case SEARCHPARAMETER: return "SearchParameter";
16557            case SERVICEREQUEST: return "ServiceRequest";
16558            case SLOT: return "Slot";
16559            case SPECIMEN: return "Specimen";
16560            case SPECIMENDEFINITION: return "SpecimenDefinition";
16561            case STRUCTUREDEFINITION: return "StructureDefinition";
16562            case STRUCTUREMAP: return "StructureMap";
16563            case SUBSCRIPTION: return "Subscription";
16564            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
16565            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
16566            case SUBSTANCE: return "Substance";
16567            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
16568            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
16569            case SUBSTANCEPOLYMER: return "SubstancePolymer";
16570            case SUBSTANCEPROTEIN: return "SubstanceProtein";
16571            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
16572            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
16573            case SUPPLYDELIVERY: return "SupplyDelivery";
16574            case SUPPLYREQUEST: return "SupplyRequest";
16575            case TASK: return "Task";
16576            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
16577            case TESTREPORT: return "TestReport";
16578            case TESTSCRIPT: return "TestScript";
16579            case TRANSPORT: return "Transport";
16580            case VALUESET: return "ValueSet";
16581            case VERIFICATIONRESULT: return "VerificationResult";
16582            case VISIONPRESCRIPTION: return "VisionPrescription";
16583            case NULL: return null;
16584            default: return "?";
16585          }
16586        }
16587        public String getSystem() {
16588          switch (this) {
16589            case ACCOUNT: return "http://hl7.org/fhir/fhir-types";
16590            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/fhir-types";
16591            case ACTORDEFINITION: return "http://hl7.org/fhir/fhir-types";
16592            case ADMINISTRABLEPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
16593            case ADVERSEEVENT: return "http://hl7.org/fhir/fhir-types";
16594            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/fhir-types";
16595            case APPOINTMENT: return "http://hl7.org/fhir/fhir-types";
16596            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
16597            case ARTIFACTASSESSMENT: return "http://hl7.org/fhir/fhir-types";
16598            case AUDITEVENT: return "http://hl7.org/fhir/fhir-types";
16599            case BASIC: return "http://hl7.org/fhir/fhir-types";
16600            case BINARY: return "http://hl7.org/fhir/fhir-types";
16601            case BIOLOGICALLYDERIVEDPRODUCT: return "http://hl7.org/fhir/fhir-types";
16602            case BODYSTRUCTURE: return "http://hl7.org/fhir/fhir-types";
16603            case BUNDLE: return "http://hl7.org/fhir/fhir-types";
16604            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/fhir-types";
16605            case CAREPLAN: return "http://hl7.org/fhir/fhir-types";
16606            case CARETEAM: return "http://hl7.org/fhir/fhir-types";
16607            case CHARGEITEM: return "http://hl7.org/fhir/fhir-types";
16608            case CHARGEITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
16609            case CITATION: return "http://hl7.org/fhir/fhir-types";
16610            case CLAIM: return "http://hl7.org/fhir/fhir-types";
16611            case CLAIMRESPONSE: return "http://hl7.org/fhir/fhir-types";
16612            case CLINICALIMPRESSION: return "http://hl7.org/fhir/fhir-types";
16613            case CLINICALUSEDEFINITION: return "http://hl7.org/fhir/fhir-types";
16614            case CODESYSTEM: return "http://hl7.org/fhir/fhir-types";
16615            case COMMUNICATION: return "http://hl7.org/fhir/fhir-types";
16616            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
16617            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
16618            case COMPOSITION: return "http://hl7.org/fhir/fhir-types";
16619            case CONCEPTMAP: return "http://hl7.org/fhir/fhir-types";
16620            case CONDITION: return "http://hl7.org/fhir/fhir-types";
16621            case CONDITIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
16622            case CONSENT: return "http://hl7.org/fhir/fhir-types";
16623            case CONTRACT: return "http://hl7.org/fhir/fhir-types";
16624            case COVERAGE: return "http://hl7.org/fhir/fhir-types";
16625            case COVERAGEELIGIBILITYREQUEST: return "http://hl7.org/fhir/fhir-types";
16626            case COVERAGEELIGIBILITYRESPONSE: return "http://hl7.org/fhir/fhir-types";
16627            case DETECTEDISSUE: return "http://hl7.org/fhir/fhir-types";
16628            case DEVICE: return "http://hl7.org/fhir/fhir-types";
16629            case DEVICEDEFINITION: return "http://hl7.org/fhir/fhir-types";
16630            case DEVICEDISPENSE: return "http://hl7.org/fhir/fhir-types";
16631            case DEVICEMETRIC: return "http://hl7.org/fhir/fhir-types";
16632            case DEVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
16633            case DEVICEUSAGE: return "http://hl7.org/fhir/fhir-types";
16634            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/fhir-types";
16635            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/fhir-types";
16636            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/fhir-types";
16637            case ENCOUNTER: return "http://hl7.org/fhir/fhir-types";
16638            case ENDPOINT: return "http://hl7.org/fhir/fhir-types";
16639            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/fhir-types";
16640            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
16641            case EPISODEOFCARE: return "http://hl7.org/fhir/fhir-types";
16642            case EVENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
16643            case EVIDENCE: return "http://hl7.org/fhir/fhir-types";
16644            case EVIDENCEREPORT: return "http://hl7.org/fhir/fhir-types";
16645            case EVIDENCEVARIABLE: return "http://hl7.org/fhir/fhir-types";
16646            case EXAMPLESCENARIO: return "http://hl7.org/fhir/fhir-types";
16647            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/fhir-types";
16648            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/fhir-types";
16649            case FLAG: return "http://hl7.org/fhir/fhir-types";
16650            case FORMULARYITEM: return "http://hl7.org/fhir/fhir-types";
16651            case GENOMICSTUDY: return "http://hl7.org/fhir/fhir-types";
16652            case GOAL: return "http://hl7.org/fhir/fhir-types";
16653            case GRAPHDEFINITION: return "http://hl7.org/fhir/fhir-types";
16654            case GROUP: return "http://hl7.org/fhir/fhir-types";
16655            case GUIDANCERESPONSE: return "http://hl7.org/fhir/fhir-types";
16656            case HEALTHCARESERVICE: return "http://hl7.org/fhir/fhir-types";
16657            case IMAGINGSELECTION: return "http://hl7.org/fhir/fhir-types";
16658            case IMAGINGSTUDY: return "http://hl7.org/fhir/fhir-types";
16659            case IMMUNIZATION: return "http://hl7.org/fhir/fhir-types";
16660            case IMMUNIZATIONEVALUATION: return "http://hl7.org/fhir/fhir-types";
16661            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/fhir-types";
16662            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/fhir-types";
16663            case INGREDIENT: return "http://hl7.org/fhir/fhir-types";
16664            case INSURANCEPLAN: return "http://hl7.org/fhir/fhir-types";
16665            case INVENTORYREPORT: return "http://hl7.org/fhir/fhir-types";
16666            case INVOICE: return "http://hl7.org/fhir/fhir-types";
16667            case LIBRARY: return "http://hl7.org/fhir/fhir-types";
16668            case LINKAGE: return "http://hl7.org/fhir/fhir-types";
16669            case LIST: return "http://hl7.org/fhir/fhir-types";
16670            case LOCATION: return "http://hl7.org/fhir/fhir-types";
16671            case MANUFACTUREDITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
16672            case MEASURE: return "http://hl7.org/fhir/fhir-types";
16673            case MEASUREREPORT: return "http://hl7.org/fhir/fhir-types";
16674            case MEDICATION: return "http://hl7.org/fhir/fhir-types";
16675            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/fhir-types";
16676            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/fhir-types";
16677            case MEDICATIONKNOWLEDGE: return "http://hl7.org/fhir/fhir-types";
16678            case MEDICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
16679            case MEDICATIONUSAGE: return "http://hl7.org/fhir/fhir-types";
16680            case MEDICINALPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
16681            case MESSAGEDEFINITION: return "http://hl7.org/fhir/fhir-types";
16682            case MESSAGEHEADER: return "http://hl7.org/fhir/fhir-types";
16683            case MOLECULARSEQUENCE: return "http://hl7.org/fhir/fhir-types";
16684            case NAMINGSYSTEM: return "http://hl7.org/fhir/fhir-types";
16685            case NUTRITIONINTAKE: return "http://hl7.org/fhir/fhir-types";
16686            case NUTRITIONORDER: return "http://hl7.org/fhir/fhir-types";
16687            case NUTRITIONPRODUCT: return "http://hl7.org/fhir/fhir-types";
16688            case OBSERVATION: return "http://hl7.org/fhir/fhir-types";
16689            case OBSERVATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
16690            case OPERATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
16691            case OPERATIONOUTCOME: return "http://hl7.org/fhir/fhir-types";
16692            case ORGANIZATION: return "http://hl7.org/fhir/fhir-types";
16693            case ORGANIZATIONAFFILIATION: return "http://hl7.org/fhir/fhir-types";
16694            case PACKAGEDPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
16695            case PARAMETERS: return "http://hl7.org/fhir/fhir-types";
16696            case PATIENT: return "http://hl7.org/fhir/fhir-types";
16697            case PAYMENTNOTICE: return "http://hl7.org/fhir/fhir-types";
16698            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/fhir-types";
16699            case PERMISSION: return "http://hl7.org/fhir/fhir-types";
16700            case PERSON: return "http://hl7.org/fhir/fhir-types";
16701            case PLANDEFINITION: return "http://hl7.org/fhir/fhir-types";
16702            case PRACTITIONER: return "http://hl7.org/fhir/fhir-types";
16703            case PRACTITIONERROLE: return "http://hl7.org/fhir/fhir-types";
16704            case PROCEDURE: return "http://hl7.org/fhir/fhir-types";
16705            case PROVENANCE: return "http://hl7.org/fhir/fhir-types";
16706            case QUESTIONNAIRE: return "http://hl7.org/fhir/fhir-types";
16707            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/fhir-types";
16708            case REGULATEDAUTHORIZATION: return "http://hl7.org/fhir/fhir-types";
16709            case RELATEDPERSON: return "http://hl7.org/fhir/fhir-types";
16710            case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types";
16711            case REQUIREMENTS: return "http://hl7.org/fhir/fhir-types";
16712            case RESEARCHSTUDY: return "http://hl7.org/fhir/fhir-types";
16713            case RESEARCHSUBJECT: return "http://hl7.org/fhir/fhir-types";
16714            case RISKASSESSMENT: return "http://hl7.org/fhir/fhir-types";
16715            case SCHEDULE: return "http://hl7.org/fhir/fhir-types";
16716            case SEARCHPARAMETER: return "http://hl7.org/fhir/fhir-types";
16717            case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
16718            case SLOT: return "http://hl7.org/fhir/fhir-types";
16719            case SPECIMEN: return "http://hl7.org/fhir/fhir-types";
16720            case SPECIMENDEFINITION: return "http://hl7.org/fhir/fhir-types";
16721            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/fhir-types";
16722            case STRUCTUREMAP: return "http://hl7.org/fhir/fhir-types";
16723            case SUBSCRIPTION: return "http://hl7.org/fhir/fhir-types";
16724            case SUBSCRIPTIONSTATUS: return "http://hl7.org/fhir/fhir-types";
16725            case SUBSCRIPTIONTOPIC: return "http://hl7.org/fhir/fhir-types";
16726            case SUBSTANCE: return "http://hl7.org/fhir/fhir-types";
16727            case SUBSTANCEDEFINITION: return "http://hl7.org/fhir/fhir-types";
16728            case SUBSTANCENUCLEICACID: return "http://hl7.org/fhir/fhir-types";
16729            case SUBSTANCEPOLYMER: return "http://hl7.org/fhir/fhir-types";
16730            case SUBSTANCEPROTEIN: return "http://hl7.org/fhir/fhir-types";
16731            case SUBSTANCEREFERENCEINFORMATION: return "http://hl7.org/fhir/fhir-types";
16732            case SUBSTANCESOURCEMATERIAL: return "http://hl7.org/fhir/fhir-types";
16733            case SUPPLYDELIVERY: return "http://hl7.org/fhir/fhir-types";
16734            case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types";
16735            case TASK: return "http://hl7.org/fhir/fhir-types";
16736            case TERMINOLOGYCAPABILITIES: return "http://hl7.org/fhir/fhir-types";
16737            case TESTREPORT: return "http://hl7.org/fhir/fhir-types";
16738            case TESTSCRIPT: return "http://hl7.org/fhir/fhir-types";
16739            case TRANSPORT: return "http://hl7.org/fhir/fhir-types";
16740            case VALUESET: return "http://hl7.org/fhir/fhir-types";
16741            case VERIFICATIONRESULT: return "http://hl7.org/fhir/fhir-types";
16742            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types";
16743            case NULL: return null;
16744            default: return "?";
16745          }
16746        }
16747        public String getDefinition() {
16748          switch (this) {
16749            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.";
16750            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.";
16751            case ACTORDEFINITION: return "The ActorDefinition resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.";
16752            case ADMINISTRABLEPRODUCTDEFINITION: return "A medicinal product in the final form which is suitable for administering to a patient (after any mixing of multiple components, dissolution etc. has been performed).";
16753            case ADVERSEEVENT: return "An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research subject. The unintended effects may require additional monitoring, treatment, hospitalization, or may result in death. The AdverseEvent resource also extends to potential or avoided events that could have had such effects. There are two major domains where the AdverseEvent resource is expected to be used. One is in clinical care reported adverse events and the other is in reporting adverse events in clinical  research trial management. Given the differences between these two concepts, we recommend consulting the domain specific implementation guides when implementing the AdverseEvent Resource. The implementation guides include specific extensions, value sets and constraints.";
16754            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
16755            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).";
16756            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
16757            case ARTIFACTASSESSMENT: return "This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.";
16758            case AUDITEVENT: return "A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.";
16759            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.";
16760            case BINARY: return "A resource that represents the data of a single raw artifact as digital content accessible in its native format.  A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.";
16761            case BIOLOGICALLYDERIVEDPRODUCT: return "A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.";
16762            case BODYSTRUCTURE: return "Record details about an anatomical structure.  This resource may be used when a coded concept does not provide the necessary detail needed for the use case.";
16763            case BUNDLE: return "A container for a collection of resources.";
16764            case CAPABILITYSTATEMENT: return "A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server or Client for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
16765            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.";
16766            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.";
16767            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.";
16768            case CHARGEITEMDEFINITION: return "The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system.";
16769            case CITATION: return "The Citation Resource enables reference to any knowledge artifact for purposes of identification and attribution. The Citation Resource supports existing reference structures and developing publication practices such as versioning, expressing complex contributorship roles, and referencing computable resources.";
16770            case CLAIM: return "A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.";
16771            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
16772            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.";
16773            case CLINICALUSEDEFINITION: return "A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.";
16774            case CODESYSTEM: return "The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.";
16775            case COMMUNICATION: return "A clinical or business level record of information being transmitted or shared; e.g. an alert that was sent to a responsible provider, a public health agency communication to a provider/reporter in response to a case report for a reportable condition.";
16776            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.";
16777            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
16778            case COMPOSITION: return "A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).";
16779            case CONCEPTMAP: return "A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.";
16780            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
16781            case CONDITIONDEFINITION: return "A definition of a condition and information relevant to managing it.";
16782            case CONSENT: return "A record of a healthcare consumer’s  choices  or choices made on their behalf by a third party, 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.";
16783            case CONTRACT: return "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.";
16784            case COVERAGE: return "Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.";
16785            case COVERAGEELIGIBILITYREQUEST: return "The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.";
16786            case COVERAGEELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.";
16787            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.";
16788            case DEVICE: return "This resource describes the properties (regulated, has real time clock, etc.), adminstrative (manufacturer name, model number, serial number, firmware, etc), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serail number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element.";
16789            case DEVICEDEFINITION: return "This is a specialized resource that defines the characteristics and capabilities of a device.";
16790            case DEVICEDISPENSE: return "Indicates that a device is to be or has been dispensed for a named person/patient.  This includes a description of the product (supply) provided and the instructions for using the device.";
16791            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a medical device.";
16792            case DEVICEREQUEST: return "Represents a request a device to be provided to a specific patient. The device may be an implantable device to be subsequently implanted, or an external assistive device, such as a walker, to be delivered and subsequently be used.";
16793            case DEVICEUSAGE: return "A record of a device being used by a patient where the record is the result of a report from the patient or a clinician.";
16794            case DIAGNOSTICREPORT: return "The findings and interpretation of diagnostic tests performed on patients, groups of patients, products, substances, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports. The report also includes non-clinical context such as batch analysis and stability reporting of products and substances.";
16795            case DOCUMENTMANIFEST: return "A collection of documents compiled for a purpose together with metadata that applies to the collection.";
16796            case DOCUMENTREFERENCE: return "A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this \"document\" encompasses *any* serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare.  The DocumentReference resource provides metadata about the document so that the document can be discovered and managed.  The actual content may be inline base64 encoded data or provided by direct reference.";
16797            case ENCOUNTER: return "An interaction between healthcare provider(s), and/or patient(s) for the purpose of providing healthcare service(s) or assessing the health status of patient(s).";
16798            case ENDPOINT: return "The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.";
16799            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
16800            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.";
16801            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.";
16802            case EVENTDEFINITION: return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
16803            case EVIDENCE: return "The Evidence Resource provides a machine-interpretable expression of an evidence concept including the evidence variables (e.g., population, exposures/interventions, comparators, outcomes, measured variables, confounding variables), the statistics, and the certainty of this evidence.";
16804            case EVIDENCEREPORT: return "The EvidenceReport Resource is a specialized container for a collection of resources and codeable concepts, adapted to support compositions of Evidence, EvidenceVariable, and Citation resources and related concepts.";
16805            case EVIDENCEVARIABLE: return "The EvidenceVariable resource describes an element that knowledge (Evidence) is about.";
16806            case EXAMPLESCENARIO: return "A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.";
16807            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.";
16808            case FAMILYMEMBERHISTORY: return "Significant health conditions for a person related to the patient relevant in the context of care for the patient.";
16809            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
16810            case FORMULARYITEM: return "This resource describes a product or service that is available through a program and includes the conditions and constraints of availability.  All of the information in this resource is specific to the inclusion of the item in the formulary and is not inherent to the item itself.";
16811            case GENOMICSTUDY: return "A Genomic Study is a set of analysis performed to analyze and generate genomic data.";
16812            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.";
16813            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.";
16814            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.";
16815            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.";
16816            case HEALTHCARESERVICE: return "The details of a healthcare service available at a location or in a catalog.  In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices.";
16817            case IMAGINGSELECTION: return "A selection of DICOM SOP instances and/or frames within a single Study and Series. This might include additional specifics such as an image region, an Observation UID or a Segmentation Number, allowing linkage to an Observation Resource or transferring this information along with the ImagingStudy Resource.";
16818            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.";
16819            case IMMUNIZATION: return "Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.";
16820            case IMMUNIZATIONEVALUATION: return "Describes a comparison of an immunization event against published recommendations to determine if the administration is \"valid\" in relation to those  recommendations.";
16821            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.";
16822            case IMPLEMENTATIONGUIDE: return "A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.";
16823            case INGREDIENT: return "An ingredient of a manufactured item or pharmaceutical product.";
16824            case INSURANCEPLAN: return "Details of a Health Insurance product/plan provided by an organization.";
16825            case INVENTORYREPORT: return "A report of inventory or stock items.";
16826            case INVOICE: return "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.";
16827            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.";
16828            case LINKAGE: return "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\".";
16829            case LIST: return "A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.";
16830            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.";
16831            case MANUFACTUREDITEMDEFINITION: return "The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.";
16832            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
16833            case MEASUREREPORT: return "The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.";
16834            case MEDICATION: return "This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.";
16835            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.";
16836            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.";
16837            case MEDICATIONKNOWLEDGE: return "Information about a medication that is used to support knowledge.";
16838            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.";
16839            case MEDICATIONUSAGE: return "A record of a medication that is being consumed by a patient.   A MedicationUsage may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. \n\nThe primary difference between a medicationusage and a medicationadministration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication.  A medicationusage 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 Usage 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.";
16840            case MEDICINALPRODUCTDEFINITION: return "Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs, to support prescribing, adverse events management etc.).";
16841            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.";
16842            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.";
16843            case MOLECULARSEQUENCE: return "Representation of a molecular sequence.";
16844            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.";
16845            case NUTRITIONINTAKE: return "A record of food or fluid that is being consumed by a patient.  A NutritionIntake may indicate that the patient may be consuming the food or fluid now or has consumed the food or fluid in the past.  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 or through an app that tracks food or fluids consumed.   The consumption information may come from sources such as the patient's memory, from a nutrition label,  or from a clinician documenting observed intake.";
16846            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
16847            case NUTRITIONPRODUCT: return "A food or supplement that is consumed by patients.";
16848            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
16849            case OBSERVATIONDEFINITION: return "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.";
16850            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
16851            case OPERATIONOUTCOME: return "A collection of error, warning, or information messages that result from a system action.";
16852            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, payer/insurer, etc.";
16853            case ORGANIZATIONAFFILIATION: return "Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.";
16854            case PACKAGEDPRODUCTDEFINITION: return "A medically related item or items, in a container or package.";
16855            case PARAMETERS: return "This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment).  It is not persisted or allowed to be referenced by other resources except as described in the definition of the Parameters resource.";
16856            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
16857            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
16858            case PAYMENTRECONCILIATION: return "This resource provides the details including amount of a payment and allocates the payment items being paid.";
16859            case PERMISSION: return "Permission resource holds access rules for a given data and context.";
16860            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
16861            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 and non-clinical artifacts such as clinical decision support rules, order sets, protocols, and drug quality specifications.";
16862            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare or related services.";
16863            case PRACTITIONERROLE: return "A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.";
16864            case PROCEDURE: return "An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy.  This can be a quality or safety inspection for a location, organization, or device.  This can be an accreditation procedure on a practitioner for licensing.";
16865            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.";
16866            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.";
16867            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.";
16868            case REGULATEDAUTHORIZATION: return "Regulatory approval, clearance or licencing related to a regulated product, treatment, facility or activity that is cited in a guidance, regulation, rule or legislative act. An example is Market Authorization relating to a Medicinal Product.";
16869            case RELATEDPERSON: return "Information about a person that is involved in a patient's health or the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.";
16870            case REQUESTORCHESTRATION: return "A set of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\".";
16871            case REQUIREMENTS: return "The Requirements resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.";
16872            case RESEARCHSTUDY: return "A scientific study of nature that sometimes includes processes involved in health and disease. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future.";
16873            case RESEARCHSUBJECT: return "A physical entity which is the primary unit of operational and/or administrative interest in a study.";
16874            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
16875            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
16876            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
16877            case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
16878            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
16879            case SPECIMEN: return "A sample to be used for analysis.";
16880            case SPECIMENDEFINITION: return "A kind of specimen with associated set of requirements.";
16881            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.";
16882            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
16883            case SUBSCRIPTION: return "The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.";
16884            case SUBSCRIPTIONSTATUS: return "The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.";
16885            case SUBSCRIPTIONTOPIC: return "Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.";
16886            case SUBSTANCE: return "A homogeneous material with a definite composition.";
16887            case SUBSTANCEDEFINITION: return "The detailed description of a substance, typically at a level beyond what is used for prescribing.";
16888            case SUBSTANCENUCLEICACID: return "Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5’-3’ direction.";
16889            case SUBSTANCEPOLYMER: return "Properties of a substance specific to it being a polymer.";
16890            case SUBSTANCEPROTEIN: return "A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators.";
16891            case SUBSTANCEREFERENCEINFORMATION: return "Todo.";
16892            case SUBSTANCESOURCEMATERIAL: return "Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex.";
16893            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
16894            case SUPPLYREQUEST: return "A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.";
16895            case TASK: return "A task to be performed.";
16896            case TERMINOLOGYCAPABILITIES: return "A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.";
16897            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
16898            case TESTSCRIPT: return "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.";
16899            case TRANSPORT: return "Record of transport.";
16900            case VALUESET: return "A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[[CodeSystem]]] definitions and their use in [coded elements](terminologies.html).";
16901            case VERIFICATIONRESULT: return "Describes validation requirements, source(s), status and dates for one or more elements.";
16902            case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient.";
16903            case NULL: return null;
16904            default: return "?";
16905          }
16906        }
16907        public String getDisplay() {
16908          switch (this) {
16909            case ACCOUNT: return "Account";
16910            case ACTIVITYDEFINITION: return "ActivityDefinition";
16911            case ACTORDEFINITION: return "ActorDefinition";
16912            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
16913            case ADVERSEEVENT: return "AdverseEvent";
16914            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
16915            case APPOINTMENT: return "Appointment";
16916            case APPOINTMENTRESPONSE: return "AppointmentResponse";
16917            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
16918            case AUDITEVENT: return "AuditEvent";
16919            case BASIC: return "Basic";
16920            case BINARY: return "Binary";
16921            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
16922            case BODYSTRUCTURE: return "BodyStructure";
16923            case BUNDLE: return "Bundle";
16924            case CAPABILITYSTATEMENT: return "CapabilityStatement";
16925            case CAREPLAN: return "CarePlan";
16926            case CARETEAM: return "CareTeam";
16927            case CHARGEITEM: return "ChargeItem";
16928            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
16929            case CITATION: return "Citation";
16930            case CLAIM: return "Claim";
16931            case CLAIMRESPONSE: return "ClaimResponse";
16932            case CLINICALIMPRESSION: return "ClinicalImpression";
16933            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
16934            case CODESYSTEM: return "CodeSystem";
16935            case COMMUNICATION: return "Communication";
16936            case COMMUNICATIONREQUEST: return "CommunicationRequest";
16937            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
16938            case COMPOSITION: return "Composition";
16939            case CONCEPTMAP: return "ConceptMap";
16940            case CONDITION: return "Condition";
16941            case CONDITIONDEFINITION: return "ConditionDefinition";
16942            case CONSENT: return "Consent";
16943            case CONTRACT: return "Contract";
16944            case COVERAGE: return "Coverage";
16945            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
16946            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
16947            case DETECTEDISSUE: return "DetectedIssue";
16948            case DEVICE: return "Device";
16949            case DEVICEDEFINITION: return "DeviceDefinition";
16950            case DEVICEDISPENSE: return "DeviceDispense";
16951            case DEVICEMETRIC: return "DeviceMetric";
16952            case DEVICEREQUEST: return "DeviceRequest";
16953            case DEVICEUSAGE: return "DeviceUsage";
16954            case DIAGNOSTICREPORT: return "DiagnosticReport";
16955            case DOCUMENTMANIFEST: return "DocumentManifest";
16956            case DOCUMENTREFERENCE: return "DocumentReference";
16957            case ENCOUNTER: return "Encounter";
16958            case ENDPOINT: return "Endpoint";
16959            case ENROLLMENTREQUEST: return "EnrollmentRequest";
16960            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
16961            case EPISODEOFCARE: return "EpisodeOfCare";
16962            case EVENTDEFINITION: return "EventDefinition";
16963            case EVIDENCE: return "Evidence";
16964            case EVIDENCEREPORT: return "EvidenceReport";
16965            case EVIDENCEVARIABLE: return "EvidenceVariable";
16966            case EXAMPLESCENARIO: return "ExampleScenario";
16967            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
16968            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
16969            case FLAG: return "Flag";
16970            case FORMULARYITEM: return "FormularyItem";
16971            case GENOMICSTUDY: return "GenomicStudy";
16972            case GOAL: return "Goal";
16973            case GRAPHDEFINITION: return "GraphDefinition";
16974            case GROUP: return "Group";
16975            case GUIDANCERESPONSE: return "GuidanceResponse";
16976            case HEALTHCARESERVICE: return "HealthcareService";
16977            case IMAGINGSELECTION: return "ImagingSelection";
16978            case IMAGINGSTUDY: return "ImagingStudy";
16979            case IMMUNIZATION: return "Immunization";
16980            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
16981            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
16982            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
16983            case INGREDIENT: return "Ingredient";
16984            case INSURANCEPLAN: return "InsurancePlan";
16985            case INVENTORYREPORT: return "InventoryReport";
16986            case INVOICE: return "Invoice";
16987            case LIBRARY: return "Library";
16988            case LINKAGE: return "Linkage";
16989            case LIST: return "List";
16990            case LOCATION: return "Location";
16991            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
16992            case MEASURE: return "Measure";
16993            case MEASUREREPORT: return "MeasureReport";
16994            case MEDICATION: return "Medication";
16995            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
16996            case MEDICATIONDISPENSE: return "MedicationDispense";
16997            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
16998            case MEDICATIONREQUEST: return "MedicationRequest";
16999            case MEDICATIONUSAGE: return "MedicationUsage";
17000            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
17001            case MESSAGEDEFINITION: return "MessageDefinition";
17002            case MESSAGEHEADER: return "MessageHeader";
17003            case MOLECULARSEQUENCE: return "MolecularSequence";
17004            case NAMINGSYSTEM: return "NamingSystem";
17005            case NUTRITIONINTAKE: return "NutritionIntake";
17006            case NUTRITIONORDER: return "NutritionOrder";
17007            case NUTRITIONPRODUCT: return "NutritionProduct";
17008            case OBSERVATION: return "Observation";
17009            case OBSERVATIONDEFINITION: return "ObservationDefinition";
17010            case OPERATIONDEFINITION: return "OperationDefinition";
17011            case OPERATIONOUTCOME: return "OperationOutcome";
17012            case ORGANIZATION: return "Organization";
17013            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
17014            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
17015            case PARAMETERS: return "Parameters";
17016            case PATIENT: return "Patient";
17017            case PAYMENTNOTICE: return "PaymentNotice";
17018            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
17019            case PERMISSION: return "Permission";
17020            case PERSON: return "Person";
17021            case PLANDEFINITION: return "PlanDefinition";
17022            case PRACTITIONER: return "Practitioner";
17023            case PRACTITIONERROLE: return "PractitionerRole";
17024            case PROCEDURE: return "Procedure";
17025            case PROVENANCE: return "Provenance";
17026            case QUESTIONNAIRE: return "Questionnaire";
17027            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
17028            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
17029            case RELATEDPERSON: return "RelatedPerson";
17030            case REQUESTORCHESTRATION: return "RequestOrchestration";
17031            case REQUIREMENTS: return "Requirements";
17032            case RESEARCHSTUDY: return "ResearchStudy";
17033            case RESEARCHSUBJECT: return "ResearchSubject";
17034            case RISKASSESSMENT: return "RiskAssessment";
17035            case SCHEDULE: return "Schedule";
17036            case SEARCHPARAMETER: return "SearchParameter";
17037            case SERVICEREQUEST: return "ServiceRequest";
17038            case SLOT: return "Slot";
17039            case SPECIMEN: return "Specimen";
17040            case SPECIMENDEFINITION: return "SpecimenDefinition";
17041            case STRUCTUREDEFINITION: return "StructureDefinition";
17042            case STRUCTUREMAP: return "StructureMap";
17043            case SUBSCRIPTION: return "Subscription";
17044            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
17045            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
17046            case SUBSTANCE: return "Substance";
17047            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
17048            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
17049            case SUBSTANCEPOLYMER: return "SubstancePolymer";
17050            case SUBSTANCEPROTEIN: return "SubstanceProtein";
17051            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
17052            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
17053            case SUPPLYDELIVERY: return "SupplyDelivery";
17054            case SUPPLYREQUEST: return "SupplyRequest";
17055            case TASK: return "Task";
17056            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
17057            case TESTREPORT: return "TestReport";
17058            case TESTSCRIPT: return "TestScript";
17059            case TRANSPORT: return "Transport";
17060            case VALUESET: return "ValueSet";
17061            case VERIFICATIONRESULT: return "VerificationResult";
17062            case VISIONPRESCRIPTION: return "VisionPrescription";
17063            case NULL: return null;
17064            default: return "?";
17065          }
17066        }
17067    }
17068
17069  public static class ResourceTypeEnumEnumFactory implements EnumFactory<ResourceTypeEnum> {
17070    public ResourceTypeEnum fromCode(String codeString) throws IllegalArgumentException {
17071      if (codeString == null || "".equals(codeString))
17072            if (codeString == null || "".equals(codeString))
17073                return null;
17074        if ("Account".equals(codeString))
17075          return ResourceTypeEnum.ACCOUNT;
17076        if ("ActivityDefinition".equals(codeString))
17077          return ResourceTypeEnum.ACTIVITYDEFINITION;
17078        if ("ActorDefinition".equals(codeString))
17079          return ResourceTypeEnum.ACTORDEFINITION;
17080        if ("AdministrableProductDefinition".equals(codeString))
17081          return ResourceTypeEnum.ADMINISTRABLEPRODUCTDEFINITION;
17082        if ("AdverseEvent".equals(codeString))
17083          return ResourceTypeEnum.ADVERSEEVENT;
17084        if ("AllergyIntolerance".equals(codeString))
17085          return ResourceTypeEnum.ALLERGYINTOLERANCE;
17086        if ("Appointment".equals(codeString))
17087          return ResourceTypeEnum.APPOINTMENT;
17088        if ("AppointmentResponse".equals(codeString))
17089          return ResourceTypeEnum.APPOINTMENTRESPONSE;
17090        if ("ArtifactAssessment".equals(codeString))
17091          return ResourceTypeEnum.ARTIFACTASSESSMENT;
17092        if ("AuditEvent".equals(codeString))
17093          return ResourceTypeEnum.AUDITEVENT;
17094        if ("Basic".equals(codeString))
17095          return ResourceTypeEnum.BASIC;
17096        if ("Binary".equals(codeString))
17097          return ResourceTypeEnum.BINARY;
17098        if ("BiologicallyDerivedProduct".equals(codeString))
17099          return ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCT;
17100        if ("BodyStructure".equals(codeString))
17101          return ResourceTypeEnum.BODYSTRUCTURE;
17102        if ("Bundle".equals(codeString))
17103          return ResourceTypeEnum.BUNDLE;
17104        if ("CapabilityStatement".equals(codeString))
17105          return ResourceTypeEnum.CAPABILITYSTATEMENT;
17106        if ("CarePlan".equals(codeString))
17107          return ResourceTypeEnum.CAREPLAN;
17108        if ("CareTeam".equals(codeString))
17109          return ResourceTypeEnum.CARETEAM;
17110        if ("ChargeItem".equals(codeString))
17111          return ResourceTypeEnum.CHARGEITEM;
17112        if ("ChargeItemDefinition".equals(codeString))
17113          return ResourceTypeEnum.CHARGEITEMDEFINITION;
17114        if ("Citation".equals(codeString))
17115          return ResourceTypeEnum.CITATION;
17116        if ("Claim".equals(codeString))
17117          return ResourceTypeEnum.CLAIM;
17118        if ("ClaimResponse".equals(codeString))
17119          return ResourceTypeEnum.CLAIMRESPONSE;
17120        if ("ClinicalImpression".equals(codeString))
17121          return ResourceTypeEnum.CLINICALIMPRESSION;
17122        if ("ClinicalUseDefinition".equals(codeString))
17123          return ResourceTypeEnum.CLINICALUSEDEFINITION;
17124        if ("CodeSystem".equals(codeString))
17125          return ResourceTypeEnum.CODESYSTEM;
17126        if ("Communication".equals(codeString))
17127          return ResourceTypeEnum.COMMUNICATION;
17128        if ("CommunicationRequest".equals(codeString))
17129          return ResourceTypeEnum.COMMUNICATIONREQUEST;
17130        if ("CompartmentDefinition".equals(codeString))
17131          return ResourceTypeEnum.COMPARTMENTDEFINITION;
17132        if ("Composition".equals(codeString))
17133          return ResourceTypeEnum.COMPOSITION;
17134        if ("ConceptMap".equals(codeString))
17135          return ResourceTypeEnum.CONCEPTMAP;
17136        if ("Condition".equals(codeString))
17137          return ResourceTypeEnum.CONDITION;
17138        if ("ConditionDefinition".equals(codeString))
17139          return ResourceTypeEnum.CONDITIONDEFINITION;
17140        if ("Consent".equals(codeString))
17141          return ResourceTypeEnum.CONSENT;
17142        if ("Contract".equals(codeString))
17143          return ResourceTypeEnum.CONTRACT;
17144        if ("Coverage".equals(codeString))
17145          return ResourceTypeEnum.COVERAGE;
17146        if ("CoverageEligibilityRequest".equals(codeString))
17147          return ResourceTypeEnum.COVERAGEELIGIBILITYREQUEST;
17148        if ("CoverageEligibilityResponse".equals(codeString))
17149          return ResourceTypeEnum.COVERAGEELIGIBILITYRESPONSE;
17150        if ("DetectedIssue".equals(codeString))
17151          return ResourceTypeEnum.DETECTEDISSUE;
17152        if ("Device".equals(codeString))
17153          return ResourceTypeEnum.DEVICE;
17154        if ("DeviceDefinition".equals(codeString))
17155          return ResourceTypeEnum.DEVICEDEFINITION;
17156        if ("DeviceDispense".equals(codeString))
17157          return ResourceTypeEnum.DEVICEDISPENSE;
17158        if ("DeviceMetric".equals(codeString))
17159          return ResourceTypeEnum.DEVICEMETRIC;
17160        if ("DeviceRequest".equals(codeString))
17161          return ResourceTypeEnum.DEVICEREQUEST;
17162        if ("DeviceUsage".equals(codeString))
17163          return ResourceTypeEnum.DEVICEUSAGE;
17164        if ("DiagnosticReport".equals(codeString))
17165          return ResourceTypeEnum.DIAGNOSTICREPORT;
17166        if ("DocumentManifest".equals(codeString))
17167          return ResourceTypeEnum.DOCUMENTMANIFEST;
17168        if ("DocumentReference".equals(codeString))
17169          return ResourceTypeEnum.DOCUMENTREFERENCE;
17170        if ("Encounter".equals(codeString))
17171          return ResourceTypeEnum.ENCOUNTER;
17172        if ("Endpoint".equals(codeString))
17173          return ResourceTypeEnum.ENDPOINT;
17174        if ("EnrollmentRequest".equals(codeString))
17175          return ResourceTypeEnum.ENROLLMENTREQUEST;
17176        if ("EnrollmentResponse".equals(codeString))
17177          return ResourceTypeEnum.ENROLLMENTRESPONSE;
17178        if ("EpisodeOfCare".equals(codeString))
17179          return ResourceTypeEnum.EPISODEOFCARE;
17180        if ("EventDefinition".equals(codeString))
17181          return ResourceTypeEnum.EVENTDEFINITION;
17182        if ("Evidence".equals(codeString))
17183          return ResourceTypeEnum.EVIDENCE;
17184        if ("EvidenceReport".equals(codeString))
17185          return ResourceTypeEnum.EVIDENCEREPORT;
17186        if ("EvidenceVariable".equals(codeString))
17187          return ResourceTypeEnum.EVIDENCEVARIABLE;
17188        if ("ExampleScenario".equals(codeString))
17189          return ResourceTypeEnum.EXAMPLESCENARIO;
17190        if ("ExplanationOfBenefit".equals(codeString))
17191          return ResourceTypeEnum.EXPLANATIONOFBENEFIT;
17192        if ("FamilyMemberHistory".equals(codeString))
17193          return ResourceTypeEnum.FAMILYMEMBERHISTORY;
17194        if ("Flag".equals(codeString))
17195          return ResourceTypeEnum.FLAG;
17196        if ("FormularyItem".equals(codeString))
17197          return ResourceTypeEnum.FORMULARYITEM;
17198        if ("GenomicStudy".equals(codeString))
17199          return ResourceTypeEnum.GENOMICSTUDY;
17200        if ("Goal".equals(codeString))
17201          return ResourceTypeEnum.GOAL;
17202        if ("GraphDefinition".equals(codeString))
17203          return ResourceTypeEnum.GRAPHDEFINITION;
17204        if ("Group".equals(codeString))
17205          return ResourceTypeEnum.GROUP;
17206        if ("GuidanceResponse".equals(codeString))
17207          return ResourceTypeEnum.GUIDANCERESPONSE;
17208        if ("HealthcareService".equals(codeString))
17209          return ResourceTypeEnum.HEALTHCARESERVICE;
17210        if ("ImagingSelection".equals(codeString))
17211          return ResourceTypeEnum.IMAGINGSELECTION;
17212        if ("ImagingStudy".equals(codeString))
17213          return ResourceTypeEnum.IMAGINGSTUDY;
17214        if ("Immunization".equals(codeString))
17215          return ResourceTypeEnum.IMMUNIZATION;
17216        if ("ImmunizationEvaluation".equals(codeString))
17217          return ResourceTypeEnum.IMMUNIZATIONEVALUATION;
17218        if ("ImmunizationRecommendation".equals(codeString))
17219          return ResourceTypeEnum.IMMUNIZATIONRECOMMENDATION;
17220        if ("ImplementationGuide".equals(codeString))
17221          return ResourceTypeEnum.IMPLEMENTATIONGUIDE;
17222        if ("Ingredient".equals(codeString))
17223          return ResourceTypeEnum.INGREDIENT;
17224        if ("InsurancePlan".equals(codeString))
17225          return ResourceTypeEnum.INSURANCEPLAN;
17226        if ("InventoryReport".equals(codeString))
17227          return ResourceTypeEnum.INVENTORYREPORT;
17228        if ("Invoice".equals(codeString))
17229          return ResourceTypeEnum.INVOICE;
17230        if ("Library".equals(codeString))
17231          return ResourceTypeEnum.LIBRARY;
17232        if ("Linkage".equals(codeString))
17233          return ResourceTypeEnum.LINKAGE;
17234        if ("List".equals(codeString))
17235          return ResourceTypeEnum.LIST;
17236        if ("Location".equals(codeString))
17237          return ResourceTypeEnum.LOCATION;
17238        if ("ManufacturedItemDefinition".equals(codeString))
17239          return ResourceTypeEnum.MANUFACTUREDITEMDEFINITION;
17240        if ("Measure".equals(codeString))
17241          return ResourceTypeEnum.MEASURE;
17242        if ("MeasureReport".equals(codeString))
17243          return ResourceTypeEnum.MEASUREREPORT;
17244        if ("Medication".equals(codeString))
17245          return ResourceTypeEnum.MEDICATION;
17246        if ("MedicationAdministration".equals(codeString))
17247          return ResourceTypeEnum.MEDICATIONADMINISTRATION;
17248        if ("MedicationDispense".equals(codeString))
17249          return ResourceTypeEnum.MEDICATIONDISPENSE;
17250        if ("MedicationKnowledge".equals(codeString))
17251          return ResourceTypeEnum.MEDICATIONKNOWLEDGE;
17252        if ("MedicationRequest".equals(codeString))
17253          return ResourceTypeEnum.MEDICATIONREQUEST;
17254        if ("MedicationUsage".equals(codeString))
17255          return ResourceTypeEnum.MEDICATIONUSAGE;
17256        if ("MedicationStatement".equals(codeString))
17257          return ResourceTypeEnum.MEDICATIONUSAGE;
17258        if ("MedicinalProductDefinition".equals(codeString))
17259          return ResourceTypeEnum.MEDICINALPRODUCTDEFINITION;
17260        if ("MessageDefinition".equals(codeString))
17261          return ResourceTypeEnum.MESSAGEDEFINITION;
17262        if ("MessageHeader".equals(codeString))
17263          return ResourceTypeEnum.MESSAGEHEADER;
17264        if ("MolecularSequence".equals(codeString))
17265          return ResourceTypeEnum.MOLECULARSEQUENCE;
17266        if ("NamingSystem".equals(codeString))
17267          return ResourceTypeEnum.NAMINGSYSTEM;
17268        if ("NutritionIntake".equals(codeString))
17269          return ResourceTypeEnum.NUTRITIONINTAKE;
17270        if ("NutritionOrder".equals(codeString))
17271          return ResourceTypeEnum.NUTRITIONORDER;
17272        if ("NutritionProduct".equals(codeString))
17273          return ResourceTypeEnum.NUTRITIONPRODUCT;
17274        if ("Observation".equals(codeString))
17275          return ResourceTypeEnum.OBSERVATION;
17276        if ("ObservationDefinition".equals(codeString))
17277          return ResourceTypeEnum.OBSERVATIONDEFINITION;
17278        if ("OperationDefinition".equals(codeString))
17279          return ResourceTypeEnum.OPERATIONDEFINITION;
17280        if ("OperationOutcome".equals(codeString))
17281          return ResourceTypeEnum.OPERATIONOUTCOME;
17282        if ("Organization".equals(codeString))
17283          return ResourceTypeEnum.ORGANIZATION;
17284        if ("OrganizationAffiliation".equals(codeString))
17285          return ResourceTypeEnum.ORGANIZATIONAFFILIATION;
17286        if ("PackagedProductDefinition".equals(codeString))
17287          return ResourceTypeEnum.PACKAGEDPRODUCTDEFINITION;
17288        if ("Parameters".equals(codeString))
17289          return ResourceTypeEnum.PARAMETERS;
17290        if ("Patient".equals(codeString))
17291          return ResourceTypeEnum.PATIENT;
17292        if ("PaymentNotice".equals(codeString))
17293          return ResourceTypeEnum.PAYMENTNOTICE;
17294        if ("PaymentReconciliation".equals(codeString))
17295          return ResourceTypeEnum.PAYMENTRECONCILIATION;
17296        if ("Permission".equals(codeString))
17297          return ResourceTypeEnum.PERMISSION;
17298        if ("Person".equals(codeString))
17299          return ResourceTypeEnum.PERSON;
17300        if ("PlanDefinition".equals(codeString))
17301          return ResourceTypeEnum.PLANDEFINITION;
17302        if ("Practitioner".equals(codeString))
17303          return ResourceTypeEnum.PRACTITIONER;
17304        if ("PractitionerRole".equals(codeString))
17305          return ResourceTypeEnum.PRACTITIONERROLE;
17306        if ("Procedure".equals(codeString))
17307          return ResourceTypeEnum.PROCEDURE;
17308        if ("Provenance".equals(codeString))
17309          return ResourceTypeEnum.PROVENANCE;
17310        if ("Questionnaire".equals(codeString))
17311          return ResourceTypeEnum.QUESTIONNAIRE;
17312        if ("QuestionnaireResponse".equals(codeString))
17313          return ResourceTypeEnum.QUESTIONNAIRERESPONSE;
17314        if ("RegulatedAuthorization".equals(codeString))
17315          return ResourceTypeEnum.REGULATEDAUTHORIZATION;
17316        if ("RelatedPerson".equals(codeString))
17317          return ResourceTypeEnum.RELATEDPERSON;
17318        if ("RequestOrchestration".equals(codeString))
17319          return ResourceTypeEnum.REQUESTORCHESTRATION;
17320        if ("Requirements".equals(codeString))
17321          return ResourceTypeEnum.REQUIREMENTS;
17322        if ("ResearchStudy".equals(codeString))
17323          return ResourceTypeEnum.RESEARCHSTUDY;
17324        if ("ResearchSubject".equals(codeString))
17325          return ResourceTypeEnum.RESEARCHSUBJECT;
17326        if ("RiskAssessment".equals(codeString))
17327          return ResourceTypeEnum.RISKASSESSMENT;
17328        if ("Schedule".equals(codeString))
17329          return ResourceTypeEnum.SCHEDULE;
17330        if ("SearchParameter".equals(codeString))
17331          return ResourceTypeEnum.SEARCHPARAMETER;
17332        if ("ServiceRequest".equals(codeString))
17333          return ResourceTypeEnum.SERVICEREQUEST;
17334        if ("Slot".equals(codeString))
17335          return ResourceTypeEnum.SLOT;
17336        if ("Specimen".equals(codeString))
17337          return ResourceTypeEnum.SPECIMEN;
17338        if ("SpecimenDefinition".equals(codeString))
17339          return ResourceTypeEnum.SPECIMENDEFINITION;
17340        if ("StructureDefinition".equals(codeString))
17341          return ResourceTypeEnum.STRUCTUREDEFINITION;
17342        if ("StructureMap".equals(codeString))
17343          return ResourceTypeEnum.STRUCTUREMAP;
17344        if ("Subscription".equals(codeString))
17345          return ResourceTypeEnum.SUBSCRIPTION;
17346        if ("SubscriptionStatus".equals(codeString))
17347          return ResourceTypeEnum.SUBSCRIPTIONSTATUS;
17348        if ("SubscriptionTopic".equals(codeString))
17349          return ResourceTypeEnum.SUBSCRIPTIONTOPIC;
17350        if ("Substance".equals(codeString))
17351          return ResourceTypeEnum.SUBSTANCE;
17352        if ("SubstanceDefinition".equals(codeString))
17353          return ResourceTypeEnum.SUBSTANCEDEFINITION;
17354        if ("SubstanceNucleicAcid".equals(codeString))
17355          return ResourceTypeEnum.SUBSTANCENUCLEICACID;
17356        if ("SubstancePolymer".equals(codeString))
17357          return ResourceTypeEnum.SUBSTANCEPOLYMER;
17358        if ("SubstanceProtein".equals(codeString))
17359          return ResourceTypeEnum.SUBSTANCEPROTEIN;
17360        if ("SubstanceReferenceInformation".equals(codeString))
17361          return ResourceTypeEnum.SUBSTANCEREFERENCEINFORMATION;
17362        if ("SubstanceSourceMaterial".equals(codeString))
17363          return ResourceTypeEnum.SUBSTANCESOURCEMATERIAL;
17364        if ("SupplyDelivery".equals(codeString))
17365          return ResourceTypeEnum.SUPPLYDELIVERY;
17366        if ("SupplyRequest".equals(codeString))
17367          return ResourceTypeEnum.SUPPLYREQUEST;
17368        if ("Task".equals(codeString))
17369          return ResourceTypeEnum.TASK;
17370        if ("TerminologyCapabilities".equals(codeString))
17371          return ResourceTypeEnum.TERMINOLOGYCAPABILITIES;
17372        if ("TestReport".equals(codeString))
17373          return ResourceTypeEnum.TESTREPORT;
17374        if ("TestScript".equals(codeString))
17375          return ResourceTypeEnum.TESTSCRIPT;
17376        if ("Transport".equals(codeString))
17377          return ResourceTypeEnum.TRANSPORT;
17378        if ("ValueSet".equals(codeString))
17379          return ResourceTypeEnum.VALUESET;
17380        if ("VerificationResult".equals(codeString))
17381          return ResourceTypeEnum.VERIFICATIONRESULT;
17382        if ("VisionPrescription".equals(codeString))
17383          return ResourceTypeEnum.VISIONPRESCRIPTION;
17384        throw new IllegalArgumentException("Unknown ResourceTypeEnum code '"+codeString+"'");
17385        }
17386        public Enumeration<ResourceTypeEnum> fromType(PrimitiveType<?> code) throws FHIRException {
17387          if (code == null)
17388            return null;
17389          if (code.isEmpty())
17390            return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NULL, code);
17391          String codeString = ((PrimitiveType) code).asStringValue();
17392          if (codeString == null || "".equals(codeString))
17393            return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NULL, code);
17394        if ("Account".equals(codeString))
17395          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ACCOUNT, code);
17396        if ("ActivityDefinition".equals(codeString))
17397          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ACTIVITYDEFINITION, code);
17398        if ("ActorDefinition".equals(codeString))
17399          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ACTORDEFINITION, code);
17400        if ("AdministrableProductDefinition".equals(codeString))
17401          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ADMINISTRABLEPRODUCTDEFINITION, code);
17402        if ("AdverseEvent".equals(codeString))
17403          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ADVERSEEVENT, code);
17404        if ("AllergyIntolerance".equals(codeString))
17405          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ALLERGYINTOLERANCE, code);
17406        if ("Appointment".equals(codeString))
17407          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.APPOINTMENT, code);
17408        if ("AppointmentResponse".equals(codeString))
17409          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.APPOINTMENTRESPONSE, code);
17410        if ("ArtifactAssessment".equals(codeString))
17411          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ARTIFACTASSESSMENT, code);
17412        if ("AuditEvent".equals(codeString))
17413          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.AUDITEVENT, code);
17414        if ("Basic".equals(codeString))
17415          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BASIC, code);
17416        if ("Binary".equals(codeString))
17417          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BINARY, code);
17418        if ("BiologicallyDerivedProduct".equals(codeString))
17419          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCT, code);
17420        if ("BodyStructure".equals(codeString))
17421          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BODYSTRUCTURE, code);
17422        if ("Bundle".equals(codeString))
17423          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BUNDLE, code);
17424        if ("CapabilityStatement".equals(codeString))
17425          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CAPABILITYSTATEMENT, code);
17426        if ("CarePlan".equals(codeString))
17427          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CAREPLAN, code);
17428        if ("CareTeam".equals(codeString))
17429          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CARETEAM, code);
17430        if ("ChargeItem".equals(codeString))
17431          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CHARGEITEM, code);
17432        if ("ChargeItemDefinition".equals(codeString))
17433          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CHARGEITEMDEFINITION, code);
17434        if ("Citation".equals(codeString))
17435          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CITATION, code);
17436        if ("Claim".equals(codeString))
17437          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLAIM, code);
17438        if ("ClaimResponse".equals(codeString))
17439          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLAIMRESPONSE, code);
17440        if ("ClinicalImpression".equals(codeString))
17441          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLINICALIMPRESSION, code);
17442        if ("ClinicalUseDefinition".equals(codeString))
17443          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLINICALUSEDEFINITION, code);
17444        if ("CodeSystem".equals(codeString))
17445          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CODESYSTEM, code);
17446        if ("Communication".equals(codeString))
17447          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMMUNICATION, code);
17448        if ("CommunicationRequest".equals(codeString))
17449          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMMUNICATIONREQUEST, code);
17450        if ("CompartmentDefinition".equals(codeString))
17451          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMPARTMENTDEFINITION, code);
17452        if ("Composition".equals(codeString))
17453          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMPOSITION, code);
17454        if ("ConceptMap".equals(codeString))
17455          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONCEPTMAP, code);
17456        if ("Condition".equals(codeString))
17457          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONDITION, code);
17458        if ("ConditionDefinition".equals(codeString))
17459          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONDITIONDEFINITION, code);
17460        if ("Consent".equals(codeString))
17461          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONSENT, code);
17462        if ("Contract".equals(codeString))
17463          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONTRACT, code);
17464        if ("Coverage".equals(codeString))
17465          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COVERAGE, code);
17466        if ("CoverageEligibilityRequest".equals(codeString))
17467          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COVERAGEELIGIBILITYREQUEST, code);
17468        if ("CoverageEligibilityResponse".equals(codeString))
17469          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COVERAGEELIGIBILITYRESPONSE, code);
17470        if ("DetectedIssue".equals(codeString))
17471          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DETECTEDISSUE, code);
17472        if ("Device".equals(codeString))
17473          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICE, code);
17474        if ("DeviceDefinition".equals(codeString))
17475          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEDEFINITION, code);
17476        if ("DeviceDispense".equals(codeString))
17477          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEDISPENSE, code);
17478        if ("DeviceMetric".equals(codeString))
17479          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEMETRIC, code);
17480        if ("DeviceRequest".equals(codeString))
17481          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEREQUEST, code);
17482        if ("DeviceUsage".equals(codeString))
17483          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEUSAGE, code);
17484        if ("DiagnosticReport".equals(codeString))
17485          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DIAGNOSTICREPORT, code);
17486        if ("DocumentManifest".equals(codeString))
17487          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DOCUMENTMANIFEST, code);
17488        if ("DocumentReference".equals(codeString))
17489          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DOCUMENTREFERENCE, code);
17490        if ("Encounter".equals(codeString))
17491          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENCOUNTER, code);
17492        if ("Endpoint".equals(codeString))
17493          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENDPOINT, code);
17494        if ("EnrollmentRequest".equals(codeString))
17495          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENROLLMENTREQUEST, code);
17496        if ("EnrollmentResponse".equals(codeString))
17497          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENROLLMENTRESPONSE, code);
17498        if ("EpisodeOfCare".equals(codeString))
17499          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EPISODEOFCARE, code);
17500        if ("EventDefinition".equals(codeString))
17501          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVENTDEFINITION, code);
17502        if ("Evidence".equals(codeString))
17503          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVIDENCE, code);
17504        if ("EvidenceReport".equals(codeString))
17505          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVIDENCEREPORT, code);
17506        if ("EvidenceVariable".equals(codeString))
17507          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVIDENCEVARIABLE, code);
17508        if ("ExampleScenario".equals(codeString))
17509          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EXAMPLESCENARIO, code);
17510        if ("ExplanationOfBenefit".equals(codeString))
17511          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EXPLANATIONOFBENEFIT, code);
17512        if ("FamilyMemberHistory".equals(codeString))
17513          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.FAMILYMEMBERHISTORY, code);
17514        if ("Flag".equals(codeString))
17515          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.FLAG, code);
17516        if ("FormularyItem".equals(codeString))
17517          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.FORMULARYITEM, code);
17518        if ("GenomicStudy".equals(codeString))
17519          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GENOMICSTUDY, code);
17520        if ("Goal".equals(codeString))
17521          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GOAL, code);
17522        if ("GraphDefinition".equals(codeString))
17523          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GRAPHDEFINITION, code);
17524        if ("Group".equals(codeString))
17525          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GROUP, code);
17526        if ("GuidanceResponse".equals(codeString))
17527          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GUIDANCERESPONSE, code);
17528        if ("HealthcareService".equals(codeString))
17529          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.HEALTHCARESERVICE, code);
17530        if ("ImagingSelection".equals(codeString))
17531          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMAGINGSELECTION, code);
17532        if ("ImagingStudy".equals(codeString))
17533          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMAGINGSTUDY, code);
17534        if ("Immunization".equals(codeString))
17535          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMMUNIZATION, code);
17536        if ("ImmunizationEvaluation".equals(codeString))
17537          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMMUNIZATIONEVALUATION, code);
17538        if ("ImmunizationRecommendation".equals(codeString))
17539          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMMUNIZATIONRECOMMENDATION, code);
17540        if ("ImplementationGuide".equals(codeString))
17541          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMPLEMENTATIONGUIDE, code);
17542        if ("Ingredient".equals(codeString))
17543          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INGREDIENT, code);
17544        if ("InsurancePlan".equals(codeString))
17545          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INSURANCEPLAN, code);
17546        if ("InventoryReport".equals(codeString))
17547          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INVENTORYREPORT, code);
17548        if ("Invoice".equals(codeString))
17549          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INVOICE, code);
17550        if ("Library".equals(codeString))
17551          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LIBRARY, code);
17552        if ("Linkage".equals(codeString))
17553          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LINKAGE, code);
17554        if ("List".equals(codeString))
17555          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LIST, code);
17556        if ("Location".equals(codeString))
17557          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LOCATION, code);
17558        if ("ManufacturedItemDefinition".equals(codeString))
17559          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MANUFACTUREDITEMDEFINITION, code);
17560        if ("Measure".equals(codeString))
17561          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEASURE, code);
17562        if ("MeasureReport".equals(codeString))
17563          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEASUREREPORT, code);
17564        if ("Medication".equals(codeString))
17565          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATION, code);
17566        if ("MedicationAdministration".equals(codeString))
17567          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONADMINISTRATION, code);
17568        if ("MedicationDispense".equals(codeString))
17569          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONDISPENSE, code);
17570        if ("MedicationKnowledge".equals(codeString))
17571          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONKNOWLEDGE, code);
17572        if ("MedicationRequest".equals(codeString))
17573          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONREQUEST, code);
17574        if ("MedicationUsage".equals(codeString))
17575          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONUSAGE, code);
17576        if ("MedicationStatement".equals(codeString))
17577          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONUSAGE, code);
17578        if ("MedicinalProductDefinition".equals(codeString))
17579          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICINALPRODUCTDEFINITION, code);
17580        if ("MessageDefinition".equals(codeString))
17581          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MESSAGEDEFINITION, code);
17582        if ("MessageHeader".equals(codeString))
17583          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MESSAGEHEADER, code);
17584        if ("MolecularSequence".equals(codeString))
17585          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MOLECULARSEQUENCE, code);
17586        if ("NamingSystem".equals(codeString))
17587          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NAMINGSYSTEM, code);
17588        if ("NutritionIntake".equals(codeString))
17589          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NUTRITIONINTAKE, code);
17590        if ("NutritionOrder".equals(codeString))
17591          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NUTRITIONORDER, code);
17592        if ("NutritionProduct".equals(codeString))
17593          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NUTRITIONPRODUCT, code);
17594        if ("Observation".equals(codeString))
17595          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OBSERVATION, code);
17596        if ("ObservationDefinition".equals(codeString))
17597          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OBSERVATIONDEFINITION, code);
17598        if ("OperationDefinition".equals(codeString))
17599          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OPERATIONDEFINITION, code);
17600        if ("OperationOutcome".equals(codeString))
17601          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OPERATIONOUTCOME, code);
17602        if ("Organization".equals(codeString))
17603          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ORGANIZATION, code);
17604        if ("OrganizationAffiliation".equals(codeString))
17605          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ORGANIZATIONAFFILIATION, code);
17606        if ("PackagedProductDefinition".equals(codeString))
17607          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PACKAGEDPRODUCTDEFINITION, code);
17608        if ("Parameters".equals(codeString))
17609          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PARAMETERS, code);
17610        if ("Patient".equals(codeString))
17611          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PATIENT, code);
17612        if ("PaymentNotice".equals(codeString))
17613          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PAYMENTNOTICE, code);
17614        if ("PaymentReconciliation".equals(codeString))
17615          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PAYMENTRECONCILIATION, code);
17616        if ("Permission".equals(codeString))
17617          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PERMISSION, code);
17618        if ("Person".equals(codeString))
17619          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PERSON, code);
17620        if ("PlanDefinition".equals(codeString))
17621          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PLANDEFINITION, code);
17622        if ("Practitioner".equals(codeString))
17623          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PRACTITIONER, code);
17624        if ("PractitionerRole".equals(codeString))
17625          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PRACTITIONERROLE, code);
17626        if ("Procedure".equals(codeString))
17627          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PROCEDURE, code);
17628        if ("Provenance".equals(codeString))
17629          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PROVENANCE, code);
17630        if ("Questionnaire".equals(codeString))
17631          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.QUESTIONNAIRE, code);
17632        if ("QuestionnaireResponse".equals(codeString))
17633          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.QUESTIONNAIRERESPONSE, code);
17634        if ("RegulatedAuthorization".equals(codeString))
17635          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.REGULATEDAUTHORIZATION, code);
17636        if ("RelatedPerson".equals(codeString))
17637          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RELATEDPERSON, code);
17638        if ("RequestOrchestration".equals(codeString))
17639          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.REQUESTORCHESTRATION, code);
17640        if ("Requirements".equals(codeString))
17641          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.REQUIREMENTS, code);
17642        if ("ResearchStudy".equals(codeString))
17643          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RESEARCHSTUDY, code);
17644        if ("ResearchSubject".equals(codeString))
17645          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RESEARCHSUBJECT, code);
17646        if ("RiskAssessment".equals(codeString))
17647          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RISKASSESSMENT, code);
17648        if ("Schedule".equals(codeString))
17649          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SCHEDULE, code);
17650        if ("SearchParameter".equals(codeString))
17651          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SEARCHPARAMETER, code);
17652        if ("ServiceRequest".equals(codeString))
17653          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SERVICEREQUEST, code);
17654        if ("Slot".equals(codeString))
17655          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SLOT, code);
17656        if ("Specimen".equals(codeString))
17657          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SPECIMEN, code);
17658        if ("SpecimenDefinition".equals(codeString))
17659          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SPECIMENDEFINITION, code);
17660        if ("StructureDefinition".equals(codeString))
17661          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.STRUCTUREDEFINITION, code);
17662        if ("StructureMap".equals(codeString))
17663          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.STRUCTUREMAP, code);
17664        if ("Subscription".equals(codeString))
17665          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSCRIPTION, code);
17666        if ("SubscriptionStatus".equals(codeString))
17667          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSCRIPTIONSTATUS, code);
17668        if ("SubscriptionTopic".equals(codeString))
17669          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSCRIPTIONTOPIC, code);
17670        if ("Substance".equals(codeString))
17671          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCE, code);
17672        if ("SubstanceDefinition".equals(codeString))
17673          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEDEFINITION, code);
17674        if ("SubstanceNucleicAcid".equals(codeString))
17675          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCENUCLEICACID, code);
17676        if ("SubstancePolymer".equals(codeString))
17677          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEPOLYMER, code);
17678        if ("SubstanceProtein".equals(codeString))
17679          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEPROTEIN, code);
17680        if ("SubstanceReferenceInformation".equals(codeString))
17681          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEREFERENCEINFORMATION, code);
17682        if ("SubstanceSourceMaterial".equals(codeString))
17683          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCESOURCEMATERIAL, code);
17684        if ("SupplyDelivery".equals(codeString))
17685          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUPPLYDELIVERY, code);
17686        if ("SupplyRequest".equals(codeString))
17687          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUPPLYREQUEST, code);
17688        if ("Task".equals(codeString))
17689          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TASK, code);
17690        if ("TerminologyCapabilities".equals(codeString))
17691          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TERMINOLOGYCAPABILITIES, code);
17692        if ("TestReport".equals(codeString))
17693          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TESTREPORT, code);
17694        if ("TestScript".equals(codeString))
17695          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TESTSCRIPT, code);
17696        if ("Transport".equals(codeString))
17697          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TRANSPORT, code);
17698        if ("ValueSet".equals(codeString))
17699          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.VALUESET, code);
17700        if ("VerificationResult".equals(codeString))
17701          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.VERIFICATIONRESULT, code);
17702        if ("VisionPrescription".equals(codeString))
17703          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.VISIONPRESCRIPTION, code);
17704        throw new FHIRException("Unknown ResourceTypeEnum code '"+codeString+"'");
17705        }
17706    public String toCode(ResourceTypeEnum code) {
17707      if (code == ResourceTypeEnum.ACCOUNT)
17708        return "Account";
17709      if (code == ResourceTypeEnum.ACTIVITYDEFINITION)
17710        return "ActivityDefinition";
17711      if (code == ResourceTypeEnum.ACTORDEFINITION)
17712        return "ActorDefinition";
17713      if (code == ResourceTypeEnum.ADMINISTRABLEPRODUCTDEFINITION)
17714        return "AdministrableProductDefinition";
17715      if (code == ResourceTypeEnum.ADVERSEEVENT)
17716        return "AdverseEvent";
17717      if (code == ResourceTypeEnum.ALLERGYINTOLERANCE)
17718        return "AllergyIntolerance";
17719      if (code == ResourceTypeEnum.APPOINTMENT)
17720        return "Appointment";
17721      if (code == ResourceTypeEnum.APPOINTMENTRESPONSE)
17722        return "AppointmentResponse";
17723      if (code == ResourceTypeEnum.ARTIFACTASSESSMENT)
17724        return "ArtifactAssessment";
17725      if (code == ResourceTypeEnum.AUDITEVENT)
17726        return "AuditEvent";
17727      if (code == ResourceTypeEnum.BASIC)
17728        return "Basic";
17729      if (code == ResourceTypeEnum.BINARY)
17730        return "Binary";
17731      if (code == ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCT)
17732        return "BiologicallyDerivedProduct";
17733      if (code == ResourceTypeEnum.BODYSTRUCTURE)
17734        return "BodyStructure";
17735      if (code == ResourceTypeEnum.BUNDLE)
17736        return "Bundle";
17737      if (code == ResourceTypeEnum.CAPABILITYSTATEMENT)
17738        return "CapabilityStatement";
17739      if (code == ResourceTypeEnum.CAREPLAN)
17740        return "CarePlan";
17741      if (code == ResourceTypeEnum.CARETEAM)
17742        return "CareTeam";
17743      if (code == ResourceTypeEnum.CHARGEITEM)
17744        return "ChargeItem";
17745      if (code == ResourceTypeEnum.CHARGEITEMDEFINITION)
17746        return "ChargeItemDefinition";
17747      if (code == ResourceTypeEnum.CITATION)
17748        return "Citation";
17749      if (code == ResourceTypeEnum.CLAIM)
17750        return "Claim";
17751      if (code == ResourceTypeEnum.CLAIMRESPONSE)
17752        return "ClaimResponse";
17753      if (code == ResourceTypeEnum.CLINICALIMPRESSION)
17754        return "ClinicalImpression";
17755      if (code == ResourceTypeEnum.CLINICALUSEDEFINITION)
17756        return "ClinicalUseDefinition";
17757      if (code == ResourceTypeEnum.CODESYSTEM)
17758        return "CodeSystem";
17759      if (code == ResourceTypeEnum.COMMUNICATION)
17760        return "Communication";
17761      if (code == ResourceTypeEnum.COMMUNICATIONREQUEST)
17762        return "CommunicationRequest";
17763      if (code == ResourceTypeEnum.COMPARTMENTDEFINITION)
17764        return "CompartmentDefinition";
17765      if (code == ResourceTypeEnum.COMPOSITION)
17766        return "Composition";
17767      if (code == ResourceTypeEnum.CONCEPTMAP)
17768        return "ConceptMap";
17769      if (code == ResourceTypeEnum.CONDITION)
17770        return "Condition";
17771      if (code == ResourceTypeEnum.CONDITIONDEFINITION)
17772        return "ConditionDefinition";
17773      if (code == ResourceTypeEnum.CONSENT)
17774        return "Consent";
17775      if (code == ResourceTypeEnum.CONTRACT)
17776        return "Contract";
17777      if (code == ResourceTypeEnum.COVERAGE)
17778        return "Coverage";
17779      if (code == ResourceTypeEnum.COVERAGEELIGIBILITYREQUEST)
17780        return "CoverageEligibilityRequest";
17781      if (code == ResourceTypeEnum.COVERAGEELIGIBILITYRESPONSE)
17782        return "CoverageEligibilityResponse";
17783      if (code == ResourceTypeEnum.DETECTEDISSUE)
17784        return "DetectedIssue";
17785      if (code == ResourceTypeEnum.DEVICE)
17786        return "Device";
17787      if (code == ResourceTypeEnum.DEVICEDEFINITION)
17788        return "DeviceDefinition";
17789      if (code == ResourceTypeEnum.DEVICEDISPENSE)
17790        return "DeviceDispense";
17791      if (code == ResourceTypeEnum.DEVICEMETRIC)
17792        return "DeviceMetric";
17793      if (code == ResourceTypeEnum.DEVICEREQUEST)
17794        return "DeviceRequest";
17795      if (code == ResourceTypeEnum.DEVICEUSAGE)
17796        return "DeviceUsage";
17797      if (code == ResourceTypeEnum.DIAGNOSTICREPORT)
17798        return "DiagnosticReport";
17799      if (code == ResourceTypeEnum.DOCUMENTMANIFEST)
17800        return "DocumentManifest";
17801      if (code == ResourceTypeEnum.DOCUMENTREFERENCE)
17802        return "DocumentReference";
17803      if (code == ResourceTypeEnum.ENCOUNTER)
17804        return "Encounter";
17805      if (code == ResourceTypeEnum.ENDPOINT)
17806        return "Endpoint";
17807      if (code == ResourceTypeEnum.ENROLLMENTREQUEST)
17808        return "EnrollmentRequest";
17809      if (code == ResourceTypeEnum.ENROLLMENTRESPONSE)
17810        return "EnrollmentResponse";
17811      if (code == ResourceTypeEnum.EPISODEOFCARE)
17812        return "EpisodeOfCare";
17813      if (code == ResourceTypeEnum.EVENTDEFINITION)
17814        return "EventDefinition";
17815      if (code == ResourceTypeEnum.EVIDENCE)
17816        return "Evidence";
17817      if (code == ResourceTypeEnum.EVIDENCEREPORT)
17818        return "EvidenceReport";
17819      if (code == ResourceTypeEnum.EVIDENCEVARIABLE)
17820        return "EvidenceVariable";
17821      if (code == ResourceTypeEnum.EXAMPLESCENARIO)
17822        return "ExampleScenario";
17823      if (code == ResourceTypeEnum.EXPLANATIONOFBENEFIT)
17824        return "ExplanationOfBenefit";
17825      if (code == ResourceTypeEnum.FAMILYMEMBERHISTORY)
17826        return "FamilyMemberHistory";
17827      if (code == ResourceTypeEnum.FLAG)
17828        return "Flag";
17829      if (code == ResourceTypeEnum.FORMULARYITEM)
17830        return "FormularyItem";
17831      if (code == ResourceTypeEnum.GENOMICSTUDY)
17832        return "GenomicStudy";
17833      if (code == ResourceTypeEnum.GOAL)
17834        return "Goal";
17835      if (code == ResourceTypeEnum.GRAPHDEFINITION)
17836        return "GraphDefinition";
17837      if (code == ResourceTypeEnum.GROUP)
17838        return "Group";
17839      if (code == ResourceTypeEnum.GUIDANCERESPONSE)
17840        return "GuidanceResponse";
17841      if (code == ResourceTypeEnum.HEALTHCARESERVICE)
17842        return "HealthcareService";
17843      if (code == ResourceTypeEnum.IMAGINGSELECTION)
17844        return "ImagingSelection";
17845      if (code == ResourceTypeEnum.IMAGINGSTUDY)
17846        return "ImagingStudy";
17847      if (code == ResourceTypeEnum.IMMUNIZATION)
17848        return "Immunization";
17849      if (code == ResourceTypeEnum.IMMUNIZATIONEVALUATION)
17850        return "ImmunizationEvaluation";
17851      if (code == ResourceTypeEnum.IMMUNIZATIONRECOMMENDATION)
17852        return "ImmunizationRecommendation";
17853      if (code == ResourceTypeEnum.IMPLEMENTATIONGUIDE)
17854        return "ImplementationGuide";
17855      if (code == ResourceTypeEnum.INGREDIENT)
17856        return "Ingredient";
17857      if (code == ResourceTypeEnum.INSURANCEPLAN)
17858        return "InsurancePlan";
17859      if (code == ResourceTypeEnum.INVENTORYREPORT)
17860        return "InventoryReport";
17861      if (code == ResourceTypeEnum.INVOICE)
17862        return "Invoice";
17863      if (code == ResourceTypeEnum.LIBRARY)
17864        return "Library";
17865      if (code == ResourceTypeEnum.LINKAGE)
17866        return "Linkage";
17867      if (code == ResourceTypeEnum.LIST)
17868        return "List";
17869      if (code == ResourceTypeEnum.LOCATION)
17870        return "Location";
17871      if (code == ResourceTypeEnum.MANUFACTUREDITEMDEFINITION)
17872        return "ManufacturedItemDefinition";
17873      if (code == ResourceTypeEnum.MEASURE)
17874        return "Measure";
17875      if (code == ResourceTypeEnum.MEASUREREPORT)
17876        return "MeasureReport";
17877      if (code == ResourceTypeEnum.MEDICATION)
17878        return "Medication";
17879      if (code == ResourceTypeEnum.MEDICATIONADMINISTRATION)
17880        return "MedicationAdministration";
17881      if (code == ResourceTypeEnum.MEDICATIONDISPENSE)
17882        return "MedicationDispense";
17883      if (code == ResourceTypeEnum.MEDICATIONKNOWLEDGE)
17884        return "MedicationKnowledge";
17885      if (code == ResourceTypeEnum.MEDICATIONREQUEST)
17886        return "MedicationRequest";
17887      if (code == ResourceTypeEnum.MEDICATIONUSAGE)
17888        return "MedicationUsage";
17889      if (code == ResourceTypeEnum.MEDICINALPRODUCTDEFINITION)
17890        return "MedicinalProductDefinition";
17891      if (code == ResourceTypeEnum.MESSAGEDEFINITION)
17892        return "MessageDefinition";
17893      if (code == ResourceTypeEnum.MESSAGEHEADER)
17894        return "MessageHeader";
17895      if (code == ResourceTypeEnum.MOLECULARSEQUENCE)
17896        return "MolecularSequence";
17897      if (code == ResourceTypeEnum.NAMINGSYSTEM)
17898        return "NamingSystem";
17899      if (code == ResourceTypeEnum.NUTRITIONINTAKE)
17900        return "NutritionIntake";
17901      if (code == ResourceTypeEnum.NUTRITIONORDER)
17902        return "NutritionOrder";
17903      if (code == ResourceTypeEnum.NUTRITIONPRODUCT)
17904        return "NutritionProduct";
17905      if (code == ResourceTypeEnum.OBSERVATION)
17906        return "Observation";
17907      if (code == ResourceTypeEnum.OBSERVATIONDEFINITION)
17908        return "ObservationDefinition";
17909      if (code == ResourceTypeEnum.OPERATIONDEFINITION)
17910        return "OperationDefinition";
17911      if (code == ResourceTypeEnum.OPERATIONOUTCOME)
17912        return "OperationOutcome";
17913      if (code == ResourceTypeEnum.ORGANIZATION)
17914        return "Organization";
17915      if (code == ResourceTypeEnum.ORGANIZATIONAFFILIATION)
17916        return "OrganizationAffiliation";
17917      if (code == ResourceTypeEnum.PACKAGEDPRODUCTDEFINITION)
17918        return "PackagedProductDefinition";
17919      if (code == ResourceTypeEnum.PARAMETERS)
17920        return "Parameters";
17921      if (code == ResourceTypeEnum.PATIENT)
17922        return "Patient";
17923      if (code == ResourceTypeEnum.PAYMENTNOTICE)
17924        return "PaymentNotice";
17925      if (code == ResourceTypeEnum.PAYMENTRECONCILIATION)
17926        return "PaymentReconciliation";
17927      if (code == ResourceTypeEnum.PERMISSION)
17928        return "Permission";
17929      if (code == ResourceTypeEnum.PERSON)
17930        return "Person";
17931      if (code == ResourceTypeEnum.PLANDEFINITION)
17932        return "PlanDefinition";
17933      if (code == ResourceTypeEnum.PRACTITIONER)
17934        return "Practitioner";
17935      if (code == ResourceTypeEnum.PRACTITIONERROLE)
17936        return "PractitionerRole";
17937      if (code == ResourceTypeEnum.PROCEDURE)
17938        return "Procedure";
17939      if (code == ResourceTypeEnum.PROVENANCE)
17940        return "Provenance";
17941      if (code == ResourceTypeEnum.QUESTIONNAIRE)
17942        return "Questionnaire";
17943      if (code == ResourceTypeEnum.QUESTIONNAIRERESPONSE)
17944        return "QuestionnaireResponse";
17945      if (code == ResourceTypeEnum.REGULATEDAUTHORIZATION)
17946        return "RegulatedAuthorization";
17947      if (code == ResourceTypeEnum.RELATEDPERSON)
17948        return "RelatedPerson";
17949      if (code == ResourceTypeEnum.REQUESTORCHESTRATION)
17950        return "RequestOrchestration";
17951      if (code == ResourceTypeEnum.REQUIREMENTS)
17952        return "Requirements";
17953      if (code == ResourceTypeEnum.RESEARCHSTUDY)
17954        return "ResearchStudy";
17955      if (code == ResourceTypeEnum.RESEARCHSUBJECT)
17956        return "ResearchSubject";
17957      if (code == ResourceTypeEnum.RISKASSESSMENT)
17958        return "RiskAssessment";
17959      if (code == ResourceTypeEnum.SCHEDULE)
17960        return "Schedule";
17961      if (code == ResourceTypeEnum.SEARCHPARAMETER)
17962        return "SearchParameter";
17963      if (code == ResourceTypeEnum.SERVICEREQUEST)
17964        return "ServiceRequest";
17965      if (code == ResourceTypeEnum.SLOT)
17966        return "Slot";
17967      if (code == ResourceTypeEnum.SPECIMEN)
17968        return "Specimen";
17969      if (code == ResourceTypeEnum.SPECIMENDEFINITION)
17970        return "SpecimenDefinition";
17971      if (code == ResourceTypeEnum.STRUCTUREDEFINITION)
17972        return "StructureDefinition";
17973      if (code == ResourceTypeEnum.STRUCTUREMAP)
17974        return "StructureMap";
17975      if (code == ResourceTypeEnum.SUBSCRIPTION)
17976        return "Subscription";
17977      if (code == ResourceTypeEnum.SUBSCRIPTIONSTATUS)
17978        return "SubscriptionStatus";
17979      if (code == ResourceTypeEnum.SUBSCRIPTIONTOPIC)
17980        return "SubscriptionTopic";
17981      if (code == ResourceTypeEnum.SUBSTANCE)
17982        return "Substance";
17983      if (code == ResourceTypeEnum.SUBSTANCEDEFINITION)
17984        return "SubstanceDefinition";
17985      if (code == ResourceTypeEnum.SUBSTANCENUCLEICACID)
17986        return "SubstanceNucleicAcid";
17987      if (code == ResourceTypeEnum.SUBSTANCEPOLYMER)
17988        return "SubstancePolymer";
17989      if (code == ResourceTypeEnum.SUBSTANCEPROTEIN)
17990        return "SubstanceProtein";
17991      if (code == ResourceTypeEnum.SUBSTANCEREFERENCEINFORMATION)
17992        return "SubstanceReferenceInformation";
17993      if (code == ResourceTypeEnum.SUBSTANCESOURCEMATERIAL)
17994        return "SubstanceSourceMaterial";
17995      if (code == ResourceTypeEnum.SUPPLYDELIVERY)
17996        return "SupplyDelivery";
17997      if (code == ResourceTypeEnum.SUPPLYREQUEST)
17998        return "SupplyRequest";
17999      if (code == ResourceTypeEnum.TASK)
18000        return "Task";
18001      if (code == ResourceTypeEnum.TERMINOLOGYCAPABILITIES)
18002        return "TerminologyCapabilities";
18003      if (code == ResourceTypeEnum.TESTREPORT)
18004        return "TestReport";
18005      if (code == ResourceTypeEnum.TESTSCRIPT)
18006        return "TestScript";
18007      if (code == ResourceTypeEnum.TRANSPORT)
18008        return "Transport";
18009      if (code == ResourceTypeEnum.VALUESET)
18010        return "ValueSet";
18011      if (code == ResourceTypeEnum.VERIFICATIONRESULT)
18012        return "VerificationResult";
18013      if (code == ResourceTypeEnum.VISIONPRESCRIPTION)
18014        return "VisionPrescription";
18015      return "?";
18016      }
18017    public String toSystem(ResourceTypeEnum code) {
18018      return code.getSystem();
18019      }
18020    }
18021
18022    public enum SearchParamType {
18023        /**
18024         * Search parameter SHALL be a number (a whole number, or a decimal).
18025         */
18026        NUMBER, 
18027        /**
18028         * Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.
18029         */
18030        DATE, 
18031        /**
18032         * 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.
18033         */
18034        STRING, 
18035        /**
18036         * Search parameter on a coded element or identifier. May be used to search through the text, display, 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.
18037         */
18038        TOKEN, 
18039        /**
18040         * A reference to another resource (Reference or canonical).
18041         */
18042        REFERENCE, 
18043        /**
18044         * A composite search parameter that combines a search on two values together.
18045         */
18046        COMPOSITE, 
18047        /**
18048         * A search parameter that searches on a quantity.
18049         */
18050        QUANTITY, 
18051        /**
18052         * A search parameter that searches on a URI (RFC 3986).
18053         */
18054        URI, 
18055        /**
18056         * Special logic applies to this parameter per the description of the search parameter.
18057         */
18058        SPECIAL, 
18059        /**
18060         * added to help the parsers
18061         */
18062        NULL;
18063        public static SearchParamType fromCode(String codeString) throws FHIRException {
18064            if (codeString == null || "".equals(codeString))
18065                return null;
18066        if ("number".equals(codeString))
18067          return NUMBER;
18068        if ("date".equals(codeString))
18069          return DATE;
18070        if ("string".equals(codeString))
18071          return STRING;
18072        if ("token".equals(codeString))
18073          return TOKEN;
18074        if ("reference".equals(codeString))
18075          return REFERENCE;
18076        if ("composite".equals(codeString))
18077          return COMPOSITE;
18078        if ("quantity".equals(codeString))
18079          return QUANTITY;
18080        if ("uri".equals(codeString))
18081          return URI;
18082        if ("special".equals(codeString))
18083          return SPECIAL;
18084        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
18085        }
18086        public String toCode() {
18087          switch (this) {
18088            case NUMBER: return "number";
18089            case DATE: return "date";
18090            case STRING: return "string";
18091            case TOKEN: return "token";
18092            case REFERENCE: return "reference";
18093            case COMPOSITE: return "composite";
18094            case QUANTITY: return "quantity";
18095            case URI: return "uri";
18096            case SPECIAL: return "special";
18097            case NULL: return null;
18098            default: return "?";
18099          }
18100        }
18101        public String getSystem() {
18102          switch (this) {
18103            case NUMBER: return "http://hl7.org/fhir/search-param-type";
18104            case DATE: return "http://hl7.org/fhir/search-param-type";
18105            case STRING: return "http://hl7.org/fhir/search-param-type";
18106            case TOKEN: return "http://hl7.org/fhir/search-param-type";
18107            case REFERENCE: return "http://hl7.org/fhir/search-param-type";
18108            case COMPOSITE: return "http://hl7.org/fhir/search-param-type";
18109            case QUANTITY: return "http://hl7.org/fhir/search-param-type";
18110            case URI: return "http://hl7.org/fhir/search-param-type";
18111            case SPECIAL: return "http://hl7.org/fhir/search-param-type";
18112            case NULL: return null;
18113            default: return "?";
18114          }
18115        }
18116        public String getDefinition() {
18117          switch (this) {
18118            case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal).";
18119            case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.";
18120            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.";
18121            case TOKEN: return "Search parameter on a coded element or identifier. May be used to search through the text, display, 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.";
18122            case REFERENCE: return "A reference to another resource (Reference or canonical).";
18123            case COMPOSITE: return "A composite search parameter that combines a search on two values together.";
18124            case QUANTITY: return "A search parameter that searches on a quantity.";
18125            case URI: return "A search parameter that searches on a URI (RFC 3986).";
18126            case SPECIAL: return "Special logic applies to this parameter per the description of the search parameter.";
18127            case NULL: return null;
18128            default: return "?";
18129          }
18130        }
18131        public String getDisplay() {
18132          switch (this) {
18133            case NUMBER: return "Number";
18134            case DATE: return "Date/DateTime";
18135            case STRING: return "String";
18136            case TOKEN: return "Token";
18137            case REFERENCE: return "Reference";
18138            case COMPOSITE: return "Composite";
18139            case QUANTITY: return "Quantity";
18140            case URI: return "URI";
18141            case SPECIAL: return "Special";
18142            case NULL: return null;
18143            default: return "?";
18144          }
18145        }
18146    }
18147
18148  public static class SearchParamTypeEnumFactory implements EnumFactory<SearchParamType> {
18149    public SearchParamType fromCode(String codeString) throws IllegalArgumentException {
18150      if (codeString == null || "".equals(codeString))
18151            if (codeString == null || "".equals(codeString))
18152                return null;
18153        if ("number".equals(codeString))
18154          return SearchParamType.NUMBER;
18155        if ("date".equals(codeString))
18156          return SearchParamType.DATE;
18157        if ("string".equals(codeString))
18158          return SearchParamType.STRING;
18159        if ("token".equals(codeString))
18160          return SearchParamType.TOKEN;
18161        if ("reference".equals(codeString))
18162          return SearchParamType.REFERENCE;
18163        if ("composite".equals(codeString))
18164          return SearchParamType.COMPOSITE;
18165        if ("quantity".equals(codeString))
18166          return SearchParamType.QUANTITY;
18167        if ("uri".equals(codeString))
18168          return SearchParamType.URI;
18169        if ("special".equals(codeString))
18170          return SearchParamType.SPECIAL;
18171        throw new IllegalArgumentException("Unknown SearchParamType code '"+codeString+"'");
18172        }
18173        public Enumeration<SearchParamType> fromType(PrimitiveType<?> code) throws FHIRException {
18174          if (code == null)
18175            return null;
18176          if (code.isEmpty())
18177            return new Enumeration<SearchParamType>(this, SearchParamType.NULL, code);
18178          String codeString = ((PrimitiveType) code).asStringValue();
18179          if (codeString == null || "".equals(codeString))
18180            return new Enumeration<SearchParamType>(this, SearchParamType.NULL, code);
18181        if ("number".equals(codeString))
18182          return new Enumeration<SearchParamType>(this, SearchParamType.NUMBER, code);
18183        if ("date".equals(codeString))
18184          return new Enumeration<SearchParamType>(this, SearchParamType.DATE, code);
18185        if ("string".equals(codeString))
18186          return new Enumeration<SearchParamType>(this, SearchParamType.STRING, code);
18187        if ("token".equals(codeString))
18188          return new Enumeration<SearchParamType>(this, SearchParamType.TOKEN, code);
18189        if ("reference".equals(codeString))
18190          return new Enumeration<SearchParamType>(this, SearchParamType.REFERENCE, code);
18191        if ("composite".equals(codeString))
18192          return new Enumeration<SearchParamType>(this, SearchParamType.COMPOSITE, code);
18193        if ("quantity".equals(codeString))
18194          return new Enumeration<SearchParamType>(this, SearchParamType.QUANTITY, code);
18195        if ("uri".equals(codeString))
18196          return new Enumeration<SearchParamType>(this, SearchParamType.URI, code);
18197        if ("special".equals(codeString))
18198          return new Enumeration<SearchParamType>(this, SearchParamType.SPECIAL, code);
18199        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
18200        }
18201    public String toCode(SearchParamType code) {
18202      if (code == SearchParamType.NUMBER)
18203        return "number";
18204      if (code == SearchParamType.DATE)
18205        return "date";
18206      if (code == SearchParamType.STRING)
18207        return "string";
18208      if (code == SearchParamType.TOKEN)
18209        return "token";
18210      if (code == SearchParamType.REFERENCE)
18211        return "reference";
18212      if (code == SearchParamType.COMPOSITE)
18213        return "composite";
18214      if (code == SearchParamType.QUANTITY)
18215        return "quantity";
18216      if (code == SearchParamType.URI)
18217        return "uri";
18218      if (code == SearchParamType.SPECIAL)
18219        return "special";
18220      return "?";
18221      }
18222    public String toSystem(SearchParamType code) {
18223      return code.getSystem();
18224      }
18225    }
18226
18227    public enum SubscriptionSearchModifier {
18228        /**
18229         * Used to match a value according to FHIR Search rules (e.g., Patient/123, Encounter/2002).
18230         */
18231        EQUAL, 
18232        /**
18233         * The value for the parameter in the resource is equal to the provided value.
18234         */
18235        EQ, 
18236        /**
18237         * The value for the parameter in the resource is not equal to the provided value.
18238         */
18239        NE, 
18240        /**
18241         * The value for the parameter in the resource is greater than the provided value.
18242         */
18243        GT, 
18244        /**
18245         * The value for the parameter in the resource is less than the provided value.
18246         */
18247        LT, 
18248        /**
18249         * The value for the parameter in the resource is greater or equal to the provided value.
18250         */
18251        GE, 
18252        /**
18253         * The value for the parameter in the resource is less or equal to the provided value.
18254         */
18255        LE, 
18256        /**
18257         * The value for the parameter in the resource starts after the provided value.
18258         */
18259        SA, 
18260        /**
18261         * The value for the parameter in the resource ends before the provided value.
18262         */
18263        EB, 
18264        /**
18265         * The value for the parameter in the resource is approximately the same to the provided value. Note that the recommended value for the approximation is 10% of the stated value (or for a date, 10% of the gap between now and the date), but systems may choose other values where appropriate.
18266         */
18267        AP, 
18268        /**
18269         * The search parameter is a concept with the form [system]|[code], and the search parameter tests whether the coding in a resource subsumes the specified search code.
18270         */
18271        ABOVE, 
18272        /**
18273         * The search parameter is a concept with the form [system]|[code], and the search parameter tests whether the coding in a resource is subsumed by the specified search code.
18274         */
18275        BELOW, 
18276        /**
18277         * The search parameter is a member of a Group or List, or the search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the value is present in the specified Group, List, or Value Set.
18278         */
18279        IN, 
18280        /**
18281         * The search parameter is a member of a Group or List, or the search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the value is NOT present in the specified Group, List, or Value Set.
18282         */
18283        NOTIN, 
18284        /**
18285         * The search parameter has the format system|code|value, where the system and code refer to a Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present.
18286         */
18287        OFTYPE, 
18288        /**
18289         * added to help the parsers
18290         */
18291        NULL;
18292        public static SubscriptionSearchModifier fromCode(String codeString) throws FHIRException {
18293            if (codeString == null || "".equals(codeString))
18294                return null;
18295        if ("=".equals(codeString))
18296          return EQUAL;
18297        if ("eq".equals(codeString))
18298          return EQ;
18299        if ("ne".equals(codeString))
18300          return NE;
18301        if ("gt".equals(codeString))
18302          return GT;
18303        if ("lt".equals(codeString))
18304          return LT;
18305        if ("ge".equals(codeString))
18306          return GE;
18307        if ("le".equals(codeString))
18308          return LE;
18309        if ("sa".equals(codeString))
18310          return SA;
18311        if ("eb".equals(codeString))
18312          return EB;
18313        if ("ap".equals(codeString))
18314          return AP;
18315        if ("above".equals(codeString))
18316          return ABOVE;
18317        if ("below".equals(codeString))
18318          return BELOW;
18319        if ("in".equals(codeString))
18320          return IN;
18321        if ("not-in".equals(codeString))
18322          return NOTIN;
18323        if ("of-type".equals(codeString))
18324          return OFTYPE;
18325        throw new FHIRException("Unknown SubscriptionSearchModifier code '"+codeString+"'");
18326        }
18327        public String toCode() {
18328          switch (this) {
18329            case EQUAL: return "=";
18330            case EQ: return "eq";
18331            case NE: return "ne";
18332            case GT: return "gt";
18333            case LT: return "lt";
18334            case GE: return "ge";
18335            case LE: return "le";
18336            case SA: return "sa";
18337            case EB: return "eb";
18338            case AP: return "ap";
18339            case ABOVE: return "above";
18340            case BELOW: return "below";
18341            case IN: return "in";
18342            case NOTIN: return "not-in";
18343            case OFTYPE: return "of-type";
18344            case NULL: return null;
18345            default: return "?";
18346          }
18347        }
18348        public String getSystem() {
18349          switch (this) {
18350            case EQUAL: return "http://hl7.org/fhir/subscription-search-modifier";
18351            case EQ: return "http://hl7.org/fhir/subscription-search-modifier";
18352            case NE: return "http://hl7.org/fhir/subscription-search-modifier";
18353            case GT: return "http://hl7.org/fhir/subscription-search-modifier";
18354            case LT: return "http://hl7.org/fhir/subscription-search-modifier";
18355            case GE: return "http://hl7.org/fhir/subscription-search-modifier";
18356            case LE: return "http://hl7.org/fhir/subscription-search-modifier";
18357            case SA: return "http://hl7.org/fhir/subscription-search-modifier";
18358            case EB: return "http://hl7.org/fhir/subscription-search-modifier";
18359            case AP: return "http://hl7.org/fhir/subscription-search-modifier";
18360            case ABOVE: return "http://hl7.org/fhir/subscription-search-modifier";
18361            case BELOW: return "http://hl7.org/fhir/subscription-search-modifier";
18362            case IN: return "http://hl7.org/fhir/subscription-search-modifier";
18363            case NOTIN: return "http://hl7.org/fhir/subscription-search-modifier";
18364            case OFTYPE: return "http://hl7.org/fhir/subscription-search-modifier";
18365            case NULL: return null;
18366            default: return "?";
18367          }
18368        }
18369        public String getDefinition() {
18370          switch (this) {
18371            case EQUAL: return "Used to match a value according to FHIR Search rules (e.g., Patient/123, Encounter/2002).";
18372            case EQ: return "The value for the parameter in the resource is equal to the provided value.";
18373            case NE: return "The value for the parameter in the resource is not equal to the provided value.";
18374            case GT: return "The value for the parameter in the resource is greater than the provided value.";
18375            case LT: return "The value for the parameter in the resource is less than the provided value.";
18376            case GE: return "The value for the parameter in the resource is greater or equal to the provided value.";
18377            case LE: return "The value for the parameter in the resource is less or equal to the provided value.";
18378            case SA: return "The value for the parameter in the resource starts after the provided value.";
18379            case EB: return "The value for the parameter in the resource ends before the provided value.";
18380            case AP: return "The value for the parameter in the resource is approximately the same to the provided value. Note that the recommended value for the approximation is 10% of the stated value (or for a date, 10% of the gap between now and the date), but systems may choose other values where appropriate.";
18381            case ABOVE: return "The search parameter is a concept with the form [system]|[code], and the search parameter tests whether the coding in a resource subsumes the specified search code.";
18382            case BELOW: return "The search parameter is a concept with the form [system]|[code], and the search parameter tests whether the coding in a resource is subsumed by the specified search code.";
18383            case IN: return "The search parameter is a member of a Group or List, or the search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the value is present in the specified Group, List, or Value Set.";
18384            case NOTIN: return "The search parameter is a member of a Group or List, or the search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the value is NOT present in the specified Group, List, or Value Set.";
18385            case OFTYPE: return "The search parameter has the format system|code|value, where the system and code refer to a Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present.";
18386            case NULL: return null;
18387            default: return "?";
18388          }
18389        }
18390        public String getDisplay() {
18391          switch (this) {
18392            case EQUAL: return "=";
18393            case EQ: return "Equal";
18394            case NE: return "Not Equal";
18395            case GT: return "Greater Than";
18396            case LT: return "Less Than";
18397            case GE: return "Greater Than or Equal";
18398            case LE: return "Less Than or Equal";
18399            case SA: return "Starts After";
18400            case EB: return "Ends Before";
18401            case AP: return "Approximately";
18402            case ABOVE: return "Above";
18403            case BELOW: return "Below";
18404            case IN: return "In";
18405            case NOTIN: return "Not In";
18406            case OFTYPE: return "Of Type";
18407            case NULL: return null;
18408            default: return "?";
18409          }
18410        }
18411    }
18412
18413  public static class SubscriptionSearchModifierEnumFactory implements EnumFactory<SubscriptionSearchModifier> {
18414    public SubscriptionSearchModifier fromCode(String codeString) throws IllegalArgumentException {
18415      if (codeString == null || "".equals(codeString))
18416            if (codeString == null || "".equals(codeString))
18417                return null;
18418        if ("=".equals(codeString))
18419          return SubscriptionSearchModifier.EQUAL;
18420        if ("eq".equals(codeString))
18421          return SubscriptionSearchModifier.EQ;
18422        if ("ne".equals(codeString))
18423          return SubscriptionSearchModifier.NE;
18424        if ("gt".equals(codeString))
18425          return SubscriptionSearchModifier.GT;
18426        if ("lt".equals(codeString))
18427          return SubscriptionSearchModifier.LT;
18428        if ("ge".equals(codeString))
18429          return SubscriptionSearchModifier.GE;
18430        if ("le".equals(codeString))
18431          return SubscriptionSearchModifier.LE;
18432        if ("sa".equals(codeString))
18433          return SubscriptionSearchModifier.SA;
18434        if ("eb".equals(codeString))
18435          return SubscriptionSearchModifier.EB;
18436        if ("ap".equals(codeString))
18437          return SubscriptionSearchModifier.AP;
18438        if ("above".equals(codeString))
18439          return SubscriptionSearchModifier.ABOVE;
18440        if ("below".equals(codeString))
18441          return SubscriptionSearchModifier.BELOW;
18442        if ("in".equals(codeString))
18443          return SubscriptionSearchModifier.IN;
18444        if ("not-in".equals(codeString))
18445          return SubscriptionSearchModifier.NOTIN;
18446        if ("of-type".equals(codeString))
18447          return SubscriptionSearchModifier.OFTYPE;
18448        throw new IllegalArgumentException("Unknown SubscriptionSearchModifier code '"+codeString+"'");
18449        }
18450        public Enumeration<SubscriptionSearchModifier> fromType(PrimitiveType<?> code) throws FHIRException {
18451          if (code == null)
18452            return null;
18453          if (code.isEmpty())
18454            return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.NULL, code);
18455          String codeString = ((PrimitiveType) code).asStringValue();
18456          if (codeString == null || "".equals(codeString))
18457            return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.NULL, code);
18458        if ("=".equals(codeString))
18459          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.EQUAL, code);
18460        if ("eq".equals(codeString))
18461          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.EQ, code);
18462        if ("ne".equals(codeString))
18463          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.NE, code);
18464        if ("gt".equals(codeString))
18465          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.GT, code);
18466        if ("lt".equals(codeString))
18467          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.LT, code);
18468        if ("ge".equals(codeString))
18469          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.GE, code);
18470        if ("le".equals(codeString))
18471          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.LE, code);
18472        if ("sa".equals(codeString))
18473          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.SA, code);
18474        if ("eb".equals(codeString))
18475          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.EB, code);
18476        if ("ap".equals(codeString))
18477          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.AP, code);
18478        if ("above".equals(codeString))
18479          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.ABOVE, code);
18480        if ("below".equals(codeString))
18481          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.BELOW, code);
18482        if ("in".equals(codeString))
18483          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.IN, code);
18484        if ("not-in".equals(codeString))
18485          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.NOTIN, code);
18486        if ("of-type".equals(codeString))
18487          return new Enumeration<SubscriptionSearchModifier>(this, SubscriptionSearchModifier.OFTYPE, code);
18488        throw new FHIRException("Unknown SubscriptionSearchModifier code '"+codeString+"'");
18489        }
18490    public String toCode(SubscriptionSearchModifier code) {
18491      if (code == SubscriptionSearchModifier.EQUAL)
18492        return "=";
18493      if (code == SubscriptionSearchModifier.EQ)
18494        return "eq";
18495      if (code == SubscriptionSearchModifier.NE)
18496        return "ne";
18497      if (code == SubscriptionSearchModifier.GT)
18498        return "gt";
18499      if (code == SubscriptionSearchModifier.LT)
18500        return "lt";
18501      if (code == SubscriptionSearchModifier.GE)
18502        return "ge";
18503      if (code == SubscriptionSearchModifier.LE)
18504        return "le";
18505      if (code == SubscriptionSearchModifier.SA)
18506        return "sa";
18507      if (code == SubscriptionSearchModifier.EB)
18508        return "eb";
18509      if (code == SubscriptionSearchModifier.AP)
18510        return "ap";
18511      if (code == SubscriptionSearchModifier.ABOVE)
18512        return "above";
18513      if (code == SubscriptionSearchModifier.BELOW)
18514        return "below";
18515      if (code == SubscriptionSearchModifier.IN)
18516        return "in";
18517      if (code == SubscriptionSearchModifier.NOTIN)
18518        return "not-in";
18519      if (code == SubscriptionSearchModifier.OFTYPE)
18520        return "of-type";
18521      return "?";
18522      }
18523    public String toSystem(SubscriptionSearchModifier code) {
18524      return code.getSystem();
18525      }
18526    }
18527
18528    public enum SubscriptionStatusCodes {
18529        /**
18530         * The client has requested the subscription, and the server has not yet set it up.
18531         */
18532        REQUESTED, 
18533        /**
18534         * The subscription is active.
18535         */
18536        ACTIVE, 
18537        /**
18538         * The server has an error executing the notification.
18539         */
18540        ERROR, 
18541        /**
18542         * Too many errors have occurred or the subscription has expired.
18543         */
18544        OFF, 
18545        /**
18546         * This subscription has been flagged as incorrect.
18547         */
18548        ENTEREDINERROR, 
18549        /**
18550         * added to help the parsers
18551         */
18552        NULL;
18553        public static SubscriptionStatusCodes fromCode(String codeString) throws FHIRException {
18554            if (codeString == null || "".equals(codeString))
18555                return null;
18556        if ("requested".equals(codeString))
18557          return REQUESTED;
18558        if ("active".equals(codeString))
18559          return ACTIVE;
18560        if ("error".equals(codeString))
18561          return ERROR;
18562        if ("off".equals(codeString))
18563          return OFF;
18564        if ("entered-in-error".equals(codeString))
18565          return ENTEREDINERROR;
18566        throw new FHIRException("Unknown SubscriptionStatusCodes code '"+codeString+"'");
18567        }
18568        public String toCode() {
18569          switch (this) {
18570            case REQUESTED: return "requested";
18571            case ACTIVE: return "active";
18572            case ERROR: return "error";
18573            case OFF: return "off";
18574            case ENTEREDINERROR: return "entered-in-error";
18575            case NULL: return null;
18576            default: return "?";
18577          }
18578        }
18579        public String getSystem() {
18580          switch (this) {
18581            case REQUESTED: return "http://hl7.org/fhir/subscription-status";
18582            case ACTIVE: return "http://hl7.org/fhir/subscription-status";
18583            case ERROR: return "http://hl7.org/fhir/subscription-status";
18584            case OFF: return "http://hl7.org/fhir/subscription-status";
18585            case ENTEREDINERROR: return "http://hl7.org/fhir/subscription-status";
18586            case NULL: return null;
18587            default: return "?";
18588          }
18589        }
18590        public String getDefinition() {
18591          switch (this) {
18592            case REQUESTED: return "The client has requested the subscription, and the server has not yet set it up.";
18593            case ACTIVE: return "The subscription is active.";
18594            case ERROR: return "The server has an error executing the notification.";
18595            case OFF: return "Too many errors have occurred or the subscription has expired.";
18596            case ENTEREDINERROR: return "This subscription has been flagged as incorrect.";
18597            case NULL: return null;
18598            default: return "?";
18599          }
18600        }
18601        public String getDisplay() {
18602          switch (this) {
18603            case REQUESTED: return "Requested";
18604            case ACTIVE: return "Active";
18605            case ERROR: return "Error";
18606            case OFF: return "Off";
18607            case ENTEREDINERROR: return "Entered in Error";
18608            case NULL: return null;
18609            default: return "?";
18610          }
18611        }
18612    }
18613
18614  public static class SubscriptionStatusCodesEnumFactory implements EnumFactory<SubscriptionStatusCodes> {
18615    public SubscriptionStatusCodes fromCode(String codeString) throws IllegalArgumentException {
18616      if (codeString == null || "".equals(codeString))
18617            if (codeString == null || "".equals(codeString))
18618                return null;
18619        if ("requested".equals(codeString))
18620          return SubscriptionStatusCodes.REQUESTED;
18621        if ("active".equals(codeString))
18622          return SubscriptionStatusCodes.ACTIVE;
18623        if ("error".equals(codeString))
18624          return SubscriptionStatusCodes.ERROR;
18625        if ("off".equals(codeString))
18626          return SubscriptionStatusCodes.OFF;
18627        if ("entered-in-error".equals(codeString))
18628          return SubscriptionStatusCodes.ENTEREDINERROR;
18629        throw new IllegalArgumentException("Unknown SubscriptionStatusCodes code '"+codeString+"'");
18630        }
18631        public Enumeration<SubscriptionStatusCodes> fromType(PrimitiveType<?> code) throws FHIRException {
18632          if (code == null)
18633            return null;
18634          if (code.isEmpty())
18635            return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.NULL, code);
18636          String codeString = ((PrimitiveType) code).asStringValue();
18637          if (codeString == null || "".equals(codeString))
18638            return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.NULL, code);
18639        if ("requested".equals(codeString))
18640          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.REQUESTED, code);
18641        if ("active".equals(codeString))
18642          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.ACTIVE, code);
18643        if ("error".equals(codeString))
18644          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.ERROR, code);
18645        if ("off".equals(codeString))
18646          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.OFF, code);
18647        if ("entered-in-error".equals(codeString))
18648          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.ENTEREDINERROR, code);
18649        throw new FHIRException("Unknown SubscriptionStatusCodes code '"+codeString+"'");
18650        }
18651    public String toCode(SubscriptionStatusCodes code) {
18652      if (code == SubscriptionStatusCodes.REQUESTED)
18653        return "requested";
18654      if (code == SubscriptionStatusCodes.ACTIVE)
18655        return "active";
18656      if (code == SubscriptionStatusCodes.ERROR)
18657        return "error";
18658      if (code == SubscriptionStatusCodes.OFF)
18659        return "off";
18660      if (code == SubscriptionStatusCodes.ENTEREDINERROR)
18661        return "entered-in-error";
18662      return "?";
18663      }
18664    public String toSystem(SubscriptionStatusCodes code) {
18665      return code.getSystem();
18666      }
18667    }
18668
18669    public enum Use {
18670        /**
18671         * The treatment is complete and this represents a Claim for the services.
18672         */
18673        CLAIM, 
18674        /**
18675         * The treatment is proposed and this represents a Pre-authorization for the services.
18676         */
18677        PREAUTHORIZATION, 
18678        /**
18679         * The treatment is proposed and this represents a Pre-determination for the services.
18680         */
18681        PREDETERMINATION, 
18682        /**
18683         * added to help the parsers
18684         */
18685        NULL;
18686        public static Use fromCode(String codeString) throws FHIRException {
18687            if (codeString == null || "".equals(codeString))
18688                return null;
18689        if ("claim".equals(codeString))
18690          return CLAIM;
18691        if ("preauthorization".equals(codeString))
18692          return PREAUTHORIZATION;
18693        if ("predetermination".equals(codeString))
18694          return PREDETERMINATION;
18695        throw new FHIRException("Unknown Use code '"+codeString+"'");
18696        }
18697        public String toCode() {
18698          switch (this) {
18699            case CLAIM: return "claim";
18700            case PREAUTHORIZATION: return "preauthorization";
18701            case PREDETERMINATION: return "predetermination";
18702            case NULL: return null;
18703            default: return "?";
18704          }
18705        }
18706        public String getSystem() {
18707          switch (this) {
18708            case CLAIM: return "http://hl7.org/fhir/claim-use";
18709            case PREAUTHORIZATION: return "http://hl7.org/fhir/claim-use";
18710            case PREDETERMINATION: return "http://hl7.org/fhir/claim-use";
18711            case NULL: return null;
18712            default: return "?";
18713          }
18714        }
18715        public String getDefinition() {
18716          switch (this) {
18717            case CLAIM: return "The treatment is complete and this represents a Claim for the services.";
18718            case PREAUTHORIZATION: return "The treatment is proposed and this represents a Pre-authorization for the services.";
18719            case PREDETERMINATION: return "The treatment is proposed and this represents a Pre-determination for the services.";
18720            case NULL: return null;
18721            default: return "?";
18722          }
18723        }
18724        public String getDisplay() {
18725          switch (this) {
18726            case CLAIM: return "Claim";
18727            case PREAUTHORIZATION: return "Preauthorization";
18728            case PREDETERMINATION: return "Predetermination";
18729            case NULL: return null;
18730            default: return "?";
18731          }
18732        }
18733    }
18734
18735  public static class UseEnumFactory implements EnumFactory<Use> {
18736    public Use fromCode(String codeString) throws IllegalArgumentException {
18737      if (codeString == null || "".equals(codeString))
18738            if (codeString == null || "".equals(codeString))
18739                return null;
18740        if ("claim".equals(codeString))
18741          return Use.CLAIM;
18742        if ("preauthorization".equals(codeString))
18743          return Use.PREAUTHORIZATION;
18744        if ("predetermination".equals(codeString))
18745          return Use.PREDETERMINATION;
18746        throw new IllegalArgumentException("Unknown Use code '"+codeString+"'");
18747        }
18748        public Enumeration<Use> fromType(PrimitiveType<?> code) throws FHIRException {
18749          if (code == null)
18750            return null;
18751          if (code.isEmpty())
18752            return new Enumeration<Use>(this, Use.NULL, code);
18753          String codeString = ((PrimitiveType) code).asStringValue();
18754          if (codeString == null || "".equals(codeString))
18755            return new Enumeration<Use>(this, Use.NULL, code);
18756        if ("claim".equals(codeString))
18757          return new Enumeration<Use>(this, Use.CLAIM, code);
18758        if ("preauthorization".equals(codeString))
18759          return new Enumeration<Use>(this, Use.PREAUTHORIZATION, code);
18760        if ("predetermination".equals(codeString))
18761          return new Enumeration<Use>(this, Use.PREDETERMINATION, code);
18762        throw new FHIRException("Unknown Use code '"+codeString+"'");
18763        }
18764    public String toCode(Use code) {
18765      if (code == Use.CLAIM)
18766        return "claim";
18767      if (code == Use.PREAUTHORIZATION)
18768        return "preauthorization";
18769      if (code == Use.PREDETERMINATION)
18770        return "predetermination";
18771      return "?";
18772      }
18773    public String toSystem(Use code) {
18774      return code.getSystem();
18775      }
18776    }
18777
18778
18779}