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 Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034
035import org.hl7.fhir.instance.model.api.*;
036import org.hl7.fhir.utilities.Utilities;
037import org.hl7.fhir.exceptions.FHIRException;
038
039public class Enumerations {
040
041// In here: 
042//   ActionCardinalityBehavior: Defines behavior for an action or a group for how many times that item may be repeated.[PlanDefinition, RequestOrchestration]
043//   ActionConditionKind: Defines the kinds of conditions that can appear on actions.[PlanDefinition, RequestOrchestration]
044//   ActionGroupingBehavior: Defines organization behavior of a group.[PlanDefinition, RequestOrchestration]
045//   ActionParticipantType: The type of participant for the action.[ActivityDefinition, PlanDefinition, RequestOrchestration]
046//   ActionPrecheckBehavior: Defines selection frequency behavior for an action or group.[PlanDefinition, RequestOrchestration]
047//   ActionRelationshipType: Defines the types of relationships between actions.[PlanDefinition, RequestOrchestration]
048//   ActionRequiredBehavior: Defines expectations around whether an action or action group is required.[PlanDefinition, RequestOrchestration]
049//   ActionSelectionBehavior: Defines selection behavior of a group.[PlanDefinition, RequestOrchestration]
050//   AdministrativeGender: The gender of a person used for administrative purposes.[ObservationDefinition, Patient, Person, Practitioner, RelatedPerson]
051//   AllLanguages: This value set includes all possible codes from BCP-47 (see http://tools.ietf.org/html/bcp47)[Account, ActivityDefinition, ActorDefinition, AdministrableProductDefinition, AdverseEvent, AllergyIntolerance, Appointment, AppointmentResponse, ArtifactAssessment, Attachment, AuditEvent, Basic, Binary, BiologicallyDerivedProduct, BiologicallyDerivedProductDispense, BodyStructure, Bundle, CanonicalResource, CapabilityStatement, CarePlan, CareTeam, ChargeItem, ChargeItemDefinition, Citation, Claim, ClaimResponse, ClinicalImpression, ClinicalUseDefinition, CodeSystem, Communication, CommunicationRequest, CompartmentDefinition, Composition, ConceptMap, Condition, ConditionDefinition, Consent, Contract, Coverage, CoverageEligibilityRequest, CoverageEligibilityResponse, DetectedIssue, Device, DeviceAssociation, DeviceDefinition, DeviceDispense, DeviceMetric, DeviceRequest, DeviceUsage, DiagnosticReport, DocumentReference, DomainResource, Encounter, EncounterHistory, Endpoint, EnrollmentRequest, EnrollmentResponse, EpisodeOfCare, EventDefinition, Evidence, EvidenceReport, EvidenceVariable, ExampleScenario, ExplanationOfBenefit, FamilyMemberHistory, Flag, FormularyItem, GenomicStudy, Goal, GraphDefinition, Group, GuidanceResponse, HealthcareService, ImagingSelection, ImagingStudy, Immunization, ImmunizationEvaluation, ImmunizationRecommendation, ImplementationGuide, Ingredient, InsurancePlan, InventoryItem, InventoryReport, Invoice, Library, Linkage, List, Location, ManufacturedItemDefinition, Measure, MeasureReport, Medication, MedicationAdministration, MedicationDispense, MedicationKnowledge, MedicationRequest, MedicationStatement, MedicinalProductDefinition, MessageDefinition, MessageHeader, MetadataResource, MolecularSequence, NamingSystem, NutritionIntake, NutritionOrder, NutritionProduct, Observation, ObservationDefinition, OperationDefinition, OperationOutcome, Organization, OrganizationAffiliation, PackagedProductDefinition, Parameters, Patient, PaymentNotice, PaymentReconciliation, Permission, Person, PlanDefinition, Practitioner, PractitionerRole, Procedure, Provenance, Questionnaire, QuestionnaireResponse, RegulatedAuthorization, RelatedPerson, RequestOrchestration, Requirements, ResearchStudy, ResearchSubject, Resource, RiskAssessment, Schedule, SearchParameter, ServiceRequest, Slot, Specimen, SpecimenDefinition, StructureDefinition, StructureMap, Subscription, SubscriptionStatus, SubscriptionTopic, Substance, SubstanceDefinition, SubstanceNucleicAcid, SubstancePolymer, SubstanceProtein, SubstanceReferenceInformation, SubstanceSourceMaterial, SupplyDelivery, SupplyRequest, Task, TerminologyCapabilities, TestPlan, TestReport, TestScript, Transport, ValueSet, VerificationResult, VisionPrescription]
052//   BindingStrength: Indication of the degree of conformance expectations associated with a binding.[ElementDefinition, OperationDefinition]
053//   CapabilityStatementKind: How a capability statement is intended to be used.[CapabilityStatement, TerminologyCapabilities]
054//   ClaimProcessingCodes: This value set includes Claim Processing Outcome codes.[ClaimResponse, ExplanationOfBenefit]
055//   CodeSystemContentMode: The extent of the content of the code system (the concepts and codes it defines) are represented in a code system resource.[CodeSystem, TerminologyCapabilities]
056//   CommonLanguages: This value set includes common codes from BCP-47 (see http://tools.ietf.org/html/bcp47)[InventoryItem, TerminologyCapabilities]
057//   CompartmentType: Which type a compartment definition describes.[CompartmentDefinition, GraphDefinition]
058//   CompositionStatus: The workflow/clinical status of the composition.[Composition, DocumentReference]
059//   ConceptMapRelationship: The relationship between concepts.[ConceptMap]
060//   ConsentDataMeaning: How a resource reference is interpreted when testing consent restrictions.[Consent, Permission]
061//   ConsentProvisionType: How a rule statement is applied, such as adding additional consent or removing consent.[Consent, Permission]
062//   Currencies: Currency codes from ISO 4217 (see https://www.iso.org/iso-4217-currency-codes.html)[Account, Money]
063//   DaysOfWeek: The days of the week.[Appointment, Availability, Timing]
064//   DeviceNameType: The type of name the device is referred by.[Device, DeviceDefinition]
065//   EncounterStatus: Current state of the encounter.[Encounter, EncounterHistory]
066//   EventStatus: Codes identifying the lifecycle stage of an event.[ClinicalImpression, Communication, NutritionIntake, Procedure]
067//   EvidenceVariableHandling: The handling of the variable in statistical analysis for exposures or outcomes (E.g. Dichotomous, Continuous, Descriptive).[Evidence, EvidenceVariable]
068//   ExampleScenarioActorType: The type of actor - system or human.[ActorDefinition, ExampleScenario]
069//   FHIRTypes: All FHIR types[DataRequirement, Measure, OperationDefinition, ParameterDefinition]
070//   FHIRVersion: All published FHIR Versions.[CapabilityStatement, ImplementationGuide, StructureDefinition]
071//   FilterOperator: The kind of operation to perform as a part of a property based filter.[CodeSystem, ValueSet]
072//   FinancialResourceStatusCodes: This value set includes Status codes.[Claim, ClaimResponse, Coverage, CoverageEligibilityRequest, CoverageEligibilityResponse, EnrollmentRequest, EnrollmentResponse, PaymentNotice, PaymentReconciliation, VisionPrescription]
073//   ListMode: The processing mode that applies to this list.[EvidenceReport, List]
074//   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]
075//   MimeTypes: This value set includes all possible codes from BCP-13 (see http://tools.ietf.org/html/bcp13)[Attachment, Binary, CapabilityStatement, ElementDefinition, Endpoint, Signature, Subscription, TestScript]
076//   ObservationStatus: Codes providing the status of an observation.[Observation, RiskAssessment]
077//   OperationParameterUse: Whether an operation parameter is an input or an output parameter.[OperationDefinition, ParameterDefinition]
078//   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, TestPlan, TestScript, ValueSet]
079//   QuantityComparator: How the Quantity should be understood and represented.[Age, Count, Distance, Duration, Quantity]
080//   RequestIntent: Codes indicating the degree of authority/intentionality associated with a request.[ActivityDefinition, CommunicationRequest, DeviceRequest, NutritionOrder, RequestOrchestration, ServiceRequest]
081//   RequestPriority: Identifies the level of importance to be assigned to actioning the request.[ActivityDefinition, Communication, CommunicationRequest, DeviceRequest, MedicationRequest, NutritionOrder, PlanDefinition, RequestOrchestration, ServiceRequest, SupplyRequest, Task, Transport]
082//   RequestStatus: Codes identifying the lifecycle stage of a request.[CarePlan, CommunicationRequest, DeviceRequest, NutritionOrder, RequestOrchestration, ServiceRequest]
083//   ResourceTypeEnum: Concrete FHIR Resource Types[CapabilityStatement, CompartmentDefinition, ImplementationGuide, MessageDefinition, Questionnaire]
084//   SearchComparator: What Search Comparator Codes are supported in search.[SearchParameter, Subscription, SubscriptionTopic]
085//   SearchModifierCode: A supported modifier for a search parameter.[SearchParameter, Subscription, SubscriptionTopic]
086//   SearchParamType: Data types allowed to be used for search parameters.[CapabilityStatement, OperationDefinition, SearchParameter]
087//   SubscriptionStatusCodes: State values for FHIR Subscriptions.[Subscription, SubscriptionStatus]
088//   Use: The purpose of the Claim: predetermination, preauthorization, claim.[Claim, ClaimResponse, ExplanationOfBenefit]
089//   VersionIndependentResourceTypesAll: Current and past FHIR resource types (deleted or renamed), including abstract types[GraphDefinition, OperationDefinition, SearchParameter]
090
091
092    public enum ActionCardinalityBehavior {
093        /**
094         * The action may only be selected one time.
095         */
096        SINGLE, 
097        /**
098         * The action may be selected multiple times.
099         */
100        MULTIPLE, 
101        /**
102         * added to help the parsers
103         */
104        NULL;
105        public static ActionCardinalityBehavior fromCode(String codeString) throws FHIRException {
106            if (codeString == null || "".equals(codeString))
107                return null;
108        if ("single".equals(codeString))
109          return SINGLE;
110        if ("multiple".equals(codeString))
111          return MULTIPLE;
112        throw new FHIRException("Unknown ActionCardinalityBehavior code '"+codeString+"'");
113        }
114        public static boolean isValidCode(String codeString) {
115            if (codeString == null || "".equals(codeString))
116                return false;
117          return Utilities.existsInList(codeString, "single", "multiple");
118        }
119        public String toCode() {
120          switch (this) {
121            case SINGLE: return "single";
122            case MULTIPLE: return "multiple";
123            case NULL: return null;
124            default: return "?";
125          }
126        }
127        public String getSystem() {
128          switch (this) {
129            case SINGLE: return "http://hl7.org/fhir/action-cardinality-behavior";
130            case MULTIPLE: return "http://hl7.org/fhir/action-cardinality-behavior";
131            case NULL: return null;
132            default: return "?";
133          }
134        }
135        public String getDefinition() {
136          switch (this) {
137            case SINGLE: return "The action may only be selected one time.";
138            case MULTIPLE: return "The action may be selected multiple times.";
139            case NULL: return null;
140            default: return "?";
141          }
142        }
143        public String getDisplay() {
144          switch (this) {
145            case SINGLE: return "Single";
146            case MULTIPLE: return "Multiple";
147            case NULL: return null;
148            default: return "?";
149          }
150        }
151    }
152
153  public static class ActionCardinalityBehaviorEnumFactory implements EnumFactory<ActionCardinalityBehavior> {
154    public ActionCardinalityBehavior fromCode(String codeString) throws IllegalArgumentException {
155      if (codeString == null || "".equals(codeString))
156            if (codeString == null || "".equals(codeString))
157                return null;
158        if ("single".equals(codeString))
159          return ActionCardinalityBehavior.SINGLE;
160        if ("multiple".equals(codeString))
161          return ActionCardinalityBehavior.MULTIPLE;
162        throw new IllegalArgumentException("Unknown ActionCardinalityBehavior code '"+codeString+"'");
163        }
164
165        public Enumeration<ActionCardinalityBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
166          if (code == null)
167            return null;
168          if (code.isEmpty())
169            return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.NULL, code);
170          String codeString = ((PrimitiveType) code).asStringValue();
171          if (codeString == null || "".equals(codeString))
172            return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.NULL, code);
173        if ("single".equals(codeString))
174          return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.SINGLE, code);
175        if ("multiple".equals(codeString))
176          return new Enumeration<ActionCardinalityBehavior>(this, ActionCardinalityBehavior.MULTIPLE, code);
177        throw new FHIRException("Unknown ActionCardinalityBehavior code '"+codeString+"'");
178        }
179    public String toCode(ActionCardinalityBehavior code) {
180       if (code == ActionCardinalityBehavior.NULL)
181           return null;
182       if (code == ActionCardinalityBehavior.SINGLE)
183        return "single";
184      if (code == ActionCardinalityBehavior.MULTIPLE)
185        return "multiple";
186      return "?";
187   }
188    public String toSystem(ActionCardinalityBehavior code) {
189      return code.getSystem();
190      }
191    }
192
193    public enum ActionConditionKind {
194        /**
195         * The condition describes whether or not a given action is applicable.
196         */
197        APPLICABILITY, 
198        /**
199         * The condition is a starting condition for the action.
200         */
201        START, 
202        /**
203         * The condition is a stop, or exit condition for the action.
204         */
205        STOP, 
206        /**
207         * added to help the parsers
208         */
209        NULL;
210        public static ActionConditionKind fromCode(String codeString) throws FHIRException {
211            if (codeString == null || "".equals(codeString))
212                return null;
213        if ("applicability".equals(codeString))
214          return APPLICABILITY;
215        if ("start".equals(codeString))
216          return START;
217        if ("stop".equals(codeString))
218          return STOP;
219        throw new FHIRException("Unknown ActionConditionKind code '"+codeString+"'");
220        }
221        public static boolean isValidCode(String codeString) {
222            if (codeString == null || "".equals(codeString))
223                return false;
224          return Utilities.existsInList(codeString, "applicability", "start", "stop");
225        }
226        public String toCode() {
227          switch (this) {
228            case APPLICABILITY: return "applicability";
229            case START: return "start";
230            case STOP: return "stop";
231            case NULL: return null;
232            default: return "?";
233          }
234        }
235        public String getSystem() {
236          switch (this) {
237            case APPLICABILITY: return "http://hl7.org/fhir/action-condition-kind";
238            case START: return "http://hl7.org/fhir/action-condition-kind";
239            case STOP: return "http://hl7.org/fhir/action-condition-kind";
240            case NULL: return null;
241            default: return "?";
242          }
243        }
244        public String getDefinition() {
245          switch (this) {
246            case APPLICABILITY: return "The condition describes whether or not a given action is applicable.";
247            case START: return "The condition is a starting condition for the action.";
248            case STOP: return "The condition is a stop, or exit condition for the action.";
249            case NULL: return null;
250            default: return "?";
251          }
252        }
253        public String getDisplay() {
254          switch (this) {
255            case APPLICABILITY: return "Applicability";
256            case START: return "Start";
257            case STOP: return "Stop";
258            case NULL: return null;
259            default: return "?";
260          }
261        }
262    }
263
264  public static class ActionConditionKindEnumFactory implements EnumFactory<ActionConditionKind> {
265    public ActionConditionKind fromCode(String codeString) throws IllegalArgumentException {
266      if (codeString == null || "".equals(codeString))
267            if (codeString == null || "".equals(codeString))
268                return null;
269        if ("applicability".equals(codeString))
270          return ActionConditionKind.APPLICABILITY;
271        if ("start".equals(codeString))
272          return ActionConditionKind.START;
273        if ("stop".equals(codeString))
274          return ActionConditionKind.STOP;
275        throw new IllegalArgumentException("Unknown ActionConditionKind code '"+codeString+"'");
276        }
277
278        public Enumeration<ActionConditionKind> fromType(PrimitiveType<?> code) throws FHIRException {
279          if (code == null)
280            return null;
281          if (code.isEmpty())
282            return new Enumeration<ActionConditionKind>(this, ActionConditionKind.NULL, code);
283          String codeString = ((PrimitiveType) code).asStringValue();
284          if (codeString == null || "".equals(codeString))
285            return new Enumeration<ActionConditionKind>(this, ActionConditionKind.NULL, code);
286        if ("applicability".equals(codeString))
287          return new Enumeration<ActionConditionKind>(this, ActionConditionKind.APPLICABILITY, code);
288        if ("start".equals(codeString))
289          return new Enumeration<ActionConditionKind>(this, ActionConditionKind.START, code);
290        if ("stop".equals(codeString))
291          return new Enumeration<ActionConditionKind>(this, ActionConditionKind.STOP, code);
292        throw new FHIRException("Unknown ActionConditionKind code '"+codeString+"'");
293        }
294    public String toCode(ActionConditionKind code) {
295       if (code == ActionConditionKind.NULL)
296           return null;
297       if (code == ActionConditionKind.APPLICABILITY)
298        return "applicability";
299      if (code == ActionConditionKind.START)
300        return "start";
301      if (code == ActionConditionKind.STOP)
302        return "stop";
303      return "?";
304   }
305    public String toSystem(ActionConditionKind code) {
306      return code.getSystem();
307      }
308    }
309
310    public enum ActionGroupingBehavior {
311        /**
312         * Any group marked with this behavior should be displayed as a visual group to the end user.
313         */
314        VISUALGROUP, 
315        /**
316         * 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.
317         */
318        LOGICALGROUP, 
319        /**
320         * 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".
321         */
322        SENTENCEGROUP, 
323        /**
324         * added to help the parsers
325         */
326        NULL;
327        public static ActionGroupingBehavior fromCode(String codeString) throws FHIRException {
328            if (codeString == null || "".equals(codeString))
329                return null;
330        if ("visual-group".equals(codeString))
331          return VISUALGROUP;
332        if ("logical-group".equals(codeString))
333          return LOGICALGROUP;
334        if ("sentence-group".equals(codeString))
335          return SENTENCEGROUP;
336        throw new FHIRException("Unknown ActionGroupingBehavior code '"+codeString+"'");
337        }
338        public static boolean isValidCode(String codeString) {
339            if (codeString == null || "".equals(codeString))
340                return false;
341          return Utilities.existsInList(codeString, "visual-group", "logical-group", "sentence-group");
342        }
343        public String toCode() {
344          switch (this) {
345            case VISUALGROUP: return "visual-group";
346            case LOGICALGROUP: return "logical-group";
347            case SENTENCEGROUP: return "sentence-group";
348            case NULL: return null;
349            default: return "?";
350          }
351        }
352        public String getSystem() {
353          switch (this) {
354            case VISUALGROUP: return "http://hl7.org/fhir/action-grouping-behavior";
355            case LOGICALGROUP: return "http://hl7.org/fhir/action-grouping-behavior";
356            case SENTENCEGROUP: return "http://hl7.org/fhir/action-grouping-behavior";
357            case NULL: return null;
358            default: return "?";
359          }
360        }
361        public String getDefinition() {
362          switch (this) {
363            case VISUALGROUP: return "Any group marked with this behavior should be displayed as a visual group to the end user.";
364            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.";
365            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\".";
366            case NULL: return null;
367            default: return "?";
368          }
369        }
370        public String getDisplay() {
371          switch (this) {
372            case VISUALGROUP: return "Visual Group";
373            case LOGICALGROUP: return "Logical Group";
374            case SENTENCEGROUP: return "Sentence Group";
375            case NULL: return null;
376            default: return "?";
377          }
378        }
379    }
380
381  public static class ActionGroupingBehaviorEnumFactory implements EnumFactory<ActionGroupingBehavior> {
382    public ActionGroupingBehavior fromCode(String codeString) throws IllegalArgumentException {
383      if (codeString == null || "".equals(codeString))
384            if (codeString == null || "".equals(codeString))
385                return null;
386        if ("visual-group".equals(codeString))
387          return ActionGroupingBehavior.VISUALGROUP;
388        if ("logical-group".equals(codeString))
389          return ActionGroupingBehavior.LOGICALGROUP;
390        if ("sentence-group".equals(codeString))
391          return ActionGroupingBehavior.SENTENCEGROUP;
392        throw new IllegalArgumentException("Unknown ActionGroupingBehavior code '"+codeString+"'");
393        }
394
395        public Enumeration<ActionGroupingBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
396          if (code == null)
397            return null;
398          if (code.isEmpty())
399            return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.NULL, code);
400          String codeString = ((PrimitiveType) code).asStringValue();
401          if (codeString == null || "".equals(codeString))
402            return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.NULL, code);
403        if ("visual-group".equals(codeString))
404          return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.VISUALGROUP, code);
405        if ("logical-group".equals(codeString))
406          return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.LOGICALGROUP, code);
407        if ("sentence-group".equals(codeString))
408          return new Enumeration<ActionGroupingBehavior>(this, ActionGroupingBehavior.SENTENCEGROUP, code);
409        throw new FHIRException("Unknown ActionGroupingBehavior code '"+codeString+"'");
410        }
411    public String toCode(ActionGroupingBehavior code) {
412       if (code == ActionGroupingBehavior.NULL)
413           return null;
414       if (code == ActionGroupingBehavior.VISUALGROUP)
415        return "visual-group";
416      if (code == ActionGroupingBehavior.LOGICALGROUP)
417        return "logical-group";
418      if (code == ActionGroupingBehavior.SENTENCEGROUP)
419        return "sentence-group";
420      return "?";
421   }
422    public String toSystem(ActionGroupingBehavior code) {
423      return code.getSystem();
424      }
425    }
426
427    public enum ActionParticipantType {
428        /**
429         * The participant is a care team caring for the patient under evaluation.
430         */
431        CARETEAM, 
432        /**
433         * The participant is a system or device used in the care of the patient.
434         */
435        DEVICE, 
436        /**
437         * The participant is a group of participants involved in the care of the patient.
438         */
439        GROUP, 
440        /**
441         * The participant is an institution that can provide the given healthcare service used in the care of the patient.
442         */
443        HEALTHCARESERVICE, 
444        /**
445         * The participant is a location involved in the care of the patient.
446         */
447        LOCATION, 
448        /**
449         * The participant is an organization involved in the care of the patient.
450         */
451        ORGANIZATION, 
452        /**
453         * The participant is the patient under evaluation.
454         */
455        PATIENT, 
456        /**
457         * The participant is a practitioner involved in the patient's care.
458         */
459        PRACTITIONER, 
460        /**
461         * The participant is a particular practitioner role involved in the patient's care.
462         */
463        PRACTITIONERROLE, 
464        /**
465         * The participant is a person related to the patient.
466         */
467        RELATEDPERSON, 
468        /**
469         * added to help the parsers
470         */
471        NULL;
472        public static ActionParticipantType fromCode(String codeString) throws FHIRException {
473            if (codeString == null || "".equals(codeString))
474                return null;
475        if ("careteam".equals(codeString))
476          return CARETEAM;
477        if ("device".equals(codeString))
478          return DEVICE;
479        if ("group".equals(codeString))
480          return GROUP;
481        if ("healthcareservice".equals(codeString))
482          return HEALTHCARESERVICE;
483        if ("location".equals(codeString))
484          return LOCATION;
485        if ("organization".equals(codeString))
486          return ORGANIZATION;
487        if ("patient".equals(codeString))
488          return PATIENT;
489        if ("practitioner".equals(codeString))
490          return PRACTITIONER;
491        if ("practitionerrole".equals(codeString))
492          return PRACTITIONERROLE;
493        if ("relatedperson".equals(codeString))
494          return RELATEDPERSON;
495        throw new FHIRException("Unknown ActionParticipantType code '"+codeString+"'");
496        }
497        public static boolean isValidCode(String codeString) {
498            if (codeString == null || "".equals(codeString))
499                return false;
500          return Utilities.existsInList(codeString, "careteam", "device", "group", "healthcareservice", "location", "organization", "patient", "practitioner", "practitionerrole", "relatedperson");
501        }
502        public String toCode() {
503          switch (this) {
504            case CARETEAM: return "careteam";
505            case DEVICE: return "device";
506            case GROUP: return "group";
507            case HEALTHCARESERVICE: return "healthcareservice";
508            case LOCATION: return "location";
509            case ORGANIZATION: return "organization";
510            case PATIENT: return "patient";
511            case PRACTITIONER: return "practitioner";
512            case PRACTITIONERROLE: return "practitionerrole";
513            case RELATEDPERSON: return "relatedperson";
514            case NULL: return null;
515            default: return "?";
516          }
517        }
518        public String getSystem() {
519          switch (this) {
520            case CARETEAM: return "http://hl7.org/fhir/action-participant-type";
521            case DEVICE: return "http://hl7.org/fhir/action-participant-type";
522            case GROUP: return "http://hl7.org/fhir/action-participant-type";
523            case HEALTHCARESERVICE: return "http://hl7.org/fhir/action-participant-type";
524            case LOCATION: return "http://hl7.org/fhir/action-participant-type";
525            case ORGANIZATION: return "http://hl7.org/fhir/action-participant-type";
526            case PATIENT: return "http://hl7.org/fhir/action-participant-type";
527            case PRACTITIONER: return "http://hl7.org/fhir/action-participant-type";
528            case PRACTITIONERROLE: return "http://hl7.org/fhir/action-participant-type";
529            case RELATEDPERSON: return "http://hl7.org/fhir/action-participant-type";
530            case NULL: return null;
531            default: return "?";
532          }
533        }
534        public String getDefinition() {
535          switch (this) {
536            case CARETEAM: return "The participant is a care team caring for the patient under evaluation.";
537            case DEVICE: return "The participant is a system or device used in the care of the patient.";
538            case GROUP: return "The participant is a group of participants involved in the care of the patient.";
539            case HEALTHCARESERVICE: return "The participant is an institution that can provide the given healthcare service used in the care of the patient.";
540            case LOCATION: return "The participant is a location involved in the care of the patient.";
541            case ORGANIZATION: return "The participant is an organization involved in the care of the patient.";
542            case PATIENT: return "The participant is the patient under evaluation.";
543            case PRACTITIONER: return "The participant is a practitioner involved in the patient's care.";
544            case PRACTITIONERROLE: return "The participant is a particular practitioner role involved in the patient's care.";
545            case RELATEDPERSON: return "The participant is a person related to the patient.";
546            case NULL: return null;
547            default: return "?";
548          }
549        }
550        public String getDisplay() {
551          switch (this) {
552            case CARETEAM: return "CareTeam";
553            case DEVICE: return "Device";
554            case GROUP: return "Group";
555            case HEALTHCARESERVICE: return "HealthcareService";
556            case LOCATION: return "Location";
557            case ORGANIZATION: return "Organization";
558            case PATIENT: return "Patient";
559            case PRACTITIONER: return "Practitioner";
560            case PRACTITIONERROLE: return "PractitionerRole";
561            case RELATEDPERSON: return "RelatedPerson";
562            case NULL: return null;
563            default: return "?";
564          }
565        }
566    }
567
568  public static class ActionParticipantTypeEnumFactory implements EnumFactory<ActionParticipantType> {
569    public ActionParticipantType fromCode(String codeString) throws IllegalArgumentException {
570      if (codeString == null || "".equals(codeString))
571            if (codeString == null || "".equals(codeString))
572                return null;
573        if ("careteam".equals(codeString))
574          return ActionParticipantType.CARETEAM;
575        if ("device".equals(codeString))
576          return ActionParticipantType.DEVICE;
577        if ("group".equals(codeString))
578          return ActionParticipantType.GROUP;
579        if ("healthcareservice".equals(codeString))
580          return ActionParticipantType.HEALTHCARESERVICE;
581        if ("location".equals(codeString))
582          return ActionParticipantType.LOCATION;
583        if ("organization".equals(codeString))
584          return ActionParticipantType.ORGANIZATION;
585        if ("patient".equals(codeString))
586          return ActionParticipantType.PATIENT;
587        if ("practitioner".equals(codeString))
588          return ActionParticipantType.PRACTITIONER;
589        if ("practitionerrole".equals(codeString))
590          return ActionParticipantType.PRACTITIONERROLE;
591        if ("relatedperson".equals(codeString))
592          return ActionParticipantType.RELATEDPERSON;
593        throw new IllegalArgumentException("Unknown ActionParticipantType code '"+codeString+"'");
594        }
595
596        public Enumeration<ActionParticipantType> fromType(PrimitiveType<?> code) throws FHIRException {
597          if (code == null)
598            return null;
599          if (code.isEmpty())
600            return new Enumeration<ActionParticipantType>(this, ActionParticipantType.NULL, code);
601          String codeString = ((PrimitiveType) code).asStringValue();
602          if (codeString == null || "".equals(codeString))
603            return new Enumeration<ActionParticipantType>(this, ActionParticipantType.NULL, code);
604        if ("careteam".equals(codeString))
605          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.CARETEAM, code);
606        if ("device".equals(codeString))
607          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.DEVICE, code);
608        if ("group".equals(codeString))
609          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.GROUP, code);
610        if ("healthcareservice".equals(codeString))
611          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.HEALTHCARESERVICE, code);
612        if ("location".equals(codeString))
613          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.LOCATION, code);
614        if ("organization".equals(codeString))
615          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.ORGANIZATION, code);
616        if ("patient".equals(codeString))
617          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.PATIENT, code);
618        if ("practitioner".equals(codeString))
619          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.PRACTITIONER, code);
620        if ("practitionerrole".equals(codeString))
621          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.PRACTITIONERROLE, code);
622        if ("relatedperson".equals(codeString))
623          return new Enumeration<ActionParticipantType>(this, ActionParticipantType.RELATEDPERSON, code);
624        throw new FHIRException("Unknown ActionParticipantType code '"+codeString+"'");
625        }
626    public String toCode(ActionParticipantType code) {
627       if (code == ActionParticipantType.NULL)
628           return null;
629       if (code == ActionParticipantType.CARETEAM)
630        return "careteam";
631      if (code == ActionParticipantType.DEVICE)
632        return "device";
633      if (code == ActionParticipantType.GROUP)
634        return "group";
635      if (code == ActionParticipantType.HEALTHCARESERVICE)
636        return "healthcareservice";
637      if (code == ActionParticipantType.LOCATION)
638        return "location";
639      if (code == ActionParticipantType.ORGANIZATION)
640        return "organization";
641      if (code == ActionParticipantType.PATIENT)
642        return "patient";
643      if (code == ActionParticipantType.PRACTITIONER)
644        return "practitioner";
645      if (code == ActionParticipantType.PRACTITIONERROLE)
646        return "practitionerrole";
647      if (code == ActionParticipantType.RELATEDPERSON)
648        return "relatedperson";
649      return "?";
650   }
651    public String toSystem(ActionParticipantType code) {
652      return code.getSystem();
653      }
654    }
655
656    public enum ActionPrecheckBehavior {
657        /**
658         * 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.
659         */
660        YES, 
661        /**
662         * 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         */
664        NO, 
665        /**
666         * added to help the parsers
667         */
668        NULL;
669        public static ActionPrecheckBehavior fromCode(String codeString) throws FHIRException {
670            if (codeString == null || "".equals(codeString))
671                return null;
672        if ("yes".equals(codeString))
673          return YES;
674        if ("no".equals(codeString))
675          return NO;
676        throw new FHIRException("Unknown ActionPrecheckBehavior code '"+codeString+"'");
677        }
678        public static boolean isValidCode(String codeString) {
679            if (codeString == null || "".equals(codeString))
680                return false;
681          return Utilities.existsInList(codeString, "yes", "no");
682        }
683        public String toCode() {
684          switch (this) {
685            case YES: return "yes";
686            case NO: return "no";
687            case NULL: return null;
688            default: return "?";
689          }
690        }
691        public String getSystem() {
692          switch (this) {
693            case YES: return "http://hl7.org/fhir/action-precheck-behavior";
694            case NO: return "http://hl7.org/fhir/action-precheck-behavior";
695            case NULL: return null;
696            default: return "?";
697          }
698        }
699        public String getDefinition() {
700          switch (this) {
701            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.";
702            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.";
703            case NULL: return null;
704            default: return "?";
705          }
706        }
707        public String getDisplay() {
708          switch (this) {
709            case YES: return "Yes";
710            case NO: return "No";
711            case NULL: return null;
712            default: return "?";
713          }
714        }
715    }
716
717  public static class ActionPrecheckBehaviorEnumFactory implements EnumFactory<ActionPrecheckBehavior> {
718    public ActionPrecheckBehavior fromCode(String codeString) throws IllegalArgumentException {
719      if (codeString == null || "".equals(codeString))
720            if (codeString == null || "".equals(codeString))
721                return null;
722        if ("yes".equals(codeString))
723          return ActionPrecheckBehavior.YES;
724        if ("no".equals(codeString))
725          return ActionPrecheckBehavior.NO;
726        throw new IllegalArgumentException("Unknown ActionPrecheckBehavior code '"+codeString+"'");
727        }
728
729        public Enumeration<ActionPrecheckBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
730          if (code == null)
731            return null;
732          if (code.isEmpty())
733            return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.NULL, code);
734          String codeString = ((PrimitiveType) code).asStringValue();
735          if (codeString == null || "".equals(codeString))
736            return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.NULL, code);
737        if ("yes".equals(codeString))
738          return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.YES, code);
739        if ("no".equals(codeString))
740          return new Enumeration<ActionPrecheckBehavior>(this, ActionPrecheckBehavior.NO, code);
741        throw new FHIRException("Unknown ActionPrecheckBehavior code '"+codeString+"'");
742        }
743    public String toCode(ActionPrecheckBehavior code) {
744       if (code == ActionPrecheckBehavior.NULL)
745           return null;
746       if (code == ActionPrecheckBehavior.YES)
747        return "yes";
748      if (code == ActionPrecheckBehavior.NO)
749        return "no";
750      return "?";
751   }
752    public String toSystem(ActionPrecheckBehavior code) {
753      return code.getSystem();
754      }
755    }
756
757    public enum ActionRelationshipType {
758        /**
759         * The action must be performed before the related action.
760         */
761        BEFORE, 
762        /**
763         * The action must be performed before the start of the related action.
764         */
765        BEFORESTART, 
766        /**
767         * The action must be performed before the end of the related action.
768         */
769        BEFOREEND, 
770        /**
771         * The action must be performed concurrent with the related action.
772         */
773        CONCURRENT, 
774        /**
775         * The action must be performed concurrent with the start of the related action.
776         */
777        CONCURRENTWITHSTART, 
778        /**
779         * The action must be performed concurrent with the end of the related action.
780         */
781        CONCURRENTWITHEND, 
782        /**
783         * The action must be performed after the related action.
784         */
785        AFTER, 
786        /**
787         * The action must be performed after the start of the related action.
788         */
789        AFTERSTART, 
790        /**
791         * The action must be performed after the end of the related action.
792         */
793        AFTEREND, 
794        /**
795         * added to help the parsers
796         */
797        NULL;
798        public static ActionRelationshipType fromCode(String codeString) throws FHIRException {
799            if (codeString == null || "".equals(codeString))
800                return null;
801        if ("before".equals(codeString))
802          return BEFORE;
803        if ("before-start".equals(codeString))
804          return BEFORESTART;
805        if ("before-end".equals(codeString))
806          return BEFOREEND;
807        if ("concurrent".equals(codeString))
808          return CONCURRENT;
809        if ("concurrent-with-start".equals(codeString))
810          return CONCURRENTWITHSTART;
811        if ("concurrent-with-end".equals(codeString))
812          return CONCURRENTWITHEND;
813        if ("after".equals(codeString))
814          return AFTER;
815        if ("after-start".equals(codeString))
816          return AFTERSTART;
817        if ("after-end".equals(codeString))
818          return AFTEREND;
819        throw new FHIRException("Unknown ActionRelationshipType code '"+codeString+"'");
820        }
821        public static boolean isValidCode(String codeString) {
822            if (codeString == null || "".equals(codeString))
823                return false;
824          return Utilities.existsInList(codeString, "before", "before-start", "before-end", "concurrent", "concurrent-with-start", "concurrent-with-end", "after", "after-start", "after-end");
825        }
826        public String toCode() {
827          switch (this) {
828            case BEFORE: return "before";
829            case BEFORESTART: return "before-start";
830            case BEFOREEND: return "before-end";
831            case CONCURRENT: return "concurrent";
832            case CONCURRENTWITHSTART: return "concurrent-with-start";
833            case CONCURRENTWITHEND: return "concurrent-with-end";
834            case AFTER: return "after";
835            case AFTERSTART: return "after-start";
836            case AFTEREND: return "after-end";
837            case NULL: return null;
838            default: return "?";
839          }
840        }
841        public String getSystem() {
842          switch (this) {
843            case BEFORE: return "http://hl7.org/fhir/action-relationship-type";
844            case BEFORESTART: return "http://hl7.org/fhir/action-relationship-type";
845            case BEFOREEND: return "http://hl7.org/fhir/action-relationship-type";
846            case CONCURRENT: return "http://hl7.org/fhir/action-relationship-type";
847            case CONCURRENTWITHSTART: return "http://hl7.org/fhir/action-relationship-type";
848            case CONCURRENTWITHEND: return "http://hl7.org/fhir/action-relationship-type";
849            case AFTER: return "http://hl7.org/fhir/action-relationship-type";
850            case AFTERSTART: return "http://hl7.org/fhir/action-relationship-type";
851            case AFTEREND: return "http://hl7.org/fhir/action-relationship-type";
852            case NULL: return null;
853            default: return "?";
854          }
855        }
856        public String getDefinition() {
857          switch (this) {
858            case BEFORE: return "The action must be performed before the related action.";
859            case BEFORESTART: return "The action must be performed before the start of the related action.";
860            case BEFOREEND: return "The action must be performed before the end of the related action.";
861            case CONCURRENT: return "The action must be performed concurrent with the related action.";
862            case CONCURRENTWITHSTART: return "The action must be performed concurrent with the start of the related action.";
863            case CONCURRENTWITHEND: return "The action must be performed concurrent with the end of the related action.";
864            case AFTER: return "The action must be performed after the related action.";
865            case AFTERSTART: return "The action must be performed after the start of the related action.";
866            case AFTEREND: return "The action must be performed after the end of the related action.";
867            case NULL: return null;
868            default: return "?";
869          }
870        }
871        public String getDisplay() {
872          switch (this) {
873            case BEFORE: return "Before";
874            case BEFORESTART: return "Before Start";
875            case BEFOREEND: return "Before End";
876            case CONCURRENT: return "Concurrent";
877            case CONCURRENTWITHSTART: return "Concurrent With Start";
878            case CONCURRENTWITHEND: return "Concurrent With End";
879            case AFTER: return "After";
880            case AFTERSTART: return "After Start";
881            case AFTEREND: return "After End";
882            case NULL: return null;
883            default: return "?";
884          }
885        }
886    }
887
888  public static class ActionRelationshipTypeEnumFactory implements EnumFactory<ActionRelationshipType> {
889    public ActionRelationshipType fromCode(String codeString) throws IllegalArgumentException {
890      if (codeString == null || "".equals(codeString))
891            if (codeString == null || "".equals(codeString))
892                return null;
893        if ("before".equals(codeString))
894          return ActionRelationshipType.BEFORE;
895        if ("before-start".equals(codeString))
896          return ActionRelationshipType.BEFORESTART;
897        if ("before-end".equals(codeString))
898          return ActionRelationshipType.BEFOREEND;
899        if ("concurrent".equals(codeString))
900          return ActionRelationshipType.CONCURRENT;
901        if ("concurrent-with-start".equals(codeString))
902          return ActionRelationshipType.CONCURRENTWITHSTART;
903        if ("concurrent-with-end".equals(codeString))
904          return ActionRelationshipType.CONCURRENTWITHEND;
905        if ("after".equals(codeString))
906          return ActionRelationshipType.AFTER;
907        if ("after-start".equals(codeString))
908          return ActionRelationshipType.AFTERSTART;
909        if ("after-end".equals(codeString))
910          return ActionRelationshipType.AFTEREND;
911        throw new IllegalArgumentException("Unknown ActionRelationshipType code '"+codeString+"'");
912        }
913
914        public Enumeration<ActionRelationshipType> fromType(PrimitiveType<?> code) throws FHIRException {
915          if (code == null)
916            return null;
917          if (code.isEmpty())
918            return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.NULL, code);
919          String codeString = ((PrimitiveType) code).asStringValue();
920          if (codeString == null || "".equals(codeString))
921            return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.NULL, code);
922        if ("before".equals(codeString))
923          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.BEFORE, code);
924        if ("before-start".equals(codeString))
925          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.BEFORESTART, code);
926        if ("before-end".equals(codeString))
927          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.BEFOREEND, code);
928        if ("concurrent".equals(codeString))
929          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.CONCURRENT, code);
930        if ("concurrent-with-start".equals(codeString))
931          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.CONCURRENTWITHSTART, code);
932        if ("concurrent-with-end".equals(codeString))
933          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.CONCURRENTWITHEND, code);
934        if ("after".equals(codeString))
935          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.AFTER, code);
936        if ("after-start".equals(codeString))
937          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.AFTERSTART, code);
938        if ("after-end".equals(codeString))
939          return new Enumeration<ActionRelationshipType>(this, ActionRelationshipType.AFTEREND, code);
940        throw new FHIRException("Unknown ActionRelationshipType code '"+codeString+"'");
941        }
942    public String toCode(ActionRelationshipType code) {
943       if (code == ActionRelationshipType.NULL)
944           return null;
945       if (code == ActionRelationshipType.BEFORE)
946        return "before";
947      if (code == ActionRelationshipType.BEFORESTART)
948        return "before-start";
949      if (code == ActionRelationshipType.BEFOREEND)
950        return "before-end";
951      if (code == ActionRelationshipType.CONCURRENT)
952        return "concurrent";
953      if (code == ActionRelationshipType.CONCURRENTWITHSTART)
954        return "concurrent-with-start";
955      if (code == ActionRelationshipType.CONCURRENTWITHEND)
956        return "concurrent-with-end";
957      if (code == ActionRelationshipType.AFTER)
958        return "after";
959      if (code == ActionRelationshipType.AFTERSTART)
960        return "after-start";
961      if (code == ActionRelationshipType.AFTEREND)
962        return "after-end";
963      return "?";
964   }
965    public String toSystem(ActionRelationshipType code) {
966      return code.getSystem();
967      }
968    }
969
970    public enum ActionRequiredBehavior {
971        /**
972         * 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.
973         */
974        MUST, 
975        /**
976         * An action with this behavior may be included in the set of actions processed by the end user.
977         */
978        COULD, 
979        /**
980         * 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.
981         */
982        MUSTUNLESSDOCUMENTED, 
983        /**
984         * added to help the parsers
985         */
986        NULL;
987        public static ActionRequiredBehavior fromCode(String codeString) throws FHIRException {
988            if (codeString == null || "".equals(codeString))
989                return null;
990        if ("must".equals(codeString))
991          return MUST;
992        if ("could".equals(codeString))
993          return COULD;
994        if ("must-unless-documented".equals(codeString))
995          return MUSTUNLESSDOCUMENTED;
996        throw new FHIRException("Unknown ActionRequiredBehavior code '"+codeString+"'");
997        }
998        public static boolean isValidCode(String codeString) {
999            if (codeString == null || "".equals(codeString))
1000                return false;
1001          return Utilities.existsInList(codeString, "must", "could", "must-unless-documented");
1002        }
1003        public String toCode() {
1004          switch (this) {
1005            case MUST: return "must";
1006            case COULD: return "could";
1007            case MUSTUNLESSDOCUMENTED: return "must-unless-documented";
1008            case NULL: return null;
1009            default: return "?";
1010          }
1011        }
1012        public String getSystem() {
1013          switch (this) {
1014            case MUST: return "http://hl7.org/fhir/action-required-behavior";
1015            case COULD: return "http://hl7.org/fhir/action-required-behavior";
1016            case MUSTUNLESSDOCUMENTED: return "http://hl7.org/fhir/action-required-behavior";
1017            case NULL: return null;
1018            default: return "?";
1019          }
1020        }
1021        public String getDefinition() {
1022          switch (this) {
1023            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.";
1024            case COULD: return "An action with this behavior may be included in the set of actions processed by the end user.";
1025            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.";
1026            case NULL: return null;
1027            default: return "?";
1028          }
1029        }
1030        public String getDisplay() {
1031          switch (this) {
1032            case MUST: return "Must";
1033            case COULD: return "Could";
1034            case MUSTUNLESSDOCUMENTED: return "Must Unless Documented";
1035            case NULL: return null;
1036            default: return "?";
1037          }
1038        }
1039    }
1040
1041  public static class ActionRequiredBehaviorEnumFactory implements EnumFactory<ActionRequiredBehavior> {
1042    public ActionRequiredBehavior fromCode(String codeString) throws IllegalArgumentException {
1043      if (codeString == null || "".equals(codeString))
1044            if (codeString == null || "".equals(codeString))
1045                return null;
1046        if ("must".equals(codeString))
1047          return ActionRequiredBehavior.MUST;
1048        if ("could".equals(codeString))
1049          return ActionRequiredBehavior.COULD;
1050        if ("must-unless-documented".equals(codeString))
1051          return ActionRequiredBehavior.MUSTUNLESSDOCUMENTED;
1052        throw new IllegalArgumentException("Unknown ActionRequiredBehavior code '"+codeString+"'");
1053        }
1054
1055        public Enumeration<ActionRequiredBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
1056          if (code == null)
1057            return null;
1058          if (code.isEmpty())
1059            return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.NULL, code);
1060          String codeString = ((PrimitiveType) code).asStringValue();
1061          if (codeString == null || "".equals(codeString))
1062            return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.NULL, code);
1063        if ("must".equals(codeString))
1064          return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.MUST, code);
1065        if ("could".equals(codeString))
1066          return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.COULD, code);
1067        if ("must-unless-documented".equals(codeString))
1068          return new Enumeration<ActionRequiredBehavior>(this, ActionRequiredBehavior.MUSTUNLESSDOCUMENTED, code);
1069        throw new FHIRException("Unknown ActionRequiredBehavior code '"+codeString+"'");
1070        }
1071    public String toCode(ActionRequiredBehavior code) {
1072       if (code == ActionRequiredBehavior.NULL)
1073           return null;
1074       if (code == ActionRequiredBehavior.MUST)
1075        return "must";
1076      if (code == ActionRequiredBehavior.COULD)
1077        return "could";
1078      if (code == ActionRequiredBehavior.MUSTUNLESSDOCUMENTED)
1079        return "must-unless-documented";
1080      return "?";
1081   }
1082    public String toSystem(ActionRequiredBehavior code) {
1083      return code.getSystem();
1084      }
1085    }
1086
1087    public enum ActionSelectionBehavior {
1088        /**
1089         * Any number of the actions in the group may be chosen, from zero to all.
1090         */
1091        ANY, 
1092        /**
1093         * All the actions in the group must be selected as a single unit.
1094         */
1095        ALL, 
1096        /**
1097         * 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.
1098         */
1099        ALLORNONE, 
1100        /**
1101         * 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.
1102         */
1103        EXACTLYONE, 
1104        /**
1105         * The end user may choose zero or at most one of the actions in the group.
1106         */
1107        ATMOSTONE, 
1108        /**
1109         * The end user must choose a minimum of one, and as many additional as desired.
1110         */
1111        ONEORMORE, 
1112        /**
1113         * added to help the parsers
1114         */
1115        NULL;
1116        public static ActionSelectionBehavior fromCode(String codeString) throws FHIRException {
1117            if (codeString == null || "".equals(codeString))
1118                return null;
1119        if ("any".equals(codeString))
1120          return ANY;
1121        if ("all".equals(codeString))
1122          return ALL;
1123        if ("all-or-none".equals(codeString))
1124          return ALLORNONE;
1125        if ("exactly-one".equals(codeString))
1126          return EXACTLYONE;
1127        if ("at-most-one".equals(codeString))
1128          return ATMOSTONE;
1129        if ("one-or-more".equals(codeString))
1130          return ONEORMORE;
1131        throw new FHIRException("Unknown ActionSelectionBehavior code '"+codeString+"'");
1132        }
1133        public static boolean isValidCode(String codeString) {
1134            if (codeString == null || "".equals(codeString))
1135                return false;
1136          return Utilities.existsInList(codeString, "any", "all", "all-or-none", "exactly-one", "at-most-one", "one-or-more");
1137        }
1138        public String toCode() {
1139          switch (this) {
1140            case ANY: return "any";
1141            case ALL: return "all";
1142            case ALLORNONE: return "all-or-none";
1143            case EXACTLYONE: return "exactly-one";
1144            case ATMOSTONE: return "at-most-one";
1145            case ONEORMORE: return "one-or-more";
1146            case NULL: return null;
1147            default: return "?";
1148          }
1149        }
1150        public String getSystem() {
1151          switch (this) {
1152            case ANY: return "http://hl7.org/fhir/action-selection-behavior";
1153            case ALL: return "http://hl7.org/fhir/action-selection-behavior";
1154            case ALLORNONE: return "http://hl7.org/fhir/action-selection-behavior";
1155            case EXACTLYONE: return "http://hl7.org/fhir/action-selection-behavior";
1156            case ATMOSTONE: return "http://hl7.org/fhir/action-selection-behavior";
1157            case ONEORMORE: return "http://hl7.org/fhir/action-selection-behavior";
1158            case NULL: return null;
1159            default: return "?";
1160          }
1161        }
1162        public String getDefinition() {
1163          switch (this) {
1164            case ANY: return "Any number of the actions in the group may be chosen, from zero to all.";
1165            case ALL: return "All the actions in the group must be selected as a single unit.";
1166            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.";
1167            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.";
1168            case ATMOSTONE: return "The end user may choose zero or at most one of the actions in the group.";
1169            case ONEORMORE: return "The end user must choose a minimum of one, and as many additional as desired.";
1170            case NULL: return null;
1171            default: return "?";
1172          }
1173        }
1174        public String getDisplay() {
1175          switch (this) {
1176            case ANY: return "Any";
1177            case ALL: return "All";
1178            case ALLORNONE: return "All Or None";
1179            case EXACTLYONE: return "Exactly One";
1180            case ATMOSTONE: return "At Most One";
1181            case ONEORMORE: return "One Or More";
1182            case NULL: return null;
1183            default: return "?";
1184          }
1185        }
1186    }
1187
1188  public static class ActionSelectionBehaviorEnumFactory implements EnumFactory<ActionSelectionBehavior> {
1189    public ActionSelectionBehavior fromCode(String codeString) throws IllegalArgumentException {
1190      if (codeString == null || "".equals(codeString))
1191            if (codeString == null || "".equals(codeString))
1192                return null;
1193        if ("any".equals(codeString))
1194          return ActionSelectionBehavior.ANY;
1195        if ("all".equals(codeString))
1196          return ActionSelectionBehavior.ALL;
1197        if ("all-or-none".equals(codeString))
1198          return ActionSelectionBehavior.ALLORNONE;
1199        if ("exactly-one".equals(codeString))
1200          return ActionSelectionBehavior.EXACTLYONE;
1201        if ("at-most-one".equals(codeString))
1202          return ActionSelectionBehavior.ATMOSTONE;
1203        if ("one-or-more".equals(codeString))
1204          return ActionSelectionBehavior.ONEORMORE;
1205        throw new IllegalArgumentException("Unknown ActionSelectionBehavior code '"+codeString+"'");
1206        }
1207
1208        public Enumeration<ActionSelectionBehavior> fromType(PrimitiveType<?> code) throws FHIRException {
1209          if (code == null)
1210            return null;
1211          if (code.isEmpty())
1212            return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.NULL, code);
1213          String codeString = ((PrimitiveType) code).asStringValue();
1214          if (codeString == null || "".equals(codeString))
1215            return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.NULL, code);
1216        if ("any".equals(codeString))
1217          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ANY, code);
1218        if ("all".equals(codeString))
1219          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ALL, code);
1220        if ("all-or-none".equals(codeString))
1221          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ALLORNONE, code);
1222        if ("exactly-one".equals(codeString))
1223          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.EXACTLYONE, code);
1224        if ("at-most-one".equals(codeString))
1225          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ATMOSTONE, code);
1226        if ("one-or-more".equals(codeString))
1227          return new Enumeration<ActionSelectionBehavior>(this, ActionSelectionBehavior.ONEORMORE, code);
1228        throw new FHIRException("Unknown ActionSelectionBehavior code '"+codeString+"'");
1229        }
1230    public String toCode(ActionSelectionBehavior code) {
1231       if (code == ActionSelectionBehavior.NULL)
1232           return null;
1233       if (code == ActionSelectionBehavior.ANY)
1234        return "any";
1235      if (code == ActionSelectionBehavior.ALL)
1236        return "all";
1237      if (code == ActionSelectionBehavior.ALLORNONE)
1238        return "all-or-none";
1239      if (code == ActionSelectionBehavior.EXACTLYONE)
1240        return "exactly-one";
1241      if (code == ActionSelectionBehavior.ATMOSTONE)
1242        return "at-most-one";
1243      if (code == ActionSelectionBehavior.ONEORMORE)
1244        return "one-or-more";
1245      return "?";
1246   }
1247    public String toSystem(ActionSelectionBehavior code) {
1248      return code.getSystem();
1249      }
1250    }
1251
1252    public enum AdministrativeGender {
1253        /**
1254         * Male.
1255         */
1256        MALE, 
1257        /**
1258         * Female.
1259         */
1260        FEMALE, 
1261        /**
1262         * Other.
1263         */
1264        OTHER, 
1265        /**
1266         * Unknown.
1267         */
1268        UNKNOWN, 
1269        /**
1270         * added to help the parsers
1271         */
1272        NULL;
1273        public static AdministrativeGender fromCode(String codeString) throws FHIRException {
1274            if (codeString == null || "".equals(codeString))
1275                return null;
1276        if ("male".equals(codeString))
1277          return MALE;
1278        if ("female".equals(codeString))
1279          return FEMALE;
1280        if ("other".equals(codeString))
1281          return OTHER;
1282        if ("unknown".equals(codeString))
1283          return UNKNOWN;
1284        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
1285        }
1286        public static boolean isValidCode(String codeString) {
1287            if (codeString == null || "".equals(codeString))
1288                return false;
1289          return Utilities.existsInList(codeString, "male", "female", "other", "unknown");
1290        }
1291        public String toCode() {
1292          switch (this) {
1293            case MALE: return "male";
1294            case FEMALE: return "female";
1295            case OTHER: return "other";
1296            case UNKNOWN: return "unknown";
1297            case NULL: return null;
1298            default: return "?";
1299          }
1300        }
1301        public String getSystem() {
1302          switch (this) {
1303            case MALE: return "http://hl7.org/fhir/administrative-gender";
1304            case FEMALE: return "http://hl7.org/fhir/administrative-gender";
1305            case OTHER: return "http://hl7.org/fhir/administrative-gender";
1306            case UNKNOWN: return "http://hl7.org/fhir/administrative-gender";
1307            case NULL: return null;
1308            default: return "?";
1309          }
1310        }
1311        public String getDefinition() {
1312          switch (this) {
1313            case MALE: return "Male.";
1314            case FEMALE: return "Female.";
1315            case OTHER: return "Other.";
1316            case UNKNOWN: return "Unknown.";
1317            case NULL: return null;
1318            default: return "?";
1319          }
1320        }
1321        public String getDisplay() {
1322          switch (this) {
1323            case MALE: return "Male";
1324            case FEMALE: return "Female";
1325            case OTHER: return "Other";
1326            case UNKNOWN: return "Unknown";
1327            case NULL: return null;
1328            default: return "?";
1329          }
1330        }
1331    }
1332
1333  public static class AdministrativeGenderEnumFactory implements EnumFactory<AdministrativeGender> {
1334    public AdministrativeGender fromCode(String codeString) throws IllegalArgumentException {
1335      if (codeString == null || "".equals(codeString))
1336            if (codeString == null || "".equals(codeString))
1337                return null;
1338        if ("male".equals(codeString))
1339          return AdministrativeGender.MALE;
1340        if ("female".equals(codeString))
1341          return AdministrativeGender.FEMALE;
1342        if ("other".equals(codeString))
1343          return AdministrativeGender.OTHER;
1344        if ("unknown".equals(codeString))
1345          return AdministrativeGender.UNKNOWN;
1346        throw new IllegalArgumentException("Unknown AdministrativeGender code '"+codeString+"'");
1347        }
1348
1349        public Enumeration<AdministrativeGender> fromType(PrimitiveType<?> code) throws FHIRException {
1350          if (code == null)
1351            return null;
1352          if (code.isEmpty())
1353            return new Enumeration<AdministrativeGender>(this, AdministrativeGender.NULL, code);
1354          String codeString = ((PrimitiveType) code).asStringValue();
1355          if (codeString == null || "".equals(codeString))
1356            return new Enumeration<AdministrativeGender>(this, AdministrativeGender.NULL, code);
1357        if ("male".equals(codeString))
1358          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.MALE, code);
1359        if ("female".equals(codeString))
1360          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.FEMALE, code);
1361        if ("other".equals(codeString))
1362          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.OTHER, code);
1363        if ("unknown".equals(codeString))
1364          return new Enumeration<AdministrativeGender>(this, AdministrativeGender.UNKNOWN, code);
1365        throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
1366        }
1367    public String toCode(AdministrativeGender code) {
1368       if (code == AdministrativeGender.NULL)
1369           return null;
1370       if (code == AdministrativeGender.MALE)
1371        return "male";
1372      if (code == AdministrativeGender.FEMALE)
1373        return "female";
1374      if (code == AdministrativeGender.OTHER)
1375        return "other";
1376      if (code == AdministrativeGender.UNKNOWN)
1377        return "unknown";
1378      return "?";
1379   }
1380    public String toSystem(AdministrativeGender code) {
1381      return code.getSystem();
1382      }
1383    }
1384
1385    public enum AllLanguages {
1386        /**
1387         * added to help the parsers
1388         */
1389        NULL;
1390        public static AllLanguages fromCode(String codeString) throws FHIRException {
1391            if (codeString == null || "".equals(codeString))
1392                return null;
1393        throw new FHIRException("Unknown AllLanguages code '"+codeString+"'");
1394        }
1395        public static boolean isValidCode(String codeString) {
1396            if (codeString == null || "".equals(codeString))
1397                return false;
1398          return Utilities.existsInList(codeString);
1399        }
1400        public String toCode() {
1401          switch (this) {
1402            case NULL: return null;
1403            default: return "?";
1404          }
1405        }
1406        public String getSystem() {
1407          switch (this) {
1408            case NULL: return null;
1409            default: return "?";
1410          }
1411        }
1412        public String getDefinition() {
1413          switch (this) {
1414            case NULL: return null;
1415            default: return "?";
1416          }
1417        }
1418        public String getDisplay() {
1419          switch (this) {
1420            case NULL: return null;
1421            default: return "?";
1422          }
1423        }
1424    }
1425
1426  public static class AllLanguagesEnumFactory implements EnumFactory<AllLanguages> {
1427    public AllLanguages fromCode(String codeString) throws IllegalArgumentException {
1428      if (codeString == null || "".equals(codeString))
1429            if (codeString == null || "".equals(codeString))
1430                return null;
1431        throw new IllegalArgumentException("Unknown AllLanguages code '"+codeString+"'");
1432        }
1433
1434        public Enumeration<AllLanguages> fromType(PrimitiveType<?> code) throws FHIRException {
1435          if (code == null)
1436            return null;
1437          if (code.isEmpty())
1438            return new Enumeration<AllLanguages>(this, AllLanguages.NULL, code);
1439          String codeString = ((PrimitiveType) code).asStringValue();
1440          if (codeString == null || "".equals(codeString))
1441            return new Enumeration<AllLanguages>(this, AllLanguages.NULL, code);
1442        throw new FHIRException("Unknown AllLanguages code '"+codeString+"'");
1443        }
1444    public String toCode(AllLanguages code) {
1445       if (code == AllLanguages.NULL)
1446           return null;
1447       return "?";
1448   }
1449    public String toSystem(AllLanguages code) {
1450      return code.getSystem();
1451      }
1452    }
1453
1454    public enum BindingStrength {
1455        /**
1456         * To be conformant, the concept in this element SHALL be from the specified value set.
1457         */
1458        REQUIRED, 
1459        /**
1460         * 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.
1461         */
1462        EXTENSIBLE, 
1463        /**
1464         * Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.
1465         */
1466        PREFERRED, 
1467        /**
1468         * 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.
1469         */
1470        EXAMPLE, 
1471        /**
1472         * added to help the parsers
1473         */
1474        NULL;
1475        public static BindingStrength fromCode(String codeString) throws FHIRException {
1476            if (codeString == null || "".equals(codeString))
1477                return null;
1478        if ("required".equals(codeString))
1479          return REQUIRED;
1480        if ("extensible".equals(codeString))
1481          return EXTENSIBLE;
1482        if ("preferred".equals(codeString))
1483          return PREFERRED;
1484        if ("example".equals(codeString))
1485          return EXAMPLE;
1486        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
1487        }
1488        public static boolean isValidCode(String codeString) {
1489            if (codeString == null || "".equals(codeString))
1490                return false;
1491          return Utilities.existsInList(codeString, "required", "extensible", "preferred", "example");
1492        }
1493        public String toCode() {
1494          switch (this) {
1495            case REQUIRED: return "required";
1496            case EXTENSIBLE: return "extensible";
1497            case PREFERRED: return "preferred";
1498            case EXAMPLE: return "example";
1499            case NULL: return null;
1500            default: return "?";
1501          }
1502        }
1503        public String getSystem() {
1504          switch (this) {
1505            case REQUIRED: return "http://hl7.org/fhir/binding-strength";
1506            case EXTENSIBLE: return "http://hl7.org/fhir/binding-strength";
1507            case PREFERRED: return "http://hl7.org/fhir/binding-strength";
1508            case EXAMPLE: return "http://hl7.org/fhir/binding-strength";
1509            case NULL: return null;
1510            default: return "?";
1511          }
1512        }
1513        public String getDefinition() {
1514          switch (this) {
1515            case REQUIRED: return "To be conformant, the concept in this element SHALL be from the specified value set.";
1516            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.";
1517            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.";
1518            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.";
1519            case NULL: return null;
1520            default: return "?";
1521          }
1522        }
1523        public String getDisplay() {
1524          switch (this) {
1525            case REQUIRED: return "Required";
1526            case EXTENSIBLE: return "Extensible";
1527            case PREFERRED: return "Preferred";
1528            case EXAMPLE: return "Example";
1529            case NULL: return null;
1530            default: return "?";
1531          }
1532        }
1533        public boolean testable() {
1534          return this == REQUIRED || this == EXTENSIBLE;
1535        }
1536    }
1537
1538  public static class BindingStrengthEnumFactory implements EnumFactory<BindingStrength> {
1539    public BindingStrength fromCode(String codeString) throws IllegalArgumentException {
1540      if (codeString == null || "".equals(codeString))
1541            if (codeString == null || "".equals(codeString))
1542                return null;
1543        if ("required".equals(codeString))
1544          return BindingStrength.REQUIRED;
1545        if ("extensible".equals(codeString))
1546          return BindingStrength.EXTENSIBLE;
1547        if ("preferred".equals(codeString))
1548          return BindingStrength.PREFERRED;
1549        if ("example".equals(codeString))
1550          return BindingStrength.EXAMPLE;
1551        throw new IllegalArgumentException("Unknown BindingStrength code '"+codeString+"'");
1552        }
1553
1554        public Enumeration<BindingStrength> fromType(PrimitiveType<?> code) throws FHIRException {
1555          if (code == null)
1556            return null;
1557          if (code.isEmpty())
1558            return new Enumeration<BindingStrength>(this, BindingStrength.NULL, code);
1559          String codeString = ((PrimitiveType) code).asStringValue();
1560          if (codeString == null || "".equals(codeString))
1561            return new Enumeration<BindingStrength>(this, BindingStrength.NULL, code);
1562        if ("required".equals(codeString))
1563          return new Enumeration<BindingStrength>(this, BindingStrength.REQUIRED, code);
1564        if ("extensible".equals(codeString))
1565          return new Enumeration<BindingStrength>(this, BindingStrength.EXTENSIBLE, code);
1566        if ("preferred".equals(codeString))
1567          return new Enumeration<BindingStrength>(this, BindingStrength.PREFERRED, code);
1568        if ("example".equals(codeString))
1569          return new Enumeration<BindingStrength>(this, BindingStrength.EXAMPLE, code);
1570        throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
1571        }
1572    public String toCode(BindingStrength code) {
1573       if (code == BindingStrength.NULL)
1574           return null;
1575       if (code == BindingStrength.REQUIRED)
1576        return "required";
1577      if (code == BindingStrength.EXTENSIBLE)
1578        return "extensible";
1579      if (code == BindingStrength.PREFERRED)
1580        return "preferred";
1581      if (code == BindingStrength.EXAMPLE)
1582        return "example";
1583      return "?";
1584   }
1585    public String toSystem(BindingStrength code) {
1586      return code.getSystem();
1587      }
1588    }
1589
1590    public enum CapabilityStatementKind {
1591        /**
1592         * 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.
1593         */
1594        INSTANCE, 
1595        /**
1596         * The CapabilityStatement instance represents the capabilities of a system or piece of software, independent of a particular installation.
1597         */
1598        CAPABILITY, 
1599        /**
1600         * 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'.
1601         */
1602        REQUIREMENTS, 
1603        /**
1604         * added to help the parsers
1605         */
1606        NULL;
1607        public static CapabilityStatementKind fromCode(String codeString) throws FHIRException {
1608            if (codeString == null || "".equals(codeString))
1609                return null;
1610        if ("instance".equals(codeString))
1611          return INSTANCE;
1612        if ("capability".equals(codeString))
1613          return CAPABILITY;
1614        if ("requirements".equals(codeString))
1615          return REQUIREMENTS;
1616        throw new FHIRException("Unknown CapabilityStatementKind code '"+codeString+"'");
1617        }
1618        public static boolean isValidCode(String codeString) {
1619            if (codeString == null || "".equals(codeString))
1620                return false;
1621          return Utilities.existsInList(codeString, "instance", "capability", "requirements");
1622        }
1623        public String toCode() {
1624          switch (this) {
1625            case INSTANCE: return "instance";
1626            case CAPABILITY: return "capability";
1627            case REQUIREMENTS: return "requirements";
1628            case NULL: return null;
1629            default: return "?";
1630          }
1631        }
1632        public String getSystem() {
1633          switch (this) {
1634            case INSTANCE: return "http://hl7.org/fhir/capability-statement-kind";
1635            case CAPABILITY: return "http://hl7.org/fhir/capability-statement-kind";
1636            case REQUIREMENTS: return "http://hl7.org/fhir/capability-statement-kind";
1637            case NULL: return null;
1638            default: return "?";
1639          }
1640        }
1641        public String getDefinition() {
1642          switch (this) {
1643            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.";
1644            case CAPABILITY: return "The CapabilityStatement instance represents the capabilities of a system or piece of software, independent of a particular installation.";
1645            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'.";
1646            case NULL: return null;
1647            default: return "?";
1648          }
1649        }
1650        public String getDisplay() {
1651          switch (this) {
1652            case INSTANCE: return "Instance";
1653            case CAPABILITY: return "Capability";
1654            case REQUIREMENTS: return "Requirements";
1655            case NULL: return null;
1656            default: return "?";
1657          }
1658        }
1659    }
1660
1661  public static class CapabilityStatementKindEnumFactory implements EnumFactory<CapabilityStatementKind> {
1662    public CapabilityStatementKind fromCode(String codeString) throws IllegalArgumentException {
1663      if (codeString == null || "".equals(codeString))
1664            if (codeString == null || "".equals(codeString))
1665                return null;
1666        if ("instance".equals(codeString))
1667          return CapabilityStatementKind.INSTANCE;
1668        if ("capability".equals(codeString))
1669          return CapabilityStatementKind.CAPABILITY;
1670        if ("requirements".equals(codeString))
1671          return CapabilityStatementKind.REQUIREMENTS;
1672        throw new IllegalArgumentException("Unknown CapabilityStatementKind code '"+codeString+"'");
1673        }
1674
1675        public Enumeration<CapabilityStatementKind> fromType(PrimitiveType<?> code) throws FHIRException {
1676          if (code == null)
1677            return null;
1678          if (code.isEmpty())
1679            return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.NULL, code);
1680          String codeString = ((PrimitiveType) code).asStringValue();
1681          if (codeString == null || "".equals(codeString))
1682            return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.NULL, code);
1683        if ("instance".equals(codeString))
1684          return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.INSTANCE, code);
1685        if ("capability".equals(codeString))
1686          return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.CAPABILITY, code);
1687        if ("requirements".equals(codeString))
1688          return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.REQUIREMENTS, code);
1689        throw new FHIRException("Unknown CapabilityStatementKind code '"+codeString+"'");
1690        }
1691    public String toCode(CapabilityStatementKind code) {
1692       if (code == CapabilityStatementKind.NULL)
1693           return null;
1694       if (code == CapabilityStatementKind.INSTANCE)
1695        return "instance";
1696      if (code == CapabilityStatementKind.CAPABILITY)
1697        return "capability";
1698      if (code == CapabilityStatementKind.REQUIREMENTS)
1699        return "requirements";
1700      return "?";
1701   }
1702    public String toSystem(CapabilityStatementKind code) {
1703      return code.getSystem();
1704      }
1705    }
1706
1707    public enum ClaimProcessingCodes {
1708        /**
1709         * The Claim/Pre-authorization/Pre-determination has been received but processing has not begun.
1710         */
1711        QUEUED, 
1712        /**
1713         * The processing has completed without errors
1714         */
1715        COMPLETE, 
1716        /**
1717         * One or more errors have been detected in the Claim
1718         */
1719        ERROR, 
1720        /**
1721         * No errors have been detected in the Claim and some of the adjudication has been performed.
1722         */
1723        PARTIAL, 
1724        /**
1725         * added to help the parsers
1726         */
1727        NULL;
1728        public static ClaimProcessingCodes fromCode(String codeString) throws FHIRException {
1729            if (codeString == null || "".equals(codeString))
1730                return null;
1731        if ("queued".equals(codeString))
1732          return QUEUED;
1733        if ("complete".equals(codeString))
1734          return COMPLETE;
1735        if ("error".equals(codeString))
1736          return ERROR;
1737        if ("partial".equals(codeString))
1738          return PARTIAL;
1739        throw new FHIRException("Unknown ClaimProcessingCodes code '"+codeString+"'");
1740        }
1741        public static boolean isValidCode(String codeString) {
1742            if (codeString == null || "".equals(codeString))
1743                return false;
1744          return Utilities.existsInList(codeString, "queued", "complete", "error", "partial");
1745        }
1746        public String toCode() {
1747          switch (this) {
1748            case QUEUED: return "queued";
1749            case COMPLETE: return "complete";
1750            case ERROR: return "error";
1751            case PARTIAL: return "partial";
1752            case NULL: return null;
1753            default: return "?";
1754          }
1755        }
1756        public String getSystem() {
1757          switch (this) {
1758            case QUEUED: return "http://hl7.org/fhir/claim-outcome";
1759            case COMPLETE: return "http://hl7.org/fhir/claim-outcome";
1760            case ERROR: return "http://hl7.org/fhir/claim-outcome";
1761            case PARTIAL: return "http://hl7.org/fhir/claim-outcome";
1762            case NULL: return null;
1763            default: return "?";
1764          }
1765        }
1766        public String getDefinition() {
1767          switch (this) {
1768            case QUEUED: return "The Claim/Pre-authorization/Pre-determination has been received but processing has not begun.";
1769            case COMPLETE: return "The processing has completed without errors";
1770            case ERROR: return "One or more errors have been detected in the Claim";
1771            case PARTIAL: return "No errors have been detected in the Claim and some of the adjudication has been performed.";
1772            case NULL: return null;
1773            default: return "?";
1774          }
1775        }
1776        public String getDisplay() {
1777          switch (this) {
1778            case QUEUED: return "Queued";
1779            case COMPLETE: return "Processing Complete";
1780            case ERROR: return "Error";
1781            case PARTIAL: return "Partial Processing";
1782            case NULL: return null;
1783            default: return "?";
1784          }
1785        }
1786    }
1787
1788  public static class ClaimProcessingCodesEnumFactory implements EnumFactory<ClaimProcessingCodes> {
1789    public ClaimProcessingCodes fromCode(String codeString) throws IllegalArgumentException {
1790      if (codeString == null || "".equals(codeString))
1791            if (codeString == null || "".equals(codeString))
1792                return null;
1793        if ("queued".equals(codeString))
1794          return ClaimProcessingCodes.QUEUED;
1795        if ("complete".equals(codeString))
1796          return ClaimProcessingCodes.COMPLETE;
1797        if ("error".equals(codeString))
1798          return ClaimProcessingCodes.ERROR;
1799        if ("partial".equals(codeString))
1800          return ClaimProcessingCodes.PARTIAL;
1801        throw new IllegalArgumentException("Unknown ClaimProcessingCodes code '"+codeString+"'");
1802        }
1803
1804        public Enumeration<ClaimProcessingCodes> fromType(PrimitiveType<?> code) throws FHIRException {
1805          if (code == null)
1806            return null;
1807          if (code.isEmpty())
1808            return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.NULL, code);
1809          String codeString = ((PrimitiveType) code).asStringValue();
1810          if (codeString == null || "".equals(codeString))
1811            return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.NULL, code);
1812        if ("queued".equals(codeString))
1813          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.QUEUED, code);
1814        if ("complete".equals(codeString))
1815          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.COMPLETE, code);
1816        if ("error".equals(codeString))
1817          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.ERROR, code);
1818        if ("partial".equals(codeString))
1819          return new Enumeration<ClaimProcessingCodes>(this, ClaimProcessingCodes.PARTIAL, code);
1820        throw new FHIRException("Unknown ClaimProcessingCodes code '"+codeString+"'");
1821        }
1822    public String toCode(ClaimProcessingCodes code) {
1823       if (code == ClaimProcessingCodes.NULL)
1824           return null;
1825       if (code == ClaimProcessingCodes.QUEUED)
1826        return "queued";
1827      if (code == ClaimProcessingCodes.COMPLETE)
1828        return "complete";
1829      if (code == ClaimProcessingCodes.ERROR)
1830        return "error";
1831      if (code == ClaimProcessingCodes.PARTIAL)
1832        return "partial";
1833      return "?";
1834   }
1835    public String toSystem(ClaimProcessingCodes code) {
1836      return code.getSystem();
1837      }
1838    }
1839
1840    public enum CodeSystemContentMode {
1841        /**
1842         * None of the concepts defined by the code system are included in the code system resource.
1843         */
1844        NOTPRESENT, 
1845        /**
1846         * A subset of the valid externally defined concepts are included in the code system resource. There is no specific purpose or documented intent other than for illustrative purposes.
1847         */
1848        EXAMPLE, 
1849        /**
1850         * A subset of the code system concepts are included in the code system resource. This is a curated subset released for a specific purpose under the governance of the code system steward, and that the intent, bounds and consequences of the fragmentation are clearly defined in the fragment or the code system documentation. Fragments are also known as partitions.
1851         */
1852        FRAGMENT, 
1853        /**
1854         * All the concepts defined by the code system are included in the code system resource.
1855         */
1856        COMPLETE, 
1857        /**
1858         * The resource doesn't define any new concepts; it just provides additional designations and properties to another code system.
1859         */
1860        SUPPLEMENT, 
1861        /**
1862         * added to help the parsers
1863         */
1864        NULL;
1865        public static CodeSystemContentMode fromCode(String codeString) throws FHIRException {
1866            if (codeString == null || "".equals(codeString))
1867                return null;
1868        if ("not-present".equals(codeString))
1869          return NOTPRESENT;
1870        if ("example".equals(codeString))
1871          return EXAMPLE;
1872        if ("fragment".equals(codeString))
1873          return FRAGMENT;
1874        if ("complete".equals(codeString))
1875          return COMPLETE;
1876        if ("supplement".equals(codeString))
1877          return SUPPLEMENT;
1878        throw new FHIRException("Unknown CodeSystemContentMode code '"+codeString+"'");
1879        }
1880        public static boolean isValidCode(String codeString) {
1881            if (codeString == null || "".equals(codeString))
1882                return false;
1883          return Utilities.existsInList(codeString, "not-present", "example", "fragment", "complete", "supplement");
1884        }
1885        public String toCode() {
1886          switch (this) {
1887            case NOTPRESENT: return "not-present";
1888            case EXAMPLE: return "example";
1889            case FRAGMENT: return "fragment";
1890            case COMPLETE: return "complete";
1891            case SUPPLEMENT: return "supplement";
1892            case NULL: return null;
1893            default: return "?";
1894          }
1895        }
1896        public String getSystem() {
1897          switch (this) {
1898            case NOTPRESENT: return "http://hl7.org/fhir/codesystem-content-mode";
1899            case EXAMPLE: return "http://hl7.org/fhir/codesystem-content-mode";
1900            case FRAGMENT: return "http://hl7.org/fhir/codesystem-content-mode";
1901            case COMPLETE: return "http://hl7.org/fhir/codesystem-content-mode";
1902            case SUPPLEMENT: return "http://hl7.org/fhir/codesystem-content-mode";
1903            case NULL: return null;
1904            default: return "?";
1905          }
1906        }
1907        public String getDefinition() {
1908          switch (this) {
1909            case NOTPRESENT: return "None of the concepts defined by the code system are included in the code system resource.";
1910            case EXAMPLE: return "A subset of the valid externally defined concepts are included in the code system resource. There is no specific purpose or documented intent other than for illustrative purposes.";
1911            case FRAGMENT: return "A subset of the code system concepts are included in the code system resource. This is a curated subset released for a specific purpose under the governance of the code system steward, and that the intent, bounds and consequences of the fragmentation are clearly defined in the fragment or the code system documentation. Fragments are also known as partitions.";
1912            case COMPLETE: return "All the concepts defined by the code system are included in the code system resource.";
1913            case SUPPLEMENT: return "The resource doesn't define any new concepts; it just provides additional designations and properties to another code system.";
1914            case NULL: return null;
1915            default: return "?";
1916          }
1917        }
1918        public String getDisplay() {
1919          switch (this) {
1920            case NOTPRESENT: return "Not Present";
1921            case EXAMPLE: return "Example";
1922            case FRAGMENT: return "Fragment";
1923            case COMPLETE: return "Complete";
1924            case SUPPLEMENT: return "Supplement";
1925            case NULL: return null;
1926            default: return "?";
1927          }
1928        }
1929    }
1930
1931  public static class CodeSystemContentModeEnumFactory implements EnumFactory<CodeSystemContentMode> {
1932    public CodeSystemContentMode fromCode(String codeString) throws IllegalArgumentException {
1933      if (codeString == null || "".equals(codeString))
1934            if (codeString == null || "".equals(codeString))
1935                return null;
1936        if ("not-present".equals(codeString))
1937          return CodeSystemContentMode.NOTPRESENT;
1938        if ("example".equals(codeString))
1939          return CodeSystemContentMode.EXAMPLE;
1940        if ("fragment".equals(codeString))
1941          return CodeSystemContentMode.FRAGMENT;
1942        if ("complete".equals(codeString))
1943          return CodeSystemContentMode.COMPLETE;
1944        if ("supplement".equals(codeString))
1945          return CodeSystemContentMode.SUPPLEMENT;
1946        throw new IllegalArgumentException("Unknown CodeSystemContentMode code '"+codeString+"'");
1947        }
1948
1949        public Enumeration<CodeSystemContentMode> fromType(PrimitiveType<?> code) throws FHIRException {
1950          if (code == null)
1951            return null;
1952          if (code.isEmpty())
1953            return new Enumeration<CodeSystemContentMode>(this, CodeSystemContentMode.NULL, code);
1954          String codeString = ((PrimitiveType) code).asStringValue();
1955          if (codeString == null || "".equals(codeString))
1956            return new Enumeration<CodeSystemContentMode>(this, CodeSystemContentMode.NULL, code);
1957        if ("not-present".equals(codeString))
1958          return new Enumeration<CodeSystemContentMode>(this, CodeSystemContentMode.NOTPRESENT, code);
1959        if ("example".equals(codeString))
1960          return new Enumeration<CodeSystemContentMode>(this, CodeSystemContentMode.EXAMPLE, code);
1961        if ("fragment".equals(codeString))
1962          return new Enumeration<CodeSystemContentMode>(this, CodeSystemContentMode.FRAGMENT, code);
1963        if ("complete".equals(codeString))
1964          return new Enumeration<CodeSystemContentMode>(this, CodeSystemContentMode.COMPLETE, code);
1965        if ("supplement".equals(codeString))
1966          return new Enumeration<CodeSystemContentMode>(this, CodeSystemContentMode.SUPPLEMENT, code);
1967        throw new FHIRException("Unknown CodeSystemContentMode code '"+codeString+"'");
1968        }
1969    public String toCode(CodeSystemContentMode code) {
1970       if (code == CodeSystemContentMode.NULL)
1971           return null;
1972       if (code == CodeSystemContentMode.NOTPRESENT)
1973        return "not-present";
1974      if (code == CodeSystemContentMode.EXAMPLE)
1975        return "example";
1976      if (code == CodeSystemContentMode.FRAGMENT)
1977        return "fragment";
1978      if (code == CodeSystemContentMode.COMPLETE)
1979        return "complete";
1980      if (code == CodeSystemContentMode.SUPPLEMENT)
1981        return "supplement";
1982      return "?";
1983   }
1984    public String toSystem(CodeSystemContentMode code) {
1985      return code.getSystem();
1986      }
1987    }
1988
1989    public enum CommonLanguages {
1990        /**
1991         * null
1992         */
1993        AR, 
1994        /**
1995         * null
1996         */
1997        BG, 
1998        /**
1999         * null
2000         */
2001        BGBG, 
2002        /**
2003         * null
2004         */
2005        BN, 
2006        /**
2007         * null
2008         */
2009        CS, 
2010        /**
2011         * null
2012         */
2013        CSCZ, 
2014        /**
2015         * null
2016         */
2017        BS, 
2018        /**
2019         * null
2020         */
2021        BSBA, 
2022        /**
2023         * null
2024         */
2025        DA, 
2026        /**
2027         * null
2028         */
2029        DADK, 
2030        /**
2031         * null
2032         */
2033        DE, 
2034        /**
2035         * null
2036         */
2037        DEAT, 
2038        /**
2039         * null
2040         */
2041        DECH, 
2042        /**
2043         * null
2044         */
2045        DEDE, 
2046        /**
2047         * null
2048         */
2049        EL, 
2050        /**
2051         * null
2052         */
2053        ELGR, 
2054        /**
2055         * null
2056         */
2057        EN, 
2058        /**
2059         * null
2060         */
2061        ENAU, 
2062        /**
2063         * null
2064         */
2065        ENCA, 
2066        /**
2067         * null
2068         */
2069        ENGB, 
2070        /**
2071         * null
2072         */
2073        ENIN, 
2074        /**
2075         * null
2076         */
2077        ENNZ, 
2078        /**
2079         * null
2080         */
2081        ENSG, 
2082        /**
2083         * null
2084         */
2085        ENUS, 
2086        /**
2087         * null
2088         */
2089        ES, 
2090        /**
2091         * null
2092         */
2093        ESAR, 
2094        /**
2095         * null
2096         */
2097        ESES, 
2098        /**
2099         * null
2100         */
2101        ESUY, 
2102        /**
2103         * null
2104         */
2105        ET, 
2106        /**
2107         * null
2108         */
2109        ETEE, 
2110        /**
2111         * null
2112         */
2113        FI, 
2114        /**
2115         * null
2116         */
2117        FR, 
2118        /**
2119         * null
2120         */
2121        FRBE, 
2122        /**
2123         * null
2124         */
2125        FRCH, 
2126        /**
2127         * null
2128         */
2129        FRFR, 
2130        /**
2131         * null
2132         */
2133        FIFI, 
2134        /**
2135         * null
2136         */
2137        FRCA, 
2138        /**
2139         * null
2140         */
2141        FY, 
2142        /**
2143         * null
2144         */
2145        FYNL, 
2146        /**
2147         * null
2148         */
2149        HI, 
2150        /**
2151         * null
2152         */
2153        HR, 
2154        /**
2155         * null
2156         */
2157        HRHR, 
2158        /**
2159         * null
2160         */
2161        IS, 
2162        /**
2163         * null
2164         */
2165        ISIS, 
2166        /**
2167         * null
2168         */
2169        IT, 
2170        /**
2171         * null
2172         */
2173        ITCH, 
2174        /**
2175         * null
2176         */
2177        ITIT, 
2178        /**
2179         * null
2180         */
2181        JA, 
2182        /**
2183         * null
2184         */
2185        KO, 
2186        /**
2187         * null
2188         */
2189        LT, 
2190        /**
2191         * null
2192         */
2193        LTLT, 
2194        /**
2195         * null
2196         */
2197        LV, 
2198        /**
2199         * null
2200         */
2201        LVLV, 
2202        /**
2203         * null
2204         */
2205        NL, 
2206        /**
2207         * null
2208         */
2209        NLBE, 
2210        /**
2211         * null
2212         */
2213        NLNL, 
2214        /**
2215         * null
2216         */
2217        NO, 
2218        /**
2219         * null
2220         */
2221        NONO, 
2222        /**
2223         * null
2224         */
2225        PA, 
2226        /**
2227         * null
2228         */
2229        PL, 
2230        /**
2231         * null
2232         */
2233        PLPL, 
2234        /**
2235         * null
2236         */
2237        PT, 
2238        /**
2239         * null
2240         */
2241        PTPT, 
2242        /**
2243         * null
2244         */
2245        PTBR, 
2246        /**
2247         * null
2248         */
2249        RO, 
2250        /**
2251         * null
2252         */
2253        RORO, 
2254        /**
2255         * null
2256         */
2257        RU, 
2258        /**
2259         * null
2260         */
2261        RURU, 
2262        /**
2263         * null
2264         */
2265        SK, 
2266        /**
2267         * null
2268         */
2269        SKSK, 
2270        /**
2271         * null
2272         */
2273        SL, 
2274        /**
2275         * null
2276         */
2277        SLSI, 
2278        /**
2279         * null
2280         */
2281        SR, 
2282        /**
2283         * null
2284         */
2285        SRRS, 
2286        /**
2287         * null
2288         */
2289        SV, 
2290        /**
2291         * null
2292         */
2293        SVSE, 
2294        /**
2295         * null
2296         */
2297        TE, 
2298        /**
2299         * null
2300         */
2301        ZH, 
2302        /**
2303         * null
2304         */
2305        ZHCN, 
2306        /**
2307         * null
2308         */
2309        ZHHK, 
2310        /**
2311         * null
2312         */
2313        ZHSG, 
2314        /**
2315         * null
2316         */
2317        ZHTW, 
2318        /**
2319         * added to help the parsers
2320         */
2321        NULL;
2322        public static CommonLanguages fromCode(String codeString) throws FHIRException {
2323            if (codeString == null || "".equals(codeString))
2324                return null;
2325        if ("ar".equals(codeString))
2326          return AR;
2327        if ("bg".equals(codeString))
2328          return BG;
2329        if ("bg-BG".equals(codeString))
2330          return BGBG;
2331        if ("bn".equals(codeString))
2332          return BN;
2333        if ("cs".equals(codeString))
2334          return CS;
2335        if ("cs-CZ".equals(codeString))
2336          return CSCZ;
2337        if ("bs".equals(codeString))
2338          return BS;
2339        if ("bs-BA".equals(codeString))
2340          return BSBA;
2341        if ("da".equals(codeString))
2342          return DA;
2343        if ("da-DK".equals(codeString))
2344          return DADK;
2345        if ("de".equals(codeString))
2346          return DE;
2347        if ("de-AT".equals(codeString))
2348          return DEAT;
2349        if ("de-CH".equals(codeString))
2350          return DECH;
2351        if ("de-DE".equals(codeString))
2352          return DEDE;
2353        if ("el".equals(codeString))
2354          return EL;
2355        if ("el-GR".equals(codeString))
2356          return ELGR;
2357        if ("en".equals(codeString))
2358          return EN;
2359        if ("en-AU".equals(codeString))
2360          return ENAU;
2361        if ("en-CA".equals(codeString))
2362          return ENCA;
2363        if ("en-GB".equals(codeString))
2364          return ENGB;
2365        if ("en-IN".equals(codeString))
2366          return ENIN;
2367        if ("en-NZ".equals(codeString))
2368          return ENNZ;
2369        if ("en-SG".equals(codeString))
2370          return ENSG;
2371        if ("en-US".equals(codeString))
2372          return ENUS;
2373        if ("es".equals(codeString))
2374          return ES;
2375        if ("es-AR".equals(codeString))
2376          return ESAR;
2377        if ("es-ES".equals(codeString))
2378          return ESES;
2379        if ("es-UY".equals(codeString))
2380          return ESUY;
2381        if ("et".equals(codeString))
2382          return ET;
2383        if ("et-EE".equals(codeString))
2384          return ETEE;
2385        if ("fi".equals(codeString))
2386          return FI;
2387        if ("fr".equals(codeString))
2388          return FR;
2389        if ("fr-BE".equals(codeString))
2390          return FRBE;
2391        if ("fr-CH".equals(codeString))
2392          return FRCH;
2393        if ("fr-FR".equals(codeString))
2394          return FRFR;
2395        if ("fi-FI".equals(codeString))
2396          return FIFI;
2397        if ("fr-CA".equals(codeString))
2398          return FRCA;
2399        if ("fy".equals(codeString))
2400          return FY;
2401        if ("fy-NL".equals(codeString))
2402          return FYNL;
2403        if ("hi".equals(codeString))
2404          return HI;
2405        if ("hr".equals(codeString))
2406          return HR;
2407        if ("hr-HR".equals(codeString))
2408          return HRHR;
2409        if ("is".equals(codeString))
2410          return IS;
2411        if ("is-IS".equals(codeString))
2412          return ISIS;
2413        if ("it".equals(codeString))
2414          return IT;
2415        if ("it-CH".equals(codeString))
2416          return ITCH;
2417        if ("it-IT".equals(codeString))
2418          return ITIT;
2419        if ("ja".equals(codeString))
2420          return JA;
2421        if ("ko".equals(codeString))
2422          return KO;
2423        if ("lt".equals(codeString))
2424          return LT;
2425        if ("lt-LT".equals(codeString))
2426          return LTLT;
2427        if ("lv".equals(codeString))
2428          return LV;
2429        if ("lv-LV".equals(codeString))
2430          return LVLV;
2431        if ("nl".equals(codeString))
2432          return NL;
2433        if ("nl-BE".equals(codeString))
2434          return NLBE;
2435        if ("nl-NL".equals(codeString))
2436          return NLNL;
2437        if ("no".equals(codeString))
2438          return NO;
2439        if ("no-NO".equals(codeString))
2440          return NONO;
2441        if ("pa".equals(codeString))
2442          return PA;
2443        if ("pl".equals(codeString))
2444          return PL;
2445        if ("pl-PL".equals(codeString))
2446          return PLPL;
2447        if ("pt".equals(codeString))
2448          return PT;
2449        if ("pt-PT".equals(codeString))
2450          return PTPT;
2451        if ("pt-BR".equals(codeString))
2452          return PTBR;
2453        if ("ro".equals(codeString))
2454          return RO;
2455        if ("ro-RO".equals(codeString))
2456          return RORO;
2457        if ("ru".equals(codeString))
2458          return RU;
2459        if ("ru-RU".equals(codeString))
2460          return RURU;
2461        if ("sk".equals(codeString))
2462          return SK;
2463        if ("sk-SK".equals(codeString))
2464          return SKSK;
2465        if ("sl".equals(codeString))
2466          return SL;
2467        if ("sl-SI".equals(codeString))
2468          return SLSI;
2469        if ("sr".equals(codeString))
2470          return SR;
2471        if ("sr-RS".equals(codeString))
2472          return SRRS;
2473        if ("sv".equals(codeString))
2474          return SV;
2475        if ("sv-SE".equals(codeString))
2476          return SVSE;
2477        if ("te".equals(codeString))
2478          return TE;
2479        if ("zh".equals(codeString))
2480          return ZH;
2481        if ("zh-CN".equals(codeString))
2482          return ZHCN;
2483        if ("zh-HK".equals(codeString))
2484          return ZHHK;
2485        if ("zh-SG".equals(codeString))
2486          return ZHSG;
2487        if ("zh-TW".equals(codeString))
2488          return ZHTW;
2489        throw new FHIRException("Unknown CommonLanguages code '"+codeString+"'");
2490        }
2491        public static boolean isValidCode(String codeString) {
2492            if (codeString == null || "".equals(codeString))
2493                return false;
2494          return Utilities.existsInList(codeString, "ar", "bg", "bg-BG", "bn", "cs", "cs-CZ", "bs", "bs-BA", "da", "da-DK", "de", "de-AT", "de-CH", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IN", "en-NZ", "en-SG", "en-US", "es", "es-AR", "es-ES", "es-UY", "et", "et-EE", "fi", "fr", "fr-BE", "fr-CH", "fr-FR", "fi-FI", "fr-CA", "fy", "fy-NL", "hi", "hr", "hr-HR", "is", "is-IS", "it", "it-CH", "it-IT", "ja", "ko", "lt", "lt-LT", "lv", "lv-LV", "nl", "nl-BE", "nl-NL", "no", "no-NO", "pa", "pl", "pl-PL", "pt", "pt-PT", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sk", "sk-SK", "sl", "sl-SI", "sr", "sr-RS", "sv", "sv-SE", "te", "zh", "zh-CN", "zh-HK", "zh-SG", "zh-TW");
2495        }
2496        public String toCode() {
2497          switch (this) {
2498            case AR: return "ar";
2499            case BG: return "bg";
2500            case BGBG: return "bg-BG";
2501            case BN: return "bn";
2502            case CS: return "cs";
2503            case CSCZ: return "cs-CZ";
2504            case BS: return "bs";
2505            case BSBA: return "bs-BA";
2506            case DA: return "da";
2507            case DADK: return "da-DK";
2508            case DE: return "de";
2509            case DEAT: return "de-AT";
2510            case DECH: return "de-CH";
2511            case DEDE: return "de-DE";
2512            case EL: return "el";
2513            case ELGR: return "el-GR";
2514            case EN: return "en";
2515            case ENAU: return "en-AU";
2516            case ENCA: return "en-CA";
2517            case ENGB: return "en-GB";
2518            case ENIN: return "en-IN";
2519            case ENNZ: return "en-NZ";
2520            case ENSG: return "en-SG";
2521            case ENUS: return "en-US";
2522            case ES: return "es";
2523            case ESAR: return "es-AR";
2524            case ESES: return "es-ES";
2525            case ESUY: return "es-UY";
2526            case ET: return "et";
2527            case ETEE: return "et-EE";
2528            case FI: return "fi";
2529            case FR: return "fr";
2530            case FRBE: return "fr-BE";
2531            case FRCH: return "fr-CH";
2532            case FRFR: return "fr-FR";
2533            case FIFI: return "fi-FI";
2534            case FRCA: return "fr-CA";
2535            case FY: return "fy";
2536            case FYNL: return "fy-NL";
2537            case HI: return "hi";
2538            case HR: return "hr";
2539            case HRHR: return "hr-HR";
2540            case IS: return "is";
2541            case ISIS: return "is-IS";
2542            case IT: return "it";
2543            case ITCH: return "it-CH";
2544            case ITIT: return "it-IT";
2545            case JA: return "ja";
2546            case KO: return "ko";
2547            case LT: return "lt";
2548            case LTLT: return "lt-LT";
2549            case LV: return "lv";
2550            case LVLV: return "lv-LV";
2551            case NL: return "nl";
2552            case NLBE: return "nl-BE";
2553            case NLNL: return "nl-NL";
2554            case NO: return "no";
2555            case NONO: return "no-NO";
2556            case PA: return "pa";
2557            case PL: return "pl";
2558            case PLPL: return "pl-PL";
2559            case PT: return "pt";
2560            case PTPT: return "pt-PT";
2561            case PTBR: return "pt-BR";
2562            case RO: return "ro";
2563            case RORO: return "ro-RO";
2564            case RU: return "ru";
2565            case RURU: return "ru-RU";
2566            case SK: return "sk";
2567            case SKSK: return "sk-SK";
2568            case SL: return "sl";
2569            case SLSI: return "sl-SI";
2570            case SR: return "sr";
2571            case SRRS: return "sr-RS";
2572            case SV: return "sv";
2573            case SVSE: return "sv-SE";
2574            case TE: return "te";
2575            case ZH: return "zh";
2576            case ZHCN: return "zh-CN";
2577            case ZHHK: return "zh-HK";
2578            case ZHSG: return "zh-SG";
2579            case ZHTW: return "zh-TW";
2580            case NULL: return null;
2581            default: return "?";
2582          }
2583        }
2584        public String getSystem() {
2585          switch (this) {
2586            case AR: return "urn:ietf:bcp:47";
2587            case BG: return "urn:ietf:bcp:47";
2588            case BGBG: return "urn:ietf:bcp:47";
2589            case BN: return "urn:ietf:bcp:47";
2590            case CS: return "urn:ietf:bcp:47";
2591            case CSCZ: return "urn:ietf:bcp:47";
2592            case BS: return "urn:ietf:bcp:47";
2593            case BSBA: return "urn:ietf:bcp:47";
2594            case DA: return "urn:ietf:bcp:47";
2595            case DADK: return "urn:ietf:bcp:47";
2596            case DE: return "urn:ietf:bcp:47";
2597            case DEAT: return "urn:ietf:bcp:47";
2598            case DECH: return "urn:ietf:bcp:47";
2599            case DEDE: return "urn:ietf:bcp:47";
2600            case EL: return "urn:ietf:bcp:47";
2601            case ELGR: return "urn:ietf:bcp:47";
2602            case EN: return "urn:ietf:bcp:47";
2603            case ENAU: return "urn:ietf:bcp:47";
2604            case ENCA: return "urn:ietf:bcp:47";
2605            case ENGB: return "urn:ietf:bcp:47";
2606            case ENIN: return "urn:ietf:bcp:47";
2607            case ENNZ: return "urn:ietf:bcp:47";
2608            case ENSG: return "urn:ietf:bcp:47";
2609            case ENUS: return "urn:ietf:bcp:47";
2610            case ES: return "urn:ietf:bcp:47";
2611            case ESAR: return "urn:ietf:bcp:47";
2612            case ESES: return "urn:ietf:bcp:47";
2613            case ESUY: return "urn:ietf:bcp:47";
2614            case ET: return "urn:ietf:bcp:47";
2615            case ETEE: return "urn:ietf:bcp:47";
2616            case FI: return "urn:ietf:bcp:47";
2617            case FR: return "urn:ietf:bcp:47";
2618            case FRBE: return "urn:ietf:bcp:47";
2619            case FRCH: return "urn:ietf:bcp:47";
2620            case FRFR: return "urn:ietf:bcp:47";
2621            case FIFI: return "urn:ietf:bcp:47";
2622            case FRCA: return "urn:ietf:bcp:47";
2623            case FY: return "urn:ietf:bcp:47";
2624            case FYNL: return "urn:ietf:bcp:47";
2625            case HI: return "urn:ietf:bcp:47";
2626            case HR: return "urn:ietf:bcp:47";
2627            case HRHR: return "urn:ietf:bcp:47";
2628            case IS: return "urn:ietf:bcp:47";
2629            case ISIS: return "urn:ietf:bcp:47";
2630            case IT: return "urn:ietf:bcp:47";
2631            case ITCH: return "urn:ietf:bcp:47";
2632            case ITIT: return "urn:ietf:bcp:47";
2633            case JA: return "urn:ietf:bcp:47";
2634            case KO: return "urn:ietf:bcp:47";
2635            case LT: return "urn:ietf:bcp:47";
2636            case LTLT: return "urn:ietf:bcp:47";
2637            case LV: return "urn:ietf:bcp:47";
2638            case LVLV: return "urn:ietf:bcp:47";
2639            case NL: return "urn:ietf:bcp:47";
2640            case NLBE: return "urn:ietf:bcp:47";
2641            case NLNL: return "urn:ietf:bcp:47";
2642            case NO: return "urn:ietf:bcp:47";
2643            case NONO: return "urn:ietf:bcp:47";
2644            case PA: return "urn:ietf:bcp:47";
2645            case PL: return "urn:ietf:bcp:47";
2646            case PLPL: return "urn:ietf:bcp:47";
2647            case PT: return "urn:ietf:bcp:47";
2648            case PTPT: return "urn:ietf:bcp:47";
2649            case PTBR: return "urn:ietf:bcp:47";
2650            case RO: return "urn:ietf:bcp:47";
2651            case RORO: return "urn:ietf:bcp:47";
2652            case RU: return "urn:ietf:bcp:47";
2653            case RURU: return "urn:ietf:bcp:47";
2654            case SK: return "urn:ietf:bcp:47";
2655            case SKSK: return "urn:ietf:bcp:47";
2656            case SL: return "urn:ietf:bcp:47";
2657            case SLSI: return "urn:ietf:bcp:47";
2658            case SR: return "urn:ietf:bcp:47";
2659            case SRRS: return "urn:ietf:bcp:47";
2660            case SV: return "urn:ietf:bcp:47";
2661            case SVSE: return "urn:ietf:bcp:47";
2662            case TE: return "urn:ietf:bcp:47";
2663            case ZH: return "urn:ietf:bcp:47";
2664            case ZHCN: return "urn:ietf:bcp:47";
2665            case ZHHK: return "urn:ietf:bcp:47";
2666            case ZHSG: return "urn:ietf:bcp:47";
2667            case ZHTW: return "urn:ietf:bcp:47";
2668            case NULL: return null;
2669            default: return "?";
2670          }
2671        }
2672        public String getDefinition() {
2673          switch (this) {
2674            case AR: return "";
2675            case BG: return "";
2676            case BGBG: return "";
2677            case BN: return "";
2678            case CS: return "";
2679            case CSCZ: return "";
2680            case BS: return "";
2681            case BSBA: return "";
2682            case DA: return "";
2683            case DADK: return "";
2684            case DE: return "";
2685            case DEAT: return "";
2686            case DECH: return "";
2687            case DEDE: return "";
2688            case EL: return "";
2689            case ELGR: return "";
2690            case EN: return "";
2691            case ENAU: return "";
2692            case ENCA: return "";
2693            case ENGB: return "";
2694            case ENIN: return "";
2695            case ENNZ: return "";
2696            case ENSG: return "";
2697            case ENUS: return "";
2698            case ES: return "";
2699            case ESAR: return "";
2700            case ESES: return "";
2701            case ESUY: return "";
2702            case ET: return "";
2703            case ETEE: return "";
2704            case FI: return "";
2705            case FR: return "";
2706            case FRBE: return "";
2707            case FRCH: return "";
2708            case FRFR: return "";
2709            case FIFI: return "";
2710            case FRCA: return "";
2711            case FY: return "";
2712            case FYNL: return "";
2713            case HI: return "";
2714            case HR: return "";
2715            case HRHR: return "";
2716            case IS: return "";
2717            case ISIS: return "";
2718            case IT: return "";
2719            case ITCH: return "";
2720            case ITIT: return "";
2721            case JA: return "";
2722            case KO: return "";
2723            case LT: return "";
2724            case LTLT: return "";
2725            case LV: return "";
2726            case LVLV: return "";
2727            case NL: return "";
2728            case NLBE: return "";
2729            case NLNL: return "";
2730            case NO: return "";
2731            case NONO: return "";
2732            case PA: return "";
2733            case PL: return "";
2734            case PLPL: return "";
2735            case PT: return "";
2736            case PTPT: return "";
2737            case PTBR: return "";
2738            case RO: return "";
2739            case RORO: return "";
2740            case RU: return "";
2741            case RURU: return "";
2742            case SK: return "";
2743            case SKSK: return "";
2744            case SL: return "";
2745            case SLSI: return "";
2746            case SR: return "";
2747            case SRRS: return "";
2748            case SV: return "";
2749            case SVSE: return "";
2750            case TE: return "";
2751            case ZH: return "";
2752            case ZHCN: return "";
2753            case ZHHK: return "";
2754            case ZHSG: return "";
2755            case ZHTW: return "";
2756            case NULL: return null;
2757            default: return "?";
2758          }
2759        }
2760        public String getDisplay() {
2761          switch (this) {
2762            case AR: return "Arabisk";
2763            case BG: return "Bulgarian";
2764            case BGBG: return "Bulgarian (Bulgaria)";
2765            case BN: return "Bengali";
2766            case CS: return "Czech";
2767            case CSCZ: return "Czech (Czechia)";
2768            case BS: return "Bosnian";
2769            case BSBA: return "Bosnian (Bosnia and Herzegovina))";
2770            case DA: return "Danish";
2771            case DADK: return "Danish (Denmark)";
2772            case DE: return "German";
2773            case DEAT: return "German (Austria)";
2774            case DECH: return "German (Switzerland)";
2775            case DEDE: return "German (Germany)";
2776            case EL: return "Greek";
2777            case ELGR: return "Greek (Greece)";
2778            case EN: return "English";
2779            case ENAU: return "English (Australia)";
2780            case ENCA: return "English (Canada)";
2781            case ENGB: return "English (Great Britain)";
2782            case ENIN: return "English (India)";
2783            case ENNZ: return "English (New Zealand)";
2784            case ENSG: return "English (Singapore)";
2785            case ENUS: return "English (United States)";
2786            case ES: return "Spanish";
2787            case ESAR: return "Spanish (Argentina)";
2788            case ESES: return "Spanish (Spain)";
2789            case ESUY: return "Spanish (Uruguay)";
2790            case ET: return "Estonian";
2791            case ETEE: return "Estonian (Estonia)";
2792            case FI: return "Finnish";
2793            case FR: return "French";
2794            case FRBE: return "French (Belgium)";
2795            case FRCH: return "French (Switzerland)";
2796            case FRFR: return "French (France)";
2797            case FIFI: return "Finnish (Finland)";
2798            case FRCA: return "French (Canada)";
2799            case FY: return "Frisian";
2800            case FYNL: return "Frisian (Netherlands)";
2801            case HI: return "Hindi";
2802            case HR: return "Croatian";
2803            case HRHR: return "Croatian (Croatia)";
2804            case IS: return "Icelandic";
2805            case ISIS: return "Icelandic (Iceland)";
2806            case IT: return "Italian";
2807            case ITCH: return "Italian (Switzerland)";
2808            case ITIT: return "Italian (Italy)";
2809            case JA: return "Japanese";
2810            case KO: return "Korean";
2811            case LT: return "Lithuanian";
2812            case LTLT: return "Lithuanian (Lithuania)";
2813            case LV: return "Latvian";
2814            case LVLV: return "Latvian (Latvia)";
2815            case NL: return "Dutch";
2816            case NLBE: return "Dutch (Belgium)";
2817            case NLNL: return "Dutch (Netherlands)";
2818            case NO: return "Norwegian";
2819            case NONO: return "Norwegian (Norway)";
2820            case PA: return "Punjabi";
2821            case PL: return "Polskie";
2822            case PLPL: return "Polish (Poland)";
2823            case PT: return "Portuguese";
2824            case PTPT: return "Portuguese (Portugal)";
2825            case PTBR: return "Portuguese (Brazil)";
2826            case RO: return "Romanian";
2827            case RORO: return "Romanian (Romania)";
2828            case RU: return "Russian";
2829            case RURU: return "Russian (Russia)";
2830            case SK: return "Slovakian";
2831            case SKSK: return "Slovakian (Slovakia)";
2832            case SL: return "Slovenian";
2833            case SLSI: return "Slovenian (Slovenia)";
2834            case SR: return "Serbian";
2835            case SRRS: return "Serbian (Serbia)";
2836            case SV: return "Swedish";
2837            case SVSE: return "Swedish (Sweden)";
2838            case TE: return "Telugu";
2839            case ZH: return "Chinese";
2840            case ZHCN: return "Chinese (China)";
2841            case ZHHK: return "Chinese (Hong Kong)";
2842            case ZHSG: return "Chinese (Singapore)";
2843            case ZHTW: return "Chinese (Taiwan)";
2844            case NULL: return null;
2845            default: return "?";
2846          }
2847        }
2848    }
2849
2850  public static class CommonLanguagesEnumFactory implements EnumFactory<CommonLanguages> {
2851    public CommonLanguages fromCode(String codeString) throws IllegalArgumentException {
2852      if (codeString == null || "".equals(codeString))
2853            if (codeString == null || "".equals(codeString))
2854                return null;
2855        if ("ar".equals(codeString))
2856          return CommonLanguages.AR;
2857        if ("bg".equals(codeString))
2858          return CommonLanguages.BG;
2859        if ("bg-BG".equals(codeString))
2860          return CommonLanguages.BGBG;
2861        if ("bn".equals(codeString))
2862          return CommonLanguages.BN;
2863        if ("cs".equals(codeString))
2864          return CommonLanguages.CS;
2865        if ("cs-CZ".equals(codeString))
2866          return CommonLanguages.CSCZ;
2867        if ("bs".equals(codeString))
2868          return CommonLanguages.BS;
2869        if ("bs-BA".equals(codeString))
2870          return CommonLanguages.BSBA;
2871        if ("da".equals(codeString))
2872          return CommonLanguages.DA;
2873        if ("da-DK".equals(codeString))
2874          return CommonLanguages.DADK;
2875        if ("de".equals(codeString))
2876          return CommonLanguages.DE;
2877        if ("de-AT".equals(codeString))
2878          return CommonLanguages.DEAT;
2879        if ("de-CH".equals(codeString))
2880          return CommonLanguages.DECH;
2881        if ("de-DE".equals(codeString))
2882          return CommonLanguages.DEDE;
2883        if ("el".equals(codeString))
2884          return CommonLanguages.EL;
2885        if ("el-GR".equals(codeString))
2886          return CommonLanguages.ELGR;
2887        if ("en".equals(codeString))
2888          return CommonLanguages.EN;
2889        if ("en-AU".equals(codeString))
2890          return CommonLanguages.ENAU;
2891        if ("en-CA".equals(codeString))
2892          return CommonLanguages.ENCA;
2893        if ("en-GB".equals(codeString))
2894          return CommonLanguages.ENGB;
2895        if ("en-IN".equals(codeString))
2896          return CommonLanguages.ENIN;
2897        if ("en-NZ".equals(codeString))
2898          return CommonLanguages.ENNZ;
2899        if ("en-SG".equals(codeString))
2900          return CommonLanguages.ENSG;
2901        if ("en-US".equals(codeString))
2902          return CommonLanguages.ENUS;
2903        if ("es".equals(codeString))
2904          return CommonLanguages.ES;
2905        if ("es-AR".equals(codeString))
2906          return CommonLanguages.ESAR;
2907        if ("es-ES".equals(codeString))
2908          return CommonLanguages.ESES;
2909        if ("es-UY".equals(codeString))
2910          return CommonLanguages.ESUY;
2911        if ("et".equals(codeString))
2912          return CommonLanguages.ET;
2913        if ("et-EE".equals(codeString))
2914          return CommonLanguages.ETEE;
2915        if ("fi".equals(codeString))
2916          return CommonLanguages.FI;
2917        if ("fr".equals(codeString))
2918          return CommonLanguages.FR;
2919        if ("fr-BE".equals(codeString))
2920          return CommonLanguages.FRBE;
2921        if ("fr-CH".equals(codeString))
2922          return CommonLanguages.FRCH;
2923        if ("fr-FR".equals(codeString))
2924          return CommonLanguages.FRFR;
2925        if ("fi-FI".equals(codeString))
2926          return CommonLanguages.FIFI;
2927        if ("fr-CA".equals(codeString))
2928          return CommonLanguages.FRCA;
2929        if ("fy".equals(codeString))
2930          return CommonLanguages.FY;
2931        if ("fy-NL".equals(codeString))
2932          return CommonLanguages.FYNL;
2933        if ("hi".equals(codeString))
2934          return CommonLanguages.HI;
2935        if ("hr".equals(codeString))
2936          return CommonLanguages.HR;
2937        if ("hr-HR".equals(codeString))
2938          return CommonLanguages.HRHR;
2939        if ("is".equals(codeString))
2940          return CommonLanguages.IS;
2941        if ("is-IS".equals(codeString))
2942          return CommonLanguages.ISIS;
2943        if ("it".equals(codeString))
2944          return CommonLanguages.IT;
2945        if ("it-CH".equals(codeString))
2946          return CommonLanguages.ITCH;
2947        if ("it-IT".equals(codeString))
2948          return CommonLanguages.ITIT;
2949        if ("ja".equals(codeString))
2950          return CommonLanguages.JA;
2951        if ("ko".equals(codeString))
2952          return CommonLanguages.KO;
2953        if ("lt".equals(codeString))
2954          return CommonLanguages.LT;
2955        if ("lt-LT".equals(codeString))
2956          return CommonLanguages.LTLT;
2957        if ("lv".equals(codeString))
2958          return CommonLanguages.LV;
2959        if ("lv-LV".equals(codeString))
2960          return CommonLanguages.LVLV;
2961        if ("nl".equals(codeString))
2962          return CommonLanguages.NL;
2963        if ("nl-BE".equals(codeString))
2964          return CommonLanguages.NLBE;
2965        if ("nl-NL".equals(codeString))
2966          return CommonLanguages.NLNL;
2967        if ("no".equals(codeString))
2968          return CommonLanguages.NO;
2969        if ("no-NO".equals(codeString))
2970          return CommonLanguages.NONO;
2971        if ("pa".equals(codeString))
2972          return CommonLanguages.PA;
2973        if ("pl".equals(codeString))
2974          return CommonLanguages.PL;
2975        if ("pl-PL".equals(codeString))
2976          return CommonLanguages.PLPL;
2977        if ("pt".equals(codeString))
2978          return CommonLanguages.PT;
2979        if ("pt-PT".equals(codeString))
2980          return CommonLanguages.PTPT;
2981        if ("pt-BR".equals(codeString))
2982          return CommonLanguages.PTBR;
2983        if ("ro".equals(codeString))
2984          return CommonLanguages.RO;
2985        if ("ro-RO".equals(codeString))
2986          return CommonLanguages.RORO;
2987        if ("ru".equals(codeString))
2988          return CommonLanguages.RU;
2989        if ("ru-RU".equals(codeString))
2990          return CommonLanguages.RURU;
2991        if ("sk".equals(codeString))
2992          return CommonLanguages.SK;
2993        if ("sk-SK".equals(codeString))
2994          return CommonLanguages.SKSK;
2995        if ("sl".equals(codeString))
2996          return CommonLanguages.SL;
2997        if ("sl-SI".equals(codeString))
2998          return CommonLanguages.SLSI;
2999        if ("sr".equals(codeString))
3000          return CommonLanguages.SR;
3001        if ("sr-RS".equals(codeString))
3002          return CommonLanguages.SRRS;
3003        if ("sv".equals(codeString))
3004          return CommonLanguages.SV;
3005        if ("sv-SE".equals(codeString))
3006          return CommonLanguages.SVSE;
3007        if ("te".equals(codeString))
3008          return CommonLanguages.TE;
3009        if ("zh".equals(codeString))
3010          return CommonLanguages.ZH;
3011        if ("zh-CN".equals(codeString))
3012          return CommonLanguages.ZHCN;
3013        if ("zh-HK".equals(codeString))
3014          return CommonLanguages.ZHHK;
3015        if ("zh-SG".equals(codeString))
3016          return CommonLanguages.ZHSG;
3017        if ("zh-TW".equals(codeString))
3018          return CommonLanguages.ZHTW;
3019        throw new IllegalArgumentException("Unknown CommonLanguages code '"+codeString+"'");
3020        }
3021
3022        public Enumeration<CommonLanguages> fromType(PrimitiveType<?> code) throws FHIRException {
3023          if (code == null)
3024            return null;
3025          if (code.isEmpty())
3026            return new Enumeration<CommonLanguages>(this, CommonLanguages.NULL, code);
3027          String codeString = ((PrimitiveType) code).asStringValue();
3028          if (codeString == null || "".equals(codeString))
3029            return new Enumeration<CommonLanguages>(this, CommonLanguages.NULL, code);
3030        if ("ar".equals(codeString))
3031          return new Enumeration<CommonLanguages>(this, CommonLanguages.AR, code);
3032        if ("bg".equals(codeString))
3033          return new Enumeration<CommonLanguages>(this, CommonLanguages.BG, code);
3034        if ("bg-BG".equals(codeString))
3035          return new Enumeration<CommonLanguages>(this, CommonLanguages.BGBG, code);
3036        if ("bn".equals(codeString))
3037          return new Enumeration<CommonLanguages>(this, CommonLanguages.BN, code);
3038        if ("cs".equals(codeString))
3039          return new Enumeration<CommonLanguages>(this, CommonLanguages.CS, code);
3040        if ("cs-CZ".equals(codeString))
3041          return new Enumeration<CommonLanguages>(this, CommonLanguages.CSCZ, code);
3042        if ("bs".equals(codeString))
3043          return new Enumeration<CommonLanguages>(this, CommonLanguages.BS, code);
3044        if ("bs-BA".equals(codeString))
3045          return new Enumeration<CommonLanguages>(this, CommonLanguages.BSBA, code);
3046        if ("da".equals(codeString))
3047          return new Enumeration<CommonLanguages>(this, CommonLanguages.DA, code);
3048        if ("da-DK".equals(codeString))
3049          return new Enumeration<CommonLanguages>(this, CommonLanguages.DADK, code);
3050        if ("de".equals(codeString))
3051          return new Enumeration<CommonLanguages>(this, CommonLanguages.DE, code);
3052        if ("de-AT".equals(codeString))
3053          return new Enumeration<CommonLanguages>(this, CommonLanguages.DEAT, code);
3054        if ("de-CH".equals(codeString))
3055          return new Enumeration<CommonLanguages>(this, CommonLanguages.DECH, code);
3056        if ("de-DE".equals(codeString))
3057          return new Enumeration<CommonLanguages>(this, CommonLanguages.DEDE, code);
3058        if ("el".equals(codeString))
3059          return new Enumeration<CommonLanguages>(this, CommonLanguages.EL, code);
3060        if ("el-GR".equals(codeString))
3061          return new Enumeration<CommonLanguages>(this, CommonLanguages.ELGR, code);
3062        if ("en".equals(codeString))
3063          return new Enumeration<CommonLanguages>(this, CommonLanguages.EN, code);
3064        if ("en-AU".equals(codeString))
3065          return new Enumeration<CommonLanguages>(this, CommonLanguages.ENAU, code);
3066        if ("en-CA".equals(codeString))
3067          return new Enumeration<CommonLanguages>(this, CommonLanguages.ENCA, code);
3068        if ("en-GB".equals(codeString))
3069          return new Enumeration<CommonLanguages>(this, CommonLanguages.ENGB, code);
3070        if ("en-IN".equals(codeString))
3071          return new Enumeration<CommonLanguages>(this, CommonLanguages.ENIN, code);
3072        if ("en-NZ".equals(codeString))
3073          return new Enumeration<CommonLanguages>(this, CommonLanguages.ENNZ, code);
3074        if ("en-SG".equals(codeString))
3075          return new Enumeration<CommonLanguages>(this, CommonLanguages.ENSG, code);
3076        if ("en-US".equals(codeString))
3077          return new Enumeration<CommonLanguages>(this, CommonLanguages.ENUS, code);
3078        if ("es".equals(codeString))
3079          return new Enumeration<CommonLanguages>(this, CommonLanguages.ES, code);
3080        if ("es-AR".equals(codeString))
3081          return new Enumeration<CommonLanguages>(this, CommonLanguages.ESAR, code);
3082        if ("es-ES".equals(codeString))
3083          return new Enumeration<CommonLanguages>(this, CommonLanguages.ESES, code);
3084        if ("es-UY".equals(codeString))
3085          return new Enumeration<CommonLanguages>(this, CommonLanguages.ESUY, code);
3086        if ("et".equals(codeString))
3087          return new Enumeration<CommonLanguages>(this, CommonLanguages.ET, code);
3088        if ("et-EE".equals(codeString))
3089          return new Enumeration<CommonLanguages>(this, CommonLanguages.ETEE, code);
3090        if ("fi".equals(codeString))
3091          return new Enumeration<CommonLanguages>(this, CommonLanguages.FI, code);
3092        if ("fr".equals(codeString))
3093          return new Enumeration<CommonLanguages>(this, CommonLanguages.FR, code);
3094        if ("fr-BE".equals(codeString))
3095          return new Enumeration<CommonLanguages>(this, CommonLanguages.FRBE, code);
3096        if ("fr-CH".equals(codeString))
3097          return new Enumeration<CommonLanguages>(this, CommonLanguages.FRCH, code);
3098        if ("fr-FR".equals(codeString))
3099          return new Enumeration<CommonLanguages>(this, CommonLanguages.FRFR, code);
3100        if ("fi-FI".equals(codeString))
3101          return new Enumeration<CommonLanguages>(this, CommonLanguages.FIFI, code);
3102        if ("fr-CA".equals(codeString))
3103          return new Enumeration<CommonLanguages>(this, CommonLanguages.FRCA, code);
3104        if ("fy".equals(codeString))
3105          return new Enumeration<CommonLanguages>(this, CommonLanguages.FY, code);
3106        if ("fy-NL".equals(codeString))
3107          return new Enumeration<CommonLanguages>(this, CommonLanguages.FYNL, code);
3108        if ("hi".equals(codeString))
3109          return new Enumeration<CommonLanguages>(this, CommonLanguages.HI, code);
3110        if ("hr".equals(codeString))
3111          return new Enumeration<CommonLanguages>(this, CommonLanguages.HR, code);
3112        if ("hr-HR".equals(codeString))
3113          return new Enumeration<CommonLanguages>(this, CommonLanguages.HRHR, code);
3114        if ("is".equals(codeString))
3115          return new Enumeration<CommonLanguages>(this, CommonLanguages.IS, code);
3116        if ("is-IS".equals(codeString))
3117          return new Enumeration<CommonLanguages>(this, CommonLanguages.ISIS, code);
3118        if ("it".equals(codeString))
3119          return new Enumeration<CommonLanguages>(this, CommonLanguages.IT, code);
3120        if ("it-CH".equals(codeString))
3121          return new Enumeration<CommonLanguages>(this, CommonLanguages.ITCH, code);
3122        if ("it-IT".equals(codeString))
3123          return new Enumeration<CommonLanguages>(this, CommonLanguages.ITIT, code);
3124        if ("ja".equals(codeString))
3125          return new Enumeration<CommonLanguages>(this, CommonLanguages.JA, code);
3126        if ("ko".equals(codeString))
3127          return new Enumeration<CommonLanguages>(this, CommonLanguages.KO, code);
3128        if ("lt".equals(codeString))
3129          return new Enumeration<CommonLanguages>(this, CommonLanguages.LT, code);
3130        if ("lt-LT".equals(codeString))
3131          return new Enumeration<CommonLanguages>(this, CommonLanguages.LTLT, code);
3132        if ("lv".equals(codeString))
3133          return new Enumeration<CommonLanguages>(this, CommonLanguages.LV, code);
3134        if ("lv-LV".equals(codeString))
3135          return new Enumeration<CommonLanguages>(this, CommonLanguages.LVLV, code);
3136        if ("nl".equals(codeString))
3137          return new Enumeration<CommonLanguages>(this, CommonLanguages.NL, code);
3138        if ("nl-BE".equals(codeString))
3139          return new Enumeration<CommonLanguages>(this, CommonLanguages.NLBE, code);
3140        if ("nl-NL".equals(codeString))
3141          return new Enumeration<CommonLanguages>(this, CommonLanguages.NLNL, code);
3142        if ("no".equals(codeString))
3143          return new Enumeration<CommonLanguages>(this, CommonLanguages.NO, code);
3144        if ("no-NO".equals(codeString))
3145          return new Enumeration<CommonLanguages>(this, CommonLanguages.NONO, code);
3146        if ("pa".equals(codeString))
3147          return new Enumeration<CommonLanguages>(this, CommonLanguages.PA, code);
3148        if ("pl".equals(codeString))
3149          return new Enumeration<CommonLanguages>(this, CommonLanguages.PL, code);
3150        if ("pl-PL".equals(codeString))
3151          return new Enumeration<CommonLanguages>(this, CommonLanguages.PLPL, code);
3152        if ("pt".equals(codeString))
3153          return new Enumeration<CommonLanguages>(this, CommonLanguages.PT, code);
3154        if ("pt-PT".equals(codeString))
3155          return new Enumeration<CommonLanguages>(this, CommonLanguages.PTPT, code);
3156        if ("pt-BR".equals(codeString))
3157          return new Enumeration<CommonLanguages>(this, CommonLanguages.PTBR, code);
3158        if ("ro".equals(codeString))
3159          return new Enumeration<CommonLanguages>(this, CommonLanguages.RO, code);
3160        if ("ro-RO".equals(codeString))
3161          return new Enumeration<CommonLanguages>(this, CommonLanguages.RORO, code);
3162        if ("ru".equals(codeString))
3163          return new Enumeration<CommonLanguages>(this, CommonLanguages.RU, code);
3164        if ("ru-RU".equals(codeString))
3165          return new Enumeration<CommonLanguages>(this, CommonLanguages.RURU, code);
3166        if ("sk".equals(codeString))
3167          return new Enumeration<CommonLanguages>(this, CommonLanguages.SK, code);
3168        if ("sk-SK".equals(codeString))
3169          return new Enumeration<CommonLanguages>(this, CommonLanguages.SKSK, code);
3170        if ("sl".equals(codeString))
3171          return new Enumeration<CommonLanguages>(this, CommonLanguages.SL, code);
3172        if ("sl-SI".equals(codeString))
3173          return new Enumeration<CommonLanguages>(this, CommonLanguages.SLSI, code);
3174        if ("sr".equals(codeString))
3175          return new Enumeration<CommonLanguages>(this, CommonLanguages.SR, code);
3176        if ("sr-RS".equals(codeString))
3177          return new Enumeration<CommonLanguages>(this, CommonLanguages.SRRS, code);
3178        if ("sv".equals(codeString))
3179          return new Enumeration<CommonLanguages>(this, CommonLanguages.SV, code);
3180        if ("sv-SE".equals(codeString))
3181          return new Enumeration<CommonLanguages>(this, CommonLanguages.SVSE, code);
3182        if ("te".equals(codeString))
3183          return new Enumeration<CommonLanguages>(this, CommonLanguages.TE, code);
3184        if ("zh".equals(codeString))
3185          return new Enumeration<CommonLanguages>(this, CommonLanguages.ZH, code);
3186        if ("zh-CN".equals(codeString))
3187          return new Enumeration<CommonLanguages>(this, CommonLanguages.ZHCN, code);
3188        if ("zh-HK".equals(codeString))
3189          return new Enumeration<CommonLanguages>(this, CommonLanguages.ZHHK, code);
3190        if ("zh-SG".equals(codeString))
3191          return new Enumeration<CommonLanguages>(this, CommonLanguages.ZHSG, code);
3192        if ("zh-TW".equals(codeString))
3193          return new Enumeration<CommonLanguages>(this, CommonLanguages.ZHTW, code);
3194        throw new FHIRException("Unknown CommonLanguages code '"+codeString+"'");
3195        }
3196    public String toCode(CommonLanguages code) {
3197       if (code == CommonLanguages.NULL)
3198           return null;
3199       if (code == CommonLanguages.AR)
3200        return "ar";
3201      if (code == CommonLanguages.BG)
3202        return "bg";
3203      if (code == CommonLanguages.BGBG)
3204        return "bg-BG";
3205      if (code == CommonLanguages.BN)
3206        return "bn";
3207      if (code == CommonLanguages.CS)
3208        return "cs";
3209      if (code == CommonLanguages.CSCZ)
3210        return "cs-CZ";
3211      if (code == CommonLanguages.BS)
3212        return "bs";
3213      if (code == CommonLanguages.BSBA)
3214        return "bs-BA";
3215      if (code == CommonLanguages.DA)
3216        return "da";
3217      if (code == CommonLanguages.DADK)
3218        return "da-DK";
3219      if (code == CommonLanguages.DE)
3220        return "de";
3221      if (code == CommonLanguages.DEAT)
3222        return "de-AT";
3223      if (code == CommonLanguages.DECH)
3224        return "de-CH";
3225      if (code == CommonLanguages.DEDE)
3226        return "de-DE";
3227      if (code == CommonLanguages.EL)
3228        return "el";
3229      if (code == CommonLanguages.ELGR)
3230        return "el-GR";
3231      if (code == CommonLanguages.EN)
3232        return "en";
3233      if (code == CommonLanguages.ENAU)
3234        return "en-AU";
3235      if (code == CommonLanguages.ENCA)
3236        return "en-CA";
3237      if (code == CommonLanguages.ENGB)
3238        return "en-GB";
3239      if (code == CommonLanguages.ENIN)
3240        return "en-IN";
3241      if (code == CommonLanguages.ENNZ)
3242        return "en-NZ";
3243      if (code == CommonLanguages.ENSG)
3244        return "en-SG";
3245      if (code == CommonLanguages.ENUS)
3246        return "en-US";
3247      if (code == CommonLanguages.ES)
3248        return "es";
3249      if (code == CommonLanguages.ESAR)
3250        return "es-AR";
3251      if (code == CommonLanguages.ESES)
3252        return "es-ES";
3253      if (code == CommonLanguages.ESUY)
3254        return "es-UY";
3255      if (code == CommonLanguages.ET)
3256        return "et";
3257      if (code == CommonLanguages.ETEE)
3258        return "et-EE";
3259      if (code == CommonLanguages.FI)
3260        return "fi";
3261      if (code == CommonLanguages.FR)
3262        return "fr";
3263      if (code == CommonLanguages.FRBE)
3264        return "fr-BE";
3265      if (code == CommonLanguages.FRCH)
3266        return "fr-CH";
3267      if (code == CommonLanguages.FRFR)
3268        return "fr-FR";
3269      if (code == CommonLanguages.FIFI)
3270        return "fi-FI";
3271      if (code == CommonLanguages.FRCA)
3272        return "fr-CA";
3273      if (code == CommonLanguages.FY)
3274        return "fy";
3275      if (code == CommonLanguages.FYNL)
3276        return "fy-NL";
3277      if (code == CommonLanguages.HI)
3278        return "hi";
3279      if (code == CommonLanguages.HR)
3280        return "hr";
3281      if (code == CommonLanguages.HRHR)
3282        return "hr-HR";
3283      if (code == CommonLanguages.IS)
3284        return "is";
3285      if (code == CommonLanguages.ISIS)
3286        return "is-IS";
3287      if (code == CommonLanguages.IT)
3288        return "it";
3289      if (code == CommonLanguages.ITCH)
3290        return "it-CH";
3291      if (code == CommonLanguages.ITIT)
3292        return "it-IT";
3293      if (code == CommonLanguages.JA)
3294        return "ja";
3295      if (code == CommonLanguages.KO)
3296        return "ko";
3297      if (code == CommonLanguages.LT)
3298        return "lt";
3299      if (code == CommonLanguages.LTLT)
3300        return "lt-LT";
3301      if (code == CommonLanguages.LV)
3302        return "lv";
3303      if (code == CommonLanguages.LVLV)
3304        return "lv-LV";
3305      if (code == CommonLanguages.NL)
3306        return "nl";
3307      if (code == CommonLanguages.NLBE)
3308        return "nl-BE";
3309      if (code == CommonLanguages.NLNL)
3310        return "nl-NL";
3311      if (code == CommonLanguages.NO)
3312        return "no";
3313      if (code == CommonLanguages.NONO)
3314        return "no-NO";
3315      if (code == CommonLanguages.PA)
3316        return "pa";
3317      if (code == CommonLanguages.PL)
3318        return "pl";
3319      if (code == CommonLanguages.PLPL)
3320        return "pl-PL";
3321      if (code == CommonLanguages.PT)
3322        return "pt";
3323      if (code == CommonLanguages.PTPT)
3324        return "pt-PT";
3325      if (code == CommonLanguages.PTBR)
3326        return "pt-BR";
3327      if (code == CommonLanguages.RO)
3328        return "ro";
3329      if (code == CommonLanguages.RORO)
3330        return "ro-RO";
3331      if (code == CommonLanguages.RU)
3332        return "ru";
3333      if (code == CommonLanguages.RURU)
3334        return "ru-RU";
3335      if (code == CommonLanguages.SK)
3336        return "sk";
3337      if (code == CommonLanguages.SKSK)
3338        return "sk-SK";
3339      if (code == CommonLanguages.SL)
3340        return "sl";
3341      if (code == CommonLanguages.SLSI)
3342        return "sl-SI";
3343      if (code == CommonLanguages.SR)
3344        return "sr";
3345      if (code == CommonLanguages.SRRS)
3346        return "sr-RS";
3347      if (code == CommonLanguages.SV)
3348        return "sv";
3349      if (code == CommonLanguages.SVSE)
3350        return "sv-SE";
3351      if (code == CommonLanguages.TE)
3352        return "te";
3353      if (code == CommonLanguages.ZH)
3354        return "zh";
3355      if (code == CommonLanguages.ZHCN)
3356        return "zh-CN";
3357      if (code == CommonLanguages.ZHHK)
3358        return "zh-HK";
3359      if (code == CommonLanguages.ZHSG)
3360        return "zh-SG";
3361      if (code == CommonLanguages.ZHTW)
3362        return "zh-TW";
3363      return "?";
3364   }
3365    public String toSystem(CommonLanguages code) {
3366      return code.getSystem();
3367      }
3368    }
3369
3370    public enum CompartmentType {
3371        /**
3372         * The compartment definition is for the patient compartment.
3373         */
3374        PATIENT, 
3375        /**
3376         * The compartment definition is for the encounter compartment.
3377         */
3378        ENCOUNTER, 
3379        /**
3380         * The compartment definition is for the related-person compartment.
3381         */
3382        RELATEDPERSON, 
3383        /**
3384         * The compartment definition is for the practitioner compartment.
3385         */
3386        PRACTITIONER, 
3387        /**
3388         * The compartment definition is for the device compartment.
3389         */
3390        DEVICE, 
3391        /**
3392         * The compartment definition is for the episodeofcare compartment.
3393         */
3394        EPISODEOFCARE, 
3395        /**
3396         * added to help the parsers
3397         */
3398        GROUP, 
3399        /**
3400         * added to help the parsers
3401         */
3402        NULL;
3403        public static CompartmentType fromCode(String codeString) throws FHIRException {
3404            if (codeString == null || "".equals(codeString))
3405                return null;
3406        if ("Patient".equals(codeString))
3407          return PATIENT;
3408        if ("Encounter".equals(codeString))
3409          return ENCOUNTER;
3410        if ("RelatedPerson".equals(codeString))
3411          return RELATEDPERSON;
3412        if ("Practitioner".equals(codeString))
3413          return PRACTITIONER;
3414        if ("Device".equals(codeString))
3415          return DEVICE;
3416        if ("EpisodeOfCare".equals(codeString))
3417          return EPISODEOFCARE;
3418        if ("Group".equals(codeString))
3419          return GROUP;
3420        throw new FHIRException("Unknown CompartmentType code '"+codeString+"'");
3421        }
3422        public static boolean isValidCode(String codeString) {
3423            if (codeString == null || "".equals(codeString))
3424                return false;
3425          return Utilities.existsInList(codeString, "Patient", "Encounter", "RelatedPerson", "Practitioner", "Device", "EpisodeOfCare");
3426        }
3427        public String toCode() {
3428          switch (this) {
3429            case PATIENT: return "Patient";
3430            case ENCOUNTER: return "Encounter";
3431            case RELATEDPERSON: return "RelatedPerson";
3432            case PRACTITIONER: return "Practitioner";
3433            case DEVICE: return "Device";
3434            case EPISODEOFCARE: return "EpisodeOfCare";
3435            case GROUP: return "Group";
3436            case NULL: return null;
3437            default: return "?";
3438          }
3439        }
3440        public String getSystem() {
3441          switch (this) {
3442            case PATIENT: return "http://hl7.org/fhir/compartment-type";
3443            case ENCOUNTER: return "http://hl7.org/fhir/compartment-type";
3444            case RELATEDPERSON: return "http://hl7.org/fhir/compartment-type";
3445            case PRACTITIONER: return "http://hl7.org/fhir/compartment-type";
3446            case DEVICE: return "http://hl7.org/fhir/compartment-type";
3447            case EPISODEOFCARE: return "http://hl7.org/fhir/compartment-type";
3448            case GROUP: return "http://hl7.org/fhir/compartment-type";
3449            case NULL: return null;
3450            default: return "?";
3451          }
3452        }
3453        public String getDefinition() {
3454          switch (this) {
3455            case PATIENT: return "The compartment definition is for the patient compartment.";
3456            case ENCOUNTER: return "The compartment definition is for the encounter compartment.";
3457            case RELATEDPERSON: return "The compartment definition is for the related-person compartment.";
3458            case PRACTITIONER: return "The compartment definition is for the practitioner compartment.";
3459            case DEVICE: return "The compartment definition is for the device compartment.";
3460            case EPISODEOFCARE: return "The compartment definition is for the episodeofcare compartment.";
3461            case GROUP: return "The compartment definition is for the Group compartment.";
3462            case NULL: return null;
3463            default: return "?";
3464          }
3465        }
3466        public String getDisplay() {
3467          switch (this) {
3468            case PATIENT: return "Patient";
3469            case ENCOUNTER: return "Encounter";
3470            case RELATEDPERSON: return "RelatedPerson";
3471            case PRACTITIONER: return "Practitioner";
3472            case DEVICE: return "Device";
3473            case EPISODEOFCARE: return "EpisodeOfCare";
3474            case GROUP: return "Group";
3475            case NULL: return null;
3476            default: return "?";
3477          }
3478        }
3479    }
3480
3481  public static class CompartmentTypeEnumFactory implements EnumFactory<CompartmentType> {
3482    public CompartmentType fromCode(String codeString) throws IllegalArgumentException {
3483      if (codeString == null || "".equals(codeString))
3484            if (codeString == null || "".equals(codeString))
3485                return null;
3486        if ("Patient".equals(codeString))
3487          return CompartmentType.PATIENT;
3488        if ("Encounter".equals(codeString))
3489          return CompartmentType.ENCOUNTER;
3490        if ("RelatedPerson".equals(codeString))
3491          return CompartmentType.RELATEDPERSON;
3492        if ("Practitioner".equals(codeString))
3493          return CompartmentType.PRACTITIONER;
3494        if ("Device".equals(codeString))
3495          return CompartmentType.DEVICE;
3496        if ("EpisodeOfCare".equals(codeString))
3497          return CompartmentType.EPISODEOFCARE;
3498        if ("Group".equals(codeString))
3499          return CompartmentType.GROUP;
3500        throw new IllegalArgumentException("Unknown CompartmentType code '"+codeString+"'");
3501        }
3502
3503        public Enumeration<CompartmentType> fromType(PrimitiveType<?> code) throws FHIRException {
3504          if (code == null)
3505            return null;
3506          if (code.isEmpty())
3507            return new Enumeration<CompartmentType>(this, CompartmentType.NULL, code);
3508          String codeString = ((PrimitiveType) code).asStringValue();
3509          if (codeString == null || "".equals(codeString))
3510            return new Enumeration<CompartmentType>(this, CompartmentType.NULL, code);
3511        if ("Patient".equals(codeString))
3512          return new Enumeration<CompartmentType>(this, CompartmentType.PATIENT, code);
3513        if ("Encounter".equals(codeString))
3514          return new Enumeration<CompartmentType>(this, CompartmentType.ENCOUNTER, code);
3515        if ("RelatedPerson".equals(codeString))
3516          return new Enumeration<CompartmentType>(this, CompartmentType.RELATEDPERSON, code);
3517        if ("Practitioner".equals(codeString))
3518          return new Enumeration<CompartmentType>(this, CompartmentType.PRACTITIONER, code);
3519        if ("Device".equals(codeString))
3520          return new Enumeration<CompartmentType>(this, CompartmentType.DEVICE, code);
3521        if ("EpisodeOfCare".equals(codeString))
3522          return new Enumeration<CompartmentType>(this, CompartmentType.EPISODEOFCARE, code);
3523        if ("Group".equals(codeString))
3524          return new Enumeration<CompartmentType>(this, CompartmentType.GROUP, code);
3525        throw new FHIRException("Unknown CompartmentType code '"+codeString+"'");
3526        }
3527    public String toCode(CompartmentType code) {
3528       if (code == CompartmentType.NULL)
3529           return null;
3530       if (code == CompartmentType.PATIENT)
3531        return "Patient";
3532      if (code == CompartmentType.ENCOUNTER)
3533        return "Encounter";
3534      if (code == CompartmentType.RELATEDPERSON)
3535        return "RelatedPerson";
3536      if (code == CompartmentType.PRACTITIONER)
3537        return "Practitioner";
3538      if (code == CompartmentType.DEVICE)
3539        return "Device";
3540      if (code == CompartmentType.EPISODEOFCARE)
3541        return "EpisodeOfCare";
3542      if (code == CompartmentType.GROUP)
3543        return "Group";
3544      return "?";
3545   }
3546    public String toSystem(CompartmentType code) {
3547      return code.getSystem();
3548      }
3549    }
3550
3551    public enum CompositionStatus {
3552        /**
3553         * The existence of the composition is registered, but there is nothing yet available.
3554         */
3555        REGISTERED, 
3556        /**
3557         * This is a partial (e.g. initial, interim or preliminary) composition: data in the composition may be incomplete or unverified.
3558         */
3559        PARTIAL, 
3560        /**
3561         * Verified early results are available, but not all results are final.
3562         */
3563        PRELIMINARY, 
3564        /**
3565         * 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.
3566         */
3567        FINAL, 
3568        /**
3569         * 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.
3570         */
3571        AMENDED, 
3572        /**
3573         * Subsequent to being final, the composition content has been modified to correct an error in the composition or referenced results.
3574         */
3575        CORRECTED, 
3576        /**
3577         * Subsequent to being final, the composition content has been modified by adding new content. The existing content is unchanged.
3578         */
3579        APPENDED, 
3580        /**
3581         * The composition is unavailable because the measurement was not started or not completed (also sometimes called "aborted").
3582         */
3583        CANCELLED, 
3584        /**
3585         * 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.
3586         */
3587        ENTEREDINERROR, 
3588        /**
3589         * This composition has been withdrawn or superseded and should no longer be used.
3590         */
3591        DEPRECATED, 
3592        /**
3593         * 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.
3594         */
3595        UNKNOWN, 
3596        /**
3597         * added to help the parsers
3598         */
3599        NULL;
3600        public static CompositionStatus fromCode(String codeString) throws FHIRException {
3601            if (codeString == null || "".equals(codeString))
3602                return null;
3603        if ("registered".equals(codeString))
3604          return REGISTERED;
3605        if ("partial".equals(codeString))
3606          return PARTIAL;
3607        if ("preliminary".equals(codeString))
3608          return PRELIMINARY;
3609        if ("final".equals(codeString))
3610          return FINAL;
3611        if ("amended".equals(codeString))
3612          return AMENDED;
3613        if ("corrected".equals(codeString))
3614          return CORRECTED;
3615        if ("appended".equals(codeString))
3616          return APPENDED;
3617        if ("cancelled".equals(codeString))
3618          return CANCELLED;
3619        if ("entered-in-error".equals(codeString))
3620          return ENTEREDINERROR;
3621        if ("deprecated".equals(codeString))
3622          return DEPRECATED;
3623        if ("unknown".equals(codeString))
3624          return UNKNOWN;
3625        throw new FHIRException("Unknown CompositionStatus code '"+codeString+"'");
3626        }
3627        public static boolean isValidCode(String codeString) {
3628            if (codeString == null || "".equals(codeString))
3629                return false;
3630          return Utilities.existsInList(codeString, "registered", "partial", "preliminary", "final", "amended", "corrected", "appended", "cancelled", "entered-in-error", "deprecated", "unknown");
3631        }
3632        public String toCode() {
3633          switch (this) {
3634            case REGISTERED: return "registered";
3635            case PARTIAL: return "partial";
3636            case PRELIMINARY: return "preliminary";
3637            case FINAL: return "final";
3638            case AMENDED: return "amended";
3639            case CORRECTED: return "corrected";
3640            case APPENDED: return "appended";
3641            case CANCELLED: return "cancelled";
3642            case ENTEREDINERROR: return "entered-in-error";
3643            case DEPRECATED: return "deprecated";
3644            case UNKNOWN: return "unknown";
3645            case NULL: return null;
3646            default: return "?";
3647          }
3648        }
3649        public String getSystem() {
3650          switch (this) {
3651            case REGISTERED: return "http://hl7.org/fhir/composition-status";
3652            case PARTIAL: return "http://hl7.org/fhir/composition-status";
3653            case PRELIMINARY: return "http://hl7.org/fhir/composition-status";
3654            case FINAL: return "http://hl7.org/fhir/composition-status";
3655            case AMENDED: return "http://hl7.org/fhir/composition-status";
3656            case CORRECTED: return "http://hl7.org/fhir/composition-status";
3657            case APPENDED: return "http://hl7.org/fhir/composition-status";
3658            case CANCELLED: return "http://hl7.org/fhir/composition-status";
3659            case ENTEREDINERROR: return "http://hl7.org/fhir/composition-status";
3660            case DEPRECATED: return "http://hl7.org/fhir/composition-status";
3661            case UNKNOWN: return "http://hl7.org/fhir/composition-status";
3662            case NULL: return null;
3663            default: return "?";
3664          }
3665        }
3666        public String getDefinition() {
3667          switch (this) {
3668            case REGISTERED: return "The existence of the composition is registered, but there is nothing yet available.";
3669            case PARTIAL: return "This is a partial (e.g. initial, interim or preliminary) composition: data in the composition may be incomplete or unverified.";
3670            case PRELIMINARY: return "Verified early results are available, but not all results are final.";
3671            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.";
3672            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.";
3673            case CORRECTED: return "Subsequent to being final, the composition content has been modified to correct an error in the composition or referenced results.";
3674            case APPENDED: return "Subsequent to being final, the composition content has been modified by adding new content. The existing content is unchanged.";
3675            case CANCELLED: return "The composition is unavailable because the measurement was not started or not completed (also sometimes called \"aborted\").";
3676            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.";
3677            case DEPRECATED: return "This composition has been withdrawn or superseded and should no longer be used.";
3678            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.";
3679            case NULL: return null;
3680            default: return "?";
3681          }
3682        }
3683        public String getDisplay() {
3684          switch (this) {
3685            case REGISTERED: return "Registered";
3686            case PARTIAL: return "Partial";
3687            case PRELIMINARY: return "Preliminary";
3688            case FINAL: return "Final";
3689            case AMENDED: return "Amended";
3690            case CORRECTED: return "Corrected";
3691            case APPENDED: return "Appended";
3692            case CANCELLED: return "Cancelled";
3693            case ENTEREDINERROR: return "Entered in Error";
3694            case DEPRECATED: return "Deprecated";
3695            case UNKNOWN: return "Unknown";
3696            case NULL: return null;
3697            default: return "?";
3698          }
3699        }
3700    }
3701
3702  public static class CompositionStatusEnumFactory implements EnumFactory<CompositionStatus> {
3703    public CompositionStatus fromCode(String codeString) throws IllegalArgumentException {
3704      if (codeString == null || "".equals(codeString))
3705            if (codeString == null || "".equals(codeString))
3706                return null;
3707        if ("registered".equals(codeString))
3708          return CompositionStatus.REGISTERED;
3709        if ("partial".equals(codeString))
3710          return CompositionStatus.PARTIAL;
3711        if ("preliminary".equals(codeString))
3712          return CompositionStatus.PRELIMINARY;
3713        if ("final".equals(codeString))
3714          return CompositionStatus.FINAL;
3715        if ("amended".equals(codeString))
3716          return CompositionStatus.AMENDED;
3717        if ("corrected".equals(codeString))
3718          return CompositionStatus.CORRECTED;
3719        if ("appended".equals(codeString))
3720          return CompositionStatus.APPENDED;
3721        if ("cancelled".equals(codeString))
3722          return CompositionStatus.CANCELLED;
3723        if ("entered-in-error".equals(codeString))
3724          return CompositionStatus.ENTEREDINERROR;
3725        if ("deprecated".equals(codeString))
3726          return CompositionStatus.DEPRECATED;
3727        if ("unknown".equals(codeString))
3728          return CompositionStatus.UNKNOWN;
3729        throw new IllegalArgumentException("Unknown CompositionStatus code '"+codeString+"'");
3730        }
3731
3732        public Enumeration<CompositionStatus> fromType(PrimitiveType<?> code) throws FHIRException {
3733          if (code == null)
3734            return null;
3735          if (code.isEmpty())
3736            return new Enumeration<CompositionStatus>(this, CompositionStatus.NULL, code);
3737          String codeString = ((PrimitiveType) code).asStringValue();
3738          if (codeString == null || "".equals(codeString))
3739            return new Enumeration<CompositionStatus>(this, CompositionStatus.NULL, code);
3740        if ("registered".equals(codeString))
3741          return new Enumeration<CompositionStatus>(this, CompositionStatus.REGISTERED, code);
3742        if ("partial".equals(codeString))
3743          return new Enumeration<CompositionStatus>(this, CompositionStatus.PARTIAL, code);
3744        if ("preliminary".equals(codeString))
3745          return new Enumeration<CompositionStatus>(this, CompositionStatus.PRELIMINARY, code);
3746        if ("final".equals(codeString))
3747          return new Enumeration<CompositionStatus>(this, CompositionStatus.FINAL, code);
3748        if ("amended".equals(codeString))
3749          return new Enumeration<CompositionStatus>(this, CompositionStatus.AMENDED, code);
3750        if ("corrected".equals(codeString))
3751          return new Enumeration<CompositionStatus>(this, CompositionStatus.CORRECTED, code);
3752        if ("appended".equals(codeString))
3753          return new Enumeration<CompositionStatus>(this, CompositionStatus.APPENDED, code);
3754        if ("cancelled".equals(codeString))
3755          return new Enumeration<CompositionStatus>(this, CompositionStatus.CANCELLED, code);
3756        if ("entered-in-error".equals(codeString))
3757          return new Enumeration<CompositionStatus>(this, CompositionStatus.ENTEREDINERROR, code);
3758        if ("deprecated".equals(codeString))
3759          return new Enumeration<CompositionStatus>(this, CompositionStatus.DEPRECATED, code);
3760        if ("unknown".equals(codeString))
3761          return new Enumeration<CompositionStatus>(this, CompositionStatus.UNKNOWN, code);
3762        throw new FHIRException("Unknown CompositionStatus code '"+codeString+"'");
3763        }
3764    public String toCode(CompositionStatus code) {
3765       if (code == CompositionStatus.NULL)
3766           return null;
3767       if (code == CompositionStatus.REGISTERED)
3768        return "registered";
3769      if (code == CompositionStatus.PARTIAL)
3770        return "partial";
3771      if (code == CompositionStatus.PRELIMINARY)
3772        return "preliminary";
3773      if (code == CompositionStatus.FINAL)
3774        return "final";
3775      if (code == CompositionStatus.AMENDED)
3776        return "amended";
3777      if (code == CompositionStatus.CORRECTED)
3778        return "corrected";
3779      if (code == CompositionStatus.APPENDED)
3780        return "appended";
3781      if (code == CompositionStatus.CANCELLED)
3782        return "cancelled";
3783      if (code == CompositionStatus.ENTEREDINERROR)
3784        return "entered-in-error";
3785      if (code == CompositionStatus.DEPRECATED)
3786        return "deprecated";
3787      if (code == CompositionStatus.UNKNOWN)
3788        return "unknown";
3789      return "?";
3790   }
3791    public String toSystem(CompositionStatus code) {
3792      return code.getSystem();
3793      }
3794    }
3795
3796    public enum ConceptMapRelationship {
3797        /**
3798         * The concepts are related to each other, but the exact relationship is not known.
3799         */
3800        RELATEDTO, 
3801        /**
3802         * The definitions of the concepts mean the same thing.
3803         */
3804        EQUIVALENT, 
3805        /**
3806         * The source concept is narrower in meaning than the target concept.
3807         */
3808        SOURCEISNARROWERTHANTARGET, 
3809        /**
3810         * The source concept is broader in meaning than the target concept.
3811         */
3812        SOURCEISBROADERTHANTARGET, 
3813        /**
3814         * This is an explicit assertion that the target concept is not related to the source concept.
3815         */
3816        NOTRELATEDTO, 
3817        /**
3818         * added to help the parsers
3819         */
3820        NULL;
3821        public static ConceptMapRelationship fromCode(String codeString) throws FHIRException {
3822            if (codeString == null || "".equals(codeString))
3823                return null;
3824        if ("related-to".equals(codeString))
3825          return RELATEDTO;
3826        if ("equivalent".equals(codeString))
3827          return EQUIVALENT;
3828        if ("source-is-narrower-than-target".equals(codeString))
3829          return SOURCEISNARROWERTHANTARGET;
3830        if ("source-is-broader-than-target".equals(codeString))
3831          return SOURCEISBROADERTHANTARGET;
3832        if ("not-related-to".equals(codeString))
3833          return NOTRELATEDTO;
3834        throw new FHIRException("Unknown ConceptMapRelationship code '"+codeString+"'");
3835        }
3836        public static boolean isValidCode(String codeString) {
3837            if (codeString == null || "".equals(codeString))
3838                return false;
3839          return Utilities.existsInList(codeString, "related-to", "equivalent", "source-is-narrower-than-target", "source-is-broader-than-target", "not-related-to");
3840        }
3841        public String toCode() {
3842          switch (this) {
3843            case RELATEDTO: return "related-to";
3844            case EQUIVALENT: return "equivalent";
3845            case SOURCEISNARROWERTHANTARGET: return "source-is-narrower-than-target";
3846            case SOURCEISBROADERTHANTARGET: return "source-is-broader-than-target";
3847            case NOTRELATEDTO: return "not-related-to";
3848            case NULL: return null;
3849            default: return "?";
3850          }
3851        }
3852        public String getSystem() {
3853          switch (this) {
3854            case RELATEDTO: return "http://hl7.org/fhir/concept-map-relationship";
3855            case EQUIVALENT: return "http://hl7.org/fhir/concept-map-relationship";
3856            case SOURCEISNARROWERTHANTARGET: return "http://hl7.org/fhir/concept-map-relationship";
3857            case SOURCEISBROADERTHANTARGET: return "http://hl7.org/fhir/concept-map-relationship";
3858            case NOTRELATEDTO: return "http://hl7.org/fhir/concept-map-relationship";
3859            case NULL: return null;
3860            default: return "?";
3861          }
3862        }
3863        public String getDefinition() {
3864          switch (this) {
3865            case RELATEDTO: return "The concepts are related to each other, but the exact relationship is not known.";
3866            case EQUIVALENT: return "The definitions of the concepts mean the same thing.";
3867            case SOURCEISNARROWERTHANTARGET: return "The source concept is narrower in meaning than the target concept.";
3868            case SOURCEISBROADERTHANTARGET: return "The source concept is broader in meaning than the target concept.";
3869            case NOTRELATEDTO: return "This is an explicit assertion that the target concept is not related to the source concept.";
3870            case NULL: return null;
3871            default: return "?";
3872          }
3873        }
3874        public String getDisplay() {
3875          switch (this) {
3876            case RELATEDTO: return "Related To";
3877            case EQUIVALENT: return "Equivalent";
3878            case SOURCEISNARROWERTHANTARGET: return "Source Is Narrower Than Target";
3879            case SOURCEISBROADERTHANTARGET: return "Source Is Broader Than Target";
3880            case NOTRELATEDTO: return "Not Related To";
3881            case NULL: return null;
3882            default: return "?";
3883          }
3884        }
3885        public String getSymbol() {
3886          switch (this) {
3887          case RELATEDTO: return "-";
3888          case EQUIVALENT: return "=";
3889          case SOURCEISNARROWERTHANTARGET: return "<";
3890          case SOURCEISBROADERTHANTARGET: return ">";
3891          case NOTRELATEDTO: return "!=";
3892          case NULL: return null;
3893          default: return "?";
3894        }
3895        }
3896    }
3897
3898  public static class ConceptMapRelationshipEnumFactory implements EnumFactory<ConceptMapRelationship> {
3899    public ConceptMapRelationship fromCode(String codeString) throws IllegalArgumentException {
3900      if (codeString == null || "".equals(codeString))
3901            if (codeString == null || "".equals(codeString))
3902                return null;
3903        if ("related-to".equals(codeString))
3904          return ConceptMapRelationship.RELATEDTO;
3905        if ("equivalent".equals(codeString))
3906          return ConceptMapRelationship.EQUIVALENT;
3907        if ("source-is-narrower-than-target".equals(codeString))
3908          return ConceptMapRelationship.SOURCEISNARROWERTHANTARGET;
3909        if ("source-is-broader-than-target".equals(codeString))
3910          return ConceptMapRelationship.SOURCEISBROADERTHANTARGET;
3911        if ("not-related-to".equals(codeString))
3912          return ConceptMapRelationship.NOTRELATEDTO;
3913        throw new IllegalArgumentException("Unknown ConceptMapRelationship code '"+codeString+"'");
3914        }
3915
3916        public Enumeration<ConceptMapRelationship> fromType(PrimitiveType<?> code) throws FHIRException {
3917          if (code == null)
3918            return null;
3919          if (code.isEmpty())
3920            return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.NULL, code);
3921          String codeString = ((PrimitiveType) code).asStringValue();
3922          if (codeString == null || "".equals(codeString))
3923            return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.NULL, code);
3924        if ("related-to".equals(codeString))
3925          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.RELATEDTO, code);
3926        if ("equivalent".equals(codeString))
3927          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.EQUIVALENT, code);
3928        if ("source-is-narrower-than-target".equals(codeString))
3929          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.SOURCEISNARROWERTHANTARGET, code);
3930        if ("source-is-broader-than-target".equals(codeString))
3931          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.SOURCEISBROADERTHANTARGET, code);
3932        if ("not-related-to".equals(codeString))
3933          return new Enumeration<ConceptMapRelationship>(this, ConceptMapRelationship.NOTRELATEDTO, code);
3934        throw new FHIRException("Unknown ConceptMapRelationship code '"+codeString+"'");
3935        }
3936    public String toCode(ConceptMapRelationship code) {
3937       if (code == ConceptMapRelationship.NULL)
3938           return null;
3939       if (code == ConceptMapRelationship.RELATEDTO)
3940        return "related-to";
3941      if (code == ConceptMapRelationship.EQUIVALENT)
3942        return "equivalent";
3943      if (code == ConceptMapRelationship.SOURCEISNARROWERTHANTARGET)
3944        return "source-is-narrower-than-target";
3945      if (code == ConceptMapRelationship.SOURCEISBROADERTHANTARGET)
3946        return "source-is-broader-than-target";
3947      if (code == ConceptMapRelationship.NOTRELATEDTO)
3948        return "not-related-to";
3949      return "?";
3950   }
3951    public String toSystem(ConceptMapRelationship code) {
3952      return code.getSystem();
3953      }
3954    }
3955
3956    public enum ConsentDataMeaning {
3957        /**
3958         * The consent applies directly to the instance of the resource.
3959         */
3960        INSTANCE, 
3961        /**
3962         * The consent applies directly to the instance of the resource and instances it refers to.
3963         */
3964        RELATED, 
3965        /**
3966         * The consent applies directly to the instance of the resource and instances that refer to it.
3967         */
3968        DEPENDENTS, 
3969        /**
3970         * The consent applies to instances of resources that are authored by.
3971         */
3972        AUTHOREDBY, 
3973        /**
3974         * added to help the parsers
3975         */
3976        NULL;
3977        public static ConsentDataMeaning fromCode(String codeString) throws FHIRException {
3978            if (codeString == null || "".equals(codeString))
3979                return null;
3980        if ("instance".equals(codeString))
3981          return INSTANCE;
3982        if ("related".equals(codeString))
3983          return RELATED;
3984        if ("dependents".equals(codeString))
3985          return DEPENDENTS;
3986        if ("authoredby".equals(codeString))
3987          return AUTHOREDBY;
3988        throw new FHIRException("Unknown ConsentDataMeaning code '"+codeString+"'");
3989        }
3990        public static boolean isValidCode(String codeString) {
3991            if (codeString == null || "".equals(codeString))
3992                return false;
3993          return Utilities.existsInList(codeString, "instance", "related", "dependents", "authoredby");
3994        }
3995        public String toCode() {
3996          switch (this) {
3997            case INSTANCE: return "instance";
3998            case RELATED: return "related";
3999            case DEPENDENTS: return "dependents";
4000            case AUTHOREDBY: return "authoredby";
4001            case NULL: return null;
4002            default: return "?";
4003          }
4004        }
4005        public String getSystem() {
4006          switch (this) {
4007            case INSTANCE: return "http://hl7.org/fhir/consent-data-meaning";
4008            case RELATED: return "http://hl7.org/fhir/consent-data-meaning";
4009            case DEPENDENTS: return "http://hl7.org/fhir/consent-data-meaning";
4010            case AUTHOREDBY: return "http://hl7.org/fhir/consent-data-meaning";
4011            case NULL: return null;
4012            default: return "?";
4013          }
4014        }
4015        public String getDefinition() {
4016          switch (this) {
4017            case INSTANCE: return "The consent applies directly to the instance of the resource.";
4018            case RELATED: return "The consent applies directly to the instance of the resource and instances it refers to.";
4019            case DEPENDENTS: return "The consent applies directly to the instance of the resource and instances that refer to it.";
4020            case AUTHOREDBY: return "The consent applies to instances of resources that are authored by.";
4021            case NULL: return null;
4022            default: return "?";
4023          }
4024        }
4025        public String getDisplay() {
4026          switch (this) {
4027            case INSTANCE: return "Instance";
4028            case RELATED: return "Related";
4029            case DEPENDENTS: return "Dependents";
4030            case AUTHOREDBY: return "AuthoredBy";
4031            case NULL: return null;
4032            default: return "?";
4033          }
4034        }
4035    }
4036
4037  public static class ConsentDataMeaningEnumFactory implements EnumFactory<ConsentDataMeaning> {
4038    public ConsentDataMeaning fromCode(String codeString) throws IllegalArgumentException {
4039      if (codeString == null || "".equals(codeString))
4040            if (codeString == null || "".equals(codeString))
4041                return null;
4042        if ("instance".equals(codeString))
4043          return ConsentDataMeaning.INSTANCE;
4044        if ("related".equals(codeString))
4045          return ConsentDataMeaning.RELATED;
4046        if ("dependents".equals(codeString))
4047          return ConsentDataMeaning.DEPENDENTS;
4048        if ("authoredby".equals(codeString))
4049          return ConsentDataMeaning.AUTHOREDBY;
4050        throw new IllegalArgumentException("Unknown ConsentDataMeaning code '"+codeString+"'");
4051        }
4052
4053        public Enumeration<ConsentDataMeaning> fromType(PrimitiveType<?> code) throws FHIRException {
4054          if (code == null)
4055            return null;
4056          if (code.isEmpty())
4057            return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.NULL, code);
4058          String codeString = ((PrimitiveType) code).asStringValue();
4059          if (codeString == null || "".equals(codeString))
4060            return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.NULL, code);
4061        if ("instance".equals(codeString))
4062          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.INSTANCE, code);
4063        if ("related".equals(codeString))
4064          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.RELATED, code);
4065        if ("dependents".equals(codeString))
4066          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.DEPENDENTS, code);
4067        if ("authoredby".equals(codeString))
4068          return new Enumeration<ConsentDataMeaning>(this, ConsentDataMeaning.AUTHOREDBY, code);
4069        throw new FHIRException("Unknown ConsentDataMeaning code '"+codeString+"'");
4070        }
4071    public String toCode(ConsentDataMeaning code) {
4072       if (code == ConsentDataMeaning.NULL)
4073           return null;
4074       if (code == ConsentDataMeaning.INSTANCE)
4075        return "instance";
4076      if (code == ConsentDataMeaning.RELATED)
4077        return "related";
4078      if (code == ConsentDataMeaning.DEPENDENTS)
4079        return "dependents";
4080      if (code == ConsentDataMeaning.AUTHOREDBY)
4081        return "authoredby";
4082      return "?";
4083   }
4084    public String toSystem(ConsentDataMeaning code) {
4085      return code.getSystem();
4086      }
4087    }
4088
4089    public enum ConsentProvisionType {
4090        /**
4091         * Consent is denied for actions meeting these rules.
4092         */
4093        DENY, 
4094        /**
4095         * Consent is provided for actions meeting these rules.
4096         */
4097        PERMIT, 
4098        /**
4099         * added to help the parsers
4100         */
4101        NULL;
4102        public static ConsentProvisionType fromCode(String codeString) throws FHIRException {
4103            if (codeString == null || "".equals(codeString))
4104                return null;
4105        if ("deny".equals(codeString))
4106          return DENY;
4107        if ("permit".equals(codeString))
4108          return PERMIT;
4109        throw new FHIRException("Unknown ConsentProvisionType code '"+codeString+"'");
4110        }
4111        public static boolean isValidCode(String codeString) {
4112            if (codeString == null || "".equals(codeString))
4113                return false;
4114          return Utilities.existsInList(codeString, "deny", "permit");
4115        }
4116        public String toCode() {
4117          switch (this) {
4118            case DENY: return "deny";
4119            case PERMIT: return "permit";
4120            case NULL: return null;
4121            default: return "?";
4122          }
4123        }
4124        public String getSystem() {
4125          switch (this) {
4126            case DENY: return "http://hl7.org/fhir/consent-provision-type";
4127            case PERMIT: return "http://hl7.org/fhir/consent-provision-type";
4128            case NULL: return null;
4129            default: return "?";
4130          }
4131        }
4132        public String getDefinition() {
4133          switch (this) {
4134            case DENY: return "Consent is denied for actions meeting these rules.";
4135            case PERMIT: return "Consent is provided for actions meeting these rules.";
4136            case NULL: return null;
4137            default: return "?";
4138          }
4139        }
4140        public String getDisplay() {
4141          switch (this) {
4142            case DENY: return "Deny";
4143            case PERMIT: return "Permit";
4144            case NULL: return null;
4145            default: return "?";
4146          }
4147        }
4148    }
4149
4150  public static class ConsentProvisionTypeEnumFactory implements EnumFactory<ConsentProvisionType> {
4151    public ConsentProvisionType fromCode(String codeString) throws IllegalArgumentException {
4152      if (codeString == null || "".equals(codeString))
4153            if (codeString == null || "".equals(codeString))
4154                return null;
4155        if ("deny".equals(codeString))
4156          return ConsentProvisionType.DENY;
4157        if ("permit".equals(codeString))
4158          return ConsentProvisionType.PERMIT;
4159        throw new IllegalArgumentException("Unknown ConsentProvisionType code '"+codeString+"'");
4160        }
4161
4162        public Enumeration<ConsentProvisionType> fromType(PrimitiveType<?> code) throws FHIRException {
4163          if (code == null)
4164            return null;
4165          if (code.isEmpty())
4166            return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.NULL, code);
4167          String codeString = ((PrimitiveType) code).asStringValue();
4168          if (codeString == null || "".equals(codeString))
4169            return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.NULL, code);
4170        if ("deny".equals(codeString))
4171          return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.DENY, code);
4172        if ("permit".equals(codeString))
4173          return new Enumeration<ConsentProvisionType>(this, ConsentProvisionType.PERMIT, code);
4174        throw new FHIRException("Unknown ConsentProvisionType code '"+codeString+"'");
4175        }
4176    public String toCode(ConsentProvisionType code) {
4177       if (code == ConsentProvisionType.NULL)
4178           return null;
4179       if (code == ConsentProvisionType.DENY)
4180        return "deny";
4181      if (code == ConsentProvisionType.PERMIT)
4182        return "permit";
4183      return "?";
4184   }
4185    public String toSystem(ConsentProvisionType code) {
4186      return code.getSystem();
4187      }
4188    }
4189
4190    public enum Currencies {
4191        /**
4192         * null
4193         */
4194        AED, 
4195        /**
4196         * null
4197         */
4198        AFN, 
4199        /**
4200         * null
4201         */
4202        ALL, 
4203        /**
4204         * null
4205         */
4206        AMD, 
4207        /**
4208         * null
4209         */
4210        ANG, 
4211        /**
4212         * null
4213         */
4214        AOA, 
4215        /**
4216         * null
4217         */
4218        ARS, 
4219        /**
4220         * null
4221         */
4222        AUD, 
4223        /**
4224         * null
4225         */
4226        AWG, 
4227        /**
4228         * null
4229         */
4230        AZN, 
4231        /**
4232         * null
4233         */
4234        BAM, 
4235        /**
4236         * null
4237         */
4238        BBD, 
4239        /**
4240         * null
4241         */
4242        BDT, 
4243        /**
4244         * null
4245         */
4246        BGN, 
4247        /**
4248         * null
4249         */
4250        BHD, 
4251        /**
4252         * null
4253         */
4254        BIF, 
4255        /**
4256         * null
4257         */
4258        BMD, 
4259        /**
4260         * null
4261         */
4262        BND, 
4263        /**
4264         * null
4265         */
4266        BOB, 
4267        /**
4268         * null
4269         */
4270        BOV, 
4271        /**
4272         * null
4273         */
4274        BRL, 
4275        /**
4276         * null
4277         */
4278        BSD, 
4279        /**
4280         * null
4281         */
4282        BTN, 
4283        /**
4284         * null
4285         */
4286        BWP, 
4287        /**
4288         * null
4289         */
4290        BYN, 
4291        /**
4292         * null
4293         */
4294        BZD, 
4295        /**
4296         * null
4297         */
4298        CAD, 
4299        /**
4300         * null
4301         */
4302        CDF, 
4303        /**
4304         * null
4305         */
4306        CHE, 
4307        /**
4308         * null
4309         */
4310        CHF, 
4311        /**
4312         * null
4313         */
4314        CHW, 
4315        /**
4316         * null
4317         */
4318        CLF, 
4319        /**
4320         * null
4321         */
4322        CLP, 
4323        /**
4324         * null
4325         */
4326        CNY, 
4327        /**
4328         * null
4329         */
4330        COP, 
4331        /**
4332         * null
4333         */
4334        COU, 
4335        /**
4336         * null
4337         */
4338        CRC, 
4339        /**
4340         * null
4341         */
4342        CUC, 
4343        /**
4344         * null
4345         */
4346        CUP, 
4347        /**
4348         * null
4349         */
4350        CVE, 
4351        /**
4352         * null
4353         */
4354        CZK, 
4355        /**
4356         * null
4357         */
4358        DJF, 
4359        /**
4360         * null
4361         */
4362        DKK, 
4363        /**
4364         * null
4365         */
4366        DOP, 
4367        /**
4368         * null
4369         */
4370        DZD, 
4371        /**
4372         * null
4373         */
4374        EGP, 
4375        /**
4376         * null
4377         */
4378        ERN, 
4379        /**
4380         * null
4381         */
4382        ETB, 
4383        /**
4384         * null
4385         */
4386        EUR, 
4387        /**
4388         * null
4389         */
4390        FJD, 
4391        /**
4392         * null
4393         */
4394        FKP, 
4395        /**
4396         * null
4397         */
4398        GBP, 
4399        /**
4400         * null
4401         */
4402        GEL, 
4403        /**
4404         * null
4405         */
4406        GGP, 
4407        /**
4408         * null
4409         */
4410        GHS, 
4411        /**
4412         * null
4413         */
4414        GIP, 
4415        /**
4416         * null
4417         */
4418        GMD, 
4419        /**
4420         * null
4421         */
4422        GNF, 
4423        /**
4424         * null
4425         */
4426        GTQ, 
4427        /**
4428         * null
4429         */
4430        GYD, 
4431        /**
4432         * null
4433         */
4434        HKD, 
4435        /**
4436         * null
4437         */
4438        HNL, 
4439        /**
4440         * null
4441         */
4442        HRK, 
4443        /**
4444         * null
4445         */
4446        HTG, 
4447        /**
4448         * null
4449         */
4450        HUF, 
4451        /**
4452         * null
4453         */
4454        IDR, 
4455        /**
4456         * null
4457         */
4458        ILS, 
4459        /**
4460         * null
4461         */
4462        IMP, 
4463        /**
4464         * null
4465         */
4466        INR, 
4467        /**
4468         * null
4469         */
4470        IQD, 
4471        /**
4472         * null
4473         */
4474        IRR, 
4475        /**
4476         * null
4477         */
4478        ISK, 
4479        /**
4480         * null
4481         */
4482        JEP, 
4483        /**
4484         * null
4485         */
4486        JMD, 
4487        /**
4488         * null
4489         */
4490        JOD, 
4491        /**
4492         * null
4493         */
4494        JPY, 
4495        /**
4496         * null
4497         */
4498        KES, 
4499        /**
4500         * null
4501         */
4502        KGS, 
4503        /**
4504         * null
4505         */
4506        KHR, 
4507        /**
4508         * null
4509         */
4510        KMF, 
4511        /**
4512         * null
4513         */
4514        KPW, 
4515        /**
4516         * null
4517         */
4518        KRW, 
4519        /**
4520         * null
4521         */
4522        KWD, 
4523        /**
4524         * null
4525         */
4526        KYD, 
4527        /**
4528         * null
4529         */
4530        KZT, 
4531        /**
4532         * null
4533         */
4534        LAK, 
4535        /**
4536         * null
4537         */
4538        LBP, 
4539        /**
4540         * null
4541         */
4542        LKR, 
4543        /**
4544         * null
4545         */
4546        LRD, 
4547        /**
4548         * null
4549         */
4550        LSL, 
4551        /**
4552         * null
4553         */
4554        LYD, 
4555        /**
4556         * null
4557         */
4558        MAD, 
4559        /**
4560         * null
4561         */
4562        MDL, 
4563        /**
4564         * null
4565         */
4566        MGA, 
4567        /**
4568         * null
4569         */
4570        MKD, 
4571        /**
4572         * null
4573         */
4574        MMK, 
4575        /**
4576         * null
4577         */
4578        MNT, 
4579        /**
4580         * null
4581         */
4582        MOP, 
4583        /**
4584         * null
4585         */
4586        MRU, 
4587        /**
4588         * null
4589         */
4590        MUR, 
4591        /**
4592         * null
4593         */
4594        MVR, 
4595        /**
4596         * null
4597         */
4598        MWK, 
4599        /**
4600         * null
4601         */
4602        MXN, 
4603        /**
4604         * null
4605         */
4606        MXV, 
4607        /**
4608         * null
4609         */
4610        MYR, 
4611        /**
4612         * null
4613         */
4614        MZN, 
4615        /**
4616         * null
4617         */
4618        NAD, 
4619        /**
4620         * null
4621         */
4622        NGN, 
4623        /**
4624         * null
4625         */
4626        NIO, 
4627        /**
4628         * null
4629         */
4630        NOK, 
4631        /**
4632         * null
4633         */
4634        NPR, 
4635        /**
4636         * null
4637         */
4638        NZD, 
4639        /**
4640         * null
4641         */
4642        OMR, 
4643        /**
4644         * null
4645         */
4646        PAB, 
4647        /**
4648         * null
4649         */
4650        PEN, 
4651        /**
4652         * null
4653         */
4654        PGK, 
4655        /**
4656         * null
4657         */
4658        PHP, 
4659        /**
4660         * null
4661         */
4662        PKR, 
4663        /**
4664         * null
4665         */
4666        PLN, 
4667        /**
4668         * null
4669         */
4670        PYG, 
4671        /**
4672         * null
4673         */
4674        QAR, 
4675        /**
4676         * null
4677         */
4678        RON, 
4679        /**
4680         * null
4681         */
4682        RSD, 
4683        /**
4684         * null
4685         */
4686        RUB, 
4687        /**
4688         * null
4689         */
4690        RWF, 
4691        /**
4692         * null
4693         */
4694        SAR, 
4695        /**
4696         * null
4697         */
4698        SBD, 
4699        /**
4700         * null
4701         */
4702        SCR, 
4703        /**
4704         * null
4705         */
4706        SDG, 
4707        /**
4708         * null
4709         */
4710        SEK, 
4711        /**
4712         * null
4713         */
4714        SGD, 
4715        /**
4716         * null
4717         */
4718        SHP, 
4719        /**
4720         * null
4721         */
4722        SLL, 
4723        /**
4724         * null
4725         */
4726        SOS, 
4727        /**
4728         * null
4729         */
4730        SRD, 
4731        /**
4732         * null
4733         */
4734        SSP, 
4735        /**
4736         * null
4737         */
4738        STN, 
4739        /**
4740         * null
4741         */
4742        SVC, 
4743        /**
4744         * null
4745         */
4746        SYP, 
4747        /**
4748         * null
4749         */
4750        SZL, 
4751        /**
4752         * null
4753         */
4754        THB, 
4755        /**
4756         * null
4757         */
4758        TJS, 
4759        /**
4760         * null
4761         */
4762        TMT, 
4763        /**
4764         * null
4765         */
4766        TND, 
4767        /**
4768         * null
4769         */
4770        TOP, 
4771        /**
4772         * null
4773         */
4774        TRY, 
4775        /**
4776         * null
4777         */
4778        TTD, 
4779        /**
4780         * null
4781         */
4782        TVD, 
4783        /**
4784         * null
4785         */
4786        TWD, 
4787        /**
4788         * null
4789         */
4790        TZS, 
4791        /**
4792         * null
4793         */
4794        UAH, 
4795        /**
4796         * null
4797         */
4798        UGX, 
4799        /**
4800         * null
4801         */
4802        USD, 
4803        /**
4804         * null
4805         */
4806        USN, 
4807        /**
4808         * null
4809         */
4810        UYI, 
4811        /**
4812         * null
4813         */
4814        UYU, 
4815        /**
4816         * null
4817         */
4818        UZS, 
4819        /**
4820         * null
4821         */
4822        VEF, 
4823        /**
4824         * null
4825         */
4826        VND, 
4827        /**
4828         * null
4829         */
4830        VUV, 
4831        /**
4832         * null
4833         */
4834        WST, 
4835        /**
4836         * null
4837         */
4838        XAF, 
4839        /**
4840         * null
4841         */
4842        XAG, 
4843        /**
4844         * null
4845         */
4846        XAU, 
4847        /**
4848         * null
4849         */
4850        XBA, 
4851        /**
4852         * null
4853         */
4854        XBB, 
4855        /**
4856         * null
4857         */
4858        XBC, 
4859        /**
4860         * null
4861         */
4862        XBD, 
4863        /**
4864         * null
4865         */
4866        XCD, 
4867        /**
4868         * null
4869         */
4870        XDR, 
4871        /**
4872         * null
4873         */
4874        XOF, 
4875        /**
4876         * null
4877         */
4878        XPD, 
4879        /**
4880         * null
4881         */
4882        XPF, 
4883        /**
4884         * null
4885         */
4886        XPT, 
4887        /**
4888         * null
4889         */
4890        XSU, 
4891        /**
4892         * null
4893         */
4894        XTS, 
4895        /**
4896         * null
4897         */
4898        XUA, 
4899        /**
4900         * null
4901         */
4902        XXX, 
4903        /**
4904         * null
4905         */
4906        YER, 
4907        /**
4908         * null
4909         */
4910        ZAR, 
4911        /**
4912         * null
4913         */
4914        ZMW, 
4915        /**
4916         * null
4917         */
4918        ZWL, 
4919        /**
4920         * added to help the parsers
4921         */
4922        NULL;
4923        public static Currencies fromCode(String codeString) throws FHIRException {
4924            if (codeString == null || "".equals(codeString))
4925                return null;
4926        if ("AED".equals(codeString))
4927          return AED;
4928        if ("AFN".equals(codeString))
4929          return AFN;
4930        if ("ALL".equals(codeString))
4931          return ALL;
4932        if ("AMD".equals(codeString))
4933          return AMD;
4934        if ("ANG".equals(codeString))
4935          return ANG;
4936        if ("AOA".equals(codeString))
4937          return AOA;
4938        if ("ARS".equals(codeString))
4939          return ARS;
4940        if ("AUD".equals(codeString))
4941          return AUD;
4942        if ("AWG".equals(codeString))
4943          return AWG;
4944        if ("AZN".equals(codeString))
4945          return AZN;
4946        if ("BAM".equals(codeString))
4947          return BAM;
4948        if ("BBD".equals(codeString))
4949          return BBD;
4950        if ("BDT".equals(codeString))
4951          return BDT;
4952        if ("BGN".equals(codeString))
4953          return BGN;
4954        if ("BHD".equals(codeString))
4955          return BHD;
4956        if ("BIF".equals(codeString))
4957          return BIF;
4958        if ("BMD".equals(codeString))
4959          return BMD;
4960        if ("BND".equals(codeString))
4961          return BND;
4962        if ("BOB".equals(codeString))
4963          return BOB;
4964        if ("BOV".equals(codeString))
4965          return BOV;
4966        if ("BRL".equals(codeString))
4967          return BRL;
4968        if ("BSD".equals(codeString))
4969          return BSD;
4970        if ("BTN".equals(codeString))
4971          return BTN;
4972        if ("BWP".equals(codeString))
4973          return BWP;
4974        if ("BYN".equals(codeString))
4975          return BYN;
4976        if ("BZD".equals(codeString))
4977          return BZD;
4978        if ("CAD".equals(codeString))
4979          return CAD;
4980        if ("CDF".equals(codeString))
4981          return CDF;
4982        if ("CHE".equals(codeString))
4983          return CHE;
4984        if ("CHF".equals(codeString))
4985          return CHF;
4986        if ("CHW".equals(codeString))
4987          return CHW;
4988        if ("CLF".equals(codeString))
4989          return CLF;
4990        if ("CLP".equals(codeString))
4991          return CLP;
4992        if ("CNY".equals(codeString))
4993          return CNY;
4994        if ("COP".equals(codeString))
4995          return COP;
4996        if ("COU".equals(codeString))
4997          return COU;
4998        if ("CRC".equals(codeString))
4999          return CRC;
5000        if ("CUC".equals(codeString))
5001          return CUC;
5002        if ("CUP".equals(codeString))
5003          return CUP;
5004        if ("CVE".equals(codeString))
5005          return CVE;
5006        if ("CZK".equals(codeString))
5007          return CZK;
5008        if ("DJF".equals(codeString))
5009          return DJF;
5010        if ("DKK".equals(codeString))
5011          return DKK;
5012        if ("DOP".equals(codeString))
5013          return DOP;
5014        if ("DZD".equals(codeString))
5015          return DZD;
5016        if ("EGP".equals(codeString))
5017          return EGP;
5018        if ("ERN".equals(codeString))
5019          return ERN;
5020        if ("ETB".equals(codeString))
5021          return ETB;
5022        if ("EUR".equals(codeString))
5023          return EUR;
5024        if ("FJD".equals(codeString))
5025          return FJD;
5026        if ("FKP".equals(codeString))
5027          return FKP;
5028        if ("GBP".equals(codeString))
5029          return GBP;
5030        if ("GEL".equals(codeString))
5031          return GEL;
5032        if ("GGP".equals(codeString))
5033          return GGP;
5034        if ("GHS".equals(codeString))
5035          return GHS;
5036        if ("GIP".equals(codeString))
5037          return GIP;
5038        if ("GMD".equals(codeString))
5039          return GMD;
5040        if ("GNF".equals(codeString))
5041          return GNF;
5042        if ("GTQ".equals(codeString))
5043          return GTQ;
5044        if ("GYD".equals(codeString))
5045          return GYD;
5046        if ("HKD".equals(codeString))
5047          return HKD;
5048        if ("HNL".equals(codeString))
5049          return HNL;
5050        if ("HRK".equals(codeString))
5051          return HRK;
5052        if ("HTG".equals(codeString))
5053          return HTG;
5054        if ("HUF".equals(codeString))
5055          return HUF;
5056        if ("IDR".equals(codeString))
5057          return IDR;
5058        if ("ILS".equals(codeString))
5059          return ILS;
5060        if ("IMP".equals(codeString))
5061          return IMP;
5062        if ("INR".equals(codeString))
5063          return INR;
5064        if ("IQD".equals(codeString))
5065          return IQD;
5066        if ("IRR".equals(codeString))
5067          return IRR;
5068        if ("ISK".equals(codeString))
5069          return ISK;
5070        if ("JEP".equals(codeString))
5071          return JEP;
5072        if ("JMD".equals(codeString))
5073          return JMD;
5074        if ("JOD".equals(codeString))
5075          return JOD;
5076        if ("JPY".equals(codeString))
5077          return JPY;
5078        if ("KES".equals(codeString))
5079          return KES;
5080        if ("KGS".equals(codeString))
5081          return KGS;
5082        if ("KHR".equals(codeString))
5083          return KHR;
5084        if ("KMF".equals(codeString))
5085          return KMF;
5086        if ("KPW".equals(codeString))
5087          return KPW;
5088        if ("KRW".equals(codeString))
5089          return KRW;
5090        if ("KWD".equals(codeString))
5091          return KWD;
5092        if ("KYD".equals(codeString))
5093          return KYD;
5094        if ("KZT".equals(codeString))
5095          return KZT;
5096        if ("LAK".equals(codeString))
5097          return LAK;
5098        if ("LBP".equals(codeString))
5099          return LBP;
5100        if ("LKR".equals(codeString))
5101          return LKR;
5102        if ("LRD".equals(codeString))
5103          return LRD;
5104        if ("LSL".equals(codeString))
5105          return LSL;
5106        if ("LYD".equals(codeString))
5107          return LYD;
5108        if ("MAD".equals(codeString))
5109          return MAD;
5110        if ("MDL".equals(codeString))
5111          return MDL;
5112        if ("MGA".equals(codeString))
5113          return MGA;
5114        if ("MKD".equals(codeString))
5115          return MKD;
5116        if ("MMK".equals(codeString))
5117          return MMK;
5118        if ("MNT".equals(codeString))
5119          return MNT;
5120        if ("MOP".equals(codeString))
5121          return MOP;
5122        if ("MRU".equals(codeString))
5123          return MRU;
5124        if ("MUR".equals(codeString))
5125          return MUR;
5126        if ("MVR".equals(codeString))
5127          return MVR;
5128        if ("MWK".equals(codeString))
5129          return MWK;
5130        if ("MXN".equals(codeString))
5131          return MXN;
5132        if ("MXV".equals(codeString))
5133          return MXV;
5134        if ("MYR".equals(codeString))
5135          return MYR;
5136        if ("MZN".equals(codeString))
5137          return MZN;
5138        if ("NAD".equals(codeString))
5139          return NAD;
5140        if ("NGN".equals(codeString))
5141          return NGN;
5142        if ("NIO".equals(codeString))
5143          return NIO;
5144        if ("NOK".equals(codeString))
5145          return NOK;
5146        if ("NPR".equals(codeString))
5147          return NPR;
5148        if ("NZD".equals(codeString))
5149          return NZD;
5150        if ("OMR".equals(codeString))
5151          return OMR;
5152        if ("PAB".equals(codeString))
5153          return PAB;
5154        if ("PEN".equals(codeString))
5155          return PEN;
5156        if ("PGK".equals(codeString))
5157          return PGK;
5158        if ("PHP".equals(codeString))
5159          return PHP;
5160        if ("PKR".equals(codeString))
5161          return PKR;
5162        if ("PLN".equals(codeString))
5163          return PLN;
5164        if ("PYG".equals(codeString))
5165          return PYG;
5166        if ("QAR".equals(codeString))
5167          return QAR;
5168        if ("RON".equals(codeString))
5169          return RON;
5170        if ("RSD".equals(codeString))
5171          return RSD;
5172        if ("RUB".equals(codeString))
5173          return RUB;
5174        if ("RWF".equals(codeString))
5175          return RWF;
5176        if ("SAR".equals(codeString))
5177          return SAR;
5178        if ("SBD".equals(codeString))
5179          return SBD;
5180        if ("SCR".equals(codeString))
5181          return SCR;
5182        if ("SDG".equals(codeString))
5183          return SDG;
5184        if ("SEK".equals(codeString))
5185          return SEK;
5186        if ("SGD".equals(codeString))
5187          return SGD;
5188        if ("SHP".equals(codeString))
5189          return SHP;
5190        if ("SLL".equals(codeString))
5191          return SLL;
5192        if ("SOS".equals(codeString))
5193          return SOS;
5194        if ("SRD".equals(codeString))
5195          return SRD;
5196        if ("SSP".equals(codeString))
5197          return SSP;
5198        if ("STN".equals(codeString))
5199          return STN;
5200        if ("SVC".equals(codeString))
5201          return SVC;
5202        if ("SYP".equals(codeString))
5203          return SYP;
5204        if ("SZL".equals(codeString))
5205          return SZL;
5206        if ("THB".equals(codeString))
5207          return THB;
5208        if ("TJS".equals(codeString))
5209          return TJS;
5210        if ("TMT".equals(codeString))
5211          return TMT;
5212        if ("TND".equals(codeString))
5213          return TND;
5214        if ("TOP".equals(codeString))
5215          return TOP;
5216        if ("TRY".equals(codeString))
5217          return TRY;
5218        if ("TTD".equals(codeString))
5219          return TTD;
5220        if ("TVD".equals(codeString))
5221          return TVD;
5222        if ("TWD".equals(codeString))
5223          return TWD;
5224        if ("TZS".equals(codeString))
5225          return TZS;
5226        if ("UAH".equals(codeString))
5227          return UAH;
5228        if ("UGX".equals(codeString))
5229          return UGX;
5230        if ("USD".equals(codeString))
5231          return USD;
5232        if ("USN".equals(codeString))
5233          return USN;
5234        if ("UYI".equals(codeString))
5235          return UYI;
5236        if ("UYU".equals(codeString))
5237          return UYU;
5238        if ("UZS".equals(codeString))
5239          return UZS;
5240        if ("VEF".equals(codeString))
5241          return VEF;
5242        if ("VND".equals(codeString))
5243          return VND;
5244        if ("VUV".equals(codeString))
5245          return VUV;
5246        if ("WST".equals(codeString))
5247          return WST;
5248        if ("XAF".equals(codeString))
5249          return XAF;
5250        if ("XAG".equals(codeString))
5251          return XAG;
5252        if ("XAU".equals(codeString))
5253          return XAU;
5254        if ("XBA".equals(codeString))
5255          return XBA;
5256        if ("XBB".equals(codeString))
5257          return XBB;
5258        if ("XBC".equals(codeString))
5259          return XBC;
5260        if ("XBD".equals(codeString))
5261          return XBD;
5262        if ("XCD".equals(codeString))
5263          return XCD;
5264        if ("XDR".equals(codeString))
5265          return XDR;
5266        if ("XOF".equals(codeString))
5267          return XOF;
5268        if ("XPD".equals(codeString))
5269          return XPD;
5270        if ("XPF".equals(codeString))
5271          return XPF;
5272        if ("XPT".equals(codeString))
5273          return XPT;
5274        if ("XSU".equals(codeString))
5275          return XSU;
5276        if ("XTS".equals(codeString))
5277          return XTS;
5278        if ("XUA".equals(codeString))
5279          return XUA;
5280        if ("XXX".equals(codeString))
5281          return XXX;
5282        if ("YER".equals(codeString))
5283          return YER;
5284        if ("ZAR".equals(codeString))
5285          return ZAR;
5286        if ("ZMW".equals(codeString))
5287          return ZMW;
5288        if ("ZWL".equals(codeString))
5289          return ZWL;
5290        throw new FHIRException("Unknown Currencies code '"+codeString+"'");
5291        }
5292        public static boolean isValidCode(String codeString) {
5293            if (codeString == null || "".equals(codeString))
5294                return false;
5295          return Utilities.existsInList(codeString, "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWL");
5296        }
5297        public String toCode() {
5298          switch (this) {
5299            case AED: return "AED";
5300            case AFN: return "AFN";
5301            case ALL: return "ALL";
5302            case AMD: return "AMD";
5303            case ANG: return "ANG";
5304            case AOA: return "AOA";
5305            case ARS: return "ARS";
5306            case AUD: return "AUD";
5307            case AWG: return "AWG";
5308            case AZN: return "AZN";
5309            case BAM: return "BAM";
5310            case BBD: return "BBD";
5311            case BDT: return "BDT";
5312            case BGN: return "BGN";
5313            case BHD: return "BHD";
5314            case BIF: return "BIF";
5315            case BMD: return "BMD";
5316            case BND: return "BND";
5317            case BOB: return "BOB";
5318            case BOV: return "BOV";
5319            case BRL: return "BRL";
5320            case BSD: return "BSD";
5321            case BTN: return "BTN";
5322            case BWP: return "BWP";
5323            case BYN: return "BYN";
5324            case BZD: return "BZD";
5325            case CAD: return "CAD";
5326            case CDF: return "CDF";
5327            case CHE: return "CHE";
5328            case CHF: return "CHF";
5329            case CHW: return "CHW";
5330            case CLF: return "CLF";
5331            case CLP: return "CLP";
5332            case CNY: return "CNY";
5333            case COP: return "COP";
5334            case COU: return "COU";
5335            case CRC: return "CRC";
5336            case CUC: return "CUC";
5337            case CUP: return "CUP";
5338            case CVE: return "CVE";
5339            case CZK: return "CZK";
5340            case DJF: return "DJF";
5341            case DKK: return "DKK";
5342            case DOP: return "DOP";
5343            case DZD: return "DZD";
5344            case EGP: return "EGP";
5345            case ERN: return "ERN";
5346            case ETB: return "ETB";
5347            case EUR: return "EUR";
5348            case FJD: return "FJD";
5349            case FKP: return "FKP";
5350            case GBP: return "GBP";
5351            case GEL: return "GEL";
5352            case GGP: return "GGP";
5353            case GHS: return "GHS";
5354            case GIP: return "GIP";
5355            case GMD: return "GMD";
5356            case GNF: return "GNF";
5357            case GTQ: return "GTQ";
5358            case GYD: return "GYD";
5359            case HKD: return "HKD";
5360            case HNL: return "HNL";
5361            case HRK: return "HRK";
5362            case HTG: return "HTG";
5363            case HUF: return "HUF";
5364            case IDR: return "IDR";
5365            case ILS: return "ILS";
5366            case IMP: return "IMP";
5367            case INR: return "INR";
5368            case IQD: return "IQD";
5369            case IRR: return "IRR";
5370            case ISK: return "ISK";
5371            case JEP: return "JEP";
5372            case JMD: return "JMD";
5373            case JOD: return "JOD";
5374            case JPY: return "JPY";
5375            case KES: return "KES";
5376            case KGS: return "KGS";
5377            case KHR: return "KHR";
5378            case KMF: return "KMF";
5379            case KPW: return "KPW";
5380            case KRW: return "KRW";
5381            case KWD: return "KWD";
5382            case KYD: return "KYD";
5383            case KZT: return "KZT";
5384            case LAK: return "LAK";
5385            case LBP: return "LBP";
5386            case LKR: return "LKR";
5387            case LRD: return "LRD";
5388            case LSL: return "LSL";
5389            case LYD: return "LYD";
5390            case MAD: return "MAD";
5391            case MDL: return "MDL";
5392            case MGA: return "MGA";
5393            case MKD: return "MKD";
5394            case MMK: return "MMK";
5395            case MNT: return "MNT";
5396            case MOP: return "MOP";
5397            case MRU: return "MRU";
5398            case MUR: return "MUR";
5399            case MVR: return "MVR";
5400            case MWK: return "MWK";
5401            case MXN: return "MXN";
5402            case MXV: return "MXV";
5403            case MYR: return "MYR";
5404            case MZN: return "MZN";
5405            case NAD: return "NAD";
5406            case NGN: return "NGN";
5407            case NIO: return "NIO";
5408            case NOK: return "NOK";
5409            case NPR: return "NPR";
5410            case NZD: return "NZD";
5411            case OMR: return "OMR";
5412            case PAB: return "PAB";
5413            case PEN: return "PEN";
5414            case PGK: return "PGK";
5415            case PHP: return "PHP";
5416            case PKR: return "PKR";
5417            case PLN: return "PLN";
5418            case PYG: return "PYG";
5419            case QAR: return "QAR";
5420            case RON: return "RON";
5421            case RSD: return "RSD";
5422            case RUB: return "RUB";
5423            case RWF: return "RWF";
5424            case SAR: return "SAR";
5425            case SBD: return "SBD";
5426            case SCR: return "SCR";
5427            case SDG: return "SDG";
5428            case SEK: return "SEK";
5429            case SGD: return "SGD";
5430            case SHP: return "SHP";
5431            case SLL: return "SLL";
5432            case SOS: return "SOS";
5433            case SRD: return "SRD";
5434            case SSP: return "SSP";
5435            case STN: return "STN";
5436            case SVC: return "SVC";
5437            case SYP: return "SYP";
5438            case SZL: return "SZL";
5439            case THB: return "THB";
5440            case TJS: return "TJS";
5441            case TMT: return "TMT";
5442            case TND: return "TND";
5443            case TOP: return "TOP";
5444            case TRY: return "TRY";
5445            case TTD: return "TTD";
5446            case TVD: return "TVD";
5447            case TWD: return "TWD";
5448            case TZS: return "TZS";
5449            case UAH: return "UAH";
5450            case UGX: return "UGX";
5451            case USD: return "USD";
5452            case USN: return "USN";
5453            case UYI: return "UYI";
5454            case UYU: return "UYU";
5455            case UZS: return "UZS";
5456            case VEF: return "VEF";
5457            case VND: return "VND";
5458            case VUV: return "VUV";
5459            case WST: return "WST";
5460            case XAF: return "XAF";
5461            case XAG: return "XAG";
5462            case XAU: return "XAU";
5463            case XBA: return "XBA";
5464            case XBB: return "XBB";
5465            case XBC: return "XBC";
5466            case XBD: return "XBD";
5467            case XCD: return "XCD";
5468            case XDR: return "XDR";
5469            case XOF: return "XOF";
5470            case XPD: return "XPD";
5471            case XPF: return "XPF";
5472            case XPT: return "XPT";
5473            case XSU: return "XSU";
5474            case XTS: return "XTS";
5475            case XUA: return "XUA";
5476            case XXX: return "XXX";
5477            case YER: return "YER";
5478            case ZAR: return "ZAR";
5479            case ZMW: return "ZMW";
5480            case ZWL: return "ZWL";
5481            case NULL: return null;
5482            default: return "?";
5483          }
5484        }
5485        public String getSystem() {
5486          switch (this) {
5487            case AED: return "urn:iso:std:iso:4217";
5488            case AFN: return "urn:iso:std:iso:4217";
5489            case ALL: return "urn:iso:std:iso:4217";
5490            case AMD: return "urn:iso:std:iso:4217";
5491            case ANG: return "urn:iso:std:iso:4217";
5492            case AOA: return "urn:iso:std:iso:4217";
5493            case ARS: return "urn:iso:std:iso:4217";
5494            case AUD: return "urn:iso:std:iso:4217";
5495            case AWG: return "urn:iso:std:iso:4217";
5496            case AZN: return "urn:iso:std:iso:4217";
5497            case BAM: return "urn:iso:std:iso:4217";
5498            case BBD: return "urn:iso:std:iso:4217";
5499            case BDT: return "urn:iso:std:iso:4217";
5500            case BGN: return "urn:iso:std:iso:4217";
5501            case BHD: return "urn:iso:std:iso:4217";
5502            case BIF: return "urn:iso:std:iso:4217";
5503            case BMD: return "urn:iso:std:iso:4217";
5504            case BND: return "urn:iso:std:iso:4217";
5505            case BOB: return "urn:iso:std:iso:4217";
5506            case BOV: return "urn:iso:std:iso:4217";
5507            case BRL: return "urn:iso:std:iso:4217";
5508            case BSD: return "urn:iso:std:iso:4217";
5509            case BTN: return "urn:iso:std:iso:4217";
5510            case BWP: return "urn:iso:std:iso:4217";
5511            case BYN: return "urn:iso:std:iso:4217";
5512            case BZD: return "urn:iso:std:iso:4217";
5513            case CAD: return "urn:iso:std:iso:4217";
5514            case CDF: return "urn:iso:std:iso:4217";
5515            case CHE: return "urn:iso:std:iso:4217";
5516            case CHF: return "urn:iso:std:iso:4217";
5517            case CHW: return "urn:iso:std:iso:4217";
5518            case CLF: return "urn:iso:std:iso:4217";
5519            case CLP: return "urn:iso:std:iso:4217";
5520            case CNY: return "urn:iso:std:iso:4217";
5521            case COP: return "urn:iso:std:iso:4217";
5522            case COU: return "urn:iso:std:iso:4217";
5523            case CRC: return "urn:iso:std:iso:4217";
5524            case CUC: return "urn:iso:std:iso:4217";
5525            case CUP: return "urn:iso:std:iso:4217";
5526            case CVE: return "urn:iso:std:iso:4217";
5527            case CZK: return "urn:iso:std:iso:4217";
5528            case DJF: return "urn:iso:std:iso:4217";
5529            case DKK: return "urn:iso:std:iso:4217";
5530            case DOP: return "urn:iso:std:iso:4217";
5531            case DZD: return "urn:iso:std:iso:4217";
5532            case EGP: return "urn:iso:std:iso:4217";
5533            case ERN: return "urn:iso:std:iso:4217";
5534            case ETB: return "urn:iso:std:iso:4217";
5535            case EUR: return "urn:iso:std:iso:4217";
5536            case FJD: return "urn:iso:std:iso:4217";
5537            case FKP: return "urn:iso:std:iso:4217";
5538            case GBP: return "urn:iso:std:iso:4217";
5539            case GEL: return "urn:iso:std:iso:4217";
5540            case GGP: return "urn:iso:std:iso:4217";
5541            case GHS: return "urn:iso:std:iso:4217";
5542            case GIP: return "urn:iso:std:iso:4217";
5543            case GMD: return "urn:iso:std:iso:4217";
5544            case GNF: return "urn:iso:std:iso:4217";
5545            case GTQ: return "urn:iso:std:iso:4217";
5546            case GYD: return "urn:iso:std:iso:4217";
5547            case HKD: return "urn:iso:std:iso:4217";
5548            case HNL: return "urn:iso:std:iso:4217";
5549            case HRK: return "urn:iso:std:iso:4217";
5550            case HTG: return "urn:iso:std:iso:4217";
5551            case HUF: return "urn:iso:std:iso:4217";
5552            case IDR: return "urn:iso:std:iso:4217";
5553            case ILS: return "urn:iso:std:iso:4217";
5554            case IMP: return "urn:iso:std:iso:4217";
5555            case INR: return "urn:iso:std:iso:4217";
5556            case IQD: return "urn:iso:std:iso:4217";
5557            case IRR: return "urn:iso:std:iso:4217";
5558            case ISK: return "urn:iso:std:iso:4217";
5559            case JEP: return "urn:iso:std:iso:4217";
5560            case JMD: return "urn:iso:std:iso:4217";
5561            case JOD: return "urn:iso:std:iso:4217";
5562            case JPY: return "urn:iso:std:iso:4217";
5563            case KES: return "urn:iso:std:iso:4217";
5564            case KGS: return "urn:iso:std:iso:4217";
5565            case KHR: return "urn:iso:std:iso:4217";
5566            case KMF: return "urn:iso:std:iso:4217";
5567            case KPW: return "urn:iso:std:iso:4217";
5568            case KRW: return "urn:iso:std:iso:4217";
5569            case KWD: return "urn:iso:std:iso:4217";
5570            case KYD: return "urn:iso:std:iso:4217";
5571            case KZT: return "urn:iso:std:iso:4217";
5572            case LAK: return "urn:iso:std:iso:4217";
5573            case LBP: return "urn:iso:std:iso:4217";
5574            case LKR: return "urn:iso:std:iso:4217";
5575            case LRD: return "urn:iso:std:iso:4217";
5576            case LSL: return "urn:iso:std:iso:4217";
5577            case LYD: return "urn:iso:std:iso:4217";
5578            case MAD: return "urn:iso:std:iso:4217";
5579            case MDL: return "urn:iso:std:iso:4217";
5580            case MGA: return "urn:iso:std:iso:4217";
5581            case MKD: return "urn:iso:std:iso:4217";
5582            case MMK: return "urn:iso:std:iso:4217";
5583            case MNT: return "urn:iso:std:iso:4217";
5584            case MOP: return "urn:iso:std:iso:4217";
5585            case MRU: return "urn:iso:std:iso:4217";
5586            case MUR: return "urn:iso:std:iso:4217";
5587            case MVR: return "urn:iso:std:iso:4217";
5588            case MWK: return "urn:iso:std:iso:4217";
5589            case MXN: return "urn:iso:std:iso:4217";
5590            case MXV: return "urn:iso:std:iso:4217";
5591            case MYR: return "urn:iso:std:iso:4217";
5592            case MZN: return "urn:iso:std:iso:4217";
5593            case NAD: return "urn:iso:std:iso:4217";
5594            case NGN: return "urn:iso:std:iso:4217";
5595            case NIO: return "urn:iso:std:iso:4217";
5596            case NOK: return "urn:iso:std:iso:4217";
5597            case NPR: return "urn:iso:std:iso:4217";
5598            case NZD: return "urn:iso:std:iso:4217";
5599            case OMR: return "urn:iso:std:iso:4217";
5600            case PAB: return "urn:iso:std:iso:4217";
5601            case PEN: return "urn:iso:std:iso:4217";
5602            case PGK: return "urn:iso:std:iso:4217";
5603            case PHP: return "urn:iso:std:iso:4217";
5604            case PKR: return "urn:iso:std:iso:4217";
5605            case PLN: return "urn:iso:std:iso:4217";
5606            case PYG: return "urn:iso:std:iso:4217";
5607            case QAR: return "urn:iso:std:iso:4217";
5608            case RON: return "urn:iso:std:iso:4217";
5609            case RSD: return "urn:iso:std:iso:4217";
5610            case RUB: return "urn:iso:std:iso:4217";
5611            case RWF: return "urn:iso:std:iso:4217";
5612            case SAR: return "urn:iso:std:iso:4217";
5613            case SBD: return "urn:iso:std:iso:4217";
5614            case SCR: return "urn:iso:std:iso:4217";
5615            case SDG: return "urn:iso:std:iso:4217";
5616            case SEK: return "urn:iso:std:iso:4217";
5617            case SGD: return "urn:iso:std:iso:4217";
5618            case SHP: return "urn:iso:std:iso:4217";
5619            case SLL: return "urn:iso:std:iso:4217";
5620            case SOS: return "urn:iso:std:iso:4217";
5621            case SRD: return "urn:iso:std:iso:4217";
5622            case SSP: return "urn:iso:std:iso:4217";
5623            case STN: return "urn:iso:std:iso:4217";
5624            case SVC: return "urn:iso:std:iso:4217";
5625            case SYP: return "urn:iso:std:iso:4217";
5626            case SZL: return "urn:iso:std:iso:4217";
5627            case THB: return "urn:iso:std:iso:4217";
5628            case TJS: return "urn:iso:std:iso:4217";
5629            case TMT: return "urn:iso:std:iso:4217";
5630            case TND: return "urn:iso:std:iso:4217";
5631            case TOP: return "urn:iso:std:iso:4217";
5632            case TRY: return "urn:iso:std:iso:4217";
5633            case TTD: return "urn:iso:std:iso:4217";
5634            case TVD: return "urn:iso:std:iso:4217";
5635            case TWD: return "urn:iso:std:iso:4217";
5636            case TZS: return "urn:iso:std:iso:4217";
5637            case UAH: return "urn:iso:std:iso:4217";
5638            case UGX: return "urn:iso:std:iso:4217";
5639            case USD: return "urn:iso:std:iso:4217";
5640            case USN: return "urn:iso:std:iso:4217";
5641            case UYI: return "urn:iso:std:iso:4217";
5642            case UYU: return "urn:iso:std:iso:4217";
5643            case UZS: return "urn:iso:std:iso:4217";
5644            case VEF: return "urn:iso:std:iso:4217";
5645            case VND: return "urn:iso:std:iso:4217";
5646            case VUV: return "urn:iso:std:iso:4217";
5647            case WST: return "urn:iso:std:iso:4217";
5648            case XAF: return "urn:iso:std:iso:4217";
5649            case XAG: return "urn:iso:std:iso:4217";
5650            case XAU: return "urn:iso:std:iso:4217";
5651            case XBA: return "urn:iso:std:iso:4217";
5652            case XBB: return "urn:iso:std:iso:4217";
5653            case XBC: return "urn:iso:std:iso:4217";
5654            case XBD: return "urn:iso:std:iso:4217";
5655            case XCD: return "urn:iso:std:iso:4217";
5656            case XDR: return "urn:iso:std:iso:4217";
5657            case XOF: return "urn:iso:std:iso:4217";
5658            case XPD: return "urn:iso:std:iso:4217";
5659            case XPF: return "urn:iso:std:iso:4217";
5660            case XPT: return "urn:iso:std:iso:4217";
5661            case XSU: return "urn:iso:std:iso:4217";
5662            case XTS: return "urn:iso:std:iso:4217";
5663            case XUA: return "urn:iso:std:iso:4217";
5664            case XXX: return "urn:iso:std:iso:4217";
5665            case YER: return "urn:iso:std:iso:4217";
5666            case ZAR: return "urn:iso:std:iso:4217";
5667            case ZMW: return "urn:iso:std:iso:4217";
5668            case ZWL: return "urn:iso:std:iso:4217";
5669            case NULL: return null;
5670            default: return "?";
5671          }
5672        }
5673        public String getDefinition() {
5674          switch (this) {
5675            case AED: return "";
5676            case AFN: return "";
5677            case ALL: return "";
5678            case AMD: return "";
5679            case ANG: return "";
5680            case AOA: return "";
5681            case ARS: return "";
5682            case AUD: return "";
5683            case AWG: return "";
5684            case AZN: return "";
5685            case BAM: return "";
5686            case BBD: return "";
5687            case BDT: return "";
5688            case BGN: return "";
5689            case BHD: return "";
5690            case BIF: return "";
5691            case BMD: return "";
5692            case BND: return "";
5693            case BOB: return "";
5694            case BOV: return "";
5695            case BRL: return "";
5696            case BSD: return "";
5697            case BTN: return "";
5698            case BWP: return "";
5699            case BYN: return "";
5700            case BZD: return "";
5701            case CAD: return "";
5702            case CDF: return "";
5703            case CHE: return "";
5704            case CHF: return "";
5705            case CHW: return "";
5706            case CLF: return "";
5707            case CLP: return "";
5708            case CNY: return "";
5709            case COP: return "";
5710            case COU: return "";
5711            case CRC: return "";
5712            case CUC: return "";
5713            case CUP: return "";
5714            case CVE: return "";
5715            case CZK: return "";
5716            case DJF: return "";
5717            case DKK: return "";
5718            case DOP: return "";
5719            case DZD: return "";
5720            case EGP: return "";
5721            case ERN: return "";
5722            case ETB: return "";
5723            case EUR: return "";
5724            case FJD: return "";
5725            case FKP: return "";
5726            case GBP: return "";
5727            case GEL: return "";
5728            case GGP: return "";
5729            case GHS: return "";
5730            case GIP: return "";
5731            case GMD: return "";
5732            case GNF: return "";
5733            case GTQ: return "";
5734            case GYD: return "";
5735            case HKD: return "";
5736            case HNL: return "";
5737            case HRK: return "";
5738            case HTG: return "";
5739            case HUF: return "";
5740            case IDR: return "";
5741            case ILS: return "";
5742            case IMP: return "";
5743            case INR: return "";
5744            case IQD: return "";
5745            case IRR: return "";
5746            case ISK: return "";
5747            case JEP: return "";
5748            case JMD: return "";
5749            case JOD: return "";
5750            case JPY: return "";
5751            case KES: return "";
5752            case KGS: return "";
5753            case KHR: return "";
5754            case KMF: return "";
5755            case KPW: return "";
5756            case KRW: return "";
5757            case KWD: return "";
5758            case KYD: return "";
5759            case KZT: return "";
5760            case LAK: return "";
5761            case LBP: return "";
5762            case LKR: return "";
5763            case LRD: return "";
5764            case LSL: return "";
5765            case LYD: return "";
5766            case MAD: return "";
5767            case MDL: return "";
5768            case MGA: return "";
5769            case MKD: return "";
5770            case MMK: return "";
5771            case MNT: return "";
5772            case MOP: return "";
5773            case MRU: return "";
5774            case MUR: return "";
5775            case MVR: return "";
5776            case MWK: return "";
5777            case MXN: return "";
5778            case MXV: return "";
5779            case MYR: return "";
5780            case MZN: return "";
5781            case NAD: return "";
5782            case NGN: return "";
5783            case NIO: return "";
5784            case NOK: return "";
5785            case NPR: return "";
5786            case NZD: return "";
5787            case OMR: return "";
5788            case PAB: return "";
5789            case PEN: return "";
5790            case PGK: return "";
5791            case PHP: return "";
5792            case PKR: return "";
5793            case PLN: return "";
5794            case PYG: return "";
5795            case QAR: return "";
5796            case RON: return "";
5797            case RSD: return "";
5798            case RUB: return "";
5799            case RWF: return "";
5800            case SAR: return "";
5801            case SBD: return "";
5802            case SCR: return "";
5803            case SDG: return "";
5804            case SEK: return "";
5805            case SGD: return "";
5806            case SHP: return "";
5807            case SLL: return "";
5808            case SOS: return "";
5809            case SRD: return "";
5810            case SSP: return "";
5811            case STN: return "";
5812            case SVC: return "";
5813            case SYP: return "";
5814            case SZL: return "";
5815            case THB: return "";
5816            case TJS: return "";
5817            case TMT: return "";
5818            case TND: return "";
5819            case TOP: return "";
5820            case TRY: return "";
5821            case TTD: return "";
5822            case TVD: return "";
5823            case TWD: return "";
5824            case TZS: return "";
5825            case UAH: return "";
5826            case UGX: return "";
5827            case USD: return "";
5828            case USN: return "";
5829            case UYI: return "";
5830            case UYU: return "";
5831            case UZS: return "";
5832            case VEF: return "";
5833            case VND: return "";
5834            case VUV: return "";
5835            case WST: return "";
5836            case XAF: return "";
5837            case XAG: return "";
5838            case XAU: return "";
5839            case XBA: return "";
5840            case XBB: return "";
5841            case XBC: return "";
5842            case XBD: return "";
5843            case XCD: return "";
5844            case XDR: return "";
5845            case XOF: return "";
5846            case XPD: return "";
5847            case XPF: return "";
5848            case XPT: return "";
5849            case XSU: return "";
5850            case XTS: return "";
5851            case XUA: return "";
5852            case XXX: return "";
5853            case YER: return "";
5854            case ZAR: return "";
5855            case ZMW: return "";
5856            case ZWL: return "";
5857            case NULL: return null;
5858            default: return "?";
5859          }
5860        }
5861        public String getDisplay() {
5862          switch (this) {
5863            case AED: return "United Arab Emirates dirham";
5864            case AFN: return "Afghan afghani";
5865            case ALL: return "Albanian lek";
5866            case AMD: return "Armenian dram";
5867            case ANG: return "Netherlands Antillean guilder";
5868            case AOA: return "Angolan kwanza";
5869            case ARS: return "Argentine peso";
5870            case AUD: return "Australian dollar";
5871            case AWG: return "Aruban florin";
5872            case AZN: return "Azerbaijani manat";
5873            case BAM: return "Bosnia and Herzegovina convertible mark";
5874            case BBD: return "Barbados dollar";
5875            case BDT: return "Bangladeshi taka";
5876            case BGN: return "Bulgarian lev";
5877            case BHD: return "Bahraini dinar";
5878            case BIF: return "Burundian franc";
5879            case BMD: return "Bermudian dollar";
5880            case BND: return "Brunei dollar";
5881            case BOB: return "Boliviano";
5882            case BOV: return "Bolivian Mvdol (funds code)";
5883            case BRL: return "Brazilian real";
5884            case BSD: return "Bahamian dollar";
5885            case BTN: return "Bhutanese ngultrum";
5886            case BWP: return "Botswana pula";
5887            case BYN: return "Belarusian ruble";
5888            case BZD: return "Belize dollar";
5889            case CAD: return "Canadian dollar";
5890            case CDF: return "Congolese franc";
5891            case CHE: return "WIR Euro (complementary currency)";
5892            case CHF: return "Swiss franc";
5893            case CHW: return "WIR Franc (complementary currency)";
5894            case CLF: return "Unidad de Fomento (funds code)";
5895            case CLP: return "Chilean peso";
5896            case CNY: return "Renminbi (Chinese) yuan[8]";
5897            case COP: return "Colombian peso";
5898            case COU: return "Unidad de Valor Real (UVR) (funds code)[9]";
5899            case CRC: return "Costa Rican colon";
5900            case CUC: return "Cuban convertible peso";
5901            case CUP: return "Cuban peso";
5902            case CVE: return "Cape Verde escudo";
5903            case CZK: return "Czech koruna";
5904            case DJF: return "Djiboutian franc";
5905            case DKK: return "Danish krone";
5906            case DOP: return "Dominican peso";
5907            case DZD: return "Algerian dinar";
5908            case EGP: return "Egyptian pound";
5909            case ERN: return "Eritrean nakfa";
5910            case ETB: return "Ethiopian birr";
5911            case EUR: return "Euro";
5912            case FJD: return "Fiji dollar";
5913            case FKP: return "Falkland Islands pound";
5914            case GBP: return "Pound sterling";
5915            case GEL: return "Georgian lari";
5916            case GGP: return "Guernsey Pound";
5917            case GHS: return "Ghanaian cedi";
5918            case GIP: return "Gibraltar pound";
5919            case GMD: return "Gambian dalasi";
5920            case GNF: return "Guinean franc";
5921            case GTQ: return "Guatemalan quetzal";
5922            case GYD: return "Guyanese dollar";
5923            case HKD: return "Hong Kong dollar";
5924            case HNL: return "Honduran lempira";
5925            case HRK: return "Croatian kuna";
5926            case HTG: return "Haitian gourde";
5927            case HUF: return "Hungarian forint";
5928            case IDR: return "Indonesian rupiah";
5929            case ILS: return "Israeli new shekel";
5930            case IMP: return "Isle of Man Pound";
5931            case INR: return "Indian rupee";
5932            case IQD: return "Iraqi dinar";
5933            case IRR: return "Iranian rial";
5934            case ISK: return "Icelandic króna";
5935            case JEP: return "Jersey Pound";
5936            case JMD: return "Jamaican dollar";
5937            case JOD: return "Jordanian dinar";
5938            case JPY: return "Japanese yen";
5939            case KES: return "Kenyan shilling";
5940            case KGS: return "Kyrgyzstani som";
5941            case KHR: return "Cambodian riel";
5942            case KMF: return "Comoro franc";
5943            case KPW: return "North Korean won";
5944            case KRW: return "South Korean won";
5945            case KWD: return "Kuwaiti dinar";
5946            case KYD: return "Cayman Islands dollar";
5947            case KZT: return "Kazakhstani tenge";
5948            case LAK: return "Lao kip";
5949            case LBP: return "Lebanese pound";
5950            case LKR: return "Sri Lankan rupee";
5951            case LRD: return "Liberian dollar";
5952            case LSL: return "Lesotho loti";
5953            case LYD: return "Libyan dinar";
5954            case MAD: return "Moroccan dirham";
5955            case MDL: return "Moldovan leu";
5956            case MGA: return "Malagasy ariary";
5957            case MKD: return "Macedonian denar";
5958            case MMK: return "Myanmar kyat";
5959            case MNT: return "Mongolian tögrög";
5960            case MOP: return "Macanese pataca";
5961            case MRU: return "Mauritanian ouguiya";
5962            case MUR: return "Mauritian rupee";
5963            case MVR: return "Maldivian rufiyaa";
5964            case MWK: return "Malawian kwacha";
5965            case MXN: return "Mexican peso";
5966            case MXV: return "Mexican Unidad de Inversion (UDI) (funds code)";
5967            case MYR: return "Malaysian ringgit";
5968            case MZN: return "Mozambican metical";
5969            case NAD: return "Namibian dollar";
5970            case NGN: return "Nigerian naira";
5971            case NIO: return "Nicaraguan córdoba";
5972            case NOK: return "Norwegian krone";
5973            case NPR: return "Nepalese rupee";
5974            case NZD: return "New Zealand dollar";
5975            case OMR: return "Omani rial";
5976            case PAB: return "Panamanian balboa";
5977            case PEN: return "Peruvian Sol";
5978            case PGK: return "Papua New Guinean kina";
5979            case PHP: return "Philippine piso[13]";
5980            case PKR: return "Pakistani rupee";
5981            case PLN: return "Polish z?oty";
5982            case PYG: return "Paraguayan guaraní";
5983            case QAR: return "Qatari riyal";
5984            case RON: return "Romanian leu";
5985            case RSD: return "Serbian dinar";
5986            case RUB: return "Russian ruble";
5987            case RWF: return "Rwandan franc";
5988            case SAR: return "Saudi riyal";
5989            case SBD: return "Solomon Islands dollar";
5990            case SCR: return "Seychelles rupee";
5991            case SDG: return "Sudanese pound";
5992            case SEK: return "Swedish krona/kronor";
5993            case SGD: return "Singapore dollar";
5994            case SHP: return "Saint Helena pound";
5995            case SLL: return "Sierra Leonean leone";
5996            case SOS: return "Somali shilling";
5997            case SRD: return "Surinamese dollar";
5998            case SSP: return "South Sudanese pound";
5999            case STN: return "São Tomé and Príncipe dobra";
6000            case SVC: return "Salvadoran colón";
6001            case SYP: return "Syrian pound";
6002            case SZL: return "Swazi lilangeni";
6003            case THB: return "Thai baht";
6004            case TJS: return "Tajikistani somoni";
6005            case TMT: return "Turkmenistan manat";
6006            case TND: return "Tunisian dinar";
6007            case TOP: return "Tongan pa?anga";
6008            case TRY: return "Turkish lira";
6009            case TTD: return "Trinidad and Tobago dollar";
6010            case TVD: return "Tuvalu Dollar";
6011            case TWD: return "New Taiwan dollar";
6012            case TZS: return "Tanzanian shilling";
6013            case UAH: return "Ukrainian hryvnia";
6014            case UGX: return "Ugandan shilling";
6015            case USD: return "United States dollar";
6016            case USN: return "United States dollar (next day) (funds code)";
6017            case UYI: return "Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code)";
6018            case UYU: return "Uruguayan peso";
6019            case UZS: return "Uzbekistan som";
6020            case VEF: return "Venezuelan bolívar";
6021            case VND: return "Vietnamese ??ng";
6022            case VUV: return "Vanuatu vatu";
6023            case WST: return "Samoan tala";
6024            case XAF: return "CFA franc BEAC";
6025            case XAG: return "Silver (one troy ounce)";
6026            case XAU: return "Gold (one troy ounce)";
6027            case XBA: return "European Composite Unit (EURCO) (bond market unit)";
6028            case XBB: return "European Monetary Unit (E.M.U.-6) (bond market unit)";
6029            case XBC: return "European Unit of Account 9 (E.U.A.-9) (bond market unit)";
6030            case XBD: return "European Unit of Account 17 (E.U.A.-17) (bond market unit)";
6031            case XCD: return "East Caribbean dollar";
6032            case XDR: return "Special drawing rights";
6033            case XOF: return "CFA franc BCEAO";
6034            case XPD: return "Palladium (one troy ounce)";
6035            case XPF: return "CFP franc (franc Pacifique)";
6036            case XPT: return "Platinum (one troy ounce)";
6037            case XSU: return "SUCRE";
6038            case XTS: return "Code reserved for testing purposes";
6039            case XUA: return "ADB Unit of Account";
6040            case XXX: return "No currency";
6041            case YER: return "Yemeni rial";
6042            case ZAR: return "South African rand";
6043            case ZMW: return "Zambian kwacha";
6044            case ZWL: return "Zimbabwean dollar A/10";
6045            case NULL: return null;
6046            default: return "?";
6047          }
6048        }
6049    }
6050
6051  public static class CurrenciesEnumFactory implements EnumFactory<Currencies> {
6052    public Currencies fromCode(String codeString) throws IllegalArgumentException {
6053      if (codeString == null || "".equals(codeString))
6054            if (codeString == null || "".equals(codeString))
6055                return null;
6056        if ("AED".equals(codeString))
6057          return Currencies.AED;
6058        if ("AFN".equals(codeString))
6059          return Currencies.AFN;
6060        if ("ALL".equals(codeString))
6061          return Currencies.ALL;
6062        if ("AMD".equals(codeString))
6063          return Currencies.AMD;
6064        if ("ANG".equals(codeString))
6065          return Currencies.ANG;
6066        if ("AOA".equals(codeString))
6067          return Currencies.AOA;
6068        if ("ARS".equals(codeString))
6069          return Currencies.ARS;
6070        if ("AUD".equals(codeString))
6071          return Currencies.AUD;
6072        if ("AWG".equals(codeString))
6073          return Currencies.AWG;
6074        if ("AZN".equals(codeString))
6075          return Currencies.AZN;
6076        if ("BAM".equals(codeString))
6077          return Currencies.BAM;
6078        if ("BBD".equals(codeString))
6079          return Currencies.BBD;
6080        if ("BDT".equals(codeString))
6081          return Currencies.BDT;
6082        if ("BGN".equals(codeString))
6083          return Currencies.BGN;
6084        if ("BHD".equals(codeString))
6085          return Currencies.BHD;
6086        if ("BIF".equals(codeString))
6087          return Currencies.BIF;
6088        if ("BMD".equals(codeString))
6089          return Currencies.BMD;
6090        if ("BND".equals(codeString))
6091          return Currencies.BND;
6092        if ("BOB".equals(codeString))
6093          return Currencies.BOB;
6094        if ("BOV".equals(codeString))
6095          return Currencies.BOV;
6096        if ("BRL".equals(codeString))
6097          return Currencies.BRL;
6098        if ("BSD".equals(codeString))
6099          return Currencies.BSD;
6100        if ("BTN".equals(codeString))
6101          return Currencies.BTN;
6102        if ("BWP".equals(codeString))
6103          return Currencies.BWP;
6104        if ("BYN".equals(codeString))
6105          return Currencies.BYN;
6106        if ("BZD".equals(codeString))
6107          return Currencies.BZD;
6108        if ("CAD".equals(codeString))
6109          return Currencies.CAD;
6110        if ("CDF".equals(codeString))
6111          return Currencies.CDF;
6112        if ("CHE".equals(codeString))
6113          return Currencies.CHE;
6114        if ("CHF".equals(codeString))
6115          return Currencies.CHF;
6116        if ("CHW".equals(codeString))
6117          return Currencies.CHW;
6118        if ("CLF".equals(codeString))
6119          return Currencies.CLF;
6120        if ("CLP".equals(codeString))
6121          return Currencies.CLP;
6122        if ("CNY".equals(codeString))
6123          return Currencies.CNY;
6124        if ("COP".equals(codeString))
6125          return Currencies.COP;
6126        if ("COU".equals(codeString))
6127          return Currencies.COU;
6128        if ("CRC".equals(codeString))
6129          return Currencies.CRC;
6130        if ("CUC".equals(codeString))
6131          return Currencies.CUC;
6132        if ("CUP".equals(codeString))
6133          return Currencies.CUP;
6134        if ("CVE".equals(codeString))
6135          return Currencies.CVE;
6136        if ("CZK".equals(codeString))
6137          return Currencies.CZK;
6138        if ("DJF".equals(codeString))
6139          return Currencies.DJF;
6140        if ("DKK".equals(codeString))
6141          return Currencies.DKK;
6142        if ("DOP".equals(codeString))
6143          return Currencies.DOP;
6144        if ("DZD".equals(codeString))
6145          return Currencies.DZD;
6146        if ("EGP".equals(codeString))
6147          return Currencies.EGP;
6148        if ("ERN".equals(codeString))
6149          return Currencies.ERN;
6150        if ("ETB".equals(codeString))
6151          return Currencies.ETB;
6152        if ("EUR".equals(codeString))
6153          return Currencies.EUR;
6154        if ("FJD".equals(codeString))
6155          return Currencies.FJD;
6156        if ("FKP".equals(codeString))
6157          return Currencies.FKP;
6158        if ("GBP".equals(codeString))
6159          return Currencies.GBP;
6160        if ("GEL".equals(codeString))
6161          return Currencies.GEL;
6162        if ("GGP".equals(codeString))
6163          return Currencies.GGP;
6164        if ("GHS".equals(codeString))
6165          return Currencies.GHS;
6166        if ("GIP".equals(codeString))
6167          return Currencies.GIP;
6168        if ("GMD".equals(codeString))
6169          return Currencies.GMD;
6170        if ("GNF".equals(codeString))
6171          return Currencies.GNF;
6172        if ("GTQ".equals(codeString))
6173          return Currencies.GTQ;
6174        if ("GYD".equals(codeString))
6175          return Currencies.GYD;
6176        if ("HKD".equals(codeString))
6177          return Currencies.HKD;
6178        if ("HNL".equals(codeString))
6179          return Currencies.HNL;
6180        if ("HRK".equals(codeString))
6181          return Currencies.HRK;
6182        if ("HTG".equals(codeString))
6183          return Currencies.HTG;
6184        if ("HUF".equals(codeString))
6185          return Currencies.HUF;
6186        if ("IDR".equals(codeString))
6187          return Currencies.IDR;
6188        if ("ILS".equals(codeString))
6189          return Currencies.ILS;
6190        if ("IMP".equals(codeString))
6191          return Currencies.IMP;
6192        if ("INR".equals(codeString))
6193          return Currencies.INR;
6194        if ("IQD".equals(codeString))
6195          return Currencies.IQD;
6196        if ("IRR".equals(codeString))
6197          return Currencies.IRR;
6198        if ("ISK".equals(codeString))
6199          return Currencies.ISK;
6200        if ("JEP".equals(codeString))
6201          return Currencies.JEP;
6202        if ("JMD".equals(codeString))
6203          return Currencies.JMD;
6204        if ("JOD".equals(codeString))
6205          return Currencies.JOD;
6206        if ("JPY".equals(codeString))
6207          return Currencies.JPY;
6208        if ("KES".equals(codeString))
6209          return Currencies.KES;
6210        if ("KGS".equals(codeString))
6211          return Currencies.KGS;
6212        if ("KHR".equals(codeString))
6213          return Currencies.KHR;
6214        if ("KMF".equals(codeString))
6215          return Currencies.KMF;
6216        if ("KPW".equals(codeString))
6217          return Currencies.KPW;
6218        if ("KRW".equals(codeString))
6219          return Currencies.KRW;
6220        if ("KWD".equals(codeString))
6221          return Currencies.KWD;
6222        if ("KYD".equals(codeString))
6223          return Currencies.KYD;
6224        if ("KZT".equals(codeString))
6225          return Currencies.KZT;
6226        if ("LAK".equals(codeString))
6227          return Currencies.LAK;
6228        if ("LBP".equals(codeString))
6229          return Currencies.LBP;
6230        if ("LKR".equals(codeString))
6231          return Currencies.LKR;
6232        if ("LRD".equals(codeString))
6233          return Currencies.LRD;
6234        if ("LSL".equals(codeString))
6235          return Currencies.LSL;
6236        if ("LYD".equals(codeString))
6237          return Currencies.LYD;
6238        if ("MAD".equals(codeString))
6239          return Currencies.MAD;
6240        if ("MDL".equals(codeString))
6241          return Currencies.MDL;
6242        if ("MGA".equals(codeString))
6243          return Currencies.MGA;
6244        if ("MKD".equals(codeString))
6245          return Currencies.MKD;
6246        if ("MMK".equals(codeString))
6247          return Currencies.MMK;
6248        if ("MNT".equals(codeString))
6249          return Currencies.MNT;
6250        if ("MOP".equals(codeString))
6251          return Currencies.MOP;
6252        if ("MRU".equals(codeString))
6253          return Currencies.MRU;
6254        if ("MUR".equals(codeString))
6255          return Currencies.MUR;
6256        if ("MVR".equals(codeString))
6257          return Currencies.MVR;
6258        if ("MWK".equals(codeString))
6259          return Currencies.MWK;
6260        if ("MXN".equals(codeString))
6261          return Currencies.MXN;
6262        if ("MXV".equals(codeString))
6263          return Currencies.MXV;
6264        if ("MYR".equals(codeString))
6265          return Currencies.MYR;
6266        if ("MZN".equals(codeString))
6267          return Currencies.MZN;
6268        if ("NAD".equals(codeString))
6269          return Currencies.NAD;
6270        if ("NGN".equals(codeString))
6271          return Currencies.NGN;
6272        if ("NIO".equals(codeString))
6273          return Currencies.NIO;
6274        if ("NOK".equals(codeString))
6275          return Currencies.NOK;
6276        if ("NPR".equals(codeString))
6277          return Currencies.NPR;
6278        if ("NZD".equals(codeString))
6279          return Currencies.NZD;
6280        if ("OMR".equals(codeString))
6281          return Currencies.OMR;
6282        if ("PAB".equals(codeString))
6283          return Currencies.PAB;
6284        if ("PEN".equals(codeString))
6285          return Currencies.PEN;
6286        if ("PGK".equals(codeString))
6287          return Currencies.PGK;
6288        if ("PHP".equals(codeString))
6289          return Currencies.PHP;
6290        if ("PKR".equals(codeString))
6291          return Currencies.PKR;
6292        if ("PLN".equals(codeString))
6293          return Currencies.PLN;
6294        if ("PYG".equals(codeString))
6295          return Currencies.PYG;
6296        if ("QAR".equals(codeString))
6297          return Currencies.QAR;
6298        if ("RON".equals(codeString))
6299          return Currencies.RON;
6300        if ("RSD".equals(codeString))
6301          return Currencies.RSD;
6302        if ("RUB".equals(codeString))
6303          return Currencies.RUB;
6304        if ("RWF".equals(codeString))
6305          return Currencies.RWF;
6306        if ("SAR".equals(codeString))
6307          return Currencies.SAR;
6308        if ("SBD".equals(codeString))
6309          return Currencies.SBD;
6310        if ("SCR".equals(codeString))
6311          return Currencies.SCR;
6312        if ("SDG".equals(codeString))
6313          return Currencies.SDG;
6314        if ("SEK".equals(codeString))
6315          return Currencies.SEK;
6316        if ("SGD".equals(codeString))
6317          return Currencies.SGD;
6318        if ("SHP".equals(codeString))
6319          return Currencies.SHP;
6320        if ("SLL".equals(codeString))
6321          return Currencies.SLL;
6322        if ("SOS".equals(codeString))
6323          return Currencies.SOS;
6324        if ("SRD".equals(codeString))
6325          return Currencies.SRD;
6326        if ("SSP".equals(codeString))
6327          return Currencies.SSP;
6328        if ("STN".equals(codeString))
6329          return Currencies.STN;
6330        if ("SVC".equals(codeString))
6331          return Currencies.SVC;
6332        if ("SYP".equals(codeString))
6333          return Currencies.SYP;
6334        if ("SZL".equals(codeString))
6335          return Currencies.SZL;
6336        if ("THB".equals(codeString))
6337          return Currencies.THB;
6338        if ("TJS".equals(codeString))
6339          return Currencies.TJS;
6340        if ("TMT".equals(codeString))
6341          return Currencies.TMT;
6342        if ("TND".equals(codeString))
6343          return Currencies.TND;
6344        if ("TOP".equals(codeString))
6345          return Currencies.TOP;
6346        if ("TRY".equals(codeString))
6347          return Currencies.TRY;
6348        if ("TTD".equals(codeString))
6349          return Currencies.TTD;
6350        if ("TVD".equals(codeString))
6351          return Currencies.TVD;
6352        if ("TWD".equals(codeString))
6353          return Currencies.TWD;
6354        if ("TZS".equals(codeString))
6355          return Currencies.TZS;
6356        if ("UAH".equals(codeString))
6357          return Currencies.UAH;
6358        if ("UGX".equals(codeString))
6359          return Currencies.UGX;
6360        if ("USD".equals(codeString))
6361          return Currencies.USD;
6362        if ("USN".equals(codeString))
6363          return Currencies.USN;
6364        if ("UYI".equals(codeString))
6365          return Currencies.UYI;
6366        if ("UYU".equals(codeString))
6367          return Currencies.UYU;
6368        if ("UZS".equals(codeString))
6369          return Currencies.UZS;
6370        if ("VEF".equals(codeString))
6371          return Currencies.VEF;
6372        if ("VND".equals(codeString))
6373          return Currencies.VND;
6374        if ("VUV".equals(codeString))
6375          return Currencies.VUV;
6376        if ("WST".equals(codeString))
6377          return Currencies.WST;
6378        if ("XAF".equals(codeString))
6379          return Currencies.XAF;
6380        if ("XAG".equals(codeString))
6381          return Currencies.XAG;
6382        if ("XAU".equals(codeString))
6383          return Currencies.XAU;
6384        if ("XBA".equals(codeString))
6385          return Currencies.XBA;
6386        if ("XBB".equals(codeString))
6387          return Currencies.XBB;
6388        if ("XBC".equals(codeString))
6389          return Currencies.XBC;
6390        if ("XBD".equals(codeString))
6391          return Currencies.XBD;
6392        if ("XCD".equals(codeString))
6393          return Currencies.XCD;
6394        if ("XDR".equals(codeString))
6395          return Currencies.XDR;
6396        if ("XOF".equals(codeString))
6397          return Currencies.XOF;
6398        if ("XPD".equals(codeString))
6399          return Currencies.XPD;
6400        if ("XPF".equals(codeString))
6401          return Currencies.XPF;
6402        if ("XPT".equals(codeString))
6403          return Currencies.XPT;
6404        if ("XSU".equals(codeString))
6405          return Currencies.XSU;
6406        if ("XTS".equals(codeString))
6407          return Currencies.XTS;
6408        if ("XUA".equals(codeString))
6409          return Currencies.XUA;
6410        if ("XXX".equals(codeString))
6411          return Currencies.XXX;
6412        if ("YER".equals(codeString))
6413          return Currencies.YER;
6414        if ("ZAR".equals(codeString))
6415          return Currencies.ZAR;
6416        if ("ZMW".equals(codeString))
6417          return Currencies.ZMW;
6418        if ("ZWL".equals(codeString))
6419          return Currencies.ZWL;
6420        throw new IllegalArgumentException("Unknown Currencies code '"+codeString+"'");
6421        }
6422
6423        public Enumeration<Currencies> fromType(PrimitiveType<?> code) throws FHIRException {
6424          if (code == null)
6425            return null;
6426          if (code.isEmpty())
6427            return new Enumeration<Currencies>(this, Currencies.NULL, code);
6428          String codeString = ((PrimitiveType) code).asStringValue();
6429          if (codeString == null || "".equals(codeString))
6430            return new Enumeration<Currencies>(this, Currencies.NULL, code);
6431        if ("AED".equals(codeString))
6432          return new Enumeration<Currencies>(this, Currencies.AED, code);
6433        if ("AFN".equals(codeString))
6434          return new Enumeration<Currencies>(this, Currencies.AFN, code);
6435        if ("ALL".equals(codeString))
6436          return new Enumeration<Currencies>(this, Currencies.ALL, code);
6437        if ("AMD".equals(codeString))
6438          return new Enumeration<Currencies>(this, Currencies.AMD, code);
6439        if ("ANG".equals(codeString))
6440          return new Enumeration<Currencies>(this, Currencies.ANG, code);
6441        if ("AOA".equals(codeString))
6442          return new Enumeration<Currencies>(this, Currencies.AOA, code);
6443        if ("ARS".equals(codeString))
6444          return new Enumeration<Currencies>(this, Currencies.ARS, code);
6445        if ("AUD".equals(codeString))
6446          return new Enumeration<Currencies>(this, Currencies.AUD, code);
6447        if ("AWG".equals(codeString))
6448          return new Enumeration<Currencies>(this, Currencies.AWG, code);
6449        if ("AZN".equals(codeString))
6450          return new Enumeration<Currencies>(this, Currencies.AZN, code);
6451        if ("BAM".equals(codeString))
6452          return new Enumeration<Currencies>(this, Currencies.BAM, code);
6453        if ("BBD".equals(codeString))
6454          return new Enumeration<Currencies>(this, Currencies.BBD, code);
6455        if ("BDT".equals(codeString))
6456          return new Enumeration<Currencies>(this, Currencies.BDT, code);
6457        if ("BGN".equals(codeString))
6458          return new Enumeration<Currencies>(this, Currencies.BGN, code);
6459        if ("BHD".equals(codeString))
6460          return new Enumeration<Currencies>(this, Currencies.BHD, code);
6461        if ("BIF".equals(codeString))
6462          return new Enumeration<Currencies>(this, Currencies.BIF, code);
6463        if ("BMD".equals(codeString))
6464          return new Enumeration<Currencies>(this, Currencies.BMD, code);
6465        if ("BND".equals(codeString))
6466          return new Enumeration<Currencies>(this, Currencies.BND, code);
6467        if ("BOB".equals(codeString))
6468          return new Enumeration<Currencies>(this, Currencies.BOB, code);
6469        if ("BOV".equals(codeString))
6470          return new Enumeration<Currencies>(this, Currencies.BOV, code);
6471        if ("BRL".equals(codeString))
6472          return new Enumeration<Currencies>(this, Currencies.BRL, code);
6473        if ("BSD".equals(codeString))
6474          return new Enumeration<Currencies>(this, Currencies.BSD, code);
6475        if ("BTN".equals(codeString))
6476          return new Enumeration<Currencies>(this, Currencies.BTN, code);
6477        if ("BWP".equals(codeString))
6478          return new Enumeration<Currencies>(this, Currencies.BWP, code);
6479        if ("BYN".equals(codeString))
6480          return new Enumeration<Currencies>(this, Currencies.BYN, code);
6481        if ("BZD".equals(codeString))
6482          return new Enumeration<Currencies>(this, Currencies.BZD, code);
6483        if ("CAD".equals(codeString))
6484          return new Enumeration<Currencies>(this, Currencies.CAD, code);
6485        if ("CDF".equals(codeString))
6486          return new Enumeration<Currencies>(this, Currencies.CDF, code);
6487        if ("CHE".equals(codeString))
6488          return new Enumeration<Currencies>(this, Currencies.CHE, code);
6489        if ("CHF".equals(codeString))
6490          return new Enumeration<Currencies>(this, Currencies.CHF, code);
6491        if ("CHW".equals(codeString))
6492          return new Enumeration<Currencies>(this, Currencies.CHW, code);
6493        if ("CLF".equals(codeString))
6494          return new Enumeration<Currencies>(this, Currencies.CLF, code);
6495        if ("CLP".equals(codeString))
6496          return new Enumeration<Currencies>(this, Currencies.CLP, code);
6497        if ("CNY".equals(codeString))
6498          return new Enumeration<Currencies>(this, Currencies.CNY, code);
6499        if ("COP".equals(codeString))
6500          return new Enumeration<Currencies>(this, Currencies.COP, code);
6501        if ("COU".equals(codeString))
6502          return new Enumeration<Currencies>(this, Currencies.COU, code);
6503        if ("CRC".equals(codeString))
6504          return new Enumeration<Currencies>(this, Currencies.CRC, code);
6505        if ("CUC".equals(codeString))
6506          return new Enumeration<Currencies>(this, Currencies.CUC, code);
6507        if ("CUP".equals(codeString))
6508          return new Enumeration<Currencies>(this, Currencies.CUP, code);
6509        if ("CVE".equals(codeString))
6510          return new Enumeration<Currencies>(this, Currencies.CVE, code);
6511        if ("CZK".equals(codeString))
6512          return new Enumeration<Currencies>(this, Currencies.CZK, code);
6513        if ("DJF".equals(codeString))
6514          return new Enumeration<Currencies>(this, Currencies.DJF, code);
6515        if ("DKK".equals(codeString))
6516          return new Enumeration<Currencies>(this, Currencies.DKK, code);
6517        if ("DOP".equals(codeString))
6518          return new Enumeration<Currencies>(this, Currencies.DOP, code);
6519        if ("DZD".equals(codeString))
6520          return new Enumeration<Currencies>(this, Currencies.DZD, code);
6521        if ("EGP".equals(codeString))
6522          return new Enumeration<Currencies>(this, Currencies.EGP, code);
6523        if ("ERN".equals(codeString))
6524          return new Enumeration<Currencies>(this, Currencies.ERN, code);
6525        if ("ETB".equals(codeString))
6526          return new Enumeration<Currencies>(this, Currencies.ETB, code);
6527        if ("EUR".equals(codeString))
6528          return new Enumeration<Currencies>(this, Currencies.EUR, code);
6529        if ("FJD".equals(codeString))
6530          return new Enumeration<Currencies>(this, Currencies.FJD, code);
6531        if ("FKP".equals(codeString))
6532          return new Enumeration<Currencies>(this, Currencies.FKP, code);
6533        if ("GBP".equals(codeString))
6534          return new Enumeration<Currencies>(this, Currencies.GBP, code);
6535        if ("GEL".equals(codeString))
6536          return new Enumeration<Currencies>(this, Currencies.GEL, code);
6537        if ("GGP".equals(codeString))
6538          return new Enumeration<Currencies>(this, Currencies.GGP, code);
6539        if ("GHS".equals(codeString))
6540          return new Enumeration<Currencies>(this, Currencies.GHS, code);
6541        if ("GIP".equals(codeString))
6542          return new Enumeration<Currencies>(this, Currencies.GIP, code);
6543        if ("GMD".equals(codeString))
6544          return new Enumeration<Currencies>(this, Currencies.GMD, code);
6545        if ("GNF".equals(codeString))
6546          return new Enumeration<Currencies>(this, Currencies.GNF, code);
6547        if ("GTQ".equals(codeString))
6548          return new Enumeration<Currencies>(this, Currencies.GTQ, code);
6549        if ("GYD".equals(codeString))
6550          return new Enumeration<Currencies>(this, Currencies.GYD, code);
6551        if ("HKD".equals(codeString))
6552          return new Enumeration<Currencies>(this, Currencies.HKD, code);
6553        if ("HNL".equals(codeString))
6554          return new Enumeration<Currencies>(this, Currencies.HNL, code);
6555        if ("HRK".equals(codeString))
6556          return new Enumeration<Currencies>(this, Currencies.HRK, code);
6557        if ("HTG".equals(codeString))
6558          return new Enumeration<Currencies>(this, Currencies.HTG, code);
6559        if ("HUF".equals(codeString))
6560          return new Enumeration<Currencies>(this, Currencies.HUF, code);
6561        if ("IDR".equals(codeString))
6562          return new Enumeration<Currencies>(this, Currencies.IDR, code);
6563        if ("ILS".equals(codeString))
6564          return new Enumeration<Currencies>(this, Currencies.ILS, code);
6565        if ("IMP".equals(codeString))
6566          return new Enumeration<Currencies>(this, Currencies.IMP, code);
6567        if ("INR".equals(codeString))
6568          return new Enumeration<Currencies>(this, Currencies.INR, code);
6569        if ("IQD".equals(codeString))
6570          return new Enumeration<Currencies>(this, Currencies.IQD, code);
6571        if ("IRR".equals(codeString))
6572          return new Enumeration<Currencies>(this, Currencies.IRR, code);
6573        if ("ISK".equals(codeString))
6574          return new Enumeration<Currencies>(this, Currencies.ISK, code);
6575        if ("JEP".equals(codeString))
6576          return new Enumeration<Currencies>(this, Currencies.JEP, code);
6577        if ("JMD".equals(codeString))
6578          return new Enumeration<Currencies>(this, Currencies.JMD, code);
6579        if ("JOD".equals(codeString))
6580          return new Enumeration<Currencies>(this, Currencies.JOD, code);
6581        if ("JPY".equals(codeString))
6582          return new Enumeration<Currencies>(this, Currencies.JPY, code);
6583        if ("KES".equals(codeString))
6584          return new Enumeration<Currencies>(this, Currencies.KES, code);
6585        if ("KGS".equals(codeString))
6586          return new Enumeration<Currencies>(this, Currencies.KGS, code);
6587        if ("KHR".equals(codeString))
6588          return new Enumeration<Currencies>(this, Currencies.KHR, code);
6589        if ("KMF".equals(codeString))
6590          return new Enumeration<Currencies>(this, Currencies.KMF, code);
6591        if ("KPW".equals(codeString))
6592          return new Enumeration<Currencies>(this, Currencies.KPW, code);
6593        if ("KRW".equals(codeString))
6594          return new Enumeration<Currencies>(this, Currencies.KRW, code);
6595        if ("KWD".equals(codeString))
6596          return new Enumeration<Currencies>(this, Currencies.KWD, code);
6597        if ("KYD".equals(codeString))
6598          return new Enumeration<Currencies>(this, Currencies.KYD, code);
6599        if ("KZT".equals(codeString))
6600          return new Enumeration<Currencies>(this, Currencies.KZT, code);
6601        if ("LAK".equals(codeString))
6602          return new Enumeration<Currencies>(this, Currencies.LAK, code);
6603        if ("LBP".equals(codeString))
6604          return new Enumeration<Currencies>(this, Currencies.LBP, code);
6605        if ("LKR".equals(codeString))
6606          return new Enumeration<Currencies>(this, Currencies.LKR, code);
6607        if ("LRD".equals(codeString))
6608          return new Enumeration<Currencies>(this, Currencies.LRD, code);
6609        if ("LSL".equals(codeString))
6610          return new Enumeration<Currencies>(this, Currencies.LSL, code);
6611        if ("LYD".equals(codeString))
6612          return new Enumeration<Currencies>(this, Currencies.LYD, code);
6613        if ("MAD".equals(codeString))
6614          return new Enumeration<Currencies>(this, Currencies.MAD, code);
6615        if ("MDL".equals(codeString))
6616          return new Enumeration<Currencies>(this, Currencies.MDL, code);
6617        if ("MGA".equals(codeString))
6618          return new Enumeration<Currencies>(this, Currencies.MGA, code);
6619        if ("MKD".equals(codeString))
6620          return new Enumeration<Currencies>(this, Currencies.MKD, code);
6621        if ("MMK".equals(codeString))
6622          return new Enumeration<Currencies>(this, Currencies.MMK, code);
6623        if ("MNT".equals(codeString))
6624          return new Enumeration<Currencies>(this, Currencies.MNT, code);
6625        if ("MOP".equals(codeString))
6626          return new Enumeration<Currencies>(this, Currencies.MOP, code);
6627        if ("MRU".equals(codeString))
6628          return new Enumeration<Currencies>(this, Currencies.MRU, code);
6629        if ("MUR".equals(codeString))
6630          return new Enumeration<Currencies>(this, Currencies.MUR, code);
6631        if ("MVR".equals(codeString))
6632          return new Enumeration<Currencies>(this, Currencies.MVR, code);
6633        if ("MWK".equals(codeString))
6634          return new Enumeration<Currencies>(this, Currencies.MWK, code);
6635        if ("MXN".equals(codeString))
6636          return new Enumeration<Currencies>(this, Currencies.MXN, code);
6637        if ("MXV".equals(codeString))
6638          return new Enumeration<Currencies>(this, Currencies.MXV, code);
6639        if ("MYR".equals(codeString))
6640          return new Enumeration<Currencies>(this, Currencies.MYR, code);
6641        if ("MZN".equals(codeString))
6642          return new Enumeration<Currencies>(this, Currencies.MZN, code);
6643        if ("NAD".equals(codeString))
6644          return new Enumeration<Currencies>(this, Currencies.NAD, code);
6645        if ("NGN".equals(codeString))
6646          return new Enumeration<Currencies>(this, Currencies.NGN, code);
6647        if ("NIO".equals(codeString))
6648          return new Enumeration<Currencies>(this, Currencies.NIO, code);
6649        if ("NOK".equals(codeString))
6650          return new Enumeration<Currencies>(this, Currencies.NOK, code);
6651        if ("NPR".equals(codeString))
6652          return new Enumeration<Currencies>(this, Currencies.NPR, code);
6653        if ("NZD".equals(codeString))
6654          return new Enumeration<Currencies>(this, Currencies.NZD, code);
6655        if ("OMR".equals(codeString))
6656          return new Enumeration<Currencies>(this, Currencies.OMR, code);
6657        if ("PAB".equals(codeString))
6658          return new Enumeration<Currencies>(this, Currencies.PAB, code);
6659        if ("PEN".equals(codeString))
6660          return new Enumeration<Currencies>(this, Currencies.PEN, code);
6661        if ("PGK".equals(codeString))
6662          return new Enumeration<Currencies>(this, Currencies.PGK, code);
6663        if ("PHP".equals(codeString))
6664          return new Enumeration<Currencies>(this, Currencies.PHP, code);
6665        if ("PKR".equals(codeString))
6666          return new Enumeration<Currencies>(this, Currencies.PKR, code);
6667        if ("PLN".equals(codeString))
6668          return new Enumeration<Currencies>(this, Currencies.PLN, code);
6669        if ("PYG".equals(codeString))
6670          return new Enumeration<Currencies>(this, Currencies.PYG, code);
6671        if ("QAR".equals(codeString))
6672          return new Enumeration<Currencies>(this, Currencies.QAR, code);
6673        if ("RON".equals(codeString))
6674          return new Enumeration<Currencies>(this, Currencies.RON, code);
6675        if ("RSD".equals(codeString))
6676          return new Enumeration<Currencies>(this, Currencies.RSD, code);
6677        if ("RUB".equals(codeString))
6678          return new Enumeration<Currencies>(this, Currencies.RUB, code);
6679        if ("RWF".equals(codeString))
6680          return new Enumeration<Currencies>(this, Currencies.RWF, code);
6681        if ("SAR".equals(codeString))
6682          return new Enumeration<Currencies>(this, Currencies.SAR, code);
6683        if ("SBD".equals(codeString))
6684          return new Enumeration<Currencies>(this, Currencies.SBD, code);
6685        if ("SCR".equals(codeString))
6686          return new Enumeration<Currencies>(this, Currencies.SCR, code);
6687        if ("SDG".equals(codeString))
6688          return new Enumeration<Currencies>(this, Currencies.SDG, code);
6689        if ("SEK".equals(codeString))
6690          return new Enumeration<Currencies>(this, Currencies.SEK, code);
6691        if ("SGD".equals(codeString))
6692          return new Enumeration<Currencies>(this, Currencies.SGD, code);
6693        if ("SHP".equals(codeString))
6694          return new Enumeration<Currencies>(this, Currencies.SHP, code);
6695        if ("SLL".equals(codeString))
6696          return new Enumeration<Currencies>(this, Currencies.SLL, code);
6697        if ("SOS".equals(codeString))
6698          return new Enumeration<Currencies>(this, Currencies.SOS, code);
6699        if ("SRD".equals(codeString))
6700          return new Enumeration<Currencies>(this, Currencies.SRD, code);
6701        if ("SSP".equals(codeString))
6702          return new Enumeration<Currencies>(this, Currencies.SSP, code);
6703        if ("STN".equals(codeString))
6704          return new Enumeration<Currencies>(this, Currencies.STN, code);
6705        if ("SVC".equals(codeString))
6706          return new Enumeration<Currencies>(this, Currencies.SVC, code);
6707        if ("SYP".equals(codeString))
6708          return new Enumeration<Currencies>(this, Currencies.SYP, code);
6709        if ("SZL".equals(codeString))
6710          return new Enumeration<Currencies>(this, Currencies.SZL, code);
6711        if ("THB".equals(codeString))
6712          return new Enumeration<Currencies>(this, Currencies.THB, code);
6713        if ("TJS".equals(codeString))
6714          return new Enumeration<Currencies>(this, Currencies.TJS, code);
6715        if ("TMT".equals(codeString))
6716          return new Enumeration<Currencies>(this, Currencies.TMT, code);
6717        if ("TND".equals(codeString))
6718          return new Enumeration<Currencies>(this, Currencies.TND, code);
6719        if ("TOP".equals(codeString))
6720          return new Enumeration<Currencies>(this, Currencies.TOP, code);
6721        if ("TRY".equals(codeString))
6722          return new Enumeration<Currencies>(this, Currencies.TRY, code);
6723        if ("TTD".equals(codeString))
6724          return new Enumeration<Currencies>(this, Currencies.TTD, code);
6725        if ("TVD".equals(codeString))
6726          return new Enumeration<Currencies>(this, Currencies.TVD, code);
6727        if ("TWD".equals(codeString))
6728          return new Enumeration<Currencies>(this, Currencies.TWD, code);
6729        if ("TZS".equals(codeString))
6730          return new Enumeration<Currencies>(this, Currencies.TZS, code);
6731        if ("UAH".equals(codeString))
6732          return new Enumeration<Currencies>(this, Currencies.UAH, code);
6733        if ("UGX".equals(codeString))
6734          return new Enumeration<Currencies>(this, Currencies.UGX, code);
6735        if ("USD".equals(codeString))
6736          return new Enumeration<Currencies>(this, Currencies.USD, code);
6737        if ("USN".equals(codeString))
6738          return new Enumeration<Currencies>(this, Currencies.USN, code);
6739        if ("UYI".equals(codeString))
6740          return new Enumeration<Currencies>(this, Currencies.UYI, code);
6741        if ("UYU".equals(codeString))
6742          return new Enumeration<Currencies>(this, Currencies.UYU, code);
6743        if ("UZS".equals(codeString))
6744          return new Enumeration<Currencies>(this, Currencies.UZS, code);
6745        if ("VEF".equals(codeString))
6746          return new Enumeration<Currencies>(this, Currencies.VEF, code);
6747        if ("VND".equals(codeString))
6748          return new Enumeration<Currencies>(this, Currencies.VND, code);
6749        if ("VUV".equals(codeString))
6750          return new Enumeration<Currencies>(this, Currencies.VUV, code);
6751        if ("WST".equals(codeString))
6752          return new Enumeration<Currencies>(this, Currencies.WST, code);
6753        if ("XAF".equals(codeString))
6754          return new Enumeration<Currencies>(this, Currencies.XAF, code);
6755        if ("XAG".equals(codeString))
6756          return new Enumeration<Currencies>(this, Currencies.XAG, code);
6757        if ("XAU".equals(codeString))
6758          return new Enumeration<Currencies>(this, Currencies.XAU, code);
6759        if ("XBA".equals(codeString))
6760          return new Enumeration<Currencies>(this, Currencies.XBA, code);
6761        if ("XBB".equals(codeString))
6762          return new Enumeration<Currencies>(this, Currencies.XBB, code);
6763        if ("XBC".equals(codeString))
6764          return new Enumeration<Currencies>(this, Currencies.XBC, code);
6765        if ("XBD".equals(codeString))
6766          return new Enumeration<Currencies>(this, Currencies.XBD, code);
6767        if ("XCD".equals(codeString))
6768          return new Enumeration<Currencies>(this, Currencies.XCD, code);
6769        if ("XDR".equals(codeString))
6770          return new Enumeration<Currencies>(this, Currencies.XDR, code);
6771        if ("XOF".equals(codeString))
6772          return new Enumeration<Currencies>(this, Currencies.XOF, code);
6773        if ("XPD".equals(codeString))
6774          return new Enumeration<Currencies>(this, Currencies.XPD, code);
6775        if ("XPF".equals(codeString))
6776          return new Enumeration<Currencies>(this, Currencies.XPF, code);
6777        if ("XPT".equals(codeString))
6778          return new Enumeration<Currencies>(this, Currencies.XPT, code);
6779        if ("XSU".equals(codeString))
6780          return new Enumeration<Currencies>(this, Currencies.XSU, code);
6781        if ("XTS".equals(codeString))
6782          return new Enumeration<Currencies>(this, Currencies.XTS, code);
6783        if ("XUA".equals(codeString))
6784          return new Enumeration<Currencies>(this, Currencies.XUA, code);
6785        if ("XXX".equals(codeString))
6786          return new Enumeration<Currencies>(this, Currencies.XXX, code);
6787        if ("YER".equals(codeString))
6788          return new Enumeration<Currencies>(this, Currencies.YER, code);
6789        if ("ZAR".equals(codeString))
6790          return new Enumeration<Currencies>(this, Currencies.ZAR, code);
6791        if ("ZMW".equals(codeString))
6792          return new Enumeration<Currencies>(this, Currencies.ZMW, code);
6793        if ("ZWL".equals(codeString))
6794          return new Enumeration<Currencies>(this, Currencies.ZWL, code);
6795        throw new FHIRException("Unknown Currencies code '"+codeString+"'");
6796        }
6797    public String toCode(Currencies code) {
6798       if (code == Currencies.NULL)
6799           return null;
6800       if (code == Currencies.AED)
6801        return "AED";
6802      if (code == Currencies.AFN)
6803        return "AFN";
6804      if (code == Currencies.ALL)
6805        return "ALL";
6806      if (code == Currencies.AMD)
6807        return "AMD";
6808      if (code == Currencies.ANG)
6809        return "ANG";
6810      if (code == Currencies.AOA)
6811        return "AOA";
6812      if (code == Currencies.ARS)
6813        return "ARS";
6814      if (code == Currencies.AUD)
6815        return "AUD";
6816      if (code == Currencies.AWG)
6817        return "AWG";
6818      if (code == Currencies.AZN)
6819        return "AZN";
6820      if (code == Currencies.BAM)
6821        return "BAM";
6822      if (code == Currencies.BBD)
6823        return "BBD";
6824      if (code == Currencies.BDT)
6825        return "BDT";
6826      if (code == Currencies.BGN)
6827        return "BGN";
6828      if (code == Currencies.BHD)
6829        return "BHD";
6830      if (code == Currencies.BIF)
6831        return "BIF";
6832      if (code == Currencies.BMD)
6833        return "BMD";
6834      if (code == Currencies.BND)
6835        return "BND";
6836      if (code == Currencies.BOB)
6837        return "BOB";
6838      if (code == Currencies.BOV)
6839        return "BOV";
6840      if (code == Currencies.BRL)
6841        return "BRL";
6842      if (code == Currencies.BSD)
6843        return "BSD";
6844      if (code == Currencies.BTN)
6845        return "BTN";
6846      if (code == Currencies.BWP)
6847        return "BWP";
6848      if (code == Currencies.BYN)
6849        return "BYN";
6850      if (code == Currencies.BZD)
6851        return "BZD";
6852      if (code == Currencies.CAD)
6853        return "CAD";
6854      if (code == Currencies.CDF)
6855        return "CDF";
6856      if (code == Currencies.CHE)
6857        return "CHE";
6858      if (code == Currencies.CHF)
6859        return "CHF";
6860      if (code == Currencies.CHW)
6861        return "CHW";
6862      if (code == Currencies.CLF)
6863        return "CLF";
6864      if (code == Currencies.CLP)
6865        return "CLP";
6866      if (code == Currencies.CNY)
6867        return "CNY";
6868      if (code == Currencies.COP)
6869        return "COP";
6870      if (code == Currencies.COU)
6871        return "COU";
6872      if (code == Currencies.CRC)
6873        return "CRC";
6874      if (code == Currencies.CUC)
6875        return "CUC";
6876      if (code == Currencies.CUP)
6877        return "CUP";
6878      if (code == Currencies.CVE)
6879        return "CVE";
6880      if (code == Currencies.CZK)
6881        return "CZK";
6882      if (code == Currencies.DJF)
6883        return "DJF";
6884      if (code == Currencies.DKK)
6885        return "DKK";
6886      if (code == Currencies.DOP)
6887        return "DOP";
6888      if (code == Currencies.DZD)
6889        return "DZD";
6890      if (code == Currencies.EGP)
6891        return "EGP";
6892      if (code == Currencies.ERN)
6893        return "ERN";
6894      if (code == Currencies.ETB)
6895        return "ETB";
6896      if (code == Currencies.EUR)
6897        return "EUR";
6898      if (code == Currencies.FJD)
6899        return "FJD";
6900      if (code == Currencies.FKP)
6901        return "FKP";
6902      if (code == Currencies.GBP)
6903        return "GBP";
6904      if (code == Currencies.GEL)
6905        return "GEL";
6906      if (code == Currencies.GGP)
6907        return "GGP";
6908      if (code == Currencies.GHS)
6909        return "GHS";
6910      if (code == Currencies.GIP)
6911        return "GIP";
6912      if (code == Currencies.GMD)
6913        return "GMD";
6914      if (code == Currencies.GNF)
6915        return "GNF";
6916      if (code == Currencies.GTQ)
6917        return "GTQ";
6918      if (code == Currencies.GYD)
6919        return "GYD";
6920      if (code == Currencies.HKD)
6921        return "HKD";
6922      if (code == Currencies.HNL)
6923        return "HNL";
6924      if (code == Currencies.HRK)
6925        return "HRK";
6926      if (code == Currencies.HTG)
6927        return "HTG";
6928      if (code == Currencies.HUF)
6929        return "HUF";
6930      if (code == Currencies.IDR)
6931        return "IDR";
6932      if (code == Currencies.ILS)
6933        return "ILS";
6934      if (code == Currencies.IMP)
6935        return "IMP";
6936      if (code == Currencies.INR)
6937        return "INR";
6938      if (code == Currencies.IQD)
6939        return "IQD";
6940      if (code == Currencies.IRR)
6941        return "IRR";
6942      if (code == Currencies.ISK)
6943        return "ISK";
6944      if (code == Currencies.JEP)
6945        return "JEP";
6946      if (code == Currencies.JMD)
6947        return "JMD";
6948      if (code == Currencies.JOD)
6949        return "JOD";
6950      if (code == Currencies.JPY)
6951        return "JPY";
6952      if (code == Currencies.KES)
6953        return "KES";
6954      if (code == Currencies.KGS)
6955        return "KGS";
6956      if (code == Currencies.KHR)
6957        return "KHR";
6958      if (code == Currencies.KMF)
6959        return "KMF";
6960      if (code == Currencies.KPW)
6961        return "KPW";
6962      if (code == Currencies.KRW)
6963        return "KRW";
6964      if (code == Currencies.KWD)
6965        return "KWD";
6966      if (code == Currencies.KYD)
6967        return "KYD";
6968      if (code == Currencies.KZT)
6969        return "KZT";
6970      if (code == Currencies.LAK)
6971        return "LAK";
6972      if (code == Currencies.LBP)
6973        return "LBP";
6974      if (code == Currencies.LKR)
6975        return "LKR";
6976      if (code == Currencies.LRD)
6977        return "LRD";
6978      if (code == Currencies.LSL)
6979        return "LSL";
6980      if (code == Currencies.LYD)
6981        return "LYD";
6982      if (code == Currencies.MAD)
6983        return "MAD";
6984      if (code == Currencies.MDL)
6985        return "MDL";
6986      if (code == Currencies.MGA)
6987        return "MGA";
6988      if (code == Currencies.MKD)
6989        return "MKD";
6990      if (code == Currencies.MMK)
6991        return "MMK";
6992      if (code == Currencies.MNT)
6993        return "MNT";
6994      if (code == Currencies.MOP)
6995        return "MOP";
6996      if (code == Currencies.MRU)
6997        return "MRU";
6998      if (code == Currencies.MUR)
6999        return "MUR";
7000      if (code == Currencies.MVR)
7001        return "MVR";
7002      if (code == Currencies.MWK)
7003        return "MWK";
7004      if (code == Currencies.MXN)
7005        return "MXN";
7006      if (code == Currencies.MXV)
7007        return "MXV";
7008      if (code == Currencies.MYR)
7009        return "MYR";
7010      if (code == Currencies.MZN)
7011        return "MZN";
7012      if (code == Currencies.NAD)
7013        return "NAD";
7014      if (code == Currencies.NGN)
7015        return "NGN";
7016      if (code == Currencies.NIO)
7017        return "NIO";
7018      if (code == Currencies.NOK)
7019        return "NOK";
7020      if (code == Currencies.NPR)
7021        return "NPR";
7022      if (code == Currencies.NZD)
7023        return "NZD";
7024      if (code == Currencies.OMR)
7025        return "OMR";
7026      if (code == Currencies.PAB)
7027        return "PAB";
7028      if (code == Currencies.PEN)
7029        return "PEN";
7030      if (code == Currencies.PGK)
7031        return "PGK";
7032      if (code == Currencies.PHP)
7033        return "PHP";
7034      if (code == Currencies.PKR)
7035        return "PKR";
7036      if (code == Currencies.PLN)
7037        return "PLN";
7038      if (code == Currencies.PYG)
7039        return "PYG";
7040      if (code == Currencies.QAR)
7041        return "QAR";
7042      if (code == Currencies.RON)
7043        return "RON";
7044      if (code == Currencies.RSD)
7045        return "RSD";
7046      if (code == Currencies.RUB)
7047        return "RUB";
7048      if (code == Currencies.RWF)
7049        return "RWF";
7050      if (code == Currencies.SAR)
7051        return "SAR";
7052      if (code == Currencies.SBD)
7053        return "SBD";
7054      if (code == Currencies.SCR)
7055        return "SCR";
7056      if (code == Currencies.SDG)
7057        return "SDG";
7058      if (code == Currencies.SEK)
7059        return "SEK";
7060      if (code == Currencies.SGD)
7061        return "SGD";
7062      if (code == Currencies.SHP)
7063        return "SHP";
7064      if (code == Currencies.SLL)
7065        return "SLL";
7066      if (code == Currencies.SOS)
7067        return "SOS";
7068      if (code == Currencies.SRD)
7069        return "SRD";
7070      if (code == Currencies.SSP)
7071        return "SSP";
7072      if (code == Currencies.STN)
7073        return "STN";
7074      if (code == Currencies.SVC)
7075        return "SVC";
7076      if (code == Currencies.SYP)
7077        return "SYP";
7078      if (code == Currencies.SZL)
7079        return "SZL";
7080      if (code == Currencies.THB)
7081        return "THB";
7082      if (code == Currencies.TJS)
7083        return "TJS";
7084      if (code == Currencies.TMT)
7085        return "TMT";
7086      if (code == Currencies.TND)
7087        return "TND";
7088      if (code == Currencies.TOP)
7089        return "TOP";
7090      if (code == Currencies.TRY)
7091        return "TRY";
7092      if (code == Currencies.TTD)
7093        return "TTD";
7094      if (code == Currencies.TVD)
7095        return "TVD";
7096      if (code == Currencies.TWD)
7097        return "TWD";
7098      if (code == Currencies.TZS)
7099        return "TZS";
7100      if (code == Currencies.UAH)
7101        return "UAH";
7102      if (code == Currencies.UGX)
7103        return "UGX";
7104      if (code == Currencies.USD)
7105        return "USD";
7106      if (code == Currencies.USN)
7107        return "USN";
7108      if (code == Currencies.UYI)
7109        return "UYI";
7110      if (code == Currencies.UYU)
7111        return "UYU";
7112      if (code == Currencies.UZS)
7113        return "UZS";
7114      if (code == Currencies.VEF)
7115        return "VEF";
7116      if (code == Currencies.VND)
7117        return "VND";
7118      if (code == Currencies.VUV)
7119        return "VUV";
7120      if (code == Currencies.WST)
7121        return "WST";
7122      if (code == Currencies.XAF)
7123        return "XAF";
7124      if (code == Currencies.XAG)
7125        return "XAG";
7126      if (code == Currencies.XAU)
7127        return "XAU";
7128      if (code == Currencies.XBA)
7129        return "XBA";
7130      if (code == Currencies.XBB)
7131        return "XBB";
7132      if (code == Currencies.XBC)
7133        return "XBC";
7134      if (code == Currencies.XBD)
7135        return "XBD";
7136      if (code == Currencies.XCD)
7137        return "XCD";
7138      if (code == Currencies.XDR)
7139        return "XDR";
7140      if (code == Currencies.XOF)
7141        return "XOF";
7142      if (code == Currencies.XPD)
7143        return "XPD";
7144      if (code == Currencies.XPF)
7145        return "XPF";
7146      if (code == Currencies.XPT)
7147        return "XPT";
7148      if (code == Currencies.XSU)
7149        return "XSU";
7150      if (code == Currencies.XTS)
7151        return "XTS";
7152      if (code == Currencies.XUA)
7153        return "XUA";
7154      if (code == Currencies.XXX)
7155        return "XXX";
7156      if (code == Currencies.YER)
7157        return "YER";
7158      if (code == Currencies.ZAR)
7159        return "ZAR";
7160      if (code == Currencies.ZMW)
7161        return "ZMW";
7162      if (code == Currencies.ZWL)
7163        return "ZWL";
7164      return "?";
7165   }
7166    public String toSystem(Currencies code) {
7167      return code.getSystem();
7168      }
7169    }
7170
7171    public enum DaysOfWeek {
7172        /**
7173         * Monday.
7174         */
7175        MON, 
7176        /**
7177         * Tuesday.
7178         */
7179        TUE, 
7180        /**
7181         * Wednesday.
7182         */
7183        WED, 
7184        /**
7185         * Thursday.
7186         */
7187        THU, 
7188        /**
7189         * Friday.
7190         */
7191        FRI, 
7192        /**
7193         * Saturday.
7194         */
7195        SAT, 
7196        /**
7197         * Sunday.
7198         */
7199        SUN, 
7200        /**
7201         * added to help the parsers
7202         */
7203        NULL;
7204        public static DaysOfWeek fromCode(String codeString) throws FHIRException {
7205            if (codeString == null || "".equals(codeString))
7206                return null;
7207        if ("mon".equals(codeString))
7208          return MON;
7209        if ("tue".equals(codeString))
7210          return TUE;
7211        if ("wed".equals(codeString))
7212          return WED;
7213        if ("thu".equals(codeString))
7214          return THU;
7215        if ("fri".equals(codeString))
7216          return FRI;
7217        if ("sat".equals(codeString))
7218          return SAT;
7219        if ("sun".equals(codeString))
7220          return SUN;
7221        throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'");
7222        }
7223        public static boolean isValidCode(String codeString) {
7224            if (codeString == null || "".equals(codeString))
7225                return false;
7226          return Utilities.existsInList(codeString, "mon", "tue", "wed", "thu", "fri", "sat", "sun");
7227        }
7228        public String toCode() {
7229          switch (this) {
7230            case MON: return "mon";
7231            case TUE: return "tue";
7232            case WED: return "wed";
7233            case THU: return "thu";
7234            case FRI: return "fri";
7235            case SAT: return "sat";
7236            case SUN: return "sun";
7237            case NULL: return null;
7238            default: return "?";
7239          }
7240        }
7241        public String getSystem() {
7242          switch (this) {
7243            case MON: return "http://hl7.org/fhir/days-of-week";
7244            case TUE: return "http://hl7.org/fhir/days-of-week";
7245            case WED: return "http://hl7.org/fhir/days-of-week";
7246            case THU: return "http://hl7.org/fhir/days-of-week";
7247            case FRI: return "http://hl7.org/fhir/days-of-week";
7248            case SAT: return "http://hl7.org/fhir/days-of-week";
7249            case SUN: return "http://hl7.org/fhir/days-of-week";
7250            case NULL: return null;
7251            default: return "?";
7252          }
7253        }
7254        public String getDefinition() {
7255          switch (this) {
7256            case MON: return "Monday.";
7257            case TUE: return "Tuesday.";
7258            case WED: return "Wednesday.";
7259            case THU: return "Thursday.";
7260            case FRI: return "Friday.";
7261            case SAT: return "Saturday.";
7262            case SUN: return "Sunday.";
7263            case NULL: return null;
7264            default: return "?";
7265          }
7266        }
7267        public String getDisplay() {
7268          switch (this) {
7269            case MON: return "Monday";
7270            case TUE: return "Tuesday";
7271            case WED: return "Wednesday";
7272            case THU: return "Thursday";
7273            case FRI: return "Friday";
7274            case SAT: return "Saturday";
7275            case SUN: return "Sunday";
7276            case NULL: return null;
7277            default: return "?";
7278          }
7279        }
7280    }
7281
7282  public static class DaysOfWeekEnumFactory implements EnumFactory<DaysOfWeek> {
7283    public DaysOfWeek fromCode(String codeString) throws IllegalArgumentException {
7284      if (codeString == null || "".equals(codeString))
7285            if (codeString == null || "".equals(codeString))
7286                return null;
7287        if ("mon".equals(codeString))
7288          return DaysOfWeek.MON;
7289        if ("tue".equals(codeString))
7290          return DaysOfWeek.TUE;
7291        if ("wed".equals(codeString))
7292          return DaysOfWeek.WED;
7293        if ("thu".equals(codeString))
7294          return DaysOfWeek.THU;
7295        if ("fri".equals(codeString))
7296          return DaysOfWeek.FRI;
7297        if ("sat".equals(codeString))
7298          return DaysOfWeek.SAT;
7299        if ("sun".equals(codeString))
7300          return DaysOfWeek.SUN;
7301        throw new IllegalArgumentException("Unknown DaysOfWeek code '"+codeString+"'");
7302        }
7303
7304        public Enumeration<DaysOfWeek> fromType(PrimitiveType<?> code) throws FHIRException {
7305          if (code == null)
7306            return null;
7307          if (code.isEmpty())
7308            return new Enumeration<DaysOfWeek>(this, DaysOfWeek.NULL, code);
7309          String codeString = ((PrimitiveType) code).asStringValue();
7310          if (codeString == null || "".equals(codeString))
7311            return new Enumeration<DaysOfWeek>(this, DaysOfWeek.NULL, code);
7312        if ("mon".equals(codeString))
7313          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.MON, code);
7314        if ("tue".equals(codeString))
7315          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.TUE, code);
7316        if ("wed".equals(codeString))
7317          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.WED, code);
7318        if ("thu".equals(codeString))
7319          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.THU, code);
7320        if ("fri".equals(codeString))
7321          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.FRI, code);
7322        if ("sat".equals(codeString))
7323          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SAT, code);
7324        if ("sun".equals(codeString))
7325          return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SUN, code);
7326        throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'");
7327        }
7328    public String toCode(DaysOfWeek code) {
7329       if (code == DaysOfWeek.NULL)
7330           return null;
7331       if (code == DaysOfWeek.MON)
7332        return "mon";
7333      if (code == DaysOfWeek.TUE)
7334        return "tue";
7335      if (code == DaysOfWeek.WED)
7336        return "wed";
7337      if (code == DaysOfWeek.THU)
7338        return "thu";
7339      if (code == DaysOfWeek.FRI)
7340        return "fri";
7341      if (code == DaysOfWeek.SAT)
7342        return "sat";
7343      if (code == DaysOfWeek.SUN)
7344        return "sun";
7345      return "?";
7346   }
7347    public String toSystem(DaysOfWeek code) {
7348      return code.getSystem();
7349      }
7350    }
7351
7352    public enum DeviceNameType {
7353        /**
7354         * 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.
7355         */
7356        REGISTEREDNAME, 
7357        /**
7358         * 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.
7359         */
7360        USERFRIENDLYNAME, 
7361        /**
7362         * 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.
7363         */
7364        PATIENTREPORTEDNAME, 
7365        /**
7366         * added to help the parsers
7367         */
7368        NULL;
7369        public static DeviceNameType fromCode(String codeString) throws FHIRException {
7370            if (codeString == null || "".equals(codeString))
7371                return null;
7372        if ("registered-name".equals(codeString))
7373          return REGISTEREDNAME;
7374        if ("user-friendly-name".equals(codeString))
7375          return USERFRIENDLYNAME;
7376        if ("patient-reported-name".equals(codeString))
7377          return PATIENTREPORTEDNAME;
7378        throw new FHIRException("Unknown DeviceNameType code '"+codeString+"'");
7379        }
7380        public static boolean isValidCode(String codeString) {
7381            if (codeString == null || "".equals(codeString))
7382                return false;
7383          return Utilities.existsInList(codeString, "registered-name", "user-friendly-name", "patient-reported-name");
7384        }
7385        public String toCode() {
7386          switch (this) {
7387            case REGISTEREDNAME: return "registered-name";
7388            case USERFRIENDLYNAME: return "user-friendly-name";
7389            case PATIENTREPORTEDNAME: return "patient-reported-name";
7390            case NULL: return null;
7391            default: return "?";
7392          }
7393        }
7394        public String getSystem() {
7395          switch (this) {
7396            case REGISTEREDNAME: return "http://hl7.org/fhir/device-nametype";
7397            case USERFRIENDLYNAME: return "http://hl7.org/fhir/device-nametype";
7398            case PATIENTREPORTEDNAME: return "http://hl7.org/fhir/device-nametype";
7399            case NULL: return null;
7400            default: return "?";
7401          }
7402        }
7403        public String getDefinition() {
7404          switch (this) {
7405            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.";
7406            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.";
7407            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.";
7408            case NULL: return null;
7409            default: return "?";
7410          }
7411        }
7412        public String getDisplay() {
7413          switch (this) {
7414            case REGISTEREDNAME: return "Registered name";
7415            case USERFRIENDLYNAME: return "User Friendly name";
7416            case PATIENTREPORTEDNAME: return "Patient Reported name";
7417            case NULL: return null;
7418            default: return "?";
7419          }
7420        }
7421    }
7422
7423  public static class DeviceNameTypeEnumFactory implements EnumFactory<DeviceNameType> {
7424    public DeviceNameType fromCode(String codeString) throws IllegalArgumentException {
7425      if (codeString == null || "".equals(codeString))
7426            if (codeString == null || "".equals(codeString))
7427                return null;
7428        if ("registered-name".equals(codeString))
7429          return DeviceNameType.REGISTEREDNAME;
7430        if ("user-friendly-name".equals(codeString))
7431          return DeviceNameType.USERFRIENDLYNAME;
7432        if ("patient-reported-name".equals(codeString))
7433          return DeviceNameType.PATIENTREPORTEDNAME;
7434        throw new IllegalArgumentException("Unknown DeviceNameType code '"+codeString+"'");
7435        }
7436
7437        public Enumeration<DeviceNameType> fromType(PrimitiveType<?> code) throws FHIRException {
7438          if (code == null)
7439            return null;
7440          if (code.isEmpty())
7441            return new Enumeration<DeviceNameType>(this, DeviceNameType.NULL, code);
7442          String codeString = ((PrimitiveType) code).asStringValue();
7443          if (codeString == null || "".equals(codeString))
7444            return new Enumeration<DeviceNameType>(this, DeviceNameType.NULL, code);
7445        if ("registered-name".equals(codeString))
7446          return new Enumeration<DeviceNameType>(this, DeviceNameType.REGISTEREDNAME, code);
7447        if ("user-friendly-name".equals(codeString))
7448          return new Enumeration<DeviceNameType>(this, DeviceNameType.USERFRIENDLYNAME, code);
7449        if ("patient-reported-name".equals(codeString))
7450          return new Enumeration<DeviceNameType>(this, DeviceNameType.PATIENTREPORTEDNAME, code);
7451        throw new FHIRException("Unknown DeviceNameType code '"+codeString+"'");
7452        }
7453    public String toCode(DeviceNameType code) {
7454       if (code == DeviceNameType.NULL)
7455           return null;
7456       if (code == DeviceNameType.REGISTEREDNAME)
7457        return "registered-name";
7458      if (code == DeviceNameType.USERFRIENDLYNAME)
7459        return "user-friendly-name";
7460      if (code == DeviceNameType.PATIENTREPORTEDNAME)
7461        return "patient-reported-name";
7462      return "?";
7463   }
7464    public String toSystem(DeviceNameType code) {
7465      return code.getSystem();
7466      }
7467    }
7468
7469    public enum EncounterStatus {
7470        /**
7471         * The Encounter has not yet started.
7472         */
7473        PLANNED, 
7474        /**
7475         * The Encounter has begun and the patient is present / the practitioner and the patient are meeting.
7476         */
7477        INPROGRESS, 
7478        /**
7479         * The Encounter has begun, but is currently on hold, e.g. because the patient is temporarily on leave.
7480         */
7481        ONHOLD, 
7482        /**
7483         * The Encounter has been clinically completed, the patient has been discharged from the facility or the visit has ended, and the patient may have departed (refer to subjectStatus). While the encounter is in this status, administrative activities are usually performed, collating all required documentation and charge information before being released for billing, at which point the status will move to completed.
7484         */
7485        DISCHARGED, 
7486        /**
7487         * The Encounter has ended.
7488         */
7489        COMPLETED, 
7490        /**
7491         * The Encounter has ended before it has begun.
7492         */
7493        CANCELLED, 
7494        /**
7495         * The Encounter has started, but was not able to be completed. Further action may need to be performed, such as rescheduling appointments related to this encounter.
7496         */
7497        DISCONTINUED, 
7498        /**
7499         * This instance should not have been part of this patient's medical record.
7500         */
7501        ENTEREDINERROR, 
7502        /**
7503         * The encounter status is unknown. Note that "unknown" is a value of last resort and every attempt should be made to provide a meaningful value other than "unknown".
7504         */
7505        UNKNOWN, 
7506        /**
7507         * added to help the parsers
7508         */
7509        NULL;
7510        public static EncounterStatus fromCode(String codeString) throws FHIRException {
7511            if (codeString == null || "".equals(codeString))
7512                return null;
7513        if ("planned".equals(codeString))
7514          return PLANNED;
7515        if ("in-progress".equals(codeString))
7516          return INPROGRESS;
7517        if ("on-hold".equals(codeString))
7518          return ONHOLD;
7519        if ("discharged".equals(codeString))
7520          return DISCHARGED;
7521        if ("completed".equals(codeString))
7522          return COMPLETED;
7523        if ("cancelled".equals(codeString))
7524          return CANCELLED;
7525        if ("discontinued".equals(codeString))
7526          return DISCONTINUED;
7527        if ("entered-in-error".equals(codeString))
7528          return ENTEREDINERROR;
7529        if ("unknown".equals(codeString))
7530          return UNKNOWN;
7531        throw new FHIRException("Unknown EncounterStatus code '"+codeString+"'");
7532        }
7533        public static boolean isValidCode(String codeString) {
7534            if (codeString == null || "".equals(codeString))
7535                return false;
7536          return Utilities.existsInList(codeString, "planned", "in-progress", "on-hold", "discharged", "completed", "cancelled", "discontinued", "entered-in-error", "unknown");
7537        }
7538        public String toCode() {
7539          switch (this) {
7540            case PLANNED: return "planned";
7541            case INPROGRESS: return "in-progress";
7542            case ONHOLD: return "on-hold";
7543            case DISCHARGED: return "discharged";
7544            case COMPLETED: return "completed";
7545            case CANCELLED: return "cancelled";
7546            case DISCONTINUED: return "discontinued";
7547            case ENTEREDINERROR: return "entered-in-error";
7548            case UNKNOWN: return "unknown";
7549            case NULL: return null;
7550            default: return "?";
7551          }
7552        }
7553        public String getSystem() {
7554          switch (this) {
7555            case PLANNED: return "http://hl7.org/fhir/encounter-status";
7556            case INPROGRESS: return "http://hl7.org/fhir/encounter-status";
7557            case ONHOLD: return "http://hl7.org/fhir/encounter-status";
7558            case DISCHARGED: return "http://hl7.org/fhir/encounter-status";
7559            case COMPLETED: return "http://hl7.org/fhir/encounter-status";
7560            case CANCELLED: return "http://hl7.org/fhir/encounter-status";
7561            case DISCONTINUED: return "http://hl7.org/fhir/encounter-status";
7562            case ENTEREDINERROR: return "http://hl7.org/fhir/encounter-status";
7563            case UNKNOWN: return "http://hl7.org/fhir/encounter-status";
7564            case NULL: return null;
7565            default: return "?";
7566          }
7567        }
7568        public String getDefinition() {
7569          switch (this) {
7570            case PLANNED: return "The Encounter has not yet started.";
7571            case INPROGRESS: return "The Encounter has begun and the patient is present / the practitioner and the patient are meeting.";
7572            case ONHOLD: return "The Encounter has begun, but is currently on hold, e.g. because the patient is temporarily on leave.";
7573            case DISCHARGED: return "The Encounter has been clinically completed, the patient has been discharged from the facility or the visit has ended, and the patient may have departed (refer to subjectStatus). While the encounter is in this status, administrative activities are usually performed, collating all required documentation and charge information before being released for billing, at which point the status will move to completed.";
7574            case COMPLETED: return "The Encounter has ended.";
7575            case CANCELLED: return "The Encounter has ended before it has begun.";
7576            case DISCONTINUED: return "The Encounter has started, but was not able to be completed. Further action may need to be performed, such as rescheduling appointments related to this encounter.";
7577            case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record.";
7578            case UNKNOWN: return "The encounter status is unknown. Note that \"unknown\" is a value of last resort and every attempt should be made to provide a meaningful value other than \"unknown\".";
7579            case NULL: return null;
7580            default: return "?";
7581          }
7582        }
7583        public String getDisplay() {
7584          switch (this) {
7585            case PLANNED: return "Planned";
7586            case INPROGRESS: return "In Progress";
7587            case ONHOLD: return "On Hold";
7588            case DISCHARGED: return "Discharged";
7589            case COMPLETED: return "Completed";
7590            case CANCELLED: return "Cancelled";
7591            case DISCONTINUED: return "Discontinued";
7592            case ENTEREDINERROR: return "Entered in Error";
7593            case UNKNOWN: return "Unknown";
7594            case NULL: return null;
7595            default: return "?";
7596          }
7597        }
7598    }
7599
7600  public static class EncounterStatusEnumFactory implements EnumFactory<EncounterStatus> {
7601    public EncounterStatus fromCode(String codeString) throws IllegalArgumentException {
7602      if (codeString == null || "".equals(codeString))
7603            if (codeString == null || "".equals(codeString))
7604                return null;
7605        if ("planned".equals(codeString))
7606          return EncounterStatus.PLANNED;
7607        if ("in-progress".equals(codeString))
7608          return EncounterStatus.INPROGRESS;
7609        if ("on-hold".equals(codeString))
7610          return EncounterStatus.ONHOLD;
7611        if ("discharged".equals(codeString))
7612          return EncounterStatus.DISCHARGED;
7613        if ("completed".equals(codeString))
7614          return EncounterStatus.COMPLETED;
7615        if ("cancelled".equals(codeString))
7616          return EncounterStatus.CANCELLED;
7617        if ("discontinued".equals(codeString))
7618          return EncounterStatus.DISCONTINUED;
7619        if ("entered-in-error".equals(codeString))
7620          return EncounterStatus.ENTEREDINERROR;
7621        if ("unknown".equals(codeString))
7622          return EncounterStatus.UNKNOWN;
7623        throw new IllegalArgumentException("Unknown EncounterStatus code '"+codeString+"'");
7624        }
7625
7626        public Enumeration<EncounterStatus> fromType(PrimitiveType<?> code) throws FHIRException {
7627          if (code == null)
7628            return null;
7629          if (code.isEmpty())
7630            return new Enumeration<EncounterStatus>(this, EncounterStatus.NULL, code);
7631          String codeString = ((PrimitiveType) code).asStringValue();
7632          if (codeString == null || "".equals(codeString))
7633            return new Enumeration<EncounterStatus>(this, EncounterStatus.NULL, code);
7634        if ("planned".equals(codeString))
7635          return new Enumeration<EncounterStatus>(this, EncounterStatus.PLANNED, code);
7636        if ("in-progress".equals(codeString))
7637          return new Enumeration<EncounterStatus>(this, EncounterStatus.INPROGRESS, code);
7638        if ("on-hold".equals(codeString))
7639          return new Enumeration<EncounterStatus>(this, EncounterStatus.ONHOLD, code);
7640        if ("discharged".equals(codeString))
7641          return new Enumeration<EncounterStatus>(this, EncounterStatus.DISCHARGED, code);
7642        if ("completed".equals(codeString))
7643          return new Enumeration<EncounterStatus>(this, EncounterStatus.COMPLETED, code);
7644        if ("cancelled".equals(codeString))
7645          return new Enumeration<EncounterStatus>(this, EncounterStatus.CANCELLED, code);
7646        if ("discontinued".equals(codeString))
7647          return new Enumeration<EncounterStatus>(this, EncounterStatus.DISCONTINUED, code);
7648        if ("entered-in-error".equals(codeString))
7649          return new Enumeration<EncounterStatus>(this, EncounterStatus.ENTEREDINERROR, code);
7650        if ("unknown".equals(codeString))
7651          return new Enumeration<EncounterStatus>(this, EncounterStatus.UNKNOWN, code);
7652        throw new FHIRException("Unknown EncounterStatus code '"+codeString+"'");
7653        }
7654    public String toCode(EncounterStatus code) {
7655       if (code == EncounterStatus.NULL)
7656           return null;
7657       if (code == EncounterStatus.PLANNED)
7658        return "planned";
7659      if (code == EncounterStatus.INPROGRESS)
7660        return "in-progress";
7661      if (code == EncounterStatus.ONHOLD)
7662        return "on-hold";
7663      if (code == EncounterStatus.DISCHARGED)
7664        return "discharged";
7665      if (code == EncounterStatus.COMPLETED)
7666        return "completed";
7667      if (code == EncounterStatus.CANCELLED)
7668        return "cancelled";
7669      if (code == EncounterStatus.DISCONTINUED)
7670        return "discontinued";
7671      if (code == EncounterStatus.ENTEREDINERROR)
7672        return "entered-in-error";
7673      if (code == EncounterStatus.UNKNOWN)
7674        return "unknown";
7675      return "?";
7676   }
7677    public String toSystem(EncounterStatus code) {
7678      return code.getSystem();
7679      }
7680    }
7681
7682    public enum EventStatus {
7683        /**
7684         * 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.
7685         */
7686        PREPARATION, 
7687        /**
7688         * The event is currently occurring.
7689         */
7690        INPROGRESS, 
7691        /**
7692         * 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.
7693         */
7694        NOTDONE, 
7695        /**
7696         * The event has been temporarily stopped but is expected to resume in the future.
7697         */
7698        ONHOLD, 
7699        /**
7700         * 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.
7701         */
7702        STOPPED, 
7703        /**
7704         * The event has now concluded.
7705         */
7706        COMPLETED, 
7707        /**
7708         * 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".).
7709         */
7710        ENTEREDINERROR, 
7711        /**
7712         * 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.
7713         */
7714        UNKNOWN, 
7715        /**
7716         * added to help the parsers
7717         */
7718        NULL;
7719        public static EventStatus fromCode(String codeString) throws FHIRException {
7720            if (codeString == null || "".equals(codeString))
7721                return null;
7722        if ("preparation".equals(codeString))
7723          return PREPARATION;
7724        if ("in-progress".equals(codeString))
7725          return INPROGRESS;
7726        if ("not-done".equals(codeString))
7727          return NOTDONE;
7728        if ("on-hold".equals(codeString))
7729          return ONHOLD;
7730        if ("stopped".equals(codeString))
7731          return STOPPED;
7732        if ("completed".equals(codeString))
7733          return COMPLETED;
7734        if ("entered-in-error".equals(codeString))
7735          return ENTEREDINERROR;
7736        if ("unknown".equals(codeString))
7737          return UNKNOWN;
7738        throw new FHIRException("Unknown EventStatus code '"+codeString+"'");
7739        }
7740        public static boolean isValidCode(String codeString) {
7741            if (codeString == null || "".equals(codeString))
7742                return false;
7743          return Utilities.existsInList(codeString, "preparation", "in-progress", "not-done", "on-hold", "stopped", "completed", "entered-in-error", "unknown");
7744        }
7745        public String toCode() {
7746          switch (this) {
7747            case PREPARATION: return "preparation";
7748            case INPROGRESS: return "in-progress";
7749            case NOTDONE: return "not-done";
7750            case ONHOLD: return "on-hold";
7751            case STOPPED: return "stopped";
7752            case COMPLETED: return "completed";
7753            case ENTEREDINERROR: return "entered-in-error";
7754            case UNKNOWN: return "unknown";
7755            case NULL: return null;
7756            default: return "?";
7757          }
7758        }
7759        public String getSystem() {
7760          switch (this) {
7761            case PREPARATION: return "http://hl7.org/fhir/event-status";
7762            case INPROGRESS: return "http://hl7.org/fhir/event-status";
7763            case NOTDONE: return "http://hl7.org/fhir/event-status";
7764            case ONHOLD: return "http://hl7.org/fhir/event-status";
7765            case STOPPED: return "http://hl7.org/fhir/event-status";
7766            case COMPLETED: return "http://hl7.org/fhir/event-status";
7767            case ENTEREDINERROR: return "http://hl7.org/fhir/event-status";
7768            case UNKNOWN: return "http://hl7.org/fhir/event-status";
7769            case NULL: return null;
7770            default: return "?";
7771          }
7772        }
7773        public String getDefinition() {
7774          switch (this) {
7775            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.";
7776            case INPROGRESS: return "The event is currently occurring.";
7777            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.";
7778            case ONHOLD: return "The event has been temporarily stopped but is expected to resume in the future.";
7779            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.";
7780            case COMPLETED: return "The event has now concluded.";
7781            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\".).";
7782            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.";
7783            case NULL: return null;
7784            default: return "?";
7785          }
7786        }
7787        public String getDisplay() {
7788          switch (this) {
7789            case PREPARATION: return "Preparation";
7790            case INPROGRESS: return "In Progress";
7791            case NOTDONE: return "Not Done";
7792            case ONHOLD: return "On Hold";
7793            case STOPPED: return "Stopped";
7794            case COMPLETED: return "Completed";
7795            case ENTEREDINERROR: return "Entered in Error";
7796            case UNKNOWN: return "Unknown";
7797            case NULL: return null;
7798            default: return "?";
7799          }
7800        }
7801    }
7802
7803  public static class EventStatusEnumFactory implements EnumFactory<EventStatus> {
7804    public EventStatus fromCode(String codeString) throws IllegalArgumentException {
7805      if (codeString == null || "".equals(codeString))
7806            if (codeString == null || "".equals(codeString))
7807                return null;
7808        if ("preparation".equals(codeString))
7809          return EventStatus.PREPARATION;
7810        if ("in-progress".equals(codeString))
7811          return EventStatus.INPROGRESS;
7812        if ("not-done".equals(codeString))
7813          return EventStatus.NOTDONE;
7814        if ("on-hold".equals(codeString))
7815          return EventStatus.ONHOLD;
7816        if ("stopped".equals(codeString))
7817          return EventStatus.STOPPED;
7818        if ("completed".equals(codeString))
7819          return EventStatus.COMPLETED;
7820        if ("entered-in-error".equals(codeString))
7821          return EventStatus.ENTEREDINERROR;
7822        if ("unknown".equals(codeString))
7823          return EventStatus.UNKNOWN;
7824        throw new IllegalArgumentException("Unknown EventStatus code '"+codeString+"'");
7825        }
7826
7827        public Enumeration<EventStatus> fromType(PrimitiveType<?> code) throws FHIRException {
7828          if (code == null)
7829            return null;
7830          if (code.isEmpty())
7831            return new Enumeration<EventStatus>(this, EventStatus.NULL, code);
7832          String codeString = ((PrimitiveType) code).asStringValue();
7833          if (codeString == null || "".equals(codeString))
7834            return new Enumeration<EventStatus>(this, EventStatus.NULL, code);
7835        if ("preparation".equals(codeString))
7836          return new Enumeration<EventStatus>(this, EventStatus.PREPARATION, code);
7837        if ("in-progress".equals(codeString))
7838          return new Enumeration<EventStatus>(this, EventStatus.INPROGRESS, code);
7839        if ("not-done".equals(codeString))
7840          return new Enumeration<EventStatus>(this, EventStatus.NOTDONE, code);
7841        if ("on-hold".equals(codeString))
7842          return new Enumeration<EventStatus>(this, EventStatus.ONHOLD, code);
7843        if ("stopped".equals(codeString))
7844          return new Enumeration<EventStatus>(this, EventStatus.STOPPED, code);
7845        if ("completed".equals(codeString))
7846          return new Enumeration<EventStatus>(this, EventStatus.COMPLETED, code);
7847        if ("entered-in-error".equals(codeString))
7848          return new Enumeration<EventStatus>(this, EventStatus.ENTEREDINERROR, code);
7849        if ("unknown".equals(codeString))
7850          return new Enumeration<EventStatus>(this, EventStatus.UNKNOWN, code);
7851        throw new FHIRException("Unknown EventStatus code '"+codeString+"'");
7852        }
7853    public String toCode(EventStatus code) {
7854       if (code == EventStatus.NULL)
7855           return null;
7856       if (code == EventStatus.PREPARATION)
7857        return "preparation";
7858      if (code == EventStatus.INPROGRESS)
7859        return "in-progress";
7860      if (code == EventStatus.NOTDONE)
7861        return "not-done";
7862      if (code == EventStatus.ONHOLD)
7863        return "on-hold";
7864      if (code == EventStatus.STOPPED)
7865        return "stopped";
7866      if (code == EventStatus.COMPLETED)
7867        return "completed";
7868      if (code == EventStatus.ENTEREDINERROR)
7869        return "entered-in-error";
7870      if (code == EventStatus.UNKNOWN)
7871        return "unknown";
7872      return "?";
7873   }
7874    public String toSystem(EventStatus code) {
7875      return code.getSystem();
7876      }
7877    }
7878
7879    public enum EvidenceVariableHandling {
7880        /**
7881         * 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).
7882         */
7883        CONTINUOUS, 
7884        /**
7885         * 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).
7886         */
7887        DICHOTOMOUS, 
7888        /**
7889         * 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).
7890         */
7891        ORDINAL, 
7892        /**
7893         * 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.
7894         */
7895        POLYCHOTOMOUS, 
7896        /**
7897         * added to help the parsers
7898         */
7899        NULL;
7900        public static EvidenceVariableHandling fromCode(String codeString) throws FHIRException {
7901            if (codeString == null || "".equals(codeString))
7902                return null;
7903        if ("continuous".equals(codeString))
7904          return CONTINUOUS;
7905        if ("dichotomous".equals(codeString))
7906          return DICHOTOMOUS;
7907        if ("ordinal".equals(codeString))
7908          return ORDINAL;
7909        if ("polychotomous".equals(codeString))
7910          return POLYCHOTOMOUS;
7911        throw new FHIRException("Unknown EvidenceVariableHandling code '"+codeString+"'");
7912        }
7913        public static boolean isValidCode(String codeString) {
7914            if (codeString == null || "".equals(codeString))
7915                return false;
7916          return Utilities.existsInList(codeString, "continuous", "dichotomous", "ordinal", "polychotomous");
7917        }
7918        public String toCode() {
7919          switch (this) {
7920            case CONTINUOUS: return "continuous";
7921            case DICHOTOMOUS: return "dichotomous";
7922            case ORDINAL: return "ordinal";
7923            case POLYCHOTOMOUS: return "polychotomous";
7924            case NULL: return null;
7925            default: return "?";
7926          }
7927        }
7928        public String getSystem() {
7929          switch (this) {
7930            case CONTINUOUS: return "http://hl7.org/fhir/variable-handling";
7931            case DICHOTOMOUS: return "http://hl7.org/fhir/variable-handling";
7932            case ORDINAL: return "http://hl7.org/fhir/variable-handling";
7933            case POLYCHOTOMOUS: return "http://hl7.org/fhir/variable-handling";
7934            case NULL: return null;
7935            default: return "?";
7936          }
7937        }
7938        public String getDefinition() {
7939          switch (this) {
7940            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).";
7941            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).";
7942            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).";
7943            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.";
7944            case NULL: return null;
7945            default: return "?";
7946          }
7947        }
7948        public String getDisplay() {
7949          switch (this) {
7950            case CONTINUOUS: return "continuous variable";
7951            case DICHOTOMOUS: return "dichotomous variable";
7952            case ORDINAL: return "ordinal variable";
7953            case POLYCHOTOMOUS: return "polychotomous variable";
7954            case NULL: return null;
7955            default: return "?";
7956          }
7957        }
7958    }
7959
7960  public static class EvidenceVariableHandlingEnumFactory implements EnumFactory<EvidenceVariableHandling> {
7961    public EvidenceVariableHandling fromCode(String codeString) throws IllegalArgumentException {
7962      if (codeString == null || "".equals(codeString))
7963            if (codeString == null || "".equals(codeString))
7964                return null;
7965        if ("continuous".equals(codeString))
7966          return EvidenceVariableHandling.CONTINUOUS;
7967        if ("dichotomous".equals(codeString))
7968          return EvidenceVariableHandling.DICHOTOMOUS;
7969        if ("ordinal".equals(codeString))
7970          return EvidenceVariableHandling.ORDINAL;
7971        if ("polychotomous".equals(codeString))
7972          return EvidenceVariableHandling.POLYCHOTOMOUS;
7973        throw new IllegalArgumentException("Unknown EvidenceVariableHandling code '"+codeString+"'");
7974        }
7975
7976        public Enumeration<EvidenceVariableHandling> fromType(PrimitiveType<?> code) throws FHIRException {
7977          if (code == null)
7978            return null;
7979          if (code.isEmpty())
7980            return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.NULL, code);
7981          String codeString = ((PrimitiveType) code).asStringValue();
7982          if (codeString == null || "".equals(codeString))
7983            return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.NULL, code);
7984        if ("continuous".equals(codeString))
7985          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.CONTINUOUS, code);
7986        if ("dichotomous".equals(codeString))
7987          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.DICHOTOMOUS, code);
7988        if ("ordinal".equals(codeString))
7989          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.ORDINAL, code);
7990        if ("polychotomous".equals(codeString))
7991          return new Enumeration<EvidenceVariableHandling>(this, EvidenceVariableHandling.POLYCHOTOMOUS, code);
7992        throw new FHIRException("Unknown EvidenceVariableHandling code '"+codeString+"'");
7993        }
7994    public String toCode(EvidenceVariableHandling code) {
7995       if (code == EvidenceVariableHandling.NULL)
7996           return null;
7997       if (code == EvidenceVariableHandling.CONTINUOUS)
7998        return "continuous";
7999      if (code == EvidenceVariableHandling.DICHOTOMOUS)
8000        return "dichotomous";
8001      if (code == EvidenceVariableHandling.ORDINAL)
8002        return "ordinal";
8003      if (code == EvidenceVariableHandling.POLYCHOTOMOUS)
8004        return "polychotomous";
8005      return "?";
8006   }
8007    public String toSystem(EvidenceVariableHandling code) {
8008      return code.getSystem();
8009      }
8010    }
8011
8012    public enum ExampleScenarioActorType {
8013        /**
8014         * A human actor
8015         */
8016        PERSON, 
8017        /**
8018         * A software application or other system
8019         */
8020        SYSTEM, 
8021        /**
8022         * added to help the parsers
8023         */
8024        NULL;
8025        public static ExampleScenarioActorType fromCode(String codeString) throws FHIRException {
8026            if (codeString == null || "".equals(codeString))
8027                return null;
8028        if ("person".equals(codeString))
8029          return PERSON;
8030        if ("system".equals(codeString))
8031          return SYSTEM;
8032        throw new FHIRException("Unknown ExampleScenarioActorType code '"+codeString+"'");
8033        }
8034        public static boolean isValidCode(String codeString) {
8035            if (codeString == null || "".equals(codeString))
8036                return false;
8037          return Utilities.existsInList(codeString, "person", "system");
8038        }
8039        public String toCode() {
8040          switch (this) {
8041            case PERSON: return "person";
8042            case SYSTEM: return "system";
8043            case NULL: return null;
8044            default: return "?";
8045          }
8046        }
8047        public String getSystem() {
8048          switch (this) {
8049            case PERSON: return "http://hl7.org/fhir/examplescenario-actor-type";
8050            case SYSTEM: return "http://hl7.org/fhir/examplescenario-actor-type";
8051            case NULL: return null;
8052            default: return "?";
8053          }
8054        }
8055        public String getDefinition() {
8056          switch (this) {
8057            case PERSON: return "A human actor";
8058            case SYSTEM: return "A software application or other system";
8059            case NULL: return null;
8060            default: return "?";
8061          }
8062        }
8063        public String getDisplay() {
8064          switch (this) {
8065            case PERSON: return "Person";
8066            case SYSTEM: return "System";
8067            case NULL: return null;
8068            default: return "?";
8069          }
8070        }
8071    }
8072
8073  public static class ExampleScenarioActorTypeEnumFactory implements EnumFactory<ExampleScenarioActorType> {
8074    public ExampleScenarioActorType fromCode(String codeString) throws IllegalArgumentException {
8075      if (codeString == null || "".equals(codeString))
8076            if (codeString == null || "".equals(codeString))
8077                return null;
8078        if ("person".equals(codeString))
8079          return ExampleScenarioActorType.PERSON;
8080        if ("system".equals(codeString))
8081          return ExampleScenarioActorType.SYSTEM;
8082        throw new IllegalArgumentException("Unknown ExampleScenarioActorType code '"+codeString+"'");
8083        }
8084
8085        public Enumeration<ExampleScenarioActorType> fromType(PrimitiveType<?> code) throws FHIRException {
8086          if (code == null)
8087            return null;
8088          if (code.isEmpty())
8089            return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.NULL, code);
8090          String codeString = ((PrimitiveType) code).asStringValue();
8091          if (codeString == null || "".equals(codeString))
8092            return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.NULL, code);
8093        if ("person".equals(codeString))
8094          return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.PERSON, code);
8095        if ("system".equals(codeString))
8096          return new Enumeration<ExampleScenarioActorType>(this, ExampleScenarioActorType.SYSTEM, code);
8097        throw new FHIRException("Unknown ExampleScenarioActorType code '"+codeString+"'");
8098        }
8099    public String toCode(ExampleScenarioActorType code) {
8100       if (code == ExampleScenarioActorType.NULL)
8101           return null;
8102       if (code == ExampleScenarioActorType.PERSON)
8103        return "person";
8104      if (code == ExampleScenarioActorType.SYSTEM)
8105        return "system";
8106      return "?";
8107   }
8108    public String toSystem(ExampleScenarioActorType code) {
8109      return code.getSystem();
8110      }
8111    }
8112
8113    public enum FHIRTypes {
8114        /**
8115         * Base Type: Base definition for all types defined in FHIR type system.
8116         */
8117        BASE, 
8118        /**
8119         * Element Type: Base definition for all elements in a resource.
8120         */
8121        ELEMENT, 
8122        /**
8123         * BackboneElement Type: Base definition for all elements that are defined inside a resource - but not those in a data type.
8124         */
8125        BACKBONEELEMENT, 
8126        /**
8127         * DataType Type: The base class for all re-useable types defined as part of the FHIR Specification.
8128         */
8129        DATATYPE, 
8130        /**
8131         * 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.
8132The ISO21090-codedString may be used to provide a coded representation of the contents of strings in an Address.
8133         */
8134        ADDRESS, 
8135        /**
8136         * Annotation Type: A  text note which also  contains information about who made the statement and when.
8137         */
8138        ANNOTATION, 
8139        /**
8140         * Attachment Type: For referring to data content defined in other formats.
8141         */
8142        ATTACHMENT, 
8143        /**
8144         * Availability Type: Availability data for an {item}.
8145         */
8146        AVAILABILITY, 
8147        /**
8148         * BackboneType Type: Base definition for the few data types that are allowed to carry modifier extensions.
8149         */
8150        BACKBONETYPE, 
8151        /**
8152         * Dosage Type: Indicates how the medication is/was taken or should be taken by the patient.
8153         */
8154        DOSAGE, 
8155        /**
8156         * ElementDefinition Type: Captures constraints on each element within the resource, profile, or extension.
8157         */
8158        ELEMENTDEFINITION, 
8159        /**
8160         * 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.
8161         */
8162        MARKETINGSTATUS, 
8163        /**
8164         * ProductShelfLife Type: The shelf-life and storage information for a medicinal product item or container can be described using this class.
8165         */
8166        PRODUCTSHELFLIFE, 
8167        /**
8168         * 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.
8169         */
8170        TIMING, 
8171        /**
8172         * CodeableConcept Type: A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
8173         */
8174        CODEABLECONCEPT, 
8175        /**
8176         * CodeableReference Type: A reference to a resource (by instance), or instead, a reference to a concept defined in a terminology or ontology (by class).
8177         */
8178        CODEABLEREFERENCE, 
8179        /**
8180         * Coding Type: A reference to a code defined by a terminology system.
8181         */
8182        CODING, 
8183        /**
8184         * ContactDetail Type: Specifies contact information for a person or organization.
8185         */
8186        CONTACTDETAIL, 
8187        /**
8188         * ContactPoint Type: Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
8189         */
8190        CONTACTPOINT, 
8191        /**
8192         * Contributor Type: A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.
8193         */
8194        CONTRIBUTOR, 
8195        /**
8196         * 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.
8197         */
8198        DATAREQUIREMENT, 
8199        /**
8200         * 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.
8201         */
8202        EXPRESSION, 
8203        /**
8204         * 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.
8205         */
8206        EXTENDEDCONTACTDETAIL, 
8207        /**
8208         * Extension Type: Optional Extension Element - found in all resources.
8209         */
8210        EXTENSION, 
8211        /**
8212         * HumanName Type: A name, normally of a human, that can be used for other living entities (e.g. 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.
8213         */
8214        HUMANNAME, 
8215        /**
8216         * Identifier Type: An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.
8217         */
8218        IDENTIFIER, 
8219        /**
8220         * 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.
8221         */
8222        META, 
8223        /**
8224         * MonetaryComponent Type: Availability data for an {item}.
8225         */
8226        MONETARYCOMPONENT, 
8227        /**
8228         * Money Type: An amount of economic utility in some recognized currency.
8229         */
8230        MONEY, 
8231        /**
8232         * Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.
8233         */
8234        NARRATIVE, 
8235        /**
8236         * 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.
8237         */
8238        PARAMETERDEFINITION, 
8239        /**
8240         * Period Type: A time period defined by a start and end date and optionally time.
8241         */
8242        PERIOD, 
8243        /**
8244         * PrimitiveType Type: The base type for all re-useable types defined that have a simple property.
8245         */
8246        PRIMITIVETYPE, 
8247        /**
8248         * base64Binary Type: A stream of bytes
8249         */
8250        BASE64BINARY, 
8251        /**
8252         * boolean Type: Value of "true" or "false"
8253         */
8254        BOOLEAN, 
8255        /**
8256         * 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.
8257         */
8258        DATE, 
8259        /**
8260         * 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.
8261         */
8262        DATETIME, 
8263        /**
8264         * decimal Type: A rational number with implicit precision
8265         */
8266        DECIMAL, 
8267        /**
8268         * instant Type: An instant in time - known at least to the second
8269         */
8270        INSTANT, 
8271        /**
8272         * integer Type: A whole number
8273         */
8274        INTEGER, 
8275        /**
8276         * positiveInt type: An integer with a value that is positive (e.g. >0)
8277         */
8278        POSITIVEINT, 
8279        /**
8280         * unsignedInt type: An integer with a value that is not negative (e.g. >= 0)
8281         */
8282        UNSIGNEDINT, 
8283        /**
8284         * integer64 Type: A very large whole number
8285         */
8286        INTEGER64, 
8287        /**
8288         * string Type: A sequence of Unicode characters
8289         */
8290        STRING, 
8291        /**
8292         * 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
8293         */
8294        CODE, 
8295        /**
8296         * 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.
8297         */
8298        ID, 
8299        /**
8300         * markdown type: A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine
8301         */
8302        MARKDOWN, 
8303        /**
8304         * time Type: A time during the day, with no date specified
8305         */
8306        TIME, 
8307        /**
8308         * uri Type: String of characters used to identify a name or a resource
8309         */
8310        URI, 
8311        /**
8312         * canonical type: A URI that is a reference to a canonical URL on a FHIR resource
8313         */
8314        CANONICAL, 
8315        /**
8316         * oid type: An OID represented as a URI
8317         */
8318        OID, 
8319        /**
8320         * url type: A URI that is a literal reference
8321         */
8322        URL, 
8323        /**
8324         * uuid type: A UUID, represented as a URI
8325         */
8326        UUID, 
8327        /**
8328         * 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.
8329         */
8330        QUANTITY, 
8331        /**
8332         * Age Type: A duration of time during which an organism (or a process) has existed.
8333         */
8334        AGE, 
8335        /**
8336         * 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.
8337         */
8338        COUNT, 
8339        /**
8340         * Distance Type: A length - a value with a unit that is a physical distance.
8341         */
8342        DISTANCE, 
8343        /**
8344         * Duration Type: A length of time.
8345         */
8346        DURATION, 
8347        /**
8348         * Range Type: A set of ordered Quantities defined by a low and high limit.
8349         */
8350        RANGE, 
8351        /**
8352         * Ratio Type: A relationship of two Quantity values - expressed as a numerator and a denominator.
8353         */
8354        RATIO, 
8355        /**
8356         * RatioRange Type: A range of ratios expressed as a low and high numerator and a denominator.
8357         */
8358        RATIORANGE, 
8359        /**
8360         * Reference Type: A reference from one resource to another.
8361         */
8362        REFERENCE, 
8363        /**
8364         * RelatedArtifact Type: Related artifacts such as additional documentation, justification, or bibliographic references.
8365         */
8366        RELATEDARTIFACT, 
8367        /**
8368         * 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.
8369         */
8370        SAMPLEDDATA, 
8371        /**
8372         * 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.
8373         */
8374        SIGNATURE, 
8375        /**
8376         * TriggerDefinition Type: A description of a triggering event. Triggering events can be named events, data events, or periodic, as determined by the type element.
8377         */
8378        TRIGGERDEFINITION, 
8379        /**
8380         * 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).
8381         */
8382        USAGECONTEXT, 
8383        /**
8384         * VirtualServiceDetail Type: Virtual Service Contact Details.
8385         */
8386        VIRTUALSERVICEDETAIL, 
8387        /**
8388         * xhtml Type definition
8389         */
8390        XHTML, 
8391        /**
8392         * This is the base resource type for everything.
8393         */
8394        RESOURCE, 
8395        /**
8396         * 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.
8397         */
8398        BINARY, 
8399        /**
8400         * A container for a collection of resources.
8401         */
8402        BUNDLE, 
8403        /**
8404         * A resource that includes narrative, extensions, and contained resources.
8405         */
8406        DOMAINRESOURCE, 
8407        /**
8408         * 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.
8409         */
8410        ACCOUNT, 
8411        /**
8412         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
8413         */
8414        ACTIVITYDEFINITION, 
8415        /**
8416         * 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.
8417         */
8418        ACTORDEFINITION, 
8419        /**
8420         * 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).
8421         */
8422        ADMINISTRABLEPRODUCTDEFINITION, 
8423        /**
8424         * An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research participant. 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.  Adverse events can be reported by healthcare providers, patients, caregivers or by medical products manufacturers.  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.
8425         */
8426        ADVERSEEVENT, 
8427        /**
8428         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
8429         */
8430        ALLERGYINTOLERANCE, 
8431        /**
8432         * 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).
8433         */
8434        APPOINTMENT, 
8435        /**
8436         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
8437         */
8438        APPOINTMENTRESPONSE, 
8439        /**
8440         * This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.
8441         */
8442        ARTIFACTASSESSMENT, 
8443        /**
8444         * A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.
8445         */
8446        AUDITEVENT, 
8447        /**
8448         * 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.
8449         */
8450        BASIC, 
8451        /**
8452         * A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.
8453         */
8454        BIOLOGICALLYDERIVEDPRODUCT, 
8455        /**
8456         * A record of dispensation of a biologically derived product.
8457         */
8458        BIOLOGICALLYDERIVEDPRODUCTDISPENSE, 
8459        /**
8460         * 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.
8461         */
8462        BODYSTRUCTURE, 
8463        /**
8464         * Common Interface declaration for conformance and knowledge artifact resources.
8465         */
8466        CANONICALRESOURCE, 
8467        /**
8468         * 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.
8469         */
8470        CAPABILITYSTATEMENT, 
8471        /**
8472         * 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.
8473         */
8474        CAREPLAN, 
8475        /**
8476         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.
8477         */
8478        CARETEAM, 
8479        /**
8480         * 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.
8481         */
8482        CHARGEITEM, 
8483        /**
8484         * 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.
8485         */
8486        CHARGEITEMDEFINITION, 
8487        /**
8488         * 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.
8489         */
8490        CITATION, 
8491        /**
8492         * 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.
8493         */
8494        CLAIM, 
8495        /**
8496         * This resource provides the adjudication details from the processing of a Claim resource.
8497         */
8498        CLAIMRESPONSE, 
8499        /**
8500         * 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.
8501         */
8502        CLINICALIMPRESSION, 
8503        /**
8504         * A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.
8505         */
8506        CLINICALUSEDEFINITION, 
8507        /**
8508         * 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.
8509         */
8510        CODESYSTEM, 
8511        /**
8512         * 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.
8513         */
8514        COMMUNICATION, 
8515        /**
8516         * 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.
8517         */
8518        COMMUNICATIONREQUEST, 
8519        /**
8520         * A compartment definition that defines how resources are accessed on a server.
8521         */
8522        COMPARTMENTDEFINITION, 
8523        /**
8524         * 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.).
8525         */
8526        COMPOSITION, 
8527        /**
8528         * 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.
8529         */
8530        CONCEPTMAP, 
8531        /**
8532         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
8533         */
8534        CONDITION, 
8535        /**
8536         * A definition of a condition and information relevant to managing it.
8537         */
8538        CONDITIONDEFINITION, 
8539        /**
8540         * 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.
8541         */
8542        CONSENT, 
8543        /**
8544         * Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.
8545         */
8546        CONTRACT, 
8547        /**
8548         * Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.
8549         */
8550        COVERAGE, 
8551        /**
8552         * 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.
8553         */
8554        COVERAGEELIGIBILITYREQUEST, 
8555        /**
8556         * This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.
8557         */
8558        COVERAGEELIGIBILITYRESPONSE, 
8559        /**
8560         * 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, gaps in care, etc.
8561         */
8562        DETECTEDISSUE, 
8563        /**
8564         * 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.
8565         */
8566        DEVICE, 
8567        /**
8568         * A record of association of a device.
8569         */
8570        DEVICEASSOCIATION, 
8571        /**
8572         * This is a specialized resource that defines the characteristics and capabilities of a device.
8573         */
8574        DEVICEDEFINITION, 
8575        /**
8576         * 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.
8577         */
8578        DEVICEDISPENSE, 
8579        /**
8580         * Describes a measurement, calculation or setting capability of a device.  The DeviceMetric resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable. 
8581         */
8582        DEVICEMETRIC, 
8583        /**
8584         * 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.
8585         */
8586        DEVICEREQUEST, 
8587        /**
8588         * 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.
8589         */
8590        DEVICEUSAGE, 
8591        /**
8592         * 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.
8593         */
8594        DIAGNOSTICREPORT, 
8595        /**
8596         * 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.
8597         */
8598        DOCUMENTREFERENCE, 
8599        /**
8600         * 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).
8601         */
8602        ENCOUNTER, 
8603        /**
8604         * A record of significant events/milestones key data throughout the history of an Encounter
8605         */
8606        ENCOUNTERHISTORY, 
8607        /**
8608         * 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.
8609         */
8610        ENDPOINT, 
8611        /**
8612         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
8613         */
8614        ENROLLMENTREQUEST, 
8615        /**
8616         * This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.
8617         */
8618        ENROLLMENTRESPONSE, 
8619        /**
8620         * 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.
8621         */
8622        EPISODEOFCARE, 
8623        /**
8624         * The EventDefinition resource provides a reusable description of when a particular event can occur.
8625         */
8626        EVENTDEFINITION, 
8627        /**
8628         * 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.
8629         */
8630        EVIDENCE, 
8631        /**
8632         * 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.
8633         */
8634        EVIDENCEREPORT, 
8635        /**
8636         * The EvidenceVariable resource describes an element that knowledge (Evidence) is about.
8637         */
8638        EVIDENCEVARIABLE, 
8639        /**
8640         * A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
8641         */
8642        EXAMPLESCENARIO, 
8643        /**
8644         * 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.
8645         */
8646        EXPLANATIONOFBENEFIT, 
8647        /**
8648         * Significant health conditions for a person related to the patient relevant in the context of care for the patient.
8649         */
8650        FAMILYMEMBERHISTORY, 
8651        /**
8652         * Prospective warnings of potential issues when providing care to the patient.
8653         */
8654        FLAG, 
8655        /**
8656         * 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.
8657         */
8658        FORMULARYITEM, 
8659        /**
8660         * A set of analyses performed to analyze and generate genomic data.
8661         */
8662        GENOMICSTUDY, 
8663        /**
8664         * 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.
8665         */
8666        GOAL, 
8667        /**
8668         * 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.
8669         */
8670        GRAPHDEFINITION, 
8671        /**
8672         * 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.
8673         */
8674        GROUP, 
8675        /**
8676         * 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.
8677         */
8678        GUIDANCERESPONSE, 
8679        /**
8680         * 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.
8681         */
8682        HEALTHCARESERVICE, 
8683        /**
8684         * 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.
8685         */
8686        IMAGINGSELECTION, 
8687        /**
8688         * 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.
8689         */
8690        IMAGINGSTUDY, 
8691        /**
8692         * 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.
8693         */
8694        IMMUNIZATION, 
8695        /**
8696         * Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those  recommendations.
8697         */
8698        IMMUNIZATIONEVALUATION, 
8699        /**
8700         * A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.
8701         */
8702        IMMUNIZATIONRECOMMENDATION, 
8703        /**
8704         * 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.
8705         */
8706        IMPLEMENTATIONGUIDE, 
8707        /**
8708         * An ingredient of a manufactured item or pharmaceutical product.
8709         */
8710        INGREDIENT, 
8711        /**
8712         * Details of a Health Insurance product/plan provided by an organization.
8713         */
8714        INSURANCEPLAN, 
8715        /**
8716         * functional description of an inventory item used in inventory and supply-related workflows.
8717         */
8718        INVENTORYITEM, 
8719        /**
8720         * A report of inventory or stock items.
8721         */
8722        INVENTORYREPORT, 
8723        /**
8724         * Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.
8725         */
8726        INVOICE, 
8727        /**
8728         * 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.
8729         */
8730        LIBRARY, 
8731        /**
8732         * Identifies two or more records (resource instances) that refer to the same real-world "occurrence".
8733         */
8734        LINKAGE, 
8735        /**
8736         * A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.
8737         */
8738        LIST, 
8739        /**
8740         * Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.
8741         */
8742        LOCATION, 
8743        /**
8744         * The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.
8745         */
8746        MANUFACTUREDITEMDEFINITION, 
8747        /**
8748         * The Measure resource provides the definition of a quality measure.
8749         */
8750        MEASURE, 
8751        /**
8752         * The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.
8753         */
8754        MEASUREREPORT, 
8755        /**
8756         * 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.
8757         */
8758        MEDICATION, 
8759        /**
8760         * 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. This event can also be used to record waste using a status of not-done and the appropriate statusReason.
8761         */
8762        MEDICATIONADMINISTRATION, 
8763        /**
8764         * 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.
8765         */
8766        MEDICATIONDISPENSE, 
8767        /**
8768         * Information about a medication that is used to support knowledge.
8769         */
8770        MEDICATIONKNOWLEDGE, 
8771        /**
8772         * 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.
8773         */
8774        MEDICATIONREQUEST, 
8775        /**
8776         * A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. 
8777
8778The primary difference between a medicationstatement 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 medicationstatement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the Medication Statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.
8779         */
8780        MEDICATIONSTATEMENT, 
8781        /**
8782         * 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.).
8783         */
8784        MEDICINALPRODUCTDEFINITION, 
8785        /**
8786         * 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.
8787         */
8788        MESSAGEDEFINITION, 
8789        /**
8790         * 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.
8791         */
8792        MESSAGEHEADER, 
8793        /**
8794         * Common Interface declaration for conformance and knowledge artifact resources.
8795         */
8796        METADATARESOURCE, 
8797        /**
8798         * Representation of a molecular sequence.
8799         */
8800        MOLECULARSEQUENCE, 
8801        /**
8802         * 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.
8803         */
8804        NAMINGSYSTEM, 
8805        /**
8806         * 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.
8807         */
8808        NUTRITIONINTAKE, 
8809        /**
8810         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
8811         */
8812        NUTRITIONORDER, 
8813        /**
8814         * A food or supplement that is consumed by patients.
8815         */
8816        NUTRITIONPRODUCT, 
8817        /**
8818         * Measurements and simple assertions made about a patient, device or other subject.
8819         */
8820        OBSERVATION, 
8821        /**
8822         * Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
8823         */
8824        OBSERVATIONDEFINITION, 
8825        /**
8826         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
8827         */
8828        OPERATIONDEFINITION, 
8829        /**
8830         * A collection of error, warning, or information messages that result from a system action.
8831         */
8832        OPERATIONOUTCOME, 
8833        /**
8834         * 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.
8835         */
8836        ORGANIZATION, 
8837        /**
8838         * Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.
8839         */
8840        ORGANIZATIONAFFILIATION, 
8841        /**
8842         * A medically related item or items, in a container or package.
8843         */
8844        PACKAGEDPRODUCTDEFINITION, 
8845        /**
8846         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
8847         */
8848        PATIENT, 
8849        /**
8850         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
8851         */
8852        PAYMENTNOTICE, 
8853        /**
8854         * This resource provides the details including amount of a payment and allocates the payment items being paid.
8855         */
8856        PAYMENTRECONCILIATION, 
8857        /**
8858         * Permission resource holds access rules for a given data and context.
8859         */
8860        PERMISSION, 
8861        /**
8862         * Demographics and administrative information about a person independent of a specific health-related context.
8863         */
8864        PERSON, 
8865        /**
8866         * 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.
8867         */
8868        PLANDEFINITION, 
8869        /**
8870         * A person who is directly or indirectly involved in the provisioning of healthcare or related services.
8871         */
8872        PRACTITIONER, 
8873        /**
8874         * A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.
8875         */
8876        PRACTITIONERROLE, 
8877        /**
8878         * 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.
8879         */
8880        PROCEDURE, 
8881        /**
8882         * 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.
8883         */
8884        PROVENANCE, 
8885        /**
8886         * 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.
8887         */
8888        QUESTIONNAIRE, 
8889        /**
8890         * 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.
8891         */
8892        QUESTIONNAIRERESPONSE, 
8893        /**
8894         * 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.
8895         */
8896        REGULATEDAUTHORIZATION, 
8897        /**
8898         * 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.
8899         */
8900        RELATEDPERSON, 
8901        /**
8902         * 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".
8903         */
8904        REQUESTORCHESTRATION, 
8905        /**
8906         * 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.
8907         */
8908        REQUIREMENTS, 
8909        /**
8910         * 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.
8911         */
8912        RESEARCHSTUDY, 
8913        /**
8914         * A ResearchSubject is a participant or object which is the recipient of investigative activities in a research study.
8915         */
8916        RESEARCHSUBJECT, 
8917        /**
8918         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
8919         */
8920        RISKASSESSMENT, 
8921        /**
8922         * A container for slots of time that may be available for booking appointments.
8923         */
8924        SCHEDULE, 
8925        /**
8926         * A search parameter that defines a named search item that can be used to search/filter on a resource.
8927         */
8928        SEARCHPARAMETER, 
8929        /**
8930         * A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.
8931         */
8932        SERVICEREQUEST, 
8933        /**
8934         * A slot of time on a schedule that may be available for booking appointments.
8935         */
8936        SLOT, 
8937        /**
8938         * A sample to be used for analysis.
8939         */
8940        SPECIMEN, 
8941        /**
8942         * A kind of specimen with associated set of requirements.
8943         */
8944        SPECIMENDEFINITION, 
8945        /**
8946         * 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.
8947         */
8948        STRUCTUREDEFINITION, 
8949        /**
8950         * A Map of relationships between 2 structures that can be used to transform data.
8951         */
8952        STRUCTUREMAP, 
8953        /**
8954         * The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.
8955         */
8956        SUBSCRIPTION, 
8957        /**
8958         * The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.
8959         */
8960        SUBSCRIPTIONSTATUS, 
8961        /**
8962         * Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.
8963         */
8964        SUBSCRIPTIONTOPIC, 
8965        /**
8966         * A homogeneous material with a definite composition.
8967         */
8968        SUBSTANCE, 
8969        /**
8970         * The detailed description of a substance, typically at a level beyond what is used for prescribing.
8971         */
8972        SUBSTANCEDEFINITION, 
8973        /**
8974         * 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.
8975         */
8976        SUBSTANCENUCLEICACID, 
8977        /**
8978         * Properties of a substance specific to it being a polymer.
8979         */
8980        SUBSTANCEPOLYMER, 
8981        /**
8982         * 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.
8983         */
8984        SUBSTANCEPROTEIN, 
8985        /**
8986         * Todo.
8987         */
8988        SUBSTANCEREFERENCEINFORMATION, 
8989        /**
8990         * 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.
8991         */
8992        SUBSTANCESOURCEMATERIAL, 
8993        /**
8994         * Record of delivery of what is supplied.
8995         */
8996        SUPPLYDELIVERY, 
8997        /**
8998         * 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.
8999         */
9000        SUPPLYREQUEST, 
9001        /**
9002         * A task to be performed.
9003         */
9004        TASK, 
9005        /**
9006         * 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.
9007         */
9008        TERMINOLOGYCAPABILITIES, 
9009        /**
9010         * A plan for executing testing on an artifact or specifications
9011         */
9012        TESTPLAN, 
9013        /**
9014         * A summary of information based on the results of executing a TestScript.
9015         */
9016        TESTREPORT, 
9017        /**
9018         * A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
9019         */
9020        TESTSCRIPT, 
9021        /**
9022         * Record of transport.
9023         */
9024        TRANSPORT, 
9025        /**
9026         * 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).
9027         */
9028        VALUESET, 
9029        /**
9030         * Describes validation requirements, source(s), status and dates for one or more elements.
9031         */
9032        VERIFICATIONRESULT, 
9033        /**
9034         * An authorization for the provision of glasses and/or contact lenses to a patient.
9035         */
9036        VISIONPRESCRIPTION, 
9037        /**
9038         * 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.
9039         */
9040        PARAMETERS, 
9041        /**
9042         * added to help the parsers
9043         */
9044        NULL;
9045        public static FHIRTypes fromCode(String codeString) throws FHIRException {
9046            if (codeString == null || "".equals(codeString))
9047                return null;
9048        if ("Base".equals(codeString))
9049          return BASE;
9050        if ("Element".equals(codeString))
9051          return ELEMENT;
9052        if ("BackboneElement".equals(codeString))
9053          return BACKBONEELEMENT;
9054        if ("DataType".equals(codeString))
9055          return DATATYPE;
9056        if ("Address".equals(codeString))
9057          return ADDRESS;
9058        if ("Annotation".equals(codeString))
9059          return ANNOTATION;
9060        if ("Attachment".equals(codeString))
9061          return ATTACHMENT;
9062        if ("Availability".equals(codeString))
9063          return AVAILABILITY;
9064        if ("BackboneType".equals(codeString))
9065          return BACKBONETYPE;
9066        if ("Dosage".equals(codeString))
9067          return DOSAGE;
9068        if ("ElementDefinition".equals(codeString))
9069          return ELEMENTDEFINITION;
9070        if ("MarketingStatus".equals(codeString))
9071          return MARKETINGSTATUS;
9072        if ("ProductShelfLife".equals(codeString))
9073          return PRODUCTSHELFLIFE;
9074        if ("Timing".equals(codeString))
9075          return TIMING;
9076        if ("CodeableConcept".equals(codeString))
9077          return CODEABLECONCEPT;
9078        if ("CodeableReference".equals(codeString))
9079          return CODEABLEREFERENCE;
9080        if ("Coding".equals(codeString))
9081          return CODING;
9082        if ("ContactDetail".equals(codeString))
9083          return CONTACTDETAIL;
9084        if ("ContactPoint".equals(codeString))
9085          return CONTACTPOINT;
9086        if ("Contributor".equals(codeString))
9087          return CONTRIBUTOR;
9088        if ("DataRequirement".equals(codeString))
9089          return DATAREQUIREMENT;
9090        if ("Expression".equals(codeString))
9091          return EXPRESSION;
9092        if ("ExtendedContactDetail".equals(codeString))
9093          return EXTENDEDCONTACTDETAIL;
9094        if ("Extension".equals(codeString))
9095          return EXTENSION;
9096        if ("HumanName".equals(codeString))
9097          return HUMANNAME;
9098        if ("Identifier".equals(codeString))
9099          return IDENTIFIER;
9100        if ("Meta".equals(codeString))
9101          return META;
9102        if ("MonetaryComponent".equals(codeString))
9103          return MONETARYCOMPONENT;
9104        if ("Money".equals(codeString))
9105          return MONEY;
9106        if ("Narrative".equals(codeString))
9107          return NARRATIVE;
9108        if ("ParameterDefinition".equals(codeString))
9109          return PARAMETERDEFINITION;
9110        if ("Period".equals(codeString))
9111          return PERIOD;
9112        if ("PrimitiveType".equals(codeString))
9113          return PRIMITIVETYPE;
9114        if ("base64Binary".equals(codeString))
9115          return BASE64BINARY;
9116        if ("boolean".equals(codeString))
9117          return BOOLEAN;
9118        if ("date".equals(codeString))
9119          return DATE;
9120        if ("dateTime".equals(codeString))
9121          return DATETIME;
9122        if ("decimal".equals(codeString))
9123          return DECIMAL;
9124        if ("instant".equals(codeString))
9125          return INSTANT;
9126        if ("integer".equals(codeString))
9127          return INTEGER;
9128        if ("positiveInt".equals(codeString))
9129          return POSITIVEINT;
9130        if ("unsignedInt".equals(codeString))
9131          return UNSIGNEDINT;
9132        if ("integer64".equals(codeString))
9133          return INTEGER64;
9134        if ("string".equals(codeString))
9135          return STRING;
9136        if ("code".equals(codeString))
9137          return CODE;
9138        if ("id".equals(codeString))
9139          return ID;
9140        if ("markdown".equals(codeString))
9141          return MARKDOWN;
9142        if ("time".equals(codeString))
9143          return TIME;
9144        if ("uri".equals(codeString))
9145          return URI;
9146        if ("canonical".equals(codeString))
9147          return CANONICAL;
9148        if ("oid".equals(codeString))
9149          return OID;
9150        if ("url".equals(codeString))
9151          return URL;
9152        if ("uuid".equals(codeString))
9153          return UUID;
9154        if ("Quantity".equals(codeString))
9155          return QUANTITY;
9156        if ("Age".equals(codeString))
9157          return AGE;
9158        if ("Count".equals(codeString))
9159          return COUNT;
9160        if ("Distance".equals(codeString))
9161          return DISTANCE;
9162        if ("Duration".equals(codeString))
9163          return DURATION;
9164        if ("Range".equals(codeString))
9165          return RANGE;
9166        if ("Ratio".equals(codeString))
9167          return RATIO;
9168        if ("RatioRange".equals(codeString))
9169          return RATIORANGE;
9170        if ("Reference".equals(codeString))
9171          return REFERENCE;
9172        if ("RelatedArtifact".equals(codeString))
9173          return RELATEDARTIFACT;
9174        if ("SampledData".equals(codeString))
9175          return SAMPLEDDATA;
9176        if ("Signature".equals(codeString))
9177          return SIGNATURE;
9178        if ("TriggerDefinition".equals(codeString))
9179          return TRIGGERDEFINITION;
9180        if ("UsageContext".equals(codeString))
9181          return USAGECONTEXT;
9182        if ("VirtualServiceDetail".equals(codeString))
9183          return VIRTUALSERVICEDETAIL;
9184        if ("xhtml".equals(codeString))
9185          return XHTML;
9186        if ("Resource".equals(codeString) || "Any".equals(codeString))
9187          return RESOURCE;
9188        if ("Binary".equals(codeString))
9189          return BINARY;
9190        if ("Bundle".equals(codeString))
9191          return BUNDLE;
9192        if ("DomainResource".equals(codeString))
9193          return DOMAINRESOURCE;
9194        if ("Account".equals(codeString))
9195          return ACCOUNT;
9196        if ("ActivityDefinition".equals(codeString))
9197          return ACTIVITYDEFINITION;
9198        if ("ActorDefinition".equals(codeString))
9199          return ACTORDEFINITION;
9200        if ("AdministrableProductDefinition".equals(codeString))
9201          return ADMINISTRABLEPRODUCTDEFINITION;
9202        if ("AdverseEvent".equals(codeString))
9203          return ADVERSEEVENT;
9204        if ("AllergyIntolerance".equals(codeString))
9205          return ALLERGYINTOLERANCE;
9206        if ("Appointment".equals(codeString))
9207          return APPOINTMENT;
9208        if ("AppointmentResponse".equals(codeString))
9209          return APPOINTMENTRESPONSE;
9210        if ("ArtifactAssessment".equals(codeString))
9211          return ARTIFACTASSESSMENT;
9212        if ("AuditEvent".equals(codeString))
9213          return AUDITEVENT;
9214        if ("Basic".equals(codeString))
9215          return BASIC;
9216        if ("BiologicallyDerivedProduct".equals(codeString))
9217          return BIOLOGICALLYDERIVEDPRODUCT;
9218        if ("BiologicallyDerivedProductDispense".equals(codeString))
9219          return BIOLOGICALLYDERIVEDPRODUCTDISPENSE;
9220        if ("BodyStructure".equals(codeString))
9221          return BODYSTRUCTURE;
9222        if ("CanonicalResource".equals(codeString))
9223          return CANONICALRESOURCE;
9224        if ("CapabilityStatement".equals(codeString))
9225          return CAPABILITYSTATEMENT;
9226        if ("CarePlan".equals(codeString))
9227          return CAREPLAN;
9228        if ("CareTeam".equals(codeString))
9229          return CARETEAM;
9230        if ("ChargeItem".equals(codeString))
9231          return CHARGEITEM;
9232        if ("ChargeItemDefinition".equals(codeString))
9233          return CHARGEITEMDEFINITION;
9234        if ("Citation".equals(codeString))
9235          return CITATION;
9236        if ("Claim".equals(codeString))
9237          return CLAIM;
9238        if ("ClaimResponse".equals(codeString))
9239          return CLAIMRESPONSE;
9240        if ("ClinicalImpression".equals(codeString))
9241          return CLINICALIMPRESSION;
9242        if ("ClinicalUseDefinition".equals(codeString))
9243          return CLINICALUSEDEFINITION;
9244        if ("CodeSystem".equals(codeString))
9245          return CODESYSTEM;
9246        if ("Communication".equals(codeString))
9247          return COMMUNICATION;
9248        if ("CommunicationRequest".equals(codeString))
9249          return COMMUNICATIONREQUEST;
9250        if ("CompartmentDefinition".equals(codeString))
9251          return COMPARTMENTDEFINITION;
9252        if ("Composition".equals(codeString))
9253          return COMPOSITION;
9254        if ("ConceptMap".equals(codeString))
9255          return CONCEPTMAP;
9256        if ("Condition".equals(codeString))
9257          return CONDITION;
9258        if ("ConditionDefinition".equals(codeString))
9259          return CONDITIONDEFINITION;
9260        if ("Consent".equals(codeString))
9261          return CONSENT;
9262        if ("Contract".equals(codeString))
9263          return CONTRACT;
9264        if ("Coverage".equals(codeString))
9265          return COVERAGE;
9266        if ("CoverageEligibilityRequest".equals(codeString))
9267          return COVERAGEELIGIBILITYREQUEST;
9268        if ("CoverageEligibilityResponse".equals(codeString))
9269          return COVERAGEELIGIBILITYRESPONSE;
9270        if ("DetectedIssue".equals(codeString))
9271          return DETECTEDISSUE;
9272        if ("Device".equals(codeString))
9273          return DEVICE;
9274        if ("DeviceAssociation".equals(codeString))
9275          return DEVICEASSOCIATION;
9276        if ("DeviceDefinition".equals(codeString))
9277          return DEVICEDEFINITION;
9278        if ("DeviceDispense".equals(codeString))
9279          return DEVICEDISPENSE;
9280        if ("DeviceMetric".equals(codeString))
9281          return DEVICEMETRIC;
9282        if ("DeviceRequest".equals(codeString))
9283          return DEVICEREQUEST;
9284        if ("DeviceUsage".equals(codeString))
9285          return DEVICEUSAGE;
9286        if ("DiagnosticReport".equals(codeString))
9287          return DIAGNOSTICREPORT;
9288        if ("DocumentReference".equals(codeString))
9289          return DOCUMENTREFERENCE;
9290        if ("Encounter".equals(codeString))
9291          return ENCOUNTER;
9292        if ("EncounterHistory".equals(codeString))
9293          return ENCOUNTERHISTORY;
9294        if ("Endpoint".equals(codeString))
9295          return ENDPOINT;
9296        if ("EnrollmentRequest".equals(codeString))
9297          return ENROLLMENTREQUEST;
9298        if ("EnrollmentResponse".equals(codeString))
9299          return ENROLLMENTRESPONSE;
9300        if ("EpisodeOfCare".equals(codeString))
9301          return EPISODEOFCARE;
9302        if ("EventDefinition".equals(codeString))
9303          return EVENTDEFINITION;
9304        if ("Evidence".equals(codeString))
9305          return EVIDENCE;
9306        if ("EvidenceReport".equals(codeString))
9307          return EVIDENCEREPORT;
9308        if ("EvidenceVariable".equals(codeString))
9309          return EVIDENCEVARIABLE;
9310        if ("ExampleScenario".equals(codeString))
9311          return EXAMPLESCENARIO;
9312        if ("ExplanationOfBenefit".equals(codeString))
9313          return EXPLANATIONOFBENEFIT;
9314        if ("FamilyMemberHistory".equals(codeString))
9315          return FAMILYMEMBERHISTORY;
9316        if ("Flag".equals(codeString))
9317          return FLAG;
9318        if ("FormularyItem".equals(codeString))
9319          return FORMULARYITEM;
9320        if ("GenomicStudy".equals(codeString))
9321          return GENOMICSTUDY;
9322        if ("Goal".equals(codeString))
9323          return GOAL;
9324        if ("GraphDefinition".equals(codeString))
9325          return GRAPHDEFINITION;
9326        if ("Group".equals(codeString))
9327          return GROUP;
9328        if ("GuidanceResponse".equals(codeString))
9329          return GUIDANCERESPONSE;
9330        if ("HealthcareService".equals(codeString))
9331          return HEALTHCARESERVICE;
9332        if ("ImagingSelection".equals(codeString))
9333          return IMAGINGSELECTION;
9334        if ("ImagingStudy".equals(codeString))
9335          return IMAGINGSTUDY;
9336        if ("Immunization".equals(codeString))
9337          return IMMUNIZATION;
9338        if ("ImmunizationEvaluation".equals(codeString))
9339          return IMMUNIZATIONEVALUATION;
9340        if ("ImmunizationRecommendation".equals(codeString))
9341          return IMMUNIZATIONRECOMMENDATION;
9342        if ("ImplementationGuide".equals(codeString))
9343          return IMPLEMENTATIONGUIDE;
9344        if ("Ingredient".equals(codeString))
9345          return INGREDIENT;
9346        if ("InsurancePlan".equals(codeString))
9347          return INSURANCEPLAN;
9348        if ("InventoryItem".equals(codeString))
9349          return INVENTORYITEM;
9350        if ("InventoryReport".equals(codeString))
9351          return INVENTORYREPORT;
9352        if ("Invoice".equals(codeString))
9353          return INVOICE;
9354        if ("Library".equals(codeString))
9355          return LIBRARY;
9356        if ("Linkage".equals(codeString))
9357          return LINKAGE;
9358        if ("List".equals(codeString))
9359          return LIST;
9360        if ("Location".equals(codeString))
9361          return LOCATION;
9362        if ("ManufacturedItemDefinition".equals(codeString))
9363          return MANUFACTUREDITEMDEFINITION;
9364        if ("Measure".equals(codeString))
9365          return MEASURE;
9366        if ("MeasureReport".equals(codeString))
9367          return MEASUREREPORT;
9368        if ("Medication".equals(codeString))
9369          return MEDICATION;
9370        if ("MedicationAdministration".equals(codeString))
9371          return MEDICATIONADMINISTRATION;
9372        if ("MedicationDispense".equals(codeString))
9373          return MEDICATIONDISPENSE;
9374        if ("MedicationKnowledge".equals(codeString))
9375          return MEDICATIONKNOWLEDGE;
9376        if ("MedicationRequest".equals(codeString))
9377          return MEDICATIONREQUEST;
9378        if ("MedicationStatement".equals(codeString))
9379          return MEDICATIONSTATEMENT;
9380        if ("MedicinalProductDefinition".equals(codeString))
9381          return MEDICINALPRODUCTDEFINITION;
9382        if ("MessageDefinition".equals(codeString))
9383          return MESSAGEDEFINITION;
9384        if ("MessageHeader".equals(codeString))
9385          return MESSAGEHEADER;
9386        if ("MetadataResource".equals(codeString))
9387          return METADATARESOURCE;
9388        if ("MolecularSequence".equals(codeString))
9389          return MOLECULARSEQUENCE;
9390        if ("NamingSystem".equals(codeString))
9391          return NAMINGSYSTEM;
9392        if ("NutritionIntake".equals(codeString))
9393          return NUTRITIONINTAKE;
9394        if ("NutritionOrder".equals(codeString))
9395          return NUTRITIONORDER;
9396        if ("NutritionProduct".equals(codeString))
9397          return NUTRITIONPRODUCT;
9398        if ("Observation".equals(codeString))
9399          return OBSERVATION;
9400        if ("ObservationDefinition".equals(codeString))
9401          return OBSERVATIONDEFINITION;
9402        if ("OperationDefinition".equals(codeString))
9403          return OPERATIONDEFINITION;
9404        if ("OperationOutcome".equals(codeString))
9405          return OPERATIONOUTCOME;
9406        if ("Organization".equals(codeString))
9407          return ORGANIZATION;
9408        if ("OrganizationAffiliation".equals(codeString))
9409          return ORGANIZATIONAFFILIATION;
9410        if ("PackagedProductDefinition".equals(codeString))
9411          return PACKAGEDPRODUCTDEFINITION;
9412        if ("Patient".equals(codeString))
9413          return PATIENT;
9414        if ("PaymentNotice".equals(codeString))
9415          return PAYMENTNOTICE;
9416        if ("PaymentReconciliation".equals(codeString))
9417          return PAYMENTRECONCILIATION;
9418        if ("Permission".equals(codeString))
9419          return PERMISSION;
9420        if ("Person".equals(codeString))
9421          return PERSON;
9422        if ("PlanDefinition".equals(codeString))
9423          return PLANDEFINITION;
9424        if ("Practitioner".equals(codeString))
9425          return PRACTITIONER;
9426        if ("PractitionerRole".equals(codeString))
9427          return PRACTITIONERROLE;
9428        if ("Procedure".equals(codeString))
9429          return PROCEDURE;
9430        if ("Provenance".equals(codeString))
9431          return PROVENANCE;
9432        if ("Questionnaire".equals(codeString))
9433          return QUESTIONNAIRE;
9434        if ("QuestionnaireResponse".equals(codeString))
9435          return QUESTIONNAIRERESPONSE;
9436        if ("RegulatedAuthorization".equals(codeString))
9437          return REGULATEDAUTHORIZATION;
9438        if ("RelatedPerson".equals(codeString))
9439          return RELATEDPERSON;
9440        if ("RequestOrchestration".equals(codeString))
9441          return REQUESTORCHESTRATION;
9442        if ("Requirements".equals(codeString))
9443          return REQUIREMENTS;
9444        if ("ResearchStudy".equals(codeString))
9445          return RESEARCHSTUDY;
9446        if ("ResearchSubject".equals(codeString))
9447          return RESEARCHSUBJECT;
9448        if ("RiskAssessment".equals(codeString))
9449          return RISKASSESSMENT;
9450        if ("Schedule".equals(codeString))
9451          return SCHEDULE;
9452        if ("SearchParameter".equals(codeString))
9453          return SEARCHPARAMETER;
9454        if ("ServiceRequest".equals(codeString))
9455          return SERVICEREQUEST;
9456        if ("Slot".equals(codeString))
9457          return SLOT;
9458        if ("Specimen".equals(codeString))
9459          return SPECIMEN;
9460        if ("SpecimenDefinition".equals(codeString))
9461          return SPECIMENDEFINITION;
9462        if ("StructureDefinition".equals(codeString))
9463          return STRUCTUREDEFINITION;
9464        if ("StructureMap".equals(codeString))
9465          return STRUCTUREMAP;
9466        if ("Subscription".equals(codeString))
9467          return SUBSCRIPTION;
9468        if ("SubscriptionStatus".equals(codeString))
9469          return SUBSCRIPTIONSTATUS;
9470        if ("SubscriptionTopic".equals(codeString))
9471          return SUBSCRIPTIONTOPIC;
9472        if ("Substance".equals(codeString))
9473          return SUBSTANCE;
9474        if ("SubstanceDefinition".equals(codeString))
9475          return SUBSTANCEDEFINITION;
9476        if ("SubstanceNucleicAcid".equals(codeString))
9477          return SUBSTANCENUCLEICACID;
9478        if ("SubstancePolymer".equals(codeString))
9479          return SUBSTANCEPOLYMER;
9480        if ("SubstanceProtein".equals(codeString))
9481          return SUBSTANCEPROTEIN;
9482        if ("SubstanceReferenceInformation".equals(codeString))
9483          return SUBSTANCEREFERENCEINFORMATION;
9484        if ("SubstanceSourceMaterial".equals(codeString))
9485          return SUBSTANCESOURCEMATERIAL;
9486        if ("SupplyDelivery".equals(codeString))
9487          return SUPPLYDELIVERY;
9488        if ("SupplyRequest".equals(codeString))
9489          return SUPPLYREQUEST;
9490        if ("Task".equals(codeString))
9491          return TASK;
9492        if ("TerminologyCapabilities".equals(codeString))
9493          return TERMINOLOGYCAPABILITIES;
9494        if ("TestPlan".equals(codeString))
9495          return TESTPLAN;
9496        if ("TestReport".equals(codeString))
9497          return TESTREPORT;
9498        if ("TestScript".equals(codeString))
9499          return TESTSCRIPT;
9500        if ("Transport".equals(codeString))
9501          return TRANSPORT;
9502        if ("ValueSet".equals(codeString))
9503          return VALUESET;
9504        if ("VerificationResult".equals(codeString))
9505          return VERIFICATIONRESULT;
9506        if ("VisionPrescription".equals(codeString))
9507          return VISIONPRESCRIPTION;
9508        if ("Parameters".equals(codeString))
9509          return PARAMETERS;
9510        throw new FHIRException("Unknown FHIRTypes code '"+codeString+"'");
9511        }
9512        public static boolean isValidCode(String codeString) {
9513            if (codeString == null || "".equals(codeString))
9514                return false;
9515          return Utilities.existsInList(codeString, "Base", "Element", "BackboneElement", "DataType", "Address", "Annotation", "Attachment", "Availability", "BackboneType", "Dosage", "ElementDefinition", "MarketingStatus", "ProductShelfLife", "Timing", "CodeableConcept", "CodeableReference", "Coding", "ContactDetail", "ContactPoint", "Contributor", "DataRequirement", "Expression", "ExtendedContactDetail", "Extension", "HumanName", "Identifier", "Meta", "MonetaryComponent", "Money", "Narrative", "ParameterDefinition", "Period", "PrimitiveType", "base64Binary", "boolean", "date", "dateTime", "decimal", "instant", "integer", "positiveInt", "unsignedInt", "integer64", "string", "code", "id", "markdown", "time", "uri", "canonical", "oid", "url", "uuid", "Quantity", "Age", "Count", "Distance", "Duration", "Range", "Ratio", "RatioRange", "Reference", "RelatedArtifact", "SampledData", "Signature", "TriggerDefinition", "UsageContext", "VirtualServiceDetail", "xhtml", "Resource", "Binary", "Bundle", "DomainResource", "Account", "ActivityDefinition", "ActorDefinition", "AdministrableProductDefinition", "AdverseEvent", "AllergyIntolerance", "Appointment", "AppointmentResponse", "ArtifactAssessment", "AuditEvent", "Basic", "BiologicallyDerivedProduct", "BiologicallyDerivedProductDispense", "BodyStructure", "CanonicalResource", "CapabilityStatement", "CarePlan", "CareTeam", "ChargeItem", "ChargeItemDefinition", "Citation", "Claim", "ClaimResponse", "ClinicalImpression", "ClinicalUseDefinition", "CodeSystem", "Communication", "CommunicationRequest", "CompartmentDefinition", "Composition", "ConceptMap", "Condition", "ConditionDefinition", "Consent", "Contract", "Coverage", "CoverageEligibilityRequest", "CoverageEligibilityResponse", "DetectedIssue", "Device", "DeviceAssociation", "DeviceDefinition", "DeviceDispense", "DeviceMetric", "DeviceRequest", "DeviceUsage", "DiagnosticReport", "DocumentReference", "Encounter", "EncounterHistory", "Endpoint", "EnrollmentRequest", "EnrollmentResponse", "EpisodeOfCare", "EventDefinition", "Evidence", "EvidenceReport", "EvidenceVariable", "ExampleScenario", "ExplanationOfBenefit", "FamilyMemberHistory", "Flag", "FormularyItem", "GenomicStudy", "Goal", "GraphDefinition", "Group", "GuidanceResponse", "HealthcareService", "ImagingSelection", "ImagingStudy", "Immunization", "ImmunizationEvaluation", "ImmunizationRecommendation", "ImplementationGuide", "Ingredient", "InsurancePlan", "InventoryItem", "InventoryReport", "Invoice", "Library", "Linkage", "List", "Location", "ManufacturedItemDefinition", "Measure", "MeasureReport", "Medication", "MedicationAdministration", "MedicationDispense", "MedicationKnowledge", "MedicationRequest", "MedicationStatement", "MedicinalProductDefinition", "MessageDefinition", "MessageHeader", "MetadataResource", "MolecularSequence", "NamingSystem", "NutritionIntake", "NutritionOrder", "NutritionProduct", "Observation", "ObservationDefinition", "OperationDefinition", "OperationOutcome", "Organization", "OrganizationAffiliation", "PackagedProductDefinition", "Patient", "PaymentNotice", "PaymentReconciliation", "Permission", "Person", "PlanDefinition", "Practitioner", "PractitionerRole", "Procedure", "Provenance", "Questionnaire", "QuestionnaireResponse", "RegulatedAuthorization", "RelatedPerson", "RequestOrchestration", "Requirements", "ResearchStudy", "ResearchSubject", "RiskAssessment", "Schedule", "SearchParameter", "ServiceRequest", "Slot", "Specimen", "SpecimenDefinition", "StructureDefinition", "StructureMap", "Subscription", "SubscriptionStatus", "SubscriptionTopic", "Substance", "SubstanceDefinition", "SubstanceNucleicAcid", "SubstancePolymer", "SubstanceProtein", "SubstanceReferenceInformation", "SubstanceSourceMaterial", "SupplyDelivery", "SupplyRequest", "Task", "TerminologyCapabilities", "TestPlan", "TestReport", "TestScript", "Transport", "ValueSet", "VerificationResult", "VisionPrescription", "Parameters");
9516        }
9517        public String toCode() {
9518          switch (this) {
9519            case BASE: return "Base";
9520            case ELEMENT: return "Element";
9521            case BACKBONEELEMENT: return "BackboneElement";
9522            case DATATYPE: return "DataType";
9523            case ADDRESS: return "Address";
9524            case ANNOTATION: return "Annotation";
9525            case ATTACHMENT: return "Attachment";
9526            case AVAILABILITY: return "Availability";
9527            case BACKBONETYPE: return "BackboneType";
9528            case DOSAGE: return "Dosage";
9529            case ELEMENTDEFINITION: return "ElementDefinition";
9530            case MARKETINGSTATUS: return "MarketingStatus";
9531            case PRODUCTSHELFLIFE: return "ProductShelfLife";
9532            case TIMING: return "Timing";
9533            case CODEABLECONCEPT: return "CodeableConcept";
9534            case CODEABLEREFERENCE: return "CodeableReference";
9535            case CODING: return "Coding";
9536            case CONTACTDETAIL: return "ContactDetail";
9537            case CONTACTPOINT: return "ContactPoint";
9538            case CONTRIBUTOR: return "Contributor";
9539            case DATAREQUIREMENT: return "DataRequirement";
9540            case EXPRESSION: return "Expression";
9541            case EXTENDEDCONTACTDETAIL: return "ExtendedContactDetail";
9542            case EXTENSION: return "Extension";
9543            case HUMANNAME: return "HumanName";
9544            case IDENTIFIER: return "Identifier";
9545            case META: return "Meta";
9546            case MONETARYCOMPONENT: return "MonetaryComponent";
9547            case MONEY: return "Money";
9548            case NARRATIVE: return "Narrative";
9549            case PARAMETERDEFINITION: return "ParameterDefinition";
9550            case PERIOD: return "Period";
9551            case PRIMITIVETYPE: return "PrimitiveType";
9552            case BASE64BINARY: return "base64Binary";
9553            case BOOLEAN: return "boolean";
9554            case DATE: return "date";
9555            case DATETIME: return "dateTime";
9556            case DECIMAL: return "decimal";
9557            case INSTANT: return "instant";
9558            case INTEGER: return "integer";
9559            case POSITIVEINT: return "positiveInt";
9560            case UNSIGNEDINT: return "unsignedInt";
9561            case INTEGER64: return "integer64";
9562            case STRING: return "string";
9563            case CODE: return "code";
9564            case ID: return "id";
9565            case MARKDOWN: return "markdown";
9566            case TIME: return "time";
9567            case URI: return "uri";
9568            case CANONICAL: return "canonical";
9569            case OID: return "oid";
9570            case URL: return "url";
9571            case UUID: return "uuid";
9572            case QUANTITY: return "Quantity";
9573            case AGE: return "Age";
9574            case COUNT: return "Count";
9575            case DISTANCE: return "Distance";
9576            case DURATION: return "Duration";
9577            case RANGE: return "Range";
9578            case RATIO: return "Ratio";
9579            case RATIORANGE: return "RatioRange";
9580            case REFERENCE: return "Reference";
9581            case RELATEDARTIFACT: return "RelatedArtifact";
9582            case SAMPLEDDATA: return "SampledData";
9583            case SIGNATURE: return "Signature";
9584            case TRIGGERDEFINITION: return "TriggerDefinition";
9585            case USAGECONTEXT: return "UsageContext";
9586            case VIRTUALSERVICEDETAIL: return "VirtualServiceDetail";
9587            case XHTML: return "xhtml";
9588            case RESOURCE: return "Resource";
9589            case BINARY: return "Binary";
9590            case BUNDLE: return "Bundle";
9591            case DOMAINRESOURCE: return "DomainResource";
9592            case ACCOUNT: return "Account";
9593            case ACTIVITYDEFINITION: return "ActivityDefinition";
9594            case ACTORDEFINITION: return "ActorDefinition";
9595            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
9596            case ADVERSEEVENT: return "AdverseEvent";
9597            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
9598            case APPOINTMENT: return "Appointment";
9599            case APPOINTMENTRESPONSE: return "AppointmentResponse";
9600            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
9601            case AUDITEVENT: return "AuditEvent";
9602            case BASIC: return "Basic";
9603            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
9604            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "BiologicallyDerivedProductDispense";
9605            case BODYSTRUCTURE: return "BodyStructure";
9606            case CANONICALRESOURCE: return "CanonicalResource";
9607            case CAPABILITYSTATEMENT: return "CapabilityStatement";
9608            case CAREPLAN: return "CarePlan";
9609            case CARETEAM: return "CareTeam";
9610            case CHARGEITEM: return "ChargeItem";
9611            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
9612            case CITATION: return "Citation";
9613            case CLAIM: return "Claim";
9614            case CLAIMRESPONSE: return "ClaimResponse";
9615            case CLINICALIMPRESSION: return "ClinicalImpression";
9616            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
9617            case CODESYSTEM: return "CodeSystem";
9618            case COMMUNICATION: return "Communication";
9619            case COMMUNICATIONREQUEST: return "CommunicationRequest";
9620            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
9621            case COMPOSITION: return "Composition";
9622            case CONCEPTMAP: return "ConceptMap";
9623            case CONDITION: return "Condition";
9624            case CONDITIONDEFINITION: return "ConditionDefinition";
9625            case CONSENT: return "Consent";
9626            case CONTRACT: return "Contract";
9627            case COVERAGE: return "Coverage";
9628            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
9629            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
9630            case DETECTEDISSUE: return "DetectedIssue";
9631            case DEVICE: return "Device";
9632            case DEVICEASSOCIATION: return "DeviceAssociation";
9633            case DEVICEDEFINITION: return "DeviceDefinition";
9634            case DEVICEDISPENSE: return "DeviceDispense";
9635            case DEVICEMETRIC: return "DeviceMetric";
9636            case DEVICEREQUEST: return "DeviceRequest";
9637            case DEVICEUSAGE: return "DeviceUsage";
9638            case DIAGNOSTICREPORT: return "DiagnosticReport";
9639            case DOCUMENTREFERENCE: return "DocumentReference";
9640            case ENCOUNTER: return "Encounter";
9641            case ENCOUNTERHISTORY: return "EncounterHistory";
9642            case ENDPOINT: return "Endpoint";
9643            case ENROLLMENTREQUEST: return "EnrollmentRequest";
9644            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
9645            case EPISODEOFCARE: return "EpisodeOfCare";
9646            case EVENTDEFINITION: return "EventDefinition";
9647            case EVIDENCE: return "Evidence";
9648            case EVIDENCEREPORT: return "EvidenceReport";
9649            case EVIDENCEVARIABLE: return "EvidenceVariable";
9650            case EXAMPLESCENARIO: return "ExampleScenario";
9651            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
9652            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
9653            case FLAG: return "Flag";
9654            case FORMULARYITEM: return "FormularyItem";
9655            case GENOMICSTUDY: return "GenomicStudy";
9656            case GOAL: return "Goal";
9657            case GRAPHDEFINITION: return "GraphDefinition";
9658            case GROUP: return "Group";
9659            case GUIDANCERESPONSE: return "GuidanceResponse";
9660            case HEALTHCARESERVICE: return "HealthcareService";
9661            case IMAGINGSELECTION: return "ImagingSelection";
9662            case IMAGINGSTUDY: return "ImagingStudy";
9663            case IMMUNIZATION: return "Immunization";
9664            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
9665            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
9666            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
9667            case INGREDIENT: return "Ingredient";
9668            case INSURANCEPLAN: return "InsurancePlan";
9669            case INVENTORYITEM: return "InventoryItem";
9670            case INVENTORYREPORT: return "InventoryReport";
9671            case INVOICE: return "Invoice";
9672            case LIBRARY: return "Library";
9673            case LINKAGE: return "Linkage";
9674            case LIST: return "List";
9675            case LOCATION: return "Location";
9676            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
9677            case MEASURE: return "Measure";
9678            case MEASUREREPORT: return "MeasureReport";
9679            case MEDICATION: return "Medication";
9680            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
9681            case MEDICATIONDISPENSE: return "MedicationDispense";
9682            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
9683            case MEDICATIONREQUEST: return "MedicationRequest";
9684            case MEDICATIONSTATEMENT: return "MedicationStatement";
9685            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
9686            case MESSAGEDEFINITION: return "MessageDefinition";
9687            case MESSAGEHEADER: return "MessageHeader";
9688            case METADATARESOURCE: return "MetadataResource";
9689            case MOLECULARSEQUENCE: return "MolecularSequence";
9690            case NAMINGSYSTEM: return "NamingSystem";
9691            case NUTRITIONINTAKE: return "NutritionIntake";
9692            case NUTRITIONORDER: return "NutritionOrder";
9693            case NUTRITIONPRODUCT: return "NutritionProduct";
9694            case OBSERVATION: return "Observation";
9695            case OBSERVATIONDEFINITION: return "ObservationDefinition";
9696            case OPERATIONDEFINITION: return "OperationDefinition";
9697            case OPERATIONOUTCOME: return "OperationOutcome";
9698            case ORGANIZATION: return "Organization";
9699            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
9700            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
9701            case PATIENT: return "Patient";
9702            case PAYMENTNOTICE: return "PaymentNotice";
9703            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
9704            case PERMISSION: return "Permission";
9705            case PERSON: return "Person";
9706            case PLANDEFINITION: return "PlanDefinition";
9707            case PRACTITIONER: return "Practitioner";
9708            case PRACTITIONERROLE: return "PractitionerRole";
9709            case PROCEDURE: return "Procedure";
9710            case PROVENANCE: return "Provenance";
9711            case QUESTIONNAIRE: return "Questionnaire";
9712            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
9713            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
9714            case RELATEDPERSON: return "RelatedPerson";
9715            case REQUESTORCHESTRATION: return "RequestOrchestration";
9716            case REQUIREMENTS: return "Requirements";
9717            case RESEARCHSTUDY: return "ResearchStudy";
9718            case RESEARCHSUBJECT: return "ResearchSubject";
9719            case RISKASSESSMENT: return "RiskAssessment";
9720            case SCHEDULE: return "Schedule";
9721            case SEARCHPARAMETER: return "SearchParameter";
9722            case SERVICEREQUEST: return "ServiceRequest";
9723            case SLOT: return "Slot";
9724            case SPECIMEN: return "Specimen";
9725            case SPECIMENDEFINITION: return "SpecimenDefinition";
9726            case STRUCTUREDEFINITION: return "StructureDefinition";
9727            case STRUCTUREMAP: return "StructureMap";
9728            case SUBSCRIPTION: return "Subscription";
9729            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
9730            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
9731            case SUBSTANCE: return "Substance";
9732            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
9733            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
9734            case SUBSTANCEPOLYMER: return "SubstancePolymer";
9735            case SUBSTANCEPROTEIN: return "SubstanceProtein";
9736            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
9737            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
9738            case SUPPLYDELIVERY: return "SupplyDelivery";
9739            case SUPPLYREQUEST: return "SupplyRequest";
9740            case TASK: return "Task";
9741            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
9742            case TESTPLAN: return "TestPlan";
9743            case TESTREPORT: return "TestReport";
9744            case TESTSCRIPT: return "TestScript";
9745            case TRANSPORT: return "Transport";
9746            case VALUESET: return "ValueSet";
9747            case VERIFICATIONRESULT: return "VerificationResult";
9748            case VISIONPRESCRIPTION: return "VisionPrescription";
9749            case PARAMETERS: return "Parameters";
9750            case NULL: return null;
9751            default: return "?";
9752          }
9753        }
9754        public String getSystem() {
9755          switch (this) {
9756            case BASE: return "http://hl7.org/fhir/fhir-types";
9757            case ELEMENT: return "http://hl7.org/fhir/fhir-types";
9758            case BACKBONEELEMENT: return "http://hl7.org/fhir/fhir-types";
9759            case DATATYPE: return "http://hl7.org/fhir/fhir-types";
9760            case ADDRESS: return "http://hl7.org/fhir/fhir-types";
9761            case ANNOTATION: return "http://hl7.org/fhir/fhir-types";
9762            case ATTACHMENT: return "http://hl7.org/fhir/fhir-types";
9763            case AVAILABILITY: return "http://hl7.org/fhir/fhir-types";
9764            case BACKBONETYPE: return "http://hl7.org/fhir/fhir-types";
9765            case DOSAGE: return "http://hl7.org/fhir/fhir-types";
9766            case ELEMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
9767            case MARKETINGSTATUS: return "http://hl7.org/fhir/fhir-types";
9768            case PRODUCTSHELFLIFE: return "http://hl7.org/fhir/fhir-types";
9769            case TIMING: return "http://hl7.org/fhir/fhir-types";
9770            case CODEABLECONCEPT: return "http://hl7.org/fhir/fhir-types";
9771            case CODEABLEREFERENCE: return "http://hl7.org/fhir/fhir-types";
9772            case CODING: return "http://hl7.org/fhir/fhir-types";
9773            case CONTACTDETAIL: return "http://hl7.org/fhir/fhir-types";
9774            case CONTACTPOINT: return "http://hl7.org/fhir/fhir-types";
9775            case CONTRIBUTOR: return "http://hl7.org/fhir/fhir-types";
9776            case DATAREQUIREMENT: return "http://hl7.org/fhir/fhir-types";
9777            case EXPRESSION: return "http://hl7.org/fhir/fhir-types";
9778            case EXTENDEDCONTACTDETAIL: return "http://hl7.org/fhir/fhir-types";
9779            case EXTENSION: return "http://hl7.org/fhir/fhir-types";
9780            case HUMANNAME: return "http://hl7.org/fhir/fhir-types";
9781            case IDENTIFIER: return "http://hl7.org/fhir/fhir-types";
9782            case META: return "http://hl7.org/fhir/fhir-types";
9783            case MONETARYCOMPONENT: return "http://hl7.org/fhir/fhir-types";
9784            case MONEY: return "http://hl7.org/fhir/fhir-types";
9785            case NARRATIVE: return "http://hl7.org/fhir/fhir-types";
9786            case PARAMETERDEFINITION: return "http://hl7.org/fhir/fhir-types";
9787            case PERIOD: return "http://hl7.org/fhir/fhir-types";
9788            case PRIMITIVETYPE: return "http://hl7.org/fhir/fhir-types";
9789            case BASE64BINARY: return "http://hl7.org/fhir/fhir-types";
9790            case BOOLEAN: return "http://hl7.org/fhir/fhir-types";
9791            case DATE: return "http://hl7.org/fhir/fhir-types";
9792            case DATETIME: return "http://hl7.org/fhir/fhir-types";
9793            case DECIMAL: return "http://hl7.org/fhir/fhir-types";
9794            case INSTANT: return "http://hl7.org/fhir/fhir-types";
9795            case INTEGER: return "http://hl7.org/fhir/fhir-types";
9796            case POSITIVEINT: return "http://hl7.org/fhir/fhir-types";
9797            case UNSIGNEDINT: return "http://hl7.org/fhir/fhir-types";
9798            case INTEGER64: return "http://hl7.org/fhir/fhir-types";
9799            case STRING: return "http://hl7.org/fhir/fhir-types";
9800            case CODE: return "http://hl7.org/fhir/fhir-types";
9801            case ID: return "http://hl7.org/fhir/fhir-types";
9802            case MARKDOWN: return "http://hl7.org/fhir/fhir-types";
9803            case TIME: return "http://hl7.org/fhir/fhir-types";
9804            case URI: return "http://hl7.org/fhir/fhir-types";
9805            case CANONICAL: return "http://hl7.org/fhir/fhir-types";
9806            case OID: return "http://hl7.org/fhir/fhir-types";
9807            case URL: return "http://hl7.org/fhir/fhir-types";
9808            case UUID: return "http://hl7.org/fhir/fhir-types";
9809            case QUANTITY: return "http://hl7.org/fhir/fhir-types";
9810            case AGE: return "http://hl7.org/fhir/fhir-types";
9811            case COUNT: return "http://hl7.org/fhir/fhir-types";
9812            case DISTANCE: return "http://hl7.org/fhir/fhir-types";
9813            case DURATION: return "http://hl7.org/fhir/fhir-types";
9814            case RANGE: return "http://hl7.org/fhir/fhir-types";
9815            case RATIO: return "http://hl7.org/fhir/fhir-types";
9816            case RATIORANGE: return "http://hl7.org/fhir/fhir-types";
9817            case REFERENCE: return "http://hl7.org/fhir/fhir-types";
9818            case RELATEDARTIFACT: return "http://hl7.org/fhir/fhir-types";
9819            case SAMPLEDDATA: return "http://hl7.org/fhir/fhir-types";
9820            case SIGNATURE: return "http://hl7.org/fhir/fhir-types";
9821            case TRIGGERDEFINITION: return "http://hl7.org/fhir/fhir-types";
9822            case USAGECONTEXT: return "http://hl7.org/fhir/fhir-types";
9823            case VIRTUALSERVICEDETAIL: return "http://hl7.org/fhir/fhir-types";
9824            case XHTML: return "http://hl7.org/fhir/fhir-types";
9825            case RESOURCE: return "http://hl7.org/fhir/fhir-types";
9826            case BINARY: return "http://hl7.org/fhir/fhir-types";
9827            case BUNDLE: return "http://hl7.org/fhir/fhir-types";
9828            case DOMAINRESOURCE: return "http://hl7.org/fhir/fhir-types";
9829            case ACCOUNT: return "http://hl7.org/fhir/fhir-types";
9830            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/fhir-types";
9831            case ACTORDEFINITION: return "http://hl7.org/fhir/fhir-types";
9832            case ADMINISTRABLEPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
9833            case ADVERSEEVENT: return "http://hl7.org/fhir/fhir-types";
9834            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/fhir-types";
9835            case APPOINTMENT: return "http://hl7.org/fhir/fhir-types";
9836            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
9837            case ARTIFACTASSESSMENT: return "http://hl7.org/fhir/fhir-types";
9838            case AUDITEVENT: return "http://hl7.org/fhir/fhir-types";
9839            case BASIC: return "http://hl7.org/fhir/fhir-types";
9840            case BIOLOGICALLYDERIVEDPRODUCT: return "http://hl7.org/fhir/fhir-types";
9841            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "http://hl7.org/fhir/fhir-types";
9842            case BODYSTRUCTURE: return "http://hl7.org/fhir/fhir-types";
9843            case CANONICALRESOURCE: return "http://hl7.org/fhir/fhir-types";
9844            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/fhir-types";
9845            case CAREPLAN: return "http://hl7.org/fhir/fhir-types";
9846            case CARETEAM: return "http://hl7.org/fhir/fhir-types";
9847            case CHARGEITEM: return "http://hl7.org/fhir/fhir-types";
9848            case CHARGEITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
9849            case CITATION: return "http://hl7.org/fhir/fhir-types";
9850            case CLAIM: return "http://hl7.org/fhir/fhir-types";
9851            case CLAIMRESPONSE: return "http://hl7.org/fhir/fhir-types";
9852            case CLINICALIMPRESSION: return "http://hl7.org/fhir/fhir-types";
9853            case CLINICALUSEDEFINITION: return "http://hl7.org/fhir/fhir-types";
9854            case CODESYSTEM: return "http://hl7.org/fhir/fhir-types";
9855            case COMMUNICATION: return "http://hl7.org/fhir/fhir-types";
9856            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
9857            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
9858            case COMPOSITION: return "http://hl7.org/fhir/fhir-types";
9859            case CONCEPTMAP: return "http://hl7.org/fhir/fhir-types";
9860            case CONDITION: return "http://hl7.org/fhir/fhir-types";
9861            case CONDITIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
9862            case CONSENT: return "http://hl7.org/fhir/fhir-types";
9863            case CONTRACT: return "http://hl7.org/fhir/fhir-types";
9864            case COVERAGE: return "http://hl7.org/fhir/fhir-types";
9865            case COVERAGEELIGIBILITYREQUEST: return "http://hl7.org/fhir/fhir-types";
9866            case COVERAGEELIGIBILITYRESPONSE: return "http://hl7.org/fhir/fhir-types";
9867            case DETECTEDISSUE: return "http://hl7.org/fhir/fhir-types";
9868            case DEVICE: return "http://hl7.org/fhir/fhir-types";
9869            case DEVICEASSOCIATION: return "http://hl7.org/fhir/fhir-types";
9870            case DEVICEDEFINITION: return "http://hl7.org/fhir/fhir-types";
9871            case DEVICEDISPENSE: return "http://hl7.org/fhir/fhir-types";
9872            case DEVICEMETRIC: return "http://hl7.org/fhir/fhir-types";
9873            case DEVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
9874            case DEVICEUSAGE: return "http://hl7.org/fhir/fhir-types";
9875            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/fhir-types";
9876            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/fhir-types";
9877            case ENCOUNTER: return "http://hl7.org/fhir/fhir-types";
9878            case ENCOUNTERHISTORY: return "http://hl7.org/fhir/fhir-types";
9879            case ENDPOINT: return "http://hl7.org/fhir/fhir-types";
9880            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/fhir-types";
9881            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
9882            case EPISODEOFCARE: return "http://hl7.org/fhir/fhir-types";
9883            case EVENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
9884            case EVIDENCE: return "http://hl7.org/fhir/fhir-types";
9885            case EVIDENCEREPORT: return "http://hl7.org/fhir/fhir-types";
9886            case EVIDENCEVARIABLE: return "http://hl7.org/fhir/fhir-types";
9887            case EXAMPLESCENARIO: return "http://hl7.org/fhir/fhir-types";
9888            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/fhir-types";
9889            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/fhir-types";
9890            case FLAG: return "http://hl7.org/fhir/fhir-types";
9891            case FORMULARYITEM: return "http://hl7.org/fhir/fhir-types";
9892            case GENOMICSTUDY: return "http://hl7.org/fhir/fhir-types";
9893            case GOAL: return "http://hl7.org/fhir/fhir-types";
9894            case GRAPHDEFINITION: return "http://hl7.org/fhir/fhir-types";
9895            case GROUP: return "http://hl7.org/fhir/fhir-types";
9896            case GUIDANCERESPONSE: return "http://hl7.org/fhir/fhir-types";
9897            case HEALTHCARESERVICE: return "http://hl7.org/fhir/fhir-types";
9898            case IMAGINGSELECTION: return "http://hl7.org/fhir/fhir-types";
9899            case IMAGINGSTUDY: return "http://hl7.org/fhir/fhir-types";
9900            case IMMUNIZATION: return "http://hl7.org/fhir/fhir-types";
9901            case IMMUNIZATIONEVALUATION: return "http://hl7.org/fhir/fhir-types";
9902            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/fhir-types";
9903            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/fhir-types";
9904            case INGREDIENT: return "http://hl7.org/fhir/fhir-types";
9905            case INSURANCEPLAN: return "http://hl7.org/fhir/fhir-types";
9906            case INVENTORYITEM: return "http://hl7.org/fhir/fhir-types";
9907            case INVENTORYREPORT: return "http://hl7.org/fhir/fhir-types";
9908            case INVOICE: return "http://hl7.org/fhir/fhir-types";
9909            case LIBRARY: return "http://hl7.org/fhir/fhir-types";
9910            case LINKAGE: return "http://hl7.org/fhir/fhir-types";
9911            case LIST: return "http://hl7.org/fhir/fhir-types";
9912            case LOCATION: return "http://hl7.org/fhir/fhir-types";
9913            case MANUFACTUREDITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
9914            case MEASURE: return "http://hl7.org/fhir/fhir-types";
9915            case MEASUREREPORT: return "http://hl7.org/fhir/fhir-types";
9916            case MEDICATION: return "http://hl7.org/fhir/fhir-types";
9917            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/fhir-types";
9918            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/fhir-types";
9919            case MEDICATIONKNOWLEDGE: return "http://hl7.org/fhir/fhir-types";
9920            case MEDICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
9921            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/fhir-types";
9922            case MEDICINALPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
9923            case MESSAGEDEFINITION: return "http://hl7.org/fhir/fhir-types";
9924            case MESSAGEHEADER: return "http://hl7.org/fhir/fhir-types";
9925            case METADATARESOURCE: return "http://hl7.org/fhir/fhir-types";
9926            case MOLECULARSEQUENCE: return "http://hl7.org/fhir/fhir-types";
9927            case NAMINGSYSTEM: return "http://hl7.org/fhir/fhir-types";
9928            case NUTRITIONINTAKE: return "http://hl7.org/fhir/fhir-types";
9929            case NUTRITIONORDER: return "http://hl7.org/fhir/fhir-types";
9930            case NUTRITIONPRODUCT: return "http://hl7.org/fhir/fhir-types";
9931            case OBSERVATION: return "http://hl7.org/fhir/fhir-types";
9932            case OBSERVATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
9933            case OPERATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
9934            case OPERATIONOUTCOME: return "http://hl7.org/fhir/fhir-types";
9935            case ORGANIZATION: return "http://hl7.org/fhir/fhir-types";
9936            case ORGANIZATIONAFFILIATION: return "http://hl7.org/fhir/fhir-types";
9937            case PACKAGEDPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
9938            case PATIENT: return "http://hl7.org/fhir/fhir-types";
9939            case PAYMENTNOTICE: return "http://hl7.org/fhir/fhir-types";
9940            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/fhir-types";
9941            case PERMISSION: return "http://hl7.org/fhir/fhir-types";
9942            case PERSON: return "http://hl7.org/fhir/fhir-types";
9943            case PLANDEFINITION: return "http://hl7.org/fhir/fhir-types";
9944            case PRACTITIONER: return "http://hl7.org/fhir/fhir-types";
9945            case PRACTITIONERROLE: return "http://hl7.org/fhir/fhir-types";
9946            case PROCEDURE: return "http://hl7.org/fhir/fhir-types";
9947            case PROVENANCE: return "http://hl7.org/fhir/fhir-types";
9948            case QUESTIONNAIRE: return "http://hl7.org/fhir/fhir-types";
9949            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/fhir-types";
9950            case REGULATEDAUTHORIZATION: return "http://hl7.org/fhir/fhir-types";
9951            case RELATEDPERSON: return "http://hl7.org/fhir/fhir-types";
9952            case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types";
9953            case REQUIREMENTS: return "http://hl7.org/fhir/fhir-types";
9954            case RESEARCHSTUDY: return "http://hl7.org/fhir/fhir-types";
9955            case RESEARCHSUBJECT: return "http://hl7.org/fhir/fhir-types";
9956            case RISKASSESSMENT: return "http://hl7.org/fhir/fhir-types";
9957            case SCHEDULE: return "http://hl7.org/fhir/fhir-types";
9958            case SEARCHPARAMETER: return "http://hl7.org/fhir/fhir-types";
9959            case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
9960            case SLOT: return "http://hl7.org/fhir/fhir-types";
9961            case SPECIMEN: return "http://hl7.org/fhir/fhir-types";
9962            case SPECIMENDEFINITION: return "http://hl7.org/fhir/fhir-types";
9963            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/fhir-types";
9964            case STRUCTUREMAP: return "http://hl7.org/fhir/fhir-types";
9965            case SUBSCRIPTION: return "http://hl7.org/fhir/fhir-types";
9966            case SUBSCRIPTIONSTATUS: return "http://hl7.org/fhir/fhir-types";
9967            case SUBSCRIPTIONTOPIC: return "http://hl7.org/fhir/fhir-types";
9968            case SUBSTANCE: return "http://hl7.org/fhir/fhir-types";
9969            case SUBSTANCEDEFINITION: return "http://hl7.org/fhir/fhir-types";
9970            case SUBSTANCENUCLEICACID: return "http://hl7.org/fhir/fhir-types";
9971            case SUBSTANCEPOLYMER: return "http://hl7.org/fhir/fhir-types";
9972            case SUBSTANCEPROTEIN: return "http://hl7.org/fhir/fhir-types";
9973            case SUBSTANCEREFERENCEINFORMATION: return "http://hl7.org/fhir/fhir-types";
9974            case SUBSTANCESOURCEMATERIAL: return "http://hl7.org/fhir/fhir-types";
9975            case SUPPLYDELIVERY: return "http://hl7.org/fhir/fhir-types";
9976            case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types";
9977            case TASK: return "http://hl7.org/fhir/fhir-types";
9978            case TERMINOLOGYCAPABILITIES: return "http://hl7.org/fhir/fhir-types";
9979            case TESTPLAN: return "http://hl7.org/fhir/fhir-types";
9980            case TESTREPORT: return "http://hl7.org/fhir/fhir-types";
9981            case TESTSCRIPT: return "http://hl7.org/fhir/fhir-types";
9982            case TRANSPORT: return "http://hl7.org/fhir/fhir-types";
9983            case VALUESET: return "http://hl7.org/fhir/fhir-types";
9984            case VERIFICATIONRESULT: return "http://hl7.org/fhir/fhir-types";
9985            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types";
9986            case PARAMETERS: return "http://hl7.org/fhir/fhir-types";
9987            case NULL: return null;
9988            default: return "?";
9989          }
9990        }
9991        public String getDefinition() {
9992          switch (this) {
9993            case BASE: return "Base Type: Base definition for all types defined in FHIR type system.";
9994            case ELEMENT: return "Element Type: Base definition for all elements in a resource.";
9995            case BACKBONEELEMENT: return "BackboneElement Type: Base definition for all elements that are defined inside a resource - but not those in a data type.";
9996            case DATATYPE: return "DataType Type: The base class for all re-useable types defined as part of the FHIR Specification.";
9997            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.";
9998            case ANNOTATION: return "Annotation Type: A  text note which also  contains information about who made the statement and when.";
9999            case ATTACHMENT: return "Attachment Type: For referring to data content defined in other formats.";
10000            case AVAILABILITY: return "Availability Type: Availability data for an {item}.";
10001            case BACKBONETYPE: return "BackboneType Type: Base definition for the few data types that are allowed to carry modifier extensions.";
10002            case DOSAGE: return "Dosage Type: Indicates how the medication is/was taken or should be taken by the patient.";
10003            case ELEMENTDEFINITION: return "ElementDefinition Type: Captures constraints on each element within the resource, profile, or extension.";
10004            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.";
10005            case PRODUCTSHELFLIFE: return "ProductShelfLife Type: The shelf-life and storage information for a medicinal product item or container can be described using this class.";
10006            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.";
10007            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.";
10008            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).";
10009            case CODING: return "Coding Type: A reference to a code defined by a terminology system.";
10010            case CONTACTDETAIL: return "ContactDetail Type: Specifies contact information for a person or organization.";
10011            case CONTACTPOINT: return "ContactPoint Type: Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
10012            case CONTRIBUTOR: return "Contributor Type: A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
10013            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.";
10014            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.";
10015            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.";
10016            case EXTENSION: return "Extension Type: Optional Extension Element - found in all resources.";
10017            case HUMANNAME: return "HumanName Type: A name, normally of a human, that can be used for other living entities (e.g. 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.";
10018            case IDENTIFIER: return "Identifier Type: An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.";
10019            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.";
10020            case MONETARYCOMPONENT: return "MonetaryComponent Type: Availability data for an {item}.";
10021            case MONEY: return "Money Type: An amount of economic utility in some recognized currency.";
10022            case NARRATIVE: return "Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.";
10023            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.";
10024            case PERIOD: return "Period Type: A time period defined by a start and end date and optionally time.";
10025            case PRIMITIVETYPE: return "PrimitiveType Type: The base type for all re-useable types defined that have a simple property.";
10026            case BASE64BINARY: return "base64Binary Type: A stream of bytes";
10027            case BOOLEAN: return "boolean Type: Value of \"true\" or \"false\"";
10028            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.";
10029            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.";
10030            case DECIMAL: return "decimal Type: A rational number with implicit precision";
10031            case INSTANT: return "instant Type: An instant in time - known at least to the second";
10032            case INTEGER: return "integer Type: A whole number";
10033            case POSITIVEINT: return "positiveInt type: An integer with a value that is positive (e.g. >0)";
10034            case UNSIGNEDINT: return "unsignedInt type: An integer with a value that is not negative (e.g. >= 0)";
10035            case INTEGER64: return "integer64 Type: A very large whole number";
10036            case STRING: return "string Type: A sequence of Unicode characters";
10037            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";
10038            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.";
10039            case MARKDOWN: return "markdown type: A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine";
10040            case TIME: return "time Type: A time during the day, with no date specified";
10041            case URI: return "uri Type: String of characters used to identify a name or a resource";
10042            case CANONICAL: return "canonical type: A URI that is a reference to a canonical URL on a FHIR resource";
10043            case OID: return "oid type: An OID represented as a URI";
10044            case URL: return "url type: A URI that is a literal reference";
10045            case UUID: return "uuid type: A UUID, represented as a URI";
10046            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.";
10047            case AGE: return "Age Type: A duration of time during which an organism (or a process) has existed.";
10048            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.";
10049            case DISTANCE: return "Distance Type: A length - a value with a unit that is a physical distance.";
10050            case DURATION: return "Duration Type: A length of time.";
10051            case RANGE: return "Range Type: A set of ordered Quantities defined by a low and high limit.";
10052            case RATIO: return "Ratio Type: A relationship of two Quantity values - expressed as a numerator and a denominator.";
10053            case RATIORANGE: return "RatioRange Type: A range of ratios expressed as a low and high numerator and a denominator.";
10054            case REFERENCE: return "Reference Type: A reference from one resource to another.";
10055            case RELATEDARTIFACT: return "RelatedArtifact Type: Related artifacts such as additional documentation, justification, or bibliographic references.";
10056            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.";
10057            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.";
10058            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.";
10059            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).";
10060            case VIRTUALSERVICEDETAIL: return "VirtualServiceDetail Type: Virtual Service Contact Details.";
10061            case XHTML: return "xhtml Type definition";
10062            case RESOURCE: return "This is the base resource type for everything.";
10063            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.";
10064            case BUNDLE: return "A container for a collection of resources.";
10065            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
10066            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.";
10067            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.";
10068            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.";
10069            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).";
10070            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 participant. 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.  Adverse events can be reported by healthcare providers, patients, caregivers or by medical products manufacturers.  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.";
10071            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
10072            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).";
10073            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
10074            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.";
10075            case AUDITEVENT: return "A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.";
10076            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.";
10077            case BIOLOGICALLYDERIVEDPRODUCT: return "A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.";
10078            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "A record of dispensation of a biologically derived product.";
10079            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.";
10080            case CANONICALRESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
10081            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.";
10082            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.";
10083            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.";
10084            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.";
10085            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.";
10086            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.";
10087            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.";
10088            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
10089            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.";
10090            case CLINICALUSEDEFINITION: return "A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.";
10091            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.";
10092            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.";
10093            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.";
10094            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
10095            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.).";
10096            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.";
10097            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
10098            case CONDITIONDEFINITION: return "A definition of a condition and information relevant to managing it.";
10099            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.";
10100            case CONTRACT: return "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.";
10101            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.";
10102            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.";
10103            case COVERAGEELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.";
10104            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, gaps in care, etc.";
10105            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.";
10106            case DEVICEASSOCIATION: return "A record of association of a device.";
10107            case DEVICEDEFINITION: return "This is a specialized resource that defines the characteristics and capabilities of a device.";
10108            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.";
10109            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a device.  The DeviceMetric resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable. ";
10110            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.";
10111            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.";
10112            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.";
10113            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.";
10114            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).";
10115            case ENCOUNTERHISTORY: return "A record of significant events/milestones key data throughout the history of an Encounter";
10116            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.";
10117            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
10118            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.";
10119            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.";
10120            case EVENTDEFINITION: return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
10121            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.";
10122            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.";
10123            case EVIDENCEVARIABLE: return "The EvidenceVariable resource describes an element that knowledge (Evidence) is about.";
10124            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.";
10125            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.";
10126            case FAMILYMEMBERHISTORY: return "Significant health conditions for a person related to the patient relevant in the context of care for the patient.";
10127            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
10128            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.";
10129            case GENOMICSTUDY: return "A set of analyses performed to analyze and generate genomic data.";
10130            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.";
10131            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.";
10132            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.";
10133            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.";
10134            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.";
10135            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.";
10136            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.";
10137            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.";
10138            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.";
10139            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.";
10140            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.";
10141            case INGREDIENT: return "An ingredient of a manufactured item or pharmaceutical product.";
10142            case INSURANCEPLAN: return "Details of a Health Insurance product/plan provided by an organization.";
10143            case INVENTORYITEM: return "functional description of an inventory item used in inventory and supply-related workflows.";
10144            case INVENTORYREPORT: return "A report of inventory or stock items.";
10145            case INVOICE: return "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.";
10146            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.";
10147            case LINKAGE: return "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\".";
10148            case LIST: return "A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.";
10149            case LOCATION: return "Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.";
10150            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.";
10151            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
10152            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.";
10153            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.";
10154            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. This event can also be used to record waste using a status of not-done and the appropriate statusReason.";
10155            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.";
10156            case MEDICATIONKNOWLEDGE: return "Information about a medication that is used to support knowledge.";
10157            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.";
10158            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. \n\nThe primary difference between a medicationstatement 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 medicationstatement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the Medication Statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
10159            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.).";
10160            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.";
10161            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.";
10162            case METADATARESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
10163            case MOLECULARSEQUENCE: return "Representation of a molecular sequence.";
10164            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.";
10165            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.";
10166            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
10167            case NUTRITIONPRODUCT: return "A food or supplement that is consumed by patients.";
10168            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
10169            case OBSERVATIONDEFINITION: return "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.";
10170            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
10171            case OPERATIONOUTCOME: return "A collection of error, warning, or information messages that result from a system action.";
10172            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.";
10173            case ORGANIZATIONAFFILIATION: return "Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.";
10174            case PACKAGEDPRODUCTDEFINITION: return "A medically related item or items, in a container or package.";
10175            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
10176            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
10177            case PAYMENTRECONCILIATION: return "This resource provides the details including amount of a payment and allocates the payment items being paid.";
10178            case PERMISSION: return "Permission resource holds access rules for a given data and context.";
10179            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
10180            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.";
10181            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare or related services.";
10182            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.";
10183            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.";
10184            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.";
10185            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.";
10186            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.";
10187            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.";
10188            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.";
10189            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\".";
10190            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.";
10191            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.";
10192            case RESEARCHSUBJECT: return "A ResearchSubject is a participant or object which is the recipient of investigative activities in a research study.";
10193            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
10194            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
10195            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
10196            case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
10197            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
10198            case SPECIMEN: return "A sample to be used for analysis.";
10199            case SPECIMENDEFINITION: return "A kind of specimen with associated set of requirements.";
10200            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.";
10201            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
10202            case SUBSCRIPTION: return "The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.";
10203            case SUBSCRIPTIONSTATUS: return "The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.";
10204            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.";
10205            case SUBSTANCE: return "A homogeneous material with a definite composition.";
10206            case SUBSTANCEDEFINITION: return "The detailed description of a substance, typically at a level beyond what is used for prescribing.";
10207            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.";
10208            case SUBSTANCEPOLYMER: return "Properties of a substance specific to it being a polymer.";
10209            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.";
10210            case SUBSTANCEREFERENCEINFORMATION: return "Todo.";
10211            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.";
10212            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
10213            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.";
10214            case TASK: return "A task to be performed.";
10215            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.";
10216            case TESTPLAN: return "A plan for executing testing on an artifact or specifications";
10217            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
10218            case TESTSCRIPT: return "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.";
10219            case TRANSPORT: return "Record of transport.";
10220            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).";
10221            case VERIFICATIONRESULT: return "Describes validation requirements, source(s), status and dates for one or more elements.";
10222            case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient.";
10223            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.";
10224            case NULL: return null;
10225            default: return "?";
10226          }
10227        }
10228        public String getDisplay() {
10229          switch (this) {
10230            case BASE: return "Base";
10231            case ELEMENT: return "Element";
10232            case BACKBONEELEMENT: return "BackboneElement";
10233            case DATATYPE: return "DataType";
10234            case ADDRESS: return "Address";
10235            case ANNOTATION: return "Annotation";
10236            case ATTACHMENT: return "Attachment";
10237            case AVAILABILITY: return "Availability";
10238            case BACKBONETYPE: return "BackboneType";
10239            case DOSAGE: return "Dosage";
10240            case ELEMENTDEFINITION: return "ElementDefinition";
10241            case MARKETINGSTATUS: return "MarketingStatus";
10242            case PRODUCTSHELFLIFE: return "ProductShelfLife";
10243            case TIMING: return "Timing";
10244            case CODEABLECONCEPT: return "CodeableConcept";
10245            case CODEABLEREFERENCE: return "CodeableReference";
10246            case CODING: return "Coding";
10247            case CONTACTDETAIL: return "ContactDetail";
10248            case CONTACTPOINT: return "ContactPoint";
10249            case CONTRIBUTOR: return "Contributor";
10250            case DATAREQUIREMENT: return "DataRequirement";
10251            case EXPRESSION: return "Expression";
10252            case EXTENDEDCONTACTDETAIL: return "ExtendedContactDetail";
10253            case EXTENSION: return "Extension";
10254            case HUMANNAME: return "HumanName";
10255            case IDENTIFIER: return "Identifier";
10256            case META: return "Meta";
10257            case MONETARYCOMPONENT: return "MonetaryComponent";
10258            case MONEY: return "Money";
10259            case NARRATIVE: return "Narrative";
10260            case PARAMETERDEFINITION: return "ParameterDefinition";
10261            case PERIOD: return "Period";
10262            case PRIMITIVETYPE: return "PrimitiveType";
10263            case BASE64BINARY: return "base64Binary";
10264            case BOOLEAN: return "boolean";
10265            case DATE: return "date";
10266            case DATETIME: return "dateTime";
10267            case DECIMAL: return "decimal";
10268            case INSTANT: return "instant";
10269            case INTEGER: return "integer";
10270            case POSITIVEINT: return "positiveInt";
10271            case UNSIGNEDINT: return "unsignedInt";
10272            case INTEGER64: return "integer64";
10273            case STRING: return "string";
10274            case CODE: return "code";
10275            case ID: return "id";
10276            case MARKDOWN: return "markdown";
10277            case TIME: return "time";
10278            case URI: return "uri";
10279            case CANONICAL: return "canonical";
10280            case OID: return "oid";
10281            case URL: return "url";
10282            case UUID: return "uuid";
10283            case QUANTITY: return "Quantity";
10284            case AGE: return "Age";
10285            case COUNT: return "Count";
10286            case DISTANCE: return "Distance";
10287            case DURATION: return "Duration";
10288            case RANGE: return "Range";
10289            case RATIO: return "Ratio";
10290            case RATIORANGE: return "RatioRange";
10291            case REFERENCE: return "Reference";
10292            case RELATEDARTIFACT: return "RelatedArtifact";
10293            case SAMPLEDDATA: return "SampledData";
10294            case SIGNATURE: return "Signature";
10295            case TRIGGERDEFINITION: return "TriggerDefinition";
10296            case USAGECONTEXT: return "UsageContext";
10297            case VIRTUALSERVICEDETAIL: return "VirtualServiceDetail";
10298            case XHTML: return "xhtml";
10299            case RESOURCE: return "Resource";
10300            case BINARY: return "Binary";
10301            case BUNDLE: return "Bundle";
10302            case DOMAINRESOURCE: return "DomainResource";
10303            case ACCOUNT: return "Account";
10304            case ACTIVITYDEFINITION: return "ActivityDefinition";
10305            case ACTORDEFINITION: return "ActorDefinition";
10306            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
10307            case ADVERSEEVENT: return "AdverseEvent";
10308            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
10309            case APPOINTMENT: return "Appointment";
10310            case APPOINTMENTRESPONSE: return "AppointmentResponse";
10311            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
10312            case AUDITEVENT: return "AuditEvent";
10313            case BASIC: return "Basic";
10314            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
10315            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "BiologicallyDerivedProductDispense";
10316            case BODYSTRUCTURE: return "BodyStructure";
10317            case CANONICALRESOURCE: return "CanonicalResource";
10318            case CAPABILITYSTATEMENT: return "CapabilityStatement";
10319            case CAREPLAN: return "CarePlan";
10320            case CARETEAM: return "CareTeam";
10321            case CHARGEITEM: return "ChargeItem";
10322            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
10323            case CITATION: return "Citation";
10324            case CLAIM: return "Claim";
10325            case CLAIMRESPONSE: return "ClaimResponse";
10326            case CLINICALIMPRESSION: return "ClinicalImpression";
10327            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
10328            case CODESYSTEM: return "CodeSystem";
10329            case COMMUNICATION: return "Communication";
10330            case COMMUNICATIONREQUEST: return "CommunicationRequest";
10331            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
10332            case COMPOSITION: return "Composition";
10333            case CONCEPTMAP: return "ConceptMap";
10334            case CONDITION: return "Condition";
10335            case CONDITIONDEFINITION: return "ConditionDefinition";
10336            case CONSENT: return "Consent";
10337            case CONTRACT: return "Contract";
10338            case COVERAGE: return "Coverage";
10339            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
10340            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
10341            case DETECTEDISSUE: return "DetectedIssue";
10342            case DEVICE: return "Device";
10343            case DEVICEASSOCIATION: return "DeviceAssociation";
10344            case DEVICEDEFINITION: return "DeviceDefinition";
10345            case DEVICEDISPENSE: return "DeviceDispense";
10346            case DEVICEMETRIC: return "DeviceMetric";
10347            case DEVICEREQUEST: return "DeviceRequest";
10348            case DEVICEUSAGE: return "DeviceUsage";
10349            case DIAGNOSTICREPORT: return "DiagnosticReport";
10350            case DOCUMENTREFERENCE: return "DocumentReference";
10351            case ENCOUNTER: return "Encounter";
10352            case ENCOUNTERHISTORY: return "EncounterHistory";
10353            case ENDPOINT: return "Endpoint";
10354            case ENROLLMENTREQUEST: return "EnrollmentRequest";
10355            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
10356            case EPISODEOFCARE: return "EpisodeOfCare";
10357            case EVENTDEFINITION: return "EventDefinition";
10358            case EVIDENCE: return "Evidence";
10359            case EVIDENCEREPORT: return "EvidenceReport";
10360            case EVIDENCEVARIABLE: return "EvidenceVariable";
10361            case EXAMPLESCENARIO: return "ExampleScenario";
10362            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
10363            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
10364            case FLAG: return "Flag";
10365            case FORMULARYITEM: return "FormularyItem";
10366            case GENOMICSTUDY: return "GenomicStudy";
10367            case GOAL: return "Goal";
10368            case GRAPHDEFINITION: return "GraphDefinition";
10369            case GROUP: return "Group";
10370            case GUIDANCERESPONSE: return "GuidanceResponse";
10371            case HEALTHCARESERVICE: return "HealthcareService";
10372            case IMAGINGSELECTION: return "ImagingSelection";
10373            case IMAGINGSTUDY: return "ImagingStudy";
10374            case IMMUNIZATION: return "Immunization";
10375            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
10376            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
10377            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
10378            case INGREDIENT: return "Ingredient";
10379            case INSURANCEPLAN: return "InsurancePlan";
10380            case INVENTORYITEM: return "InventoryItem";
10381            case INVENTORYREPORT: return "InventoryReport";
10382            case INVOICE: return "Invoice";
10383            case LIBRARY: return "Library";
10384            case LINKAGE: return "Linkage";
10385            case LIST: return "List";
10386            case LOCATION: return "Location";
10387            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
10388            case MEASURE: return "Measure";
10389            case MEASUREREPORT: return "MeasureReport";
10390            case MEDICATION: return "Medication";
10391            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
10392            case MEDICATIONDISPENSE: return "MedicationDispense";
10393            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
10394            case MEDICATIONREQUEST: return "MedicationRequest";
10395            case MEDICATIONSTATEMENT: return "MedicationStatement";
10396            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
10397            case MESSAGEDEFINITION: return "MessageDefinition";
10398            case MESSAGEHEADER: return "MessageHeader";
10399            case METADATARESOURCE: return "MetadataResource";
10400            case MOLECULARSEQUENCE: return "MolecularSequence";
10401            case NAMINGSYSTEM: return "NamingSystem";
10402            case NUTRITIONINTAKE: return "NutritionIntake";
10403            case NUTRITIONORDER: return "NutritionOrder";
10404            case NUTRITIONPRODUCT: return "NutritionProduct";
10405            case OBSERVATION: return "Observation";
10406            case OBSERVATIONDEFINITION: return "ObservationDefinition";
10407            case OPERATIONDEFINITION: return "OperationDefinition";
10408            case OPERATIONOUTCOME: return "OperationOutcome";
10409            case ORGANIZATION: return "Organization";
10410            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
10411            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
10412            case PATIENT: return "Patient";
10413            case PAYMENTNOTICE: return "PaymentNotice";
10414            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
10415            case PERMISSION: return "Permission";
10416            case PERSON: return "Person";
10417            case PLANDEFINITION: return "PlanDefinition";
10418            case PRACTITIONER: return "Practitioner";
10419            case PRACTITIONERROLE: return "PractitionerRole";
10420            case PROCEDURE: return "Procedure";
10421            case PROVENANCE: return "Provenance";
10422            case QUESTIONNAIRE: return "Questionnaire";
10423            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
10424            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
10425            case RELATEDPERSON: return "RelatedPerson";
10426            case REQUESTORCHESTRATION: return "RequestOrchestration";
10427            case REQUIREMENTS: return "Requirements";
10428            case RESEARCHSTUDY: return "ResearchStudy";
10429            case RESEARCHSUBJECT: return "ResearchSubject";
10430            case RISKASSESSMENT: return "RiskAssessment";
10431            case SCHEDULE: return "Schedule";
10432            case SEARCHPARAMETER: return "SearchParameter";
10433            case SERVICEREQUEST: return "ServiceRequest";
10434            case SLOT: return "Slot";
10435            case SPECIMEN: return "Specimen";
10436            case SPECIMENDEFINITION: return "SpecimenDefinition";
10437            case STRUCTUREDEFINITION: return "StructureDefinition";
10438            case STRUCTUREMAP: return "StructureMap";
10439            case SUBSCRIPTION: return "Subscription";
10440            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
10441            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
10442            case SUBSTANCE: return "Substance";
10443            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
10444            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
10445            case SUBSTANCEPOLYMER: return "SubstancePolymer";
10446            case SUBSTANCEPROTEIN: return "SubstanceProtein";
10447            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
10448            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
10449            case SUPPLYDELIVERY: return "SupplyDelivery";
10450            case SUPPLYREQUEST: return "SupplyRequest";
10451            case TASK: return "Task";
10452            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
10453            case TESTPLAN: return "TestPlan";
10454            case TESTREPORT: return "TestReport";
10455            case TESTSCRIPT: return "TestScript";
10456            case TRANSPORT: return "Transport";
10457            case VALUESET: return "ValueSet";
10458            case VERIFICATIONRESULT: return "VerificationResult";
10459            case VISIONPRESCRIPTION: return "VisionPrescription";
10460            case PARAMETERS: return "Parameters";
10461            case NULL: return null;
10462            default: return "?";
10463          }
10464        }
10465    }
10466
10467  public static class FHIRTypesEnumFactory implements EnumFactory<FHIRTypes> {
10468    public FHIRTypes fromCode(String codeString) throws IllegalArgumentException {
10469      if (codeString == null || "".equals(codeString))
10470            if (codeString == null || "".equals(codeString))
10471                return null;
10472        if ("Base".equals(codeString))
10473          return FHIRTypes.BASE;
10474        if ("Element".equals(codeString))
10475          return FHIRTypes.ELEMENT;
10476        if ("BackboneElement".equals(codeString))
10477          return FHIRTypes.BACKBONEELEMENT;
10478        if ("DataType".equals(codeString))
10479          return FHIRTypes.DATATYPE;
10480        if ("Address".equals(codeString))
10481          return FHIRTypes.ADDRESS;
10482        if ("Annotation".equals(codeString))
10483          return FHIRTypes.ANNOTATION;
10484        if ("Attachment".equals(codeString))
10485          return FHIRTypes.ATTACHMENT;
10486        if ("Availability".equals(codeString))
10487          return FHIRTypes.AVAILABILITY;
10488        if ("BackboneType".equals(codeString))
10489          return FHIRTypes.BACKBONETYPE;
10490        if ("Dosage".equals(codeString))
10491          return FHIRTypes.DOSAGE;
10492        if ("ElementDefinition".equals(codeString))
10493          return FHIRTypes.ELEMENTDEFINITION;
10494        if ("MarketingStatus".equals(codeString))
10495          return FHIRTypes.MARKETINGSTATUS;
10496        if ("ProductShelfLife".equals(codeString))
10497          return FHIRTypes.PRODUCTSHELFLIFE;
10498        if ("Timing".equals(codeString))
10499          return FHIRTypes.TIMING;
10500        if ("CodeableConcept".equals(codeString))
10501          return FHIRTypes.CODEABLECONCEPT;
10502        if ("CodeableReference".equals(codeString))
10503          return FHIRTypes.CODEABLEREFERENCE;
10504        if ("Coding".equals(codeString))
10505          return FHIRTypes.CODING;
10506        if ("ContactDetail".equals(codeString))
10507          return FHIRTypes.CONTACTDETAIL;
10508        if ("ContactPoint".equals(codeString))
10509          return FHIRTypes.CONTACTPOINT;
10510        if ("Contributor".equals(codeString))
10511          return FHIRTypes.CONTRIBUTOR;
10512        if ("DataRequirement".equals(codeString))
10513          return FHIRTypes.DATAREQUIREMENT;
10514        if ("Expression".equals(codeString))
10515          return FHIRTypes.EXPRESSION;
10516        if ("ExtendedContactDetail".equals(codeString))
10517          return FHIRTypes.EXTENDEDCONTACTDETAIL;
10518        if ("Extension".equals(codeString))
10519          return FHIRTypes.EXTENSION;
10520        if ("HumanName".equals(codeString))
10521          return FHIRTypes.HUMANNAME;
10522        if ("Identifier".equals(codeString))
10523          return FHIRTypes.IDENTIFIER;
10524        if ("Meta".equals(codeString))
10525          return FHIRTypes.META;
10526        if ("MonetaryComponent".equals(codeString))
10527          return FHIRTypes.MONETARYCOMPONENT;
10528        if ("Money".equals(codeString))
10529          return FHIRTypes.MONEY;
10530        if ("Narrative".equals(codeString))
10531          return FHIRTypes.NARRATIVE;
10532        if ("ParameterDefinition".equals(codeString))
10533          return FHIRTypes.PARAMETERDEFINITION;
10534        if ("Period".equals(codeString))
10535          return FHIRTypes.PERIOD;
10536        if ("PrimitiveType".equals(codeString))
10537          return FHIRTypes.PRIMITIVETYPE;
10538        if ("base64Binary".equals(codeString))
10539          return FHIRTypes.BASE64BINARY;
10540        if ("boolean".equals(codeString))
10541          return FHIRTypes.BOOLEAN;
10542        if ("date".equals(codeString))
10543          return FHIRTypes.DATE;
10544        if ("dateTime".equals(codeString))
10545          return FHIRTypes.DATETIME;
10546        if ("decimal".equals(codeString))
10547          return FHIRTypes.DECIMAL;
10548        if ("instant".equals(codeString))
10549          return FHIRTypes.INSTANT;
10550        if ("integer".equals(codeString))
10551          return FHIRTypes.INTEGER;
10552        if ("positiveInt".equals(codeString))
10553          return FHIRTypes.POSITIVEINT;
10554        if ("unsignedInt".equals(codeString))
10555          return FHIRTypes.UNSIGNEDINT;
10556        if ("integer64".equals(codeString))
10557          return FHIRTypes.INTEGER64;
10558        if ("string".equals(codeString))
10559          return FHIRTypes.STRING;
10560        if ("code".equals(codeString))
10561          return FHIRTypes.CODE;
10562        if ("id".equals(codeString))
10563          return FHIRTypes.ID;
10564        if ("markdown".equals(codeString))
10565          return FHIRTypes.MARKDOWN;
10566        if ("time".equals(codeString))
10567          return FHIRTypes.TIME;
10568        if ("uri".equals(codeString))
10569          return FHIRTypes.URI;
10570        if ("canonical".equals(codeString))
10571          return FHIRTypes.CANONICAL;
10572        if ("oid".equals(codeString))
10573          return FHIRTypes.OID;
10574        if ("url".equals(codeString))
10575          return FHIRTypes.URL;
10576        if ("uuid".equals(codeString))
10577          return FHIRTypes.UUID;
10578        if ("Quantity".equals(codeString))
10579          return FHIRTypes.QUANTITY;
10580        if ("Age".equals(codeString))
10581          return FHIRTypes.AGE;
10582        if ("Count".equals(codeString))
10583          return FHIRTypes.COUNT;
10584        if ("Distance".equals(codeString))
10585          return FHIRTypes.DISTANCE;
10586        if ("Duration".equals(codeString))
10587          return FHIRTypes.DURATION;
10588        if ("Range".equals(codeString))
10589          return FHIRTypes.RANGE;
10590        if ("Ratio".equals(codeString))
10591          return FHIRTypes.RATIO;
10592        if ("RatioRange".equals(codeString))
10593          return FHIRTypes.RATIORANGE;
10594        if ("Reference".equals(codeString))
10595          return FHIRTypes.REFERENCE;
10596        if ("RelatedArtifact".equals(codeString))
10597          return FHIRTypes.RELATEDARTIFACT;
10598        if ("SampledData".equals(codeString))
10599          return FHIRTypes.SAMPLEDDATA;
10600        if ("Signature".equals(codeString))
10601          return FHIRTypes.SIGNATURE;
10602        if ("TriggerDefinition".equals(codeString))
10603          return FHIRTypes.TRIGGERDEFINITION;
10604        if ("UsageContext".equals(codeString))
10605          return FHIRTypes.USAGECONTEXT;
10606        if ("VirtualServiceDetail".equals(codeString))
10607          return FHIRTypes.VIRTUALSERVICEDETAIL;
10608        if ("xhtml".equals(codeString))
10609          return FHIRTypes.XHTML;
10610        if ("Resource".equals(codeString))
10611          return FHIRTypes.RESOURCE;
10612        if ("Binary".equals(codeString))
10613          return FHIRTypes.BINARY;
10614        if ("Bundle".equals(codeString))
10615          return FHIRTypes.BUNDLE;
10616        if ("DomainResource".equals(codeString))
10617          return FHIRTypes.DOMAINRESOURCE;
10618        if ("Account".equals(codeString))
10619          return FHIRTypes.ACCOUNT;
10620        if ("ActivityDefinition".equals(codeString))
10621          return FHIRTypes.ACTIVITYDEFINITION;
10622        if ("ActorDefinition".equals(codeString))
10623          return FHIRTypes.ACTORDEFINITION;
10624        if ("AdministrableProductDefinition".equals(codeString))
10625          return FHIRTypes.ADMINISTRABLEPRODUCTDEFINITION;
10626        if ("AdverseEvent".equals(codeString))
10627          return FHIRTypes.ADVERSEEVENT;
10628        if ("AllergyIntolerance".equals(codeString))
10629          return FHIRTypes.ALLERGYINTOLERANCE;
10630        if ("Appointment".equals(codeString))
10631          return FHIRTypes.APPOINTMENT;
10632        if ("AppointmentResponse".equals(codeString))
10633          return FHIRTypes.APPOINTMENTRESPONSE;
10634        if ("ArtifactAssessment".equals(codeString))
10635          return FHIRTypes.ARTIFACTASSESSMENT;
10636        if ("AuditEvent".equals(codeString))
10637          return FHIRTypes.AUDITEVENT;
10638        if ("Basic".equals(codeString))
10639          return FHIRTypes.BASIC;
10640        if ("BiologicallyDerivedProduct".equals(codeString))
10641          return FHIRTypes.BIOLOGICALLYDERIVEDPRODUCT;
10642        if ("BiologicallyDerivedProductDispense".equals(codeString))
10643          return FHIRTypes.BIOLOGICALLYDERIVEDPRODUCTDISPENSE;
10644        if ("BodyStructure".equals(codeString))
10645          return FHIRTypes.BODYSTRUCTURE;
10646        if ("CanonicalResource".equals(codeString))
10647          return FHIRTypes.CANONICALRESOURCE;
10648        if ("CapabilityStatement".equals(codeString))
10649          return FHIRTypes.CAPABILITYSTATEMENT;
10650        if ("CarePlan".equals(codeString))
10651          return FHIRTypes.CAREPLAN;
10652        if ("CareTeam".equals(codeString))
10653          return FHIRTypes.CARETEAM;
10654        if ("ChargeItem".equals(codeString))
10655          return FHIRTypes.CHARGEITEM;
10656        if ("ChargeItemDefinition".equals(codeString))
10657          return FHIRTypes.CHARGEITEMDEFINITION;
10658        if ("Citation".equals(codeString))
10659          return FHIRTypes.CITATION;
10660        if ("Claim".equals(codeString))
10661          return FHIRTypes.CLAIM;
10662        if ("ClaimResponse".equals(codeString))
10663          return FHIRTypes.CLAIMRESPONSE;
10664        if ("ClinicalImpression".equals(codeString))
10665          return FHIRTypes.CLINICALIMPRESSION;
10666        if ("ClinicalUseDefinition".equals(codeString))
10667          return FHIRTypes.CLINICALUSEDEFINITION;
10668        if ("CodeSystem".equals(codeString))
10669          return FHIRTypes.CODESYSTEM;
10670        if ("Communication".equals(codeString))
10671          return FHIRTypes.COMMUNICATION;
10672        if ("CommunicationRequest".equals(codeString))
10673          return FHIRTypes.COMMUNICATIONREQUEST;
10674        if ("CompartmentDefinition".equals(codeString))
10675          return FHIRTypes.COMPARTMENTDEFINITION;
10676        if ("Composition".equals(codeString))
10677          return FHIRTypes.COMPOSITION;
10678        if ("ConceptMap".equals(codeString))
10679          return FHIRTypes.CONCEPTMAP;
10680        if ("Condition".equals(codeString))
10681          return FHIRTypes.CONDITION;
10682        if ("ConditionDefinition".equals(codeString))
10683          return FHIRTypes.CONDITIONDEFINITION;
10684        if ("Consent".equals(codeString))
10685          return FHIRTypes.CONSENT;
10686        if ("Contract".equals(codeString))
10687          return FHIRTypes.CONTRACT;
10688        if ("Coverage".equals(codeString))
10689          return FHIRTypes.COVERAGE;
10690        if ("CoverageEligibilityRequest".equals(codeString))
10691          return FHIRTypes.COVERAGEELIGIBILITYREQUEST;
10692        if ("CoverageEligibilityResponse".equals(codeString))
10693          return FHIRTypes.COVERAGEELIGIBILITYRESPONSE;
10694        if ("DetectedIssue".equals(codeString))
10695          return FHIRTypes.DETECTEDISSUE;
10696        if ("Device".equals(codeString))
10697          return FHIRTypes.DEVICE;
10698        if ("DeviceAssociation".equals(codeString))
10699          return FHIRTypes.DEVICEASSOCIATION;
10700        if ("DeviceDefinition".equals(codeString))
10701          return FHIRTypes.DEVICEDEFINITION;
10702        if ("DeviceDispense".equals(codeString))
10703          return FHIRTypes.DEVICEDISPENSE;
10704        if ("DeviceMetric".equals(codeString))
10705          return FHIRTypes.DEVICEMETRIC;
10706        if ("DeviceRequest".equals(codeString))
10707          return FHIRTypes.DEVICEREQUEST;
10708        if ("DeviceUsage".equals(codeString))
10709          return FHIRTypes.DEVICEUSAGE;
10710        if ("DiagnosticReport".equals(codeString))
10711          return FHIRTypes.DIAGNOSTICREPORT;
10712        if ("DocumentReference".equals(codeString))
10713          return FHIRTypes.DOCUMENTREFERENCE;
10714        if ("Encounter".equals(codeString))
10715          return FHIRTypes.ENCOUNTER;
10716        if ("EncounterHistory".equals(codeString))
10717          return FHIRTypes.ENCOUNTERHISTORY;
10718        if ("Endpoint".equals(codeString))
10719          return FHIRTypes.ENDPOINT;
10720        if ("EnrollmentRequest".equals(codeString))
10721          return FHIRTypes.ENROLLMENTREQUEST;
10722        if ("EnrollmentResponse".equals(codeString))
10723          return FHIRTypes.ENROLLMENTRESPONSE;
10724        if ("EpisodeOfCare".equals(codeString))
10725          return FHIRTypes.EPISODEOFCARE;
10726        if ("EventDefinition".equals(codeString))
10727          return FHIRTypes.EVENTDEFINITION;
10728        if ("Evidence".equals(codeString))
10729          return FHIRTypes.EVIDENCE;
10730        if ("EvidenceReport".equals(codeString))
10731          return FHIRTypes.EVIDENCEREPORT;
10732        if ("EvidenceVariable".equals(codeString))
10733          return FHIRTypes.EVIDENCEVARIABLE;
10734        if ("ExampleScenario".equals(codeString))
10735          return FHIRTypes.EXAMPLESCENARIO;
10736        if ("ExplanationOfBenefit".equals(codeString))
10737          return FHIRTypes.EXPLANATIONOFBENEFIT;
10738        if ("FamilyMemberHistory".equals(codeString))
10739          return FHIRTypes.FAMILYMEMBERHISTORY;
10740        if ("Flag".equals(codeString))
10741          return FHIRTypes.FLAG;
10742        if ("FormularyItem".equals(codeString))
10743          return FHIRTypes.FORMULARYITEM;
10744        if ("GenomicStudy".equals(codeString))
10745          return FHIRTypes.GENOMICSTUDY;
10746        if ("Goal".equals(codeString))
10747          return FHIRTypes.GOAL;
10748        if ("GraphDefinition".equals(codeString))
10749          return FHIRTypes.GRAPHDEFINITION;
10750        if ("Group".equals(codeString))
10751          return FHIRTypes.GROUP;
10752        if ("GuidanceResponse".equals(codeString))
10753          return FHIRTypes.GUIDANCERESPONSE;
10754        if ("HealthcareService".equals(codeString))
10755          return FHIRTypes.HEALTHCARESERVICE;
10756        if ("ImagingSelection".equals(codeString))
10757          return FHIRTypes.IMAGINGSELECTION;
10758        if ("ImagingStudy".equals(codeString))
10759          return FHIRTypes.IMAGINGSTUDY;
10760        if ("Immunization".equals(codeString))
10761          return FHIRTypes.IMMUNIZATION;
10762        if ("ImmunizationEvaluation".equals(codeString))
10763          return FHIRTypes.IMMUNIZATIONEVALUATION;
10764        if ("ImmunizationRecommendation".equals(codeString))
10765          return FHIRTypes.IMMUNIZATIONRECOMMENDATION;
10766        if ("ImplementationGuide".equals(codeString))
10767          return FHIRTypes.IMPLEMENTATIONGUIDE;
10768        if ("Ingredient".equals(codeString))
10769          return FHIRTypes.INGREDIENT;
10770        if ("InsurancePlan".equals(codeString))
10771          return FHIRTypes.INSURANCEPLAN;
10772        if ("InventoryItem".equals(codeString))
10773          return FHIRTypes.INVENTORYITEM;
10774        if ("InventoryReport".equals(codeString))
10775          return FHIRTypes.INVENTORYREPORT;
10776        if ("Invoice".equals(codeString))
10777          return FHIRTypes.INVOICE;
10778        if ("Library".equals(codeString))
10779          return FHIRTypes.LIBRARY;
10780        if ("Linkage".equals(codeString))
10781          return FHIRTypes.LINKAGE;
10782        if ("List".equals(codeString))
10783          return FHIRTypes.LIST;
10784        if ("Location".equals(codeString))
10785          return FHIRTypes.LOCATION;
10786        if ("ManufacturedItemDefinition".equals(codeString))
10787          return FHIRTypes.MANUFACTUREDITEMDEFINITION;
10788        if ("Measure".equals(codeString))
10789          return FHIRTypes.MEASURE;
10790        if ("MeasureReport".equals(codeString))
10791          return FHIRTypes.MEASUREREPORT;
10792        if ("Medication".equals(codeString))
10793          return FHIRTypes.MEDICATION;
10794        if ("MedicationAdministration".equals(codeString))
10795          return FHIRTypes.MEDICATIONADMINISTRATION;
10796        if ("MedicationDispense".equals(codeString))
10797          return FHIRTypes.MEDICATIONDISPENSE;
10798        if ("MedicationKnowledge".equals(codeString))
10799          return FHIRTypes.MEDICATIONKNOWLEDGE;
10800        if ("MedicationRequest".equals(codeString))
10801          return FHIRTypes.MEDICATIONREQUEST;
10802        if ("MedicationStatement".equals(codeString))
10803          return FHIRTypes.MEDICATIONSTATEMENT;
10804        if ("MedicinalProductDefinition".equals(codeString))
10805          return FHIRTypes.MEDICINALPRODUCTDEFINITION;
10806        if ("MessageDefinition".equals(codeString))
10807          return FHIRTypes.MESSAGEDEFINITION;
10808        if ("MessageHeader".equals(codeString))
10809          return FHIRTypes.MESSAGEHEADER;
10810        if ("MetadataResource".equals(codeString))
10811          return FHIRTypes.METADATARESOURCE;
10812        if ("MolecularSequence".equals(codeString))
10813          return FHIRTypes.MOLECULARSEQUENCE;
10814        if ("NamingSystem".equals(codeString))
10815          return FHIRTypes.NAMINGSYSTEM;
10816        if ("NutritionIntake".equals(codeString))
10817          return FHIRTypes.NUTRITIONINTAKE;
10818        if ("NutritionOrder".equals(codeString))
10819          return FHIRTypes.NUTRITIONORDER;
10820        if ("NutritionProduct".equals(codeString))
10821          return FHIRTypes.NUTRITIONPRODUCT;
10822        if ("Observation".equals(codeString))
10823          return FHIRTypes.OBSERVATION;
10824        if ("ObservationDefinition".equals(codeString))
10825          return FHIRTypes.OBSERVATIONDEFINITION;
10826        if ("OperationDefinition".equals(codeString))
10827          return FHIRTypes.OPERATIONDEFINITION;
10828        if ("OperationOutcome".equals(codeString))
10829          return FHIRTypes.OPERATIONOUTCOME;
10830        if ("Organization".equals(codeString))
10831          return FHIRTypes.ORGANIZATION;
10832        if ("OrganizationAffiliation".equals(codeString))
10833          return FHIRTypes.ORGANIZATIONAFFILIATION;
10834        if ("PackagedProductDefinition".equals(codeString))
10835          return FHIRTypes.PACKAGEDPRODUCTDEFINITION;
10836        if ("Patient".equals(codeString))
10837          return FHIRTypes.PATIENT;
10838        if ("PaymentNotice".equals(codeString))
10839          return FHIRTypes.PAYMENTNOTICE;
10840        if ("PaymentReconciliation".equals(codeString))
10841          return FHIRTypes.PAYMENTRECONCILIATION;
10842        if ("Permission".equals(codeString))
10843          return FHIRTypes.PERMISSION;
10844        if ("Person".equals(codeString))
10845          return FHIRTypes.PERSON;
10846        if ("PlanDefinition".equals(codeString))
10847          return FHIRTypes.PLANDEFINITION;
10848        if ("Practitioner".equals(codeString))
10849          return FHIRTypes.PRACTITIONER;
10850        if ("PractitionerRole".equals(codeString))
10851          return FHIRTypes.PRACTITIONERROLE;
10852        if ("Procedure".equals(codeString))
10853          return FHIRTypes.PROCEDURE;
10854        if ("Provenance".equals(codeString))
10855          return FHIRTypes.PROVENANCE;
10856        if ("Questionnaire".equals(codeString))
10857          return FHIRTypes.QUESTIONNAIRE;
10858        if ("QuestionnaireResponse".equals(codeString))
10859          return FHIRTypes.QUESTIONNAIRERESPONSE;
10860        if ("RegulatedAuthorization".equals(codeString))
10861          return FHIRTypes.REGULATEDAUTHORIZATION;
10862        if ("RelatedPerson".equals(codeString))
10863          return FHIRTypes.RELATEDPERSON;
10864        if ("RequestOrchestration".equals(codeString))
10865          return FHIRTypes.REQUESTORCHESTRATION;
10866        if ("Requirements".equals(codeString))
10867          return FHIRTypes.REQUIREMENTS;
10868        if ("ResearchStudy".equals(codeString))
10869          return FHIRTypes.RESEARCHSTUDY;
10870        if ("ResearchSubject".equals(codeString))
10871          return FHIRTypes.RESEARCHSUBJECT;
10872        if ("RiskAssessment".equals(codeString))
10873          return FHIRTypes.RISKASSESSMENT;
10874        if ("Schedule".equals(codeString))
10875          return FHIRTypes.SCHEDULE;
10876        if ("SearchParameter".equals(codeString))
10877          return FHIRTypes.SEARCHPARAMETER;
10878        if ("ServiceRequest".equals(codeString))
10879          return FHIRTypes.SERVICEREQUEST;
10880        if ("Slot".equals(codeString))
10881          return FHIRTypes.SLOT;
10882        if ("Specimen".equals(codeString))
10883          return FHIRTypes.SPECIMEN;
10884        if ("SpecimenDefinition".equals(codeString))
10885          return FHIRTypes.SPECIMENDEFINITION;
10886        if ("StructureDefinition".equals(codeString))
10887          return FHIRTypes.STRUCTUREDEFINITION;
10888        if ("StructureMap".equals(codeString))
10889          return FHIRTypes.STRUCTUREMAP;
10890        if ("Subscription".equals(codeString))
10891          return FHIRTypes.SUBSCRIPTION;
10892        if ("SubscriptionStatus".equals(codeString))
10893          return FHIRTypes.SUBSCRIPTIONSTATUS;
10894        if ("SubscriptionTopic".equals(codeString))
10895          return FHIRTypes.SUBSCRIPTIONTOPIC;
10896        if ("Substance".equals(codeString))
10897          return FHIRTypes.SUBSTANCE;
10898        if ("SubstanceDefinition".equals(codeString))
10899          return FHIRTypes.SUBSTANCEDEFINITION;
10900        if ("SubstanceNucleicAcid".equals(codeString))
10901          return FHIRTypes.SUBSTANCENUCLEICACID;
10902        if ("SubstancePolymer".equals(codeString))
10903          return FHIRTypes.SUBSTANCEPOLYMER;
10904        if ("SubstanceProtein".equals(codeString))
10905          return FHIRTypes.SUBSTANCEPROTEIN;
10906        if ("SubstanceReferenceInformation".equals(codeString))
10907          return FHIRTypes.SUBSTANCEREFERENCEINFORMATION;
10908        if ("SubstanceSourceMaterial".equals(codeString))
10909          return FHIRTypes.SUBSTANCESOURCEMATERIAL;
10910        if ("SupplyDelivery".equals(codeString))
10911          return FHIRTypes.SUPPLYDELIVERY;
10912        if ("SupplyRequest".equals(codeString))
10913          return FHIRTypes.SUPPLYREQUEST;
10914        if ("Task".equals(codeString))
10915          return FHIRTypes.TASK;
10916        if ("TerminologyCapabilities".equals(codeString))
10917          return FHIRTypes.TERMINOLOGYCAPABILITIES;
10918        if ("TestPlan".equals(codeString))
10919          return FHIRTypes.TESTPLAN;
10920        if ("TestReport".equals(codeString))
10921          return FHIRTypes.TESTREPORT;
10922        if ("TestScript".equals(codeString))
10923          return FHIRTypes.TESTSCRIPT;
10924        if ("Transport".equals(codeString))
10925          return FHIRTypes.TRANSPORT;
10926        if ("ValueSet".equals(codeString))
10927          return FHIRTypes.VALUESET;
10928        if ("VerificationResult".equals(codeString))
10929          return FHIRTypes.VERIFICATIONRESULT;
10930        if ("VisionPrescription".equals(codeString))
10931          return FHIRTypes.VISIONPRESCRIPTION;
10932        if ("Parameters".equals(codeString))
10933          return FHIRTypes.PARAMETERS;
10934        throw new IllegalArgumentException("Unknown FHIRTypes code '"+codeString+"'");
10935        }
10936
10937        public Enumeration<FHIRTypes> fromType(PrimitiveType<?> code) throws FHIRException {
10938          if (code == null)
10939            return null;
10940          if (code.isEmpty())
10941            return new Enumeration<FHIRTypes>(this, FHIRTypes.NULL, code);
10942          String codeString = ((PrimitiveType) code).asStringValue();
10943          if (codeString == null || "".equals(codeString))
10944            return new Enumeration<FHIRTypes>(this, FHIRTypes.NULL, code);
10945        if ("Base".equals(codeString))
10946          return new Enumeration<FHIRTypes>(this, FHIRTypes.BASE, code);
10947        if ("Element".equals(codeString))
10948          return new Enumeration<FHIRTypes>(this, FHIRTypes.ELEMENT, code);
10949        if ("BackboneElement".equals(codeString))
10950          return new Enumeration<FHIRTypes>(this, FHIRTypes.BACKBONEELEMENT, code);
10951        if ("DataType".equals(codeString))
10952          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATATYPE, code);
10953        if ("Address".equals(codeString))
10954          return new Enumeration<FHIRTypes>(this, FHIRTypes.ADDRESS, code);
10955        if ("Annotation".equals(codeString))
10956          return new Enumeration<FHIRTypes>(this, FHIRTypes.ANNOTATION, code);
10957        if ("Attachment".equals(codeString))
10958          return new Enumeration<FHIRTypes>(this, FHIRTypes.ATTACHMENT, code);
10959        if ("Availability".equals(codeString))
10960          return new Enumeration<FHIRTypes>(this, FHIRTypes.AVAILABILITY, code);
10961        if ("BackboneType".equals(codeString))
10962          return new Enumeration<FHIRTypes>(this, FHIRTypes.BACKBONETYPE, code);
10963        if ("Dosage".equals(codeString))
10964          return new Enumeration<FHIRTypes>(this, FHIRTypes.DOSAGE, code);
10965        if ("ElementDefinition".equals(codeString))
10966          return new Enumeration<FHIRTypes>(this, FHIRTypes.ELEMENTDEFINITION, code);
10967        if ("MarketingStatus".equals(codeString))
10968          return new Enumeration<FHIRTypes>(this, FHIRTypes.MARKETINGSTATUS, code);
10969        if ("ProductShelfLife".equals(codeString))
10970          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRODUCTSHELFLIFE, code);
10971        if ("Timing".equals(codeString))
10972          return new Enumeration<FHIRTypes>(this, FHIRTypes.TIMING, code);
10973        if ("CodeableConcept".equals(codeString))
10974          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODEABLECONCEPT, code);
10975        if ("CodeableReference".equals(codeString))
10976          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODEABLEREFERENCE, code);
10977        if ("Coding".equals(codeString))
10978          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODING, code);
10979        if ("ContactDetail".equals(codeString))
10980          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTACTDETAIL, code);
10981        if ("ContactPoint".equals(codeString))
10982          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTACTPOINT, code);
10983        if ("Contributor".equals(codeString))
10984          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTRIBUTOR, code);
10985        if ("DataRequirement".equals(codeString))
10986          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATAREQUIREMENT, code);
10987        if ("Expression".equals(codeString))
10988          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXPRESSION, code);
10989        if ("ExtendedContactDetail".equals(codeString))
10990          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXTENDEDCONTACTDETAIL, code);
10991        if ("Extension".equals(codeString))
10992          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXTENSION, code);
10993        if ("HumanName".equals(codeString))
10994          return new Enumeration<FHIRTypes>(this, FHIRTypes.HUMANNAME, code);
10995        if ("Identifier".equals(codeString))
10996          return new Enumeration<FHIRTypes>(this, FHIRTypes.IDENTIFIER, code);
10997        if ("Meta".equals(codeString))
10998          return new Enumeration<FHIRTypes>(this, FHIRTypes.META, code);
10999        if ("MonetaryComponent".equals(codeString))
11000          return new Enumeration<FHIRTypes>(this, FHIRTypes.MONETARYCOMPONENT, code);
11001        if ("Money".equals(codeString))
11002          return new Enumeration<FHIRTypes>(this, FHIRTypes.MONEY, code);
11003        if ("Narrative".equals(codeString))
11004          return new Enumeration<FHIRTypes>(this, FHIRTypes.NARRATIVE, code);
11005        if ("ParameterDefinition".equals(codeString))
11006          return new Enumeration<FHIRTypes>(this, FHIRTypes.PARAMETERDEFINITION, code);
11007        if ("Period".equals(codeString))
11008          return new Enumeration<FHIRTypes>(this, FHIRTypes.PERIOD, code);
11009        if ("PrimitiveType".equals(codeString))
11010          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRIMITIVETYPE, code);
11011        if ("base64Binary".equals(codeString))
11012          return new Enumeration<FHIRTypes>(this, FHIRTypes.BASE64BINARY, code);
11013        if ("boolean".equals(codeString))
11014          return new Enumeration<FHIRTypes>(this, FHIRTypes.BOOLEAN, code);
11015        if ("date".equals(codeString))
11016          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATE, code);
11017        if ("dateTime".equals(codeString))
11018          return new Enumeration<FHIRTypes>(this, FHIRTypes.DATETIME, code);
11019        if ("decimal".equals(codeString))
11020          return new Enumeration<FHIRTypes>(this, FHIRTypes.DECIMAL, code);
11021        if ("instant".equals(codeString))
11022          return new Enumeration<FHIRTypes>(this, FHIRTypes.INSTANT, code);
11023        if ("integer".equals(codeString))
11024          return new Enumeration<FHIRTypes>(this, FHIRTypes.INTEGER, code);
11025        if ("positiveInt".equals(codeString))
11026          return new Enumeration<FHIRTypes>(this, FHIRTypes.POSITIVEINT, code);
11027        if ("unsignedInt".equals(codeString))
11028          return new Enumeration<FHIRTypes>(this, FHIRTypes.UNSIGNEDINT, code);
11029        if ("integer64".equals(codeString))
11030          return new Enumeration<FHIRTypes>(this, FHIRTypes.INTEGER64, code);
11031        if ("string".equals(codeString))
11032          return new Enumeration<FHIRTypes>(this, FHIRTypes.STRING, code);
11033        if ("code".equals(codeString))
11034          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODE, code);
11035        if ("id".equals(codeString))
11036          return new Enumeration<FHIRTypes>(this, FHIRTypes.ID, code);
11037        if ("markdown".equals(codeString))
11038          return new Enumeration<FHIRTypes>(this, FHIRTypes.MARKDOWN, code);
11039        if ("time".equals(codeString))
11040          return new Enumeration<FHIRTypes>(this, FHIRTypes.TIME, code);
11041        if ("uri".equals(codeString))
11042          return new Enumeration<FHIRTypes>(this, FHIRTypes.URI, code);
11043        if ("canonical".equals(codeString))
11044          return new Enumeration<FHIRTypes>(this, FHIRTypes.CANONICAL, code);
11045        if ("oid".equals(codeString))
11046          return new Enumeration<FHIRTypes>(this, FHIRTypes.OID, code);
11047        if ("url".equals(codeString))
11048          return new Enumeration<FHIRTypes>(this, FHIRTypes.URL, code);
11049        if ("uuid".equals(codeString))
11050          return new Enumeration<FHIRTypes>(this, FHIRTypes.UUID, code);
11051        if ("Quantity".equals(codeString))
11052          return new Enumeration<FHIRTypes>(this, FHIRTypes.QUANTITY, code);
11053        if ("Age".equals(codeString))
11054          return new Enumeration<FHIRTypes>(this, FHIRTypes.AGE, code);
11055        if ("Count".equals(codeString))
11056          return new Enumeration<FHIRTypes>(this, FHIRTypes.COUNT, code);
11057        if ("Distance".equals(codeString))
11058          return new Enumeration<FHIRTypes>(this, FHIRTypes.DISTANCE, code);
11059        if ("Duration".equals(codeString))
11060          return new Enumeration<FHIRTypes>(this, FHIRTypes.DURATION, code);
11061        if ("Range".equals(codeString))
11062          return new Enumeration<FHIRTypes>(this, FHIRTypes.RANGE, code);
11063        if ("Ratio".equals(codeString))
11064          return new Enumeration<FHIRTypes>(this, FHIRTypes.RATIO, code);
11065        if ("RatioRange".equals(codeString))
11066          return new Enumeration<FHIRTypes>(this, FHIRTypes.RATIORANGE, code);
11067        if ("Reference".equals(codeString))
11068          return new Enumeration<FHIRTypes>(this, FHIRTypes.REFERENCE, code);
11069        if ("RelatedArtifact".equals(codeString))
11070          return new Enumeration<FHIRTypes>(this, FHIRTypes.RELATEDARTIFACT, code);
11071        if ("SampledData".equals(codeString))
11072          return new Enumeration<FHIRTypes>(this, FHIRTypes.SAMPLEDDATA, code);
11073        if ("Signature".equals(codeString))
11074          return new Enumeration<FHIRTypes>(this, FHIRTypes.SIGNATURE, code);
11075        if ("TriggerDefinition".equals(codeString))
11076          return new Enumeration<FHIRTypes>(this, FHIRTypes.TRIGGERDEFINITION, code);
11077        if ("UsageContext".equals(codeString))
11078          return new Enumeration<FHIRTypes>(this, FHIRTypes.USAGECONTEXT, code);
11079        if ("VirtualServiceDetail".equals(codeString))
11080          return new Enumeration<FHIRTypes>(this, FHIRTypes.VIRTUALSERVICEDETAIL, code);
11081        if ("xhtml".equals(codeString))
11082          return new Enumeration<FHIRTypes>(this, FHIRTypes.XHTML, code);
11083        if ("Resource".equals(codeString))
11084          return new Enumeration<FHIRTypes>(this, FHIRTypes.RESOURCE, code);
11085        if ("Binary".equals(codeString))
11086          return new Enumeration<FHIRTypes>(this, FHIRTypes.BINARY, code);
11087        if ("Bundle".equals(codeString))
11088          return new Enumeration<FHIRTypes>(this, FHIRTypes.BUNDLE, code);
11089        if ("DomainResource".equals(codeString))
11090          return new Enumeration<FHIRTypes>(this, FHIRTypes.DOMAINRESOURCE, code);
11091        if ("Account".equals(codeString))
11092          return new Enumeration<FHIRTypes>(this, FHIRTypes.ACCOUNT, code);
11093        if ("ActivityDefinition".equals(codeString))
11094          return new Enumeration<FHIRTypes>(this, FHIRTypes.ACTIVITYDEFINITION, code);
11095        if ("ActorDefinition".equals(codeString))
11096          return new Enumeration<FHIRTypes>(this, FHIRTypes.ACTORDEFINITION, code);
11097        if ("AdministrableProductDefinition".equals(codeString))
11098          return new Enumeration<FHIRTypes>(this, FHIRTypes.ADMINISTRABLEPRODUCTDEFINITION, code);
11099        if ("AdverseEvent".equals(codeString))
11100          return new Enumeration<FHIRTypes>(this, FHIRTypes.ADVERSEEVENT, code);
11101        if ("AllergyIntolerance".equals(codeString))
11102          return new Enumeration<FHIRTypes>(this, FHIRTypes.ALLERGYINTOLERANCE, code);
11103        if ("Appointment".equals(codeString))
11104          return new Enumeration<FHIRTypes>(this, FHIRTypes.APPOINTMENT, code);
11105        if ("AppointmentResponse".equals(codeString))
11106          return new Enumeration<FHIRTypes>(this, FHIRTypes.APPOINTMENTRESPONSE, code);
11107        if ("ArtifactAssessment".equals(codeString))
11108          return new Enumeration<FHIRTypes>(this, FHIRTypes.ARTIFACTASSESSMENT, code);
11109        if ("AuditEvent".equals(codeString))
11110          return new Enumeration<FHIRTypes>(this, FHIRTypes.AUDITEVENT, code);
11111        if ("Basic".equals(codeString))
11112          return new Enumeration<FHIRTypes>(this, FHIRTypes.BASIC, code);
11113        if ("BiologicallyDerivedProduct".equals(codeString))
11114          return new Enumeration<FHIRTypes>(this, FHIRTypes.BIOLOGICALLYDERIVEDPRODUCT, code);
11115        if ("BiologicallyDerivedProductDispense".equals(codeString))
11116          return new Enumeration<FHIRTypes>(this, FHIRTypes.BIOLOGICALLYDERIVEDPRODUCTDISPENSE, code);
11117        if ("BodyStructure".equals(codeString))
11118          return new Enumeration<FHIRTypes>(this, FHIRTypes.BODYSTRUCTURE, code);
11119        if ("CanonicalResource".equals(codeString))
11120          return new Enumeration<FHIRTypes>(this, FHIRTypes.CANONICALRESOURCE, code);
11121        if ("CapabilityStatement".equals(codeString))
11122          return new Enumeration<FHIRTypes>(this, FHIRTypes.CAPABILITYSTATEMENT, code);
11123        if ("CarePlan".equals(codeString))
11124          return new Enumeration<FHIRTypes>(this, FHIRTypes.CAREPLAN, code);
11125        if ("CareTeam".equals(codeString))
11126          return new Enumeration<FHIRTypes>(this, FHIRTypes.CARETEAM, code);
11127        if ("ChargeItem".equals(codeString))
11128          return new Enumeration<FHIRTypes>(this, FHIRTypes.CHARGEITEM, code);
11129        if ("ChargeItemDefinition".equals(codeString))
11130          return new Enumeration<FHIRTypes>(this, FHIRTypes.CHARGEITEMDEFINITION, code);
11131        if ("Citation".equals(codeString))
11132          return new Enumeration<FHIRTypes>(this, FHIRTypes.CITATION, code);
11133        if ("Claim".equals(codeString))
11134          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLAIM, code);
11135        if ("ClaimResponse".equals(codeString))
11136          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLAIMRESPONSE, code);
11137        if ("ClinicalImpression".equals(codeString))
11138          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLINICALIMPRESSION, code);
11139        if ("ClinicalUseDefinition".equals(codeString))
11140          return new Enumeration<FHIRTypes>(this, FHIRTypes.CLINICALUSEDEFINITION, code);
11141        if ("CodeSystem".equals(codeString))
11142          return new Enumeration<FHIRTypes>(this, FHIRTypes.CODESYSTEM, code);
11143        if ("Communication".equals(codeString))
11144          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMMUNICATION, code);
11145        if ("CommunicationRequest".equals(codeString))
11146          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMMUNICATIONREQUEST, code);
11147        if ("CompartmentDefinition".equals(codeString))
11148          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMPARTMENTDEFINITION, code);
11149        if ("Composition".equals(codeString))
11150          return new Enumeration<FHIRTypes>(this, FHIRTypes.COMPOSITION, code);
11151        if ("ConceptMap".equals(codeString))
11152          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONCEPTMAP, code);
11153        if ("Condition".equals(codeString))
11154          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONDITION, code);
11155        if ("ConditionDefinition".equals(codeString))
11156          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONDITIONDEFINITION, code);
11157        if ("Consent".equals(codeString))
11158          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONSENT, code);
11159        if ("Contract".equals(codeString))
11160          return new Enumeration<FHIRTypes>(this, FHIRTypes.CONTRACT, code);
11161        if ("Coverage".equals(codeString))
11162          return new Enumeration<FHIRTypes>(this, FHIRTypes.COVERAGE, code);
11163        if ("CoverageEligibilityRequest".equals(codeString))
11164          return new Enumeration<FHIRTypes>(this, FHIRTypes.COVERAGEELIGIBILITYREQUEST, code);
11165        if ("CoverageEligibilityResponse".equals(codeString))
11166          return new Enumeration<FHIRTypes>(this, FHIRTypes.COVERAGEELIGIBILITYRESPONSE, code);
11167        if ("DetectedIssue".equals(codeString))
11168          return new Enumeration<FHIRTypes>(this, FHIRTypes.DETECTEDISSUE, code);
11169        if ("Device".equals(codeString))
11170          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICE, code);
11171        if ("DeviceAssociation".equals(codeString))
11172          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEASSOCIATION, code);
11173        if ("DeviceDefinition".equals(codeString))
11174          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEDEFINITION, code);
11175        if ("DeviceDispense".equals(codeString))
11176          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEDISPENSE, code);
11177        if ("DeviceMetric".equals(codeString))
11178          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEMETRIC, code);
11179        if ("DeviceRequest".equals(codeString))
11180          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEREQUEST, code);
11181        if ("DeviceUsage".equals(codeString))
11182          return new Enumeration<FHIRTypes>(this, FHIRTypes.DEVICEUSAGE, code);
11183        if ("DiagnosticReport".equals(codeString))
11184          return new Enumeration<FHIRTypes>(this, FHIRTypes.DIAGNOSTICREPORT, code);
11185        if ("DocumentReference".equals(codeString))
11186          return new Enumeration<FHIRTypes>(this, FHIRTypes.DOCUMENTREFERENCE, code);
11187        if ("Encounter".equals(codeString))
11188          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENCOUNTER, code);
11189        if ("EncounterHistory".equals(codeString))
11190          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENCOUNTERHISTORY, code);
11191        if ("Endpoint".equals(codeString))
11192          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENDPOINT, code);
11193        if ("EnrollmentRequest".equals(codeString))
11194          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENROLLMENTREQUEST, code);
11195        if ("EnrollmentResponse".equals(codeString))
11196          return new Enumeration<FHIRTypes>(this, FHIRTypes.ENROLLMENTRESPONSE, code);
11197        if ("EpisodeOfCare".equals(codeString))
11198          return new Enumeration<FHIRTypes>(this, FHIRTypes.EPISODEOFCARE, code);
11199        if ("EventDefinition".equals(codeString))
11200          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVENTDEFINITION, code);
11201        if ("Evidence".equals(codeString))
11202          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVIDENCE, code);
11203        if ("EvidenceReport".equals(codeString))
11204          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVIDENCEREPORT, code);
11205        if ("EvidenceVariable".equals(codeString))
11206          return new Enumeration<FHIRTypes>(this, FHIRTypes.EVIDENCEVARIABLE, code);
11207        if ("ExampleScenario".equals(codeString))
11208          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXAMPLESCENARIO, code);
11209        if ("ExplanationOfBenefit".equals(codeString))
11210          return new Enumeration<FHIRTypes>(this, FHIRTypes.EXPLANATIONOFBENEFIT, code);
11211        if ("FamilyMemberHistory".equals(codeString))
11212          return new Enumeration<FHIRTypes>(this, FHIRTypes.FAMILYMEMBERHISTORY, code);
11213        if ("Flag".equals(codeString))
11214          return new Enumeration<FHIRTypes>(this, FHIRTypes.FLAG, code);
11215        if ("FormularyItem".equals(codeString))
11216          return new Enumeration<FHIRTypes>(this, FHIRTypes.FORMULARYITEM, code);
11217        if ("GenomicStudy".equals(codeString))
11218          return new Enumeration<FHIRTypes>(this, FHIRTypes.GENOMICSTUDY, code);
11219        if ("Goal".equals(codeString))
11220          return new Enumeration<FHIRTypes>(this, FHIRTypes.GOAL, code);
11221        if ("GraphDefinition".equals(codeString))
11222          return new Enumeration<FHIRTypes>(this, FHIRTypes.GRAPHDEFINITION, code);
11223        if ("Group".equals(codeString))
11224          return new Enumeration<FHIRTypes>(this, FHIRTypes.GROUP, code);
11225        if ("GuidanceResponse".equals(codeString))
11226          return new Enumeration<FHIRTypes>(this, FHIRTypes.GUIDANCERESPONSE, code);
11227        if ("HealthcareService".equals(codeString))
11228          return new Enumeration<FHIRTypes>(this, FHIRTypes.HEALTHCARESERVICE, code);
11229        if ("ImagingSelection".equals(codeString))
11230          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMAGINGSELECTION, code);
11231        if ("ImagingStudy".equals(codeString))
11232          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMAGINGSTUDY, code);
11233        if ("Immunization".equals(codeString))
11234          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMMUNIZATION, code);
11235        if ("ImmunizationEvaluation".equals(codeString))
11236          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMMUNIZATIONEVALUATION, code);
11237        if ("ImmunizationRecommendation".equals(codeString))
11238          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMMUNIZATIONRECOMMENDATION, code);
11239        if ("ImplementationGuide".equals(codeString))
11240          return new Enumeration<FHIRTypes>(this, FHIRTypes.IMPLEMENTATIONGUIDE, code);
11241        if ("Ingredient".equals(codeString))
11242          return new Enumeration<FHIRTypes>(this, FHIRTypes.INGREDIENT, code);
11243        if ("InsurancePlan".equals(codeString))
11244          return new Enumeration<FHIRTypes>(this, FHIRTypes.INSURANCEPLAN, code);
11245        if ("InventoryItem".equals(codeString))
11246          return new Enumeration<FHIRTypes>(this, FHIRTypes.INVENTORYITEM, code);
11247        if ("InventoryReport".equals(codeString))
11248          return new Enumeration<FHIRTypes>(this, FHIRTypes.INVENTORYREPORT, code);
11249        if ("Invoice".equals(codeString))
11250          return new Enumeration<FHIRTypes>(this, FHIRTypes.INVOICE, code);
11251        if ("Library".equals(codeString))
11252          return new Enumeration<FHIRTypes>(this, FHIRTypes.LIBRARY, code);
11253        if ("Linkage".equals(codeString))
11254          return new Enumeration<FHIRTypes>(this, FHIRTypes.LINKAGE, code);
11255        if ("List".equals(codeString))
11256          return new Enumeration<FHIRTypes>(this, FHIRTypes.LIST, code);
11257        if ("Location".equals(codeString))
11258          return new Enumeration<FHIRTypes>(this, FHIRTypes.LOCATION, code);
11259        if ("ManufacturedItemDefinition".equals(codeString))
11260          return new Enumeration<FHIRTypes>(this, FHIRTypes.MANUFACTUREDITEMDEFINITION, code);
11261        if ("Measure".equals(codeString))
11262          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEASURE, code);
11263        if ("MeasureReport".equals(codeString))
11264          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEASUREREPORT, code);
11265        if ("Medication".equals(codeString))
11266          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATION, code);
11267        if ("MedicationAdministration".equals(codeString))
11268          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONADMINISTRATION, code);
11269        if ("MedicationDispense".equals(codeString))
11270          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONDISPENSE, code);
11271        if ("MedicationKnowledge".equals(codeString))
11272          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONKNOWLEDGE, code);
11273        if ("MedicationRequest".equals(codeString))
11274          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONREQUEST, code);
11275        if ("MedicationStatement".equals(codeString))
11276          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICATIONSTATEMENT, code);
11277        if ("MedicinalProductDefinition".equals(codeString))
11278          return new Enumeration<FHIRTypes>(this, FHIRTypes.MEDICINALPRODUCTDEFINITION, code);
11279        if ("MessageDefinition".equals(codeString))
11280          return new Enumeration<FHIRTypes>(this, FHIRTypes.MESSAGEDEFINITION, code);
11281        if ("MessageHeader".equals(codeString))
11282          return new Enumeration<FHIRTypes>(this, FHIRTypes.MESSAGEHEADER, code);
11283        if ("MetadataResource".equals(codeString))
11284          return new Enumeration<FHIRTypes>(this, FHIRTypes.METADATARESOURCE, code);
11285        if ("MolecularSequence".equals(codeString))
11286          return new Enumeration<FHIRTypes>(this, FHIRTypes.MOLECULARSEQUENCE, code);
11287        if ("NamingSystem".equals(codeString))
11288          return new Enumeration<FHIRTypes>(this, FHIRTypes.NAMINGSYSTEM, code);
11289        if ("NutritionIntake".equals(codeString))
11290          return new Enumeration<FHIRTypes>(this, FHIRTypes.NUTRITIONINTAKE, code);
11291        if ("NutritionOrder".equals(codeString))
11292          return new Enumeration<FHIRTypes>(this, FHIRTypes.NUTRITIONORDER, code);
11293        if ("NutritionProduct".equals(codeString))
11294          return new Enumeration<FHIRTypes>(this, FHIRTypes.NUTRITIONPRODUCT, code);
11295        if ("Observation".equals(codeString))
11296          return new Enumeration<FHIRTypes>(this, FHIRTypes.OBSERVATION, code);
11297        if ("ObservationDefinition".equals(codeString))
11298          return new Enumeration<FHIRTypes>(this, FHIRTypes.OBSERVATIONDEFINITION, code);
11299        if ("OperationDefinition".equals(codeString))
11300          return new Enumeration<FHIRTypes>(this, FHIRTypes.OPERATIONDEFINITION, code);
11301        if ("OperationOutcome".equals(codeString))
11302          return new Enumeration<FHIRTypes>(this, FHIRTypes.OPERATIONOUTCOME, code);
11303        if ("Organization".equals(codeString))
11304          return new Enumeration<FHIRTypes>(this, FHIRTypes.ORGANIZATION, code);
11305        if ("OrganizationAffiliation".equals(codeString))
11306          return new Enumeration<FHIRTypes>(this, FHIRTypes.ORGANIZATIONAFFILIATION, code);
11307        if ("PackagedProductDefinition".equals(codeString))
11308          return new Enumeration<FHIRTypes>(this, FHIRTypes.PACKAGEDPRODUCTDEFINITION, code);
11309        if ("Patient".equals(codeString))
11310          return new Enumeration<FHIRTypes>(this, FHIRTypes.PATIENT, code);
11311        if ("PaymentNotice".equals(codeString))
11312          return new Enumeration<FHIRTypes>(this, FHIRTypes.PAYMENTNOTICE, code);
11313        if ("PaymentReconciliation".equals(codeString))
11314          return new Enumeration<FHIRTypes>(this, FHIRTypes.PAYMENTRECONCILIATION, code);
11315        if ("Permission".equals(codeString))
11316          return new Enumeration<FHIRTypes>(this, FHIRTypes.PERMISSION, code);
11317        if ("Person".equals(codeString))
11318          return new Enumeration<FHIRTypes>(this, FHIRTypes.PERSON, code);
11319        if ("PlanDefinition".equals(codeString))
11320          return new Enumeration<FHIRTypes>(this, FHIRTypes.PLANDEFINITION, code);
11321        if ("Practitioner".equals(codeString))
11322          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRACTITIONER, code);
11323        if ("PractitionerRole".equals(codeString))
11324          return new Enumeration<FHIRTypes>(this, FHIRTypes.PRACTITIONERROLE, code);
11325        if ("Procedure".equals(codeString))
11326          return new Enumeration<FHIRTypes>(this, FHIRTypes.PROCEDURE, code);
11327        if ("Provenance".equals(codeString))
11328          return new Enumeration<FHIRTypes>(this, FHIRTypes.PROVENANCE, code);
11329        if ("Questionnaire".equals(codeString))
11330          return new Enumeration<FHIRTypes>(this, FHIRTypes.QUESTIONNAIRE, code);
11331        if ("QuestionnaireResponse".equals(codeString))
11332          return new Enumeration<FHIRTypes>(this, FHIRTypes.QUESTIONNAIRERESPONSE, code);
11333        if ("RegulatedAuthorization".equals(codeString))
11334          return new Enumeration<FHIRTypes>(this, FHIRTypes.REGULATEDAUTHORIZATION, code);
11335        if ("RelatedPerson".equals(codeString))
11336          return new Enumeration<FHIRTypes>(this, FHIRTypes.RELATEDPERSON, code);
11337        if ("RequestOrchestration".equals(codeString))
11338          return new Enumeration<FHIRTypes>(this, FHIRTypes.REQUESTORCHESTRATION, code);
11339        if ("Requirements".equals(codeString))
11340          return new Enumeration<FHIRTypes>(this, FHIRTypes.REQUIREMENTS, code);
11341        if ("ResearchStudy".equals(codeString))
11342          return new Enumeration<FHIRTypes>(this, FHIRTypes.RESEARCHSTUDY, code);
11343        if ("ResearchSubject".equals(codeString))
11344          return new Enumeration<FHIRTypes>(this, FHIRTypes.RESEARCHSUBJECT, code);
11345        if ("RiskAssessment".equals(codeString))
11346          return new Enumeration<FHIRTypes>(this, FHIRTypes.RISKASSESSMENT, code);
11347        if ("Schedule".equals(codeString))
11348          return new Enumeration<FHIRTypes>(this, FHIRTypes.SCHEDULE, code);
11349        if ("SearchParameter".equals(codeString))
11350          return new Enumeration<FHIRTypes>(this, FHIRTypes.SEARCHPARAMETER, code);
11351        if ("ServiceRequest".equals(codeString))
11352          return new Enumeration<FHIRTypes>(this, FHIRTypes.SERVICEREQUEST, code);
11353        if ("Slot".equals(codeString))
11354          return new Enumeration<FHIRTypes>(this, FHIRTypes.SLOT, code);
11355        if ("Specimen".equals(codeString))
11356          return new Enumeration<FHIRTypes>(this, FHIRTypes.SPECIMEN, code);
11357        if ("SpecimenDefinition".equals(codeString))
11358          return new Enumeration<FHIRTypes>(this, FHIRTypes.SPECIMENDEFINITION, code);
11359        if ("StructureDefinition".equals(codeString))
11360          return new Enumeration<FHIRTypes>(this, FHIRTypes.STRUCTUREDEFINITION, code);
11361        if ("StructureMap".equals(codeString))
11362          return new Enumeration<FHIRTypes>(this, FHIRTypes.STRUCTUREMAP, code);
11363        if ("Subscription".equals(codeString))
11364          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSCRIPTION, code);
11365        if ("SubscriptionStatus".equals(codeString))
11366          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSCRIPTIONSTATUS, code);
11367        if ("SubscriptionTopic".equals(codeString))
11368          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSCRIPTIONTOPIC, code);
11369        if ("Substance".equals(codeString))
11370          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCE, code);
11371        if ("SubstanceDefinition".equals(codeString))
11372          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEDEFINITION, code);
11373        if ("SubstanceNucleicAcid".equals(codeString))
11374          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCENUCLEICACID, code);
11375        if ("SubstancePolymer".equals(codeString))
11376          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEPOLYMER, code);
11377        if ("SubstanceProtein".equals(codeString))
11378          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEPROTEIN, code);
11379        if ("SubstanceReferenceInformation".equals(codeString))
11380          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCEREFERENCEINFORMATION, code);
11381        if ("SubstanceSourceMaterial".equals(codeString))
11382          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUBSTANCESOURCEMATERIAL, code);
11383        if ("SupplyDelivery".equals(codeString))
11384          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUPPLYDELIVERY, code);
11385        if ("SupplyRequest".equals(codeString))
11386          return new Enumeration<FHIRTypes>(this, FHIRTypes.SUPPLYREQUEST, code);
11387        if ("Task".equals(codeString))
11388          return new Enumeration<FHIRTypes>(this, FHIRTypes.TASK, code);
11389        if ("TerminologyCapabilities".equals(codeString))
11390          return new Enumeration<FHIRTypes>(this, FHIRTypes.TERMINOLOGYCAPABILITIES, code);
11391        if ("TestPlan".equals(codeString))
11392          return new Enumeration<FHIRTypes>(this, FHIRTypes.TESTPLAN, code);
11393        if ("TestReport".equals(codeString))
11394          return new Enumeration<FHIRTypes>(this, FHIRTypes.TESTREPORT, code);
11395        if ("TestScript".equals(codeString))
11396          return new Enumeration<FHIRTypes>(this, FHIRTypes.TESTSCRIPT, code);
11397        if ("Transport".equals(codeString))
11398          return new Enumeration<FHIRTypes>(this, FHIRTypes.TRANSPORT, code);
11399        if ("ValueSet".equals(codeString))
11400          return new Enumeration<FHIRTypes>(this, FHIRTypes.VALUESET, code);
11401        if ("VerificationResult".equals(codeString))
11402          return new Enumeration<FHIRTypes>(this, FHIRTypes.VERIFICATIONRESULT, code);
11403        if ("VisionPrescription".equals(codeString))
11404          return new Enumeration<FHIRTypes>(this, FHIRTypes.VISIONPRESCRIPTION, code);
11405        if ("Parameters".equals(codeString))
11406          return new Enumeration<FHIRTypes>(this, FHIRTypes.PARAMETERS, code);
11407        throw new FHIRException("Unknown FHIRTypes code '"+codeString+"'");
11408        }
11409    public String toCode(FHIRTypes code) {
11410       if (code == FHIRTypes.NULL)
11411           return null;
11412       if (code == FHIRTypes.BASE)
11413        return "Base";
11414      if (code == FHIRTypes.ELEMENT)
11415        return "Element";
11416      if (code == FHIRTypes.BACKBONEELEMENT)
11417        return "BackboneElement";
11418      if (code == FHIRTypes.DATATYPE)
11419        return "DataType";
11420      if (code == FHIRTypes.ADDRESS)
11421        return "Address";
11422      if (code == FHIRTypes.ANNOTATION)
11423        return "Annotation";
11424      if (code == FHIRTypes.ATTACHMENT)
11425        return "Attachment";
11426      if (code == FHIRTypes.AVAILABILITY)
11427        return "Availability";
11428      if (code == FHIRTypes.BACKBONETYPE)
11429        return "BackboneType";
11430      if (code == FHIRTypes.DOSAGE)
11431        return "Dosage";
11432      if (code == FHIRTypes.ELEMENTDEFINITION)
11433        return "ElementDefinition";
11434      if (code == FHIRTypes.MARKETINGSTATUS)
11435        return "MarketingStatus";
11436      if (code == FHIRTypes.PRODUCTSHELFLIFE)
11437        return "ProductShelfLife";
11438      if (code == FHIRTypes.TIMING)
11439        return "Timing";
11440      if (code == FHIRTypes.CODEABLECONCEPT)
11441        return "CodeableConcept";
11442      if (code == FHIRTypes.CODEABLEREFERENCE)
11443        return "CodeableReference";
11444      if (code == FHIRTypes.CODING)
11445        return "Coding";
11446      if (code == FHIRTypes.CONTACTDETAIL)
11447        return "ContactDetail";
11448      if (code == FHIRTypes.CONTACTPOINT)
11449        return "ContactPoint";
11450      if (code == FHIRTypes.CONTRIBUTOR)
11451        return "Contributor";
11452      if (code == FHIRTypes.DATAREQUIREMENT)
11453        return "DataRequirement";
11454      if (code == FHIRTypes.EXPRESSION)
11455        return "Expression";
11456      if (code == FHIRTypes.EXTENDEDCONTACTDETAIL)
11457        return "ExtendedContactDetail";
11458      if (code == FHIRTypes.EXTENSION)
11459        return "Extension";
11460      if (code == FHIRTypes.HUMANNAME)
11461        return "HumanName";
11462      if (code == FHIRTypes.IDENTIFIER)
11463        return "Identifier";
11464      if (code == FHIRTypes.META)
11465        return "Meta";
11466      if (code == FHIRTypes.MONETARYCOMPONENT)
11467        return "MonetaryComponent";
11468      if (code == FHIRTypes.MONEY)
11469        return "Money";
11470      if (code == FHIRTypes.NARRATIVE)
11471        return "Narrative";
11472      if (code == FHIRTypes.PARAMETERDEFINITION)
11473        return "ParameterDefinition";
11474      if (code == FHIRTypes.PERIOD)
11475        return "Period";
11476      if (code == FHIRTypes.PRIMITIVETYPE)
11477        return "PrimitiveType";
11478      if (code == FHIRTypes.BASE64BINARY)
11479        return "base64Binary";
11480      if (code == FHIRTypes.BOOLEAN)
11481        return "boolean";
11482      if (code == FHIRTypes.DATE)
11483        return "date";
11484      if (code == FHIRTypes.DATETIME)
11485        return "dateTime";
11486      if (code == FHIRTypes.DECIMAL)
11487        return "decimal";
11488      if (code == FHIRTypes.INSTANT)
11489        return "instant";
11490      if (code == FHIRTypes.INTEGER)
11491        return "integer";
11492      if (code == FHIRTypes.POSITIVEINT)
11493        return "positiveInt";
11494      if (code == FHIRTypes.UNSIGNEDINT)
11495        return "unsignedInt";
11496      if (code == FHIRTypes.INTEGER64)
11497        return "integer64";
11498      if (code == FHIRTypes.STRING)
11499        return "string";
11500      if (code == FHIRTypes.CODE)
11501        return "code";
11502      if (code == FHIRTypes.ID)
11503        return "id";
11504      if (code == FHIRTypes.MARKDOWN)
11505        return "markdown";
11506      if (code == FHIRTypes.TIME)
11507        return "time";
11508      if (code == FHIRTypes.URI)
11509        return "uri";
11510      if (code == FHIRTypes.CANONICAL)
11511        return "canonical";
11512      if (code == FHIRTypes.OID)
11513        return "oid";
11514      if (code == FHIRTypes.URL)
11515        return "url";
11516      if (code == FHIRTypes.UUID)
11517        return "uuid";
11518      if (code == FHIRTypes.QUANTITY)
11519        return "Quantity";
11520      if (code == FHIRTypes.AGE)
11521        return "Age";
11522      if (code == FHIRTypes.COUNT)
11523        return "Count";
11524      if (code == FHIRTypes.DISTANCE)
11525        return "Distance";
11526      if (code == FHIRTypes.DURATION)
11527        return "Duration";
11528      if (code == FHIRTypes.RANGE)
11529        return "Range";
11530      if (code == FHIRTypes.RATIO)
11531        return "Ratio";
11532      if (code == FHIRTypes.RATIORANGE)
11533        return "RatioRange";
11534      if (code == FHIRTypes.REFERENCE)
11535        return "Reference";
11536      if (code == FHIRTypes.RELATEDARTIFACT)
11537        return "RelatedArtifact";
11538      if (code == FHIRTypes.SAMPLEDDATA)
11539        return "SampledData";
11540      if (code == FHIRTypes.SIGNATURE)
11541        return "Signature";
11542      if (code == FHIRTypes.TRIGGERDEFINITION)
11543        return "TriggerDefinition";
11544      if (code == FHIRTypes.USAGECONTEXT)
11545        return "UsageContext";
11546      if (code == FHIRTypes.VIRTUALSERVICEDETAIL)
11547        return "VirtualServiceDetail";
11548      if (code == FHIRTypes.XHTML)
11549        return "xhtml";
11550      if (code == FHIRTypes.RESOURCE)
11551        return "Resource";
11552      if (code == FHIRTypes.BINARY)
11553        return "Binary";
11554      if (code == FHIRTypes.BUNDLE)
11555        return "Bundle";
11556      if (code == FHIRTypes.DOMAINRESOURCE)
11557        return "DomainResource";
11558      if (code == FHIRTypes.ACCOUNT)
11559        return "Account";
11560      if (code == FHIRTypes.ACTIVITYDEFINITION)
11561        return "ActivityDefinition";
11562      if (code == FHIRTypes.ACTORDEFINITION)
11563        return "ActorDefinition";
11564      if (code == FHIRTypes.ADMINISTRABLEPRODUCTDEFINITION)
11565        return "AdministrableProductDefinition";
11566      if (code == FHIRTypes.ADVERSEEVENT)
11567        return "AdverseEvent";
11568      if (code == FHIRTypes.ALLERGYINTOLERANCE)
11569        return "AllergyIntolerance";
11570      if (code == FHIRTypes.APPOINTMENT)
11571        return "Appointment";
11572      if (code == FHIRTypes.APPOINTMENTRESPONSE)
11573        return "AppointmentResponse";
11574      if (code == FHIRTypes.ARTIFACTASSESSMENT)
11575        return "ArtifactAssessment";
11576      if (code == FHIRTypes.AUDITEVENT)
11577        return "AuditEvent";
11578      if (code == FHIRTypes.BASIC)
11579        return "Basic";
11580      if (code == FHIRTypes.BIOLOGICALLYDERIVEDPRODUCT)
11581        return "BiologicallyDerivedProduct";
11582      if (code == FHIRTypes.BIOLOGICALLYDERIVEDPRODUCTDISPENSE)
11583        return "BiologicallyDerivedProductDispense";
11584      if (code == FHIRTypes.BODYSTRUCTURE)
11585        return "BodyStructure";
11586      if (code == FHIRTypes.CANONICALRESOURCE)
11587        return "CanonicalResource";
11588      if (code == FHIRTypes.CAPABILITYSTATEMENT)
11589        return "CapabilityStatement";
11590      if (code == FHIRTypes.CAREPLAN)
11591        return "CarePlan";
11592      if (code == FHIRTypes.CARETEAM)
11593        return "CareTeam";
11594      if (code == FHIRTypes.CHARGEITEM)
11595        return "ChargeItem";
11596      if (code == FHIRTypes.CHARGEITEMDEFINITION)
11597        return "ChargeItemDefinition";
11598      if (code == FHIRTypes.CITATION)
11599        return "Citation";
11600      if (code == FHIRTypes.CLAIM)
11601        return "Claim";
11602      if (code == FHIRTypes.CLAIMRESPONSE)
11603        return "ClaimResponse";
11604      if (code == FHIRTypes.CLINICALIMPRESSION)
11605        return "ClinicalImpression";
11606      if (code == FHIRTypes.CLINICALUSEDEFINITION)
11607        return "ClinicalUseDefinition";
11608      if (code == FHIRTypes.CODESYSTEM)
11609        return "CodeSystem";
11610      if (code == FHIRTypes.COMMUNICATION)
11611        return "Communication";
11612      if (code == FHIRTypes.COMMUNICATIONREQUEST)
11613        return "CommunicationRequest";
11614      if (code == FHIRTypes.COMPARTMENTDEFINITION)
11615        return "CompartmentDefinition";
11616      if (code == FHIRTypes.COMPOSITION)
11617        return "Composition";
11618      if (code == FHIRTypes.CONCEPTMAP)
11619        return "ConceptMap";
11620      if (code == FHIRTypes.CONDITION)
11621        return "Condition";
11622      if (code == FHIRTypes.CONDITIONDEFINITION)
11623        return "ConditionDefinition";
11624      if (code == FHIRTypes.CONSENT)
11625        return "Consent";
11626      if (code == FHIRTypes.CONTRACT)
11627        return "Contract";
11628      if (code == FHIRTypes.COVERAGE)
11629        return "Coverage";
11630      if (code == FHIRTypes.COVERAGEELIGIBILITYREQUEST)
11631        return "CoverageEligibilityRequest";
11632      if (code == FHIRTypes.COVERAGEELIGIBILITYRESPONSE)
11633        return "CoverageEligibilityResponse";
11634      if (code == FHIRTypes.DETECTEDISSUE)
11635        return "DetectedIssue";
11636      if (code == FHIRTypes.DEVICE)
11637        return "Device";
11638      if (code == FHIRTypes.DEVICEASSOCIATION)
11639        return "DeviceAssociation";
11640      if (code == FHIRTypes.DEVICEDEFINITION)
11641        return "DeviceDefinition";
11642      if (code == FHIRTypes.DEVICEDISPENSE)
11643        return "DeviceDispense";
11644      if (code == FHIRTypes.DEVICEMETRIC)
11645        return "DeviceMetric";
11646      if (code == FHIRTypes.DEVICEREQUEST)
11647        return "DeviceRequest";
11648      if (code == FHIRTypes.DEVICEUSAGE)
11649        return "DeviceUsage";
11650      if (code == FHIRTypes.DIAGNOSTICREPORT)
11651        return "DiagnosticReport";
11652      if (code == FHIRTypes.DOCUMENTREFERENCE)
11653        return "DocumentReference";
11654      if (code == FHIRTypes.ENCOUNTER)
11655        return "Encounter";
11656      if (code == FHIRTypes.ENCOUNTERHISTORY)
11657        return "EncounterHistory";
11658      if (code == FHIRTypes.ENDPOINT)
11659        return "Endpoint";
11660      if (code == FHIRTypes.ENROLLMENTREQUEST)
11661        return "EnrollmentRequest";
11662      if (code == FHIRTypes.ENROLLMENTRESPONSE)
11663        return "EnrollmentResponse";
11664      if (code == FHIRTypes.EPISODEOFCARE)
11665        return "EpisodeOfCare";
11666      if (code == FHIRTypes.EVENTDEFINITION)
11667        return "EventDefinition";
11668      if (code == FHIRTypes.EVIDENCE)
11669        return "Evidence";
11670      if (code == FHIRTypes.EVIDENCEREPORT)
11671        return "EvidenceReport";
11672      if (code == FHIRTypes.EVIDENCEVARIABLE)
11673        return "EvidenceVariable";
11674      if (code == FHIRTypes.EXAMPLESCENARIO)
11675        return "ExampleScenario";
11676      if (code == FHIRTypes.EXPLANATIONOFBENEFIT)
11677        return "ExplanationOfBenefit";
11678      if (code == FHIRTypes.FAMILYMEMBERHISTORY)
11679        return "FamilyMemberHistory";
11680      if (code == FHIRTypes.FLAG)
11681        return "Flag";
11682      if (code == FHIRTypes.FORMULARYITEM)
11683        return "FormularyItem";
11684      if (code == FHIRTypes.GENOMICSTUDY)
11685        return "GenomicStudy";
11686      if (code == FHIRTypes.GOAL)
11687        return "Goal";
11688      if (code == FHIRTypes.GRAPHDEFINITION)
11689        return "GraphDefinition";
11690      if (code == FHIRTypes.GROUP)
11691        return "Group";
11692      if (code == FHIRTypes.GUIDANCERESPONSE)
11693        return "GuidanceResponse";
11694      if (code == FHIRTypes.HEALTHCARESERVICE)
11695        return "HealthcareService";
11696      if (code == FHIRTypes.IMAGINGSELECTION)
11697        return "ImagingSelection";
11698      if (code == FHIRTypes.IMAGINGSTUDY)
11699        return "ImagingStudy";
11700      if (code == FHIRTypes.IMMUNIZATION)
11701        return "Immunization";
11702      if (code == FHIRTypes.IMMUNIZATIONEVALUATION)
11703        return "ImmunizationEvaluation";
11704      if (code == FHIRTypes.IMMUNIZATIONRECOMMENDATION)
11705        return "ImmunizationRecommendation";
11706      if (code == FHIRTypes.IMPLEMENTATIONGUIDE)
11707        return "ImplementationGuide";
11708      if (code == FHIRTypes.INGREDIENT)
11709        return "Ingredient";
11710      if (code == FHIRTypes.INSURANCEPLAN)
11711        return "InsurancePlan";
11712      if (code == FHIRTypes.INVENTORYITEM)
11713        return "InventoryItem";
11714      if (code == FHIRTypes.INVENTORYREPORT)
11715        return "InventoryReport";
11716      if (code == FHIRTypes.INVOICE)
11717        return "Invoice";
11718      if (code == FHIRTypes.LIBRARY)
11719        return "Library";
11720      if (code == FHIRTypes.LINKAGE)
11721        return "Linkage";
11722      if (code == FHIRTypes.LIST)
11723        return "List";
11724      if (code == FHIRTypes.LOCATION)
11725        return "Location";
11726      if (code == FHIRTypes.MANUFACTUREDITEMDEFINITION)
11727        return "ManufacturedItemDefinition";
11728      if (code == FHIRTypes.MEASURE)
11729        return "Measure";
11730      if (code == FHIRTypes.MEASUREREPORT)
11731        return "MeasureReport";
11732      if (code == FHIRTypes.MEDICATION)
11733        return "Medication";
11734      if (code == FHIRTypes.MEDICATIONADMINISTRATION)
11735        return "MedicationAdministration";
11736      if (code == FHIRTypes.MEDICATIONDISPENSE)
11737        return "MedicationDispense";
11738      if (code == FHIRTypes.MEDICATIONKNOWLEDGE)
11739        return "MedicationKnowledge";
11740      if (code == FHIRTypes.MEDICATIONREQUEST)
11741        return "MedicationRequest";
11742      if (code == FHIRTypes.MEDICATIONSTATEMENT)
11743        return "MedicationStatement";
11744      if (code == FHIRTypes.MEDICINALPRODUCTDEFINITION)
11745        return "MedicinalProductDefinition";
11746      if (code == FHIRTypes.MESSAGEDEFINITION)
11747        return "MessageDefinition";
11748      if (code == FHIRTypes.MESSAGEHEADER)
11749        return "MessageHeader";
11750      if (code == FHIRTypes.METADATARESOURCE)
11751        return "MetadataResource";
11752      if (code == FHIRTypes.MOLECULARSEQUENCE)
11753        return "MolecularSequence";
11754      if (code == FHIRTypes.NAMINGSYSTEM)
11755        return "NamingSystem";
11756      if (code == FHIRTypes.NUTRITIONINTAKE)
11757        return "NutritionIntake";
11758      if (code == FHIRTypes.NUTRITIONORDER)
11759        return "NutritionOrder";
11760      if (code == FHIRTypes.NUTRITIONPRODUCT)
11761        return "NutritionProduct";
11762      if (code == FHIRTypes.OBSERVATION)
11763        return "Observation";
11764      if (code == FHIRTypes.OBSERVATIONDEFINITION)
11765        return "ObservationDefinition";
11766      if (code == FHIRTypes.OPERATIONDEFINITION)
11767        return "OperationDefinition";
11768      if (code == FHIRTypes.OPERATIONOUTCOME)
11769        return "OperationOutcome";
11770      if (code == FHIRTypes.ORGANIZATION)
11771        return "Organization";
11772      if (code == FHIRTypes.ORGANIZATIONAFFILIATION)
11773        return "OrganizationAffiliation";
11774      if (code == FHIRTypes.PACKAGEDPRODUCTDEFINITION)
11775        return "PackagedProductDefinition";
11776      if (code == FHIRTypes.PATIENT)
11777        return "Patient";
11778      if (code == FHIRTypes.PAYMENTNOTICE)
11779        return "PaymentNotice";
11780      if (code == FHIRTypes.PAYMENTRECONCILIATION)
11781        return "PaymentReconciliation";
11782      if (code == FHIRTypes.PERMISSION)
11783        return "Permission";
11784      if (code == FHIRTypes.PERSON)
11785        return "Person";
11786      if (code == FHIRTypes.PLANDEFINITION)
11787        return "PlanDefinition";
11788      if (code == FHIRTypes.PRACTITIONER)
11789        return "Practitioner";
11790      if (code == FHIRTypes.PRACTITIONERROLE)
11791        return "PractitionerRole";
11792      if (code == FHIRTypes.PROCEDURE)
11793        return "Procedure";
11794      if (code == FHIRTypes.PROVENANCE)
11795        return "Provenance";
11796      if (code == FHIRTypes.QUESTIONNAIRE)
11797        return "Questionnaire";
11798      if (code == FHIRTypes.QUESTIONNAIRERESPONSE)
11799        return "QuestionnaireResponse";
11800      if (code == FHIRTypes.REGULATEDAUTHORIZATION)
11801        return "RegulatedAuthorization";
11802      if (code == FHIRTypes.RELATEDPERSON)
11803        return "RelatedPerson";
11804      if (code == FHIRTypes.REQUESTORCHESTRATION)
11805        return "RequestOrchestration";
11806      if (code == FHIRTypes.REQUIREMENTS)
11807        return "Requirements";
11808      if (code == FHIRTypes.RESEARCHSTUDY)
11809        return "ResearchStudy";
11810      if (code == FHIRTypes.RESEARCHSUBJECT)
11811        return "ResearchSubject";
11812      if (code == FHIRTypes.RISKASSESSMENT)
11813        return "RiskAssessment";
11814      if (code == FHIRTypes.SCHEDULE)
11815        return "Schedule";
11816      if (code == FHIRTypes.SEARCHPARAMETER)
11817        return "SearchParameter";
11818      if (code == FHIRTypes.SERVICEREQUEST)
11819        return "ServiceRequest";
11820      if (code == FHIRTypes.SLOT)
11821        return "Slot";
11822      if (code == FHIRTypes.SPECIMEN)
11823        return "Specimen";
11824      if (code == FHIRTypes.SPECIMENDEFINITION)
11825        return "SpecimenDefinition";
11826      if (code == FHIRTypes.STRUCTUREDEFINITION)
11827        return "StructureDefinition";
11828      if (code == FHIRTypes.STRUCTUREMAP)
11829        return "StructureMap";
11830      if (code == FHIRTypes.SUBSCRIPTION)
11831        return "Subscription";
11832      if (code == FHIRTypes.SUBSCRIPTIONSTATUS)
11833        return "SubscriptionStatus";
11834      if (code == FHIRTypes.SUBSCRIPTIONTOPIC)
11835        return "SubscriptionTopic";
11836      if (code == FHIRTypes.SUBSTANCE)
11837        return "Substance";
11838      if (code == FHIRTypes.SUBSTANCEDEFINITION)
11839        return "SubstanceDefinition";
11840      if (code == FHIRTypes.SUBSTANCENUCLEICACID)
11841        return "SubstanceNucleicAcid";
11842      if (code == FHIRTypes.SUBSTANCEPOLYMER)
11843        return "SubstancePolymer";
11844      if (code == FHIRTypes.SUBSTANCEPROTEIN)
11845        return "SubstanceProtein";
11846      if (code == FHIRTypes.SUBSTANCEREFERENCEINFORMATION)
11847        return "SubstanceReferenceInformation";
11848      if (code == FHIRTypes.SUBSTANCESOURCEMATERIAL)
11849        return "SubstanceSourceMaterial";
11850      if (code == FHIRTypes.SUPPLYDELIVERY)
11851        return "SupplyDelivery";
11852      if (code == FHIRTypes.SUPPLYREQUEST)
11853        return "SupplyRequest";
11854      if (code == FHIRTypes.TASK)
11855        return "Task";
11856      if (code == FHIRTypes.TERMINOLOGYCAPABILITIES)
11857        return "TerminologyCapabilities";
11858      if (code == FHIRTypes.TESTPLAN)
11859        return "TestPlan";
11860      if (code == FHIRTypes.TESTREPORT)
11861        return "TestReport";
11862      if (code == FHIRTypes.TESTSCRIPT)
11863        return "TestScript";
11864      if (code == FHIRTypes.TRANSPORT)
11865        return "Transport";
11866      if (code == FHIRTypes.VALUESET)
11867        return "ValueSet";
11868      if (code == FHIRTypes.VERIFICATIONRESULT)
11869        return "VerificationResult";
11870      if (code == FHIRTypes.VISIONPRESCRIPTION)
11871        return "VisionPrescription";
11872      if (code == FHIRTypes.PARAMETERS)
11873        return "Parameters";
11874      return "?";
11875   }
11876    public String toSystem(FHIRTypes code) {
11877      return code.getSystem();
11878      }
11879    }
11880
11881    public enum FHIRVersion {
11882        /**
11883         * Oldest archived version of FHIR.
11884         */
11885        _0_01, 
11886        /**
11887         * 1st Draft for Comment (Sept 2012 Ballot).
11888         */
11889        _0_05, 
11890        /**
11891         * 2nd Draft for Comment (January 2013 Ballot).
11892         */
11893        _0_06, 
11894        /**
11895         * DSTU 1 Ballot version.
11896         */
11897        _0_11, 
11898        /**
11899         * DSTU 1 version.
11900         */
11901        _0_0, 
11902        /**
11903         * DSTU 1 Official version.
11904         */
11905        _0_0_80, 
11906        /**
11907         * DSTU 1 Official version Technical Errata #1.
11908         */
11909        _0_0_81, 
11910        /**
11911         * DSTU 1 Official version Technical Errata #2.
11912         */
11913        _0_0_82, 
11914        /**
11915         * January 2015 Ballot.
11916         */
11917        _0_4, 
11918        /**
11919         * Draft For Comment (January 2015 Ballot).
11920         */
11921        _0_4_0, 
11922        /**
11923         * May 2015 Ballot.
11924         */
11925        _0_5, 
11926        /**
11927         * DSTU 2 Ballot version (May 2015 Ballot).
11928         */
11929        _0_5_0, 
11930        /**
11931         * DSTU 2 version.
11932         */
11933        _1_0, 
11934        /**
11935         * DSTU 2 QA Preview + CQIF Ballot (Sep 2015).
11936         */
11937        _1_0_0, 
11938        /**
11939         * DSTU 2 (Official version).
11940         */
11941        _1_0_1, 
11942        /**
11943         * DSTU 2 (Official version) with 1 technical errata.
11944         */
11945        _1_0_2, 
11946        /**
11947         * GAO Ballot version.
11948         */
11949        _1_1, 
11950        /**
11951         * GAO Ballot + draft changes to main FHIR standard.
11952         */
11953        _1_1_0, 
11954        /**
11955         * Connectathon 12 (Montreal) version.
11956         */
11957        _1_4, 
11958        /**
11959         * CQF on FHIR Ballot + Connectathon 12 (Montreal).
11960         */
11961        _1_4_0, 
11962        /**
11963         * Connectathon 13 (Baltimore) version.
11964         */
11965        _1_6, 
11966        /**
11967         * FHIR STU3 Ballot + Connectathon 13 (Baltimore).
11968         */
11969        _1_6_0, 
11970        /**
11971         * Connectathon 14 (San Antonio) version.
11972         */
11973        _1_8, 
11974        /**
11975         * FHIR STU3 Candidate + Connectathon 14 (San Antonio).
11976         */
11977        _1_8_0, 
11978        /**
11979         * STU3 version.
11980         */
11981        _3_0, 
11982        /**
11983         * FHIR Release 3 (STU).
11984         */
11985        _3_0_0, 
11986        /**
11987         * FHIR Release 3 (STU) with 1 technical errata.
11988         */
11989        _3_0_1, 
11990        /**
11991         * FHIR Release 3 (STU) with 2 technical errata.
11992         */
11993        _3_0_2, 
11994        /**
11995         * R4 Ballot #1 version.
11996         */
11997        _3_3, 
11998        /**
11999         * R4 Ballot #1 + Connectaton 18 (Cologne).
12000         */
12001        _3_3_0, 
12002        /**
12003         * R4 Ballot #2 version.
12004         */
12005        _3_5, 
12006        /**
12007         * R4 Ballot #2 + Connectathon 19 (Baltimore).
12008         */
12009        _3_5_0, 
12010        /**
12011         * R4 version.
12012         */
12013        _4_0, 
12014        /**
12015         * FHIR Release 4 (Normative + STU).
12016         */
12017        _4_0_0, 
12018        /**
12019         * FHIR Release 4 (Normative + STU) with 1 technical errata.
12020         */
12021        _4_0_1, 
12022        /**
12023         * R4B Ballot #1 version.
12024         */
12025        _4_1, 
12026        /**
12027         * R4B Ballot #1 + Connectathon 27 (Virtual).
12028         */
12029        _4_1_0, 
12030        /**
12031         * R5 Preview #1 version.
12032         */
12033        _4_2, 
12034        /**
12035         * R5 Preview #1 + Connectathon 23 (Sydney).
12036         */
12037        _4_2_0, 
12038        /**
12039         * R4B version.
12040         */
12041        _4_3, 
12042        /**
12043         * FHIR Release 4B (Normative + STU).
12044         */
12045        _4_3_0, 
12046        /**
12047         * FHIR Release 4B CI-Builld.
12048         */
12049        _4_3_0CIBUILD, 
12050        /**
12051         * FHIR Release 4B Snapshot #1.
12052         */
12053        _4_3_0SNAPSHOT1, 
12054        /**
12055         * R5 Preview #2 version.
12056         */
12057        _4_4, 
12058        /**
12059         * R5 Preview #2 + Connectathon 24 (Virtual).
12060         */
12061        _4_4_0, 
12062        /**
12063         * R5 Preview #3 version.
12064         */
12065        _4_5, 
12066        /**
12067         * R5 Preview #3 + Connectathon 25 (Virtual).
12068         */
12069        _4_5_0, 
12070        /**
12071         * R5 Draft Ballot version.
12072         */
12073        _4_6, 
12074        /**
12075         * R5 Draft Ballot + Connectathon 27 (Virtual).
12076         */
12077        _4_6_0, 
12078        /**
12079         * R5 Versions.
12080         */
12081        _5_0, 
12082        /**
12083         * R5 Final Version.
12084         */
12085        _5_0_0, 
12086        /**
12087         * R5 Rolling ci-build.
12088         */
12089        _5_0_0CIBUILD, 
12090        /**
12091         * R5 Preview #2.
12092         */
12093        _5_0_0SNAPSHOT1, 
12094        /**
12095         * R5 Interim tooling stage.
12096         */
12097        _5_0_0SNAPSHOT2, 
12098        /**
12099         * R5 Ballot.
12100         */
12101        _5_0_0BALLOT, 
12102        /**
12103         * R5 January 2023 Staging Release + Connectathon 32.
12104         */
12105        _5_0_0SNAPSHOT3, 
12106        /**
12107         * R5 Final QA.
12108         */
12109        _5_0_0DRAFTFINAL, 
12110        /**
12111         * R6 Rolling ci-build.
12112         */
12113        _6_0_0CIBUILD, 
12114        /**
12115         * R6 Formal version (does not exist yet)
12116         */
12117        _6_0_0, 
12118        _6_0_0_BALLOT1, 
12119        _6_0_0_BALLOT2, 
12120        _6_0_0_BALLOT3, 
12121        /**
12122         * added to help the parsers
12123         */
12124        NULL;
12125        public static FHIRVersion fromCode(String codeString) throws FHIRException {
12126            if (codeString == null || "".equals(codeString))
12127                return null;
12128        if ("0.01".equals(codeString))
12129          return _0_01;
12130        if ("0.05".equals(codeString))
12131          return _0_05;
12132        if ("0.06".equals(codeString))
12133          return _0_06;
12134        if ("0.11".equals(codeString))
12135          return _0_11;
12136        if ("0.0".equals(codeString))
12137          return _0_0;
12138        if ("0.0.80".equals(codeString))
12139          return _0_0_80;
12140        if ("0.0.81".equals(codeString))
12141          return _0_0_81;
12142        if ("0.0.82".equals(codeString))
12143          return _0_0_82;
12144        if ("0.4".equals(codeString))
12145          return _0_4;
12146        if ("0.4.0".equals(codeString))
12147          return _0_4_0;
12148        if ("0.5".equals(codeString))
12149          return _0_5;
12150        if ("0.5.0".equals(codeString))
12151          return _0_5_0;
12152        if ("1.0".equals(codeString))
12153          return _1_0;
12154        if ("1.0.0".equals(codeString))
12155          return _1_0_0;
12156        if ("1.0.1".equals(codeString))
12157          return _1_0_1;
12158        if ("1.0.2".equals(codeString))
12159          return _1_0_2;
12160        if ("1.1".equals(codeString))
12161          return _1_1;
12162        if ("1.1.0".equals(codeString))
12163          return _1_1_0;
12164        if ("1.4".equals(codeString))
12165          return _1_4;
12166        if ("1.4.0".equals(codeString))
12167          return _1_4_0;
12168        if ("1.6".equals(codeString))
12169          return _1_6;
12170        if ("1.6.0".equals(codeString))
12171          return _1_6_0;
12172        if ("1.8".equals(codeString))
12173          return _1_8;
12174        if ("1.8.0".equals(codeString))
12175          return _1_8_0;
12176        if ("3.0".equals(codeString))
12177          return _3_0;
12178        if ("3.0.0".equals(codeString))
12179          return _3_0_0;
12180        if ("3.0.1".equals(codeString))
12181          return _3_0_1;
12182        if ("3.0.2".equals(codeString))
12183          return _3_0_2;
12184        if ("3.3".equals(codeString))
12185          return _3_3;
12186        if ("3.3.0".equals(codeString))
12187          return _3_3_0;
12188        if ("3.5".equals(codeString))
12189          return _3_5;
12190        if ("3.5.0".equals(codeString))
12191          return _3_5_0;
12192        if ("4.0".equals(codeString))
12193          return _4_0;
12194        if ("4.0.0".equals(codeString))
12195          return _4_0_0;
12196        if ("4.0.1".equals(codeString))
12197          return _4_0_1;
12198        if ("4.1".equals(codeString))
12199          return _4_1;
12200        if ("4.1.0".equals(codeString))
12201          return _4_1_0;
12202        if ("4.2".equals(codeString))
12203          return _4_2;
12204        if ("4.2.0".equals(codeString))
12205          return _4_2_0;
12206        if ("4.3".equals(codeString))
12207          return _4_3;
12208        if ("4.3.0".equals(codeString))
12209          return _4_3_0;
12210        if ("4.3.0-cibuild".equals(codeString))
12211          return _4_3_0CIBUILD;
12212        if ("4.3.0-snapshot1".equals(codeString))
12213          return _4_3_0SNAPSHOT1;
12214        if ("4.4".equals(codeString))
12215          return _4_4;
12216        if ("4.4.0".equals(codeString))
12217          return _4_4_0;
12218        if ("4.5".equals(codeString))
12219          return _4_5;
12220        if ("4.5.0".equals(codeString))
12221          return _4_5_0;
12222        if ("4.6".equals(codeString))
12223          return _4_6;
12224        if ("4.6.0".equals(codeString))
12225          return _4_6_0;
12226        if ("5.0".equals(codeString))
12227          return _5_0;
12228        if ("5.0.0".equals(codeString))
12229          return _5_0_0;
12230        if ("5.0.0-cibuild".equals(codeString))
12231          return _5_0_0CIBUILD;
12232        if ("5.0.0-snapshot1".equals(codeString))
12233          return _5_0_0SNAPSHOT1;
12234        if ("5.0.0-snapshot2".equals(codeString))
12235          return _5_0_0SNAPSHOT2;
12236        if ("5.0.0-ballot".equals(codeString))
12237          return _5_0_0BALLOT;
12238        if ("5.0.0-snapshot3".equals(codeString))
12239          return _5_0_0SNAPSHOT3;
12240        if ("5.0.0-draft-final".equals(codeString))
12241          return _5_0_0DRAFTFINAL;
12242        if ("6.0.0-cibuild".equals(codeString))
12243          return _6_0_0CIBUILD;
12244        if ("6.0.0".equals(codeString))
12245          return _6_0_0;
12246        if ("6.0.0-ballot1".equals(codeString))
12247          return _6_0_0_BALLOT1;
12248        if ("6.0.0-ballot2".equals(codeString))
12249          return _6_0_0_BALLOT2;
12250        if ("6.0.0-ballot3".equals(codeString))
12251          return _6_0_0_BALLOT3;
12252        throw new FHIRException("Unknown FHIRVersion code '"+codeString+"'");
12253        }
12254        public static boolean isValidCode(String codeString) {
12255            if (codeString == null || "".equals(codeString))
12256                return false;
12257          return Utilities.existsInList(codeString, "0.01", "0.05", "0.06", "0.11", "0.0", "0.0.80", "0.0.81", "0.0.82", "0.4", "0.4.0", "0.5", "0.5.0", "1.0", "1.0.0", "1.0.1", "1.0.2", "1.1", "1.1.0", "1.4", "1.4.0", "1.6", "1.6.0", "1.8", "1.8.0", "3.0", "3.0.0", "3.0.1", "3.0.2", "3.3", "3.3.0", "3.5", "3.5.0", "4.0", "4.0.0", "4.0.1", "4.1", "4.1.0", "4.2", "4.2.0", "4.3", "4.3.0", "4.3.0-cibuild", "4.3.0-snapshot1", "4.4", "4.4.0", "4.5", "4.5.0", "4.6", "4.6.0", "5.0", "5.0.0", "5.0.0-cibuild", "5.0.0-snapshot1", "5.0.0-snapshot2", "5.0.0-ballot", "5.0.0-snapshot3", "5.0.0-draft-final");
12258        }
12259        public String toCode() {
12260          switch (this) {
12261            case _0_01: return "0.01";
12262            case _0_05: return "0.05";
12263            case _0_06: return "0.06";
12264            case _0_11: return "0.11";
12265            case _0_0: return "0.0";
12266            case _0_0_80: return "0.0.80";
12267            case _0_0_81: return "0.0.81";
12268            case _0_0_82: return "0.0.82";
12269            case _0_4: return "0.4";
12270            case _0_4_0: return "0.4.0";
12271            case _0_5: return "0.5";
12272            case _0_5_0: return "0.5.0";
12273            case _1_0: return "1.0";
12274            case _1_0_0: return "1.0.0";
12275            case _1_0_1: return "1.0.1";
12276            case _1_0_2: return "1.0.2";
12277            case _1_1: return "1.1";
12278            case _1_1_0: return "1.1.0";
12279            case _1_4: return "1.4";
12280            case _1_4_0: return "1.4.0";
12281            case _1_6: return "1.6";
12282            case _1_6_0: return "1.6.0";
12283            case _1_8: return "1.8";
12284            case _1_8_0: return "1.8.0";
12285            case _3_0: return "3.0";
12286            case _3_0_0: return "3.0.0";
12287            case _3_0_1: return "3.0.1";
12288            case _3_0_2: return "3.0.2";
12289            case _3_3: return "3.3";
12290            case _3_3_0: return "3.3.0";
12291            case _3_5: return "3.5";
12292            case _3_5_0: return "3.5.0";
12293            case _4_0: return "4.0";
12294            case _4_0_0: return "4.0.0";
12295            case _4_0_1: return "4.0.1";
12296            case _4_1: return "4.1";
12297            case _4_1_0: return "4.1.0";
12298            case _4_2: return "4.2";
12299            case _4_2_0: return "4.2.0";
12300            case _4_3: return "4.3";
12301            case _4_3_0: return "4.3.0";
12302            case _4_3_0CIBUILD: return "4.3.0-cibuild";
12303            case _4_3_0SNAPSHOT1: return "4.3.0-snapshot1";
12304            case _4_4: return "4.4";
12305            case _4_4_0: return "4.4.0";
12306            case _4_5: return "4.5";
12307            case _4_5_0: return "4.5.0";
12308            case _4_6: return "4.6";
12309            case _4_6_0: return "4.6.0";
12310            case _5_0: return "5.0";
12311            case _5_0_0: return "5.0.0";
12312            case _5_0_0CIBUILD: return "5.0.0-cibuild";
12313            case _5_0_0SNAPSHOT1: return "5.0.0-snapshot1";
12314            case _5_0_0SNAPSHOT2: return "5.0.0-snapshot2";
12315            case _5_0_0BALLOT: return "5.0.0-ballot";
12316            case _5_0_0SNAPSHOT3: return "5.0.0-snapshot3";
12317            case _5_0_0DRAFTFINAL: return "5.0.0-draft-final";
12318            case _6_0_0CIBUILD: return "6.0.0-cibuild";
12319            case _6_0_0: return "6.0.0";
12320            case _6_0_0_BALLOT1: return "6.0.0-ballot1";
12321            case _6_0_0_BALLOT2: return "6.0.0-ballot2";
12322            case _6_0_0_BALLOT3: return "6.0.0-ballot3";
12323            case NULL: return null;
12324            default: return "?";
12325          }
12326        }
12327        public String getSystem() {
12328          switch (this) {
12329            case _0_01: return "http://hl7.org/fhir/FHIR-version";
12330            case _0_05: return "http://hl7.org/fhir/FHIR-version";
12331            case _0_06: return "http://hl7.org/fhir/FHIR-version";
12332            case _0_11: return "http://hl7.org/fhir/FHIR-version";
12333            case _0_0: return "http://hl7.org/fhir/FHIR-version";
12334            case _0_0_80: return "http://hl7.org/fhir/FHIR-version";
12335            case _0_0_81: return "http://hl7.org/fhir/FHIR-version";
12336            case _0_0_82: return "http://hl7.org/fhir/FHIR-version";
12337            case _0_4: return "http://hl7.org/fhir/FHIR-version";
12338            case _0_4_0: return "http://hl7.org/fhir/FHIR-version";
12339            case _0_5: return "http://hl7.org/fhir/FHIR-version";
12340            case _0_5_0: return "http://hl7.org/fhir/FHIR-version";
12341            case _1_0: return "http://hl7.org/fhir/FHIR-version";
12342            case _1_0_0: return "http://hl7.org/fhir/FHIR-version";
12343            case _1_0_1: return "http://hl7.org/fhir/FHIR-version";
12344            case _1_0_2: return "http://hl7.org/fhir/FHIR-version";
12345            case _1_1: return "http://hl7.org/fhir/FHIR-version";
12346            case _1_1_0: return "http://hl7.org/fhir/FHIR-version";
12347            case _1_4: return "http://hl7.org/fhir/FHIR-version";
12348            case _1_4_0: return "http://hl7.org/fhir/FHIR-version";
12349            case _1_6: return "http://hl7.org/fhir/FHIR-version";
12350            case _1_6_0: return "http://hl7.org/fhir/FHIR-version";
12351            case _1_8: return "http://hl7.org/fhir/FHIR-version";
12352            case _1_8_0: return "http://hl7.org/fhir/FHIR-version";
12353            case _3_0: return "http://hl7.org/fhir/FHIR-version";
12354            case _3_0_0: return "http://hl7.org/fhir/FHIR-version";
12355            case _3_0_1: return "http://hl7.org/fhir/FHIR-version";
12356            case _3_0_2: return "http://hl7.org/fhir/FHIR-version";
12357            case _3_3: return "http://hl7.org/fhir/FHIR-version";
12358            case _3_3_0: return "http://hl7.org/fhir/FHIR-version";
12359            case _3_5: return "http://hl7.org/fhir/FHIR-version";
12360            case _3_5_0: return "http://hl7.org/fhir/FHIR-version";
12361            case _4_0: return "http://hl7.org/fhir/FHIR-version";
12362            case _4_0_0: return "http://hl7.org/fhir/FHIR-version";
12363            case _4_0_1: return "http://hl7.org/fhir/FHIR-version";
12364            case _4_1: return "http://hl7.org/fhir/FHIR-version";
12365            case _4_1_0: return "http://hl7.org/fhir/FHIR-version";
12366            case _4_2: return "http://hl7.org/fhir/FHIR-version";
12367            case _4_2_0: return "http://hl7.org/fhir/FHIR-version";
12368            case _4_3: return "http://hl7.org/fhir/FHIR-version";
12369            case _4_3_0: return "http://hl7.org/fhir/FHIR-version";
12370            case _4_3_0CIBUILD: return "http://hl7.org/fhir/FHIR-version";
12371            case _4_3_0SNAPSHOT1: return "http://hl7.org/fhir/FHIR-version";
12372            case _4_4: return "http://hl7.org/fhir/FHIR-version";
12373            case _4_4_0: return "http://hl7.org/fhir/FHIR-version";
12374            case _4_5: return "http://hl7.org/fhir/FHIR-version";
12375            case _4_5_0: return "http://hl7.org/fhir/FHIR-version";
12376            case _4_6: return "http://hl7.org/fhir/FHIR-version";
12377            case _4_6_0: return "http://hl7.org/fhir/FHIR-version";
12378            case _5_0: return "http://hl7.org/fhir/FHIR-version";
12379            case _5_0_0: return "http://hl7.org/fhir/FHIR-version";
12380            case _5_0_0CIBUILD: return "http://hl7.org/fhir/FHIR-version";
12381            case _5_0_0SNAPSHOT1: return "http://hl7.org/fhir/FHIR-version";
12382            case _5_0_0SNAPSHOT2: return "http://hl7.org/fhir/FHIR-version";
12383            case _5_0_0BALLOT: return "http://hl7.org/fhir/FHIR-version";
12384            case _5_0_0SNAPSHOT3: return "http://hl7.org/fhir/FHIR-version";
12385            case _5_0_0DRAFTFINAL: return "http://hl7.org/fhir/FHIR-version";
12386            case _6_0_0CIBUILD: return "http://hl7.org/fhir/FHIR-version";
12387            case _6_0_0: return "http://hl7.org/fhir/FHIR-version";
12388            case _6_0_0_BALLOT1: return "http://hl7.org/fhir/FHIR-version";
12389            case NULL: return null;
12390            default: return "?";
12391          }
12392        }
12393        public String getDefinition() {
12394          switch (this) {
12395            case _0_01: return "Oldest archived version of FHIR.";
12396            case _0_05: return "1st Draft for Comment (Sept 2012 Ballot).";
12397            case _0_06: return "2nd Draft for Comment (January 2013 Ballot).";
12398            case _0_11: return "DSTU 1 Ballot version.";
12399            case _0_0: return "DSTU 1 version.";
12400            case _0_0_80: return "DSTU 1 Official version.";
12401            case _0_0_81: return "DSTU 1 Official version Technical Errata #1.";
12402            case _0_0_82: return "DSTU 1 Official version Technical Errata #2.";
12403            case _0_4: return "January 2015 Ballot.";
12404            case _0_4_0: return "Draft For Comment (January 2015 Ballot).";
12405            case _0_5: return "May 2015 Ballot.";
12406            case _0_5_0: return "DSTU 2 Ballot version (May 2015 Ballot).";
12407            case _1_0: return "DSTU 2 version.";
12408            case _1_0_0: return "DSTU 2 QA Preview + CQIF Ballot (Sep 2015).";
12409            case _1_0_1: return "DSTU 2 (Official version).";
12410            case _1_0_2: return "DSTU 2 (Official version) with 1 technical errata.";
12411            case _1_1: return "GAO Ballot version.";
12412            case _1_1_0: return "GAO Ballot + draft changes to main FHIR standard.";
12413            case _1_4: return "Connectathon 12 (Montreal) version.";
12414            case _1_4_0: return "CQF on FHIR Ballot + Connectathon 12 (Montreal).";
12415            case _1_6: return "Connectathon 13 (Baltimore) version.";
12416            case _1_6_0: return "FHIR STU3 Ballot + Connectathon 13 (Baltimore).";
12417            case _1_8: return "Connectathon 14 (San Antonio) version.";
12418            case _1_8_0: return "FHIR STU3 Candidate + Connectathon 14 (San Antonio).";
12419            case _3_0: return "STU3 version.";
12420            case _3_0_0: return "FHIR Release 3 (STU).";
12421            case _3_0_1: return "FHIR Release 3 (STU) with 1 technical errata.";
12422            case _3_0_2: return "FHIR Release 3 (STU) with 2 technical errata.";
12423            case _3_3: return "R4 Ballot #1 version.";
12424            case _3_3_0: return "R4 Ballot #1 + Connectaton 18 (Cologne).";
12425            case _3_5: return "R4 Ballot #2 version.";
12426            case _3_5_0: return "R4 Ballot #2 + Connectathon 19 (Baltimore).";
12427            case _4_0: return "R4 version.";
12428            case _4_0_0: return "FHIR Release 4 (Normative + STU).";
12429            case _4_0_1: return "FHIR Release 4 (Normative + STU) with 1 technical errata.";
12430            case _4_1: return "R4B Ballot #1 version.";
12431            case _4_1_0: return "R4B Ballot #1 + Connectathon 27 (Virtual).";
12432            case _4_2: return "R5 Preview #1 version.";
12433            case _4_2_0: return "R5 Preview #1 + Connectathon 23 (Sydney).";
12434            case _4_3: return "R4B version.";
12435            case _4_3_0: return "FHIR Release 4B (Normative + STU).";
12436            case _4_3_0CIBUILD: return "FHIR Release 4B CI-Builld.";
12437            case _4_3_0SNAPSHOT1: return "FHIR Release 4B Snapshot #1.";
12438            case _4_4: return "R5 Preview #2 version.";
12439            case _4_4_0: return "R5 Preview #2 + Connectathon 24 (Virtual).";
12440            case _4_5: return "R5 Preview #3 version.";
12441            case _4_5_0: return "R5 Preview #3 + Connectathon 25 (Virtual).";
12442            case _4_6: return "R5 Draft Ballot version.";
12443            case _4_6_0: return "R5 Draft Ballot + Connectathon 27 (Virtual).";
12444            case _5_0: return "R5 Versions.";
12445            case _5_0_0: return "R5 Final Version.";
12446            case _5_0_0CIBUILD: return "R5 Rolling ci-build.";
12447            case _5_0_0SNAPSHOT1: return "R5 Preview #2.";
12448            case _5_0_0SNAPSHOT2: return "R5 Interim tooling stage.";
12449            case _5_0_0BALLOT: return "R5 Ballot.";
12450            case _5_0_0SNAPSHOT3: return "R5 January 2023 Staging Release + Connectathon 32.";
12451            case _5_0_0DRAFTFINAL: return "R5 Final QA.";
12452            case _6_0_0CIBUILD: return "R6 Rolling ci-build.";
12453            case _6_0_0: return "R6 Final Version.";
12454            case _6_0_0_BALLOT1: return "R6 Ballot #1.";
12455            case NULL: return null;
12456            default: return "?";
12457          }
12458        }
12459        public String getDisplay() {
12460          switch (this) {
12461            case _0_01: return "0.01";
12462            case _0_05: return "0.05";
12463            case _0_06: return "0.06";
12464            case _0_11: return "0.11";
12465            case _0_0: return "0.0";
12466            case _0_0_80: return "0.0.80";
12467            case _0_0_81: return "0.0.81";
12468            case _0_0_82: return "0.0.82";
12469            case _0_4: return "0.4";
12470            case _0_4_0: return "0.4.0";
12471            case _0_5: return "0.5";
12472            case _0_5_0: return "0.5.0";
12473            case _1_0: return "1.0";
12474            case _1_0_0: return "1.0.0";
12475            case _1_0_1: return "1.0.1";
12476            case _1_0_2: return "1.0.2";
12477            case _1_1: return "1.1";
12478            case _1_1_0: return "1.1.0";
12479            case _1_4: return "1.4";
12480            case _1_4_0: return "1.4.0";
12481            case _1_6: return "1.6";
12482            case _1_6_0: return "1.6.0";
12483            case _1_8: return "1.8";
12484            case _1_8_0: return "1.8.0";
12485            case _3_0: return "3.0";
12486            case _3_0_0: return "3.0.0";
12487            case _3_0_1: return "3.0.1";
12488            case _3_0_2: return "3.0.2";
12489            case _3_3: return "3.3";
12490            case _3_3_0: return "3.3.0";
12491            case _3_5: return "3.5";
12492            case _3_5_0: return "3.5.0";
12493            case _4_0: return "4.0";
12494            case _4_0_0: return "4.0.0";
12495            case _4_0_1: return "4.0.1";
12496            case _4_1: return "4.1";
12497            case _4_1_0: return "4.1.0";
12498            case _4_2: return "4.2";
12499            case _4_2_0: return "4.2.0";
12500            case _4_3: return "4.3";
12501            case _4_3_0: return "4.3.0";
12502            case _4_3_0CIBUILD: return "4.3.0-cibuild";
12503            case _4_3_0SNAPSHOT1: return "4.3.0-snapshot1";
12504            case _4_4: return "4.4";
12505            case _4_4_0: return "4.4.0";
12506            case _4_5: return "4.5";
12507            case _4_5_0: return "4.5.0";
12508            case _4_6: return "4.6";
12509            case _4_6_0: return "4.6.0";
12510            case _5_0: return "5.0";
12511            case _5_0_0: return "5.0.0";
12512            case _5_0_0CIBUILD: return "5.0.0-cibuild";
12513            case _5_0_0SNAPSHOT1: return "5.0.0-snapshot1";
12514            case _5_0_0SNAPSHOT2: return "5.0.0-snapshot2";
12515            case _5_0_0BALLOT: return "5.0.0-ballot";
12516            case _5_0_0SNAPSHOT3: return "5.0.0-snapshot3";
12517            case _5_0_0DRAFTFINAL: return "5.0.0-draft-final";
12518            case _6_0_0CIBUILD: return "6.0.0-cibuild";
12519            case _6_0_0: return "6.0.0";
12520            case _6_0_0_BALLOT1: return "6.0.0-ballot1";
12521            case _6_0_0_BALLOT2: return "6.0.0-ballot2";
12522            case _6_0_0_BALLOT3: return "6.0.0-ballot3";
12523            case NULL: return null;
12524            default: return "?";
12525          }
12526        }
12527// manual code from configuration.txt:
12528//public String toCode(int len) {
12529//          return toCode().substring(0, len);
12530//        }
12531//
12532//     
12533//        @Override
12534//        public String toString() {
12535//          return toCode();
12536//        }
12537//        
12538//        
12539//        public boolean isR4B() {
12540//          return toCode().startsWith("4.1");
12541//        }
12542//        
12543// end addition
12544    }
12545
12546  public static class FHIRVersionEnumFactory implements EnumFactory<FHIRVersion> {
12547    public FHIRVersion fromCode(String codeString) throws IllegalArgumentException {
12548      if (codeString == null || "".equals(codeString))
12549            if (codeString == null || "".equals(codeString))
12550                return null;
12551        if ("0.01".equals(codeString))
12552          return FHIRVersion._0_01;
12553        if ("0.05".equals(codeString))
12554          return FHIRVersion._0_05;
12555        if ("0.06".equals(codeString))
12556          return FHIRVersion._0_06;
12557        if ("0.11".equals(codeString))
12558          return FHIRVersion._0_11;
12559        if ("0.0".equals(codeString))
12560          return FHIRVersion._0_0;
12561        if ("0.0.80".equals(codeString))
12562          return FHIRVersion._0_0_80;
12563        if ("0.0.81".equals(codeString))
12564          return FHIRVersion._0_0_81;
12565        if ("0.0.82".equals(codeString))
12566          return FHIRVersion._0_0_82;
12567        if ("0.4".equals(codeString))
12568          return FHIRVersion._0_4;
12569        if ("0.4.0".equals(codeString))
12570          return FHIRVersion._0_4_0;
12571        if ("0.5".equals(codeString))
12572          return FHIRVersion._0_5;
12573        if ("0.5.0".equals(codeString))
12574          return FHIRVersion._0_5_0;
12575        if ("1.0".equals(codeString))
12576          return FHIRVersion._1_0;
12577        if ("1.0.0".equals(codeString))
12578          return FHIRVersion._1_0_0;
12579        if ("1.0.1".equals(codeString))
12580          return FHIRVersion._1_0_1;
12581        if ("1.0.2".equals(codeString))
12582          return FHIRVersion._1_0_2;
12583        if ("1.1".equals(codeString))
12584          return FHIRVersion._1_1;
12585        if ("1.1.0".equals(codeString))
12586          return FHIRVersion._1_1_0;
12587        if ("1.4".equals(codeString))
12588          return FHIRVersion._1_4;
12589        if ("1.4.0".equals(codeString))
12590          return FHIRVersion._1_4_0;
12591        if ("1.6".equals(codeString))
12592          return FHIRVersion._1_6;
12593        if ("1.6.0".equals(codeString))
12594          return FHIRVersion._1_6_0;
12595        if ("1.8".equals(codeString))
12596          return FHIRVersion._1_8;
12597        if ("1.8.0".equals(codeString))
12598          return FHIRVersion._1_8_0;
12599        if ("3.0".equals(codeString))
12600          return FHIRVersion._3_0;
12601        if ("3.0.0".equals(codeString))
12602          return FHIRVersion._3_0_0;
12603        if ("3.0.1".equals(codeString))
12604          return FHIRVersion._3_0_1;
12605        if ("3.0.2".equals(codeString))
12606          return FHIRVersion._3_0_2;
12607        if ("3.3".equals(codeString))
12608          return FHIRVersion._3_3;
12609        if ("3.3.0".equals(codeString))
12610          return FHIRVersion._3_3_0;
12611        if ("3.5".equals(codeString))
12612          return FHIRVersion._3_5;
12613        if ("3.5.0".equals(codeString))
12614          return FHIRVersion._3_5_0;
12615        if ("4.0".equals(codeString))
12616          return FHIRVersion._4_0;
12617        if ("4.0.0".equals(codeString))
12618          return FHIRVersion._4_0_0;
12619        if ("4.0.1".equals(codeString))
12620          return FHIRVersion._4_0_1;
12621        if ("4.1".equals(codeString))
12622          return FHIRVersion._4_1;
12623        if ("4.1.0".equals(codeString))
12624          return FHIRVersion._4_1_0;
12625        if ("4.2".equals(codeString))
12626          return FHIRVersion._4_2;
12627        if ("4.2.0".equals(codeString))
12628          return FHIRVersion._4_2_0;
12629        if ("4.3".equals(codeString))
12630          return FHIRVersion._4_3;
12631        if ("4.3.0".equals(codeString))
12632          return FHIRVersion._4_3_0;
12633        if ("4.3.0-cibuild".equals(codeString))
12634          return FHIRVersion._4_3_0CIBUILD;
12635        if ("4.3.0-snapshot1".equals(codeString))
12636          return FHIRVersion._4_3_0SNAPSHOT1;
12637        if ("4.4".equals(codeString))
12638          return FHIRVersion._4_4;
12639        if ("4.4.0".equals(codeString))
12640          return FHIRVersion._4_4_0;
12641        if ("4.5".equals(codeString))
12642          return FHIRVersion._4_5;
12643        if ("4.5.0".equals(codeString))
12644          return FHIRVersion._4_5_0;
12645        if ("4.6".equals(codeString))
12646          return FHIRVersion._4_6;
12647        if ("4.6.0".equals(codeString))
12648          return FHIRVersion._4_6_0;
12649        if ("5.0".equals(codeString))
12650          return FHIRVersion._5_0;
12651        if ("5.0.0".equals(codeString))
12652          return FHIRVersion._5_0_0;
12653        if ("5.0.0-cibuild".equals(codeString))
12654          return FHIRVersion._5_0_0CIBUILD;
12655        if ("5.0.0-snapshot1".equals(codeString))
12656          return FHIRVersion._5_0_0SNAPSHOT1;
12657        if ("5.0.0-snapshot2".equals(codeString))
12658          return FHIRVersion._5_0_0SNAPSHOT2;
12659        if ("5.0.0-ballot".equals(codeString))
12660          return FHIRVersion._5_0_0BALLOT;
12661        if ("5.0.0-snapshot3".equals(codeString))
12662          return FHIRVersion._5_0_0SNAPSHOT3;
12663        if ("5.0.0-draft-final".equals(codeString))
12664          return FHIRVersion._5_0_0DRAFTFINAL;
12665        if ("6.0.0-cibuild".equals(codeString))
12666          return FHIRVersion._6_0_0CIBUILD;
12667        if ("6.0.0".equals(codeString))
12668          return FHIRVersion._6_0_0;
12669        if ("6.0.0-ballot1".equals(codeString))
12670          return FHIRVersion._6_0_0_BALLOT1;
12671        if ("6.0.0-ballot2".equals(codeString))
12672          return FHIRVersion._6_0_0_BALLOT2;
12673        if ("6.0.0-ballot3".equals(codeString))
12674          return FHIRVersion._6_0_0_BALLOT3;
12675        throw new IllegalArgumentException("Unknown FHIRVersion code '"+codeString+"'");
12676        }
12677
12678        public Enumeration<FHIRVersion> fromType(PrimitiveType<?> code) throws FHIRException {
12679          if (code == null)
12680            return null;
12681          if (code.isEmpty())
12682            return new Enumeration<FHIRVersion>(this, FHIRVersion.NULL, code);
12683          String codeString = ((PrimitiveType) code).asStringValue();
12684          if (codeString == null || "".equals(codeString))
12685            return new Enumeration<FHIRVersion>(this, FHIRVersion.NULL, code);
12686        if ("0.01".equals(codeString))
12687          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_01, code);
12688        if ("0.05".equals(codeString))
12689          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_05, code);
12690        if ("0.06".equals(codeString))
12691          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_06, code);
12692        if ("0.11".equals(codeString))
12693          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_11, code);
12694        if ("0.0".equals(codeString))
12695          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0, code);
12696        if ("0.0.80".equals(codeString))
12697          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0_80, code);
12698        if ("0.0.81".equals(codeString))
12699          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0_81, code);
12700        if ("0.0.82".equals(codeString))
12701          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_0_82, code);
12702        if ("0.4".equals(codeString))
12703          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_4, code);
12704        if ("0.4.0".equals(codeString))
12705          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_4_0, code);
12706        if ("0.5".equals(codeString))
12707          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_5, code);
12708        if ("0.5.0".equals(codeString))
12709          return new Enumeration<FHIRVersion>(this, FHIRVersion._0_5_0, code);
12710        if ("1.0".equals(codeString))
12711          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0, code);
12712        if ("1.0.0".equals(codeString))
12713          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0_0, code);
12714        if ("1.0.1".equals(codeString))
12715          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0_1, code);
12716        if ("1.0.2".equals(codeString))
12717          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_0_2, code);
12718        if ("1.1".equals(codeString))
12719          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_1, code);
12720        if ("1.1.0".equals(codeString))
12721          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_1_0, code);
12722        if ("1.4".equals(codeString))
12723          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_4, code);
12724        if ("1.4.0".equals(codeString))
12725          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_4_0, code);
12726        if ("1.6".equals(codeString))
12727          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_6, code);
12728        if ("1.6.0".equals(codeString))
12729          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_6_0, code);
12730        if ("1.8".equals(codeString))
12731          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_8, code);
12732        if ("1.8.0".equals(codeString))
12733          return new Enumeration<FHIRVersion>(this, FHIRVersion._1_8_0, code);
12734        if ("3.0".equals(codeString))
12735          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0, code);
12736        if ("3.0.0".equals(codeString))
12737          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0_0, code);
12738        if ("3.0.1".equals(codeString))
12739          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0_1, code);
12740        if ("3.0.2".equals(codeString))
12741          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_0_2, code);
12742        if ("3.3".equals(codeString))
12743          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_3, code);
12744        if ("3.3.0".equals(codeString))
12745          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_3_0, code);
12746        if ("3.5".equals(codeString))
12747          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_5, code);
12748        if ("3.5.0".equals(codeString))
12749          return new Enumeration<FHIRVersion>(this, FHIRVersion._3_5_0, code);
12750        if ("4.0".equals(codeString))
12751          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_0, code);
12752        if ("4.0.0".equals(codeString))
12753          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_0_0, code);
12754        if ("4.0.1".equals(codeString))
12755          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_0_1, code);
12756        if ("4.1".equals(codeString))
12757          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_1, code);
12758        if ("4.1.0".equals(codeString))
12759          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_1_0, code);
12760        if ("4.2".equals(codeString))
12761          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_2, code);
12762        if ("4.2.0".equals(codeString))
12763          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_2_0, code);
12764        if ("4.3".equals(codeString))
12765          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3, code);
12766        if ("4.3.0".equals(codeString))
12767          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3_0, code);
12768        if ("4.3.0-cibuild".equals(codeString))
12769          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3_0CIBUILD, code);
12770        if ("4.3.0-snapshot1".equals(codeString))
12771          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_3_0SNAPSHOT1, code);
12772        if ("4.4".equals(codeString))
12773          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_4, code);
12774        if ("4.4.0".equals(codeString))
12775          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_4_0, code);
12776        if ("4.5".equals(codeString))
12777          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_5, code);
12778        if ("4.5.0".equals(codeString))
12779          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_5_0, code);
12780        if ("4.6".equals(codeString))
12781          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_6, code);
12782        if ("4.6.0".equals(codeString))
12783          return new Enumeration<FHIRVersion>(this, FHIRVersion._4_6_0, code);
12784        if ("5.0".equals(codeString))
12785          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0, code);
12786        if ("5.0.0".equals(codeString))
12787          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0, code);
12788        if ("5.0.0-cibuild".equals(codeString))
12789          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0CIBUILD, code);
12790        if ("5.0.0-snapshot1".equals(codeString))
12791          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0SNAPSHOT1, code);
12792        if ("5.0.0-snapshot2".equals(codeString))
12793          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0SNAPSHOT2, code);
12794        if ("5.0.0-ballot".equals(codeString))
12795          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0BALLOT, code);
12796        if ("5.0.0-snapshot3".equals(codeString))
12797          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0SNAPSHOT3, code);
12798        if ("5.0.0-draft-final".equals(codeString))
12799          return new Enumeration<FHIRVersion>(this, FHIRVersion._5_0_0DRAFTFINAL, code);
12800        if ("6.0.0-cibuild".equals(codeString))
12801          return new Enumeration<FHIRVersion>(this, FHIRVersion._6_0_0CIBUILD, code);
12802        if ("6.0.0".equals(codeString))
12803          return new Enumeration<FHIRVersion>(this, FHIRVersion._6_0_0, code);
12804        if ("6.0.0-ballot1".equals(codeString))
12805          return new Enumeration<FHIRVersion>(this, FHIRVersion._6_0_0_BALLOT1, code);
12806        if ("6.0.0-ballot2".equals(codeString))
12807          return new Enumeration<FHIRVersion>(this, FHIRVersion._6_0_0_BALLOT2, code);
12808        if ("6.0.0-ballot3".equals(codeString))
12809          return new Enumeration<FHIRVersion>(this, FHIRVersion._6_0_0_BALLOT3, code);
12810        throw new FHIRException("Unknown FHIRVersion code '"+codeString+"'");        
12811        }
12812    public String toCode(FHIRVersion code) {
12813       if (code == FHIRVersion.NULL)
12814           return null;
12815       if (code == FHIRVersion._0_01)
12816        return "0.01";
12817      if (code == FHIRVersion._0_05)
12818        return "0.05";
12819      if (code == FHIRVersion._0_06)
12820        return "0.06";
12821      if (code == FHIRVersion._0_11)
12822        return "0.11";
12823      if (code == FHIRVersion._0_0)
12824        return "0.0";
12825      if (code == FHIRVersion._0_0_80)
12826        return "0.0.80";
12827      if (code == FHIRVersion._0_0_81)
12828        return "0.0.81";
12829      if (code == FHIRVersion._0_0_82)
12830        return "0.0.82";
12831      if (code == FHIRVersion._0_4)
12832        return "0.4";
12833      if (code == FHIRVersion._0_4_0)
12834        return "0.4.0";
12835      if (code == FHIRVersion._0_5)
12836        return "0.5";
12837      if (code == FHIRVersion._0_5_0)
12838        return "0.5.0";
12839      if (code == FHIRVersion._1_0)
12840        return "1.0";
12841      if (code == FHIRVersion._1_0_0)
12842        return "1.0.0";
12843      if (code == FHIRVersion._1_0_1)
12844        return "1.0.1";
12845      if (code == FHIRVersion._1_0_2)
12846        return "1.0.2";
12847      if (code == FHIRVersion._1_1)
12848        return "1.1";
12849      if (code == FHIRVersion._1_1_0)
12850        return "1.1.0";
12851      if (code == FHIRVersion._1_4)
12852        return "1.4";
12853      if (code == FHIRVersion._1_4_0)
12854        return "1.4.0";
12855      if (code == FHIRVersion._1_6)
12856        return "1.6";
12857      if (code == FHIRVersion._1_6_0)
12858        return "1.6.0";
12859      if (code == FHIRVersion._1_8)
12860        return "1.8";
12861      if (code == FHIRVersion._1_8_0)
12862        return "1.8.0";
12863      if (code == FHIRVersion._3_0)
12864        return "3.0";
12865      if (code == FHIRVersion._3_0_0)
12866        return "3.0.0";
12867      if (code == FHIRVersion._3_0_1)
12868        return "3.0.1";
12869      if (code == FHIRVersion._3_0_2)
12870        return "3.0.2";
12871      if (code == FHIRVersion._3_3)
12872        return "3.3";
12873      if (code == FHIRVersion._3_3_0)
12874        return "3.3.0";
12875      if (code == FHIRVersion._3_5)
12876        return "3.5";
12877      if (code == FHIRVersion._3_5_0)
12878        return "3.5.0";
12879      if (code == FHIRVersion._4_0)
12880        return "4.0";
12881      if (code == FHIRVersion._4_0_0)
12882        return "4.0.0";
12883      if (code == FHIRVersion._4_0_1)
12884        return "4.0.1";
12885      if (code == FHIRVersion._4_1)
12886        return "4.1";
12887      if (code == FHIRVersion._4_1_0)
12888        return "4.1.0";
12889      if (code == FHIRVersion._4_2)
12890        return "4.2";
12891      if (code == FHIRVersion._4_2_0)
12892        return "4.2.0";
12893      if (code == FHIRVersion._4_3)
12894        return "4.3";
12895      if (code == FHIRVersion._4_3_0)
12896        return "4.3.0";
12897      if (code == FHIRVersion._4_3_0CIBUILD)
12898        return "4.3.0-cibuild";
12899      if (code == FHIRVersion._4_3_0SNAPSHOT1)
12900        return "4.3.0-snapshot1";
12901      if (code == FHIRVersion._4_4)
12902        return "4.4";
12903      if (code == FHIRVersion._4_4_0)
12904        return "4.4.0";
12905      if (code == FHIRVersion._4_5)
12906        return "4.5";
12907      if (code == FHIRVersion._4_5_0)
12908        return "4.5.0";
12909      if (code == FHIRVersion._4_6)
12910        return "4.6";
12911      if (code == FHIRVersion._4_6_0)
12912        return "4.6.0";
12913      if (code == FHIRVersion._5_0)
12914        return "5.0";
12915      if (code == FHIRVersion._5_0_0)
12916        return "5.0.0";
12917      if (code == FHIRVersion._5_0_0CIBUILD)
12918        return "5.0.0-cibuild";
12919      if (code == FHIRVersion._5_0_0SNAPSHOT1)
12920        return "5.0.0-snapshot1";
12921      if (code == FHIRVersion._5_0_0SNAPSHOT2)
12922        return "5.0.0-snapshot2";
12923      if (code == FHIRVersion._5_0_0BALLOT)
12924        return "5.0.0-ballot";
12925      if (code == FHIRVersion._5_0_0SNAPSHOT3)
12926        return "5.0.0-snapshot3";
12927      if (code == FHIRVersion._5_0_0DRAFTFINAL)
12928        return "5.0.0-draft-final";
12929      if (code == FHIRVersion._6_0_0CIBUILD)
12930        return "6.0.0-cibuild";
12931      if (code == FHIRVersion._6_0_0)
12932        return "6.0.0";
12933      if (code == FHIRVersion._6_0_0_BALLOT1) {
12934        return "6.0.0-ballot1";
12935      }
12936      if (code == FHIRVersion._6_0_0_BALLOT2) {
12937        return "6.0.0-ballot2";
12938      }
12939      if (code == FHIRVersion._6_0_0_BALLOT3) {
12940        return "6.0.0-ballot3";
12941      }
12942      return "?";
12943   }
12944    public String toSystem(FHIRVersion code) {
12945      return code.getSystem();
12946      }
12947    }
12948
12949    public enum FilterOperator {
12950        /**
12951         * The specified property of the code equals the provided value.
12952         */
12953        EQUAL, 
12954        /**
12955         * 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).
12956         */
12957        ISA, 
12958        /**
12959         * 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).
12960         */
12961        DESCENDENTOF, 
12962        /**
12963         * The specified property of the code does not have an is-a relationship with the provided value.
12964         */
12965        ISNOTA, 
12966        /**
12967         * The specified property of the code  matches the regex specified in the provided value.
12968         */
12969        REGEX, 
12970        /**
12971         * The specified property of the code is in the set of codes or concepts specified in the provided value (comma-separated list).
12972         */
12973        IN, 
12974        /**
12975         * The specified property of the code is not in the set of codes or concepts specified in the provided value (comma-separated list).
12976         */
12977        NOTIN, 
12978        /**
12979         * 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).
12980         */
12981        GENERALIZES, 
12982        /**
12983         * 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.
12984         */
12985        CHILDOF, 
12986        /**
12987         * 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.
12988         */
12989        DESCENDENTLEAF, 
12990        /**
12991         * 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).
12992         */
12993        EXISTS, 
12994        /**
12995         * added to help the parsers
12996         */
12997        NULL;
12998        public static FilterOperator fromCode(String codeString) throws FHIRException {
12999            if (codeString == null || "".equals(codeString))
13000                return null;
13001        if ("=".equals(codeString))
13002          return EQUAL;
13003        if ("is-a".equals(codeString))
13004          return ISA;
13005        if ("descendent-of".equals(codeString))
13006          return DESCENDENTOF;
13007        if ("is-not-a".equals(codeString))
13008          return ISNOTA;
13009        if ("regex".equals(codeString))
13010          return REGEX;
13011        if ("in".equals(codeString))
13012          return IN;
13013        if ("not-in".equals(codeString))
13014          return NOTIN;
13015        if ("generalizes".equals(codeString))
13016          return GENERALIZES;
13017        if ("child-of".equals(codeString))
13018          return CHILDOF;
13019        if ("descendent-leaf".equals(codeString))
13020          return DESCENDENTLEAF;
13021        if ("exists".equals(codeString))
13022          return EXISTS;
13023        throw new FHIRException("Unknown FilterOperator code '"+codeString+"'");
13024        }
13025        public static boolean isValidCode(String codeString) {
13026            if (codeString == null || "".equals(codeString))
13027                return false;
13028          return Utilities.existsInList(codeString, "=", "is-a", "descendent-of", "is-not-a", "regex", "in", "not-in", "generalizes", "child-of", "descendent-leaf", "exists");
13029        }
13030        public String toCode() {
13031          switch (this) {
13032            case EQUAL: return "=";
13033            case ISA: return "is-a";
13034            case DESCENDENTOF: return "descendent-of";
13035            case ISNOTA: return "is-not-a";
13036            case REGEX: return "regex";
13037            case IN: return "in";
13038            case NOTIN: return "not-in";
13039            case GENERALIZES: return "generalizes";
13040            case CHILDOF: return "child-of";
13041            case DESCENDENTLEAF: return "descendent-leaf";
13042            case EXISTS: return "exists";
13043            case NULL: return null;
13044            default: return "?";
13045          }
13046        }
13047        public String getSystem() {
13048          switch (this) {
13049            case EQUAL: return "http://hl7.org/fhir/filter-operator";
13050            case ISA: return "http://hl7.org/fhir/filter-operator";
13051            case DESCENDENTOF: return "http://hl7.org/fhir/filter-operator";
13052            case ISNOTA: return "http://hl7.org/fhir/filter-operator";
13053            case REGEX: return "http://hl7.org/fhir/filter-operator";
13054            case IN: return "http://hl7.org/fhir/filter-operator";
13055            case NOTIN: return "http://hl7.org/fhir/filter-operator";
13056            case GENERALIZES: return "http://hl7.org/fhir/filter-operator";
13057            case CHILDOF: return "http://hl7.org/fhir/filter-operator";
13058            case DESCENDENTLEAF: return "http://hl7.org/fhir/filter-operator";
13059            case EXISTS: return "http://hl7.org/fhir/filter-operator";
13060            case NULL: return null;
13061            default: return "?";
13062          }
13063        }
13064        public String getDefinition() {
13065          switch (this) {
13066            case EQUAL: return "The specified property of the code equals the provided value.";
13067            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).";
13068            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).";
13069            case ISNOTA: return "The specified property of the code does not have an is-a relationship with the provided value.";
13070            case REGEX: return "The specified property of the code  matches the regex specified in the provided value.";
13071            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).";
13072            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).";
13073            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).";
13074            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.";
13075            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.";
13076            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).";
13077            case NULL: return null;
13078            default: return "?";
13079          }
13080        }
13081        public String getDisplay() {
13082          switch (this) {
13083            case EQUAL: return "Equals";
13084            case ISA: return "Is A (by subsumption)";
13085            case DESCENDENTOF: return "Descendent Of (by subsumption)";
13086            case ISNOTA: return "Not (Is A) (by subsumption)";
13087            case REGEX: return "Regular Expression";
13088            case IN: return "In Set";
13089            case NOTIN: return "Not in Set";
13090            case GENERALIZES: return "Generalizes (by Subsumption)";
13091            case CHILDOF: return "Child Of";
13092            case DESCENDENTLEAF: return "Descendent Leaf";
13093            case EXISTS: return "Exists";
13094            case NULL: return null;
13095            default: return "?";
13096          }
13097        }
13098    }
13099
13100  public static class FilterOperatorEnumFactory implements EnumFactory<FilterOperator> {
13101    public FilterOperator fromCode(String codeString) throws IllegalArgumentException {
13102      if (codeString == null || "".equals(codeString))
13103            if (codeString == null || "".equals(codeString))
13104                return null;
13105        if ("=".equals(codeString))
13106          return FilterOperator.EQUAL;
13107        if ("is-a".equals(codeString))
13108          return FilterOperator.ISA;
13109        if ("descendent-of".equals(codeString))
13110          return FilterOperator.DESCENDENTOF;
13111        if ("is-not-a".equals(codeString))
13112          return FilterOperator.ISNOTA;
13113        if ("regex".equals(codeString))
13114          return FilterOperator.REGEX;
13115        if ("in".equals(codeString))
13116          return FilterOperator.IN;
13117        if ("not-in".equals(codeString))
13118          return FilterOperator.NOTIN;
13119        if ("generalizes".equals(codeString))
13120          return FilterOperator.GENERALIZES;
13121        if ("child-of".equals(codeString))
13122          return FilterOperator.CHILDOF;
13123        if ("descendent-leaf".equals(codeString))
13124          return FilterOperator.DESCENDENTLEAF;
13125        if ("exists".equals(codeString))
13126          return FilterOperator.EXISTS;
13127        throw new IllegalArgumentException("Unknown FilterOperator code '"+codeString+"'");
13128        }
13129
13130        public Enumeration<FilterOperator> fromType(PrimitiveType<?> code) throws FHIRException {
13131          if (code == null)
13132            return null;
13133          if (code.isEmpty())
13134            return new Enumeration<FilterOperator>(this, FilterOperator.NULL, code);
13135          String codeString = ((PrimitiveType) code).asStringValue();
13136          if (codeString == null || "".equals(codeString))
13137            return new Enumeration<FilterOperator>(this, FilterOperator.NULL, code);
13138        if ("=".equals(codeString))
13139          return new Enumeration<FilterOperator>(this, FilterOperator.EQUAL, code);
13140        if ("is-a".equals(codeString))
13141          return new Enumeration<FilterOperator>(this, FilterOperator.ISA, code);
13142        if ("descendent-of".equals(codeString))
13143          return new Enumeration<FilterOperator>(this, FilterOperator.DESCENDENTOF, code);
13144        if ("is-not-a".equals(codeString))
13145          return new Enumeration<FilterOperator>(this, FilterOperator.ISNOTA, code);
13146        if ("regex".equals(codeString))
13147          return new Enumeration<FilterOperator>(this, FilterOperator.REGEX, code);
13148        if ("in".equals(codeString))
13149          return new Enumeration<FilterOperator>(this, FilterOperator.IN, code);
13150        if ("not-in".equals(codeString))
13151          return new Enumeration<FilterOperator>(this, FilterOperator.NOTIN, code);
13152        if ("generalizes".equals(codeString))
13153          return new Enumeration<FilterOperator>(this, FilterOperator.GENERALIZES, code);
13154        if ("child-of".equals(codeString))
13155          return new Enumeration<FilterOperator>(this, FilterOperator.CHILDOF, code);
13156        if ("descendent-leaf".equals(codeString))
13157          return new Enumeration<FilterOperator>(this, FilterOperator.DESCENDENTLEAF, code);
13158        if ("exists".equals(codeString))
13159          return new Enumeration<FilterOperator>(this, FilterOperator.EXISTS, code);
13160        throw new FHIRException("Unknown FilterOperator code '"+codeString+"'");
13161        }
13162    public String toCode(FilterOperator code) {
13163       if (code == FilterOperator.NULL)
13164           return null;
13165       if (code == FilterOperator.EQUAL)
13166        return "=";
13167      if (code == FilterOperator.ISA)
13168        return "is-a";
13169      if (code == FilterOperator.DESCENDENTOF)
13170        return "descendent-of";
13171      if (code == FilterOperator.ISNOTA)
13172        return "is-not-a";
13173      if (code == FilterOperator.REGEX)
13174        return "regex";
13175      if (code == FilterOperator.IN)
13176        return "in";
13177      if (code == FilterOperator.NOTIN)
13178        return "not-in";
13179      if (code == FilterOperator.GENERALIZES)
13180        return "generalizes";
13181      if (code == FilterOperator.CHILDOF)
13182        return "child-of";
13183      if (code == FilterOperator.DESCENDENTLEAF)
13184        return "descendent-leaf";
13185      if (code == FilterOperator.EXISTS)
13186        return "exists";
13187      return "?";
13188   }
13189    public String toSystem(FilterOperator code) {
13190      return code.getSystem();
13191      }
13192    }
13193
13194    public enum FinancialResourceStatusCodes {
13195        /**
13196         * The instance is currently in-force.
13197         */
13198        ACTIVE, 
13199        /**
13200         * The instance is withdrawn, rescinded or reversed.
13201         */
13202        CANCELLED, 
13203        /**
13204         * A new instance the contents of which is not complete.
13205         */
13206        DRAFT, 
13207        /**
13208         * The instance was entered in error.
13209         */
13210        ENTEREDINERROR, 
13211        /**
13212         * added to help the parsers
13213         */
13214        NULL;
13215        public static FinancialResourceStatusCodes fromCode(String codeString) throws FHIRException {
13216            if (codeString == null || "".equals(codeString))
13217                return null;
13218        if ("active".equals(codeString))
13219          return ACTIVE;
13220        if ("cancelled".equals(codeString))
13221          return CANCELLED;
13222        if ("draft".equals(codeString))
13223          return DRAFT;
13224        if ("entered-in-error".equals(codeString))
13225          return ENTEREDINERROR;
13226        throw new FHIRException("Unknown FinancialResourceStatusCodes code '"+codeString+"'");
13227        }
13228        public static boolean isValidCode(String codeString) {
13229            if (codeString == null || "".equals(codeString))
13230                return false;
13231          return Utilities.existsInList(codeString, "active", "cancelled", "draft", "entered-in-error");
13232        }
13233        public String toCode() {
13234          switch (this) {
13235            case ACTIVE: return "active";
13236            case CANCELLED: return "cancelled";
13237            case DRAFT: return "draft";
13238            case ENTEREDINERROR: return "entered-in-error";
13239            case NULL: return null;
13240            default: return "?";
13241          }
13242        }
13243        public String getSystem() {
13244          switch (this) {
13245            case ACTIVE: return "http://hl7.org/fhir/fm-status";
13246            case CANCELLED: return "http://hl7.org/fhir/fm-status";
13247            case DRAFT: return "http://hl7.org/fhir/fm-status";
13248            case ENTEREDINERROR: return "http://hl7.org/fhir/fm-status";
13249            case NULL: return null;
13250            default: return "?";
13251          }
13252        }
13253        public String getDefinition() {
13254          switch (this) {
13255            case ACTIVE: return "The instance is currently in-force.";
13256            case CANCELLED: return "The instance is withdrawn, rescinded or reversed.";
13257            case DRAFT: return "A new instance the contents of which is not complete.";
13258            case ENTEREDINERROR: return "The instance was entered in error.";
13259            case NULL: return null;
13260            default: return "?";
13261          }
13262        }
13263        public String getDisplay() {
13264          switch (this) {
13265            case ACTIVE: return "Active";
13266            case CANCELLED: return "Cancelled";
13267            case DRAFT: return "Draft";
13268            case ENTEREDINERROR: return "Entered in Error";
13269            case NULL: return null;
13270            default: return "?";
13271          }
13272        }
13273    }
13274
13275  public static class FinancialResourceStatusCodesEnumFactory implements EnumFactory<FinancialResourceStatusCodes> {
13276    public FinancialResourceStatusCodes fromCode(String codeString) throws IllegalArgumentException {
13277      if (codeString == null || "".equals(codeString))
13278            if (codeString == null || "".equals(codeString))
13279                return null;
13280        if ("active".equals(codeString))
13281          return FinancialResourceStatusCodes.ACTIVE;
13282        if ("cancelled".equals(codeString))
13283          return FinancialResourceStatusCodes.CANCELLED;
13284        if ("draft".equals(codeString))
13285          return FinancialResourceStatusCodes.DRAFT;
13286        if ("entered-in-error".equals(codeString))
13287          return FinancialResourceStatusCodes.ENTEREDINERROR;
13288        throw new IllegalArgumentException("Unknown FinancialResourceStatusCodes code '"+codeString+"'");
13289        }
13290
13291        public Enumeration<FinancialResourceStatusCodes> fromType(PrimitiveType<?> code) throws FHIRException {
13292          if (code == null)
13293            return null;
13294          if (code.isEmpty())
13295            return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.NULL, code);
13296          String codeString = ((PrimitiveType) code).asStringValue();
13297          if (codeString == null || "".equals(codeString))
13298            return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.NULL, code);
13299        if ("active".equals(codeString))
13300          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.ACTIVE, code);
13301        if ("cancelled".equals(codeString))
13302          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.CANCELLED, code);
13303        if ("draft".equals(codeString))
13304          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.DRAFT, code);
13305        if ("entered-in-error".equals(codeString))
13306          return new Enumeration<FinancialResourceStatusCodes>(this, FinancialResourceStatusCodes.ENTEREDINERROR, code);
13307        throw new FHIRException("Unknown FinancialResourceStatusCodes code '"+codeString+"'");
13308        }
13309    public String toCode(FinancialResourceStatusCodes code) {
13310       if (code == FinancialResourceStatusCodes.NULL)
13311           return null;
13312       if (code == FinancialResourceStatusCodes.ACTIVE)
13313        return "active";
13314      if (code == FinancialResourceStatusCodes.CANCELLED)
13315        return "cancelled";
13316      if (code == FinancialResourceStatusCodes.DRAFT)
13317        return "draft";
13318      if (code == FinancialResourceStatusCodes.ENTEREDINERROR)
13319        return "entered-in-error";
13320      return "?";
13321   }
13322    public String toSystem(FinancialResourceStatusCodes code) {
13323      return code.getSystem();
13324      }
13325    }
13326
13327    public enum ListMode {
13328        /**
13329         * This list is the master list, maintained in an ongoing fashion with regular updates as the real-world list it is tracking changes.
13330         */
13331        WORKING, 
13332        /**
13333         * This list was prepared as a snapshot. It should not be assumed to be current.
13334         */
13335        SNAPSHOT, 
13336        /**
13337         * 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.
13338         */
13339        CHANGES, 
13340        /**
13341         * added to help the parsers
13342         */
13343        NULL;
13344        public static ListMode fromCode(String codeString) throws FHIRException {
13345            if (codeString == null || "".equals(codeString))
13346                return null;
13347        if ("working".equals(codeString))
13348          return WORKING;
13349        if ("snapshot".equals(codeString))
13350          return SNAPSHOT;
13351        if ("changes".equals(codeString))
13352          return CHANGES;
13353        throw new FHIRException("Unknown ListMode code '"+codeString+"'");
13354        }
13355        public static boolean isValidCode(String codeString) {
13356            if (codeString == null || "".equals(codeString))
13357                return false;
13358          return Utilities.existsInList(codeString, "working", "snapshot", "changes");
13359        }
13360        public String toCode() {
13361          switch (this) {
13362            case WORKING: return "working";
13363            case SNAPSHOT: return "snapshot";
13364            case CHANGES: return "changes";
13365            case NULL: return null;
13366            default: return "?";
13367          }
13368        }
13369        public String getSystem() {
13370          switch (this) {
13371            case WORKING: return "http://hl7.org/fhir/list-mode";
13372            case SNAPSHOT: return "http://hl7.org/fhir/list-mode";
13373            case CHANGES: return "http://hl7.org/fhir/list-mode";
13374            case NULL: return null;
13375            default: return "?";
13376          }
13377        }
13378        public String getDefinition() {
13379          switch (this) {
13380            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.";
13381            case SNAPSHOT: return "This list was prepared as a snapshot. It should not be assumed to be current.";
13382            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.";
13383            case NULL: return null;
13384            default: return "?";
13385          }
13386        }
13387        public String getDisplay() {
13388          switch (this) {
13389            case WORKING: return "Working List";
13390            case SNAPSHOT: return "Snapshot List";
13391            case CHANGES: return "Change List";
13392            case NULL: return null;
13393            default: return "?";
13394          }
13395        }
13396    }
13397
13398  public static class ListModeEnumFactory implements EnumFactory<ListMode> {
13399    public ListMode fromCode(String codeString) throws IllegalArgumentException {
13400      if (codeString == null || "".equals(codeString))
13401            if (codeString == null || "".equals(codeString))
13402                return null;
13403        if ("working".equals(codeString))
13404          return ListMode.WORKING;
13405        if ("snapshot".equals(codeString))
13406          return ListMode.SNAPSHOT;
13407        if ("changes".equals(codeString))
13408          return ListMode.CHANGES;
13409        throw new IllegalArgumentException("Unknown ListMode code '"+codeString+"'");
13410        }
13411
13412        public Enumeration<ListMode> fromType(PrimitiveType<?> code) throws FHIRException {
13413          if (code == null)
13414            return null;
13415          if (code.isEmpty())
13416            return new Enumeration<ListMode>(this, ListMode.NULL, code);
13417          String codeString = ((PrimitiveType) code).asStringValue();
13418          if (codeString == null || "".equals(codeString))
13419            return new Enumeration<ListMode>(this, ListMode.NULL, code);
13420        if ("working".equals(codeString))
13421          return new Enumeration<ListMode>(this, ListMode.WORKING, code);
13422        if ("snapshot".equals(codeString))
13423          return new Enumeration<ListMode>(this, ListMode.SNAPSHOT, code);
13424        if ("changes".equals(codeString))
13425          return new Enumeration<ListMode>(this, ListMode.CHANGES, code);
13426        throw new FHIRException("Unknown ListMode code '"+codeString+"'");
13427        }
13428    public String toCode(ListMode code) {
13429       if (code == ListMode.NULL)
13430           return null;
13431       if (code == ListMode.WORKING)
13432        return "working";
13433      if (code == ListMode.SNAPSHOT)
13434        return "snapshot";
13435      if (code == ListMode.CHANGES)
13436        return "changes";
13437      return "?";
13438   }
13439    public String toSystem(ListMode code) {
13440      return code.getSystem();
13441      }
13442    }
13443
13444    public enum MeasureImprovementNotation {
13445        /**
13446         * null
13447         */
13448        INCREASE, 
13449        /**
13450         * null
13451         */
13452        DECREASE, 
13453        /**
13454         * added to help the parsers
13455         */
13456        NULL;
13457        public static MeasureImprovementNotation fromCode(String codeString) throws FHIRException {
13458            if (codeString == null || "".equals(codeString))
13459                return null;
13460        if ("increase".equals(codeString))
13461          return INCREASE;
13462        if ("decrease".equals(codeString))
13463          return DECREASE;
13464        throw new FHIRException("Unknown MeasureImprovementNotation code '"+codeString+"'");
13465        }
13466        public static boolean isValidCode(String codeString) {
13467            if (codeString == null || "".equals(codeString))
13468                return false;
13469          return Utilities.existsInList(codeString, "increase", "decrease");
13470        }
13471        public String toCode() {
13472          switch (this) {
13473            case INCREASE: return "increase";
13474            case DECREASE: return "decrease";
13475            case NULL: return null;
13476            default: return "?";
13477          }
13478        }
13479        public String getSystem() {
13480          switch (this) {
13481            case INCREASE: return "http://terminology.hl7.org/CodeSystem/measure-improvement-notation";
13482            case DECREASE: return "http://terminology.hl7.org/CodeSystem/measure-improvement-notation";
13483            case NULL: return null;
13484            default: return "?";
13485          }
13486        }
13487        public String getDefinition() {
13488          switch (this) {
13489            case INCREASE: return "";
13490            case DECREASE: return "";
13491            case NULL: return null;
13492            default: return "?";
13493          }
13494        }
13495        public String getDisplay() {
13496          switch (this) {
13497            case INCREASE: return "Increased score indicates improvement";
13498            case DECREASE: return "Decreased score indicates improvement";
13499            case NULL: return null;
13500            default: return "?";
13501          }
13502        }
13503    }
13504
13505  public static class MeasureImprovementNotationEnumFactory implements EnumFactory<MeasureImprovementNotation> {
13506    public MeasureImprovementNotation fromCode(String codeString) throws IllegalArgumentException {
13507      if (codeString == null || "".equals(codeString))
13508            if (codeString == null || "".equals(codeString))
13509                return null;
13510        if ("increase".equals(codeString))
13511          return MeasureImprovementNotation.INCREASE;
13512        if ("decrease".equals(codeString))
13513          return MeasureImprovementNotation.DECREASE;
13514        throw new IllegalArgumentException("Unknown MeasureImprovementNotation code '"+codeString+"'");
13515        }
13516
13517        public Enumeration<MeasureImprovementNotation> fromType(PrimitiveType<?> code) throws FHIRException {
13518          if (code == null)
13519            return null;
13520          if (code.isEmpty())
13521            return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.NULL, code);
13522          String codeString = ((PrimitiveType) code).asStringValue();
13523          if (codeString == null || "".equals(codeString))
13524            return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.NULL, code);
13525        if ("increase".equals(codeString))
13526          return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.INCREASE, code);
13527        if ("decrease".equals(codeString))
13528          return new Enumeration<MeasureImprovementNotation>(this, MeasureImprovementNotation.DECREASE, code);
13529        throw new FHIRException("Unknown MeasureImprovementNotation code '"+codeString+"'");
13530        }
13531    public String toCode(MeasureImprovementNotation code) {
13532       if (code == MeasureImprovementNotation.NULL)
13533           return null;
13534       if (code == MeasureImprovementNotation.INCREASE)
13535        return "increase";
13536      if (code == MeasureImprovementNotation.DECREASE)
13537        return "decrease";
13538      return "?";
13539   }
13540    public String toSystem(MeasureImprovementNotation code) {
13541      return code.getSystem();
13542      }
13543    }
13544
13545    public enum MimeTypes {
13546        /**
13547         * added to help the parsers
13548         */
13549        NULL;
13550        public static MimeTypes fromCode(String codeString) throws FHIRException {
13551            if (codeString == null || "".equals(codeString))
13552                return null;
13553        throw new FHIRException("Unknown MimeTypes code '"+codeString+"'");
13554        }
13555        public static boolean isValidCode(String codeString) {
13556            if (codeString == null || "".equals(codeString))
13557                return false;
13558          return Utilities.existsInList(codeString);
13559        }
13560        public String toCode() {
13561          switch (this) {
13562            case NULL: return null;
13563            default: return "?";
13564          }
13565        }
13566        public String getSystem() {
13567          switch (this) {
13568            case NULL: return null;
13569            default: return "?";
13570          }
13571        }
13572        public String getDefinition() {
13573          switch (this) {
13574            case NULL: return null;
13575            default: return "?";
13576          }
13577        }
13578        public String getDisplay() {
13579          switch (this) {
13580            case NULL: return null;
13581            default: return "?";
13582          }
13583        }
13584    }
13585
13586  public static class MimeTypesEnumFactory implements EnumFactory<MimeTypes> {
13587    public MimeTypes fromCode(String codeString) throws IllegalArgumentException {
13588      if (codeString == null || "".equals(codeString))
13589            if (codeString == null || "".equals(codeString))
13590                return null;
13591        throw new IllegalArgumentException("Unknown MimeTypes code '"+codeString+"'");
13592        }
13593
13594        public Enumeration<MimeTypes> fromType(PrimitiveType<?> code) throws FHIRException {
13595          if (code == null)
13596            return null;
13597          if (code.isEmpty())
13598            return new Enumeration<MimeTypes>(this, MimeTypes.NULL, code);
13599          String codeString = ((PrimitiveType) code).asStringValue();
13600          if (codeString == null || "".equals(codeString))
13601            return new Enumeration<MimeTypes>(this, MimeTypes.NULL, code);
13602        throw new FHIRException("Unknown MimeTypes code '"+codeString+"'");
13603        }
13604    public String toCode(MimeTypes code) {
13605       if (code == MimeTypes.NULL)
13606           return null;
13607       return "?";
13608   }
13609    public String toSystem(MimeTypes code) {
13610      return code.getSystem();
13611      }
13612    }
13613
13614    public enum ObservationStatus {
13615        /**
13616         * The existence of the observation is registered, but there is no result yet available.
13617         */
13618        REGISTERED, 
13619        /**
13620         * This is an initial or interim observation: data may be incomplete or unverified.
13621         */
13622        PRELIMINARY, 
13623        /**
13624         * 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.
13625         */
13626        FINAL, 
13627        /**
13628         * Subsequent to being Final, the observation has been modified subsequent.  This includes updates/new information and corrections.
13629         */
13630        AMENDED, 
13631        /**
13632         * Subsequent to being Final, the observation has been modified to correct an error in the test result.
13633         */
13634        CORRECTED, 
13635        /**
13636         * The observation is unavailable because the measurement was not started or not completed (also sometimes called "aborted").
13637         */
13638        CANCELLED, 
13639        /**
13640         * 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".).
13641         */
13642        ENTEREDINERROR, 
13643        /**
13644         * 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.
13645         */
13646        UNKNOWN, 
13647        /**
13648         * added to help the parsers
13649         */
13650        NULL;
13651        public static ObservationStatus fromCode(String codeString) throws FHIRException {
13652            if (codeString == null || "".equals(codeString))
13653                return null;
13654        if ("registered".equals(codeString))
13655          return REGISTERED;
13656        if ("preliminary".equals(codeString))
13657          return PRELIMINARY;
13658        if ("final".equals(codeString))
13659          return FINAL;
13660        if ("amended".equals(codeString))
13661          return AMENDED;
13662        if ("corrected".equals(codeString))
13663          return CORRECTED;
13664        if ("cancelled".equals(codeString))
13665          return CANCELLED;
13666        if ("entered-in-error".equals(codeString))
13667          return ENTEREDINERROR;
13668        if ("unknown".equals(codeString))
13669          return UNKNOWN;
13670        throw new FHIRException("Unknown ObservationStatus code '"+codeString+"'");
13671        }
13672        public static boolean isValidCode(String codeString) {
13673            if (codeString == null || "".equals(codeString))
13674                return false;
13675          return Utilities.existsInList(codeString, "registered", "preliminary", "final", "amended", "corrected", "cancelled", "entered-in-error", "unknown");
13676        }
13677        public String toCode() {
13678          switch (this) {
13679            case REGISTERED: return "registered";
13680            case PRELIMINARY: return "preliminary";
13681            case FINAL: return "final";
13682            case AMENDED: return "amended";
13683            case CORRECTED: return "corrected";
13684            case CANCELLED: return "cancelled";
13685            case ENTEREDINERROR: return "entered-in-error";
13686            case UNKNOWN: return "unknown";
13687            case NULL: return null;
13688            default: return "?";
13689          }
13690        }
13691        public String getSystem() {
13692          switch (this) {
13693            case REGISTERED: return "http://hl7.org/fhir/observation-status";
13694            case PRELIMINARY: return "http://hl7.org/fhir/observation-status";
13695            case FINAL: return "http://hl7.org/fhir/observation-status";
13696            case AMENDED: return "http://hl7.org/fhir/observation-status";
13697            case CORRECTED: return "http://hl7.org/fhir/observation-status";
13698            case CANCELLED: return "http://hl7.org/fhir/observation-status";
13699            case ENTEREDINERROR: return "http://hl7.org/fhir/observation-status";
13700            case UNKNOWN: return "http://hl7.org/fhir/observation-status";
13701            case NULL: return null;
13702            default: return "?";
13703          }
13704        }
13705        public String getDefinition() {
13706          switch (this) {
13707            case REGISTERED: return "The existence of the observation is registered, but there is no result yet available.";
13708            case PRELIMINARY: return "This is an initial or interim observation: data may be incomplete or unverified.";
13709            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.";
13710            case AMENDED: return "Subsequent to being Final, the observation has been modified subsequent.  This includes updates/new information and corrections.";
13711            case CORRECTED: return "Subsequent to being Final, the observation has been modified to correct an error in the test result.";
13712            case CANCELLED: return "The observation is unavailable because the measurement was not started or not completed (also sometimes called \"aborted\").";
13713            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\".).";
13714            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.";
13715            case NULL: return null;
13716            default: return "?";
13717          }
13718        }
13719        public String getDisplay() {
13720          switch (this) {
13721            case REGISTERED: return "Registered";
13722            case PRELIMINARY: return "Preliminary";
13723            case FINAL: return "Final";
13724            case AMENDED: return "Amended";
13725            case CORRECTED: return "Corrected";
13726            case CANCELLED: return "Cancelled";
13727            case ENTEREDINERROR: return "Entered in Error";
13728            case UNKNOWN: return "Unknown";
13729            case NULL: return null;
13730            default: return "?";
13731          }
13732        }
13733    }
13734
13735  public static class ObservationStatusEnumFactory implements EnumFactory<ObservationStatus> {
13736    public ObservationStatus fromCode(String codeString) throws IllegalArgumentException {
13737      if (codeString == null || "".equals(codeString))
13738            if (codeString == null || "".equals(codeString))
13739                return null;
13740        if ("registered".equals(codeString))
13741          return ObservationStatus.REGISTERED;
13742        if ("preliminary".equals(codeString))
13743          return ObservationStatus.PRELIMINARY;
13744        if ("final".equals(codeString))
13745          return ObservationStatus.FINAL;
13746        if ("amended".equals(codeString))
13747          return ObservationStatus.AMENDED;
13748        if ("corrected".equals(codeString))
13749          return ObservationStatus.CORRECTED;
13750        if ("cancelled".equals(codeString))
13751          return ObservationStatus.CANCELLED;
13752        if ("entered-in-error".equals(codeString))
13753          return ObservationStatus.ENTEREDINERROR;
13754        if ("unknown".equals(codeString))
13755          return ObservationStatus.UNKNOWN;
13756        throw new IllegalArgumentException("Unknown ObservationStatus code '"+codeString+"'");
13757        }
13758
13759        public Enumeration<ObservationStatus> fromType(PrimitiveType<?> code) throws FHIRException {
13760          if (code == null)
13761            return null;
13762          if (code.isEmpty())
13763            return new Enumeration<ObservationStatus>(this, ObservationStatus.NULL, code);
13764          String codeString = ((PrimitiveType) code).asStringValue();
13765          if (codeString == null || "".equals(codeString))
13766            return new Enumeration<ObservationStatus>(this, ObservationStatus.NULL, code);
13767        if ("registered".equals(codeString))
13768          return new Enumeration<ObservationStatus>(this, ObservationStatus.REGISTERED, code);
13769        if ("preliminary".equals(codeString))
13770          return new Enumeration<ObservationStatus>(this, ObservationStatus.PRELIMINARY, code);
13771        if ("final".equals(codeString))
13772          return new Enumeration<ObservationStatus>(this, ObservationStatus.FINAL, code);
13773        if ("amended".equals(codeString))
13774          return new Enumeration<ObservationStatus>(this, ObservationStatus.AMENDED, code);
13775        if ("corrected".equals(codeString))
13776          return new Enumeration<ObservationStatus>(this, ObservationStatus.CORRECTED, code);
13777        if ("cancelled".equals(codeString))
13778          return new Enumeration<ObservationStatus>(this, ObservationStatus.CANCELLED, code);
13779        if ("entered-in-error".equals(codeString))
13780          return new Enumeration<ObservationStatus>(this, ObservationStatus.ENTEREDINERROR, code);
13781        if ("unknown".equals(codeString))
13782          return new Enumeration<ObservationStatus>(this, ObservationStatus.UNKNOWN, code);
13783        throw new FHIRException("Unknown ObservationStatus code '"+codeString+"'");
13784        }
13785    public String toCode(ObservationStatus code) {
13786       if (code == ObservationStatus.NULL)
13787           return null;
13788       if (code == ObservationStatus.REGISTERED)
13789        return "registered";
13790      if (code == ObservationStatus.PRELIMINARY)
13791        return "preliminary";
13792      if (code == ObservationStatus.FINAL)
13793        return "final";
13794      if (code == ObservationStatus.AMENDED)
13795        return "amended";
13796      if (code == ObservationStatus.CORRECTED)
13797        return "corrected";
13798      if (code == ObservationStatus.CANCELLED)
13799        return "cancelled";
13800      if (code == ObservationStatus.ENTEREDINERROR)
13801        return "entered-in-error";
13802      if (code == ObservationStatus.UNKNOWN)
13803        return "unknown";
13804      return "?";
13805   }
13806    public String toSystem(ObservationStatus code) {
13807      return code.getSystem();
13808      }
13809    }
13810
13811    public enum OperationParameterUse {
13812        /**
13813         * This is an input parameter.
13814         */
13815        IN, 
13816        /**
13817         * This is an output parameter.
13818         */
13819        OUT, 
13820        /**
13821         * added to help the parsers
13822         */
13823        NULL;
13824        public static OperationParameterUse fromCode(String codeString) throws FHIRException {
13825            if (codeString == null || "".equals(codeString))
13826                return null;
13827        if ("in".equals(codeString))
13828          return IN;
13829        if ("out".equals(codeString))
13830          return OUT;
13831        throw new FHIRException("Unknown OperationParameterUse code '"+codeString+"'");
13832        }
13833        public static boolean isValidCode(String codeString) {
13834            if (codeString == null || "".equals(codeString))
13835                return false;
13836          return Utilities.existsInList(codeString, "in", "out");
13837        }
13838        public String toCode() {
13839          switch (this) {
13840            case IN: return "in";
13841            case OUT: return "out";
13842            case NULL: return null;
13843            default: return "?";
13844          }
13845        }
13846        public String getSystem() {
13847          switch (this) {
13848            case IN: return "http://hl7.org/fhir/operation-parameter-use";
13849            case OUT: return "http://hl7.org/fhir/operation-parameter-use";
13850            case NULL: return null;
13851            default: return "?";
13852          }
13853        }
13854        public String getDefinition() {
13855          switch (this) {
13856            case IN: return "This is an input parameter.";
13857            case OUT: return "This is an output parameter.";
13858            case NULL: return null;
13859            default: return "?";
13860          }
13861        }
13862        public String getDisplay() {
13863          switch (this) {
13864            case IN: return "In";
13865            case OUT: return "Out";
13866            case NULL: return null;
13867            default: return "?";
13868          }
13869        }
13870    }
13871
13872  public static class OperationParameterUseEnumFactory implements EnumFactory<OperationParameterUse> {
13873    public OperationParameterUse fromCode(String codeString) throws IllegalArgumentException {
13874      if (codeString == null || "".equals(codeString))
13875            if (codeString == null || "".equals(codeString))
13876                return null;
13877        if ("in".equals(codeString))
13878          return OperationParameterUse.IN;
13879        if ("out".equals(codeString))
13880          return OperationParameterUse.OUT;
13881        throw new IllegalArgumentException("Unknown OperationParameterUse code '"+codeString+"'");
13882        }
13883
13884        public Enumeration<OperationParameterUse> fromType(PrimitiveType<?> code) throws FHIRException {
13885          if (code == null)
13886            return null;
13887          if (code.isEmpty())
13888            return new Enumeration<OperationParameterUse>(this, OperationParameterUse.NULL, code);
13889          String codeString = ((PrimitiveType) code).asStringValue();
13890          if (codeString == null || "".equals(codeString))
13891            return new Enumeration<OperationParameterUse>(this, OperationParameterUse.NULL, code);
13892        if ("in".equals(codeString))
13893          return new Enumeration<OperationParameterUse>(this, OperationParameterUse.IN, code);
13894        if ("out".equals(codeString))
13895          return new Enumeration<OperationParameterUse>(this, OperationParameterUse.OUT, code);
13896        throw new FHIRException("Unknown OperationParameterUse code '"+codeString+"'");
13897        }
13898    public String toCode(OperationParameterUse code) {
13899       if (code == OperationParameterUse.NULL)
13900           return null;
13901       if (code == OperationParameterUse.IN)
13902        return "in";
13903      if (code == OperationParameterUse.OUT)
13904        return "out";
13905      return "?";
13906   }
13907    public String toSystem(OperationParameterUse code) {
13908      return code.getSystem();
13909      }
13910    }
13911
13912    public enum PublicationStatus {
13913        /**
13914         * This resource is still under development and is not yet considered to be ready for normal use.
13915         */
13916        DRAFT, 
13917        /**
13918         * This resource is ready for normal use.
13919         */
13920        ACTIVE, 
13921        /**
13922         * This resource has been withdrawn or superseded and should no longer be used.
13923         */
13924        RETIRED, 
13925        /**
13926         * 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.
13927         */
13928        UNKNOWN, 
13929        /**
13930         * added to help the parsers
13931         */
13932        NULL;
13933        public static PublicationStatus fromCode(String codeString) throws FHIRException {
13934            if (codeString == null || "".equals(codeString))
13935                return null;
13936        if ("draft".equals(codeString))
13937          return DRAFT;
13938        if ("active".equals(codeString))
13939          return ACTIVE;
13940        if ("retired".equals(codeString))
13941          return RETIRED;
13942        if ("unknown".equals(codeString))
13943          return UNKNOWN;
13944        throw new FHIRException("Unknown PublicationStatus code '"+codeString+"'");
13945        }
13946        public static boolean isValidCode(String codeString) {
13947            if (codeString == null || "".equals(codeString))
13948                return false;
13949          return Utilities.existsInList(codeString, "draft", "active", "retired", "unknown");
13950        }
13951        public String toCode() {
13952          switch (this) {
13953            case DRAFT: return "draft";
13954            case ACTIVE: return "active";
13955            case RETIRED: return "retired";
13956            case UNKNOWN: return "unknown";
13957            case NULL: return null;
13958            default: return "?";
13959          }
13960        }
13961        public String getSystem() {
13962          switch (this) {
13963            case DRAFT: return "http://hl7.org/fhir/publication-status";
13964            case ACTIVE: return "http://hl7.org/fhir/publication-status";
13965            case RETIRED: return "http://hl7.org/fhir/publication-status";
13966            case UNKNOWN: return "http://hl7.org/fhir/publication-status";
13967            case NULL: return null;
13968            default: return "?";
13969          }
13970        }
13971        public String getDefinition() {
13972          switch (this) {
13973            case DRAFT: return "This resource is still under development and is not yet considered to be ready for normal use.";
13974            case ACTIVE: return "This resource is ready for normal use.";
13975            case RETIRED: return "This resource has been withdrawn or superseded and should no longer be used.";
13976            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.";
13977            case NULL: return null;
13978            default: return "?";
13979          }
13980        }
13981        public String getDisplay() {
13982          switch (this) {
13983            case DRAFT: return "Draft";
13984            case ACTIVE: return "Active";
13985            case RETIRED: return "Retired";
13986            case UNKNOWN: return "Unknown";
13987            case NULL: return null;
13988            default: return "?";
13989          }
13990        }
13991    }
13992
13993  public static class PublicationStatusEnumFactory implements EnumFactory<PublicationStatus> {
13994    public PublicationStatus fromCode(String codeString) throws IllegalArgumentException {
13995      if (codeString == null || "".equals(codeString))
13996            if (codeString == null || "".equals(codeString))
13997                return null;
13998        if ("draft".equals(codeString))
13999          return PublicationStatus.DRAFT;
14000        if ("active".equals(codeString))
14001          return PublicationStatus.ACTIVE;
14002        if ("retired".equals(codeString))
14003          return PublicationStatus.RETIRED;
14004        if ("unknown".equals(codeString))
14005          return PublicationStatus.UNKNOWN;
14006        throw new IllegalArgumentException("Unknown PublicationStatus code '"+codeString+"'");
14007        }
14008
14009        public Enumeration<PublicationStatus> fromType(PrimitiveType<?> code) throws FHIRException {
14010          if (code == null)
14011            return null;
14012          if (code.isEmpty())
14013            return new Enumeration<PublicationStatus>(this, PublicationStatus.NULL, code);
14014          String codeString = ((PrimitiveType) code).asStringValue();
14015          if (codeString == null || "".equals(codeString))
14016            return new Enumeration<PublicationStatus>(this, PublicationStatus.NULL, code);
14017        if ("draft".equals(codeString))
14018          return new Enumeration<PublicationStatus>(this, PublicationStatus.DRAFT, code);
14019        if ("active".equals(codeString))
14020          return new Enumeration<PublicationStatus>(this, PublicationStatus.ACTIVE, code);
14021        if ("retired".equals(codeString))
14022          return new Enumeration<PublicationStatus>(this, PublicationStatus.RETIRED, code);
14023        if ("unknown".equals(codeString))
14024          return new Enumeration<PublicationStatus>(this, PublicationStatus.UNKNOWN, code);
14025        throw new FHIRException("Unknown PublicationStatus code '"+codeString+"'");
14026        }
14027    public String toCode(PublicationStatus code) {
14028       if (code == PublicationStatus.NULL)
14029           return null;
14030       if (code == PublicationStatus.DRAFT)
14031        return "draft";
14032      if (code == PublicationStatus.ACTIVE)
14033        return "active";
14034      if (code == PublicationStatus.RETIRED)
14035        return "retired";
14036      if (code == PublicationStatus.UNKNOWN)
14037        return "unknown";
14038      return "?";
14039   }
14040    public String toSystem(PublicationStatus code) {
14041      return code.getSystem();
14042      }
14043    }
14044
14045    public enum QuantityComparator {
14046        /**
14047         * The actual value is less than the given value.
14048         */
14049        LESS_THAN, 
14050        /**
14051         * The actual value is less than or equal to the given value.
14052         */
14053        LESS_OR_EQUAL, 
14054        /**
14055         * The actual value is greater than or equal to the given value.
14056         */
14057        GREATER_OR_EQUAL, 
14058        /**
14059         * The actual value is greater than the given value.
14060         */
14061        GREATER_THAN, 
14062        /**
14063         * The actual value is sufficient for the total quantity to equal the given value.
14064         */
14065        AD, 
14066        /**
14067         * added to help the parsers
14068         */
14069        NULL;
14070        public static QuantityComparator fromCode(String codeString) throws FHIRException {
14071            if (codeString == null || "".equals(codeString))
14072                return null;
14073        if ("<".equals(codeString))
14074          return LESS_THAN;
14075        if ("<=".equals(codeString))
14076          return LESS_OR_EQUAL;
14077        if (">=".equals(codeString))
14078          return GREATER_OR_EQUAL;
14079        if (">".equals(codeString))
14080          return GREATER_THAN;
14081        if ("ad".equals(codeString))
14082          return AD;
14083        throw new FHIRException("Unknown QuantityComparator code '"+codeString+"'");
14084        }
14085        public static boolean isValidCode(String codeString) {
14086            if (codeString == null || "".equals(codeString))
14087                return false;
14088          return Utilities.existsInList(codeString, "<", "<=", ">=", ">", "ad");
14089        }
14090        public String toCode() {
14091          switch (this) {
14092            case LESS_THAN: return "<";
14093            case LESS_OR_EQUAL: return "<=";
14094            case GREATER_OR_EQUAL: return ">=";
14095            case GREATER_THAN: return ">";
14096            case AD: return "ad";
14097            case NULL: return null;
14098            default: return "?";
14099          }
14100        }
14101        public String getSystem() {
14102          switch (this) {
14103            case LESS_THAN: return "http://hl7.org/fhir/quantity-comparator";
14104            case LESS_OR_EQUAL: return "http://hl7.org/fhir/quantity-comparator";
14105            case GREATER_OR_EQUAL: return "http://hl7.org/fhir/quantity-comparator";
14106            case GREATER_THAN: return "http://hl7.org/fhir/quantity-comparator";
14107            case AD: return "http://hl7.org/fhir/quantity-comparator";
14108            case NULL: return null;
14109            default: return "?";
14110          }
14111        }
14112        public String getDefinition() {
14113          switch (this) {
14114            case LESS_THAN: return "The actual value is less than the given value.";
14115            case LESS_OR_EQUAL: return "The actual value is less than or equal to the given value.";
14116            case GREATER_OR_EQUAL: return "The actual value is greater than or equal to the given value.";
14117            case GREATER_THAN: return "The actual value is greater than the given value.";
14118            case AD: return "The actual value is sufficient for the total quantity to equal the given value.";
14119            case NULL: return null;
14120            default: return "?";
14121          }
14122        }
14123        public String getDisplay() {
14124          switch (this) {
14125            case LESS_THAN: return "Less than";
14126            case LESS_OR_EQUAL: return "Less or Equal to";
14127            case GREATER_OR_EQUAL: return "Greater or Equal to";
14128            case GREATER_THAN: return "Greater than";
14129            case AD: return "Sufficient to achieve this total quantity";
14130            case NULL: return null;
14131            default: return "?";
14132          }
14133        }
14134    }
14135
14136  public static class QuantityComparatorEnumFactory implements EnumFactory<QuantityComparator> {
14137    public QuantityComparator fromCode(String codeString) throws IllegalArgumentException {
14138      if (codeString == null || "".equals(codeString))
14139            if (codeString == null || "".equals(codeString))
14140                return null;
14141        if ("<".equals(codeString))
14142          return QuantityComparator.LESS_THAN;
14143        if ("<=".equals(codeString))
14144          return QuantityComparator.LESS_OR_EQUAL;
14145        if (">=".equals(codeString))
14146          return QuantityComparator.GREATER_OR_EQUAL;
14147        if (">".equals(codeString))
14148          return QuantityComparator.GREATER_THAN;
14149        if ("ad".equals(codeString))
14150          return QuantityComparator.AD;
14151        throw new IllegalArgumentException("Unknown QuantityComparator code '"+codeString+"'");
14152        }
14153
14154        public Enumeration<QuantityComparator> fromType(PrimitiveType<?> code) throws FHIRException {
14155          if (code == null)
14156            return null;
14157          if (code.isEmpty())
14158            return new Enumeration<QuantityComparator>(this, QuantityComparator.NULL, code);
14159          String codeString = ((PrimitiveType) code).asStringValue();
14160          if (codeString == null || "".equals(codeString))
14161            return new Enumeration<QuantityComparator>(this, QuantityComparator.NULL, code);
14162        if ("<".equals(codeString))
14163          return new Enumeration<QuantityComparator>(this, QuantityComparator.LESS_THAN, code);
14164        if ("<=".equals(codeString))
14165          return new Enumeration<QuantityComparator>(this, QuantityComparator.LESS_OR_EQUAL, code);
14166        if (">=".equals(codeString))
14167          return new Enumeration<QuantityComparator>(this, QuantityComparator.GREATER_OR_EQUAL, code);
14168        if (">".equals(codeString))
14169          return new Enumeration<QuantityComparator>(this, QuantityComparator.GREATER_THAN, code);
14170        if ("ad".equals(codeString))
14171          return new Enumeration<QuantityComparator>(this, QuantityComparator.AD, code);
14172        throw new FHIRException("Unknown QuantityComparator code '"+codeString+"'");
14173        }
14174    public String toCode(QuantityComparator code) {
14175       if (code == QuantityComparator.NULL)
14176           return null;
14177       if (code == QuantityComparator.LESS_THAN)
14178        return "<";
14179      if (code == QuantityComparator.LESS_OR_EQUAL)
14180        return "<=";
14181      if (code == QuantityComparator.GREATER_OR_EQUAL)
14182        return ">=";
14183      if (code == QuantityComparator.GREATER_THAN)
14184        return ">";
14185      if (code == QuantityComparator.AD)
14186        return "ad";
14187      return "?";
14188   }
14189    public String toSystem(QuantityComparator code) {
14190      return code.getSystem();
14191      }
14192    }
14193
14194    public enum RequestIntent {
14195        /**
14196         * 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.
14197         */
14198        PROPOSAL, 
14199        /**
14200         * The request represents an intention to ensure something occurs without providing an authorization for others to act.
14201         */
14202        PLAN, 
14203        /**
14204         * The request represents a legally binding instruction authored by a Patient or RelatedPerson.
14205         */
14206        DIRECTIVE, 
14207        /**
14208         * The request represents a request/demand and authorization for action by the requestor.
14209         */
14210        ORDER, 
14211        /**
14212         * The request represents an original authorization for action.
14213         */
14214        ORIGINALORDER, 
14215        /**
14216         * 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.
14217         */
14218        REFLEXORDER, 
14219        /**
14220         * 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.
14221         */
14222        FILLERORDER, 
14223        /**
14224         * 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.
14225         */
14226        INSTANCEORDER, 
14227        /**
14228         * 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.
14229         */
14230        OPTION, 
14231        /**
14232         * added to help the parsers
14233         */
14234        NULL;
14235        public static RequestIntent fromCode(String codeString) throws FHIRException {
14236            if (codeString == null || "".equals(codeString))
14237                return null;
14238        if ("proposal".equals(codeString))
14239          return PROPOSAL;
14240        if ("plan".equals(codeString))
14241          return PLAN;
14242        if ("directive".equals(codeString))
14243          return DIRECTIVE;
14244        if ("order".equals(codeString))
14245          return ORDER;
14246        if ("original-order".equals(codeString))
14247          return ORIGINALORDER;
14248        if ("reflex-order".equals(codeString))
14249          return REFLEXORDER;
14250        if ("filler-order".equals(codeString))
14251          return FILLERORDER;
14252        if ("instance-order".equals(codeString))
14253          return INSTANCEORDER;
14254        if ("option".equals(codeString))
14255          return OPTION;
14256        throw new FHIRException("Unknown RequestIntent code '"+codeString+"'");
14257        }
14258        public static boolean isValidCode(String codeString) {
14259            if (codeString == null || "".equals(codeString))
14260                return false;
14261          return Utilities.existsInList(codeString, "proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option");
14262        }
14263        public String toCode() {
14264          switch (this) {
14265            case PROPOSAL: return "proposal";
14266            case PLAN: return "plan";
14267            case DIRECTIVE: return "directive";
14268            case ORDER: return "order";
14269            case ORIGINALORDER: return "original-order";
14270            case REFLEXORDER: return "reflex-order";
14271            case FILLERORDER: return "filler-order";
14272            case INSTANCEORDER: return "instance-order";
14273            case OPTION: return "option";
14274            case NULL: return null;
14275            default: return "?";
14276          }
14277        }
14278        public String getSystem() {
14279          switch (this) {
14280            case PROPOSAL: return "http://hl7.org/fhir/request-intent";
14281            case PLAN: return "http://hl7.org/fhir/request-intent";
14282            case DIRECTIVE: return "http://hl7.org/fhir/request-intent";
14283            case ORDER: return "http://hl7.org/fhir/request-intent";
14284            case ORIGINALORDER: return "http://hl7.org/fhir/request-intent";
14285            case REFLEXORDER: return "http://hl7.org/fhir/request-intent";
14286            case FILLERORDER: return "http://hl7.org/fhir/request-intent";
14287            case INSTANCEORDER: return "http://hl7.org/fhir/request-intent";
14288            case OPTION: return "http://hl7.org/fhir/request-intent";
14289            case NULL: return null;
14290            default: return "?";
14291          }
14292        }
14293        public String getDefinition() {
14294          switch (this) {
14295            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.";
14296            case PLAN: return "The request represents an intention to ensure something occurs without providing an authorization for others to act.";
14297            case DIRECTIVE: return "The request represents a legally binding instruction authored by a Patient or RelatedPerson.";
14298            case ORDER: return "The request represents a request/demand and authorization for action by the requestor.";
14299            case ORIGINALORDER: return "The request represents an original authorization for action.";
14300            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.";
14301            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.";
14302            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.";
14303            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.";
14304            case NULL: return null;
14305            default: return "?";
14306          }
14307        }
14308        public String getDisplay() {
14309          switch (this) {
14310            case PROPOSAL: return "Proposal";
14311            case PLAN: return "Plan";
14312            case DIRECTIVE: return "Directive";
14313            case ORDER: return "Order";
14314            case ORIGINALORDER: return "Original Order";
14315            case REFLEXORDER: return "Reflex Order";
14316            case FILLERORDER: return "Filler Order";
14317            case INSTANCEORDER: return "Instance Order";
14318            case OPTION: return "Option";
14319            case NULL: return null;
14320            default: return "?";
14321          }
14322        }
14323    }
14324
14325  public static class RequestIntentEnumFactory implements EnumFactory<RequestIntent> {
14326    public RequestIntent fromCode(String codeString) throws IllegalArgumentException {
14327      if (codeString == null || "".equals(codeString))
14328            if (codeString == null || "".equals(codeString))
14329                return null;
14330        if ("proposal".equals(codeString))
14331          return RequestIntent.PROPOSAL;
14332        if ("plan".equals(codeString))
14333          return RequestIntent.PLAN;
14334        if ("directive".equals(codeString))
14335          return RequestIntent.DIRECTIVE;
14336        if ("order".equals(codeString))
14337          return RequestIntent.ORDER;
14338        if ("original-order".equals(codeString))
14339          return RequestIntent.ORIGINALORDER;
14340        if ("reflex-order".equals(codeString))
14341          return RequestIntent.REFLEXORDER;
14342        if ("filler-order".equals(codeString))
14343          return RequestIntent.FILLERORDER;
14344        if ("instance-order".equals(codeString))
14345          return RequestIntent.INSTANCEORDER;
14346        if ("option".equals(codeString))
14347          return RequestIntent.OPTION;
14348        throw new IllegalArgumentException("Unknown RequestIntent code '"+codeString+"'");
14349        }
14350
14351        public Enumeration<RequestIntent> fromType(PrimitiveType<?> code) throws FHIRException {
14352          if (code == null)
14353            return null;
14354          if (code.isEmpty())
14355            return new Enumeration<RequestIntent>(this, RequestIntent.NULL, code);
14356          String codeString = ((PrimitiveType) code).asStringValue();
14357          if (codeString == null || "".equals(codeString))
14358            return new Enumeration<RequestIntent>(this, RequestIntent.NULL, code);
14359        if ("proposal".equals(codeString))
14360          return new Enumeration<RequestIntent>(this, RequestIntent.PROPOSAL, code);
14361        if ("plan".equals(codeString))
14362          return new Enumeration<RequestIntent>(this, RequestIntent.PLAN, code);
14363        if ("directive".equals(codeString))
14364          return new Enumeration<RequestIntent>(this, RequestIntent.DIRECTIVE, code);
14365        if ("order".equals(codeString))
14366          return new Enumeration<RequestIntent>(this, RequestIntent.ORDER, code);
14367        if ("original-order".equals(codeString))
14368          return new Enumeration<RequestIntent>(this, RequestIntent.ORIGINALORDER, code);
14369        if ("reflex-order".equals(codeString))
14370          return new Enumeration<RequestIntent>(this, RequestIntent.REFLEXORDER, code);
14371        if ("filler-order".equals(codeString))
14372          return new Enumeration<RequestIntent>(this, RequestIntent.FILLERORDER, code);
14373        if ("instance-order".equals(codeString))
14374          return new Enumeration<RequestIntent>(this, RequestIntent.INSTANCEORDER, code);
14375        if ("option".equals(codeString))
14376          return new Enumeration<RequestIntent>(this, RequestIntent.OPTION, code);
14377        throw new FHIRException("Unknown RequestIntent code '"+codeString+"'");
14378        }
14379    public String toCode(RequestIntent code) {
14380       if (code == RequestIntent.NULL)
14381           return null;
14382       if (code == RequestIntent.PROPOSAL)
14383        return "proposal";
14384      if (code == RequestIntent.PLAN)
14385        return "plan";
14386      if (code == RequestIntent.DIRECTIVE)
14387        return "directive";
14388      if (code == RequestIntent.ORDER)
14389        return "order";
14390      if (code == RequestIntent.ORIGINALORDER)
14391        return "original-order";
14392      if (code == RequestIntent.REFLEXORDER)
14393        return "reflex-order";
14394      if (code == RequestIntent.FILLERORDER)
14395        return "filler-order";
14396      if (code == RequestIntent.INSTANCEORDER)
14397        return "instance-order";
14398      if (code == RequestIntent.OPTION)
14399        return "option";
14400      return "?";
14401   }
14402    public String toSystem(RequestIntent code) {
14403      return code.getSystem();
14404      }
14405    }
14406
14407    public enum RequestPriority {
14408        /**
14409         * The request has normal priority.
14410         */
14411        ROUTINE, 
14412        /**
14413         * The request should be actioned promptly - higher priority than routine.
14414         */
14415        URGENT, 
14416        /**
14417         * The request should be actioned as soon as possible - higher priority than urgent.
14418         */
14419        ASAP, 
14420        /**
14421         * The request should be actioned immediately - highest possible priority.  E.g. an emergency.
14422         */
14423        STAT, 
14424        /**
14425         * added to help the parsers
14426         */
14427        NULL;
14428        public static RequestPriority fromCode(String codeString) throws FHIRException {
14429            if (codeString == null || "".equals(codeString))
14430                return null;
14431        if ("routine".equals(codeString))
14432          return ROUTINE;
14433        if ("urgent".equals(codeString))
14434          return URGENT;
14435        if ("asap".equals(codeString))
14436          return ASAP;
14437        if ("stat".equals(codeString))
14438          return STAT;
14439        throw new FHIRException("Unknown RequestPriority code '"+codeString+"'");
14440        }
14441        public static boolean isValidCode(String codeString) {
14442            if (codeString == null || "".equals(codeString))
14443                return false;
14444          return Utilities.existsInList(codeString, "routine", "urgent", "asap", "stat");
14445        }
14446        public String toCode() {
14447          switch (this) {
14448            case ROUTINE: return "routine";
14449            case URGENT: return "urgent";
14450            case ASAP: return "asap";
14451            case STAT: return "stat";
14452            case NULL: return null;
14453            default: return "?";
14454          }
14455        }
14456        public String getSystem() {
14457          switch (this) {
14458            case ROUTINE: return "http://hl7.org/fhir/request-priority";
14459            case URGENT: return "http://hl7.org/fhir/request-priority";
14460            case ASAP: return "http://hl7.org/fhir/request-priority";
14461            case STAT: return "http://hl7.org/fhir/request-priority";
14462            case NULL: return null;
14463            default: return "?";
14464          }
14465        }
14466        public String getDefinition() {
14467          switch (this) {
14468            case ROUTINE: return "The request has normal priority.";
14469            case URGENT: return "The request should be actioned promptly - higher priority than routine.";
14470            case ASAP: return "The request should be actioned as soon as possible - higher priority than urgent.";
14471            case STAT: return "The request should be actioned immediately - highest possible priority.  E.g. an emergency.";
14472            case NULL: return null;
14473            default: return "?";
14474          }
14475        }
14476        public String getDisplay() {
14477          switch (this) {
14478            case ROUTINE: return "Routine";
14479            case URGENT: return "Urgent";
14480            case ASAP: return "ASAP";
14481            case STAT: return "STAT";
14482            case NULL: return null;
14483            default: return "?";
14484          }
14485        }
14486    }
14487
14488  public static class RequestPriorityEnumFactory implements EnumFactory<RequestPriority> {
14489    public RequestPriority fromCode(String codeString) throws IllegalArgumentException {
14490      if (codeString == null || "".equals(codeString))
14491            if (codeString == null || "".equals(codeString))
14492                return null;
14493        if ("routine".equals(codeString))
14494          return RequestPriority.ROUTINE;
14495        if ("urgent".equals(codeString))
14496          return RequestPriority.URGENT;
14497        if ("asap".equals(codeString))
14498          return RequestPriority.ASAP;
14499        if ("stat".equals(codeString))
14500          return RequestPriority.STAT;
14501        throw new IllegalArgumentException("Unknown RequestPriority code '"+codeString+"'");
14502        }
14503
14504        public Enumeration<RequestPriority> fromType(PrimitiveType<?> code) throws FHIRException {
14505          if (code == null)
14506            return null;
14507          if (code.isEmpty())
14508            return new Enumeration<RequestPriority>(this, RequestPriority.NULL, code);
14509          String codeString = ((PrimitiveType) code).asStringValue();
14510          if (codeString == null || "".equals(codeString))
14511            return new Enumeration<RequestPriority>(this, RequestPriority.NULL, code);
14512        if ("routine".equals(codeString))
14513          return new Enumeration<RequestPriority>(this, RequestPriority.ROUTINE, code);
14514        if ("urgent".equals(codeString))
14515          return new Enumeration<RequestPriority>(this, RequestPriority.URGENT, code);
14516        if ("asap".equals(codeString))
14517          return new Enumeration<RequestPriority>(this, RequestPriority.ASAP, code);
14518        if ("stat".equals(codeString))
14519          return new Enumeration<RequestPriority>(this, RequestPriority.STAT, code);
14520        throw new FHIRException("Unknown RequestPriority code '"+codeString+"'");
14521        }
14522    public String toCode(RequestPriority code) {
14523       if (code == RequestPriority.NULL)
14524           return null;
14525       if (code == RequestPriority.ROUTINE)
14526        return "routine";
14527      if (code == RequestPriority.URGENT)
14528        return "urgent";
14529      if (code == RequestPriority.ASAP)
14530        return "asap";
14531      if (code == RequestPriority.STAT)
14532        return "stat";
14533      return "?";
14534   }
14535    public String toSystem(RequestPriority code) {
14536      return code.getSystem();
14537      }
14538    }
14539
14540    public enum RequestStatus {
14541        /**
14542         * The request has been created but is not yet complete or ready for action.
14543         */
14544        DRAFT, 
14545        /**
14546         * The request is in force and ready to be acted upon.
14547         */
14548        ACTIVE, 
14549        /**
14550         * The request (and any implicit authorization to act) has been temporarily withdrawn but is expected to resume in the future.
14551         */
14552        ONHOLD, 
14553        /**
14554         * 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.
14555         */
14556        REVOKED, 
14557        /**
14558         * The activity described by the request has been fully performed.  No further activity will occur.
14559         */
14560        COMPLETED, 
14561        /**
14562         * 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".).
14563         */
14564        ENTEREDINERROR, 
14565        /**
14566         * 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.
14567         */
14568        UNKNOWN, 
14569        /**
14570         * added to help the parsers
14571         */
14572        NULL;
14573        public static RequestStatus fromCode(String codeString) throws FHIRException {
14574            if (codeString == null || "".equals(codeString))
14575                return null;
14576        if ("draft".equals(codeString))
14577          return DRAFT;
14578        if ("active".equals(codeString))
14579          return ACTIVE;
14580        if ("on-hold".equals(codeString))
14581          return ONHOLD;
14582        if ("revoked".equals(codeString))
14583          return REVOKED;
14584        if ("completed".equals(codeString))
14585          return COMPLETED;
14586        if ("entered-in-error".equals(codeString))
14587          return ENTEREDINERROR;
14588        if ("unknown".equals(codeString))
14589          return UNKNOWN;
14590        throw new FHIRException("Unknown RequestStatus code '"+codeString+"'");
14591        }
14592        public static boolean isValidCode(String codeString) {
14593            if (codeString == null || "".equals(codeString))
14594                return false;
14595          return Utilities.existsInList(codeString, "draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown");
14596        }
14597        public String toCode() {
14598          switch (this) {
14599            case DRAFT: return "draft";
14600            case ACTIVE: return "active";
14601            case ONHOLD: return "on-hold";
14602            case REVOKED: return "revoked";
14603            case COMPLETED: return "completed";
14604            case ENTEREDINERROR: return "entered-in-error";
14605            case UNKNOWN: return "unknown";
14606            case NULL: return null;
14607            default: return "?";
14608          }
14609        }
14610        public String getSystem() {
14611          switch (this) {
14612            case DRAFT: return "http://hl7.org/fhir/request-status";
14613            case ACTIVE: return "http://hl7.org/fhir/request-status";
14614            case ONHOLD: return "http://hl7.org/fhir/request-status";
14615            case REVOKED: return "http://hl7.org/fhir/request-status";
14616            case COMPLETED: return "http://hl7.org/fhir/request-status";
14617            case ENTEREDINERROR: return "http://hl7.org/fhir/request-status";
14618            case UNKNOWN: return "http://hl7.org/fhir/request-status";
14619            case NULL: return null;
14620            default: return "?";
14621          }
14622        }
14623        public String getDefinition() {
14624          switch (this) {
14625            case DRAFT: return "The request has been created but is not yet complete or ready for action.";
14626            case ACTIVE: return "The request is in force and ready to be acted upon.";
14627            case ONHOLD: return "The request (and any implicit authorization to act) has been temporarily withdrawn but is expected to resume in the future.";
14628            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.";
14629            case COMPLETED: return "The activity described by the request has been fully performed.  No further activity will occur.";
14630            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\".).";
14631            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.";
14632            case NULL: return null;
14633            default: return "?";
14634          }
14635        }
14636        public String getDisplay() {
14637          switch (this) {
14638            case DRAFT: return "Draft";
14639            case ACTIVE: return "Active";
14640            case ONHOLD: return "On Hold";
14641            case REVOKED: return "Revoked";
14642            case COMPLETED: return "Completed";
14643            case ENTEREDINERROR: return "Entered in Error";
14644            case UNKNOWN: return "Unknown";
14645            case NULL: return null;
14646            default: return "?";
14647          }
14648        }
14649    }
14650
14651  public static class RequestStatusEnumFactory implements EnumFactory<RequestStatus> {
14652    public RequestStatus fromCode(String codeString) throws IllegalArgumentException {
14653      if (codeString == null || "".equals(codeString))
14654            if (codeString == null || "".equals(codeString))
14655                return null;
14656        if ("draft".equals(codeString))
14657          return RequestStatus.DRAFT;
14658        if ("active".equals(codeString))
14659          return RequestStatus.ACTIVE;
14660        if ("on-hold".equals(codeString))
14661          return RequestStatus.ONHOLD;
14662        if ("revoked".equals(codeString))
14663          return RequestStatus.REVOKED;
14664        if ("completed".equals(codeString))
14665          return RequestStatus.COMPLETED;
14666        if ("entered-in-error".equals(codeString))
14667          return RequestStatus.ENTEREDINERROR;
14668        if ("unknown".equals(codeString))
14669          return RequestStatus.UNKNOWN;
14670        throw new IllegalArgumentException("Unknown RequestStatus code '"+codeString+"'");
14671        }
14672
14673        public Enumeration<RequestStatus> fromType(PrimitiveType<?> code) throws FHIRException {
14674          if (code == null)
14675            return null;
14676          if (code.isEmpty())
14677            return new Enumeration<RequestStatus>(this, RequestStatus.NULL, code);
14678          String codeString = ((PrimitiveType) code).asStringValue();
14679          if (codeString == null || "".equals(codeString))
14680            return new Enumeration<RequestStatus>(this, RequestStatus.NULL, code);
14681        if ("draft".equals(codeString))
14682          return new Enumeration<RequestStatus>(this, RequestStatus.DRAFT, code);
14683        if ("active".equals(codeString))
14684          return new Enumeration<RequestStatus>(this, RequestStatus.ACTIVE, code);
14685        if ("on-hold".equals(codeString))
14686          return new Enumeration<RequestStatus>(this, RequestStatus.ONHOLD, code);
14687        if ("revoked".equals(codeString))
14688          return new Enumeration<RequestStatus>(this, RequestStatus.REVOKED, code);
14689        if ("completed".equals(codeString))
14690          return new Enumeration<RequestStatus>(this, RequestStatus.COMPLETED, code);
14691        if ("entered-in-error".equals(codeString))
14692          return new Enumeration<RequestStatus>(this, RequestStatus.ENTEREDINERROR, code);
14693        if ("unknown".equals(codeString))
14694          return new Enumeration<RequestStatus>(this, RequestStatus.UNKNOWN, code);
14695        throw new FHIRException("Unknown RequestStatus code '"+codeString+"'");
14696        }
14697    public String toCode(RequestStatus code) {
14698       if (code == RequestStatus.NULL)
14699           return null;
14700       if (code == RequestStatus.DRAFT)
14701        return "draft";
14702      if (code == RequestStatus.ACTIVE)
14703        return "active";
14704      if (code == RequestStatus.ONHOLD)
14705        return "on-hold";
14706      if (code == RequestStatus.REVOKED)
14707        return "revoked";
14708      if (code == RequestStatus.COMPLETED)
14709        return "completed";
14710      if (code == RequestStatus.ENTEREDINERROR)
14711        return "entered-in-error";
14712      if (code == RequestStatus.UNKNOWN)
14713        return "unknown";
14714      return "?";
14715   }
14716    public String toSystem(RequestStatus code) {
14717      return code.getSystem();
14718      }
14719    }
14720
14721    public enum ResourceTypeEnum {
14722        /**
14723         * 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.
14724         */
14725        ACCOUNT, 
14726        /**
14727         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
14728         */
14729        ACTIVITYDEFINITION, 
14730        /**
14731         * 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.
14732         */
14733        ACTORDEFINITION, 
14734        /**
14735         * 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).
14736         */
14737        ADMINISTRABLEPRODUCTDEFINITION, 
14738        /**
14739         * An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research participant. 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.  Adverse events can be reported by healthcare providers, patients, caregivers or by medical products manufacturers.  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.
14740         */
14741        ADVERSEEVENT, 
14742        /**
14743         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
14744         */
14745        ALLERGYINTOLERANCE, 
14746        /**
14747         * 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).
14748         */
14749        APPOINTMENT, 
14750        /**
14751         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
14752         */
14753        APPOINTMENTRESPONSE, 
14754        /**
14755         * This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.
14756         */
14757        ARTIFACTASSESSMENT, 
14758        /**
14759         * A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.
14760         */
14761        AUDITEVENT, 
14762        /**
14763         * 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.
14764         */
14765        BASIC, 
14766        /**
14767         * 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.
14768         */
14769        BINARY, 
14770        /**
14771         * A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.
14772         */
14773        BIOLOGICALLYDERIVEDPRODUCT, 
14774        /**
14775         * A record of dispensation of a biologically derived product.
14776         */
14777        BIOLOGICALLYDERIVEDPRODUCTDISPENSE, 
14778        /**
14779         * 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.
14780         */
14781        BODYSTRUCTURE, 
14782        /**
14783         * A container for a collection of resources.
14784         */
14785        BUNDLE, 
14786        /**
14787         * 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.
14788         */
14789        CAPABILITYSTATEMENT, 
14790        /**
14791         * 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.
14792         */
14793        CAREPLAN, 
14794        /**
14795         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.
14796         */
14797        CARETEAM, 
14798        /**
14799         * 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.
14800         */
14801        CHARGEITEM, 
14802        /**
14803         * 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.
14804         */
14805        CHARGEITEMDEFINITION, 
14806        /**
14807         * 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.
14808         */
14809        CITATION, 
14810        /**
14811         * 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.
14812         */
14813        CLAIM, 
14814        /**
14815         * This resource provides the adjudication details from the processing of a Claim resource.
14816         */
14817        CLAIMRESPONSE, 
14818        /**
14819         * 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.
14820         */
14821        CLINICALIMPRESSION, 
14822        /**
14823         * A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.
14824         */
14825        CLINICALUSEDEFINITION, 
14826        /**
14827         * 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.
14828         */
14829        CODESYSTEM, 
14830        /**
14831         * 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.
14832         */
14833        COMMUNICATION, 
14834        /**
14835         * 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.
14836         */
14837        COMMUNICATIONREQUEST, 
14838        /**
14839         * A compartment definition that defines how resources are accessed on a server.
14840         */
14841        COMPARTMENTDEFINITION, 
14842        /**
14843         * 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.).
14844         */
14845        COMPOSITION, 
14846        /**
14847         * 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.
14848         */
14849        CONCEPTMAP, 
14850        /**
14851         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
14852         */
14853        CONDITION, 
14854        /**
14855         * A definition of a condition and information relevant to managing it.
14856         */
14857        CONDITIONDEFINITION, 
14858        /**
14859         * 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.
14860         */
14861        CONSENT, 
14862        /**
14863         * Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.
14864         */
14865        CONTRACT, 
14866        /**
14867         * Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.
14868         */
14869        COVERAGE, 
14870        /**
14871         * 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.
14872         */
14873        COVERAGEELIGIBILITYREQUEST, 
14874        /**
14875         * This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.
14876         */
14877        COVERAGEELIGIBILITYRESPONSE, 
14878        /**
14879         * 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, gaps in care, etc.
14880         */
14881        DETECTEDISSUE, 
14882        /**
14883         * 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.
14884         */
14885        DEVICE, 
14886        /**
14887         * A record of association of a device.
14888         */
14889        DEVICEASSOCIATION, 
14890        /**
14891         * This is a specialized resource that defines the characteristics and capabilities of a device.
14892         */
14893        DEVICEDEFINITION, 
14894        /**
14895         * 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.
14896         */
14897        DEVICEDISPENSE, 
14898        /**
14899         * Describes a measurement, calculation or setting capability of a device.  The DeviceMetric resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable. 
14900         */
14901        DEVICEMETRIC, 
14902        /**
14903         * 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.
14904         */
14905        DEVICEREQUEST, 
14906        /**
14907         * 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.
14908         */
14909        DEVICEUSAGE, 
14910        /**
14911         * 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.
14912         */
14913        DIAGNOSTICREPORT, 
14914        /**
14915         * 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.
14916         */
14917        DOCUMENTREFERENCE, 
14918        /**
14919         * 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).
14920         */
14921        ENCOUNTER, 
14922        /**
14923         * A record of significant events/milestones key data throughout the history of an Encounter
14924         */
14925        ENCOUNTERHISTORY, 
14926        /**
14927         * 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.
14928         */
14929        ENDPOINT, 
14930        /**
14931         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
14932         */
14933        ENROLLMENTREQUEST, 
14934        /**
14935         * This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.
14936         */
14937        ENROLLMENTRESPONSE, 
14938        /**
14939         * 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.
14940         */
14941        EPISODEOFCARE, 
14942        /**
14943         * The EventDefinition resource provides a reusable description of when a particular event can occur.
14944         */
14945        EVENTDEFINITION, 
14946        /**
14947         * 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.
14948         */
14949        EVIDENCE, 
14950        /**
14951         * 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.
14952         */
14953        EVIDENCEREPORT, 
14954        /**
14955         * The EvidenceVariable resource describes an element that knowledge (Evidence) is about.
14956         */
14957        EVIDENCEVARIABLE, 
14958        /**
14959         * A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
14960         */
14961        EXAMPLESCENARIO, 
14962        /**
14963         * 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.
14964         */
14965        EXPLANATIONOFBENEFIT, 
14966        /**
14967         * Significant health conditions for a person related to the patient relevant in the context of care for the patient.
14968         */
14969        FAMILYMEMBERHISTORY, 
14970        /**
14971         * Prospective warnings of potential issues when providing care to the patient.
14972         */
14973        FLAG, 
14974        /**
14975         * 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.
14976         */
14977        FORMULARYITEM, 
14978        /**
14979         * A set of analyses performed to analyze and generate genomic data.
14980         */
14981        GENOMICSTUDY, 
14982        /**
14983         * 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.
14984         */
14985        GOAL, 
14986        /**
14987         * 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.
14988         */
14989        GRAPHDEFINITION, 
14990        /**
14991         * 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.
14992         */
14993        GROUP, 
14994        /**
14995         * 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.
14996         */
14997        GUIDANCERESPONSE, 
14998        /**
14999         * 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.
15000         */
15001        HEALTHCARESERVICE, 
15002        /**
15003         * 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.
15004         */
15005        IMAGINGSELECTION, 
15006        /**
15007         * 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.
15008         */
15009        IMAGINGSTUDY, 
15010        /**
15011         * 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.
15012         */
15013        IMMUNIZATION, 
15014        /**
15015         * Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those  recommendations.
15016         */
15017        IMMUNIZATIONEVALUATION, 
15018        /**
15019         * A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.
15020         */
15021        IMMUNIZATIONRECOMMENDATION, 
15022        /**
15023         * 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.
15024         */
15025        IMPLEMENTATIONGUIDE, 
15026        /**
15027         * An ingredient of a manufactured item or pharmaceutical product.
15028         */
15029        INGREDIENT, 
15030        /**
15031         * Details of a Health Insurance product/plan provided by an organization.
15032         */
15033        INSURANCEPLAN, 
15034        /**
15035         * functional description of an inventory item used in inventory and supply-related workflows.
15036         */
15037        INVENTORYITEM, 
15038        /**
15039         * A report of inventory or stock items.
15040         */
15041        INVENTORYREPORT, 
15042        /**
15043         * Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.
15044         */
15045        INVOICE, 
15046        /**
15047         * 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.
15048         */
15049        LIBRARY, 
15050        /**
15051         * Identifies two or more records (resource instances) that refer to the same real-world "occurrence".
15052         */
15053        LINKAGE, 
15054        /**
15055         * A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.
15056         */
15057        LIST, 
15058        /**
15059         * Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.
15060         */
15061        LOCATION, 
15062        /**
15063         * The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.
15064         */
15065        MANUFACTUREDITEMDEFINITION, 
15066        /**
15067         * The Measure resource provides the definition of a quality measure.
15068         */
15069        MEASURE, 
15070        /**
15071         * The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.
15072         */
15073        MEASUREREPORT, 
15074        /**
15075         * 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.
15076         */
15077        MEDICATION, 
15078        /**
15079         * 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. This event can also be used to record waste using a status of not-done and the appropriate statusReason.
15080         */
15081        MEDICATIONADMINISTRATION, 
15082        /**
15083         * 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.
15084         */
15085        MEDICATIONDISPENSE, 
15086        /**
15087         * Information about a medication that is used to support knowledge.
15088         */
15089        MEDICATIONKNOWLEDGE, 
15090        /**
15091         * 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.
15092         */
15093        MEDICATIONREQUEST, 
15094        /**
15095         * A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. 
15096
15097The primary difference between a medicationstatement 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 medicationstatement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the Medication Statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.
15098         */
15099        MEDICATIONSTATEMENT, 
15100        /**
15101         * 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.).
15102         */
15103        MEDICINALPRODUCTDEFINITION, 
15104        /**
15105         * 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.
15106         */
15107        MESSAGEDEFINITION, 
15108        /**
15109         * 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.
15110         */
15111        MESSAGEHEADER, 
15112        /**
15113         * Representation of a molecular sequence.
15114         */
15115        MOLECULARSEQUENCE, 
15116        /**
15117         * 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.
15118         */
15119        NAMINGSYSTEM, 
15120        /**
15121         * 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.
15122         */
15123        NUTRITIONINTAKE, 
15124        /**
15125         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
15126         */
15127        NUTRITIONORDER, 
15128        /**
15129         * A food or supplement that is consumed by patients.
15130         */
15131        NUTRITIONPRODUCT, 
15132        /**
15133         * Measurements and simple assertions made about a patient, device or other subject.
15134         */
15135        OBSERVATION, 
15136        /**
15137         * Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
15138         */
15139        OBSERVATIONDEFINITION, 
15140        /**
15141         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
15142         */
15143        OPERATIONDEFINITION, 
15144        /**
15145         * A collection of error, warning, or information messages that result from a system action.
15146         */
15147        OPERATIONOUTCOME, 
15148        /**
15149         * 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.
15150         */
15151        ORGANIZATION, 
15152        /**
15153         * Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.
15154         */
15155        ORGANIZATIONAFFILIATION, 
15156        /**
15157         * A medically related item or items, in a container or package.
15158         */
15159        PACKAGEDPRODUCTDEFINITION, 
15160        /**
15161         * 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.
15162         */
15163        PARAMETERS, 
15164        /**
15165         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
15166         */
15167        PATIENT, 
15168        /**
15169         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
15170         */
15171        PAYMENTNOTICE, 
15172        /**
15173         * This resource provides the details including amount of a payment and allocates the payment items being paid.
15174         */
15175        PAYMENTRECONCILIATION, 
15176        /**
15177         * Permission resource holds access rules for a given data and context.
15178         */
15179        PERMISSION, 
15180        /**
15181         * Demographics and administrative information about a person independent of a specific health-related context.
15182         */
15183        PERSON, 
15184        /**
15185         * 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.
15186         */
15187        PLANDEFINITION, 
15188        /**
15189         * A person who is directly or indirectly involved in the provisioning of healthcare or related services.
15190         */
15191        PRACTITIONER, 
15192        /**
15193         * A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.
15194         */
15195        PRACTITIONERROLE, 
15196        /**
15197         * 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.
15198         */
15199        PROCEDURE, 
15200        /**
15201         * 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.
15202         */
15203        PROVENANCE, 
15204        /**
15205         * 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.
15206         */
15207        QUESTIONNAIRE, 
15208        /**
15209         * 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.
15210         */
15211        QUESTIONNAIRERESPONSE, 
15212        /**
15213         * 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.
15214         */
15215        REGULATEDAUTHORIZATION, 
15216        /**
15217         * 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.
15218         */
15219        RELATEDPERSON, 
15220        /**
15221         * 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".
15222         */
15223        REQUESTORCHESTRATION, 
15224        /**
15225         * 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.
15226         */
15227        REQUIREMENTS, 
15228        /**
15229         * 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.
15230         */
15231        RESEARCHSTUDY, 
15232        /**
15233         * A ResearchSubject is a participant or object which is the recipient of investigative activities in a research study.
15234         */
15235        RESEARCHSUBJECT, 
15236        /**
15237         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
15238         */
15239        RISKASSESSMENT, 
15240        /**
15241         * A container for slots of time that may be available for booking appointments.
15242         */
15243        SCHEDULE, 
15244        /**
15245         * A search parameter that defines a named search item that can be used to search/filter on a resource.
15246         */
15247        SEARCHPARAMETER, 
15248        /**
15249         * A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.
15250         */
15251        SERVICEREQUEST, 
15252        /**
15253         * A slot of time on a schedule that may be available for booking appointments.
15254         */
15255        SLOT, 
15256        /**
15257         * A sample to be used for analysis.
15258         */
15259        SPECIMEN, 
15260        /**
15261         * A kind of specimen with associated set of requirements.
15262         */
15263        SPECIMENDEFINITION, 
15264        /**
15265         * 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.
15266         */
15267        STRUCTUREDEFINITION, 
15268        /**
15269         * A Map of relationships between 2 structures that can be used to transform data.
15270         */
15271        STRUCTUREMAP, 
15272        /**
15273         * The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.
15274         */
15275        SUBSCRIPTION, 
15276        /**
15277         * The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.
15278         */
15279        SUBSCRIPTIONSTATUS, 
15280        /**
15281         * Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.
15282         */
15283        SUBSCRIPTIONTOPIC, 
15284        /**
15285         * A homogeneous material with a definite composition.
15286         */
15287        SUBSTANCE, 
15288        /**
15289         * The detailed description of a substance, typically at a level beyond what is used for prescribing.
15290         */
15291        SUBSTANCEDEFINITION, 
15292        /**
15293         * 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.
15294         */
15295        SUBSTANCENUCLEICACID, 
15296        /**
15297         * Properties of a substance specific to it being a polymer.
15298         */
15299        SUBSTANCEPOLYMER, 
15300        /**
15301         * 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.
15302         */
15303        SUBSTANCEPROTEIN, 
15304        /**
15305         * Todo.
15306         */
15307        SUBSTANCEREFERENCEINFORMATION, 
15308        /**
15309         * 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.
15310         */
15311        SUBSTANCESOURCEMATERIAL, 
15312        /**
15313         * Record of delivery of what is supplied.
15314         */
15315        SUPPLYDELIVERY, 
15316        /**
15317         * 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.
15318         */
15319        SUPPLYREQUEST, 
15320        /**
15321         * A task to be performed.
15322         */
15323        TASK, 
15324        /**
15325         * 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.
15326         */
15327        TERMINOLOGYCAPABILITIES, 
15328        /**
15329         * A plan for executing testing on an artifact or specifications
15330         */
15331        TESTPLAN, 
15332        /**
15333         * A summary of information based on the results of executing a TestScript.
15334         */
15335        TESTREPORT, 
15336        /**
15337         * A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
15338         */
15339        TESTSCRIPT, 
15340        /**
15341         * Record of transport.
15342         */
15343        TRANSPORT, 
15344        /**
15345         * 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).
15346         */
15347        VALUESET, 
15348        /**
15349         * Describes validation requirements, source(s), status and dates for one or more elements.
15350         */
15351        VERIFICATIONRESULT, 
15352        /**
15353         * An authorization for the provision of glasses and/or contact lenses to a patient.
15354         */
15355        VISIONPRESCRIPTION, 
15356        /**
15357         * added to help the parsers
15358         */
15359        NULL;
15360        public static ResourceTypeEnum fromCode(String codeString) throws FHIRException {
15361            if (codeString == null || "".equals(codeString))
15362                return null;
15363        if ("Account".equals(codeString))
15364          return ACCOUNT;
15365        if ("ActivityDefinition".equals(codeString))
15366          return ACTIVITYDEFINITION;
15367        if ("ActorDefinition".equals(codeString))
15368          return ACTORDEFINITION;
15369        if ("AdministrableProductDefinition".equals(codeString))
15370          return ADMINISTRABLEPRODUCTDEFINITION;
15371        if ("AdverseEvent".equals(codeString))
15372          return ADVERSEEVENT;
15373        if ("AllergyIntolerance".equals(codeString))
15374          return ALLERGYINTOLERANCE;
15375        if ("Appointment".equals(codeString))
15376          return APPOINTMENT;
15377        if ("AppointmentResponse".equals(codeString))
15378          return APPOINTMENTRESPONSE;
15379        if ("ArtifactAssessment".equals(codeString))
15380          return ARTIFACTASSESSMENT;
15381        if ("AuditEvent".equals(codeString))
15382          return AUDITEVENT;
15383        if ("Basic".equals(codeString))
15384          return BASIC;
15385        if ("Binary".equals(codeString))
15386          return BINARY;
15387        if ("BiologicallyDerivedProduct".equals(codeString))
15388          return BIOLOGICALLYDERIVEDPRODUCT;
15389        if ("BiologicallyDerivedProductDispense".equals(codeString))
15390          return BIOLOGICALLYDERIVEDPRODUCTDISPENSE;
15391        if ("BodyStructure".equals(codeString))
15392          return BODYSTRUCTURE;
15393        if ("Bundle".equals(codeString))
15394          return BUNDLE;
15395        if ("CapabilityStatement".equals(codeString))
15396          return CAPABILITYSTATEMENT;
15397        if ("CarePlan".equals(codeString))
15398          return CAREPLAN;
15399        if ("CareTeam".equals(codeString))
15400          return CARETEAM;
15401        if ("ChargeItem".equals(codeString))
15402          return CHARGEITEM;
15403        if ("ChargeItemDefinition".equals(codeString))
15404          return CHARGEITEMDEFINITION;
15405        if ("Citation".equals(codeString))
15406          return CITATION;
15407        if ("Claim".equals(codeString))
15408          return CLAIM;
15409        if ("ClaimResponse".equals(codeString))
15410          return CLAIMRESPONSE;
15411        if ("ClinicalImpression".equals(codeString))
15412          return CLINICALIMPRESSION;
15413        if ("ClinicalUseDefinition".equals(codeString))
15414          return CLINICALUSEDEFINITION;
15415        if ("CodeSystem".equals(codeString))
15416          return CODESYSTEM;
15417        if ("Communication".equals(codeString))
15418          return COMMUNICATION;
15419        if ("CommunicationRequest".equals(codeString))
15420          return COMMUNICATIONREQUEST;
15421        if ("CompartmentDefinition".equals(codeString))
15422          return COMPARTMENTDEFINITION;
15423        if ("Composition".equals(codeString))
15424          return COMPOSITION;
15425        if ("ConceptMap".equals(codeString))
15426          return CONCEPTMAP;
15427        if ("Condition".equals(codeString))
15428          return CONDITION;
15429        if ("ConditionDefinition".equals(codeString))
15430          return CONDITIONDEFINITION;
15431        if ("Consent".equals(codeString))
15432          return CONSENT;
15433        if ("Contract".equals(codeString))
15434          return CONTRACT;
15435        if ("Coverage".equals(codeString))
15436          return COVERAGE;
15437        if ("CoverageEligibilityRequest".equals(codeString))
15438          return COVERAGEELIGIBILITYREQUEST;
15439        if ("CoverageEligibilityResponse".equals(codeString))
15440          return COVERAGEELIGIBILITYRESPONSE;
15441        if ("DetectedIssue".equals(codeString))
15442          return DETECTEDISSUE;
15443        if ("Device".equals(codeString))
15444          return DEVICE;
15445        if ("DeviceAssociation".equals(codeString))
15446          return DEVICEASSOCIATION;
15447        if ("DeviceDefinition".equals(codeString))
15448          return DEVICEDEFINITION;
15449        if ("DeviceDispense".equals(codeString))
15450          return DEVICEDISPENSE;
15451        if ("DeviceMetric".equals(codeString))
15452          return DEVICEMETRIC;
15453        if ("DeviceRequest".equals(codeString))
15454          return DEVICEREQUEST;
15455        if ("DeviceUsage".equals(codeString))
15456          return DEVICEUSAGE;
15457        if ("DiagnosticReport".equals(codeString))
15458          return DIAGNOSTICREPORT;
15459        if ("DocumentReference".equals(codeString))
15460          return DOCUMENTREFERENCE;
15461        if ("Encounter".equals(codeString))
15462          return ENCOUNTER;
15463        if ("EncounterHistory".equals(codeString))
15464          return ENCOUNTERHISTORY;
15465        if ("Endpoint".equals(codeString))
15466          return ENDPOINT;
15467        if ("EnrollmentRequest".equals(codeString))
15468          return ENROLLMENTREQUEST;
15469        if ("EnrollmentResponse".equals(codeString))
15470          return ENROLLMENTRESPONSE;
15471        if ("EpisodeOfCare".equals(codeString))
15472          return EPISODEOFCARE;
15473        if ("EventDefinition".equals(codeString))
15474          return EVENTDEFINITION;
15475        if ("Evidence".equals(codeString))
15476          return EVIDENCE;
15477        if ("EvidenceReport".equals(codeString))
15478          return EVIDENCEREPORT;
15479        if ("EvidenceVariable".equals(codeString))
15480          return EVIDENCEVARIABLE;
15481        if ("ExampleScenario".equals(codeString))
15482          return EXAMPLESCENARIO;
15483        if ("ExplanationOfBenefit".equals(codeString))
15484          return EXPLANATIONOFBENEFIT;
15485        if ("FamilyMemberHistory".equals(codeString))
15486          return FAMILYMEMBERHISTORY;
15487        if ("Flag".equals(codeString))
15488          return FLAG;
15489        if ("FormularyItem".equals(codeString))
15490          return FORMULARYITEM;
15491        if ("GenomicStudy".equals(codeString))
15492          return GENOMICSTUDY;
15493        if ("Goal".equals(codeString))
15494          return GOAL;
15495        if ("GraphDefinition".equals(codeString))
15496          return GRAPHDEFINITION;
15497        if ("Group".equals(codeString))
15498          return GROUP;
15499        if ("GuidanceResponse".equals(codeString))
15500          return GUIDANCERESPONSE;
15501        if ("HealthcareService".equals(codeString))
15502          return HEALTHCARESERVICE;
15503        if ("ImagingSelection".equals(codeString))
15504          return IMAGINGSELECTION;
15505        if ("ImagingStudy".equals(codeString))
15506          return IMAGINGSTUDY;
15507        if ("Immunization".equals(codeString))
15508          return IMMUNIZATION;
15509        if ("ImmunizationEvaluation".equals(codeString))
15510          return IMMUNIZATIONEVALUATION;
15511        if ("ImmunizationRecommendation".equals(codeString))
15512          return IMMUNIZATIONRECOMMENDATION;
15513        if ("ImplementationGuide".equals(codeString))
15514          return IMPLEMENTATIONGUIDE;
15515        if ("Ingredient".equals(codeString))
15516          return INGREDIENT;
15517        if ("InsurancePlan".equals(codeString))
15518          return INSURANCEPLAN;
15519        if ("InventoryItem".equals(codeString))
15520          return INVENTORYITEM;
15521        if ("InventoryReport".equals(codeString))
15522          return INVENTORYREPORT;
15523        if ("Invoice".equals(codeString))
15524          return INVOICE;
15525        if ("Library".equals(codeString))
15526          return LIBRARY;
15527        if ("Linkage".equals(codeString))
15528          return LINKAGE;
15529        if ("List".equals(codeString))
15530          return LIST;
15531        if ("Location".equals(codeString))
15532          return LOCATION;
15533        if ("ManufacturedItemDefinition".equals(codeString))
15534          return MANUFACTUREDITEMDEFINITION;
15535        if ("Measure".equals(codeString))
15536          return MEASURE;
15537        if ("MeasureReport".equals(codeString))
15538          return MEASUREREPORT;
15539        if ("Medication".equals(codeString))
15540          return MEDICATION;
15541        if ("MedicationAdministration".equals(codeString))
15542          return MEDICATIONADMINISTRATION;
15543        if ("MedicationDispense".equals(codeString))
15544          return MEDICATIONDISPENSE;
15545        if ("MedicationKnowledge".equals(codeString))
15546          return MEDICATIONKNOWLEDGE;
15547        if ("MedicationRequest".equals(codeString))
15548          return MEDICATIONREQUEST;
15549        if ("MedicationStatement".equals(codeString))
15550          return MEDICATIONSTATEMENT;
15551        if ("MedicinalProductDefinition".equals(codeString))
15552          return MEDICINALPRODUCTDEFINITION;
15553        if ("MessageDefinition".equals(codeString))
15554          return MESSAGEDEFINITION;
15555        if ("MessageHeader".equals(codeString))
15556          return MESSAGEHEADER;
15557        if ("MolecularSequence".equals(codeString))
15558          return MOLECULARSEQUENCE;
15559        if ("NamingSystem".equals(codeString))
15560          return NAMINGSYSTEM;
15561        if ("NutritionIntake".equals(codeString))
15562          return NUTRITIONINTAKE;
15563        if ("NutritionOrder".equals(codeString))
15564          return NUTRITIONORDER;
15565        if ("NutritionProduct".equals(codeString))
15566          return NUTRITIONPRODUCT;
15567        if ("Observation".equals(codeString))
15568          return OBSERVATION;
15569        if ("ObservationDefinition".equals(codeString))
15570          return OBSERVATIONDEFINITION;
15571        if ("OperationDefinition".equals(codeString))
15572          return OPERATIONDEFINITION;
15573        if ("OperationOutcome".equals(codeString))
15574          return OPERATIONOUTCOME;
15575        if ("Organization".equals(codeString))
15576          return ORGANIZATION;
15577        if ("OrganizationAffiliation".equals(codeString))
15578          return ORGANIZATIONAFFILIATION;
15579        if ("PackagedProductDefinition".equals(codeString))
15580          return PACKAGEDPRODUCTDEFINITION;
15581        if ("Parameters".equals(codeString))
15582          return PARAMETERS;
15583        if ("Patient".equals(codeString))
15584          return PATIENT;
15585        if ("PaymentNotice".equals(codeString))
15586          return PAYMENTNOTICE;
15587        if ("PaymentReconciliation".equals(codeString))
15588          return PAYMENTRECONCILIATION;
15589        if ("Permission".equals(codeString))
15590          return PERMISSION;
15591        if ("Person".equals(codeString))
15592          return PERSON;
15593        if ("PlanDefinition".equals(codeString))
15594          return PLANDEFINITION;
15595        if ("Practitioner".equals(codeString))
15596          return PRACTITIONER;
15597        if ("PractitionerRole".equals(codeString))
15598          return PRACTITIONERROLE;
15599        if ("Procedure".equals(codeString))
15600          return PROCEDURE;
15601        if ("Provenance".equals(codeString))
15602          return PROVENANCE;
15603        if ("Questionnaire".equals(codeString))
15604          return QUESTIONNAIRE;
15605        if ("QuestionnaireResponse".equals(codeString))
15606          return QUESTIONNAIRERESPONSE;
15607        if ("RegulatedAuthorization".equals(codeString))
15608          return REGULATEDAUTHORIZATION;
15609        if ("RelatedPerson".equals(codeString))
15610          return RELATEDPERSON;
15611        if ("RequestOrchestration".equals(codeString))
15612          return REQUESTORCHESTRATION;
15613        if ("Requirements".equals(codeString))
15614          return REQUIREMENTS;
15615        if ("ResearchStudy".equals(codeString))
15616          return RESEARCHSTUDY;
15617        if ("ResearchSubject".equals(codeString))
15618          return RESEARCHSUBJECT;
15619        if ("RiskAssessment".equals(codeString))
15620          return RISKASSESSMENT;
15621        if ("Schedule".equals(codeString))
15622          return SCHEDULE;
15623        if ("SearchParameter".equals(codeString))
15624          return SEARCHPARAMETER;
15625        if ("ServiceRequest".equals(codeString))
15626          return SERVICEREQUEST;
15627        if ("Slot".equals(codeString))
15628          return SLOT;
15629        if ("Specimen".equals(codeString))
15630          return SPECIMEN;
15631        if ("SpecimenDefinition".equals(codeString))
15632          return SPECIMENDEFINITION;
15633        if ("StructureDefinition".equals(codeString))
15634          return STRUCTUREDEFINITION;
15635        if ("StructureMap".equals(codeString))
15636          return STRUCTUREMAP;
15637        if ("Subscription".equals(codeString))
15638          return SUBSCRIPTION;
15639        if ("SubscriptionStatus".equals(codeString))
15640          return SUBSCRIPTIONSTATUS;
15641        if ("SubscriptionTopic".equals(codeString))
15642          return SUBSCRIPTIONTOPIC;
15643        if ("Substance".equals(codeString))
15644          return SUBSTANCE;
15645        if ("SubstanceDefinition".equals(codeString))
15646          return SUBSTANCEDEFINITION;
15647        if ("SubstanceNucleicAcid".equals(codeString))
15648          return SUBSTANCENUCLEICACID;
15649        if ("SubstancePolymer".equals(codeString))
15650          return SUBSTANCEPOLYMER;
15651        if ("SubstanceProtein".equals(codeString))
15652          return SUBSTANCEPROTEIN;
15653        if ("SubstanceReferenceInformation".equals(codeString))
15654          return SUBSTANCEREFERENCEINFORMATION;
15655        if ("SubstanceSourceMaterial".equals(codeString))
15656          return SUBSTANCESOURCEMATERIAL;
15657        if ("SupplyDelivery".equals(codeString))
15658          return SUPPLYDELIVERY;
15659        if ("SupplyRequest".equals(codeString))
15660          return SUPPLYREQUEST;
15661        if ("Task".equals(codeString))
15662          return TASK;
15663        if ("TerminologyCapabilities".equals(codeString))
15664          return TERMINOLOGYCAPABILITIES;
15665        if ("TestPlan".equals(codeString))
15666          return TESTPLAN;
15667        if ("TestReport".equals(codeString))
15668          return TESTREPORT;
15669        if ("TestScript".equals(codeString))
15670          return TESTSCRIPT;
15671        if ("Transport".equals(codeString))
15672          return TRANSPORT;
15673        if ("ValueSet".equals(codeString))
15674          return VALUESET;
15675        if ("VerificationResult".equals(codeString))
15676          return VERIFICATIONRESULT;
15677        if ("VisionPrescription".equals(codeString))
15678          return VISIONPRESCRIPTION;
15679        throw new FHIRException("Unknown ResourceTypeEnum code '"+codeString+"'");
15680        }
15681        public static boolean isValidCode(String codeString) {
15682            if (codeString == null || "".equals(codeString))
15683                return false;
15684          return Utilities.existsInList(codeString, "Account", "ActivityDefinition", "ActorDefinition", "AdministrableProductDefinition", "AdverseEvent", "AllergyIntolerance", "Appointment", "AppointmentResponse", "ArtifactAssessment", "AuditEvent", "Basic", "Binary", "BiologicallyDerivedProduct", "BiologicallyDerivedProductDispense", "BodyStructure", "Bundle", "CapabilityStatement", "CarePlan", "CareTeam", "ChargeItem", "ChargeItemDefinition", "Citation", "Claim", "ClaimResponse", "ClinicalImpression", "ClinicalUseDefinition", "CodeSystem", "Communication", "CommunicationRequest", "CompartmentDefinition", "Composition", "ConceptMap", "Condition", "ConditionDefinition", "Consent", "Contract", "Coverage", "CoverageEligibilityRequest", "CoverageEligibilityResponse", "DetectedIssue", "Device", "DeviceAssociation", "DeviceDefinition", "DeviceDispense", "DeviceMetric", "DeviceRequest", "DeviceUsage", "DiagnosticReport", "DocumentReference", "Encounter", "EncounterHistory", "Endpoint", "EnrollmentRequest", "EnrollmentResponse", "EpisodeOfCare", "EventDefinition", "Evidence", "EvidenceReport", "EvidenceVariable", "ExampleScenario", "ExplanationOfBenefit", "FamilyMemberHistory", "Flag", "FormularyItem", "GenomicStudy", "Goal", "GraphDefinition", "Group", "GuidanceResponse", "HealthcareService", "ImagingSelection", "ImagingStudy", "Immunization", "ImmunizationEvaluation", "ImmunizationRecommendation", "ImplementationGuide", "Ingredient", "InsurancePlan", "InventoryItem", "InventoryReport", "Invoice", "Library", "Linkage", "List", "Location", "ManufacturedItemDefinition", "Measure", "MeasureReport", "Medication", "MedicationAdministration", "MedicationDispense", "MedicationKnowledge", "MedicationRequest", "MedicationStatement", "MedicinalProductDefinition", "MessageDefinition", "MessageHeader", "MolecularSequence", "NamingSystem", "NutritionIntake", "NutritionOrder", "NutritionProduct", "Observation", "ObservationDefinition", "OperationDefinition", "OperationOutcome", "Organization", "OrganizationAffiliation", "PackagedProductDefinition", "Parameters", "Patient", "PaymentNotice", "PaymentReconciliation", "Permission", "Person", "PlanDefinition", "Practitioner", "PractitionerRole", "Procedure", "Provenance", "Questionnaire", "QuestionnaireResponse", "RegulatedAuthorization", "RelatedPerson", "RequestOrchestration", "Requirements", "ResearchStudy", "ResearchSubject", "RiskAssessment", "Schedule", "SearchParameter", "ServiceRequest", "Slot", "Specimen", "SpecimenDefinition", "StructureDefinition", "StructureMap", "Subscription", "SubscriptionStatus", "SubscriptionTopic", "Substance", "SubstanceDefinition", "SubstanceNucleicAcid", "SubstancePolymer", "SubstanceProtein", "SubstanceReferenceInformation", "SubstanceSourceMaterial", "SupplyDelivery", "SupplyRequest", "Task", "TerminologyCapabilities", "TestPlan", "TestReport", "TestScript", "Transport", "ValueSet", "VerificationResult", "VisionPrescription");
15685        }
15686        public String toCode() {
15687          switch (this) {
15688            case ACCOUNT: return "Account";
15689            case ACTIVITYDEFINITION: return "ActivityDefinition";
15690            case ACTORDEFINITION: return "ActorDefinition";
15691            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
15692            case ADVERSEEVENT: return "AdverseEvent";
15693            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
15694            case APPOINTMENT: return "Appointment";
15695            case APPOINTMENTRESPONSE: return "AppointmentResponse";
15696            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
15697            case AUDITEVENT: return "AuditEvent";
15698            case BASIC: return "Basic";
15699            case BINARY: return "Binary";
15700            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
15701            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "BiologicallyDerivedProductDispense";
15702            case BODYSTRUCTURE: return "BodyStructure";
15703            case BUNDLE: return "Bundle";
15704            case CAPABILITYSTATEMENT: return "CapabilityStatement";
15705            case CAREPLAN: return "CarePlan";
15706            case CARETEAM: return "CareTeam";
15707            case CHARGEITEM: return "ChargeItem";
15708            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
15709            case CITATION: return "Citation";
15710            case CLAIM: return "Claim";
15711            case CLAIMRESPONSE: return "ClaimResponse";
15712            case CLINICALIMPRESSION: return "ClinicalImpression";
15713            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
15714            case CODESYSTEM: return "CodeSystem";
15715            case COMMUNICATION: return "Communication";
15716            case COMMUNICATIONREQUEST: return "CommunicationRequest";
15717            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
15718            case COMPOSITION: return "Composition";
15719            case CONCEPTMAP: return "ConceptMap";
15720            case CONDITION: return "Condition";
15721            case CONDITIONDEFINITION: return "ConditionDefinition";
15722            case CONSENT: return "Consent";
15723            case CONTRACT: return "Contract";
15724            case COVERAGE: return "Coverage";
15725            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
15726            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
15727            case DETECTEDISSUE: return "DetectedIssue";
15728            case DEVICE: return "Device";
15729            case DEVICEASSOCIATION: return "DeviceAssociation";
15730            case DEVICEDEFINITION: return "DeviceDefinition";
15731            case DEVICEDISPENSE: return "DeviceDispense";
15732            case DEVICEMETRIC: return "DeviceMetric";
15733            case DEVICEREQUEST: return "DeviceRequest";
15734            case DEVICEUSAGE: return "DeviceUsage";
15735            case DIAGNOSTICREPORT: return "DiagnosticReport";
15736            case DOCUMENTREFERENCE: return "DocumentReference";
15737            case ENCOUNTER: return "Encounter";
15738            case ENCOUNTERHISTORY: return "EncounterHistory";
15739            case ENDPOINT: return "Endpoint";
15740            case ENROLLMENTREQUEST: return "EnrollmentRequest";
15741            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
15742            case EPISODEOFCARE: return "EpisodeOfCare";
15743            case EVENTDEFINITION: return "EventDefinition";
15744            case EVIDENCE: return "Evidence";
15745            case EVIDENCEREPORT: return "EvidenceReport";
15746            case EVIDENCEVARIABLE: return "EvidenceVariable";
15747            case EXAMPLESCENARIO: return "ExampleScenario";
15748            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
15749            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
15750            case FLAG: return "Flag";
15751            case FORMULARYITEM: return "FormularyItem";
15752            case GENOMICSTUDY: return "GenomicStudy";
15753            case GOAL: return "Goal";
15754            case GRAPHDEFINITION: return "GraphDefinition";
15755            case GROUP: return "Group";
15756            case GUIDANCERESPONSE: return "GuidanceResponse";
15757            case HEALTHCARESERVICE: return "HealthcareService";
15758            case IMAGINGSELECTION: return "ImagingSelection";
15759            case IMAGINGSTUDY: return "ImagingStudy";
15760            case IMMUNIZATION: return "Immunization";
15761            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
15762            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
15763            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
15764            case INGREDIENT: return "Ingredient";
15765            case INSURANCEPLAN: return "InsurancePlan";
15766            case INVENTORYITEM: return "InventoryItem";
15767            case INVENTORYREPORT: return "InventoryReport";
15768            case INVOICE: return "Invoice";
15769            case LIBRARY: return "Library";
15770            case LINKAGE: return "Linkage";
15771            case LIST: return "List";
15772            case LOCATION: return "Location";
15773            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
15774            case MEASURE: return "Measure";
15775            case MEASUREREPORT: return "MeasureReport";
15776            case MEDICATION: return "Medication";
15777            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
15778            case MEDICATIONDISPENSE: return "MedicationDispense";
15779            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
15780            case MEDICATIONREQUEST: return "MedicationRequest";
15781            case MEDICATIONSTATEMENT: return "MedicationStatement";
15782            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
15783            case MESSAGEDEFINITION: return "MessageDefinition";
15784            case MESSAGEHEADER: return "MessageHeader";
15785            case MOLECULARSEQUENCE: return "MolecularSequence";
15786            case NAMINGSYSTEM: return "NamingSystem";
15787            case NUTRITIONINTAKE: return "NutritionIntake";
15788            case NUTRITIONORDER: return "NutritionOrder";
15789            case NUTRITIONPRODUCT: return "NutritionProduct";
15790            case OBSERVATION: return "Observation";
15791            case OBSERVATIONDEFINITION: return "ObservationDefinition";
15792            case OPERATIONDEFINITION: return "OperationDefinition";
15793            case OPERATIONOUTCOME: return "OperationOutcome";
15794            case ORGANIZATION: return "Organization";
15795            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
15796            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
15797            case PARAMETERS: return "Parameters";
15798            case PATIENT: return "Patient";
15799            case PAYMENTNOTICE: return "PaymentNotice";
15800            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
15801            case PERMISSION: return "Permission";
15802            case PERSON: return "Person";
15803            case PLANDEFINITION: return "PlanDefinition";
15804            case PRACTITIONER: return "Practitioner";
15805            case PRACTITIONERROLE: return "PractitionerRole";
15806            case PROCEDURE: return "Procedure";
15807            case PROVENANCE: return "Provenance";
15808            case QUESTIONNAIRE: return "Questionnaire";
15809            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
15810            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
15811            case RELATEDPERSON: return "RelatedPerson";
15812            case REQUESTORCHESTRATION: return "RequestOrchestration";
15813            case REQUIREMENTS: return "Requirements";
15814            case RESEARCHSTUDY: return "ResearchStudy";
15815            case RESEARCHSUBJECT: return "ResearchSubject";
15816            case RISKASSESSMENT: return "RiskAssessment";
15817            case SCHEDULE: return "Schedule";
15818            case SEARCHPARAMETER: return "SearchParameter";
15819            case SERVICEREQUEST: return "ServiceRequest";
15820            case SLOT: return "Slot";
15821            case SPECIMEN: return "Specimen";
15822            case SPECIMENDEFINITION: return "SpecimenDefinition";
15823            case STRUCTUREDEFINITION: return "StructureDefinition";
15824            case STRUCTUREMAP: return "StructureMap";
15825            case SUBSCRIPTION: return "Subscription";
15826            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
15827            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
15828            case SUBSTANCE: return "Substance";
15829            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
15830            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
15831            case SUBSTANCEPOLYMER: return "SubstancePolymer";
15832            case SUBSTANCEPROTEIN: return "SubstanceProtein";
15833            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
15834            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
15835            case SUPPLYDELIVERY: return "SupplyDelivery";
15836            case SUPPLYREQUEST: return "SupplyRequest";
15837            case TASK: return "Task";
15838            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
15839            case TESTPLAN: return "TestPlan";
15840            case TESTREPORT: return "TestReport";
15841            case TESTSCRIPT: return "TestScript";
15842            case TRANSPORT: return "Transport";
15843            case VALUESET: return "ValueSet";
15844            case VERIFICATIONRESULT: return "VerificationResult";
15845            case VISIONPRESCRIPTION: return "VisionPrescription";
15846            case NULL: return null;
15847            default: return "?";
15848          }
15849        }
15850        public String getSystem() {
15851          switch (this) {
15852            case ACCOUNT: return "http://hl7.org/fhir/fhir-types";
15853            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/fhir-types";
15854            case ACTORDEFINITION: return "http://hl7.org/fhir/fhir-types";
15855            case ADMINISTRABLEPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
15856            case ADVERSEEVENT: return "http://hl7.org/fhir/fhir-types";
15857            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/fhir-types";
15858            case APPOINTMENT: return "http://hl7.org/fhir/fhir-types";
15859            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
15860            case ARTIFACTASSESSMENT: return "http://hl7.org/fhir/fhir-types";
15861            case AUDITEVENT: return "http://hl7.org/fhir/fhir-types";
15862            case BASIC: return "http://hl7.org/fhir/fhir-types";
15863            case BINARY: return "http://hl7.org/fhir/fhir-types";
15864            case BIOLOGICALLYDERIVEDPRODUCT: return "http://hl7.org/fhir/fhir-types";
15865            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "http://hl7.org/fhir/fhir-types";
15866            case BODYSTRUCTURE: return "http://hl7.org/fhir/fhir-types";
15867            case BUNDLE: return "http://hl7.org/fhir/fhir-types";
15868            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/fhir-types";
15869            case CAREPLAN: return "http://hl7.org/fhir/fhir-types";
15870            case CARETEAM: return "http://hl7.org/fhir/fhir-types";
15871            case CHARGEITEM: return "http://hl7.org/fhir/fhir-types";
15872            case CHARGEITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
15873            case CITATION: return "http://hl7.org/fhir/fhir-types";
15874            case CLAIM: return "http://hl7.org/fhir/fhir-types";
15875            case CLAIMRESPONSE: return "http://hl7.org/fhir/fhir-types";
15876            case CLINICALIMPRESSION: return "http://hl7.org/fhir/fhir-types";
15877            case CLINICALUSEDEFINITION: return "http://hl7.org/fhir/fhir-types";
15878            case CODESYSTEM: return "http://hl7.org/fhir/fhir-types";
15879            case COMMUNICATION: return "http://hl7.org/fhir/fhir-types";
15880            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
15881            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
15882            case COMPOSITION: return "http://hl7.org/fhir/fhir-types";
15883            case CONCEPTMAP: return "http://hl7.org/fhir/fhir-types";
15884            case CONDITION: return "http://hl7.org/fhir/fhir-types";
15885            case CONDITIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
15886            case CONSENT: return "http://hl7.org/fhir/fhir-types";
15887            case CONTRACT: return "http://hl7.org/fhir/fhir-types";
15888            case COVERAGE: return "http://hl7.org/fhir/fhir-types";
15889            case COVERAGEELIGIBILITYREQUEST: return "http://hl7.org/fhir/fhir-types";
15890            case COVERAGEELIGIBILITYRESPONSE: return "http://hl7.org/fhir/fhir-types";
15891            case DETECTEDISSUE: return "http://hl7.org/fhir/fhir-types";
15892            case DEVICE: return "http://hl7.org/fhir/fhir-types";
15893            case DEVICEASSOCIATION: return "http://hl7.org/fhir/fhir-types";
15894            case DEVICEDEFINITION: return "http://hl7.org/fhir/fhir-types";
15895            case DEVICEDISPENSE: return "http://hl7.org/fhir/fhir-types";
15896            case DEVICEMETRIC: return "http://hl7.org/fhir/fhir-types";
15897            case DEVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
15898            case DEVICEUSAGE: return "http://hl7.org/fhir/fhir-types";
15899            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/fhir-types";
15900            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/fhir-types";
15901            case ENCOUNTER: return "http://hl7.org/fhir/fhir-types";
15902            case ENCOUNTERHISTORY: return "http://hl7.org/fhir/fhir-types";
15903            case ENDPOINT: return "http://hl7.org/fhir/fhir-types";
15904            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/fhir-types";
15905            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
15906            case EPISODEOFCARE: return "http://hl7.org/fhir/fhir-types";
15907            case EVENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
15908            case EVIDENCE: return "http://hl7.org/fhir/fhir-types";
15909            case EVIDENCEREPORT: return "http://hl7.org/fhir/fhir-types";
15910            case EVIDENCEVARIABLE: return "http://hl7.org/fhir/fhir-types";
15911            case EXAMPLESCENARIO: return "http://hl7.org/fhir/fhir-types";
15912            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/fhir-types";
15913            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/fhir-types";
15914            case FLAG: return "http://hl7.org/fhir/fhir-types";
15915            case FORMULARYITEM: return "http://hl7.org/fhir/fhir-types";
15916            case GENOMICSTUDY: return "http://hl7.org/fhir/fhir-types";
15917            case GOAL: return "http://hl7.org/fhir/fhir-types";
15918            case GRAPHDEFINITION: return "http://hl7.org/fhir/fhir-types";
15919            case GROUP: return "http://hl7.org/fhir/fhir-types";
15920            case GUIDANCERESPONSE: return "http://hl7.org/fhir/fhir-types";
15921            case HEALTHCARESERVICE: return "http://hl7.org/fhir/fhir-types";
15922            case IMAGINGSELECTION: return "http://hl7.org/fhir/fhir-types";
15923            case IMAGINGSTUDY: return "http://hl7.org/fhir/fhir-types";
15924            case IMMUNIZATION: return "http://hl7.org/fhir/fhir-types";
15925            case IMMUNIZATIONEVALUATION: return "http://hl7.org/fhir/fhir-types";
15926            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/fhir-types";
15927            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/fhir-types";
15928            case INGREDIENT: return "http://hl7.org/fhir/fhir-types";
15929            case INSURANCEPLAN: return "http://hl7.org/fhir/fhir-types";
15930            case INVENTORYITEM: return "http://hl7.org/fhir/fhir-types";
15931            case INVENTORYREPORT: return "http://hl7.org/fhir/fhir-types";
15932            case INVOICE: return "http://hl7.org/fhir/fhir-types";
15933            case LIBRARY: return "http://hl7.org/fhir/fhir-types";
15934            case LINKAGE: return "http://hl7.org/fhir/fhir-types";
15935            case LIST: return "http://hl7.org/fhir/fhir-types";
15936            case LOCATION: return "http://hl7.org/fhir/fhir-types";
15937            case MANUFACTUREDITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
15938            case MEASURE: return "http://hl7.org/fhir/fhir-types";
15939            case MEASUREREPORT: return "http://hl7.org/fhir/fhir-types";
15940            case MEDICATION: return "http://hl7.org/fhir/fhir-types";
15941            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/fhir-types";
15942            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/fhir-types";
15943            case MEDICATIONKNOWLEDGE: return "http://hl7.org/fhir/fhir-types";
15944            case MEDICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
15945            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/fhir-types";
15946            case MEDICINALPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
15947            case MESSAGEDEFINITION: return "http://hl7.org/fhir/fhir-types";
15948            case MESSAGEHEADER: return "http://hl7.org/fhir/fhir-types";
15949            case MOLECULARSEQUENCE: return "http://hl7.org/fhir/fhir-types";
15950            case NAMINGSYSTEM: return "http://hl7.org/fhir/fhir-types";
15951            case NUTRITIONINTAKE: return "http://hl7.org/fhir/fhir-types";
15952            case NUTRITIONORDER: return "http://hl7.org/fhir/fhir-types";
15953            case NUTRITIONPRODUCT: return "http://hl7.org/fhir/fhir-types";
15954            case OBSERVATION: return "http://hl7.org/fhir/fhir-types";
15955            case OBSERVATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
15956            case OPERATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
15957            case OPERATIONOUTCOME: return "http://hl7.org/fhir/fhir-types";
15958            case ORGANIZATION: return "http://hl7.org/fhir/fhir-types";
15959            case ORGANIZATIONAFFILIATION: return "http://hl7.org/fhir/fhir-types";
15960            case PACKAGEDPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
15961            case PARAMETERS: return "http://hl7.org/fhir/fhir-types";
15962            case PATIENT: return "http://hl7.org/fhir/fhir-types";
15963            case PAYMENTNOTICE: return "http://hl7.org/fhir/fhir-types";
15964            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/fhir-types";
15965            case PERMISSION: return "http://hl7.org/fhir/fhir-types";
15966            case PERSON: return "http://hl7.org/fhir/fhir-types";
15967            case PLANDEFINITION: return "http://hl7.org/fhir/fhir-types";
15968            case PRACTITIONER: return "http://hl7.org/fhir/fhir-types";
15969            case PRACTITIONERROLE: return "http://hl7.org/fhir/fhir-types";
15970            case PROCEDURE: return "http://hl7.org/fhir/fhir-types";
15971            case PROVENANCE: return "http://hl7.org/fhir/fhir-types";
15972            case QUESTIONNAIRE: return "http://hl7.org/fhir/fhir-types";
15973            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/fhir-types";
15974            case REGULATEDAUTHORIZATION: return "http://hl7.org/fhir/fhir-types";
15975            case RELATEDPERSON: return "http://hl7.org/fhir/fhir-types";
15976            case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types";
15977            case REQUIREMENTS: return "http://hl7.org/fhir/fhir-types";
15978            case RESEARCHSTUDY: return "http://hl7.org/fhir/fhir-types";
15979            case RESEARCHSUBJECT: return "http://hl7.org/fhir/fhir-types";
15980            case RISKASSESSMENT: return "http://hl7.org/fhir/fhir-types";
15981            case SCHEDULE: return "http://hl7.org/fhir/fhir-types";
15982            case SEARCHPARAMETER: return "http://hl7.org/fhir/fhir-types";
15983            case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
15984            case SLOT: return "http://hl7.org/fhir/fhir-types";
15985            case SPECIMEN: return "http://hl7.org/fhir/fhir-types";
15986            case SPECIMENDEFINITION: return "http://hl7.org/fhir/fhir-types";
15987            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/fhir-types";
15988            case STRUCTUREMAP: return "http://hl7.org/fhir/fhir-types";
15989            case SUBSCRIPTION: return "http://hl7.org/fhir/fhir-types";
15990            case SUBSCRIPTIONSTATUS: return "http://hl7.org/fhir/fhir-types";
15991            case SUBSCRIPTIONTOPIC: return "http://hl7.org/fhir/fhir-types";
15992            case SUBSTANCE: return "http://hl7.org/fhir/fhir-types";
15993            case SUBSTANCEDEFINITION: return "http://hl7.org/fhir/fhir-types";
15994            case SUBSTANCENUCLEICACID: return "http://hl7.org/fhir/fhir-types";
15995            case SUBSTANCEPOLYMER: return "http://hl7.org/fhir/fhir-types";
15996            case SUBSTANCEPROTEIN: return "http://hl7.org/fhir/fhir-types";
15997            case SUBSTANCEREFERENCEINFORMATION: return "http://hl7.org/fhir/fhir-types";
15998            case SUBSTANCESOURCEMATERIAL: return "http://hl7.org/fhir/fhir-types";
15999            case SUPPLYDELIVERY: return "http://hl7.org/fhir/fhir-types";
16000            case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types";
16001            case TASK: return "http://hl7.org/fhir/fhir-types";
16002            case TERMINOLOGYCAPABILITIES: return "http://hl7.org/fhir/fhir-types";
16003            case TESTPLAN: return "http://hl7.org/fhir/fhir-types";
16004            case TESTREPORT: return "http://hl7.org/fhir/fhir-types";
16005            case TESTSCRIPT: return "http://hl7.org/fhir/fhir-types";
16006            case TRANSPORT: return "http://hl7.org/fhir/fhir-types";
16007            case VALUESET: return "http://hl7.org/fhir/fhir-types";
16008            case VERIFICATIONRESULT: return "http://hl7.org/fhir/fhir-types";
16009            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types";
16010            case NULL: return null;
16011            default: return "?";
16012          }
16013        }
16014        public String getDefinition() {
16015          switch (this) {
16016            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.";
16017            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.";
16018            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.";
16019            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).";
16020            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 participant. 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.  Adverse events can be reported by healthcare providers, patients, caregivers or by medical products manufacturers.  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.";
16021            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
16022            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).";
16023            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
16024            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.";
16025            case AUDITEVENT: return "A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.";
16026            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.";
16027            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.";
16028            case BIOLOGICALLYDERIVEDPRODUCT: return "A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.";
16029            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "A record of dispensation of a biologically derived product.";
16030            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.";
16031            case BUNDLE: return "A container for a collection of resources.";
16032            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.";
16033            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.";
16034            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.";
16035            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.";
16036            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.";
16037            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.";
16038            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.";
16039            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
16040            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.";
16041            case CLINICALUSEDEFINITION: return "A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.";
16042            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.";
16043            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.";
16044            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.";
16045            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
16046            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.).";
16047            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.";
16048            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
16049            case CONDITIONDEFINITION: return "A definition of a condition and information relevant to managing it.";
16050            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.";
16051            case CONTRACT: return "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.";
16052            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.";
16053            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.";
16054            case COVERAGEELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.";
16055            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, gaps in care, etc.";
16056            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.";
16057            case DEVICEASSOCIATION: return "A record of association of a device.";
16058            case DEVICEDEFINITION: return "This is a specialized resource that defines the characteristics and capabilities of a device.";
16059            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.";
16060            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a device.  The DeviceMetric resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable. ";
16061            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.";
16062            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.";
16063            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.";
16064            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.";
16065            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).";
16066            case ENCOUNTERHISTORY: return "A record of significant events/milestones key data throughout the history of an Encounter";
16067            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.";
16068            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
16069            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.";
16070            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.";
16071            case EVENTDEFINITION: return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
16072            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.";
16073            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.";
16074            case EVIDENCEVARIABLE: return "The EvidenceVariable resource describes an element that knowledge (Evidence) is about.";
16075            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.";
16076            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.";
16077            case FAMILYMEMBERHISTORY: return "Significant health conditions for a person related to the patient relevant in the context of care for the patient.";
16078            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
16079            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.";
16080            case GENOMICSTUDY: return "A set of analyses performed to analyze and generate genomic data.";
16081            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.";
16082            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.";
16083            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.";
16084            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.";
16085            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.";
16086            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.";
16087            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.";
16088            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.";
16089            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.";
16090            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.";
16091            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.";
16092            case INGREDIENT: return "An ingredient of a manufactured item or pharmaceutical product.";
16093            case INSURANCEPLAN: return "Details of a Health Insurance product/plan provided by an organization.";
16094            case INVENTORYITEM: return "functional description of an inventory item used in inventory and supply-related workflows.";
16095            case INVENTORYREPORT: return "A report of inventory or stock items.";
16096            case INVOICE: return "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.";
16097            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.";
16098            case LINKAGE: return "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\".";
16099            case LIST: return "A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.";
16100            case LOCATION: return "Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.";
16101            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.";
16102            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
16103            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.";
16104            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.";
16105            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. This event can also be used to record waste using a status of not-done and the appropriate statusReason.";
16106            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.";
16107            case MEDICATIONKNOWLEDGE: return "Information about a medication that is used to support knowledge.";
16108            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.";
16109            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. \n\nThe primary difference between a medicationstatement 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 medicationstatement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the Medication Statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
16110            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.).";
16111            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.";
16112            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.";
16113            case MOLECULARSEQUENCE: return "Representation of a molecular sequence.";
16114            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.";
16115            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.";
16116            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
16117            case NUTRITIONPRODUCT: return "A food or supplement that is consumed by patients.";
16118            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
16119            case OBSERVATIONDEFINITION: return "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.";
16120            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
16121            case OPERATIONOUTCOME: return "A collection of error, warning, or information messages that result from a system action.";
16122            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.";
16123            case ORGANIZATIONAFFILIATION: return "Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.";
16124            case PACKAGEDPRODUCTDEFINITION: return "A medically related item or items, in a container or package.";
16125            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.";
16126            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
16127            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
16128            case PAYMENTRECONCILIATION: return "This resource provides the details including amount of a payment and allocates the payment items being paid.";
16129            case PERMISSION: return "Permission resource holds access rules for a given data and context.";
16130            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
16131            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.";
16132            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare or related services.";
16133            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.";
16134            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.";
16135            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.";
16136            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.";
16137            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.";
16138            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.";
16139            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.";
16140            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\".";
16141            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.";
16142            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.";
16143            case RESEARCHSUBJECT: return "A ResearchSubject is a participant or object which is the recipient of investigative activities in a research study.";
16144            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
16145            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
16146            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
16147            case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
16148            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
16149            case SPECIMEN: return "A sample to be used for analysis.";
16150            case SPECIMENDEFINITION: return "A kind of specimen with associated set of requirements.";
16151            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.";
16152            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
16153            case SUBSCRIPTION: return "The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.";
16154            case SUBSCRIPTIONSTATUS: return "The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.";
16155            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.";
16156            case SUBSTANCE: return "A homogeneous material with a definite composition.";
16157            case SUBSTANCEDEFINITION: return "The detailed description of a substance, typically at a level beyond what is used for prescribing.";
16158            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.";
16159            case SUBSTANCEPOLYMER: return "Properties of a substance specific to it being a polymer.";
16160            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.";
16161            case SUBSTANCEREFERENCEINFORMATION: return "Todo.";
16162            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.";
16163            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
16164            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.";
16165            case TASK: return "A task to be performed.";
16166            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.";
16167            case TESTPLAN: return "A plan for executing testing on an artifact or specifications";
16168            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
16169            case TESTSCRIPT: return "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.";
16170            case TRANSPORT: return "Record of transport.";
16171            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).";
16172            case VERIFICATIONRESULT: return "Describes validation requirements, source(s), status and dates for one or more elements.";
16173            case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient.";
16174            case NULL: return null;
16175            default: return "?";
16176          }
16177        }
16178        public String getDisplay() {
16179          switch (this) {
16180            case ACCOUNT: return "Account";
16181            case ACTIVITYDEFINITION: return "ActivityDefinition";
16182            case ACTORDEFINITION: return "ActorDefinition";
16183            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
16184            case ADVERSEEVENT: return "AdverseEvent";
16185            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
16186            case APPOINTMENT: return "Appointment";
16187            case APPOINTMENTRESPONSE: return "AppointmentResponse";
16188            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
16189            case AUDITEVENT: return "AuditEvent";
16190            case BASIC: return "Basic";
16191            case BINARY: return "Binary";
16192            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
16193            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "BiologicallyDerivedProductDispense";
16194            case BODYSTRUCTURE: return "BodyStructure";
16195            case BUNDLE: return "Bundle";
16196            case CAPABILITYSTATEMENT: return "CapabilityStatement";
16197            case CAREPLAN: return "CarePlan";
16198            case CARETEAM: return "CareTeam";
16199            case CHARGEITEM: return "ChargeItem";
16200            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
16201            case CITATION: return "Citation";
16202            case CLAIM: return "Claim";
16203            case CLAIMRESPONSE: return "ClaimResponse";
16204            case CLINICALIMPRESSION: return "ClinicalImpression";
16205            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
16206            case CODESYSTEM: return "CodeSystem";
16207            case COMMUNICATION: return "Communication";
16208            case COMMUNICATIONREQUEST: return "CommunicationRequest";
16209            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
16210            case COMPOSITION: return "Composition";
16211            case CONCEPTMAP: return "ConceptMap";
16212            case CONDITION: return "Condition";
16213            case CONDITIONDEFINITION: return "ConditionDefinition";
16214            case CONSENT: return "Consent";
16215            case CONTRACT: return "Contract";
16216            case COVERAGE: return "Coverage";
16217            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
16218            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
16219            case DETECTEDISSUE: return "DetectedIssue";
16220            case DEVICE: return "Device";
16221            case DEVICEASSOCIATION: return "DeviceAssociation";
16222            case DEVICEDEFINITION: return "DeviceDefinition";
16223            case DEVICEDISPENSE: return "DeviceDispense";
16224            case DEVICEMETRIC: return "DeviceMetric";
16225            case DEVICEREQUEST: return "DeviceRequest";
16226            case DEVICEUSAGE: return "DeviceUsage";
16227            case DIAGNOSTICREPORT: return "DiagnosticReport";
16228            case DOCUMENTREFERENCE: return "DocumentReference";
16229            case ENCOUNTER: return "Encounter";
16230            case ENCOUNTERHISTORY: return "EncounterHistory";
16231            case ENDPOINT: return "Endpoint";
16232            case ENROLLMENTREQUEST: return "EnrollmentRequest";
16233            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
16234            case EPISODEOFCARE: return "EpisodeOfCare";
16235            case EVENTDEFINITION: return "EventDefinition";
16236            case EVIDENCE: return "Evidence";
16237            case EVIDENCEREPORT: return "EvidenceReport";
16238            case EVIDENCEVARIABLE: return "EvidenceVariable";
16239            case EXAMPLESCENARIO: return "ExampleScenario";
16240            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
16241            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
16242            case FLAG: return "Flag";
16243            case FORMULARYITEM: return "FormularyItem";
16244            case GENOMICSTUDY: return "GenomicStudy";
16245            case GOAL: return "Goal";
16246            case GRAPHDEFINITION: return "GraphDefinition";
16247            case GROUP: return "Group";
16248            case GUIDANCERESPONSE: return "GuidanceResponse";
16249            case HEALTHCARESERVICE: return "HealthcareService";
16250            case IMAGINGSELECTION: return "ImagingSelection";
16251            case IMAGINGSTUDY: return "ImagingStudy";
16252            case IMMUNIZATION: return "Immunization";
16253            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
16254            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
16255            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
16256            case INGREDIENT: return "Ingredient";
16257            case INSURANCEPLAN: return "InsurancePlan";
16258            case INVENTORYITEM: return "InventoryItem";
16259            case INVENTORYREPORT: return "InventoryReport";
16260            case INVOICE: return "Invoice";
16261            case LIBRARY: return "Library";
16262            case LINKAGE: return "Linkage";
16263            case LIST: return "List";
16264            case LOCATION: return "Location";
16265            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
16266            case MEASURE: return "Measure";
16267            case MEASUREREPORT: return "MeasureReport";
16268            case MEDICATION: return "Medication";
16269            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
16270            case MEDICATIONDISPENSE: return "MedicationDispense";
16271            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
16272            case MEDICATIONREQUEST: return "MedicationRequest";
16273            case MEDICATIONSTATEMENT: return "MedicationStatement";
16274            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
16275            case MESSAGEDEFINITION: return "MessageDefinition";
16276            case MESSAGEHEADER: return "MessageHeader";
16277            case MOLECULARSEQUENCE: return "MolecularSequence";
16278            case NAMINGSYSTEM: return "NamingSystem";
16279            case NUTRITIONINTAKE: return "NutritionIntake";
16280            case NUTRITIONORDER: return "NutritionOrder";
16281            case NUTRITIONPRODUCT: return "NutritionProduct";
16282            case OBSERVATION: return "Observation";
16283            case OBSERVATIONDEFINITION: return "ObservationDefinition";
16284            case OPERATIONDEFINITION: return "OperationDefinition";
16285            case OPERATIONOUTCOME: return "OperationOutcome";
16286            case ORGANIZATION: return "Organization";
16287            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
16288            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
16289            case PARAMETERS: return "Parameters";
16290            case PATIENT: return "Patient";
16291            case PAYMENTNOTICE: return "PaymentNotice";
16292            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
16293            case PERMISSION: return "Permission";
16294            case PERSON: return "Person";
16295            case PLANDEFINITION: return "PlanDefinition";
16296            case PRACTITIONER: return "Practitioner";
16297            case PRACTITIONERROLE: return "PractitionerRole";
16298            case PROCEDURE: return "Procedure";
16299            case PROVENANCE: return "Provenance";
16300            case QUESTIONNAIRE: return "Questionnaire";
16301            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
16302            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
16303            case RELATEDPERSON: return "RelatedPerson";
16304            case REQUESTORCHESTRATION: return "RequestOrchestration";
16305            case REQUIREMENTS: return "Requirements";
16306            case RESEARCHSTUDY: return "ResearchStudy";
16307            case RESEARCHSUBJECT: return "ResearchSubject";
16308            case RISKASSESSMENT: return "RiskAssessment";
16309            case SCHEDULE: return "Schedule";
16310            case SEARCHPARAMETER: return "SearchParameter";
16311            case SERVICEREQUEST: return "ServiceRequest";
16312            case SLOT: return "Slot";
16313            case SPECIMEN: return "Specimen";
16314            case SPECIMENDEFINITION: return "SpecimenDefinition";
16315            case STRUCTUREDEFINITION: return "StructureDefinition";
16316            case STRUCTUREMAP: return "StructureMap";
16317            case SUBSCRIPTION: return "Subscription";
16318            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
16319            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
16320            case SUBSTANCE: return "Substance";
16321            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
16322            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
16323            case SUBSTANCEPOLYMER: return "SubstancePolymer";
16324            case SUBSTANCEPROTEIN: return "SubstanceProtein";
16325            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
16326            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
16327            case SUPPLYDELIVERY: return "SupplyDelivery";
16328            case SUPPLYREQUEST: return "SupplyRequest";
16329            case TASK: return "Task";
16330            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
16331            case TESTPLAN: return "TestPlan";
16332            case TESTREPORT: return "TestReport";
16333            case TESTSCRIPT: return "TestScript";
16334            case TRANSPORT: return "Transport";
16335            case VALUESET: return "ValueSet";
16336            case VERIFICATIONRESULT: return "VerificationResult";
16337            case VISIONPRESCRIPTION: return "VisionPrescription";
16338            case NULL: return null;
16339            default: return "?";
16340          }
16341        }
16342    }
16343
16344  public static class ResourceTypeEnumEnumFactory implements EnumFactory<ResourceTypeEnum> {
16345    public ResourceTypeEnum fromCode(String codeString) throws IllegalArgumentException {
16346      if (codeString == null || "".equals(codeString))
16347            if (codeString == null || "".equals(codeString))
16348                return null;
16349        if ("Account".equals(codeString))
16350          return ResourceTypeEnum.ACCOUNT;
16351        if ("ActivityDefinition".equals(codeString))
16352          return ResourceTypeEnum.ACTIVITYDEFINITION;
16353        if ("ActorDefinition".equals(codeString))
16354          return ResourceTypeEnum.ACTORDEFINITION;
16355        if ("AdministrableProductDefinition".equals(codeString))
16356          return ResourceTypeEnum.ADMINISTRABLEPRODUCTDEFINITION;
16357        if ("AdverseEvent".equals(codeString))
16358          return ResourceTypeEnum.ADVERSEEVENT;
16359        if ("AllergyIntolerance".equals(codeString))
16360          return ResourceTypeEnum.ALLERGYINTOLERANCE;
16361        if ("Appointment".equals(codeString))
16362          return ResourceTypeEnum.APPOINTMENT;
16363        if ("AppointmentResponse".equals(codeString))
16364          return ResourceTypeEnum.APPOINTMENTRESPONSE;
16365        if ("ArtifactAssessment".equals(codeString))
16366          return ResourceTypeEnum.ARTIFACTASSESSMENT;
16367        if ("AuditEvent".equals(codeString))
16368          return ResourceTypeEnum.AUDITEVENT;
16369        if ("Basic".equals(codeString))
16370          return ResourceTypeEnum.BASIC;
16371        if ("Binary".equals(codeString))
16372          return ResourceTypeEnum.BINARY;
16373        if ("BiologicallyDerivedProduct".equals(codeString))
16374          return ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCT;
16375        if ("BiologicallyDerivedProductDispense".equals(codeString))
16376          return ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCTDISPENSE;
16377        if ("BodyStructure".equals(codeString))
16378          return ResourceTypeEnum.BODYSTRUCTURE;
16379        if ("Bundle".equals(codeString))
16380          return ResourceTypeEnum.BUNDLE;
16381        if ("CapabilityStatement".equals(codeString))
16382          return ResourceTypeEnum.CAPABILITYSTATEMENT;
16383        if ("CarePlan".equals(codeString))
16384          return ResourceTypeEnum.CAREPLAN;
16385        if ("CareTeam".equals(codeString))
16386          return ResourceTypeEnum.CARETEAM;
16387        if ("ChargeItem".equals(codeString))
16388          return ResourceTypeEnum.CHARGEITEM;
16389        if ("ChargeItemDefinition".equals(codeString))
16390          return ResourceTypeEnum.CHARGEITEMDEFINITION;
16391        if ("Citation".equals(codeString))
16392          return ResourceTypeEnum.CITATION;
16393        if ("Claim".equals(codeString))
16394          return ResourceTypeEnum.CLAIM;
16395        if ("ClaimResponse".equals(codeString))
16396          return ResourceTypeEnum.CLAIMRESPONSE;
16397        if ("ClinicalImpression".equals(codeString))
16398          return ResourceTypeEnum.CLINICALIMPRESSION;
16399        if ("ClinicalUseDefinition".equals(codeString))
16400          return ResourceTypeEnum.CLINICALUSEDEFINITION;
16401        if ("CodeSystem".equals(codeString))
16402          return ResourceTypeEnum.CODESYSTEM;
16403        if ("Communication".equals(codeString))
16404          return ResourceTypeEnum.COMMUNICATION;
16405        if ("CommunicationRequest".equals(codeString))
16406          return ResourceTypeEnum.COMMUNICATIONREQUEST;
16407        if ("CompartmentDefinition".equals(codeString))
16408          return ResourceTypeEnum.COMPARTMENTDEFINITION;
16409        if ("Composition".equals(codeString))
16410          return ResourceTypeEnum.COMPOSITION;
16411        if ("ConceptMap".equals(codeString))
16412          return ResourceTypeEnum.CONCEPTMAP;
16413        if ("Condition".equals(codeString))
16414          return ResourceTypeEnum.CONDITION;
16415        if ("ConditionDefinition".equals(codeString))
16416          return ResourceTypeEnum.CONDITIONDEFINITION;
16417        if ("Consent".equals(codeString))
16418          return ResourceTypeEnum.CONSENT;
16419        if ("Contract".equals(codeString))
16420          return ResourceTypeEnum.CONTRACT;
16421        if ("Coverage".equals(codeString))
16422          return ResourceTypeEnum.COVERAGE;
16423        if ("CoverageEligibilityRequest".equals(codeString))
16424          return ResourceTypeEnum.COVERAGEELIGIBILITYREQUEST;
16425        if ("CoverageEligibilityResponse".equals(codeString))
16426          return ResourceTypeEnum.COVERAGEELIGIBILITYRESPONSE;
16427        if ("DetectedIssue".equals(codeString))
16428          return ResourceTypeEnum.DETECTEDISSUE;
16429        if ("Device".equals(codeString))
16430          return ResourceTypeEnum.DEVICE;
16431        if ("DeviceAssociation".equals(codeString))
16432          return ResourceTypeEnum.DEVICEASSOCIATION;
16433        if ("DeviceDefinition".equals(codeString))
16434          return ResourceTypeEnum.DEVICEDEFINITION;
16435        if ("DeviceDispense".equals(codeString))
16436          return ResourceTypeEnum.DEVICEDISPENSE;
16437        if ("DeviceMetric".equals(codeString))
16438          return ResourceTypeEnum.DEVICEMETRIC;
16439        if ("DeviceRequest".equals(codeString))
16440          return ResourceTypeEnum.DEVICEREQUEST;
16441        if ("DeviceUsage".equals(codeString))
16442          return ResourceTypeEnum.DEVICEUSAGE;
16443        if ("DiagnosticReport".equals(codeString))
16444          return ResourceTypeEnum.DIAGNOSTICREPORT;
16445        if ("DocumentReference".equals(codeString))
16446          return ResourceTypeEnum.DOCUMENTREFERENCE;
16447        if ("Encounter".equals(codeString))
16448          return ResourceTypeEnum.ENCOUNTER;
16449        if ("EncounterHistory".equals(codeString))
16450          return ResourceTypeEnum.ENCOUNTERHISTORY;
16451        if ("Endpoint".equals(codeString))
16452          return ResourceTypeEnum.ENDPOINT;
16453        if ("EnrollmentRequest".equals(codeString))
16454          return ResourceTypeEnum.ENROLLMENTREQUEST;
16455        if ("EnrollmentResponse".equals(codeString))
16456          return ResourceTypeEnum.ENROLLMENTRESPONSE;
16457        if ("EpisodeOfCare".equals(codeString))
16458          return ResourceTypeEnum.EPISODEOFCARE;
16459        if ("EventDefinition".equals(codeString))
16460          return ResourceTypeEnum.EVENTDEFINITION;
16461        if ("Evidence".equals(codeString))
16462          return ResourceTypeEnum.EVIDENCE;
16463        if ("EvidenceReport".equals(codeString))
16464          return ResourceTypeEnum.EVIDENCEREPORT;
16465        if ("EvidenceVariable".equals(codeString))
16466          return ResourceTypeEnum.EVIDENCEVARIABLE;
16467        if ("ExampleScenario".equals(codeString))
16468          return ResourceTypeEnum.EXAMPLESCENARIO;
16469        if ("ExplanationOfBenefit".equals(codeString))
16470          return ResourceTypeEnum.EXPLANATIONOFBENEFIT;
16471        if ("FamilyMemberHistory".equals(codeString))
16472          return ResourceTypeEnum.FAMILYMEMBERHISTORY;
16473        if ("Flag".equals(codeString))
16474          return ResourceTypeEnum.FLAG;
16475        if ("FormularyItem".equals(codeString))
16476          return ResourceTypeEnum.FORMULARYITEM;
16477        if ("GenomicStudy".equals(codeString))
16478          return ResourceTypeEnum.GENOMICSTUDY;
16479        if ("Goal".equals(codeString))
16480          return ResourceTypeEnum.GOAL;
16481        if ("GraphDefinition".equals(codeString))
16482          return ResourceTypeEnum.GRAPHDEFINITION;
16483        if ("Group".equals(codeString))
16484          return ResourceTypeEnum.GROUP;
16485        if ("GuidanceResponse".equals(codeString))
16486          return ResourceTypeEnum.GUIDANCERESPONSE;
16487        if ("HealthcareService".equals(codeString))
16488          return ResourceTypeEnum.HEALTHCARESERVICE;
16489        if ("ImagingSelection".equals(codeString))
16490          return ResourceTypeEnum.IMAGINGSELECTION;
16491        if ("ImagingStudy".equals(codeString))
16492          return ResourceTypeEnum.IMAGINGSTUDY;
16493        if ("Immunization".equals(codeString))
16494          return ResourceTypeEnum.IMMUNIZATION;
16495        if ("ImmunizationEvaluation".equals(codeString))
16496          return ResourceTypeEnum.IMMUNIZATIONEVALUATION;
16497        if ("ImmunizationRecommendation".equals(codeString))
16498          return ResourceTypeEnum.IMMUNIZATIONRECOMMENDATION;
16499        if ("ImplementationGuide".equals(codeString))
16500          return ResourceTypeEnum.IMPLEMENTATIONGUIDE;
16501        if ("Ingredient".equals(codeString))
16502          return ResourceTypeEnum.INGREDIENT;
16503        if ("InsurancePlan".equals(codeString))
16504          return ResourceTypeEnum.INSURANCEPLAN;
16505        if ("InventoryItem".equals(codeString))
16506          return ResourceTypeEnum.INVENTORYITEM;
16507        if ("InventoryReport".equals(codeString))
16508          return ResourceTypeEnum.INVENTORYREPORT;
16509        if ("Invoice".equals(codeString))
16510          return ResourceTypeEnum.INVOICE;
16511        if ("Library".equals(codeString))
16512          return ResourceTypeEnum.LIBRARY;
16513        if ("Linkage".equals(codeString))
16514          return ResourceTypeEnum.LINKAGE;
16515        if ("List".equals(codeString))
16516          return ResourceTypeEnum.LIST;
16517        if ("Location".equals(codeString))
16518          return ResourceTypeEnum.LOCATION;
16519        if ("ManufacturedItemDefinition".equals(codeString))
16520          return ResourceTypeEnum.MANUFACTUREDITEMDEFINITION;
16521        if ("Measure".equals(codeString))
16522          return ResourceTypeEnum.MEASURE;
16523        if ("MeasureReport".equals(codeString))
16524          return ResourceTypeEnum.MEASUREREPORT;
16525        if ("Medication".equals(codeString))
16526          return ResourceTypeEnum.MEDICATION;
16527        if ("MedicationAdministration".equals(codeString))
16528          return ResourceTypeEnum.MEDICATIONADMINISTRATION;
16529        if ("MedicationDispense".equals(codeString))
16530          return ResourceTypeEnum.MEDICATIONDISPENSE;
16531        if ("MedicationKnowledge".equals(codeString))
16532          return ResourceTypeEnum.MEDICATIONKNOWLEDGE;
16533        if ("MedicationRequest".equals(codeString))
16534          return ResourceTypeEnum.MEDICATIONREQUEST;
16535        if ("MedicationStatement".equals(codeString))
16536          return ResourceTypeEnum.MEDICATIONSTATEMENT;
16537        if ("MedicinalProductDefinition".equals(codeString))
16538          return ResourceTypeEnum.MEDICINALPRODUCTDEFINITION;
16539        if ("MessageDefinition".equals(codeString))
16540          return ResourceTypeEnum.MESSAGEDEFINITION;
16541        if ("MessageHeader".equals(codeString))
16542          return ResourceTypeEnum.MESSAGEHEADER;
16543        if ("MolecularSequence".equals(codeString))
16544          return ResourceTypeEnum.MOLECULARSEQUENCE;
16545        if ("NamingSystem".equals(codeString))
16546          return ResourceTypeEnum.NAMINGSYSTEM;
16547        if ("NutritionIntake".equals(codeString))
16548          return ResourceTypeEnum.NUTRITIONINTAKE;
16549        if ("NutritionOrder".equals(codeString))
16550          return ResourceTypeEnum.NUTRITIONORDER;
16551        if ("NutritionProduct".equals(codeString))
16552          return ResourceTypeEnum.NUTRITIONPRODUCT;
16553        if ("Observation".equals(codeString))
16554          return ResourceTypeEnum.OBSERVATION;
16555        if ("ObservationDefinition".equals(codeString))
16556          return ResourceTypeEnum.OBSERVATIONDEFINITION;
16557        if ("OperationDefinition".equals(codeString))
16558          return ResourceTypeEnum.OPERATIONDEFINITION;
16559        if ("OperationOutcome".equals(codeString))
16560          return ResourceTypeEnum.OPERATIONOUTCOME;
16561        if ("Organization".equals(codeString))
16562          return ResourceTypeEnum.ORGANIZATION;
16563        if ("OrganizationAffiliation".equals(codeString))
16564          return ResourceTypeEnum.ORGANIZATIONAFFILIATION;
16565        if ("PackagedProductDefinition".equals(codeString))
16566          return ResourceTypeEnum.PACKAGEDPRODUCTDEFINITION;
16567        if ("Parameters".equals(codeString))
16568          return ResourceTypeEnum.PARAMETERS;
16569        if ("Patient".equals(codeString))
16570          return ResourceTypeEnum.PATIENT;
16571        if ("PaymentNotice".equals(codeString))
16572          return ResourceTypeEnum.PAYMENTNOTICE;
16573        if ("PaymentReconciliation".equals(codeString))
16574          return ResourceTypeEnum.PAYMENTRECONCILIATION;
16575        if ("Permission".equals(codeString))
16576          return ResourceTypeEnum.PERMISSION;
16577        if ("Person".equals(codeString))
16578          return ResourceTypeEnum.PERSON;
16579        if ("PlanDefinition".equals(codeString))
16580          return ResourceTypeEnum.PLANDEFINITION;
16581        if ("Practitioner".equals(codeString))
16582          return ResourceTypeEnum.PRACTITIONER;
16583        if ("PractitionerRole".equals(codeString))
16584          return ResourceTypeEnum.PRACTITIONERROLE;
16585        if ("Procedure".equals(codeString))
16586          return ResourceTypeEnum.PROCEDURE;
16587        if ("Provenance".equals(codeString))
16588          return ResourceTypeEnum.PROVENANCE;
16589        if ("Questionnaire".equals(codeString))
16590          return ResourceTypeEnum.QUESTIONNAIRE;
16591        if ("QuestionnaireResponse".equals(codeString))
16592          return ResourceTypeEnum.QUESTIONNAIRERESPONSE;
16593        if ("RegulatedAuthorization".equals(codeString))
16594          return ResourceTypeEnum.REGULATEDAUTHORIZATION;
16595        if ("RelatedPerson".equals(codeString))
16596          return ResourceTypeEnum.RELATEDPERSON;
16597        if ("RequestOrchestration".equals(codeString))
16598          return ResourceTypeEnum.REQUESTORCHESTRATION;
16599        if ("Requirements".equals(codeString))
16600          return ResourceTypeEnum.REQUIREMENTS;
16601        if ("ResearchStudy".equals(codeString))
16602          return ResourceTypeEnum.RESEARCHSTUDY;
16603        if ("ResearchSubject".equals(codeString))
16604          return ResourceTypeEnum.RESEARCHSUBJECT;
16605        if ("RiskAssessment".equals(codeString))
16606          return ResourceTypeEnum.RISKASSESSMENT;
16607        if ("Schedule".equals(codeString))
16608          return ResourceTypeEnum.SCHEDULE;
16609        if ("SearchParameter".equals(codeString))
16610          return ResourceTypeEnum.SEARCHPARAMETER;
16611        if ("ServiceRequest".equals(codeString))
16612          return ResourceTypeEnum.SERVICEREQUEST;
16613        if ("Slot".equals(codeString))
16614          return ResourceTypeEnum.SLOT;
16615        if ("Specimen".equals(codeString))
16616          return ResourceTypeEnum.SPECIMEN;
16617        if ("SpecimenDefinition".equals(codeString))
16618          return ResourceTypeEnum.SPECIMENDEFINITION;
16619        if ("StructureDefinition".equals(codeString))
16620          return ResourceTypeEnum.STRUCTUREDEFINITION;
16621        if ("StructureMap".equals(codeString))
16622          return ResourceTypeEnum.STRUCTUREMAP;
16623        if ("Subscription".equals(codeString))
16624          return ResourceTypeEnum.SUBSCRIPTION;
16625        if ("SubscriptionStatus".equals(codeString))
16626          return ResourceTypeEnum.SUBSCRIPTIONSTATUS;
16627        if ("SubscriptionTopic".equals(codeString))
16628          return ResourceTypeEnum.SUBSCRIPTIONTOPIC;
16629        if ("Substance".equals(codeString))
16630          return ResourceTypeEnum.SUBSTANCE;
16631        if ("SubstanceDefinition".equals(codeString))
16632          return ResourceTypeEnum.SUBSTANCEDEFINITION;
16633        if ("SubstanceNucleicAcid".equals(codeString))
16634          return ResourceTypeEnum.SUBSTANCENUCLEICACID;
16635        if ("SubstancePolymer".equals(codeString))
16636          return ResourceTypeEnum.SUBSTANCEPOLYMER;
16637        if ("SubstanceProtein".equals(codeString))
16638          return ResourceTypeEnum.SUBSTANCEPROTEIN;
16639        if ("SubstanceReferenceInformation".equals(codeString))
16640          return ResourceTypeEnum.SUBSTANCEREFERENCEINFORMATION;
16641        if ("SubstanceSourceMaterial".equals(codeString))
16642          return ResourceTypeEnum.SUBSTANCESOURCEMATERIAL;
16643        if ("SupplyDelivery".equals(codeString))
16644          return ResourceTypeEnum.SUPPLYDELIVERY;
16645        if ("SupplyRequest".equals(codeString))
16646          return ResourceTypeEnum.SUPPLYREQUEST;
16647        if ("Task".equals(codeString))
16648          return ResourceTypeEnum.TASK;
16649        if ("TerminologyCapabilities".equals(codeString))
16650          return ResourceTypeEnum.TERMINOLOGYCAPABILITIES;
16651        if ("TestPlan".equals(codeString))
16652          return ResourceTypeEnum.TESTPLAN;
16653        if ("TestReport".equals(codeString))
16654          return ResourceTypeEnum.TESTREPORT;
16655        if ("TestScript".equals(codeString))
16656          return ResourceTypeEnum.TESTSCRIPT;
16657        if ("Transport".equals(codeString))
16658          return ResourceTypeEnum.TRANSPORT;
16659        if ("ValueSet".equals(codeString))
16660          return ResourceTypeEnum.VALUESET;
16661        if ("VerificationResult".equals(codeString))
16662          return ResourceTypeEnum.VERIFICATIONRESULT;
16663        if ("VisionPrescription".equals(codeString))
16664          return ResourceTypeEnum.VISIONPRESCRIPTION;
16665        throw new IllegalArgumentException("Unknown ResourceTypeEnum code '"+codeString+"'");
16666        }
16667
16668        public Enumeration<ResourceTypeEnum> fromType(PrimitiveType<?> code) throws FHIRException {
16669          if (code == null)
16670            return null;
16671          if (code.isEmpty())
16672            return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NULL, code);
16673          String codeString = ((PrimitiveType) code).asStringValue();
16674          if (codeString == null || "".equals(codeString))
16675            return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NULL, code);
16676        if ("Account".equals(codeString))
16677          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ACCOUNT, code);
16678        if ("ActivityDefinition".equals(codeString))
16679          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ACTIVITYDEFINITION, code);
16680        if ("ActorDefinition".equals(codeString))
16681          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ACTORDEFINITION, code);
16682        if ("AdministrableProductDefinition".equals(codeString))
16683          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ADMINISTRABLEPRODUCTDEFINITION, code);
16684        if ("AdverseEvent".equals(codeString))
16685          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ADVERSEEVENT, code);
16686        if ("AllergyIntolerance".equals(codeString))
16687          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ALLERGYINTOLERANCE, code);
16688        if ("Appointment".equals(codeString))
16689          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.APPOINTMENT, code);
16690        if ("AppointmentResponse".equals(codeString))
16691          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.APPOINTMENTRESPONSE, code);
16692        if ("ArtifactAssessment".equals(codeString))
16693          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ARTIFACTASSESSMENT, code);
16694        if ("AuditEvent".equals(codeString))
16695          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.AUDITEVENT, code);
16696        if ("Basic".equals(codeString))
16697          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BASIC, code);
16698        if ("Binary".equals(codeString))
16699          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BINARY, code);
16700        if ("BiologicallyDerivedProduct".equals(codeString))
16701          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCT, code);
16702        if ("BiologicallyDerivedProductDispense".equals(codeString))
16703          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCTDISPENSE, code);
16704        if ("BodyStructure".equals(codeString))
16705          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BODYSTRUCTURE, code);
16706        if ("Bundle".equals(codeString))
16707          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.BUNDLE, code);
16708        if ("CapabilityStatement".equals(codeString))
16709          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CAPABILITYSTATEMENT, code);
16710        if ("CarePlan".equals(codeString))
16711          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CAREPLAN, code);
16712        if ("CareTeam".equals(codeString))
16713          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CARETEAM, code);
16714        if ("ChargeItem".equals(codeString))
16715          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CHARGEITEM, code);
16716        if ("ChargeItemDefinition".equals(codeString))
16717          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CHARGEITEMDEFINITION, code);
16718        if ("Citation".equals(codeString))
16719          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CITATION, code);
16720        if ("Claim".equals(codeString))
16721          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLAIM, code);
16722        if ("ClaimResponse".equals(codeString))
16723          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLAIMRESPONSE, code);
16724        if ("ClinicalImpression".equals(codeString))
16725          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLINICALIMPRESSION, code);
16726        if ("ClinicalUseDefinition".equals(codeString))
16727          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CLINICALUSEDEFINITION, code);
16728        if ("CodeSystem".equals(codeString))
16729          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CODESYSTEM, code);
16730        if ("Communication".equals(codeString))
16731          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMMUNICATION, code);
16732        if ("CommunicationRequest".equals(codeString))
16733          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMMUNICATIONREQUEST, code);
16734        if ("CompartmentDefinition".equals(codeString))
16735          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMPARTMENTDEFINITION, code);
16736        if ("Composition".equals(codeString))
16737          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COMPOSITION, code);
16738        if ("ConceptMap".equals(codeString))
16739          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONCEPTMAP, code);
16740        if ("Condition".equals(codeString))
16741          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONDITION, code);
16742        if ("ConditionDefinition".equals(codeString))
16743          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONDITIONDEFINITION, code);
16744        if ("Consent".equals(codeString))
16745          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONSENT, code);
16746        if ("Contract".equals(codeString))
16747          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.CONTRACT, code);
16748        if ("Coverage".equals(codeString))
16749          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COVERAGE, code);
16750        if ("CoverageEligibilityRequest".equals(codeString))
16751          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COVERAGEELIGIBILITYREQUEST, code);
16752        if ("CoverageEligibilityResponse".equals(codeString))
16753          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.COVERAGEELIGIBILITYRESPONSE, code);
16754        if ("DetectedIssue".equals(codeString))
16755          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DETECTEDISSUE, code);
16756        if ("Device".equals(codeString))
16757          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICE, code);
16758        if ("DeviceAssociation".equals(codeString))
16759          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEASSOCIATION, code);
16760        if ("DeviceDefinition".equals(codeString))
16761          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEDEFINITION, code);
16762        if ("DeviceDispense".equals(codeString))
16763          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEDISPENSE, code);
16764        if ("DeviceMetric".equals(codeString))
16765          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEMETRIC, code);
16766        if ("DeviceRequest".equals(codeString))
16767          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEREQUEST, code);
16768        if ("DeviceUsage".equals(codeString))
16769          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DEVICEUSAGE, code);
16770        if ("DiagnosticReport".equals(codeString))
16771          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DIAGNOSTICREPORT, code);
16772        if ("DocumentReference".equals(codeString))
16773          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.DOCUMENTREFERENCE, code);
16774        if ("Encounter".equals(codeString))
16775          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENCOUNTER, code);
16776        if ("EncounterHistory".equals(codeString))
16777          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENCOUNTERHISTORY, code);
16778        if ("Endpoint".equals(codeString))
16779          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENDPOINT, code);
16780        if ("EnrollmentRequest".equals(codeString))
16781          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENROLLMENTREQUEST, code);
16782        if ("EnrollmentResponse".equals(codeString))
16783          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ENROLLMENTRESPONSE, code);
16784        if ("EpisodeOfCare".equals(codeString))
16785          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EPISODEOFCARE, code);
16786        if ("EventDefinition".equals(codeString))
16787          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVENTDEFINITION, code);
16788        if ("Evidence".equals(codeString))
16789          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVIDENCE, code);
16790        if ("EvidenceReport".equals(codeString))
16791          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVIDENCEREPORT, code);
16792        if ("EvidenceVariable".equals(codeString))
16793          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EVIDENCEVARIABLE, code);
16794        if ("ExampleScenario".equals(codeString))
16795          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EXAMPLESCENARIO, code);
16796        if ("ExplanationOfBenefit".equals(codeString))
16797          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.EXPLANATIONOFBENEFIT, code);
16798        if ("FamilyMemberHistory".equals(codeString))
16799          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.FAMILYMEMBERHISTORY, code);
16800        if ("Flag".equals(codeString))
16801          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.FLAG, code);
16802        if ("FormularyItem".equals(codeString))
16803          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.FORMULARYITEM, code);
16804        if ("GenomicStudy".equals(codeString))
16805          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GENOMICSTUDY, code);
16806        if ("Goal".equals(codeString))
16807          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GOAL, code);
16808        if ("GraphDefinition".equals(codeString))
16809          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GRAPHDEFINITION, code);
16810        if ("Group".equals(codeString))
16811          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GROUP, code);
16812        if ("GuidanceResponse".equals(codeString))
16813          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.GUIDANCERESPONSE, code);
16814        if ("HealthcareService".equals(codeString))
16815          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.HEALTHCARESERVICE, code);
16816        if ("ImagingSelection".equals(codeString))
16817          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMAGINGSELECTION, code);
16818        if ("ImagingStudy".equals(codeString))
16819          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMAGINGSTUDY, code);
16820        if ("Immunization".equals(codeString))
16821          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMMUNIZATION, code);
16822        if ("ImmunizationEvaluation".equals(codeString))
16823          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMMUNIZATIONEVALUATION, code);
16824        if ("ImmunizationRecommendation".equals(codeString))
16825          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMMUNIZATIONRECOMMENDATION, code);
16826        if ("ImplementationGuide".equals(codeString))
16827          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.IMPLEMENTATIONGUIDE, code);
16828        if ("Ingredient".equals(codeString))
16829          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INGREDIENT, code);
16830        if ("InsurancePlan".equals(codeString))
16831          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INSURANCEPLAN, code);
16832        if ("InventoryItem".equals(codeString))
16833          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INVENTORYITEM, code);
16834        if ("InventoryReport".equals(codeString))
16835          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INVENTORYREPORT, code);
16836        if ("Invoice".equals(codeString))
16837          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.INVOICE, code);
16838        if ("Library".equals(codeString))
16839          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LIBRARY, code);
16840        if ("Linkage".equals(codeString))
16841          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LINKAGE, code);
16842        if ("List".equals(codeString))
16843          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LIST, code);
16844        if ("Location".equals(codeString))
16845          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.LOCATION, code);
16846        if ("ManufacturedItemDefinition".equals(codeString))
16847          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MANUFACTUREDITEMDEFINITION, code);
16848        if ("Measure".equals(codeString))
16849          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEASURE, code);
16850        if ("MeasureReport".equals(codeString))
16851          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEASUREREPORT, code);
16852        if ("Medication".equals(codeString))
16853          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATION, code);
16854        if ("MedicationAdministration".equals(codeString))
16855          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONADMINISTRATION, code);
16856        if ("MedicationDispense".equals(codeString))
16857          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONDISPENSE, code);
16858        if ("MedicationKnowledge".equals(codeString))
16859          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONKNOWLEDGE, code);
16860        if ("MedicationRequest".equals(codeString))
16861          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONREQUEST, code);
16862        if ("MedicationStatement".equals(codeString))
16863          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICATIONSTATEMENT, code);
16864        if ("MedicinalProductDefinition".equals(codeString))
16865          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MEDICINALPRODUCTDEFINITION, code);
16866        if ("MessageDefinition".equals(codeString))
16867          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MESSAGEDEFINITION, code);
16868        if ("MessageHeader".equals(codeString))
16869          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MESSAGEHEADER, code);
16870        if ("MolecularSequence".equals(codeString))
16871          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.MOLECULARSEQUENCE, code);
16872        if ("NamingSystem".equals(codeString))
16873          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NAMINGSYSTEM, code);
16874        if ("NutritionIntake".equals(codeString))
16875          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NUTRITIONINTAKE, code);
16876        if ("NutritionOrder".equals(codeString))
16877          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NUTRITIONORDER, code);
16878        if ("NutritionProduct".equals(codeString))
16879          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.NUTRITIONPRODUCT, code);
16880        if ("Observation".equals(codeString))
16881          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OBSERVATION, code);
16882        if ("ObservationDefinition".equals(codeString))
16883          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OBSERVATIONDEFINITION, code);
16884        if ("OperationDefinition".equals(codeString))
16885          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OPERATIONDEFINITION, code);
16886        if ("OperationOutcome".equals(codeString))
16887          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.OPERATIONOUTCOME, code);
16888        if ("Organization".equals(codeString))
16889          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ORGANIZATION, code);
16890        if ("OrganizationAffiliation".equals(codeString))
16891          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.ORGANIZATIONAFFILIATION, code);
16892        if ("PackagedProductDefinition".equals(codeString))
16893          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PACKAGEDPRODUCTDEFINITION, code);
16894        if ("Parameters".equals(codeString))
16895          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PARAMETERS, code);
16896        if ("Patient".equals(codeString))
16897          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PATIENT, code);
16898        if ("PaymentNotice".equals(codeString))
16899          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PAYMENTNOTICE, code);
16900        if ("PaymentReconciliation".equals(codeString))
16901          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PAYMENTRECONCILIATION, code);
16902        if ("Permission".equals(codeString))
16903          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PERMISSION, code);
16904        if ("Person".equals(codeString))
16905          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PERSON, code);
16906        if ("PlanDefinition".equals(codeString))
16907          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PLANDEFINITION, code);
16908        if ("Practitioner".equals(codeString))
16909          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PRACTITIONER, code);
16910        if ("PractitionerRole".equals(codeString))
16911          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PRACTITIONERROLE, code);
16912        if ("Procedure".equals(codeString))
16913          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PROCEDURE, code);
16914        if ("Provenance".equals(codeString))
16915          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.PROVENANCE, code);
16916        if ("Questionnaire".equals(codeString))
16917          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.QUESTIONNAIRE, code);
16918        if ("QuestionnaireResponse".equals(codeString))
16919          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.QUESTIONNAIRERESPONSE, code);
16920        if ("RegulatedAuthorization".equals(codeString))
16921          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.REGULATEDAUTHORIZATION, code);
16922        if ("RelatedPerson".equals(codeString))
16923          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RELATEDPERSON, code);
16924        if ("RequestOrchestration".equals(codeString))
16925          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.REQUESTORCHESTRATION, code);
16926        if ("Requirements".equals(codeString))
16927          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.REQUIREMENTS, code);
16928        if ("ResearchStudy".equals(codeString))
16929          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RESEARCHSTUDY, code);
16930        if ("ResearchSubject".equals(codeString))
16931          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RESEARCHSUBJECT, code);
16932        if ("RiskAssessment".equals(codeString))
16933          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.RISKASSESSMENT, code);
16934        if ("Schedule".equals(codeString))
16935          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SCHEDULE, code);
16936        if ("SearchParameter".equals(codeString))
16937          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SEARCHPARAMETER, code);
16938        if ("ServiceRequest".equals(codeString))
16939          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SERVICEREQUEST, code);
16940        if ("Slot".equals(codeString))
16941          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SLOT, code);
16942        if ("Specimen".equals(codeString))
16943          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SPECIMEN, code);
16944        if ("SpecimenDefinition".equals(codeString))
16945          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SPECIMENDEFINITION, code);
16946        if ("StructureDefinition".equals(codeString))
16947          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.STRUCTUREDEFINITION, code);
16948        if ("StructureMap".equals(codeString))
16949          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.STRUCTUREMAP, code);
16950        if ("Subscription".equals(codeString))
16951          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSCRIPTION, code);
16952        if ("SubscriptionStatus".equals(codeString))
16953          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSCRIPTIONSTATUS, code);
16954        if ("SubscriptionTopic".equals(codeString))
16955          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSCRIPTIONTOPIC, code);
16956        if ("Substance".equals(codeString))
16957          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCE, code);
16958        if ("SubstanceDefinition".equals(codeString))
16959          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEDEFINITION, code);
16960        if ("SubstanceNucleicAcid".equals(codeString))
16961          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCENUCLEICACID, code);
16962        if ("SubstancePolymer".equals(codeString))
16963          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEPOLYMER, code);
16964        if ("SubstanceProtein".equals(codeString))
16965          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEPROTEIN, code);
16966        if ("SubstanceReferenceInformation".equals(codeString))
16967          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCEREFERENCEINFORMATION, code);
16968        if ("SubstanceSourceMaterial".equals(codeString))
16969          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUBSTANCESOURCEMATERIAL, code);
16970        if ("SupplyDelivery".equals(codeString))
16971          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUPPLYDELIVERY, code);
16972        if ("SupplyRequest".equals(codeString))
16973          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.SUPPLYREQUEST, code);
16974        if ("Task".equals(codeString))
16975          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TASK, code);
16976        if ("TerminologyCapabilities".equals(codeString))
16977          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TERMINOLOGYCAPABILITIES, code);
16978        if ("TestPlan".equals(codeString))
16979          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TESTPLAN, code);
16980        if ("TestReport".equals(codeString))
16981          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TESTREPORT, code);
16982        if ("TestScript".equals(codeString))
16983          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TESTSCRIPT, code);
16984        if ("Transport".equals(codeString))
16985          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.TRANSPORT, code);
16986        if ("ValueSet".equals(codeString))
16987          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.VALUESET, code);
16988        if ("VerificationResult".equals(codeString))
16989          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.VERIFICATIONRESULT, code);
16990        if ("VisionPrescription".equals(codeString))
16991          return new Enumeration<ResourceTypeEnum>(this, ResourceTypeEnum.VISIONPRESCRIPTION, code);
16992        throw new FHIRException("Unknown ResourceTypeEnum code '"+codeString+"'");
16993        }
16994    public String toCode(ResourceTypeEnum code) {
16995       if (code == ResourceTypeEnum.NULL)
16996           return null;
16997       if (code == ResourceTypeEnum.ACCOUNT)
16998        return "Account";
16999      if (code == ResourceTypeEnum.ACTIVITYDEFINITION)
17000        return "ActivityDefinition";
17001      if (code == ResourceTypeEnum.ACTORDEFINITION)
17002        return "ActorDefinition";
17003      if (code == ResourceTypeEnum.ADMINISTRABLEPRODUCTDEFINITION)
17004        return "AdministrableProductDefinition";
17005      if (code == ResourceTypeEnum.ADVERSEEVENT)
17006        return "AdverseEvent";
17007      if (code == ResourceTypeEnum.ALLERGYINTOLERANCE)
17008        return "AllergyIntolerance";
17009      if (code == ResourceTypeEnum.APPOINTMENT)
17010        return "Appointment";
17011      if (code == ResourceTypeEnum.APPOINTMENTRESPONSE)
17012        return "AppointmentResponse";
17013      if (code == ResourceTypeEnum.ARTIFACTASSESSMENT)
17014        return "ArtifactAssessment";
17015      if (code == ResourceTypeEnum.AUDITEVENT)
17016        return "AuditEvent";
17017      if (code == ResourceTypeEnum.BASIC)
17018        return "Basic";
17019      if (code == ResourceTypeEnum.BINARY)
17020        return "Binary";
17021      if (code == ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCT)
17022        return "BiologicallyDerivedProduct";
17023      if (code == ResourceTypeEnum.BIOLOGICALLYDERIVEDPRODUCTDISPENSE)
17024        return "BiologicallyDerivedProductDispense";
17025      if (code == ResourceTypeEnum.BODYSTRUCTURE)
17026        return "BodyStructure";
17027      if (code == ResourceTypeEnum.BUNDLE)
17028        return "Bundle";
17029      if (code == ResourceTypeEnum.CAPABILITYSTATEMENT)
17030        return "CapabilityStatement";
17031      if (code == ResourceTypeEnum.CAREPLAN)
17032        return "CarePlan";
17033      if (code == ResourceTypeEnum.CARETEAM)
17034        return "CareTeam";
17035      if (code == ResourceTypeEnum.CHARGEITEM)
17036        return "ChargeItem";
17037      if (code == ResourceTypeEnum.CHARGEITEMDEFINITION)
17038        return "ChargeItemDefinition";
17039      if (code == ResourceTypeEnum.CITATION)
17040        return "Citation";
17041      if (code == ResourceTypeEnum.CLAIM)
17042        return "Claim";
17043      if (code == ResourceTypeEnum.CLAIMRESPONSE)
17044        return "ClaimResponse";
17045      if (code == ResourceTypeEnum.CLINICALIMPRESSION)
17046        return "ClinicalImpression";
17047      if (code == ResourceTypeEnum.CLINICALUSEDEFINITION)
17048        return "ClinicalUseDefinition";
17049      if (code == ResourceTypeEnum.CODESYSTEM)
17050        return "CodeSystem";
17051      if (code == ResourceTypeEnum.COMMUNICATION)
17052        return "Communication";
17053      if (code == ResourceTypeEnum.COMMUNICATIONREQUEST)
17054        return "CommunicationRequest";
17055      if (code == ResourceTypeEnum.COMPARTMENTDEFINITION)
17056        return "CompartmentDefinition";
17057      if (code == ResourceTypeEnum.COMPOSITION)
17058        return "Composition";
17059      if (code == ResourceTypeEnum.CONCEPTMAP)
17060        return "ConceptMap";
17061      if (code == ResourceTypeEnum.CONDITION)
17062        return "Condition";
17063      if (code == ResourceTypeEnum.CONDITIONDEFINITION)
17064        return "ConditionDefinition";
17065      if (code == ResourceTypeEnum.CONSENT)
17066        return "Consent";
17067      if (code == ResourceTypeEnum.CONTRACT)
17068        return "Contract";
17069      if (code == ResourceTypeEnum.COVERAGE)
17070        return "Coverage";
17071      if (code == ResourceTypeEnum.COVERAGEELIGIBILITYREQUEST)
17072        return "CoverageEligibilityRequest";
17073      if (code == ResourceTypeEnum.COVERAGEELIGIBILITYRESPONSE)
17074        return "CoverageEligibilityResponse";
17075      if (code == ResourceTypeEnum.DETECTEDISSUE)
17076        return "DetectedIssue";
17077      if (code == ResourceTypeEnum.DEVICE)
17078        return "Device";
17079      if (code == ResourceTypeEnum.DEVICEASSOCIATION)
17080        return "DeviceAssociation";
17081      if (code == ResourceTypeEnum.DEVICEDEFINITION)
17082        return "DeviceDefinition";
17083      if (code == ResourceTypeEnum.DEVICEDISPENSE)
17084        return "DeviceDispense";
17085      if (code == ResourceTypeEnum.DEVICEMETRIC)
17086        return "DeviceMetric";
17087      if (code == ResourceTypeEnum.DEVICEREQUEST)
17088        return "DeviceRequest";
17089      if (code == ResourceTypeEnum.DEVICEUSAGE)
17090        return "DeviceUsage";
17091      if (code == ResourceTypeEnum.DIAGNOSTICREPORT)
17092        return "DiagnosticReport";
17093      if (code == ResourceTypeEnum.DOCUMENTREFERENCE)
17094        return "DocumentReference";
17095      if (code == ResourceTypeEnum.ENCOUNTER)
17096        return "Encounter";
17097      if (code == ResourceTypeEnum.ENCOUNTERHISTORY)
17098        return "EncounterHistory";
17099      if (code == ResourceTypeEnum.ENDPOINT)
17100        return "Endpoint";
17101      if (code == ResourceTypeEnum.ENROLLMENTREQUEST)
17102        return "EnrollmentRequest";
17103      if (code == ResourceTypeEnum.ENROLLMENTRESPONSE)
17104        return "EnrollmentResponse";
17105      if (code == ResourceTypeEnum.EPISODEOFCARE)
17106        return "EpisodeOfCare";
17107      if (code == ResourceTypeEnum.EVENTDEFINITION)
17108        return "EventDefinition";
17109      if (code == ResourceTypeEnum.EVIDENCE)
17110        return "Evidence";
17111      if (code == ResourceTypeEnum.EVIDENCEREPORT)
17112        return "EvidenceReport";
17113      if (code == ResourceTypeEnum.EVIDENCEVARIABLE)
17114        return "EvidenceVariable";
17115      if (code == ResourceTypeEnum.EXAMPLESCENARIO)
17116        return "ExampleScenario";
17117      if (code == ResourceTypeEnum.EXPLANATIONOFBENEFIT)
17118        return "ExplanationOfBenefit";
17119      if (code == ResourceTypeEnum.FAMILYMEMBERHISTORY)
17120        return "FamilyMemberHistory";
17121      if (code == ResourceTypeEnum.FLAG)
17122        return "Flag";
17123      if (code == ResourceTypeEnum.FORMULARYITEM)
17124        return "FormularyItem";
17125      if (code == ResourceTypeEnum.GENOMICSTUDY)
17126        return "GenomicStudy";
17127      if (code == ResourceTypeEnum.GOAL)
17128        return "Goal";
17129      if (code == ResourceTypeEnum.GRAPHDEFINITION)
17130        return "GraphDefinition";
17131      if (code == ResourceTypeEnum.GROUP)
17132        return "Group";
17133      if (code == ResourceTypeEnum.GUIDANCERESPONSE)
17134        return "GuidanceResponse";
17135      if (code == ResourceTypeEnum.HEALTHCARESERVICE)
17136        return "HealthcareService";
17137      if (code == ResourceTypeEnum.IMAGINGSELECTION)
17138        return "ImagingSelection";
17139      if (code == ResourceTypeEnum.IMAGINGSTUDY)
17140        return "ImagingStudy";
17141      if (code == ResourceTypeEnum.IMMUNIZATION)
17142        return "Immunization";
17143      if (code == ResourceTypeEnum.IMMUNIZATIONEVALUATION)
17144        return "ImmunizationEvaluation";
17145      if (code == ResourceTypeEnum.IMMUNIZATIONRECOMMENDATION)
17146        return "ImmunizationRecommendation";
17147      if (code == ResourceTypeEnum.IMPLEMENTATIONGUIDE)
17148        return "ImplementationGuide";
17149      if (code == ResourceTypeEnum.INGREDIENT)
17150        return "Ingredient";
17151      if (code == ResourceTypeEnum.INSURANCEPLAN)
17152        return "InsurancePlan";
17153      if (code == ResourceTypeEnum.INVENTORYITEM)
17154        return "InventoryItem";
17155      if (code == ResourceTypeEnum.INVENTORYREPORT)
17156        return "InventoryReport";
17157      if (code == ResourceTypeEnum.INVOICE)
17158        return "Invoice";
17159      if (code == ResourceTypeEnum.LIBRARY)
17160        return "Library";
17161      if (code == ResourceTypeEnum.LINKAGE)
17162        return "Linkage";
17163      if (code == ResourceTypeEnum.LIST)
17164        return "List";
17165      if (code == ResourceTypeEnum.LOCATION)
17166        return "Location";
17167      if (code == ResourceTypeEnum.MANUFACTUREDITEMDEFINITION)
17168        return "ManufacturedItemDefinition";
17169      if (code == ResourceTypeEnum.MEASURE)
17170        return "Measure";
17171      if (code == ResourceTypeEnum.MEASUREREPORT)
17172        return "MeasureReport";
17173      if (code == ResourceTypeEnum.MEDICATION)
17174        return "Medication";
17175      if (code == ResourceTypeEnum.MEDICATIONADMINISTRATION)
17176        return "MedicationAdministration";
17177      if (code == ResourceTypeEnum.MEDICATIONDISPENSE)
17178        return "MedicationDispense";
17179      if (code == ResourceTypeEnum.MEDICATIONKNOWLEDGE)
17180        return "MedicationKnowledge";
17181      if (code == ResourceTypeEnum.MEDICATIONREQUEST)
17182        return "MedicationRequest";
17183      if (code == ResourceTypeEnum.MEDICATIONSTATEMENT)
17184        return "MedicationStatement";
17185      if (code == ResourceTypeEnum.MEDICINALPRODUCTDEFINITION)
17186        return "MedicinalProductDefinition";
17187      if (code == ResourceTypeEnum.MESSAGEDEFINITION)
17188        return "MessageDefinition";
17189      if (code == ResourceTypeEnum.MESSAGEHEADER)
17190        return "MessageHeader";
17191      if (code == ResourceTypeEnum.MOLECULARSEQUENCE)
17192        return "MolecularSequence";
17193      if (code == ResourceTypeEnum.NAMINGSYSTEM)
17194        return "NamingSystem";
17195      if (code == ResourceTypeEnum.NUTRITIONINTAKE)
17196        return "NutritionIntake";
17197      if (code == ResourceTypeEnum.NUTRITIONORDER)
17198        return "NutritionOrder";
17199      if (code == ResourceTypeEnum.NUTRITIONPRODUCT)
17200        return "NutritionProduct";
17201      if (code == ResourceTypeEnum.OBSERVATION)
17202        return "Observation";
17203      if (code == ResourceTypeEnum.OBSERVATIONDEFINITION)
17204        return "ObservationDefinition";
17205      if (code == ResourceTypeEnum.OPERATIONDEFINITION)
17206        return "OperationDefinition";
17207      if (code == ResourceTypeEnum.OPERATIONOUTCOME)
17208        return "OperationOutcome";
17209      if (code == ResourceTypeEnum.ORGANIZATION)
17210        return "Organization";
17211      if (code == ResourceTypeEnum.ORGANIZATIONAFFILIATION)
17212        return "OrganizationAffiliation";
17213      if (code == ResourceTypeEnum.PACKAGEDPRODUCTDEFINITION)
17214        return "PackagedProductDefinition";
17215      if (code == ResourceTypeEnum.PARAMETERS)
17216        return "Parameters";
17217      if (code == ResourceTypeEnum.PATIENT)
17218        return "Patient";
17219      if (code == ResourceTypeEnum.PAYMENTNOTICE)
17220        return "PaymentNotice";
17221      if (code == ResourceTypeEnum.PAYMENTRECONCILIATION)
17222        return "PaymentReconciliation";
17223      if (code == ResourceTypeEnum.PERMISSION)
17224        return "Permission";
17225      if (code == ResourceTypeEnum.PERSON)
17226        return "Person";
17227      if (code == ResourceTypeEnum.PLANDEFINITION)
17228        return "PlanDefinition";
17229      if (code == ResourceTypeEnum.PRACTITIONER)
17230        return "Practitioner";
17231      if (code == ResourceTypeEnum.PRACTITIONERROLE)
17232        return "PractitionerRole";
17233      if (code == ResourceTypeEnum.PROCEDURE)
17234        return "Procedure";
17235      if (code == ResourceTypeEnum.PROVENANCE)
17236        return "Provenance";
17237      if (code == ResourceTypeEnum.QUESTIONNAIRE)
17238        return "Questionnaire";
17239      if (code == ResourceTypeEnum.QUESTIONNAIRERESPONSE)
17240        return "QuestionnaireResponse";
17241      if (code == ResourceTypeEnum.REGULATEDAUTHORIZATION)
17242        return "RegulatedAuthorization";
17243      if (code == ResourceTypeEnum.RELATEDPERSON)
17244        return "RelatedPerson";
17245      if (code == ResourceTypeEnum.REQUESTORCHESTRATION)
17246        return "RequestOrchestration";
17247      if (code == ResourceTypeEnum.REQUIREMENTS)
17248        return "Requirements";
17249      if (code == ResourceTypeEnum.RESEARCHSTUDY)
17250        return "ResearchStudy";
17251      if (code == ResourceTypeEnum.RESEARCHSUBJECT)
17252        return "ResearchSubject";
17253      if (code == ResourceTypeEnum.RISKASSESSMENT)
17254        return "RiskAssessment";
17255      if (code == ResourceTypeEnum.SCHEDULE)
17256        return "Schedule";
17257      if (code == ResourceTypeEnum.SEARCHPARAMETER)
17258        return "SearchParameter";
17259      if (code == ResourceTypeEnum.SERVICEREQUEST)
17260        return "ServiceRequest";
17261      if (code == ResourceTypeEnum.SLOT)
17262        return "Slot";
17263      if (code == ResourceTypeEnum.SPECIMEN)
17264        return "Specimen";
17265      if (code == ResourceTypeEnum.SPECIMENDEFINITION)
17266        return "SpecimenDefinition";
17267      if (code == ResourceTypeEnum.STRUCTUREDEFINITION)
17268        return "StructureDefinition";
17269      if (code == ResourceTypeEnum.STRUCTUREMAP)
17270        return "StructureMap";
17271      if (code == ResourceTypeEnum.SUBSCRIPTION)
17272        return "Subscription";
17273      if (code == ResourceTypeEnum.SUBSCRIPTIONSTATUS)
17274        return "SubscriptionStatus";
17275      if (code == ResourceTypeEnum.SUBSCRIPTIONTOPIC)
17276        return "SubscriptionTopic";
17277      if (code == ResourceTypeEnum.SUBSTANCE)
17278        return "Substance";
17279      if (code == ResourceTypeEnum.SUBSTANCEDEFINITION)
17280        return "SubstanceDefinition";
17281      if (code == ResourceTypeEnum.SUBSTANCENUCLEICACID)
17282        return "SubstanceNucleicAcid";
17283      if (code == ResourceTypeEnum.SUBSTANCEPOLYMER)
17284        return "SubstancePolymer";
17285      if (code == ResourceTypeEnum.SUBSTANCEPROTEIN)
17286        return "SubstanceProtein";
17287      if (code == ResourceTypeEnum.SUBSTANCEREFERENCEINFORMATION)
17288        return "SubstanceReferenceInformation";
17289      if (code == ResourceTypeEnum.SUBSTANCESOURCEMATERIAL)
17290        return "SubstanceSourceMaterial";
17291      if (code == ResourceTypeEnum.SUPPLYDELIVERY)
17292        return "SupplyDelivery";
17293      if (code == ResourceTypeEnum.SUPPLYREQUEST)
17294        return "SupplyRequest";
17295      if (code == ResourceTypeEnum.TASK)
17296        return "Task";
17297      if (code == ResourceTypeEnum.TERMINOLOGYCAPABILITIES)
17298        return "TerminologyCapabilities";
17299      if (code == ResourceTypeEnum.TESTPLAN)
17300        return "TestPlan";
17301      if (code == ResourceTypeEnum.TESTREPORT)
17302        return "TestReport";
17303      if (code == ResourceTypeEnum.TESTSCRIPT)
17304        return "TestScript";
17305      if (code == ResourceTypeEnum.TRANSPORT)
17306        return "Transport";
17307      if (code == ResourceTypeEnum.VALUESET)
17308        return "ValueSet";
17309      if (code == ResourceTypeEnum.VERIFICATIONRESULT)
17310        return "VerificationResult";
17311      if (code == ResourceTypeEnum.VISIONPRESCRIPTION)
17312        return "VisionPrescription";
17313      return "?";
17314   }
17315    public String toSystem(ResourceTypeEnum code) {
17316      return code.getSystem();
17317      }
17318    }
17319
17320    public enum SearchComparator {
17321        /**
17322         * the value for the parameter in the resource is equal to the provided value.
17323         */
17324        EQ, 
17325        /**
17326         * the value for the parameter in the resource is not equal to the provided value.
17327         */
17328        NE, 
17329        /**
17330         * the value for the parameter in the resource is greater than the provided value.
17331         */
17332        GT, 
17333        /**
17334         * the value for the parameter in the resource is less than the provided value.
17335         */
17336        LT, 
17337        /**
17338         * the value for the parameter in the resource is greater or equal to the provided value.
17339         */
17340        GE, 
17341        /**
17342         * the value for the parameter in the resource is less or equal to the provided value.
17343         */
17344        LE, 
17345        /**
17346         * the value for the parameter in the resource starts after the provided value.
17347         */
17348        SA, 
17349        /**
17350         * the value for the parameter in the resource ends before the provided value.
17351         */
17352        EB, 
17353        /**
17354         * the value for the parameter in the resource is approximately the same to the provided value.
17355         */
17356        AP, 
17357        /**
17358         * added to help the parsers
17359         */
17360        NULL;
17361        public static SearchComparator fromCode(String codeString) throws FHIRException {
17362            if (codeString == null || "".equals(codeString))
17363                return null;
17364        if ("eq".equals(codeString))
17365          return EQ;
17366        if ("ne".equals(codeString))
17367          return NE;
17368        if ("gt".equals(codeString))
17369          return GT;
17370        if ("lt".equals(codeString))
17371          return LT;
17372        if ("ge".equals(codeString))
17373          return GE;
17374        if ("le".equals(codeString))
17375          return LE;
17376        if ("sa".equals(codeString))
17377          return SA;
17378        if ("eb".equals(codeString))
17379          return EB;
17380        if ("ap".equals(codeString))
17381          return AP;
17382        throw new FHIRException("Unknown SearchComparator code '"+codeString+"'");
17383        }
17384        public static boolean isValidCode(String codeString) {
17385            if (codeString == null || "".equals(codeString))
17386                return false;
17387          return Utilities.existsInList(codeString, "eq", "ne", "gt", "lt", "ge", "le", "sa", "eb", "ap");
17388        }
17389        public String toCode() {
17390          switch (this) {
17391            case EQ: return "eq";
17392            case NE: return "ne";
17393            case GT: return "gt";
17394            case LT: return "lt";
17395            case GE: return "ge";
17396            case LE: return "le";
17397            case SA: return "sa";
17398            case EB: return "eb";
17399            case AP: return "ap";
17400            case NULL: return null;
17401            default: return "?";
17402          }
17403        }
17404        public String getSystem() {
17405          switch (this) {
17406            case EQ: return "http://hl7.org/fhir/search-comparator";
17407            case NE: return "http://hl7.org/fhir/search-comparator";
17408            case GT: return "http://hl7.org/fhir/search-comparator";
17409            case LT: return "http://hl7.org/fhir/search-comparator";
17410            case GE: return "http://hl7.org/fhir/search-comparator";
17411            case LE: return "http://hl7.org/fhir/search-comparator";
17412            case SA: return "http://hl7.org/fhir/search-comparator";
17413            case EB: return "http://hl7.org/fhir/search-comparator";
17414            case AP: return "http://hl7.org/fhir/search-comparator";
17415            case NULL: return null;
17416            default: return "?";
17417          }
17418        }
17419        public String getDefinition() {
17420          switch (this) {
17421            case EQ: return "the value for the parameter in the resource is equal to the provided value.";
17422            case NE: return "the value for the parameter in the resource is not equal to the provided value.";
17423            case GT: return "the value for the parameter in the resource is greater than the provided value.";
17424            case LT: return "the value for the parameter in the resource is less than the provided value.";
17425            case GE: return "the value for the parameter in the resource is greater or equal to the provided value.";
17426            case LE: return "the value for the parameter in the resource is less or equal to the provided value.";
17427            case SA: return "the value for the parameter in the resource starts after the provided value.";
17428            case EB: return "the value for the parameter in the resource ends before the provided value.";
17429            case AP: return "the value for the parameter in the resource is approximately the same to the provided value.";
17430            case NULL: return null;
17431            default: return "?";
17432          }
17433        }
17434        public String getDisplay() {
17435          switch (this) {
17436            case EQ: return "Equals";
17437            case NE: return "Not Equals";
17438            case GT: return "Greater Than";
17439            case LT: return "Less Than";
17440            case GE: return "Greater or Equals";
17441            case LE: return "Less of Equal";
17442            case SA: return "Starts After";
17443            case EB: return "Ends Before";
17444            case AP: return "Approximately";
17445            case NULL: return null;
17446            default: return "?";
17447          }
17448        }
17449    }
17450
17451  public static class SearchComparatorEnumFactory implements EnumFactory<SearchComparator> {
17452    public SearchComparator fromCode(String codeString) throws IllegalArgumentException {
17453      if (codeString == null || "".equals(codeString))
17454            if (codeString == null || "".equals(codeString))
17455                return null;
17456        if ("eq".equals(codeString))
17457          return SearchComparator.EQ;
17458        if ("ne".equals(codeString))
17459          return SearchComparator.NE;
17460        if ("gt".equals(codeString))
17461          return SearchComparator.GT;
17462        if ("lt".equals(codeString))
17463          return SearchComparator.LT;
17464        if ("ge".equals(codeString))
17465          return SearchComparator.GE;
17466        if ("le".equals(codeString))
17467          return SearchComparator.LE;
17468        if ("sa".equals(codeString))
17469          return SearchComparator.SA;
17470        if ("eb".equals(codeString))
17471          return SearchComparator.EB;
17472        if ("ap".equals(codeString))
17473          return SearchComparator.AP;
17474        throw new IllegalArgumentException("Unknown SearchComparator code '"+codeString+"'");
17475        }
17476
17477        public Enumeration<SearchComparator> fromType(PrimitiveType<?> code) throws FHIRException {
17478          if (code == null)
17479            return null;
17480          if (code.isEmpty())
17481            return new Enumeration<SearchComparator>(this, SearchComparator.NULL, code);
17482          String codeString = ((PrimitiveType) code).asStringValue();
17483          if (codeString == null || "".equals(codeString))
17484            return new Enumeration<SearchComparator>(this, SearchComparator.NULL, code);
17485        if ("eq".equals(codeString))
17486          return new Enumeration<SearchComparator>(this, SearchComparator.EQ, code);
17487        if ("ne".equals(codeString))
17488          return new Enumeration<SearchComparator>(this, SearchComparator.NE, code);
17489        if ("gt".equals(codeString))
17490          return new Enumeration<SearchComparator>(this, SearchComparator.GT, code);
17491        if ("lt".equals(codeString))
17492          return new Enumeration<SearchComparator>(this, SearchComparator.LT, code);
17493        if ("ge".equals(codeString))
17494          return new Enumeration<SearchComparator>(this, SearchComparator.GE, code);
17495        if ("le".equals(codeString))
17496          return new Enumeration<SearchComparator>(this, SearchComparator.LE, code);
17497        if ("sa".equals(codeString))
17498          return new Enumeration<SearchComparator>(this, SearchComparator.SA, code);
17499        if ("eb".equals(codeString))
17500          return new Enumeration<SearchComparator>(this, SearchComparator.EB, code);
17501        if ("ap".equals(codeString))
17502          return new Enumeration<SearchComparator>(this, SearchComparator.AP, code);
17503        throw new FHIRException("Unknown SearchComparator code '"+codeString+"'");
17504        }
17505    public String toCode(SearchComparator code) {
17506       if (code == SearchComparator.NULL)
17507           return null;
17508       if (code == SearchComparator.EQ)
17509        return "eq";
17510      if (code == SearchComparator.NE)
17511        return "ne";
17512      if (code == SearchComparator.GT)
17513        return "gt";
17514      if (code == SearchComparator.LT)
17515        return "lt";
17516      if (code == SearchComparator.GE)
17517        return "ge";
17518      if (code == SearchComparator.LE)
17519        return "le";
17520      if (code == SearchComparator.SA)
17521        return "sa";
17522      if (code == SearchComparator.EB)
17523        return "eb";
17524      if (code == SearchComparator.AP)
17525        return "ap";
17526      return "?";
17527   }
17528    public String toSystem(SearchComparator code) {
17529      return code.getSystem();
17530      }
17531    }
17532
17533    public enum SearchModifierCode {
17534        /**
17535         * The search parameter returns resources that have a value or not.
17536         */
17537        MISSING, 
17538        /**
17539         * The search parameter returns resources that have a value that exactly matches the supplied parameter (the whole string, including casing and accents).
17540         */
17541        EXACT, 
17542        /**
17543         * The search parameter returns resources that include the supplied parameter value anywhere within the field being searched.
17544         */
17545        CONTAINS, 
17546        /**
17547         * The search parameter returns resources that do not contain a match.
17548         */
17549        NOT, 
17550        /**
17551         * The search parameter is processed as a string that searches text associated with the code/value - either CodeableConcept.text, Coding.display, Identifier.type.text, or Reference.display.
17552         */
17553        TEXT, 
17554        /**
17555         * The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is in the specified value set.
17556         */
17557        IN, 
17558        /**
17559         * The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is not in the specified value set.
17560         */
17561        NOTIN, 
17562        /**
17563         * The search parameter tests whether the value in a resource is subsumed by the specified value (is-a, or hierarchical relationships).
17564         */
17565        BELOW, 
17566        /**
17567         * The search parameter tests whether the value in a resource subsumes the specified value (is-a, or hierarchical relationships).
17568         */
17569        ABOVE, 
17570        /**
17571         * The search parameter only applies to the Resource Type specified as a modifier (e.g. the modifier is not actually :type, but :Patient etc.).
17572         */
17573        TYPE, 
17574        /**
17575         * The search parameter applies to the identifier on the resource, not the reference.
17576         */
17577        IDENTIFIER, 
17578        /**
17579         * The search parameter has the format system|code|value, where the system and code refer to an Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present.
17580         */
17581        OFTYPE, 
17582        /**
17583         * Tests whether the textual display value in a resource (e.g., CodeableConcept.text, Coding.display, or Reference.display) matches the supplied parameter value.
17584         */
17585        CODETEXT, 
17586        /**
17587         * Tests whether the value in a resource matches the supplied parameter value using advanced text handling that searches text associated with the code/value - e.g., CodeableConcept.text, Coding.display, or Identifier.type.text.
17588         */
17589        TEXTADVANCED, 
17590        /**
17591         * The search parameter indicates an inclusion directive (_include, _revinclude) that is applied to an included resource instead of the matching resource.
17592         */
17593        ITERATE, 
17594        /**
17595         * added to help the parsers
17596         */
17597        NULL;
17598        public static SearchModifierCode fromCode(String codeString) throws FHIRException {
17599            if (codeString == null || "".equals(codeString))
17600                return null;
17601        if ("missing".equals(codeString))
17602          return MISSING;
17603        if ("exact".equals(codeString))
17604          return EXACT;
17605        if ("contains".equals(codeString))
17606          return CONTAINS;
17607        if ("not".equals(codeString))
17608          return NOT;
17609        if ("text".equals(codeString))
17610          return TEXT;
17611        if ("in".equals(codeString))
17612          return IN;
17613        if ("not-in".equals(codeString))
17614          return NOTIN;
17615        if ("below".equals(codeString))
17616          return BELOW;
17617        if ("above".equals(codeString))
17618          return ABOVE;
17619        if ("type".equals(codeString))
17620          return TYPE;
17621        if ("identifier".equals(codeString))
17622          return IDENTIFIER;
17623        if ("of-type".equals(codeString))
17624          return OFTYPE;
17625        if ("code-text".equals(codeString))
17626          return CODETEXT;
17627        if ("text-advanced".equals(codeString))
17628          return TEXTADVANCED;
17629        if ("iterate".equals(codeString))
17630          return ITERATE;
17631        throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'");
17632        }
17633        public static boolean isValidCode(String codeString) {
17634            if (codeString == null || "".equals(codeString))
17635                return false;
17636          return Utilities.existsInList(codeString, "missing", "exact", "contains", "not", "text", "in", "not-in", "below", "above", "type", "identifier", "of-type", "code-text", "text-advanced", "iterate");
17637        }
17638        public String toCode() {
17639          switch (this) {
17640            case MISSING: return "missing";
17641            case EXACT: return "exact";
17642            case CONTAINS: return "contains";
17643            case NOT: return "not";
17644            case TEXT: return "text";
17645            case IN: return "in";
17646            case NOTIN: return "not-in";
17647            case BELOW: return "below";
17648            case ABOVE: return "above";
17649            case TYPE: return "type";
17650            case IDENTIFIER: return "identifier";
17651            case OFTYPE: return "of-type";
17652            case CODETEXT: return "code-text";
17653            case TEXTADVANCED: return "text-advanced";
17654            case ITERATE: return "iterate";
17655            case NULL: return null;
17656            default: return "?";
17657          }
17658        }
17659        public String getSystem() {
17660          switch (this) {
17661            case MISSING: return "http://hl7.org/fhir/search-modifier-code";
17662            case EXACT: return "http://hl7.org/fhir/search-modifier-code";
17663            case CONTAINS: return "http://hl7.org/fhir/search-modifier-code";
17664            case NOT: return "http://hl7.org/fhir/search-modifier-code";
17665            case TEXT: return "http://hl7.org/fhir/search-modifier-code";
17666            case IN: return "http://hl7.org/fhir/search-modifier-code";
17667            case NOTIN: return "http://hl7.org/fhir/search-modifier-code";
17668            case BELOW: return "http://hl7.org/fhir/search-modifier-code";
17669            case ABOVE: return "http://hl7.org/fhir/search-modifier-code";
17670            case TYPE: return "http://hl7.org/fhir/search-modifier-code";
17671            case IDENTIFIER: return "http://hl7.org/fhir/search-modifier-code";
17672            case OFTYPE: return "http://hl7.org/fhir/search-modifier-code";
17673            case CODETEXT: return "http://hl7.org/fhir/search-modifier-code";
17674            case TEXTADVANCED: return "http://hl7.org/fhir/search-modifier-code";
17675            case ITERATE: return "http://hl7.org/fhir/search-modifier-code";
17676            case NULL: return null;
17677            default: return "?";
17678          }
17679        }
17680        public String getDefinition() {
17681          switch (this) {
17682            case MISSING: return "The search parameter returns resources that have a value or not.";
17683            case EXACT: return "The search parameter returns resources that have a value that exactly matches the supplied parameter (the whole string, including casing and accents).";
17684            case CONTAINS: return "The search parameter returns resources that include the supplied parameter value anywhere within the field being searched.";
17685            case NOT: return "The search parameter returns resources that do not contain a match.";
17686            case TEXT: return "The search parameter is processed as a string that searches text associated with the code/value - either CodeableConcept.text, Coding.display, Identifier.type.text, or Reference.display.";
17687            case IN: return "The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is in the specified value set.";
17688            case NOTIN: return "The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is not in the specified value set.";
17689            case BELOW: return "The search parameter tests whether the value in a resource is subsumed by the specified value (is-a, or hierarchical relationships).";
17690            case ABOVE: return "The search parameter tests whether the value in a resource subsumes the specified value (is-a, or hierarchical relationships).";
17691            case TYPE: return "The search parameter only applies to the Resource Type specified as a modifier (e.g. the modifier is not actually :type, but :Patient etc.).";
17692            case IDENTIFIER: return "The search parameter applies to the identifier on the resource, not the reference.";
17693            case OFTYPE: return "The search parameter has the format system|code|value, where the system and code refer to an Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present.";
17694            case CODETEXT: return "Tests whether the textual display value in a resource (e.g., CodeableConcept.text, Coding.display, or Reference.display) matches the supplied parameter value.";
17695            case TEXTADVANCED: return "Tests whether the value in a resource matches the supplied parameter value using advanced text handling that searches text associated with the code/value - e.g., CodeableConcept.text, Coding.display, or Identifier.type.text.";
17696            case ITERATE: return "The search parameter indicates an inclusion directive (_include, _revinclude) that is applied to an included resource instead of the matching resource.";
17697            case NULL: return null;
17698            default: return "?";
17699          }
17700        }
17701        public String getDisplay() {
17702          switch (this) {
17703            case MISSING: return "Missing";
17704            case EXACT: return "Exact";
17705            case CONTAINS: return "Contains";
17706            case NOT: return "Not";
17707            case TEXT: return "Text";
17708            case IN: return "In";
17709            case NOTIN: return "Not In";
17710            case BELOW: return "Below";
17711            case ABOVE: return "Above";
17712            case TYPE: return "Type";
17713            case IDENTIFIER: return "Identifier";
17714            case OFTYPE: return "Of Type";
17715            case CODETEXT: return "Code Text";
17716            case TEXTADVANCED: return "Text Advanced";
17717            case ITERATE: return "Iterate";
17718            case NULL: return null;
17719            default: return "?";
17720          }
17721        }
17722    }
17723
17724  public static class SearchModifierCodeEnumFactory implements EnumFactory<SearchModifierCode> {
17725    public SearchModifierCode fromCode(String codeString) throws IllegalArgumentException {
17726      if (codeString == null || "".equals(codeString))
17727            if (codeString == null || "".equals(codeString))
17728                return null;
17729        if ("missing".equals(codeString))
17730          return SearchModifierCode.MISSING;
17731        if ("exact".equals(codeString))
17732          return SearchModifierCode.EXACT;
17733        if ("contains".equals(codeString))
17734          return SearchModifierCode.CONTAINS;
17735        if ("not".equals(codeString))
17736          return SearchModifierCode.NOT;
17737        if ("text".equals(codeString))
17738          return SearchModifierCode.TEXT;
17739        if ("in".equals(codeString))
17740          return SearchModifierCode.IN;
17741        if ("not-in".equals(codeString))
17742          return SearchModifierCode.NOTIN;
17743        if ("below".equals(codeString))
17744          return SearchModifierCode.BELOW;
17745        if ("above".equals(codeString))
17746          return SearchModifierCode.ABOVE;
17747        if ("type".equals(codeString))
17748          return SearchModifierCode.TYPE;
17749        if ("identifier".equals(codeString))
17750          return SearchModifierCode.IDENTIFIER;
17751        if ("of-type".equals(codeString))
17752          return SearchModifierCode.OFTYPE;
17753        if ("code-text".equals(codeString))
17754          return SearchModifierCode.CODETEXT;
17755        if ("text-advanced".equals(codeString))
17756          return SearchModifierCode.TEXTADVANCED;
17757        if ("iterate".equals(codeString))
17758          return SearchModifierCode.ITERATE;
17759        throw new IllegalArgumentException("Unknown SearchModifierCode code '"+codeString+"'");
17760        }
17761
17762        public Enumeration<SearchModifierCode> fromType(PrimitiveType<?> code) throws FHIRException {
17763          if (code == null)
17764            return null;
17765          if (code.isEmpty())
17766            return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NULL, code);
17767          String codeString = ((PrimitiveType) code).asStringValue();
17768          if (codeString == null || "".equals(codeString))
17769            return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NULL, code);
17770        if ("missing".equals(codeString))
17771          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.MISSING, code);
17772        if ("exact".equals(codeString))
17773          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.EXACT, code);
17774        if ("contains".equals(codeString))
17775          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.CONTAINS, code);
17776        if ("not".equals(codeString))
17777          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOT, code);
17778        if ("text".equals(codeString))
17779          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TEXT, code);
17780        if ("in".equals(codeString))
17781          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.IN, code);
17782        if ("not-in".equals(codeString))
17783          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOTIN, code);
17784        if ("below".equals(codeString))
17785          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.BELOW, code);
17786        if ("above".equals(codeString))
17787          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.ABOVE, code);
17788        if ("type".equals(codeString))
17789          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TYPE, code);
17790        if ("identifier".equals(codeString))
17791          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.IDENTIFIER, code);
17792        if ("of-type".equals(codeString))
17793          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.OFTYPE, code);
17794        if ("code-text".equals(codeString))
17795          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.CODETEXT, code);
17796        if ("text-advanced".equals(codeString))
17797          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TEXTADVANCED, code);
17798        if ("iterate".equals(codeString))
17799          return new Enumeration<SearchModifierCode>(this, SearchModifierCode.ITERATE, code);
17800        throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'");
17801        }
17802    public String toCode(SearchModifierCode code) {
17803       if (code == SearchModifierCode.NULL)
17804           return null;
17805       if (code == SearchModifierCode.MISSING)
17806        return "missing";
17807      if (code == SearchModifierCode.EXACT)
17808        return "exact";
17809      if (code == SearchModifierCode.CONTAINS)
17810        return "contains";
17811      if (code == SearchModifierCode.NOT)
17812        return "not";
17813      if (code == SearchModifierCode.TEXT)
17814        return "text";
17815      if (code == SearchModifierCode.IN)
17816        return "in";
17817      if (code == SearchModifierCode.NOTIN)
17818        return "not-in";
17819      if (code == SearchModifierCode.BELOW)
17820        return "below";
17821      if (code == SearchModifierCode.ABOVE)
17822        return "above";
17823      if (code == SearchModifierCode.TYPE)
17824        return "type";
17825      if (code == SearchModifierCode.IDENTIFIER)
17826        return "identifier";
17827      if (code == SearchModifierCode.OFTYPE)
17828        return "of-type";
17829      if (code == SearchModifierCode.CODETEXT)
17830        return "code-text";
17831      if (code == SearchModifierCode.TEXTADVANCED)
17832        return "text-advanced";
17833      if (code == SearchModifierCode.ITERATE)
17834        return "iterate";
17835      return "?";
17836   }
17837    public String toSystem(SearchModifierCode code) {
17838      return code.getSystem();
17839      }
17840    }
17841
17842    public enum SearchParamType {
17843        /**
17844         * Search parameter SHALL be a number (a whole number, or a decimal).
17845         */
17846        NUMBER, 
17847        /**
17848         * Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.
17849         */
17850        DATE, 
17851        /**
17852         * 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.
17853         */
17854        STRING, 
17855        /**
17856         * 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.
17857         */
17858        TOKEN, 
17859        /**
17860         * A reference to another resource (Reference or canonical).
17861         */
17862        REFERENCE, 
17863        /**
17864         * A composite search parameter that combines a search on two values together.
17865         */
17866        COMPOSITE, 
17867        /**
17868         * A search parameter that searches on a quantity.
17869         */
17870        QUANTITY, 
17871        /**
17872         * A search parameter that searches on a URI (RFC 3986).
17873         */
17874        URI, 
17875        /**
17876         * Special logic applies to this parameter per the description of the search parameter.
17877         */
17878        SPECIAL, 
17879        RESOURCE, // R6 hack
17880        /**
17881         * added to help the parsers
17882         */
17883        NULL;
17884        public static SearchParamType fromCode(String codeString) throws FHIRException {
17885            if (codeString == null || "".equals(codeString))
17886                return null;
17887        if ("number".equals(codeString))
17888          return NUMBER;
17889        if ("date".equals(codeString))
17890          return DATE;
17891        if ("string".equals(codeString))
17892          return STRING;
17893        if ("token".equals(codeString))
17894          return TOKEN;
17895        if ("reference".equals(codeString))
17896          return REFERENCE;
17897        if ("composite".equals(codeString))
17898          return COMPOSITE;
17899        if ("quantity".equals(codeString))
17900          return QUANTITY;
17901        if ("uri".equals(codeString))
17902          return URI;
17903        if ("special".equals(codeString))
17904          return SPECIAL;
17905        if ("resource".equals(codeString))
17906          return RESOURCE;
17907        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
17908        }
17909        public static boolean isValidCode(String codeString) {
17910            if (codeString == null || "".equals(codeString))
17911                return false;
17912          return Utilities.existsInList(codeString, "number", "date", "string", "token", "reference", "composite", "quantity", "uri", "special", "resource");
17913        }
17914        public String toCode() {
17915          switch (this) {
17916            case NUMBER: return "number";
17917            case DATE: return "date";
17918            case STRING: return "string";
17919            case TOKEN: return "token";
17920            case REFERENCE: return "reference";
17921            case COMPOSITE: return "composite";
17922            case QUANTITY: return "quantity";
17923            case URI: return "uri";
17924            case SPECIAL: return "special";
17925            case RESOURCE: return "resource";
17926            case NULL: return null;
17927            default: return "?";
17928          }
17929        }
17930        public String getSystem() {
17931          switch (this) {
17932            case NUMBER: return "http://hl7.org/fhir/search-param-type";
17933            case DATE: return "http://hl7.org/fhir/search-param-type";
17934            case STRING: return "http://hl7.org/fhir/search-param-type";
17935            case TOKEN: return "http://hl7.org/fhir/search-param-type";
17936            case REFERENCE: return "http://hl7.org/fhir/search-param-type";
17937            case COMPOSITE: return "http://hl7.org/fhir/search-param-type";
17938            case QUANTITY: return "http://hl7.org/fhir/search-param-type";
17939            case URI: return "http://hl7.org/fhir/search-param-type";
17940            case SPECIAL: return "http://hl7.org/fhir/search-param-type";
17941            case RESOURCE: return "http://hl7.org/fhir/search-param-type";
17942            case NULL: return null;
17943            default: return "?";
17944          }
17945        }
17946        public String getDefinition() {
17947          switch (this) {
17948            case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal).";
17949            case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.";
17950            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.";
17951            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.";
17952            case REFERENCE: return "A reference to another resource (Reference or canonical).";
17953            case COMPOSITE: return "A composite search parameter that combines a search on two values together.";
17954            case QUANTITY: return "A search parameter that searches on a quantity.";
17955            case URI: return "A search parameter that searches on a URI (RFC 3986).";
17956            case SPECIAL: return "Special logic applies to this parameter per the description of the search parameter.";
17957            case RESOURCE: return "Special logic applies to this parameter per the description of the search parameter.";
17958            case NULL: return null;
17959            default: return "?";
17960          }
17961        }
17962        public String getDisplay() {
17963          switch (this) {
17964            case NUMBER: return "Number";
17965            case DATE: return "Date/DateTime";
17966            case STRING: return "String";
17967            case TOKEN: return "Token";
17968            case REFERENCE: return "Reference";
17969            case COMPOSITE: return "Composite";
17970            case QUANTITY: return "Quantity";
17971            case URI: return "URI";
17972            case SPECIAL: return "Special";
17973            case RESOURCE: return "Resource";
17974            case NULL: return null;
17975            default: return "?";
17976          }
17977        }
17978    }
17979
17980  public static class SearchParamTypeEnumFactory implements EnumFactory<SearchParamType> {
17981    public SearchParamType fromCode(String codeString) throws IllegalArgumentException {
17982      if (codeString == null || "".equals(codeString))
17983            if (codeString == null || "".equals(codeString))
17984                return null;
17985        if ("number".equals(codeString))
17986          return SearchParamType.NUMBER;
17987        if ("date".equals(codeString))
17988          return SearchParamType.DATE;
17989        if ("string".equals(codeString))
17990          return SearchParamType.STRING;
17991        if ("token".equals(codeString))
17992          return SearchParamType.TOKEN;
17993        if ("reference".equals(codeString))
17994          return SearchParamType.REFERENCE;
17995        if ("composite".equals(codeString))
17996          return SearchParamType.COMPOSITE;
17997        if ("quantity".equals(codeString))
17998          return SearchParamType.QUANTITY;
17999        if ("uri".equals(codeString))
18000          return SearchParamType.URI;
18001        if ("special".equals(codeString))
18002          return SearchParamType.SPECIAL;
18003        if ("resource".equals(codeString))
18004          return SearchParamType.RESOURCE;
18005        throw new IllegalArgumentException("Unknown SearchParamType code '"+codeString+"'");
18006        }
18007
18008        public Enumeration<SearchParamType> fromType(PrimitiveType<?> code) throws FHIRException {
18009          if (code == null)
18010            return null;
18011          if (code.isEmpty())
18012            return new Enumeration<SearchParamType>(this, SearchParamType.NULL, code);
18013          String codeString = ((PrimitiveType) code).asStringValue();
18014          if (codeString == null || "".equals(codeString))
18015            return new Enumeration<SearchParamType>(this, SearchParamType.NULL, code);
18016        if ("number".equals(codeString))
18017          return new Enumeration<SearchParamType>(this, SearchParamType.NUMBER, code);
18018        if ("date".equals(codeString))
18019          return new Enumeration<SearchParamType>(this, SearchParamType.DATE, code);
18020        if ("string".equals(codeString))
18021          return new Enumeration<SearchParamType>(this, SearchParamType.STRING, code);
18022        if ("token".equals(codeString))
18023          return new Enumeration<SearchParamType>(this, SearchParamType.TOKEN, code);
18024        if ("reference".equals(codeString))
18025          return new Enumeration<SearchParamType>(this, SearchParamType.REFERENCE, code);
18026        if ("composite".equals(codeString))
18027          return new Enumeration<SearchParamType>(this, SearchParamType.COMPOSITE, code);
18028        if ("quantity".equals(codeString))
18029          return new Enumeration<SearchParamType>(this, SearchParamType.QUANTITY, code);
18030        if ("uri".equals(codeString))
18031          return new Enumeration<SearchParamType>(this, SearchParamType.URI, code);
18032        if ("special".equals(codeString))
18033          return new Enumeration<SearchParamType>(this, SearchParamType.SPECIAL, code);
18034        if ("resource".equals(codeString))
18035          return new Enumeration<SearchParamType>(this, SearchParamType.RESOURCE, code);
18036        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
18037        }
18038    public String toCode(SearchParamType code) {
18039       if (code == SearchParamType.NULL)
18040           return null;
18041       if (code == SearchParamType.NUMBER)
18042        return "number";
18043      if (code == SearchParamType.DATE)
18044        return "date";
18045      if (code == SearchParamType.STRING)
18046        return "string";
18047      if (code == SearchParamType.TOKEN)
18048        return "token";
18049      if (code == SearchParamType.REFERENCE)
18050        return "reference";
18051      if (code == SearchParamType.COMPOSITE)
18052        return "composite";
18053      if (code == SearchParamType.QUANTITY)
18054        return "quantity";
18055      if (code == SearchParamType.URI)
18056        return "uri";
18057      if (code == SearchParamType.SPECIAL)
18058        return "special";
18059      if (code == SearchParamType.RESOURCE)
18060        return "resource";
18061      return "?";
18062   }
18063    public String toSystem(SearchParamType code) {
18064      return code.getSystem();
18065      }
18066    }
18067
18068    public enum SubscriptionStatusCodes {
18069        /**
18070         * The client has requested the subscription, and the server has not yet set it up.
18071         */
18072        REQUESTED, 
18073        /**
18074         * The subscription is active.
18075         */
18076        ACTIVE, 
18077        /**
18078         * The server has an error executing the notification.
18079         */
18080        ERROR, 
18081        /**
18082         * Too many errors have occurred or the subscription has expired.
18083         */
18084        OFF, 
18085        /**
18086         * This subscription has been flagged as incorrect.
18087         */
18088        ENTEREDINERROR, 
18089        /**
18090         * added to help the parsers
18091         */
18092        NULL;
18093        public static SubscriptionStatusCodes fromCode(String codeString) throws FHIRException {
18094            if (codeString == null || "".equals(codeString))
18095                return null;
18096        if ("requested".equals(codeString))
18097          return REQUESTED;
18098        if ("active".equals(codeString))
18099          return ACTIVE;
18100        if ("error".equals(codeString))
18101          return ERROR;
18102        if ("off".equals(codeString))
18103          return OFF;
18104        if ("entered-in-error".equals(codeString))
18105          return ENTEREDINERROR;
18106        throw new FHIRException("Unknown SubscriptionStatusCodes code '"+codeString+"'");
18107        }
18108        public static boolean isValidCode(String codeString) {
18109            if (codeString == null || "".equals(codeString))
18110                return false;
18111          return Utilities.existsInList(codeString, "requested", "active", "error", "off", "entered-in-error");
18112        }
18113        public String toCode() {
18114          switch (this) {
18115            case REQUESTED: return "requested";
18116            case ACTIVE: return "active";
18117            case ERROR: return "error";
18118            case OFF: return "off";
18119            case ENTEREDINERROR: return "entered-in-error";
18120            case NULL: return null;
18121            default: return "?";
18122          }
18123        }
18124        public String getSystem() {
18125          switch (this) {
18126            case REQUESTED: return "http://hl7.org/fhir/subscription-status";
18127            case ACTIVE: return "http://hl7.org/fhir/subscription-status";
18128            case ERROR: return "http://hl7.org/fhir/subscription-status";
18129            case OFF: return "http://hl7.org/fhir/subscription-status";
18130            case ENTEREDINERROR: return "http://hl7.org/fhir/subscription-status";
18131            case NULL: return null;
18132            default: return "?";
18133          }
18134        }
18135        public String getDefinition() {
18136          switch (this) {
18137            case REQUESTED: return "The client has requested the subscription, and the server has not yet set it up.";
18138            case ACTIVE: return "The subscription is active.";
18139            case ERROR: return "The server has an error executing the notification.";
18140            case OFF: return "Too many errors have occurred or the subscription has expired.";
18141            case ENTEREDINERROR: return "This subscription has been flagged as incorrect.";
18142            case NULL: return null;
18143            default: return "?";
18144          }
18145        }
18146        public String getDisplay() {
18147          switch (this) {
18148            case REQUESTED: return "Requested";
18149            case ACTIVE: return "Active";
18150            case ERROR: return "Error";
18151            case OFF: return "Off";
18152            case ENTEREDINERROR: return "Entered in Error";
18153            case NULL: return null;
18154            default: return "?";
18155          }
18156        }
18157    }
18158
18159  public static class SubscriptionStatusCodesEnumFactory implements EnumFactory<SubscriptionStatusCodes> {
18160    public SubscriptionStatusCodes fromCode(String codeString) throws IllegalArgumentException {
18161      if (codeString == null || "".equals(codeString))
18162            if (codeString == null || "".equals(codeString))
18163                return null;
18164        if ("requested".equals(codeString))
18165          return SubscriptionStatusCodes.REQUESTED;
18166        if ("active".equals(codeString))
18167          return SubscriptionStatusCodes.ACTIVE;
18168        if ("error".equals(codeString))
18169          return SubscriptionStatusCodes.ERROR;
18170        if ("off".equals(codeString))
18171          return SubscriptionStatusCodes.OFF;
18172        if ("entered-in-error".equals(codeString))
18173          return SubscriptionStatusCodes.ENTEREDINERROR;
18174        throw new IllegalArgumentException("Unknown SubscriptionStatusCodes code '"+codeString+"'");
18175        }
18176
18177        public Enumeration<SubscriptionStatusCodes> fromType(PrimitiveType<?> code) throws FHIRException {
18178          if (code == null)
18179            return null;
18180          if (code.isEmpty())
18181            return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.NULL, code);
18182          String codeString = ((PrimitiveType) code).asStringValue();
18183          if (codeString == null || "".equals(codeString))
18184            return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.NULL, code);
18185        if ("requested".equals(codeString))
18186          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.REQUESTED, code);
18187        if ("active".equals(codeString))
18188          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.ACTIVE, code);
18189        if ("error".equals(codeString))
18190          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.ERROR, code);
18191        if ("off".equals(codeString))
18192          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.OFF, code);
18193        if ("entered-in-error".equals(codeString))
18194          return new Enumeration<SubscriptionStatusCodes>(this, SubscriptionStatusCodes.ENTEREDINERROR, code);
18195        throw new FHIRException("Unknown SubscriptionStatusCodes code '"+codeString+"'");
18196        }
18197    public String toCode(SubscriptionStatusCodes code) {
18198       if (code == SubscriptionStatusCodes.NULL)
18199           return null;
18200       if (code == SubscriptionStatusCodes.REQUESTED)
18201        return "requested";
18202      if (code == SubscriptionStatusCodes.ACTIVE)
18203        return "active";
18204      if (code == SubscriptionStatusCodes.ERROR)
18205        return "error";
18206      if (code == SubscriptionStatusCodes.OFF)
18207        return "off";
18208      if (code == SubscriptionStatusCodes.ENTEREDINERROR)
18209        return "entered-in-error";
18210      return "?";
18211   }
18212    public String toSystem(SubscriptionStatusCodes code) {
18213      return code.getSystem();
18214      }
18215    }
18216
18217    public enum Use {
18218        /**
18219         * The treatment is complete and this represents a Claim for the services.
18220         */
18221        CLAIM, 
18222        /**
18223         * The treatment is proposed and this represents a Pre-authorization for the services.
18224         */
18225        PREAUTHORIZATION, 
18226        /**
18227         * The treatment is proposed and this represents a Pre-determination for the services.
18228         */
18229        PREDETERMINATION, 
18230        /**
18231         * added to help the parsers
18232         */
18233        NULL;
18234        public static Use fromCode(String codeString) throws FHIRException {
18235            if (codeString == null || "".equals(codeString))
18236                return null;
18237        if ("claim".equals(codeString))
18238          return CLAIM;
18239        if ("preauthorization".equals(codeString))
18240          return PREAUTHORIZATION;
18241        if ("predetermination".equals(codeString))
18242          return PREDETERMINATION;
18243        throw new FHIRException("Unknown Use code '"+codeString+"'");
18244        }
18245        public static boolean isValidCode(String codeString) {
18246            if (codeString == null || "".equals(codeString))
18247                return false;
18248          return Utilities.existsInList(codeString, "claim", "preauthorization", "predetermination");
18249        }
18250        public String toCode() {
18251          switch (this) {
18252            case CLAIM: return "claim";
18253            case PREAUTHORIZATION: return "preauthorization";
18254            case PREDETERMINATION: return "predetermination";
18255            case NULL: return null;
18256            default: return "?";
18257          }
18258        }
18259        public String getSystem() {
18260          switch (this) {
18261            case CLAIM: return "http://hl7.org/fhir/claim-use";
18262            case PREAUTHORIZATION: return "http://hl7.org/fhir/claim-use";
18263            case PREDETERMINATION: return "http://hl7.org/fhir/claim-use";
18264            case NULL: return null;
18265            default: return "?";
18266          }
18267        }
18268        public String getDefinition() {
18269          switch (this) {
18270            case CLAIM: return "The treatment is complete and this represents a Claim for the services.";
18271            case PREAUTHORIZATION: return "The treatment is proposed and this represents a Pre-authorization for the services.";
18272            case PREDETERMINATION: return "The treatment is proposed and this represents a Pre-determination for the services.";
18273            case NULL: return null;
18274            default: return "?";
18275          }
18276        }
18277        public String getDisplay() {
18278          switch (this) {
18279            case CLAIM: return "Claim";
18280            case PREAUTHORIZATION: return "Preauthorization";
18281            case PREDETERMINATION: return "Predetermination";
18282            case NULL: return null;
18283            default: return "?";
18284          }
18285        }
18286    }
18287
18288  public static class UseEnumFactory implements EnumFactory<Use> {
18289    public Use fromCode(String codeString) throws IllegalArgumentException {
18290      if (codeString == null || "".equals(codeString))
18291            if (codeString == null || "".equals(codeString))
18292                return null;
18293        if ("claim".equals(codeString))
18294          return Use.CLAIM;
18295        if ("preauthorization".equals(codeString))
18296          return Use.PREAUTHORIZATION;
18297        if ("predetermination".equals(codeString))
18298          return Use.PREDETERMINATION;
18299        throw new IllegalArgumentException("Unknown Use code '"+codeString+"'");
18300        }
18301
18302        public Enumeration<Use> fromType(PrimitiveType<?> code) throws FHIRException {
18303          if (code == null)
18304            return null;
18305          if (code.isEmpty())
18306            return new Enumeration<Use>(this, Use.NULL, code);
18307          String codeString = ((PrimitiveType) code).asStringValue();
18308          if (codeString == null || "".equals(codeString))
18309            return new Enumeration<Use>(this, Use.NULL, code);
18310        if ("claim".equals(codeString))
18311          return new Enumeration<Use>(this, Use.CLAIM, code);
18312        if ("preauthorization".equals(codeString))
18313          return new Enumeration<Use>(this, Use.PREAUTHORIZATION, code);
18314        if ("predetermination".equals(codeString))
18315          return new Enumeration<Use>(this, Use.PREDETERMINATION, code);
18316        throw new FHIRException("Unknown Use code '"+codeString+"'");
18317        }
18318    public String toCode(Use code) {
18319       if (code == Use.NULL)
18320           return null;
18321       if (code == Use.CLAIM)
18322        return "claim";
18323      if (code == Use.PREAUTHORIZATION)
18324        return "preauthorization";
18325      if (code == Use.PREDETERMINATION)
18326        return "predetermination";
18327      return "?";
18328   }
18329    public String toSystem(Use code) {
18330      return code.getSystem();
18331      }
18332    }
18333
18334    public enum VersionIndependentResourceTypesAll {
18335        /**
18336         * 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.
18337         */
18338        ACCOUNT, 
18339        /**
18340         * This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.
18341         */
18342        ACTIVITYDEFINITION, 
18343        /**
18344         * 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.
18345         */
18346        ACTORDEFINITION, 
18347        /**
18348         * 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).
18349         */
18350        ADMINISTRABLEPRODUCTDEFINITION, 
18351        /**
18352         * An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research participant. 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.  Adverse events can be reported by healthcare providers, patients, caregivers or by medical products manufacturers.  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.
18353         */
18354        ADVERSEEVENT, 
18355        /**
18356         * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
18357         */
18358        ALLERGYINTOLERANCE, 
18359        /**
18360         * 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).
18361         */
18362        APPOINTMENT, 
18363        /**
18364         * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
18365         */
18366        APPOINTMENTRESPONSE, 
18367        /**
18368         * This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.
18369         */
18370        ARTIFACTASSESSMENT, 
18371        /**
18372         * A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.
18373         */
18374        AUDITEVENT, 
18375        /**
18376         * 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.
18377         */
18378        BASIC, 
18379        /**
18380         * 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.
18381         */
18382        BINARY, 
18383        /**
18384         * A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.
18385         */
18386        BIOLOGICALLYDERIVEDPRODUCT, 
18387        /**
18388         * A record of dispensation of a biologically derived product.
18389         */
18390        BIOLOGICALLYDERIVEDPRODUCTDISPENSE, 
18391        /**
18392         * 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.
18393         */
18394        BODYSTRUCTURE, 
18395        /**
18396         * A container for a collection of resources.
18397         */
18398        BUNDLE, 
18399        /**
18400         * Common Interface declaration for conformance and knowledge artifact resources.
18401         */
18402        CANONICALRESOURCE, 
18403        /**
18404         * 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.
18405         */
18406        CAPABILITYSTATEMENT, 
18407        /**
18408         * 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.
18409         */
18410        CAREPLAN, 
18411        /**
18412         * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.
18413         */
18414        CARETEAM, 
18415        /**
18416         * 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.
18417         */
18418        CHARGEITEM, 
18419        /**
18420         * 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.
18421         */
18422        CHARGEITEMDEFINITION, 
18423        /**
18424         * 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.
18425         */
18426        CITATION, 
18427        /**
18428         * 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.
18429         */
18430        CLAIM, 
18431        /**
18432         * This resource provides the adjudication details from the processing of a Claim resource.
18433         */
18434        CLAIMRESPONSE, 
18435        /**
18436         * 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.
18437         */
18438        CLINICALIMPRESSION, 
18439        /**
18440         * A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.
18441         */
18442        CLINICALUSEDEFINITION, 
18443        /**
18444         * 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.
18445         */
18446        CODESYSTEM, 
18447        /**
18448         * 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.
18449         */
18450        COMMUNICATION, 
18451        /**
18452         * 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.
18453         */
18454        COMMUNICATIONREQUEST, 
18455        /**
18456         * A compartment definition that defines how resources are accessed on a server.
18457         */
18458        COMPARTMENTDEFINITION, 
18459        /**
18460         * 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.).
18461         */
18462        COMPOSITION, 
18463        /**
18464         * 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.
18465         */
18466        CONCEPTMAP, 
18467        /**
18468         * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
18469         */
18470        CONDITION, 
18471        /**
18472         * A definition of a condition and information relevant to managing it.
18473         */
18474        CONDITIONDEFINITION, 
18475        /**
18476         * 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.
18477         */
18478        CONSENT, 
18479        /**
18480         * Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.
18481         */
18482        CONTRACT, 
18483        /**
18484         * Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment.
18485         */
18486        COVERAGE, 
18487        /**
18488         * 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.
18489         */
18490        COVERAGEELIGIBILITYREQUEST, 
18491        /**
18492         * This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.
18493         */
18494        COVERAGEELIGIBILITYRESPONSE, 
18495        /**
18496         * 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, gaps in care, etc.
18497         */
18498        DETECTEDISSUE, 
18499        /**
18500         * 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.
18501         */
18502        DEVICE, 
18503        /**
18504         * A record of association of a device.
18505         */
18506        DEVICEASSOCIATION, 
18507        /**
18508         * This is a specialized resource that defines the characteristics and capabilities of a device.
18509         */
18510        DEVICEDEFINITION, 
18511        /**
18512         * 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.
18513         */
18514        DEVICEDISPENSE, 
18515        /**
18516         * Describes a measurement, calculation or setting capability of a device.  The DeviceMetric resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable. 
18517         */
18518        DEVICEMETRIC, 
18519        /**
18520         * 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.
18521         */
18522        DEVICEREQUEST, 
18523        /**
18524         * 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.
18525         */
18526        DEVICEUSAGE, 
18527        /**
18528         * 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.
18529         */
18530        DIAGNOSTICREPORT, 
18531        /**
18532         * 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.
18533         */
18534        DOCUMENTREFERENCE, 
18535        /**
18536         * A resource that includes narrative, extensions, and contained resources.
18537         */
18538        DOMAINRESOURCE, 
18539        /**
18540         * 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).
18541         */
18542        ENCOUNTER, 
18543        /**
18544         * A record of significant events/milestones key data throughout the history of an Encounter
18545         */
18546        ENCOUNTERHISTORY, 
18547        /**
18548         * 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.
18549         */
18550        ENDPOINT, 
18551        /**
18552         * This resource provides the insurance enrollment details to the insurer regarding a specified coverage.
18553         */
18554        ENROLLMENTREQUEST, 
18555        /**
18556         * This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.
18557         */
18558        ENROLLMENTRESPONSE, 
18559        /**
18560         * 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.
18561         */
18562        EPISODEOFCARE, 
18563        /**
18564         * The EventDefinition resource provides a reusable description of when a particular event can occur.
18565         */
18566        EVENTDEFINITION, 
18567        /**
18568         * 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.
18569         */
18570        EVIDENCE, 
18571        /**
18572         * 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.
18573         */
18574        EVIDENCEREPORT, 
18575        /**
18576         * The EvidenceVariable resource describes an element that knowledge (Evidence) is about.
18577         */
18578        EVIDENCEVARIABLE, 
18579        /**
18580         * A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
18581         */
18582        EXAMPLESCENARIO, 
18583        /**
18584         * 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.
18585         */
18586        EXPLANATIONOFBENEFIT, 
18587        /**
18588         * Significant health conditions for a person related to the patient relevant in the context of care for the patient.
18589         */
18590        FAMILYMEMBERHISTORY, 
18591        /**
18592         * Prospective warnings of potential issues when providing care to the patient.
18593         */
18594        FLAG, 
18595        /**
18596         * 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.
18597         */
18598        FORMULARYITEM, 
18599        /**
18600         * A set of analyses performed to analyze and generate genomic data.
18601         */
18602        GENOMICSTUDY, 
18603        /**
18604         * 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.
18605         */
18606        GOAL, 
18607        /**
18608         * 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.
18609         */
18610        GRAPHDEFINITION, 
18611        /**
18612         * 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.
18613         */
18614        GROUP, 
18615        /**
18616         * 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.
18617         */
18618        GUIDANCERESPONSE, 
18619        /**
18620         * 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.
18621         */
18622        HEALTHCARESERVICE, 
18623        /**
18624         * 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.
18625         */
18626        IMAGINGSELECTION, 
18627        /**
18628         * 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.
18629         */
18630        IMAGINGSTUDY, 
18631        /**
18632         * 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.
18633         */
18634        IMMUNIZATION, 
18635        /**
18636         * Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those  recommendations.
18637         */
18638        IMMUNIZATIONEVALUATION, 
18639        /**
18640         * A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.
18641         */
18642        IMMUNIZATIONRECOMMENDATION, 
18643        /**
18644         * 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.
18645         */
18646        IMPLEMENTATIONGUIDE, 
18647        /**
18648         * An ingredient of a manufactured item or pharmaceutical product.
18649         */
18650        INGREDIENT, 
18651        /**
18652         * Details of a Health Insurance product/plan provided by an organization.
18653         */
18654        INSURANCEPLAN, 
18655        /**
18656         * functional description of an inventory item used in inventory and supply-related workflows.
18657         */
18658        INVENTORYITEM, 
18659        /**
18660         * A report of inventory or stock items.
18661         */
18662        INVENTORYREPORT, 
18663        /**
18664         * Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.
18665         */
18666        INVOICE, 
18667        /**
18668         * 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.
18669         */
18670        LIBRARY, 
18671        /**
18672         * Identifies two or more records (resource instances) that refer to the same real-world "occurrence".
18673         */
18674        LINKAGE, 
18675        /**
18676         * A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.
18677         */
18678        LIST, 
18679        /**
18680         * Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.
18681         */
18682        LOCATION, 
18683        /**
18684         * The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.
18685         */
18686        MANUFACTUREDITEMDEFINITION, 
18687        /**
18688         * The Measure resource provides the definition of a quality measure.
18689         */
18690        MEASURE, 
18691        /**
18692         * The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.
18693         */
18694        MEASUREREPORT, 
18695        /**
18696         * 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.
18697         */
18698        MEDICATION, 
18699        /**
18700         * 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. This event can also be used to record waste using a status of not-done and the appropriate statusReason.
18701         */
18702        MEDICATIONADMINISTRATION, 
18703        /**
18704         * 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.
18705         */
18706        MEDICATIONDISPENSE, 
18707        /**
18708         * Information about a medication that is used to support knowledge.
18709         */
18710        MEDICATIONKNOWLEDGE, 
18711        /**
18712         * 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.
18713         */
18714        MEDICATIONREQUEST, 
18715        /**
18716         * A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. 
18717
18718The primary difference between a medicationstatement 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 medicationstatement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the Medication Statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.
18719         */
18720        MEDICATIONSTATEMENT, 
18721        /**
18722         * 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.).
18723         */
18724        MEDICINALPRODUCTDEFINITION, 
18725        /**
18726         * 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.
18727         */
18728        MESSAGEDEFINITION, 
18729        /**
18730         * 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.
18731         */
18732        MESSAGEHEADER, 
18733        /**
18734         * Common Interface declaration for conformance and knowledge artifact resources.
18735         */
18736        METADATARESOURCE, 
18737        /**
18738         * Representation of a molecular sequence.
18739         */
18740        MOLECULARSEQUENCE, 
18741        /**
18742         * 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.
18743         */
18744        NAMINGSYSTEM, 
18745        /**
18746         * 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.
18747         */
18748        NUTRITIONINTAKE, 
18749        /**
18750         * A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.
18751         */
18752        NUTRITIONORDER, 
18753        /**
18754         * A food or supplement that is consumed by patients.
18755         */
18756        NUTRITIONPRODUCT, 
18757        /**
18758         * Measurements and simple assertions made about a patient, device or other subject.
18759         */
18760        OBSERVATION, 
18761        /**
18762         * Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.
18763         */
18764        OBSERVATIONDEFINITION, 
18765        /**
18766         * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
18767         */
18768        OPERATIONDEFINITION, 
18769        /**
18770         * A collection of error, warning, or information messages that result from a system action.
18771         */
18772        OPERATIONOUTCOME, 
18773        /**
18774         * 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.
18775         */
18776        ORGANIZATION, 
18777        /**
18778         * Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.
18779         */
18780        ORGANIZATIONAFFILIATION, 
18781        /**
18782         * A medically related item or items, in a container or package.
18783         */
18784        PACKAGEDPRODUCTDEFINITION, 
18785        /**
18786         * 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.
18787         */
18788        PARAMETERS, 
18789        /**
18790         * Demographics and other administrative information about an individual or animal receiving care or other health-related services.
18791         */
18792        PATIENT, 
18793        /**
18794         * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
18795         */
18796        PAYMENTNOTICE, 
18797        /**
18798         * This resource provides the details including amount of a payment and allocates the payment items being paid.
18799         */
18800        PAYMENTRECONCILIATION, 
18801        /**
18802         * Permission resource holds access rules for a given data and context.
18803         */
18804        PERMISSION, 
18805        /**
18806         * Demographics and administrative information about a person independent of a specific health-related context.
18807         */
18808        PERSON, 
18809        /**
18810         * 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.
18811         */
18812        PLANDEFINITION, 
18813        /**
18814         * A person who is directly or indirectly involved in the provisioning of healthcare or related services.
18815         */
18816        PRACTITIONER, 
18817        /**
18818         * A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.
18819         */
18820        PRACTITIONERROLE, 
18821        /**
18822         * 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.
18823         */
18824        PROCEDURE, 
18825        /**
18826         * 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.
18827         */
18828        PROVENANCE, 
18829        /**
18830         * 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.
18831         */
18832        QUESTIONNAIRE, 
18833        /**
18834         * 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.
18835         */
18836        QUESTIONNAIRERESPONSE, 
18837        /**
18838         * 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.
18839         */
18840        REGULATEDAUTHORIZATION, 
18841        /**
18842         * 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.
18843         */
18844        RELATEDPERSON, 
18845        /**
18846         * 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".
18847         */
18848        REQUESTORCHESTRATION, 
18849        /**
18850         * 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.
18851         */
18852        REQUIREMENTS, 
18853        /**
18854         * 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.
18855         */
18856        RESEARCHSTUDY, 
18857        /**
18858         * A ResearchSubject is a participant or object which is the recipient of investigative activities in a research study.
18859         */
18860        RESEARCHSUBJECT, 
18861        /**
18862         * This is the base resource type for everything.
18863         */
18864        RESOURCE, 
18865        /**
18866         * An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.
18867         */
18868        RISKASSESSMENT, 
18869        /**
18870         * A container for slots of time that may be available for booking appointments.
18871         */
18872        SCHEDULE, 
18873        /**
18874         * A search parameter that defines a named search item that can be used to search/filter on a resource.
18875         */
18876        SEARCHPARAMETER, 
18877        /**
18878         * A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.
18879         */
18880        SERVICEREQUEST, 
18881        /**
18882         * A slot of time on a schedule that may be available for booking appointments.
18883         */
18884        SLOT, 
18885        /**
18886         * A sample to be used for analysis.
18887         */
18888        SPECIMEN, 
18889        /**
18890         * A kind of specimen with associated set of requirements.
18891         */
18892        SPECIMENDEFINITION, 
18893        /**
18894         * 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.
18895         */
18896        STRUCTUREDEFINITION, 
18897        /**
18898         * A Map of relationships between 2 structures that can be used to transform data.
18899         */
18900        STRUCTUREMAP, 
18901        /**
18902         * The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.
18903         */
18904        SUBSCRIPTION, 
18905        /**
18906         * The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.
18907         */
18908        SUBSCRIPTIONSTATUS, 
18909        /**
18910         * Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.
18911         */
18912        SUBSCRIPTIONTOPIC, 
18913        /**
18914         * A homogeneous material with a definite composition.
18915         */
18916        SUBSTANCE, 
18917        /**
18918         * The detailed description of a substance, typically at a level beyond what is used for prescribing.
18919         */
18920        SUBSTANCEDEFINITION, 
18921        /**
18922         * 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.
18923         */
18924        SUBSTANCENUCLEICACID, 
18925        /**
18926         * Properties of a substance specific to it being a polymer.
18927         */
18928        SUBSTANCEPOLYMER, 
18929        /**
18930         * 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.
18931         */
18932        SUBSTANCEPROTEIN, 
18933        /**
18934         * Todo.
18935         */
18936        SUBSTANCEREFERENCEINFORMATION, 
18937        /**
18938         * 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.
18939         */
18940        SUBSTANCESOURCEMATERIAL, 
18941        /**
18942         * Record of delivery of what is supplied.
18943         */
18944        SUPPLYDELIVERY, 
18945        /**
18946         * 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.
18947         */
18948        SUPPLYREQUEST, 
18949        /**
18950         * A task to be performed.
18951         */
18952        TASK, 
18953        /**
18954         * 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.
18955         */
18956        TERMINOLOGYCAPABILITIES, 
18957        /**
18958         * A plan for executing testing on an artifact or specifications
18959         */
18960        TESTPLAN, 
18961        /**
18962         * A summary of information based on the results of executing a TestScript.
18963         */
18964        TESTREPORT, 
18965        /**
18966         * A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
18967         */
18968        TESTSCRIPT, 
18969        /**
18970         * Record of transport.
18971         */
18972        TRANSPORT, 
18973        /**
18974         * 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).
18975         */
18976        VALUESET, 
18977        /**
18978         * Describes validation requirements, source(s), status and dates for one or more elements.
18979         */
18980        VERIFICATIONRESULT, 
18981        /**
18982         * An authorization for the provision of glasses and/or contact lenses to a patient.
18983         */
18984        VISIONPRESCRIPTION, 
18985        /**
18986         * null
18987         */
18988        BODYSITE, 
18989        /**
18990         * null
18991         */
18992        CATALOGENTRY, 
18993        /**
18994         * null
18995         */
18996        CONFORMANCE, 
18997        /**
18998         * null
18999         */
19000        DATAELEMENT, 
19001        /**
19002         * null
19003         */
19004        DEVICECOMPONENT, 
19005        /**
19006         * null
19007         */
19008        DEVICEUSEREQUEST, 
19009        /**
19010         * null
19011         */
19012        DEVICEUSESTATEMENT, 
19013        /**
19014         * null
19015         */
19016        DIAGNOSTICORDER, 
19017        /**
19018         * null
19019         */
19020        DOCUMENTMANIFEST, 
19021        /**
19022         * null
19023         */
19024        EFFECTEVIDENCESYNTHESIS, 
19025        /**
19026         * null
19027         */
19028        ELIGIBILITYREQUEST, 
19029        /**
19030         * null
19031         */
19032        ELIGIBILITYRESPONSE, 
19033        /**
19034         * null
19035         */
19036        EXPANSIONPROFILE, 
19037        /**
19038         * null
19039         */
19040        IMAGINGMANIFEST, 
19041        /**
19042         * null
19043         */
19044        IMAGINGOBJECTSELECTION, 
19045        /**
19046         * null
19047         */
19048        MEDIA, 
19049        /**
19050         * null
19051         */
19052        MEDICATIONORDER, 
19053        /**
19054         * null
19055         */
19056        MEDICATIONUSAGE, 
19057        /**
19058         * null
19059         */
19060        MEDICINALPRODUCT, 
19061        /**
19062         * null
19063         */
19064        MEDICINALPRODUCTAUTHORIZATION, 
19065        /**
19066         * null
19067         */
19068        MEDICINALPRODUCTCONTRAINDICATION, 
19069        /**
19070         * null
19071         */
19072        MEDICINALPRODUCTINDICATION, 
19073        /**
19074         * null
19075         */
19076        MEDICINALPRODUCTINGREDIENT, 
19077        /**
19078         * null
19079         */
19080        MEDICINALPRODUCTINTERACTION, 
19081        /**
19082         * null
19083         */
19084        MEDICINALPRODUCTMANUFACTURED, 
19085        /**
19086         * null
19087         */
19088        MEDICINALPRODUCTPACKAGED, 
19089        /**
19090         * null
19091         */
19092        MEDICINALPRODUCTPHARMACEUTICAL, 
19093        /**
19094         * null
19095         */
19096        MEDICINALPRODUCTUNDESIRABLEEFFECT, 
19097        /**
19098         * null
19099         */
19100        ORDER, 
19101        /**
19102         * null
19103         */
19104        ORDERRESPONSE, 
19105        /**
19106         * null
19107         */
19108        PROCEDUREREQUEST, 
19109        /**
19110         * null
19111         */
19112        PROCESSREQUEST, 
19113        /**
19114         * null
19115         */
19116        PROCESSRESPONSE, 
19117        /**
19118         * null
19119         */
19120        REFERRALREQUEST, 
19121        /**
19122         * null
19123         */
19124        REQUESTGROUP, 
19125        /**
19126         * null
19127         */
19128        RESEARCHDEFINITION, 
19129        /**
19130         * null
19131         */
19132        RESEARCHELEMENTDEFINITION, 
19133        /**
19134         * null
19135         */
19136        RISKEVIDENCESYNTHESIS, 
19137        /**
19138         * null
19139         */
19140        SEQUENCE, 
19141        /**
19142         * null
19143         */
19144        SERVICEDEFINITION, 
19145        /**
19146         * null
19147         */
19148        SUBSTANCESPECIFICATION,
19149        /**
19150         * Added in R6
19151         */
19152        MOLECULARDEFINITION,
19153        /**
19154         * Added in R6
19155         */
19156        CLINICALASSESSMENT,
19157        /**
19158           * added to help the parsers
19159         */
19160        NULL;
19161        public static VersionIndependentResourceTypesAll fromCode(String codeString) throws FHIRException {
19162            if (codeString == null || "".equals(codeString))
19163                return null;
19164        if ("Account".equals(codeString))
19165          return ACCOUNT;
19166        if ("ActivityDefinition".equals(codeString))
19167          return ACTIVITYDEFINITION;
19168        if ("ActorDefinition".equals(codeString))
19169          return ACTORDEFINITION;
19170        if ("AdministrableProductDefinition".equals(codeString))
19171          return ADMINISTRABLEPRODUCTDEFINITION;
19172        if ("AdverseEvent".equals(codeString))
19173          return ADVERSEEVENT;
19174        if ("AllergyIntolerance".equals(codeString))
19175          return ALLERGYINTOLERANCE;
19176        if ("Appointment".equals(codeString))
19177          return APPOINTMENT;
19178        if ("AppointmentResponse".equals(codeString))
19179          return APPOINTMENTRESPONSE;
19180        if ("ArtifactAssessment".equals(codeString))
19181          return ARTIFACTASSESSMENT;
19182        if ("AuditEvent".equals(codeString))
19183          return AUDITEVENT;
19184        if ("Basic".equals(codeString))
19185          return BASIC;
19186        if ("Binary".equals(codeString))
19187          return BINARY;
19188        if ("BiologicallyDerivedProduct".equals(codeString))
19189          return BIOLOGICALLYDERIVEDPRODUCT;
19190        if ("BiologicallyDerivedProductDispense".equals(codeString))
19191          return BIOLOGICALLYDERIVEDPRODUCTDISPENSE;
19192        if ("BodyStructure".equals(codeString))
19193          return BODYSTRUCTURE;
19194        if ("Bundle".equals(codeString))
19195          return BUNDLE;
19196        if ("CanonicalResource".equals(codeString))
19197          return CANONICALRESOURCE;
19198        if ("CapabilityStatement".equals(codeString))
19199          return CAPABILITYSTATEMENT;
19200        if ("CarePlan".equals(codeString))
19201          return CAREPLAN;
19202        if ("CareTeam".equals(codeString))
19203          return CARETEAM;
19204        if ("ChargeItem".equals(codeString))
19205          return CHARGEITEM;
19206        if ("ChargeItemDefinition".equals(codeString))
19207          return CHARGEITEMDEFINITION;
19208        if ("Citation".equals(codeString))
19209          return CITATION;
19210        if ("Claim".equals(codeString))
19211          return CLAIM;
19212        if ("ClaimResponse".equals(codeString))
19213          return CLAIMRESPONSE;
19214        if ("ClinicalImpression".equals(codeString))
19215          return CLINICALIMPRESSION;
19216        if ("ClinicalUseDefinition".equals(codeString))
19217          return CLINICALUSEDEFINITION;
19218        if ("CodeSystem".equals(codeString))
19219          return CODESYSTEM;
19220        if ("Communication".equals(codeString))
19221          return COMMUNICATION;
19222        if ("CommunicationRequest".equals(codeString))
19223          return COMMUNICATIONREQUEST;
19224        if ("CompartmentDefinition".equals(codeString))
19225          return COMPARTMENTDEFINITION;
19226        if ("Composition".equals(codeString))
19227          return COMPOSITION;
19228        if ("ConceptMap".equals(codeString))
19229          return CONCEPTMAP;
19230        if ("Condition".equals(codeString))
19231          return CONDITION;
19232        if ("ConditionDefinition".equals(codeString))
19233          return CONDITIONDEFINITION;
19234        if ("Consent".equals(codeString))
19235          return CONSENT;
19236        if ("Contract".equals(codeString))
19237          return CONTRACT;
19238        if ("Coverage".equals(codeString))
19239          return COVERAGE;
19240        if ("CoverageEligibilityRequest".equals(codeString))
19241          return COVERAGEELIGIBILITYREQUEST;
19242        if ("CoverageEligibilityResponse".equals(codeString))
19243          return COVERAGEELIGIBILITYRESPONSE;
19244        if ("DetectedIssue".equals(codeString))
19245          return DETECTEDISSUE;
19246        if ("Device".equals(codeString))
19247          return DEVICE;
19248        if ("DeviceAssociation".equals(codeString))
19249          return DEVICEASSOCIATION;
19250        if ("DeviceDefinition".equals(codeString))
19251          return DEVICEDEFINITION;
19252        if ("DeviceDispense".equals(codeString))
19253          return DEVICEDISPENSE;
19254        if ("DeviceMetric".equals(codeString))
19255          return DEVICEMETRIC;
19256        if ("DeviceRequest".equals(codeString))
19257          return DEVICEREQUEST;
19258        if ("DeviceUsage".equals(codeString))
19259          return DEVICEUSAGE;
19260        if ("DiagnosticReport".equals(codeString))
19261          return DIAGNOSTICREPORT;
19262        if ("DocumentReference".equals(codeString))
19263          return DOCUMENTREFERENCE;
19264        if ("DomainResource".equals(codeString))
19265          return DOMAINRESOURCE;
19266        if ("Encounter".equals(codeString))
19267          return ENCOUNTER;
19268        if ("EncounterHistory".equals(codeString))
19269          return ENCOUNTERHISTORY;
19270        if ("Endpoint".equals(codeString))
19271          return ENDPOINT;
19272        if ("EnrollmentRequest".equals(codeString))
19273          return ENROLLMENTREQUEST;
19274        if ("EnrollmentResponse".equals(codeString))
19275          return ENROLLMENTRESPONSE;
19276        if ("EpisodeOfCare".equals(codeString))
19277          return EPISODEOFCARE;
19278        if ("EventDefinition".equals(codeString))
19279          return EVENTDEFINITION;
19280        if ("Evidence".equals(codeString))
19281          return EVIDENCE;
19282        if ("EvidenceReport".equals(codeString))
19283          return EVIDENCEREPORT;
19284        if ("EvidenceVariable".equals(codeString))
19285          return EVIDENCEVARIABLE;
19286        if ("ExampleScenario".equals(codeString))
19287          return EXAMPLESCENARIO;
19288        if ("ExplanationOfBenefit".equals(codeString))
19289          return EXPLANATIONOFBENEFIT;
19290        if ("FamilyMemberHistory".equals(codeString))
19291          return FAMILYMEMBERHISTORY;
19292        if ("Flag".equals(codeString))
19293          return FLAG;
19294        if ("FormularyItem".equals(codeString))
19295          return FORMULARYITEM;
19296        if ("GenomicStudy".equals(codeString))
19297          return GENOMICSTUDY;
19298        if ("Goal".equals(codeString))
19299          return GOAL;
19300        if ("GraphDefinition".equals(codeString))
19301          return GRAPHDEFINITION;
19302        if ("Group".equals(codeString))
19303          return GROUP;
19304        if ("GuidanceResponse".equals(codeString))
19305          return GUIDANCERESPONSE;
19306        if ("HealthcareService".equals(codeString))
19307          return HEALTHCARESERVICE;
19308        if ("ImagingSelection".equals(codeString))
19309          return IMAGINGSELECTION;
19310        if ("ImagingStudy".equals(codeString))
19311          return IMAGINGSTUDY;
19312        if ("Immunization".equals(codeString))
19313          return IMMUNIZATION;
19314        if ("ImmunizationEvaluation".equals(codeString))
19315          return IMMUNIZATIONEVALUATION;
19316        if ("ImmunizationRecommendation".equals(codeString))
19317          return IMMUNIZATIONRECOMMENDATION;
19318        if ("ImplementationGuide".equals(codeString))
19319          return IMPLEMENTATIONGUIDE;
19320        if ("Ingredient".equals(codeString))
19321          return INGREDIENT;
19322        if ("InsurancePlan".equals(codeString))
19323          return INSURANCEPLAN;
19324        if ("InventoryItem".equals(codeString))
19325          return INVENTORYITEM;
19326        if ("InventoryReport".equals(codeString))
19327          return INVENTORYREPORT;
19328        if ("Invoice".equals(codeString))
19329          return INVOICE;
19330        if ("Library".equals(codeString))
19331          return LIBRARY;
19332        if ("Linkage".equals(codeString))
19333          return LINKAGE;
19334        if ("List".equals(codeString))
19335          return LIST;
19336        if ("Location".equals(codeString))
19337          return LOCATION;
19338        if ("ManufacturedItemDefinition".equals(codeString))
19339          return MANUFACTUREDITEMDEFINITION;
19340        if ("Measure".equals(codeString))
19341          return MEASURE;
19342        if ("MeasureReport".equals(codeString))
19343          return MEASUREREPORT;
19344        if ("Medication".equals(codeString))
19345          return MEDICATION;
19346        if ("MedicationAdministration".equals(codeString))
19347          return MEDICATIONADMINISTRATION;
19348        if ("MedicationDispense".equals(codeString))
19349          return MEDICATIONDISPENSE;
19350        if ("MedicationKnowledge".equals(codeString))
19351          return MEDICATIONKNOWLEDGE;
19352        if ("MedicationRequest".equals(codeString))
19353          return MEDICATIONREQUEST;
19354        if ("MedicationStatement".equals(codeString))
19355          return MEDICATIONSTATEMENT;
19356        if ("MedicinalProductDefinition".equals(codeString))
19357          return MEDICINALPRODUCTDEFINITION;
19358        if ("MessageDefinition".equals(codeString))
19359          return MESSAGEDEFINITION;
19360        if ("MessageHeader".equals(codeString))
19361          return MESSAGEHEADER;
19362        if ("MetadataResource".equals(codeString))
19363          return METADATARESOURCE;
19364        if ("MolecularSequence".equals(codeString))
19365          return MOLECULARSEQUENCE;
19366        if ("NamingSystem".equals(codeString))
19367          return NAMINGSYSTEM;
19368        if ("NutritionIntake".equals(codeString))
19369          return NUTRITIONINTAKE;
19370        if ("NutritionOrder".equals(codeString))
19371          return NUTRITIONORDER;
19372        if ("NutritionProduct".equals(codeString))
19373          return NUTRITIONPRODUCT;
19374        if ("Observation".equals(codeString))
19375          return OBSERVATION;
19376        if ("ObservationDefinition".equals(codeString))
19377          return OBSERVATIONDEFINITION;
19378        if ("OperationDefinition".equals(codeString))
19379          return OPERATIONDEFINITION;
19380        if ("OperationOutcome".equals(codeString))
19381          return OPERATIONOUTCOME;
19382        if ("Organization".equals(codeString))
19383          return ORGANIZATION;
19384        if ("OrganizationAffiliation".equals(codeString))
19385          return ORGANIZATIONAFFILIATION;
19386        if ("PackagedProductDefinition".equals(codeString))
19387          return PACKAGEDPRODUCTDEFINITION;
19388        if ("Parameters".equals(codeString))
19389          return PARAMETERS;
19390        if ("Patient".equals(codeString))
19391          return PATIENT;
19392        if ("PaymentNotice".equals(codeString))
19393          return PAYMENTNOTICE;
19394        if ("PaymentReconciliation".equals(codeString))
19395          return PAYMENTRECONCILIATION;
19396        if ("Permission".equals(codeString))
19397          return PERMISSION;
19398        if ("Person".equals(codeString))
19399          return PERSON;
19400        if ("PlanDefinition".equals(codeString))
19401          return PLANDEFINITION;
19402        if ("Practitioner".equals(codeString))
19403          return PRACTITIONER;
19404        if ("PractitionerRole".equals(codeString))
19405          return PRACTITIONERROLE;
19406        if ("Procedure".equals(codeString))
19407          return PROCEDURE;
19408        if ("Provenance".equals(codeString))
19409          return PROVENANCE;
19410        if ("Questionnaire".equals(codeString))
19411          return QUESTIONNAIRE;
19412        if ("QuestionnaireResponse".equals(codeString))
19413          return QUESTIONNAIRERESPONSE;
19414        if ("RegulatedAuthorization".equals(codeString))
19415          return REGULATEDAUTHORIZATION;
19416        if ("RelatedPerson".equals(codeString))
19417          return RELATEDPERSON;
19418        if ("RequestOrchestration".equals(codeString))
19419          return REQUESTORCHESTRATION;
19420        if ("Requirements".equals(codeString))
19421          return REQUIREMENTS;
19422        if ("ResearchStudy".equals(codeString))
19423          return RESEARCHSTUDY;
19424        if ("ResearchSubject".equals(codeString))
19425          return RESEARCHSUBJECT;
19426        if ("Resource".equals(codeString))
19427          return RESOURCE;
19428        if ("RiskAssessment".equals(codeString))
19429          return RISKASSESSMENT;
19430        if ("Schedule".equals(codeString))
19431          return SCHEDULE;
19432        if ("SearchParameter".equals(codeString))
19433          return SEARCHPARAMETER;
19434        if ("ServiceRequest".equals(codeString))
19435          return SERVICEREQUEST;
19436        if ("Slot".equals(codeString))
19437          return SLOT;
19438        if ("Specimen".equals(codeString))
19439          return SPECIMEN;
19440        if ("SpecimenDefinition".equals(codeString))
19441          return SPECIMENDEFINITION;
19442        if ("StructureDefinition".equals(codeString))
19443          return STRUCTUREDEFINITION;
19444        if ("StructureMap".equals(codeString))
19445          return STRUCTUREMAP;
19446        if ("Subscription".equals(codeString))
19447          return SUBSCRIPTION;
19448        if ("SubscriptionStatus".equals(codeString))
19449          return SUBSCRIPTIONSTATUS;
19450        if ("SubscriptionTopic".equals(codeString))
19451          return SUBSCRIPTIONTOPIC;
19452        if ("Substance".equals(codeString))
19453          return SUBSTANCE;
19454        if ("SubstanceDefinition".equals(codeString))
19455          return SUBSTANCEDEFINITION;
19456        if ("SubstanceNucleicAcid".equals(codeString))
19457          return SUBSTANCENUCLEICACID;
19458        if ("SubstancePolymer".equals(codeString))
19459          return SUBSTANCEPOLYMER;
19460        if ("SubstanceProtein".equals(codeString))
19461          return SUBSTANCEPROTEIN;
19462        if ("SubstanceReferenceInformation".equals(codeString))
19463          return SUBSTANCEREFERENCEINFORMATION;
19464        if ("SubstanceSourceMaterial".equals(codeString))
19465          return SUBSTANCESOURCEMATERIAL;
19466        if ("SupplyDelivery".equals(codeString))
19467          return SUPPLYDELIVERY;
19468        if ("SupplyRequest".equals(codeString))
19469          return SUPPLYREQUEST;
19470        if ("Task".equals(codeString))
19471          return TASK;
19472        if ("TerminologyCapabilities".equals(codeString))
19473          return TERMINOLOGYCAPABILITIES;
19474        if ("TestPlan".equals(codeString))
19475          return TESTPLAN;
19476        if ("TestReport".equals(codeString))
19477          return TESTREPORT;
19478        if ("TestScript".equals(codeString))
19479          return TESTSCRIPT;
19480        if ("Transport".equals(codeString))
19481          return TRANSPORT;
19482        if ("ValueSet".equals(codeString))
19483          return VALUESET;
19484        if ("VerificationResult".equals(codeString))
19485          return VERIFICATIONRESULT;
19486        if ("VisionPrescription".equals(codeString))
19487          return VISIONPRESCRIPTION;
19488        if ("BodySite".equals(codeString))
19489          return BODYSITE;
19490        if ("CatalogEntry".equals(codeString))
19491          return CATALOGENTRY;
19492        if ("Conformance".equals(codeString))
19493          return CONFORMANCE;
19494        if ("DataElement".equals(codeString))
19495          return DATAELEMENT;
19496        if ("DeviceComponent".equals(codeString))
19497          return DEVICECOMPONENT;
19498        if ("DeviceUseRequest".equals(codeString))
19499          return DEVICEUSEREQUEST;
19500        if ("DeviceUseStatement".equals(codeString))
19501          return DEVICEUSESTATEMENT;
19502        if ("DiagnosticOrder".equals(codeString))
19503          return DIAGNOSTICORDER;
19504        if ("DocumentManifest".equals(codeString))
19505          return DOCUMENTMANIFEST;
19506        if ("EffectEvidenceSynthesis".equals(codeString))
19507          return EFFECTEVIDENCESYNTHESIS;
19508        if ("EligibilityRequest".equals(codeString))
19509          return ELIGIBILITYREQUEST;
19510        if ("EligibilityResponse".equals(codeString))
19511          return ELIGIBILITYRESPONSE;
19512        if ("ExpansionProfile".equals(codeString))
19513          return EXPANSIONPROFILE;
19514        if ("ImagingManifest".equals(codeString))
19515          return IMAGINGMANIFEST;
19516        if ("ImagingObjectSelection".equals(codeString))
19517          return IMAGINGOBJECTSELECTION;
19518        if ("Media".equals(codeString))
19519          return MEDIA;
19520        if ("MedicationOrder".equals(codeString))
19521          return MEDICATIONORDER;
19522        if ("MedicationUsage".equals(codeString))
19523          return MEDICATIONUSAGE;
19524        if ("MedicinalProduct".equals(codeString))
19525          return MEDICINALPRODUCT;
19526        if ("MedicinalProductAuthorization".equals(codeString))
19527          return MEDICINALPRODUCTAUTHORIZATION;
19528        if ("MedicinalProductContraindication".equals(codeString))
19529          return MEDICINALPRODUCTCONTRAINDICATION;
19530        if ("MedicinalProductIndication".equals(codeString))
19531          return MEDICINALPRODUCTINDICATION;
19532        if ("MedicinalProductIngredient".equals(codeString))
19533          return MEDICINALPRODUCTINGREDIENT;
19534        if ("MedicinalProductInteraction".equals(codeString))
19535          return MEDICINALPRODUCTINTERACTION;
19536        if ("MedicinalProductManufactured".equals(codeString))
19537          return MEDICINALPRODUCTMANUFACTURED;
19538        if ("MedicinalProductPackaged".equals(codeString))
19539          return MEDICINALPRODUCTPACKAGED;
19540        if ("MedicinalProductPharmaceutical".equals(codeString))
19541          return MEDICINALPRODUCTPHARMACEUTICAL;
19542        if ("MedicinalProductUndesirableEffect".equals(codeString))
19543          return MEDICINALPRODUCTUNDESIRABLEEFFECT;
19544        if ("Order".equals(codeString))
19545          return ORDER;
19546        if ("OrderResponse".equals(codeString))
19547          return ORDERRESPONSE;
19548        if ("ProcedureRequest".equals(codeString))
19549          return PROCEDUREREQUEST;
19550        if ("ProcessRequest".equals(codeString))
19551          return PROCESSREQUEST;
19552        if ("ProcessResponse".equals(codeString))
19553          return PROCESSRESPONSE;
19554        if ("ReferralRequest".equals(codeString))
19555          return REFERRALREQUEST;
19556        if ("RequestGroup".equals(codeString))
19557          return REQUESTGROUP;
19558        if ("ResearchDefinition".equals(codeString))
19559          return RESEARCHDEFINITION;
19560        if ("ResearchElementDefinition".equals(codeString))
19561          return RESEARCHELEMENTDEFINITION;
19562        if ("RiskEvidenceSynthesis".equals(codeString))
19563          return RISKEVIDENCESYNTHESIS;
19564        if ("Sequence".equals(codeString))
19565          return SEQUENCE;
19566        if ("ServiceDefinition".equals(codeString))
19567          return SERVICEDEFINITION;
19568          if ("SubstanceSpecification".equals(codeString))
19569            return SUBSTANCESPECIFICATION;
19570          if ("MolecularDefinition".equals(codeString))
19571            return MOLECULARDEFINITION;
19572          if ("ClinicalAssessment".equals(codeString))
19573            return CLINICALASSESSMENT;
19574          
19575        throw new FHIRException("Unknown VersionIndependentResourceTypesAll code '"+codeString+"'");
19576        }
19577        public static boolean isValidCode(String codeString) {
19578            if (codeString == null || "".equals(codeString))
19579                return false;
19580          return Utilities.existsInList(codeString, "Account", "ActivityDefinition", "ActorDefinition", "AdministrableProductDefinition", "AdverseEvent", "AllergyIntolerance", "Appointment", "AppointmentResponse", "ArtifactAssessment", "AuditEvent", "Basic", "Binary", "BiologicallyDerivedProduct", "BiologicallyDerivedProductDispense", "BodyStructure", "Bundle", "CanonicalResource", "CapabilityStatement", "CarePlan", "CareTeam", "ChargeItem", "ChargeItemDefinition", "Citation", "Claim", "ClaimResponse", "ClinicalImpression", "ClinicalUseDefinition", "CodeSystem", "Communication", "CommunicationRequest", "CompartmentDefinition", "Composition", "ConceptMap", "Condition", "ConditionDefinition", "Consent", "Contract", "Coverage", "CoverageEligibilityRequest", "CoverageEligibilityResponse", "DetectedIssue", "Device", "DeviceAssociation", "DeviceDefinition", "DeviceDispense", "DeviceMetric", "DeviceRequest", "DeviceUsage", "DiagnosticReport", "DocumentReference", "DomainResource", "Encounter", "EncounterHistory", "Endpoint", "EnrollmentRequest", "EnrollmentResponse", "EpisodeOfCare", "EventDefinition", "Evidence", "EvidenceReport", "EvidenceVariable", "ExampleScenario", "ExplanationOfBenefit", "FamilyMemberHistory", "Flag", "FormularyItem", "GenomicStudy", "Goal", "GraphDefinition", "Group", "GuidanceResponse", "HealthcareService", "ImagingSelection", "ImagingStudy", "Immunization", "ImmunizationEvaluation", "ImmunizationRecommendation", "ImplementationGuide", "Ingredient", "InsurancePlan", "InventoryItem", "InventoryReport", "Invoice", "Library", "Linkage", "List", "Location", "ManufacturedItemDefinition", "Measure", "MeasureReport", "Medication", "MedicationAdministration", "MedicationDispense", "MedicationKnowledge", "MedicationRequest", "MedicationStatement", "MedicinalProductDefinition", "MessageDefinition", "MessageHeader", "MetadataResource", "MolecularSequence", "NamingSystem", "NutritionIntake", "NutritionOrder", "NutritionProduct", "Observation", "ObservationDefinition", "OperationDefinition", "OperationOutcome", "Organization", "OrganizationAffiliation", "PackagedProductDefinition", "Parameters", "Patient", "PaymentNotice", "PaymentReconciliation", "Permission", "Person", "PlanDefinition", "Practitioner", "PractitionerRole", "Procedure", "Provenance", "Questionnaire", "QuestionnaireResponse", "RegulatedAuthorization", "RelatedPerson", "RequestOrchestration", "Requirements", "ResearchStudy", "ResearchSubject", "Resource", "RiskAssessment", "Schedule", "SearchParameter", "ServiceRequest", "Slot", "Specimen", "SpecimenDefinition", "StructureDefinition", "StructureMap", "Subscription", "SubscriptionStatus", "SubscriptionTopic", "Substance", "SubstanceDefinition", "SubstanceNucleicAcid", "SubstancePolymer", "SubstanceProtein", "SubstanceReferenceInformation", "SubstanceSourceMaterial", "SupplyDelivery", "SupplyRequest", "Task", "TerminologyCapabilities", "TestPlan", "TestReport", "TestScript", "Transport", "ValueSet", "VerificationResult", "VisionPrescription", "BodySite", "CatalogEntry", "Conformance", "DataElement", "DeviceComponent", "DeviceUseRequest", "DeviceUseStatement", "DiagnosticOrder", "DocumentManifest", "EffectEvidenceSynthesis", "EligibilityRequest", "EligibilityResponse", "ExpansionProfile", "ImagingManifest", "ImagingObjectSelection", "Media", "MedicationOrder", "MedicationUsage", "MedicinalProduct", "MedicinalProductAuthorization", "MedicinalProductContraindication", "MedicinalProductIndication", "MedicinalProductIngredient", "MedicinalProductInteraction", "MedicinalProductManufactured", "MedicinalProductPackaged", "MedicinalProductPharmaceutical", "MedicinalProductUndesirableEffect", "Order", "OrderResponse", "ProcedureRequest", "ProcessRequest", "ProcessResponse", "ReferralRequest", "RequestGroup", "ResearchDefinition", "ResearchElementDefinition", "RiskEvidenceSynthesis", "Sequence", "ServiceDefinition", "SubstanceSpecification");
19581        }
19582        public String toCode() {
19583          switch (this) {
19584            case ACCOUNT: return "Account";
19585            case ACTIVITYDEFINITION: return "ActivityDefinition";
19586            case ACTORDEFINITION: return "ActorDefinition";
19587            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
19588            case ADVERSEEVENT: return "AdverseEvent";
19589            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
19590            case APPOINTMENT: return "Appointment";
19591            case APPOINTMENTRESPONSE: return "AppointmentResponse";
19592            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
19593            case AUDITEVENT: return "AuditEvent";
19594            case BASIC: return "Basic";
19595            case BINARY: return "Binary";
19596            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
19597            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "BiologicallyDerivedProductDispense";
19598            case BODYSTRUCTURE: return "BodyStructure";
19599            case BUNDLE: return "Bundle";
19600            case CANONICALRESOURCE: return "CanonicalResource";
19601            case CAPABILITYSTATEMENT: return "CapabilityStatement";
19602            case CAREPLAN: return "CarePlan";
19603            case CARETEAM: return "CareTeam";
19604            case CHARGEITEM: return "ChargeItem";
19605            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
19606            case CITATION: return "Citation";
19607            case CLAIM: return "Claim";
19608            case CLAIMRESPONSE: return "ClaimResponse";
19609            case CLINICALIMPRESSION: return "ClinicalImpression";
19610            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
19611            case CODESYSTEM: return "CodeSystem";
19612            case COMMUNICATION: return "Communication";
19613            case COMMUNICATIONREQUEST: return "CommunicationRequest";
19614            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
19615            case COMPOSITION: return "Composition";
19616            case CONCEPTMAP: return "ConceptMap";
19617            case CONDITION: return "Condition";
19618            case CONDITIONDEFINITION: return "ConditionDefinition";
19619            case CONSENT: return "Consent";
19620            case CONTRACT: return "Contract";
19621            case COVERAGE: return "Coverage";
19622            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
19623            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
19624            case DETECTEDISSUE: return "DetectedIssue";
19625            case DEVICE: return "Device";
19626            case DEVICEASSOCIATION: return "DeviceAssociation";
19627            case DEVICEDEFINITION: return "DeviceDefinition";
19628            case DEVICEDISPENSE: return "DeviceDispense";
19629            case DEVICEMETRIC: return "DeviceMetric";
19630            case DEVICEREQUEST: return "DeviceRequest";
19631            case DEVICEUSAGE: return "DeviceUsage";
19632            case DIAGNOSTICREPORT: return "DiagnosticReport";
19633            case DOCUMENTREFERENCE: return "DocumentReference";
19634            case DOMAINRESOURCE: return "DomainResource";
19635            case ENCOUNTER: return "Encounter";
19636            case ENCOUNTERHISTORY: return "EncounterHistory";
19637            case ENDPOINT: return "Endpoint";
19638            case ENROLLMENTREQUEST: return "EnrollmentRequest";
19639            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
19640            case EPISODEOFCARE: return "EpisodeOfCare";
19641            case EVENTDEFINITION: return "EventDefinition";
19642            case EVIDENCE: return "Evidence";
19643            case EVIDENCEREPORT: return "EvidenceReport";
19644            case EVIDENCEVARIABLE: return "EvidenceVariable";
19645            case EXAMPLESCENARIO: return "ExampleScenario";
19646            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
19647            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
19648            case FLAG: return "Flag";
19649            case FORMULARYITEM: return "FormularyItem";
19650            case GENOMICSTUDY: return "GenomicStudy";
19651            case GOAL: return "Goal";
19652            case GRAPHDEFINITION: return "GraphDefinition";
19653            case GROUP: return "Group";
19654            case GUIDANCERESPONSE: return "GuidanceResponse";
19655            case HEALTHCARESERVICE: return "HealthcareService";
19656            case IMAGINGSELECTION: return "ImagingSelection";
19657            case IMAGINGSTUDY: return "ImagingStudy";
19658            case IMMUNIZATION: return "Immunization";
19659            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
19660            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
19661            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
19662            case INGREDIENT: return "Ingredient";
19663            case INSURANCEPLAN: return "InsurancePlan";
19664            case INVENTORYITEM: return "InventoryItem";
19665            case INVENTORYREPORT: return "InventoryReport";
19666            case INVOICE: return "Invoice";
19667            case LIBRARY: return "Library";
19668            case LINKAGE: return "Linkage";
19669            case LIST: return "List";
19670            case LOCATION: return "Location";
19671            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
19672            case MEASURE: return "Measure";
19673            case MEASUREREPORT: return "MeasureReport";
19674            case MEDICATION: return "Medication";
19675            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
19676            case MEDICATIONDISPENSE: return "MedicationDispense";
19677            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
19678            case MEDICATIONREQUEST: return "MedicationRequest";
19679            case MEDICATIONSTATEMENT: return "MedicationStatement";
19680            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
19681            case MESSAGEDEFINITION: return "MessageDefinition";
19682            case MESSAGEHEADER: return "MessageHeader";
19683            case METADATARESOURCE: return "MetadataResource";
19684            case MOLECULARSEQUENCE: return "MolecularSequence";
19685            case NAMINGSYSTEM: return "NamingSystem";
19686            case NUTRITIONINTAKE: return "NutritionIntake";
19687            case NUTRITIONORDER: return "NutritionOrder";
19688            case NUTRITIONPRODUCT: return "NutritionProduct";
19689            case OBSERVATION: return "Observation";
19690            case OBSERVATIONDEFINITION: return "ObservationDefinition";
19691            case OPERATIONDEFINITION: return "OperationDefinition";
19692            case OPERATIONOUTCOME: return "OperationOutcome";
19693            case ORGANIZATION: return "Organization";
19694            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
19695            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
19696            case PARAMETERS: return "Parameters";
19697            case PATIENT: return "Patient";
19698            case PAYMENTNOTICE: return "PaymentNotice";
19699            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
19700            case PERMISSION: return "Permission";
19701            case PERSON: return "Person";
19702            case PLANDEFINITION: return "PlanDefinition";
19703            case PRACTITIONER: return "Practitioner";
19704            case PRACTITIONERROLE: return "PractitionerRole";
19705            case PROCEDURE: return "Procedure";
19706            case PROVENANCE: return "Provenance";
19707            case QUESTIONNAIRE: return "Questionnaire";
19708            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
19709            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
19710            case RELATEDPERSON: return "RelatedPerson";
19711            case REQUESTORCHESTRATION: return "RequestOrchestration";
19712            case REQUIREMENTS: return "Requirements";
19713            case RESEARCHSTUDY: return "ResearchStudy";
19714            case RESEARCHSUBJECT: return "ResearchSubject";
19715            case RESOURCE: return "Resource";
19716            case RISKASSESSMENT: return "RiskAssessment";
19717            case SCHEDULE: return "Schedule";
19718            case SEARCHPARAMETER: return "SearchParameter";
19719            case SERVICEREQUEST: return "ServiceRequest";
19720            case SLOT: return "Slot";
19721            case SPECIMEN: return "Specimen";
19722            case SPECIMENDEFINITION: return "SpecimenDefinition";
19723            case STRUCTUREDEFINITION: return "StructureDefinition";
19724            case STRUCTUREMAP: return "StructureMap";
19725            case SUBSCRIPTION: return "Subscription";
19726            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
19727            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
19728            case SUBSTANCE: return "Substance";
19729            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
19730            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
19731            case SUBSTANCEPOLYMER: return "SubstancePolymer";
19732            case SUBSTANCEPROTEIN: return "SubstanceProtein";
19733            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
19734            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
19735            case SUPPLYDELIVERY: return "SupplyDelivery";
19736            case SUPPLYREQUEST: return "SupplyRequest";
19737            case TASK: return "Task";
19738            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
19739            case TESTPLAN: return "TestPlan";
19740            case TESTREPORT: return "TestReport";
19741            case TESTSCRIPT: return "TestScript";
19742            case TRANSPORT: return "Transport";
19743            case VALUESET: return "ValueSet";
19744            case VERIFICATIONRESULT: return "VerificationResult";
19745            case VISIONPRESCRIPTION: return "VisionPrescription";
19746            case BODYSITE: return "BodySite";
19747            case CATALOGENTRY: return "CatalogEntry";
19748            case CONFORMANCE: return "Conformance";
19749            case DATAELEMENT: return "DataElement";
19750            case DEVICECOMPONENT: return "DeviceComponent";
19751            case DEVICEUSEREQUEST: return "DeviceUseRequest";
19752            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
19753            case DIAGNOSTICORDER: return "DiagnosticOrder";
19754            case DOCUMENTMANIFEST: return "DocumentManifest";
19755            case EFFECTEVIDENCESYNTHESIS: return "EffectEvidenceSynthesis";
19756            case ELIGIBILITYREQUEST: return "EligibilityRequest";
19757            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
19758            case EXPANSIONPROFILE: return "ExpansionProfile";
19759            case IMAGINGMANIFEST: return "ImagingManifest";
19760            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
19761            case MEDIA: return "Media";
19762            case MEDICATIONORDER: return "MedicationOrder";
19763            case MEDICATIONUSAGE: return "MedicationUsage";
19764            case MEDICINALPRODUCT: return "MedicinalProduct";
19765            case MEDICINALPRODUCTAUTHORIZATION: return "MedicinalProductAuthorization";
19766            case MEDICINALPRODUCTCONTRAINDICATION: return "MedicinalProductContraindication";
19767            case MEDICINALPRODUCTINDICATION: return "MedicinalProductIndication";
19768            case MEDICINALPRODUCTINGREDIENT: return "MedicinalProductIngredient";
19769            case MEDICINALPRODUCTINTERACTION: return "MedicinalProductInteraction";
19770            case MEDICINALPRODUCTMANUFACTURED: return "MedicinalProductManufactured";
19771            case MEDICINALPRODUCTPACKAGED: return "MedicinalProductPackaged";
19772            case MEDICINALPRODUCTPHARMACEUTICAL: return "MedicinalProductPharmaceutical";
19773            case MEDICINALPRODUCTUNDESIRABLEEFFECT: return "MedicinalProductUndesirableEffect";
19774            case ORDER: return "Order";
19775            case ORDERRESPONSE: return "OrderResponse";
19776            case PROCEDUREREQUEST: return "ProcedureRequest";
19777            case PROCESSREQUEST: return "ProcessRequest";
19778            case PROCESSRESPONSE: return "ProcessResponse";
19779            case REFERRALREQUEST: return "ReferralRequest";
19780            case REQUESTGROUP: return "RequestGroup";
19781            case RESEARCHDEFINITION: return "ResearchDefinition";
19782            case RESEARCHELEMENTDEFINITION: return "ResearchElementDefinition";
19783            case RISKEVIDENCESYNTHESIS: return "RiskEvidenceSynthesis";
19784            case SEQUENCE: return "Sequence";
19785            case SERVICEDEFINITION: return "ServiceDefinition";
19786            case SUBSTANCESPECIFICATION: return "SubstanceSpecification";
19787            case MOLECULARDEFINITION: return "MolecularDefinition";
19788            case CLINICALASSESSMENT: return "ClinicalAssessment";
19789            case NULL: return null;
19790            default: return "?";
19791          }
19792        }
19793        public String getSystem() {
19794          switch (this) {
19795            case ACCOUNT: return "http://hl7.org/fhir/fhir-types";
19796            case ACTIVITYDEFINITION: return "http://hl7.org/fhir/fhir-types";
19797            case ACTORDEFINITION: return "http://hl7.org/fhir/fhir-types";
19798            case ADMINISTRABLEPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
19799            case ADVERSEEVENT: return "http://hl7.org/fhir/fhir-types";
19800            case ALLERGYINTOLERANCE: return "http://hl7.org/fhir/fhir-types";
19801            case APPOINTMENT: return "http://hl7.org/fhir/fhir-types";
19802            case APPOINTMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
19803            case ARTIFACTASSESSMENT: return "http://hl7.org/fhir/fhir-types";
19804            case AUDITEVENT: return "http://hl7.org/fhir/fhir-types";
19805            case BASIC: return "http://hl7.org/fhir/fhir-types";
19806            case BINARY: return "http://hl7.org/fhir/fhir-types";
19807            case BIOLOGICALLYDERIVEDPRODUCT: return "http://hl7.org/fhir/fhir-types";
19808            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "http://hl7.org/fhir/fhir-types";
19809            case BODYSTRUCTURE: return "http://hl7.org/fhir/fhir-types";
19810            case BUNDLE: return "http://hl7.org/fhir/fhir-types";
19811            case CANONICALRESOURCE: return "http://hl7.org/fhir/fhir-types";
19812            case CAPABILITYSTATEMENT: return "http://hl7.org/fhir/fhir-types";
19813            case CAREPLAN: return "http://hl7.org/fhir/fhir-types";
19814            case CARETEAM: return "http://hl7.org/fhir/fhir-types";
19815            case CHARGEITEM: return "http://hl7.org/fhir/fhir-types";
19816            case CHARGEITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
19817            case CITATION: return "http://hl7.org/fhir/fhir-types";
19818            case CLAIM: return "http://hl7.org/fhir/fhir-types";
19819            case CLAIMRESPONSE: return "http://hl7.org/fhir/fhir-types";
19820            case CLINICALIMPRESSION: return "http://hl7.org/fhir/fhir-types";
19821            case CLINICALUSEDEFINITION: return "http://hl7.org/fhir/fhir-types";
19822            case CODESYSTEM: return "http://hl7.org/fhir/fhir-types";
19823            case COMMUNICATION: return "http://hl7.org/fhir/fhir-types";
19824            case COMMUNICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
19825            case COMPARTMENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
19826            case COMPOSITION: return "http://hl7.org/fhir/fhir-types";
19827            case CONCEPTMAP: return "http://hl7.org/fhir/fhir-types";
19828            case CONDITION: return "http://hl7.org/fhir/fhir-types";
19829            case CONDITIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
19830            case CONSENT: return "http://hl7.org/fhir/fhir-types";
19831            case CONTRACT: return "http://hl7.org/fhir/fhir-types";
19832            case COVERAGE: return "http://hl7.org/fhir/fhir-types";
19833            case COVERAGEELIGIBILITYREQUEST: return "http://hl7.org/fhir/fhir-types";
19834            case COVERAGEELIGIBILITYRESPONSE: return "http://hl7.org/fhir/fhir-types";
19835            case DETECTEDISSUE: return "http://hl7.org/fhir/fhir-types";
19836            case DEVICE: return "http://hl7.org/fhir/fhir-types";
19837            case DEVICEASSOCIATION: return "http://hl7.org/fhir/fhir-types";
19838            case DEVICEDEFINITION: return "http://hl7.org/fhir/fhir-types";
19839            case DEVICEDISPENSE: return "http://hl7.org/fhir/fhir-types";
19840            case DEVICEMETRIC: return "http://hl7.org/fhir/fhir-types";
19841            case DEVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
19842            case DEVICEUSAGE: return "http://hl7.org/fhir/fhir-types";
19843            case DIAGNOSTICREPORT: return "http://hl7.org/fhir/fhir-types";
19844            case DOCUMENTREFERENCE: return "http://hl7.org/fhir/fhir-types";
19845            case DOMAINRESOURCE: return "http://hl7.org/fhir/fhir-types";
19846            case ENCOUNTER: return "http://hl7.org/fhir/fhir-types";
19847            case ENCOUNTERHISTORY: return "http://hl7.org/fhir/fhir-types";
19848            case ENDPOINT: return "http://hl7.org/fhir/fhir-types";
19849            case ENROLLMENTREQUEST: return "http://hl7.org/fhir/fhir-types";
19850            case ENROLLMENTRESPONSE: return "http://hl7.org/fhir/fhir-types";
19851            case EPISODEOFCARE: return "http://hl7.org/fhir/fhir-types";
19852            case EVENTDEFINITION: return "http://hl7.org/fhir/fhir-types";
19853            case EVIDENCE: return "http://hl7.org/fhir/fhir-types";
19854            case EVIDENCEREPORT: return "http://hl7.org/fhir/fhir-types";
19855            case EVIDENCEVARIABLE: return "http://hl7.org/fhir/fhir-types";
19856            case EXAMPLESCENARIO: return "http://hl7.org/fhir/fhir-types";
19857            case EXPLANATIONOFBENEFIT: return "http://hl7.org/fhir/fhir-types";
19858            case FAMILYMEMBERHISTORY: return "http://hl7.org/fhir/fhir-types";
19859            case FLAG: return "http://hl7.org/fhir/fhir-types";
19860            case FORMULARYITEM: return "http://hl7.org/fhir/fhir-types";
19861            case GENOMICSTUDY: return "http://hl7.org/fhir/fhir-types";
19862            case GOAL: return "http://hl7.org/fhir/fhir-types";
19863            case GRAPHDEFINITION: return "http://hl7.org/fhir/fhir-types";
19864            case GROUP: return "http://hl7.org/fhir/fhir-types";
19865            case GUIDANCERESPONSE: return "http://hl7.org/fhir/fhir-types";
19866            case HEALTHCARESERVICE: return "http://hl7.org/fhir/fhir-types";
19867            case IMAGINGSELECTION: return "http://hl7.org/fhir/fhir-types";
19868            case IMAGINGSTUDY: return "http://hl7.org/fhir/fhir-types";
19869            case IMMUNIZATION: return "http://hl7.org/fhir/fhir-types";
19870            case IMMUNIZATIONEVALUATION: return "http://hl7.org/fhir/fhir-types";
19871            case IMMUNIZATIONRECOMMENDATION: return "http://hl7.org/fhir/fhir-types";
19872            case IMPLEMENTATIONGUIDE: return "http://hl7.org/fhir/fhir-types";
19873            case INGREDIENT: return "http://hl7.org/fhir/fhir-types";
19874            case INSURANCEPLAN: return "http://hl7.org/fhir/fhir-types";
19875            case INVENTORYITEM: return "http://hl7.org/fhir/fhir-types";
19876            case INVENTORYREPORT: return "http://hl7.org/fhir/fhir-types";
19877            case INVOICE: return "http://hl7.org/fhir/fhir-types";
19878            case LIBRARY: return "http://hl7.org/fhir/fhir-types";
19879            case LINKAGE: return "http://hl7.org/fhir/fhir-types";
19880            case LIST: return "http://hl7.org/fhir/fhir-types";
19881            case LOCATION: return "http://hl7.org/fhir/fhir-types";
19882            case MANUFACTUREDITEMDEFINITION: return "http://hl7.org/fhir/fhir-types";
19883            case MEASURE: return "http://hl7.org/fhir/fhir-types";
19884            case MEASUREREPORT: return "http://hl7.org/fhir/fhir-types";
19885            case MEDICATION: return "http://hl7.org/fhir/fhir-types";
19886            case MEDICATIONADMINISTRATION: return "http://hl7.org/fhir/fhir-types";
19887            case MEDICATIONDISPENSE: return "http://hl7.org/fhir/fhir-types";
19888            case MEDICATIONKNOWLEDGE: return "http://hl7.org/fhir/fhir-types";
19889            case MEDICATIONREQUEST: return "http://hl7.org/fhir/fhir-types";
19890            case MEDICATIONSTATEMENT: return "http://hl7.org/fhir/fhir-types";
19891            case MEDICINALPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
19892            case MESSAGEDEFINITION: return "http://hl7.org/fhir/fhir-types";
19893            case MESSAGEHEADER: return "http://hl7.org/fhir/fhir-types";
19894            case METADATARESOURCE: return "http://hl7.org/fhir/fhir-types";
19895            case MOLECULARSEQUENCE: return "http://hl7.org/fhir/fhir-types";
19896            case NAMINGSYSTEM: return "http://hl7.org/fhir/fhir-types";
19897            case NUTRITIONINTAKE: return "http://hl7.org/fhir/fhir-types";
19898            case NUTRITIONORDER: return "http://hl7.org/fhir/fhir-types";
19899            case NUTRITIONPRODUCT: return "http://hl7.org/fhir/fhir-types";
19900            case OBSERVATION: return "http://hl7.org/fhir/fhir-types";
19901            case OBSERVATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
19902            case OPERATIONDEFINITION: return "http://hl7.org/fhir/fhir-types";
19903            case OPERATIONOUTCOME: return "http://hl7.org/fhir/fhir-types";
19904            case ORGANIZATION: return "http://hl7.org/fhir/fhir-types";
19905            case ORGANIZATIONAFFILIATION: return "http://hl7.org/fhir/fhir-types";
19906            case PACKAGEDPRODUCTDEFINITION: return "http://hl7.org/fhir/fhir-types";
19907            case PARAMETERS: return "http://hl7.org/fhir/fhir-types";
19908            case PATIENT: return "http://hl7.org/fhir/fhir-types";
19909            case PAYMENTNOTICE: return "http://hl7.org/fhir/fhir-types";
19910            case PAYMENTRECONCILIATION: return "http://hl7.org/fhir/fhir-types";
19911            case PERMISSION: return "http://hl7.org/fhir/fhir-types";
19912            case PERSON: return "http://hl7.org/fhir/fhir-types";
19913            case PLANDEFINITION: return "http://hl7.org/fhir/fhir-types";
19914            case PRACTITIONER: return "http://hl7.org/fhir/fhir-types";
19915            case PRACTITIONERROLE: return "http://hl7.org/fhir/fhir-types";
19916            case PROCEDURE: return "http://hl7.org/fhir/fhir-types";
19917            case PROVENANCE: return "http://hl7.org/fhir/fhir-types";
19918            case QUESTIONNAIRE: return "http://hl7.org/fhir/fhir-types";
19919            case QUESTIONNAIRERESPONSE: return "http://hl7.org/fhir/fhir-types";
19920            case REGULATEDAUTHORIZATION: return "http://hl7.org/fhir/fhir-types";
19921            case RELATEDPERSON: return "http://hl7.org/fhir/fhir-types";
19922            case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types";
19923            case REQUIREMENTS: return "http://hl7.org/fhir/fhir-types";
19924            case RESEARCHSTUDY: return "http://hl7.org/fhir/fhir-types";
19925            case RESEARCHSUBJECT: return "http://hl7.org/fhir/fhir-types";
19926            case RESOURCE: return "http://hl7.org/fhir/fhir-types";
19927            case RISKASSESSMENT: return "http://hl7.org/fhir/fhir-types";
19928            case SCHEDULE: return "http://hl7.org/fhir/fhir-types";
19929            case SEARCHPARAMETER: return "http://hl7.org/fhir/fhir-types";
19930            case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
19931            case SLOT: return "http://hl7.org/fhir/fhir-types";
19932            case SPECIMEN: return "http://hl7.org/fhir/fhir-types";
19933            case SPECIMENDEFINITION: return "http://hl7.org/fhir/fhir-types";
19934            case STRUCTUREDEFINITION: return "http://hl7.org/fhir/fhir-types";
19935            case STRUCTUREMAP: return "http://hl7.org/fhir/fhir-types";
19936            case SUBSCRIPTION: return "http://hl7.org/fhir/fhir-types";
19937            case SUBSCRIPTIONSTATUS: return "http://hl7.org/fhir/fhir-types";
19938            case SUBSCRIPTIONTOPIC: return "http://hl7.org/fhir/fhir-types";
19939            case SUBSTANCE: return "http://hl7.org/fhir/fhir-types";
19940            case SUBSTANCEDEFINITION: return "http://hl7.org/fhir/fhir-types";
19941            case SUBSTANCENUCLEICACID: return "http://hl7.org/fhir/fhir-types";
19942            case SUBSTANCEPOLYMER: return "http://hl7.org/fhir/fhir-types";
19943            case SUBSTANCEPROTEIN: return "http://hl7.org/fhir/fhir-types";
19944            case SUBSTANCEREFERENCEINFORMATION: return "http://hl7.org/fhir/fhir-types";
19945            case SUBSTANCESOURCEMATERIAL: return "http://hl7.org/fhir/fhir-types";
19946            case SUPPLYDELIVERY: return "http://hl7.org/fhir/fhir-types";
19947            case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types";
19948            case TASK: return "http://hl7.org/fhir/fhir-types";
19949            case TERMINOLOGYCAPABILITIES: return "http://hl7.org/fhir/fhir-types";
19950            case TESTPLAN: return "http://hl7.org/fhir/fhir-types";
19951            case TESTREPORT: return "http://hl7.org/fhir/fhir-types";
19952            case TESTSCRIPT: return "http://hl7.org/fhir/fhir-types";
19953            case TRANSPORT: return "http://hl7.org/fhir/fhir-types";
19954            case VALUESET: return "http://hl7.org/fhir/fhir-types";
19955            case VERIFICATIONRESULT: return "http://hl7.org/fhir/fhir-types";
19956            case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types";
19957            case BODYSITE: return "http://hl7.org/fhir/fhir-old-types";
19958            case CATALOGENTRY: return "http://hl7.org/fhir/fhir-old-types";
19959            case CONFORMANCE: return "http://hl7.org/fhir/fhir-old-types";
19960            case DATAELEMENT: return "http://hl7.org/fhir/fhir-old-types";
19961            case DEVICECOMPONENT: return "http://hl7.org/fhir/fhir-old-types";
19962            case DEVICEUSEREQUEST: return "http://hl7.org/fhir/fhir-old-types";
19963            case DEVICEUSESTATEMENT: return "http://hl7.org/fhir/fhir-old-types";
19964            case DIAGNOSTICORDER: return "http://hl7.org/fhir/fhir-old-types";
19965            case DOCUMENTMANIFEST: return "http://hl7.org/fhir/fhir-old-types";
19966            case EFFECTEVIDENCESYNTHESIS: return "http://hl7.org/fhir/fhir-old-types";
19967            case ELIGIBILITYREQUEST: return "http://hl7.org/fhir/fhir-old-types";
19968            case ELIGIBILITYRESPONSE: return "http://hl7.org/fhir/fhir-old-types";
19969            case EXPANSIONPROFILE: return "http://hl7.org/fhir/fhir-old-types";
19970            case IMAGINGMANIFEST: return "http://hl7.org/fhir/fhir-old-types";
19971            case IMAGINGOBJECTSELECTION: return "http://hl7.org/fhir/fhir-old-types";
19972            case MEDIA: return "http://hl7.org/fhir/fhir-old-types";
19973            case MEDICATIONORDER: return "http://hl7.org/fhir/fhir-old-types";
19974            case MEDICATIONUSAGE: return "http://hl7.org/fhir/fhir-old-types";
19975            case MEDICINALPRODUCT: return "http://hl7.org/fhir/fhir-old-types";
19976            case MEDICINALPRODUCTAUTHORIZATION: return "http://hl7.org/fhir/fhir-old-types";
19977            case MEDICINALPRODUCTCONTRAINDICATION: return "http://hl7.org/fhir/fhir-old-types";
19978            case MEDICINALPRODUCTINDICATION: return "http://hl7.org/fhir/fhir-old-types";
19979            case MEDICINALPRODUCTINGREDIENT: return "http://hl7.org/fhir/fhir-old-types";
19980            case MEDICINALPRODUCTINTERACTION: return "http://hl7.org/fhir/fhir-old-types";
19981            case MEDICINALPRODUCTMANUFACTURED: return "http://hl7.org/fhir/fhir-old-types";
19982            case MEDICINALPRODUCTPACKAGED: return "http://hl7.org/fhir/fhir-old-types";
19983            case MEDICINALPRODUCTPHARMACEUTICAL: return "http://hl7.org/fhir/fhir-old-types";
19984            case MEDICINALPRODUCTUNDESIRABLEEFFECT: return "http://hl7.org/fhir/fhir-old-types";
19985            case ORDER: return "http://hl7.org/fhir/fhir-old-types";
19986            case ORDERRESPONSE: return "http://hl7.org/fhir/fhir-old-types";
19987            case PROCEDUREREQUEST: return "http://hl7.org/fhir/fhir-old-types";
19988            case PROCESSREQUEST: return "http://hl7.org/fhir/fhir-old-types";
19989            case PROCESSRESPONSE: return "http://hl7.org/fhir/fhir-old-types";
19990            case REFERRALREQUEST: return "http://hl7.org/fhir/fhir-old-types";
19991            case REQUESTGROUP: return "http://hl7.org/fhir/fhir-old-types";
19992            case RESEARCHDEFINITION: return "http://hl7.org/fhir/fhir-old-types";
19993            case RESEARCHELEMENTDEFINITION: return "http://hl7.org/fhir/fhir-old-types";
19994            case RISKEVIDENCESYNTHESIS: return "http://hl7.org/fhir/fhir-old-types";
19995            case SEQUENCE: return "http://hl7.org/fhir/fhir-old-types";
19996            case SERVICEDEFINITION: return "http://hl7.org/fhir/fhir-old-types";
19997            case SUBSTANCESPECIFICATION: return "http://hl7.org/fhir/fhir-old-types";
19998            case MOLECULARDEFINITION: return "http://hl7.org/fhir/fhir-old-types";
19999            case CLINICALASSESSMENT: return "http://hl7.org/fhir/fhir-types";
20000            case NULL: return null;
20001            default: return "?";
20002          }
20003        }
20004        public String getDefinition() {
20005          switch (this) {
20006            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.";
20007            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.";
20008            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.";
20009            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).";
20010            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 participant. 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.  Adverse events can be reported by healthcare providers, patients, caregivers or by medical products manufacturers.  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.";
20011            case ALLERGYINTOLERANCE: return "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.";
20012            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).";
20013            case APPOINTMENTRESPONSE: return "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.";
20014            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.";
20015            case AUDITEVENT: return "A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.";
20016            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.";
20017            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.";
20018            case BIOLOGICALLYDERIVEDPRODUCT: return "A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.";
20019            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "A record of dispensation of a biologically derived product.";
20020            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.";
20021            case BUNDLE: return "A container for a collection of resources.";
20022            case CANONICALRESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
20023            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.";
20024            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.";
20025            case CARETEAM: return "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care.";
20026            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.";
20027            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.";
20028            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.";
20029            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.";
20030            case CLAIMRESPONSE: return "This resource provides the adjudication details from the processing of a Claim resource.";
20031            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.";
20032            case CLINICALUSEDEFINITION: return "A single issue - either an indication, contraindication, interaction or an undesirable effect for a medicinal product, medication, device or procedure.";
20033            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.";
20034            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.";
20035            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.";
20036            case COMPARTMENTDEFINITION: return "A compartment definition that defines how resources are accessed on a server.";
20037            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.).";
20038            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.";
20039            case CONDITION: return "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.";
20040            case CONDITIONDEFINITION: return "A definition of a condition and information relevant to managing it.";
20041            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.";
20042            case CONTRACT: return "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.";
20043            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.";
20044            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.";
20045            case COVERAGEELIGIBILITYRESPONSE: return "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.";
20046            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, gaps in care, etc.";
20047            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.";
20048            case DEVICEASSOCIATION: return "A record of association of a device.";
20049            case DEVICEDEFINITION: return "This is a specialized resource that defines the characteristics and capabilities of a device.";
20050            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.";
20051            case DEVICEMETRIC: return "Describes a measurement, calculation or setting capability of a device.  The DeviceMetric resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable. ";
20052            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.";
20053            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.";
20054            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.";
20055            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.";
20056            case DOMAINRESOURCE: return "A resource that includes narrative, extensions, and contained resources.";
20057            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).";
20058            case ENCOUNTERHISTORY: return "A record of significant events/milestones key data throughout the history of an Encounter";
20059            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.";
20060            case ENROLLMENTREQUEST: return "This resource provides the insurance enrollment details to the insurer regarding a specified coverage.";
20061            case ENROLLMENTRESPONSE: return "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.";
20062            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.";
20063            case EVENTDEFINITION: return "The EventDefinition resource provides a reusable description of when a particular event can occur.";
20064            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.";
20065            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.";
20066            case EVIDENCEVARIABLE: return "The EvidenceVariable resource describes an element that knowledge (Evidence) is about.";
20067            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.";
20068            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.";
20069            case FAMILYMEMBERHISTORY: return "Significant health conditions for a person related to the patient relevant in the context of care for the patient.";
20070            case FLAG: return "Prospective warnings of potential issues when providing care to the patient.";
20071            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.";
20072            case GENOMICSTUDY: return "A set of analyses performed to analyze and generate genomic data.";
20073            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.";
20074            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.";
20075            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.";
20076            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.";
20077            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.";
20078            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.";
20079            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.";
20080            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.";
20081            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.";
20082            case IMMUNIZATIONRECOMMENDATION: return "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification.";
20083            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.";
20084            case INGREDIENT: return "An ingredient of a manufactured item or pharmaceutical product.";
20085            case INSURANCEPLAN: return "Details of a Health Insurance product/plan provided by an organization.";
20086            case INVENTORYITEM: return "functional description of an inventory item used in inventory and supply-related workflows.";
20087            case INVENTORYREPORT: return "A report of inventory or stock items.";
20088            case INVOICE: return "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.";
20089            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.";
20090            case LINKAGE: return "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\".";
20091            case LIST: return "A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.";
20092            case LOCATION: return "Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.";
20093            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.";
20094            case MEASURE: return "The Measure resource provides the definition of a quality measure.";
20095            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.";
20096            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.";
20097            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. This event can also be used to record waste using a status of not-done and the appropriate statusReason.";
20098            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.";
20099            case MEDICATIONKNOWLEDGE: return "Information about a medication that is used to support knowledge.";
20100            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.";
20101            case MEDICATIONSTATEMENT: return "A record of a medication that is being consumed by a patient.   A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future.  The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician.  A common scenario where this information is captured is during the history taking process during a patient visit or stay.   The medication information may come from sources such as the patient's memory, from a prescription bottle,  or from a list of medications the patient, clinician or other party maintains. \n\nThe primary difference between a medicationstatement 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 medicationstatement is often, if not always, less specific.  There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise.  As stated earlier, the Medication Statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains.  Medication administration is more formal and is not missing detailed information.";
20102            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.).";
20103            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.";
20104            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.";
20105            case METADATARESOURCE: return "Common Interface declaration for conformance and knowledge artifact resources.";
20106            case MOLECULARSEQUENCE: return "Representation of a molecular sequence.";
20107            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.";
20108            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.";
20109            case NUTRITIONORDER: return "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident.";
20110            case NUTRITIONPRODUCT: return "A food or supplement that is consumed by patients.";
20111            case OBSERVATION: return "Measurements and simple assertions made about a patient, device or other subject.";
20112            case OBSERVATIONDEFINITION: return "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.";
20113            case OPERATIONDEFINITION: return "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).";
20114            case OPERATIONOUTCOME: return "A collection of error, warning, or information messages that result from a system action.";
20115            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.";
20116            case ORGANIZATIONAFFILIATION: return "Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.";
20117            case PACKAGEDPRODUCTDEFINITION: return "A medically related item or items, in a container or package.";
20118            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.";
20119            case PATIENT: return "Demographics and other administrative information about an individual or animal receiving care or other health-related services.";
20120            case PAYMENTNOTICE: return "This resource provides the status of the payment for goods and services rendered, and the request and response resource references.";
20121            case PAYMENTRECONCILIATION: return "This resource provides the details including amount of a payment and allocates the payment items being paid.";
20122            case PERMISSION: return "Permission resource holds access rules for a given data and context.";
20123            case PERSON: return "Demographics and administrative information about a person independent of a specific health-related context.";
20124            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.";
20125            case PRACTITIONER: return "A person who is directly or indirectly involved in the provisioning of healthcare or related services.";
20126            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.";
20127            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.";
20128            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.";
20129            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.";
20130            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.";
20131            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.";
20132            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.";
20133            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\".";
20134            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.";
20135            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.";
20136            case RESEARCHSUBJECT: return "A ResearchSubject is a participant or object which is the recipient of investigative activities in a research study.";
20137            case RESOURCE: return "This is the base resource type for everything.";
20138            case RISKASSESSMENT: return "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.";
20139            case SCHEDULE: return "A container for slots of time that may be available for booking appointments.";
20140            case SEARCHPARAMETER: return "A search parameter that defines a named search item that can be used to search/filter on a resource.";
20141            case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
20142            case SLOT: return "A slot of time on a schedule that may be available for booking appointments.";
20143            case SPECIMEN: return "A sample to be used for analysis.";
20144            case SPECIMENDEFINITION: return "A kind of specimen with associated set of requirements.";
20145            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.";
20146            case STRUCTUREMAP: return "A Map of relationships between 2 structures that can be used to transform data.";
20147            case SUBSCRIPTION: return "The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.";
20148            case SUBSCRIPTIONSTATUS: return "The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.";
20149            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.";
20150            case SUBSTANCE: return "A homogeneous material with a definite composition.";
20151            case SUBSTANCEDEFINITION: return "The detailed description of a substance, typically at a level beyond what is used for prescribing.";
20152            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.";
20153            case SUBSTANCEPOLYMER: return "Properties of a substance specific to it being a polymer.";
20154            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.";
20155            case SUBSTANCEREFERENCEINFORMATION: return "Todo.";
20156            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.";
20157            case SUPPLYDELIVERY: return "Record of delivery of what is supplied.";
20158            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.";
20159            case TASK: return "A task to be performed.";
20160            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.";
20161            case TESTPLAN: return "A plan for executing testing on an artifact or specifications";
20162            case TESTREPORT: return "A summary of information based on the results of executing a TestScript.";
20163            case TESTSCRIPT: return "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.";
20164            case TRANSPORT: return "Record of transport.";
20165            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).";
20166            case VERIFICATIONRESULT: return "Describes validation requirements, source(s), status and dates for one or more elements.";
20167            case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient.";
20168            case BODYSITE: return "";
20169            case CATALOGENTRY: return "";
20170            case CONFORMANCE: return "";
20171            case DATAELEMENT: return "";
20172            case DEVICECOMPONENT: return "";
20173            case DEVICEUSEREQUEST: return "";
20174            case DEVICEUSESTATEMENT: return "";
20175            case DIAGNOSTICORDER: return "";
20176            case DOCUMENTMANIFEST: return "";
20177            case EFFECTEVIDENCESYNTHESIS: return "";
20178            case ELIGIBILITYREQUEST: return "";
20179            case ELIGIBILITYRESPONSE: return "";
20180            case EXPANSIONPROFILE: return "";
20181            case IMAGINGMANIFEST: return "";
20182            case IMAGINGOBJECTSELECTION: return "";
20183            case MEDIA: return "";
20184            case MEDICATIONORDER: return "";
20185            case MEDICATIONUSAGE: return "";
20186            case MEDICINALPRODUCT: return "";
20187            case MEDICINALPRODUCTAUTHORIZATION: return "";
20188            case MEDICINALPRODUCTCONTRAINDICATION: return "";
20189            case MEDICINALPRODUCTINDICATION: return "";
20190            case MEDICINALPRODUCTINGREDIENT: return "";
20191            case MEDICINALPRODUCTINTERACTION: return "";
20192            case MEDICINALPRODUCTMANUFACTURED: return "";
20193            case MEDICINALPRODUCTPACKAGED: return "";
20194            case MEDICINALPRODUCTPHARMACEUTICAL: return "";
20195            case MEDICINALPRODUCTUNDESIRABLEEFFECT: return "";
20196            case ORDER: return "";
20197            case ORDERRESPONSE: return "";
20198            case PROCEDUREREQUEST: return "";
20199            case PROCESSREQUEST: return "";
20200            case PROCESSRESPONSE: return "";
20201            case REFERRALREQUEST: return "";
20202            case REQUESTGROUP: return "";
20203            case RESEARCHDEFINITION: return "";
20204            case RESEARCHELEMENTDEFINITION: return "";
20205            case RISKEVIDENCESYNTHESIS: return "";
20206            case SEQUENCE: return "";
20207            case SERVICEDEFINITION: return "";
20208            case SUBSTANCESPECIFICATION: return "";
20209            case MOLECULARDEFINITION: return "";
20210            case CLINICALASSESSMENT: return "";
20211            case NULL: return null;
20212            default: return "?";
20213          }
20214        }
20215        public String getDisplay() {
20216          switch (this) {
20217            case ACCOUNT: return "Account";
20218            case ACTIVITYDEFINITION: return "ActivityDefinition";
20219            case ACTORDEFINITION: return "ActorDefinition";
20220            case ADMINISTRABLEPRODUCTDEFINITION: return "AdministrableProductDefinition";
20221            case ADVERSEEVENT: return "AdverseEvent";
20222            case ALLERGYINTOLERANCE: return "AllergyIntolerance";
20223            case APPOINTMENT: return "Appointment";
20224            case APPOINTMENTRESPONSE: return "AppointmentResponse";
20225            case ARTIFACTASSESSMENT: return "ArtifactAssessment";
20226            case AUDITEVENT: return "AuditEvent";
20227            case BASIC: return "Basic";
20228            case BINARY: return "Binary";
20229            case BIOLOGICALLYDERIVEDPRODUCT: return "BiologicallyDerivedProduct";
20230            case BIOLOGICALLYDERIVEDPRODUCTDISPENSE: return "BiologicallyDerivedProductDispense";
20231            case BODYSTRUCTURE: return "BodyStructure";
20232            case BUNDLE: return "Bundle";
20233            case CANONICALRESOURCE: return "CanonicalResource";
20234            case CAPABILITYSTATEMENT: return "CapabilityStatement";
20235            case CAREPLAN: return "CarePlan";
20236            case CARETEAM: return "CareTeam";
20237            case CHARGEITEM: return "ChargeItem";
20238            case CHARGEITEMDEFINITION: return "ChargeItemDefinition";
20239            case CITATION: return "Citation";
20240            case CLAIM: return "Claim";
20241            case CLAIMRESPONSE: return "ClaimResponse";
20242            case CLINICALIMPRESSION: return "ClinicalImpression";
20243            case CLINICALUSEDEFINITION: return "ClinicalUseDefinition";
20244            case CODESYSTEM: return "CodeSystem";
20245            case COMMUNICATION: return "Communication";
20246            case COMMUNICATIONREQUEST: return "CommunicationRequest";
20247            case COMPARTMENTDEFINITION: return "CompartmentDefinition";
20248            case COMPOSITION: return "Composition";
20249            case CONCEPTMAP: return "ConceptMap";
20250            case CONDITION: return "Condition";
20251            case CONDITIONDEFINITION: return "ConditionDefinition";
20252            case CONSENT: return "Consent";
20253            case CONTRACT: return "Contract";
20254            case COVERAGE: return "Coverage";
20255            case COVERAGEELIGIBILITYREQUEST: return "CoverageEligibilityRequest";
20256            case COVERAGEELIGIBILITYRESPONSE: return "CoverageEligibilityResponse";
20257            case DETECTEDISSUE: return "DetectedIssue";
20258            case DEVICE: return "Device";
20259            case DEVICEASSOCIATION: return "DeviceAssociation";
20260            case DEVICEDEFINITION: return "DeviceDefinition";
20261            case DEVICEDISPENSE: return "DeviceDispense";
20262            case DEVICEMETRIC: return "DeviceMetric";
20263            case DEVICEREQUEST: return "DeviceRequest";
20264            case DEVICEUSAGE: return "DeviceUsage";
20265            case DIAGNOSTICREPORT: return "DiagnosticReport";
20266            case DOCUMENTREFERENCE: return "DocumentReference";
20267            case DOMAINRESOURCE: return "DomainResource";
20268            case ENCOUNTER: return "Encounter";
20269            case ENCOUNTERHISTORY: return "EncounterHistory";
20270            case ENDPOINT: return "Endpoint";
20271            case ENROLLMENTREQUEST: return "EnrollmentRequest";
20272            case ENROLLMENTRESPONSE: return "EnrollmentResponse";
20273            case EPISODEOFCARE: return "EpisodeOfCare";
20274            case EVENTDEFINITION: return "EventDefinition";
20275            case EVIDENCE: return "Evidence";
20276            case EVIDENCEREPORT: return "EvidenceReport";
20277            case EVIDENCEVARIABLE: return "EvidenceVariable";
20278            case EXAMPLESCENARIO: return "ExampleScenario";
20279            case EXPLANATIONOFBENEFIT: return "ExplanationOfBenefit";
20280            case FAMILYMEMBERHISTORY: return "FamilyMemberHistory";
20281            case FLAG: return "Flag";
20282            case FORMULARYITEM: return "FormularyItem";
20283            case GENOMICSTUDY: return "GenomicStudy";
20284            case GOAL: return "Goal";
20285            case GRAPHDEFINITION: return "GraphDefinition";
20286            case GROUP: return "Group";
20287            case GUIDANCERESPONSE: return "GuidanceResponse";
20288            case HEALTHCARESERVICE: return "HealthcareService";
20289            case IMAGINGSELECTION: return "ImagingSelection";
20290            case IMAGINGSTUDY: return "ImagingStudy";
20291            case IMMUNIZATION: return "Immunization";
20292            case IMMUNIZATIONEVALUATION: return "ImmunizationEvaluation";
20293            case IMMUNIZATIONRECOMMENDATION: return "ImmunizationRecommendation";
20294            case IMPLEMENTATIONGUIDE: return "ImplementationGuide";
20295            case INGREDIENT: return "Ingredient";
20296            case INSURANCEPLAN: return "InsurancePlan";
20297            case INVENTORYITEM: return "InventoryItem";
20298            case INVENTORYREPORT: return "InventoryReport";
20299            case INVOICE: return "Invoice";
20300            case LIBRARY: return "Library";
20301            case LINKAGE: return "Linkage";
20302            case LIST: return "List";
20303            case LOCATION: return "Location";
20304            case MANUFACTUREDITEMDEFINITION: return "ManufacturedItemDefinition";
20305            case MEASURE: return "Measure";
20306            case MEASUREREPORT: return "MeasureReport";
20307            case MEDICATION: return "Medication";
20308            case MEDICATIONADMINISTRATION: return "MedicationAdministration";
20309            case MEDICATIONDISPENSE: return "MedicationDispense";
20310            case MEDICATIONKNOWLEDGE: return "MedicationKnowledge";
20311            case MEDICATIONREQUEST: return "MedicationRequest";
20312            case MEDICATIONSTATEMENT: return "MedicationStatement";
20313            case MEDICINALPRODUCTDEFINITION: return "MedicinalProductDefinition";
20314            case MESSAGEDEFINITION: return "MessageDefinition";
20315            case MESSAGEHEADER: return "MessageHeader";
20316            case METADATARESOURCE: return "MetadataResource";
20317            case MOLECULARSEQUENCE: return "MolecularSequence";
20318            case NAMINGSYSTEM: return "NamingSystem";
20319            case NUTRITIONINTAKE: return "NutritionIntake";
20320            case NUTRITIONORDER: return "NutritionOrder";
20321            case NUTRITIONPRODUCT: return "NutritionProduct";
20322            case OBSERVATION: return "Observation";
20323            case OBSERVATIONDEFINITION: return "ObservationDefinition";
20324            case OPERATIONDEFINITION: return "OperationDefinition";
20325            case OPERATIONOUTCOME: return "OperationOutcome";
20326            case ORGANIZATION: return "Organization";
20327            case ORGANIZATIONAFFILIATION: return "OrganizationAffiliation";
20328            case PACKAGEDPRODUCTDEFINITION: return "PackagedProductDefinition";
20329            case PARAMETERS: return "Parameters";
20330            case PATIENT: return "Patient";
20331            case PAYMENTNOTICE: return "PaymentNotice";
20332            case PAYMENTRECONCILIATION: return "PaymentReconciliation";
20333            case PERMISSION: return "Permission";
20334            case PERSON: return "Person";
20335            case PLANDEFINITION: return "PlanDefinition";
20336            case PRACTITIONER: return "Practitioner";
20337            case PRACTITIONERROLE: return "PractitionerRole";
20338            case PROCEDURE: return "Procedure";
20339            case PROVENANCE: return "Provenance";
20340            case QUESTIONNAIRE: return "Questionnaire";
20341            case QUESTIONNAIRERESPONSE: return "QuestionnaireResponse";
20342            case REGULATEDAUTHORIZATION: return "RegulatedAuthorization";
20343            case RELATEDPERSON: return "RelatedPerson";
20344            case REQUESTORCHESTRATION: return "RequestOrchestration";
20345            case REQUIREMENTS: return "Requirements";
20346            case RESEARCHSTUDY: return "ResearchStudy";
20347            case RESEARCHSUBJECT: return "ResearchSubject";
20348            case RESOURCE: return "Resource";
20349            case RISKASSESSMENT: return "RiskAssessment";
20350            case SCHEDULE: return "Schedule";
20351            case SEARCHPARAMETER: return "SearchParameter";
20352            case SERVICEREQUEST: return "ServiceRequest";
20353            case SLOT: return "Slot";
20354            case SPECIMEN: return "Specimen";
20355            case SPECIMENDEFINITION: return "SpecimenDefinition";
20356            case STRUCTUREDEFINITION: return "StructureDefinition";
20357            case STRUCTUREMAP: return "StructureMap";
20358            case SUBSCRIPTION: return "Subscription";
20359            case SUBSCRIPTIONSTATUS: return "SubscriptionStatus";
20360            case SUBSCRIPTIONTOPIC: return "SubscriptionTopic";
20361            case SUBSTANCE: return "Substance";
20362            case SUBSTANCEDEFINITION: return "SubstanceDefinition";
20363            case SUBSTANCENUCLEICACID: return "SubstanceNucleicAcid";
20364            case SUBSTANCEPOLYMER: return "SubstancePolymer";
20365            case SUBSTANCEPROTEIN: return "SubstanceProtein";
20366            case SUBSTANCEREFERENCEINFORMATION: return "SubstanceReferenceInformation";
20367            case SUBSTANCESOURCEMATERIAL: return "SubstanceSourceMaterial";
20368            case SUPPLYDELIVERY: return "SupplyDelivery";
20369            case SUPPLYREQUEST: return "SupplyRequest";
20370            case TASK: return "Task";
20371            case TERMINOLOGYCAPABILITIES: return "TerminologyCapabilities";
20372            case TESTPLAN: return "TestPlan";
20373            case TESTREPORT: return "TestReport";
20374            case TESTSCRIPT: return "TestScript";
20375            case TRANSPORT: return "Transport";
20376            case VALUESET: return "ValueSet";
20377            case VERIFICATIONRESULT: return "VerificationResult";
20378            case VISIONPRESCRIPTION: return "VisionPrescription";
20379            case BODYSITE: return "BodySite";
20380            case CATALOGENTRY: return "CatalogEntry";
20381            case CONFORMANCE: return "Conformance";
20382            case DATAELEMENT: return "DataElement";
20383            case DEVICECOMPONENT: return "DeviceComponent";
20384            case DEVICEUSEREQUEST: return "DeviceUseRequest";
20385            case DEVICEUSESTATEMENT: return "DeviceUseStatement";
20386            case DIAGNOSTICORDER: return "DiagnosticOrder";
20387            case DOCUMENTMANIFEST: return "DocumentManifest";
20388            case EFFECTEVIDENCESYNTHESIS: return "EffectEvidenceSynthesis";
20389            case ELIGIBILITYREQUEST: return "EligibilityRequest";
20390            case ELIGIBILITYRESPONSE: return "EligibilityResponse";
20391            case EXPANSIONPROFILE: return "ExpansionProfile";
20392            case IMAGINGMANIFEST: return "ImagingManifest";
20393            case IMAGINGOBJECTSELECTION: return "ImagingObjectSelection";
20394            case MEDIA: return "Media";
20395            case MEDICATIONORDER: return "MedicationOrder";
20396            case MEDICATIONUSAGE: return "MedicationUsage";
20397            case MEDICINALPRODUCT: return "MedicinalProduct";
20398            case MEDICINALPRODUCTAUTHORIZATION: return "MedicinalProductAuthorization";
20399            case MEDICINALPRODUCTCONTRAINDICATION: return "MedicinalProductContraindication";
20400            case MEDICINALPRODUCTINDICATION: return "MedicinalProductIndication";
20401            case MEDICINALPRODUCTINGREDIENT: return "MedicinalProductIngredient";
20402            case MEDICINALPRODUCTINTERACTION: return "MedicinalProductInteraction";
20403            case MEDICINALPRODUCTMANUFACTURED: return "MedicinalProductManufactured";
20404            case MEDICINALPRODUCTPACKAGED: return "MedicinalProductPackaged";
20405            case MEDICINALPRODUCTPHARMACEUTICAL: return "MedicinalProductPharmaceutical";
20406            case MEDICINALPRODUCTUNDESIRABLEEFFECT: return "MedicinalProductUndesirableEffect";
20407            case ORDER: return "Order";
20408            case ORDERRESPONSE: return "OrderResponse";
20409            case PROCEDUREREQUEST: return "ProcedureRequest";
20410            case PROCESSREQUEST: return "ProcessRequest";
20411            case PROCESSRESPONSE: return "ProcessResponse";
20412            case REFERRALREQUEST: return "ReferralRequest";
20413            case REQUESTGROUP: return "RequestGroup";
20414            case RESEARCHDEFINITION: return "ResearchDefinition";
20415            case RESEARCHELEMENTDEFINITION: return "ResearchElementDefinition";
20416            case RISKEVIDENCESYNTHESIS: return "RiskEvidenceSynthesis";
20417            case SEQUENCE: return "Sequence";
20418            case SERVICEDEFINITION: return "ServiceDefinition";
20419            case SUBSTANCESPECIFICATION: return "SubstanceSpecification";
20420            case MOLECULARDEFINITION: return "MolecularDefinition";
20421            case CLINICALASSESSMENT: return "ClinicalAssessment";
20422            case NULL: return null;
20423            default: return "?";
20424          }
20425        }
20426    }
20427
20428  public static class VersionIndependentResourceTypesAllEnumFactory implements EnumFactory<VersionIndependentResourceTypesAll> {
20429    public VersionIndependentResourceTypesAll fromCode(String codeString) throws IllegalArgumentException {
20430      if (codeString == null || "".equals(codeString))
20431            if (codeString == null || "".equals(codeString))
20432                return null;
20433        if ("Account".equals(codeString))
20434          return VersionIndependentResourceTypesAll.ACCOUNT;
20435        if ("ActivityDefinition".equals(codeString))
20436          return VersionIndependentResourceTypesAll.ACTIVITYDEFINITION;
20437        if ("ActorDefinition".equals(codeString))
20438          return VersionIndependentResourceTypesAll.ACTORDEFINITION;
20439        if ("AdministrableProductDefinition".equals(codeString))
20440          return VersionIndependentResourceTypesAll.ADMINISTRABLEPRODUCTDEFINITION;
20441        if ("AdverseEvent".equals(codeString))
20442          return VersionIndependentResourceTypesAll.ADVERSEEVENT;
20443        if ("AllergyIntolerance".equals(codeString))
20444          return VersionIndependentResourceTypesAll.ALLERGYINTOLERANCE;
20445        if ("Appointment".equals(codeString))
20446          return VersionIndependentResourceTypesAll.APPOINTMENT;
20447        if ("AppointmentResponse".equals(codeString))
20448          return VersionIndependentResourceTypesAll.APPOINTMENTRESPONSE;
20449        if ("ArtifactAssessment".equals(codeString))
20450          return VersionIndependentResourceTypesAll.ARTIFACTASSESSMENT;
20451        if ("AuditEvent".equals(codeString))
20452          return VersionIndependentResourceTypesAll.AUDITEVENT;
20453        if ("Basic".equals(codeString))
20454          return VersionIndependentResourceTypesAll.BASIC;
20455        if ("Binary".equals(codeString))
20456          return VersionIndependentResourceTypesAll.BINARY;
20457        if ("BiologicallyDerivedProduct".equals(codeString))
20458          return VersionIndependentResourceTypesAll.BIOLOGICALLYDERIVEDPRODUCT;
20459        if ("BiologicallyDerivedProductDispense".equals(codeString))
20460          return VersionIndependentResourceTypesAll.BIOLOGICALLYDERIVEDPRODUCTDISPENSE;
20461        if ("BodyStructure".equals(codeString))
20462          return VersionIndependentResourceTypesAll.BODYSTRUCTURE;
20463        if ("Bundle".equals(codeString))
20464          return VersionIndependentResourceTypesAll.BUNDLE;
20465        if ("CanonicalResource".equals(codeString))
20466          return VersionIndependentResourceTypesAll.CANONICALRESOURCE;
20467        if ("CapabilityStatement".equals(codeString))
20468          return VersionIndependentResourceTypesAll.CAPABILITYSTATEMENT;
20469        if ("CarePlan".equals(codeString))
20470          return VersionIndependentResourceTypesAll.CAREPLAN;
20471        if ("CareTeam".equals(codeString))
20472          return VersionIndependentResourceTypesAll.CARETEAM;
20473        if ("ChargeItem".equals(codeString))
20474          return VersionIndependentResourceTypesAll.CHARGEITEM;
20475        if ("ChargeItemDefinition".equals(codeString))
20476          return VersionIndependentResourceTypesAll.CHARGEITEMDEFINITION;
20477        if ("Citation".equals(codeString))
20478          return VersionIndependentResourceTypesAll.CITATION;
20479        if ("Claim".equals(codeString))
20480          return VersionIndependentResourceTypesAll.CLAIM;
20481        if ("ClaimResponse".equals(codeString))
20482          return VersionIndependentResourceTypesAll.CLAIMRESPONSE;
20483        if ("ClinicalImpression".equals(codeString))
20484          return VersionIndependentResourceTypesAll.CLINICALIMPRESSION;
20485        if ("ClinicalUseDefinition".equals(codeString))
20486          return VersionIndependentResourceTypesAll.CLINICALUSEDEFINITION;
20487        if ("CodeSystem".equals(codeString))
20488          return VersionIndependentResourceTypesAll.CODESYSTEM;
20489        if ("Communication".equals(codeString))
20490          return VersionIndependentResourceTypesAll.COMMUNICATION;
20491        if ("CommunicationRequest".equals(codeString))
20492          return VersionIndependentResourceTypesAll.COMMUNICATIONREQUEST;
20493        if ("CompartmentDefinition".equals(codeString))
20494          return VersionIndependentResourceTypesAll.COMPARTMENTDEFINITION;
20495        if ("Composition".equals(codeString))
20496          return VersionIndependentResourceTypesAll.COMPOSITION;
20497        if ("ConceptMap".equals(codeString))
20498          return VersionIndependentResourceTypesAll.CONCEPTMAP;
20499        if ("Condition".equals(codeString))
20500          return VersionIndependentResourceTypesAll.CONDITION;
20501        if ("ConditionDefinition".equals(codeString))
20502          return VersionIndependentResourceTypesAll.CONDITIONDEFINITION;
20503        if ("Consent".equals(codeString))
20504          return VersionIndependentResourceTypesAll.CONSENT;
20505        if ("Contract".equals(codeString))
20506          return VersionIndependentResourceTypesAll.CONTRACT;
20507        if ("Coverage".equals(codeString))
20508          return VersionIndependentResourceTypesAll.COVERAGE;
20509        if ("CoverageEligibilityRequest".equals(codeString))
20510          return VersionIndependentResourceTypesAll.COVERAGEELIGIBILITYREQUEST;
20511        if ("CoverageEligibilityResponse".equals(codeString))
20512          return VersionIndependentResourceTypesAll.COVERAGEELIGIBILITYRESPONSE;
20513        if ("DetectedIssue".equals(codeString))
20514          return VersionIndependentResourceTypesAll.DETECTEDISSUE;
20515        if ("Device".equals(codeString))
20516          return VersionIndependentResourceTypesAll.DEVICE;
20517        if ("DeviceAssociation".equals(codeString))
20518          return VersionIndependentResourceTypesAll.DEVICEASSOCIATION;
20519        if ("DeviceDefinition".equals(codeString))
20520          return VersionIndependentResourceTypesAll.DEVICEDEFINITION;
20521        if ("DeviceDispense".equals(codeString))
20522          return VersionIndependentResourceTypesAll.DEVICEDISPENSE;
20523        if ("DeviceMetric".equals(codeString))
20524          return VersionIndependentResourceTypesAll.DEVICEMETRIC;
20525        if ("DeviceRequest".equals(codeString))
20526          return VersionIndependentResourceTypesAll.DEVICEREQUEST;
20527        if ("DeviceUsage".equals(codeString))
20528          return VersionIndependentResourceTypesAll.DEVICEUSAGE;
20529        if ("DiagnosticReport".equals(codeString))
20530          return VersionIndependentResourceTypesAll.DIAGNOSTICREPORT;
20531        if ("DocumentReference".equals(codeString))
20532          return VersionIndependentResourceTypesAll.DOCUMENTREFERENCE;
20533        if ("DomainResource".equals(codeString))
20534          return VersionIndependentResourceTypesAll.DOMAINRESOURCE;
20535        if ("Encounter".equals(codeString))
20536          return VersionIndependentResourceTypesAll.ENCOUNTER;
20537        if ("EncounterHistory".equals(codeString))
20538          return VersionIndependentResourceTypesAll.ENCOUNTERHISTORY;
20539        if ("Endpoint".equals(codeString))
20540          return VersionIndependentResourceTypesAll.ENDPOINT;
20541        if ("EnrollmentRequest".equals(codeString))
20542          return VersionIndependentResourceTypesAll.ENROLLMENTREQUEST;
20543        if ("EnrollmentResponse".equals(codeString))
20544          return VersionIndependentResourceTypesAll.ENROLLMENTRESPONSE;
20545        if ("EpisodeOfCare".equals(codeString))
20546          return VersionIndependentResourceTypesAll.EPISODEOFCARE;
20547        if ("EventDefinition".equals(codeString))
20548          return VersionIndependentResourceTypesAll.EVENTDEFINITION;
20549        if ("Evidence".equals(codeString))
20550          return VersionIndependentResourceTypesAll.EVIDENCE;
20551        if ("EvidenceReport".equals(codeString))
20552          return VersionIndependentResourceTypesAll.EVIDENCEREPORT;
20553        if ("EvidenceVariable".equals(codeString))
20554          return VersionIndependentResourceTypesAll.EVIDENCEVARIABLE;
20555        if ("ExampleScenario".equals(codeString))
20556          return VersionIndependentResourceTypesAll.EXAMPLESCENARIO;
20557        if ("ExplanationOfBenefit".equals(codeString))
20558          return VersionIndependentResourceTypesAll.EXPLANATIONOFBENEFIT;
20559        if ("FamilyMemberHistory".equals(codeString))
20560          return VersionIndependentResourceTypesAll.FAMILYMEMBERHISTORY;
20561        if ("Flag".equals(codeString))
20562          return VersionIndependentResourceTypesAll.FLAG;
20563        if ("FormularyItem".equals(codeString))
20564          return VersionIndependentResourceTypesAll.FORMULARYITEM;
20565        if ("GenomicStudy".equals(codeString))
20566          return VersionIndependentResourceTypesAll.GENOMICSTUDY;
20567        if ("Goal".equals(codeString))
20568          return VersionIndependentResourceTypesAll.GOAL;
20569        if ("GraphDefinition".equals(codeString))
20570          return VersionIndependentResourceTypesAll.GRAPHDEFINITION;
20571        if ("Group".equals(codeString))
20572          return VersionIndependentResourceTypesAll.GROUP;
20573        if ("GuidanceResponse".equals(codeString))
20574          return VersionIndependentResourceTypesAll.GUIDANCERESPONSE;
20575        if ("HealthcareService".equals(codeString))
20576          return VersionIndependentResourceTypesAll.HEALTHCARESERVICE;
20577        if ("ImagingSelection".equals(codeString))
20578          return VersionIndependentResourceTypesAll.IMAGINGSELECTION;
20579        if ("ImagingStudy".equals(codeString))
20580          return VersionIndependentResourceTypesAll.IMAGINGSTUDY;
20581        if ("Immunization".equals(codeString))
20582          return VersionIndependentResourceTypesAll.IMMUNIZATION;
20583        if ("ImmunizationEvaluation".equals(codeString))
20584          return VersionIndependentResourceTypesAll.IMMUNIZATIONEVALUATION;
20585        if ("ImmunizationRecommendation".equals(codeString))
20586          return VersionIndependentResourceTypesAll.IMMUNIZATIONRECOMMENDATION;
20587        if ("ImplementationGuide".equals(codeString))
20588          return VersionIndependentResourceTypesAll.IMPLEMENTATIONGUIDE;
20589        if ("Ingredient".equals(codeString))
20590          return VersionIndependentResourceTypesAll.INGREDIENT;
20591        if ("InsurancePlan".equals(codeString))
20592          return VersionIndependentResourceTypesAll.INSURANCEPLAN;
20593        if ("InventoryItem".equals(codeString))
20594          return VersionIndependentResourceTypesAll.INVENTORYITEM;
20595        if ("InventoryReport".equals(codeString))
20596          return VersionIndependentResourceTypesAll.INVENTORYREPORT;
20597        if ("Invoice".equals(codeString))
20598          return VersionIndependentResourceTypesAll.INVOICE;
20599        if ("Library".equals(codeString))
20600          return VersionIndependentResourceTypesAll.LIBRARY;
20601        if ("Linkage".equals(codeString))
20602          return VersionIndependentResourceTypesAll.LINKAGE;
20603        if ("List".equals(codeString))
20604          return VersionIndependentResourceTypesAll.LIST;
20605        if ("Location".equals(codeString))
20606          return VersionIndependentResourceTypesAll.LOCATION;
20607        if ("ManufacturedItemDefinition".equals(codeString))
20608          return VersionIndependentResourceTypesAll.MANUFACTUREDITEMDEFINITION;
20609        if ("Measure".equals(codeString))
20610          return VersionIndependentResourceTypesAll.MEASURE;
20611        if ("MeasureReport".equals(codeString))
20612          return VersionIndependentResourceTypesAll.MEASUREREPORT;
20613        if ("Medication".equals(codeString))
20614          return VersionIndependentResourceTypesAll.MEDICATION;
20615        if ("MedicationAdministration".equals(codeString))
20616          return VersionIndependentResourceTypesAll.MEDICATIONADMINISTRATION;
20617        if ("MedicationDispense".equals(codeString))
20618          return VersionIndependentResourceTypesAll.MEDICATIONDISPENSE;
20619        if ("MedicationKnowledge".equals(codeString))
20620          return VersionIndependentResourceTypesAll.MEDICATIONKNOWLEDGE;
20621        if ("MedicationRequest".equals(codeString))
20622          return VersionIndependentResourceTypesAll.MEDICATIONREQUEST;
20623        if ("MedicationStatement".equals(codeString))
20624          return VersionIndependentResourceTypesAll.MEDICATIONSTATEMENT;
20625        if ("MedicinalProductDefinition".equals(codeString))
20626          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTDEFINITION;
20627        if ("MessageDefinition".equals(codeString))
20628          return VersionIndependentResourceTypesAll.MESSAGEDEFINITION;
20629        if ("MessageHeader".equals(codeString))
20630          return VersionIndependentResourceTypesAll.MESSAGEHEADER;
20631        if ("MetadataResource".equals(codeString))
20632          return VersionIndependentResourceTypesAll.METADATARESOURCE;
20633        if ("MolecularSequence".equals(codeString))
20634          return VersionIndependentResourceTypesAll.MOLECULARSEQUENCE;
20635        if ("NamingSystem".equals(codeString))
20636          return VersionIndependentResourceTypesAll.NAMINGSYSTEM;
20637        if ("NutritionIntake".equals(codeString))
20638          return VersionIndependentResourceTypesAll.NUTRITIONINTAKE;
20639        if ("NutritionOrder".equals(codeString))
20640          return VersionIndependentResourceTypesAll.NUTRITIONORDER;
20641        if ("NutritionProduct".equals(codeString))
20642          return VersionIndependentResourceTypesAll.NUTRITIONPRODUCT;
20643        if ("Observation".equals(codeString))
20644          return VersionIndependentResourceTypesAll.OBSERVATION;
20645        if ("ObservationDefinition".equals(codeString))
20646          return VersionIndependentResourceTypesAll.OBSERVATIONDEFINITION;
20647        if ("OperationDefinition".equals(codeString))
20648          return VersionIndependentResourceTypesAll.OPERATIONDEFINITION;
20649        if ("OperationOutcome".equals(codeString))
20650          return VersionIndependentResourceTypesAll.OPERATIONOUTCOME;
20651        if ("Organization".equals(codeString))
20652          return VersionIndependentResourceTypesAll.ORGANIZATION;
20653        if ("OrganizationAffiliation".equals(codeString))
20654          return VersionIndependentResourceTypesAll.ORGANIZATIONAFFILIATION;
20655        if ("PackagedProductDefinition".equals(codeString))
20656          return VersionIndependentResourceTypesAll.PACKAGEDPRODUCTDEFINITION;
20657        if ("Parameters".equals(codeString))
20658          return VersionIndependentResourceTypesAll.PARAMETERS;
20659        if ("Patient".equals(codeString))
20660          return VersionIndependentResourceTypesAll.PATIENT;
20661        if ("PaymentNotice".equals(codeString))
20662          return VersionIndependentResourceTypesAll.PAYMENTNOTICE;
20663        if ("PaymentReconciliation".equals(codeString))
20664          return VersionIndependentResourceTypesAll.PAYMENTRECONCILIATION;
20665        if ("Permission".equals(codeString))
20666          return VersionIndependentResourceTypesAll.PERMISSION;
20667        if ("Person".equals(codeString))
20668          return VersionIndependentResourceTypesAll.PERSON;
20669        if ("PlanDefinition".equals(codeString))
20670          return VersionIndependentResourceTypesAll.PLANDEFINITION;
20671        if ("Practitioner".equals(codeString))
20672          return VersionIndependentResourceTypesAll.PRACTITIONER;
20673        if ("PractitionerRole".equals(codeString))
20674          return VersionIndependentResourceTypesAll.PRACTITIONERROLE;
20675        if ("Procedure".equals(codeString))
20676          return VersionIndependentResourceTypesAll.PROCEDURE;
20677        if ("Provenance".equals(codeString))
20678          return VersionIndependentResourceTypesAll.PROVENANCE;
20679        if ("Questionnaire".equals(codeString))
20680          return VersionIndependentResourceTypesAll.QUESTIONNAIRE;
20681        if ("QuestionnaireResponse".equals(codeString))
20682          return VersionIndependentResourceTypesAll.QUESTIONNAIRERESPONSE;
20683        if ("RegulatedAuthorization".equals(codeString))
20684          return VersionIndependentResourceTypesAll.REGULATEDAUTHORIZATION;
20685        if ("RelatedPerson".equals(codeString))
20686          return VersionIndependentResourceTypesAll.RELATEDPERSON;
20687        if ("RequestOrchestration".equals(codeString))
20688          return VersionIndependentResourceTypesAll.REQUESTORCHESTRATION;
20689        if ("Requirements".equals(codeString))
20690          return VersionIndependentResourceTypesAll.REQUIREMENTS;
20691        if ("ResearchStudy".equals(codeString))
20692          return VersionIndependentResourceTypesAll.RESEARCHSTUDY;
20693        if ("ResearchSubject".equals(codeString))
20694          return VersionIndependentResourceTypesAll.RESEARCHSUBJECT;
20695        if ("Resource".equals(codeString))
20696          return VersionIndependentResourceTypesAll.RESOURCE;
20697        if ("RiskAssessment".equals(codeString))
20698          return VersionIndependentResourceTypesAll.RISKASSESSMENT;
20699        if ("Schedule".equals(codeString))
20700          return VersionIndependentResourceTypesAll.SCHEDULE;
20701        if ("SearchParameter".equals(codeString))
20702          return VersionIndependentResourceTypesAll.SEARCHPARAMETER;
20703        if ("ServiceRequest".equals(codeString))
20704          return VersionIndependentResourceTypesAll.SERVICEREQUEST;
20705        if ("Slot".equals(codeString))
20706          return VersionIndependentResourceTypesAll.SLOT;
20707        if ("Specimen".equals(codeString))
20708          return VersionIndependentResourceTypesAll.SPECIMEN;
20709        if ("SpecimenDefinition".equals(codeString))
20710          return VersionIndependentResourceTypesAll.SPECIMENDEFINITION;
20711        if ("StructureDefinition".equals(codeString))
20712          return VersionIndependentResourceTypesAll.STRUCTUREDEFINITION;
20713        if ("StructureMap".equals(codeString))
20714          return VersionIndependentResourceTypesAll.STRUCTUREMAP;
20715        if ("Subscription".equals(codeString))
20716          return VersionIndependentResourceTypesAll.SUBSCRIPTION;
20717        if ("SubscriptionStatus".equals(codeString))
20718          return VersionIndependentResourceTypesAll.SUBSCRIPTIONSTATUS;
20719        if ("SubscriptionTopic".equals(codeString))
20720          return VersionIndependentResourceTypesAll.SUBSCRIPTIONTOPIC;
20721        if ("Substance".equals(codeString))
20722          return VersionIndependentResourceTypesAll.SUBSTANCE;
20723        if ("SubstanceDefinition".equals(codeString))
20724          return VersionIndependentResourceTypesAll.SUBSTANCEDEFINITION;
20725        if ("SubstanceNucleicAcid".equals(codeString))
20726          return VersionIndependentResourceTypesAll.SUBSTANCENUCLEICACID;
20727        if ("SubstancePolymer".equals(codeString))
20728          return VersionIndependentResourceTypesAll.SUBSTANCEPOLYMER;
20729        if ("SubstanceProtein".equals(codeString))
20730          return VersionIndependentResourceTypesAll.SUBSTANCEPROTEIN;
20731        if ("SubstanceReferenceInformation".equals(codeString))
20732          return VersionIndependentResourceTypesAll.SUBSTANCEREFERENCEINFORMATION;
20733        if ("SubstanceSourceMaterial".equals(codeString))
20734          return VersionIndependentResourceTypesAll.SUBSTANCESOURCEMATERIAL;
20735        if ("SupplyDelivery".equals(codeString))
20736          return VersionIndependentResourceTypesAll.SUPPLYDELIVERY;
20737        if ("SupplyRequest".equals(codeString))
20738          return VersionIndependentResourceTypesAll.SUPPLYREQUEST;
20739        if ("Task".equals(codeString))
20740          return VersionIndependentResourceTypesAll.TASK;
20741        if ("TerminologyCapabilities".equals(codeString))
20742          return VersionIndependentResourceTypesAll.TERMINOLOGYCAPABILITIES;
20743        if ("TestPlan".equals(codeString))
20744          return VersionIndependentResourceTypesAll.TESTPLAN;
20745        if ("TestReport".equals(codeString))
20746          return VersionIndependentResourceTypesAll.TESTREPORT;
20747        if ("TestScript".equals(codeString))
20748          return VersionIndependentResourceTypesAll.TESTSCRIPT;
20749        if ("Transport".equals(codeString))
20750          return VersionIndependentResourceTypesAll.TRANSPORT;
20751        if ("ValueSet".equals(codeString))
20752          return VersionIndependentResourceTypesAll.VALUESET;
20753        if ("VerificationResult".equals(codeString))
20754          return VersionIndependentResourceTypesAll.VERIFICATIONRESULT;
20755        if ("VisionPrescription".equals(codeString))
20756          return VersionIndependentResourceTypesAll.VISIONPRESCRIPTION;
20757        if ("BodySite".equals(codeString))
20758          return VersionIndependentResourceTypesAll.BODYSITE;
20759        if ("CatalogEntry".equals(codeString))
20760          return VersionIndependentResourceTypesAll.CATALOGENTRY;
20761        if ("Conformance".equals(codeString))
20762          return VersionIndependentResourceTypesAll.CONFORMANCE;
20763        if ("DataElement".equals(codeString))
20764          return VersionIndependentResourceTypesAll.DATAELEMENT;
20765        if ("DeviceComponent".equals(codeString))
20766          return VersionIndependentResourceTypesAll.DEVICECOMPONENT;
20767        if ("DeviceUseRequest".equals(codeString))
20768          return VersionIndependentResourceTypesAll.DEVICEUSEREQUEST;
20769        if ("DeviceUseStatement".equals(codeString))
20770          return VersionIndependentResourceTypesAll.DEVICEUSESTATEMENT;
20771        if ("DiagnosticOrder".equals(codeString))
20772          return VersionIndependentResourceTypesAll.DIAGNOSTICORDER;
20773        if ("DocumentManifest".equals(codeString))
20774          return VersionIndependentResourceTypesAll.DOCUMENTMANIFEST;
20775        if ("EffectEvidenceSynthesis".equals(codeString))
20776          return VersionIndependentResourceTypesAll.EFFECTEVIDENCESYNTHESIS;
20777        if ("EligibilityRequest".equals(codeString))
20778          return VersionIndependentResourceTypesAll.ELIGIBILITYREQUEST;
20779        if ("EligibilityResponse".equals(codeString))
20780          return VersionIndependentResourceTypesAll.ELIGIBILITYRESPONSE;
20781        if ("ExpansionProfile".equals(codeString))
20782          return VersionIndependentResourceTypesAll.EXPANSIONPROFILE;
20783        if ("ImagingManifest".equals(codeString))
20784          return VersionIndependentResourceTypesAll.IMAGINGMANIFEST;
20785        if ("ImagingObjectSelection".equals(codeString))
20786          return VersionIndependentResourceTypesAll.IMAGINGOBJECTSELECTION;
20787        if ("Media".equals(codeString))
20788          return VersionIndependentResourceTypesAll.MEDIA;
20789        if ("MedicationOrder".equals(codeString))
20790          return VersionIndependentResourceTypesAll.MEDICATIONORDER;
20791        if ("MedicationUsage".equals(codeString))
20792          return VersionIndependentResourceTypesAll.MEDICATIONUSAGE;
20793        if ("MedicinalProduct".equals(codeString))
20794          return VersionIndependentResourceTypesAll.MEDICINALPRODUCT;
20795        if ("MedicinalProductAuthorization".equals(codeString))
20796          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTAUTHORIZATION;
20797        if ("MedicinalProductContraindication".equals(codeString))
20798          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTCONTRAINDICATION;
20799        if ("MedicinalProductIndication".equals(codeString))
20800          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTINDICATION;
20801        if ("MedicinalProductIngredient".equals(codeString))
20802          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTINGREDIENT;
20803        if ("MedicinalProductInteraction".equals(codeString))
20804          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTINTERACTION;
20805        if ("MedicinalProductManufactured".equals(codeString))
20806          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTMANUFACTURED;
20807        if ("MedicinalProductPackaged".equals(codeString))
20808          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTPACKAGED;
20809        if ("MedicinalProductPharmaceutical".equals(codeString))
20810          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTPHARMACEUTICAL;
20811        if ("MedicinalProductUndesirableEffect".equals(codeString))
20812          return VersionIndependentResourceTypesAll.MEDICINALPRODUCTUNDESIRABLEEFFECT;
20813        if ("Order".equals(codeString))
20814          return VersionIndependentResourceTypesAll.ORDER;
20815        if ("OrderResponse".equals(codeString))
20816          return VersionIndependentResourceTypesAll.ORDERRESPONSE;
20817        if ("ProcedureRequest".equals(codeString))
20818          return VersionIndependentResourceTypesAll.PROCEDUREREQUEST;
20819        if ("ProcessRequest".equals(codeString))
20820          return VersionIndependentResourceTypesAll.PROCESSREQUEST;
20821        if ("ProcessResponse".equals(codeString))
20822          return VersionIndependentResourceTypesAll.PROCESSRESPONSE;
20823        if ("ReferralRequest".equals(codeString))
20824          return VersionIndependentResourceTypesAll.REFERRALREQUEST;
20825        if ("RequestGroup".equals(codeString))
20826          return VersionIndependentResourceTypesAll.REQUESTGROUP;
20827        if ("ResearchDefinition".equals(codeString))
20828          return VersionIndependentResourceTypesAll.RESEARCHDEFINITION;
20829        if ("ResearchElementDefinition".equals(codeString))
20830          return VersionIndependentResourceTypesAll.RESEARCHELEMENTDEFINITION;
20831        if ("RiskEvidenceSynthesis".equals(codeString))
20832          return VersionIndependentResourceTypesAll.RISKEVIDENCESYNTHESIS;
20833        if ("Sequence".equals(codeString))
20834          return VersionIndependentResourceTypesAll.SEQUENCE;
20835        if ("ServiceDefinition".equals(codeString))
20836          return VersionIndependentResourceTypesAll.SERVICEDEFINITION;
20837      if ("SubstanceSpecification".equals(codeString))
20838        return VersionIndependentResourceTypesAll.SUBSTANCESPECIFICATION;
20839      if ("MolecularDefinition".equals(codeString))
20840        return VersionIndependentResourceTypesAll.MOLECULARDEFINITION;
20841      if ("ClinicalAssessment".equals(codeString))
20842        return VersionIndependentResourceTypesAll.CLINICALASSESSMENT;
20843        throw new IllegalArgumentException("Unknown VersionIndependentResourceTypesAll code '"+codeString+"'");
20844        }
20845
20846        public Enumeration<VersionIndependentResourceTypesAll> fromType(PrimitiveType<?> code) throws FHIRException {
20847          if (code == null)
20848            return null;
20849          if (code.isEmpty())
20850            return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.NULL, code);
20851          String codeString = ((PrimitiveType) code).asStringValue();
20852          if (codeString == null || "".equals(codeString))
20853            return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.NULL, code);
20854        if ("Account".equals(codeString))
20855          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ACCOUNT, code);
20856        if ("ActivityDefinition".equals(codeString))
20857          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ACTIVITYDEFINITION, code);
20858        if ("ActorDefinition".equals(codeString))
20859          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ACTORDEFINITION, code);
20860        if ("AdministrableProductDefinition".equals(codeString))
20861          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ADMINISTRABLEPRODUCTDEFINITION, code);
20862        if ("AdverseEvent".equals(codeString))
20863          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ADVERSEEVENT, code);
20864        if ("AllergyIntolerance".equals(codeString))
20865          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ALLERGYINTOLERANCE, code);
20866        if ("Appointment".equals(codeString))
20867          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.APPOINTMENT, code);
20868        if ("AppointmentResponse".equals(codeString))
20869          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.APPOINTMENTRESPONSE, code);
20870        if ("ArtifactAssessment".equals(codeString))
20871          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ARTIFACTASSESSMENT, code);
20872        if ("AuditEvent".equals(codeString))
20873          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.AUDITEVENT, code);
20874        if ("Basic".equals(codeString))
20875          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.BASIC, code);
20876        if ("Binary".equals(codeString))
20877          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.BINARY, code);
20878        if ("BiologicallyDerivedProduct".equals(codeString))
20879          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.BIOLOGICALLYDERIVEDPRODUCT, code);
20880        if ("BiologicallyDerivedProductDispense".equals(codeString))
20881          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.BIOLOGICALLYDERIVEDPRODUCTDISPENSE, code);
20882        if ("BodyStructure".equals(codeString))
20883          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.BODYSTRUCTURE, code);
20884        if ("Bundle".equals(codeString))
20885          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.BUNDLE, code);
20886        if ("CanonicalResource".equals(codeString))
20887          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CANONICALRESOURCE, code);
20888        if ("CapabilityStatement".equals(codeString))
20889          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CAPABILITYSTATEMENT, code);
20890        if ("CarePlan".equals(codeString))
20891          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CAREPLAN, code);
20892        if ("CareTeam".equals(codeString))
20893          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CARETEAM, code);
20894        if ("ChargeItem".equals(codeString))
20895          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CHARGEITEM, code);
20896        if ("ChargeItemDefinition".equals(codeString))
20897          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CHARGEITEMDEFINITION, code);
20898        if ("Citation".equals(codeString))
20899          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CITATION, code);
20900        if ("Claim".equals(codeString))
20901          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CLAIM, code);
20902        if ("ClaimResponse".equals(codeString))
20903          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CLAIMRESPONSE, code);
20904        if ("ClinicalImpression".equals(codeString))
20905          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CLINICALIMPRESSION, code);
20906        if ("ClinicalUseDefinition".equals(codeString))
20907          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CLINICALUSEDEFINITION, code);
20908        if ("CodeSystem".equals(codeString))
20909          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CODESYSTEM, code);
20910        if ("Communication".equals(codeString))
20911          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.COMMUNICATION, code);
20912        if ("CommunicationRequest".equals(codeString))
20913          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.COMMUNICATIONREQUEST, code);
20914        if ("CompartmentDefinition".equals(codeString))
20915          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.COMPARTMENTDEFINITION, code);
20916        if ("Composition".equals(codeString))
20917          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.COMPOSITION, code);
20918        if ("ConceptMap".equals(codeString))
20919          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CONCEPTMAP, code);
20920        if ("Condition".equals(codeString))
20921          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CONDITION, code);
20922        if ("ConditionDefinition".equals(codeString))
20923          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CONDITIONDEFINITION, code);
20924        if ("Consent".equals(codeString))
20925          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CONSENT, code);
20926        if ("Contract".equals(codeString))
20927          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CONTRACT, code);
20928        if ("Coverage".equals(codeString))
20929          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.COVERAGE, code);
20930        if ("CoverageEligibilityRequest".equals(codeString))
20931          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.COVERAGEELIGIBILITYREQUEST, code);
20932        if ("CoverageEligibilityResponse".equals(codeString))
20933          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.COVERAGEELIGIBILITYRESPONSE, code);
20934        if ("DetectedIssue".equals(codeString))
20935          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DETECTEDISSUE, code);
20936        if ("Device".equals(codeString))
20937          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICE, code);
20938        if ("DeviceAssociation".equals(codeString))
20939          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEASSOCIATION, code);
20940        if ("DeviceDefinition".equals(codeString))
20941          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEDEFINITION, code);
20942        if ("DeviceDispense".equals(codeString))
20943          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEDISPENSE, code);
20944        if ("DeviceMetric".equals(codeString))
20945          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEMETRIC, code);
20946        if ("DeviceRequest".equals(codeString))
20947          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEREQUEST, code);
20948        if ("DeviceUsage".equals(codeString))
20949          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEUSAGE, code);
20950        if ("DiagnosticReport".equals(codeString))
20951          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DIAGNOSTICREPORT, code);
20952        if ("DocumentReference".equals(codeString))
20953          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DOCUMENTREFERENCE, code);
20954        if ("DomainResource".equals(codeString))
20955          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DOMAINRESOURCE, code);
20956        if ("Encounter".equals(codeString))
20957          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ENCOUNTER, code);
20958        if ("EncounterHistory".equals(codeString))
20959          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ENCOUNTERHISTORY, code);
20960        if ("Endpoint".equals(codeString))
20961          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ENDPOINT, code);
20962        if ("EnrollmentRequest".equals(codeString))
20963          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ENROLLMENTREQUEST, code);
20964        if ("EnrollmentResponse".equals(codeString))
20965          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ENROLLMENTRESPONSE, code);
20966        if ("EpisodeOfCare".equals(codeString))
20967          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EPISODEOFCARE, code);
20968        if ("EventDefinition".equals(codeString))
20969          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EVENTDEFINITION, code);
20970        if ("Evidence".equals(codeString))
20971          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EVIDENCE, code);
20972        if ("EvidenceReport".equals(codeString))
20973          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EVIDENCEREPORT, code);
20974        if ("EvidenceVariable".equals(codeString))
20975          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EVIDENCEVARIABLE, code);
20976        if ("ExampleScenario".equals(codeString))
20977          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EXAMPLESCENARIO, code);
20978        if ("ExplanationOfBenefit".equals(codeString))
20979          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EXPLANATIONOFBENEFIT, code);
20980        if ("FamilyMemberHistory".equals(codeString))
20981          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.FAMILYMEMBERHISTORY, code);
20982        if ("Flag".equals(codeString))
20983          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.FLAG, code);
20984        if ("FormularyItem".equals(codeString))
20985          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.FORMULARYITEM, code);
20986        if ("GenomicStudy".equals(codeString))
20987          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.GENOMICSTUDY, code);
20988        if ("Goal".equals(codeString))
20989          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.GOAL, code);
20990        if ("GraphDefinition".equals(codeString))
20991          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.GRAPHDEFINITION, code);
20992        if ("Group".equals(codeString))
20993          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.GROUP, code);
20994        if ("GuidanceResponse".equals(codeString))
20995          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.GUIDANCERESPONSE, code);
20996        if ("HealthcareService".equals(codeString))
20997          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.HEALTHCARESERVICE, code);
20998        if ("ImagingSelection".equals(codeString))
20999          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMAGINGSELECTION, code);
21000        if ("ImagingStudy".equals(codeString))
21001          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMAGINGSTUDY, code);
21002        if ("Immunization".equals(codeString))
21003          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMMUNIZATION, code);
21004        if ("ImmunizationEvaluation".equals(codeString))
21005          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMMUNIZATIONEVALUATION, code);
21006        if ("ImmunizationRecommendation".equals(codeString))
21007          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMMUNIZATIONRECOMMENDATION, code);
21008        if ("ImplementationGuide".equals(codeString))
21009          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMPLEMENTATIONGUIDE, code);
21010        if ("Ingredient".equals(codeString))
21011          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.INGREDIENT, code);
21012        if ("InsurancePlan".equals(codeString))
21013          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.INSURANCEPLAN, code);
21014        if ("InventoryItem".equals(codeString))
21015          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.INVENTORYITEM, code);
21016        if ("InventoryReport".equals(codeString))
21017          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.INVENTORYREPORT, code);
21018        if ("Invoice".equals(codeString))
21019          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.INVOICE, code);
21020        if ("Library".equals(codeString))
21021          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.LIBRARY, code);
21022        if ("Linkage".equals(codeString))
21023          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.LINKAGE, code);
21024        if ("List".equals(codeString))
21025          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.LIST, code);
21026        if ("Location".equals(codeString))
21027          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.LOCATION, code);
21028        if ("ManufacturedItemDefinition".equals(codeString))
21029          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MANUFACTUREDITEMDEFINITION, code);
21030        if ("Measure".equals(codeString))
21031          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEASURE, code);
21032        if ("MeasureReport".equals(codeString))
21033          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEASUREREPORT, code);
21034        if ("Medication".equals(codeString))
21035          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATION, code);
21036        if ("MedicationAdministration".equals(codeString))
21037          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATIONADMINISTRATION, code);
21038        if ("MedicationDispense".equals(codeString))
21039          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATIONDISPENSE, code);
21040        if ("MedicationKnowledge".equals(codeString))
21041          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATIONKNOWLEDGE, code);
21042        if ("MedicationRequest".equals(codeString))
21043          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATIONREQUEST, code);
21044        if ("MedicationStatement".equals(codeString))
21045          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATIONSTATEMENT, code);
21046        if ("MedicinalProductDefinition".equals(codeString))
21047          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTDEFINITION, code);
21048        if ("MessageDefinition".equals(codeString))
21049          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MESSAGEDEFINITION, code);
21050        if ("MessageHeader".equals(codeString))
21051          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MESSAGEHEADER, code);
21052        if ("MetadataResource".equals(codeString))
21053          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.METADATARESOURCE, code);
21054        if ("MolecularSequence".equals(codeString))
21055          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MOLECULARSEQUENCE, code);
21056        if ("NamingSystem".equals(codeString))
21057          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.NAMINGSYSTEM, code);
21058        if ("NutritionIntake".equals(codeString))
21059          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.NUTRITIONINTAKE, code);
21060        if ("NutritionOrder".equals(codeString))
21061          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.NUTRITIONORDER, code);
21062        if ("NutritionProduct".equals(codeString))
21063          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.NUTRITIONPRODUCT, code);
21064        if ("Observation".equals(codeString))
21065          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.OBSERVATION, code);
21066        if ("ObservationDefinition".equals(codeString))
21067          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.OBSERVATIONDEFINITION, code);
21068        if ("OperationDefinition".equals(codeString))
21069          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.OPERATIONDEFINITION, code);
21070        if ("OperationOutcome".equals(codeString))
21071          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.OPERATIONOUTCOME, code);
21072        if ("Organization".equals(codeString))
21073          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ORGANIZATION, code);
21074        if ("OrganizationAffiliation".equals(codeString))
21075          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ORGANIZATIONAFFILIATION, code);
21076        if ("PackagedProductDefinition".equals(codeString))
21077          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PACKAGEDPRODUCTDEFINITION, code);
21078        if ("Parameters".equals(codeString))
21079          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PARAMETERS, code);
21080        if ("Patient".equals(codeString))
21081          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PATIENT, code);
21082        if ("PaymentNotice".equals(codeString))
21083          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PAYMENTNOTICE, code);
21084        if ("PaymentReconciliation".equals(codeString))
21085          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PAYMENTRECONCILIATION, code);
21086        if ("Permission".equals(codeString))
21087          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PERMISSION, code);
21088        if ("Person".equals(codeString))
21089          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PERSON, code);
21090        if ("PlanDefinition".equals(codeString))
21091          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PLANDEFINITION, code);
21092        if ("Practitioner".equals(codeString))
21093          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PRACTITIONER, code);
21094        if ("PractitionerRole".equals(codeString))
21095          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PRACTITIONERROLE, code);
21096        if ("Procedure".equals(codeString))
21097          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PROCEDURE, code);
21098        if ("Provenance".equals(codeString))
21099          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PROVENANCE, code);
21100        if ("Questionnaire".equals(codeString))
21101          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.QUESTIONNAIRE, code);
21102        if ("QuestionnaireResponse".equals(codeString))
21103          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.QUESTIONNAIRERESPONSE, code);
21104        if ("RegulatedAuthorization".equals(codeString))
21105          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.REGULATEDAUTHORIZATION, code);
21106        if ("RelatedPerson".equals(codeString))
21107          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RELATEDPERSON, code);
21108        if ("RequestOrchestration".equals(codeString))
21109          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.REQUESTORCHESTRATION, code);
21110        if ("Requirements".equals(codeString))
21111          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.REQUIREMENTS, code);
21112        if ("ResearchStudy".equals(codeString))
21113          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RESEARCHSTUDY, code);
21114        if ("ResearchSubject".equals(codeString))
21115          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RESEARCHSUBJECT, code);
21116        if ("Resource".equals(codeString))
21117          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RESOURCE, code);
21118        if ("RiskAssessment".equals(codeString))
21119          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RISKASSESSMENT, code);
21120        if ("Schedule".equals(codeString))
21121          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SCHEDULE, code);
21122        if ("SearchParameter".equals(codeString))
21123          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SEARCHPARAMETER, code);
21124        if ("ServiceRequest".equals(codeString))
21125          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SERVICEREQUEST, code);
21126        if ("Slot".equals(codeString))
21127          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SLOT, code);
21128        if ("Specimen".equals(codeString))
21129          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SPECIMEN, code);
21130        if ("SpecimenDefinition".equals(codeString))
21131          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SPECIMENDEFINITION, code);
21132        if ("StructureDefinition".equals(codeString))
21133          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.STRUCTUREDEFINITION, code);
21134        if ("StructureMap".equals(codeString))
21135          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.STRUCTUREMAP, code);
21136        if ("Subscription".equals(codeString))
21137          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSCRIPTION, code);
21138        if ("SubscriptionStatus".equals(codeString))
21139          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSCRIPTIONSTATUS, code);
21140        if ("SubscriptionTopic".equals(codeString))
21141          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSCRIPTIONTOPIC, code);
21142        if ("Substance".equals(codeString))
21143          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCE, code);
21144        if ("SubstanceDefinition".equals(codeString))
21145          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCEDEFINITION, code);
21146        if ("SubstanceNucleicAcid".equals(codeString))
21147          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCENUCLEICACID, code);
21148        if ("SubstancePolymer".equals(codeString))
21149          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCEPOLYMER, code);
21150        if ("SubstanceProtein".equals(codeString))
21151          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCEPROTEIN, code);
21152        if ("SubstanceReferenceInformation".equals(codeString))
21153          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCEREFERENCEINFORMATION, code);
21154        if ("SubstanceSourceMaterial".equals(codeString))
21155          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCESOURCEMATERIAL, code);
21156        if ("SupplyDelivery".equals(codeString))
21157          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUPPLYDELIVERY, code);
21158        if ("SupplyRequest".equals(codeString))
21159          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUPPLYREQUEST, code);
21160        if ("Task".equals(codeString))
21161          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.TASK, code);
21162        if ("TerminologyCapabilities".equals(codeString))
21163          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.TERMINOLOGYCAPABILITIES, code);
21164        if ("TestPlan".equals(codeString))
21165          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.TESTPLAN, code);
21166        if ("TestReport".equals(codeString))
21167          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.TESTREPORT, code);
21168        if ("TestScript".equals(codeString))
21169          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.TESTSCRIPT, code);
21170        if ("Transport".equals(codeString))
21171          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.TRANSPORT, code);
21172        if ("ValueSet".equals(codeString))
21173          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.VALUESET, code);
21174        if ("VerificationResult".equals(codeString))
21175          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.VERIFICATIONRESULT, code);
21176        if ("VisionPrescription".equals(codeString))
21177          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.VISIONPRESCRIPTION, code);
21178        if ("BodySite".equals(codeString))
21179          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.BODYSITE, code);
21180        if ("CatalogEntry".equals(codeString))
21181          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CATALOGENTRY, code);
21182        if ("Conformance".equals(codeString))
21183          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CONFORMANCE, code);
21184        if ("DataElement".equals(codeString))
21185          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DATAELEMENT, code);
21186        if ("DeviceComponent".equals(codeString))
21187          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICECOMPONENT, code);
21188        if ("DeviceUseRequest".equals(codeString))
21189          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEUSEREQUEST, code);
21190        if ("DeviceUseStatement".equals(codeString))
21191          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DEVICEUSESTATEMENT, code);
21192        if ("DiagnosticOrder".equals(codeString))
21193          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DIAGNOSTICORDER, code);
21194        if ("DocumentManifest".equals(codeString))
21195          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.DOCUMENTMANIFEST, code);
21196        if ("EffectEvidenceSynthesis".equals(codeString))
21197          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EFFECTEVIDENCESYNTHESIS, code);
21198        if ("EligibilityRequest".equals(codeString))
21199          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ELIGIBILITYREQUEST, code);
21200        if ("EligibilityResponse".equals(codeString))
21201          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ELIGIBILITYRESPONSE, code);
21202        if ("ExpansionProfile".equals(codeString))
21203          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.EXPANSIONPROFILE, code);
21204        if ("ImagingManifest".equals(codeString))
21205          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMAGINGMANIFEST, code);
21206        if ("ImagingObjectSelection".equals(codeString))
21207          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.IMAGINGOBJECTSELECTION, code);
21208        if ("Media".equals(codeString))
21209          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDIA, code);
21210        if ("MedicationOrder".equals(codeString))
21211          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATIONORDER, code);
21212        if ("MedicationUsage".equals(codeString))
21213          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICATIONUSAGE, code);
21214        if ("MedicinalProduct".equals(codeString))
21215          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCT, code);
21216        if ("MedicinalProductAuthorization".equals(codeString))
21217          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTAUTHORIZATION, code);
21218        if ("MedicinalProductContraindication".equals(codeString))
21219          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTCONTRAINDICATION, code);
21220        if ("MedicinalProductIndication".equals(codeString))
21221          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTINDICATION, code);
21222        if ("MedicinalProductIngredient".equals(codeString))
21223          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTINGREDIENT, code);
21224        if ("MedicinalProductInteraction".equals(codeString))
21225          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTINTERACTION, code);
21226        if ("MedicinalProductManufactured".equals(codeString))
21227          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTMANUFACTURED, code);
21228        if ("MedicinalProductPackaged".equals(codeString))
21229          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTPACKAGED, code);
21230        if ("MedicinalProductPharmaceutical".equals(codeString))
21231          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTPHARMACEUTICAL, code);
21232        if ("MedicinalProductUndesirableEffect".equals(codeString))
21233          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MEDICINALPRODUCTUNDESIRABLEEFFECT, code);
21234        if ("Order".equals(codeString))
21235          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ORDER, code);
21236        if ("OrderResponse".equals(codeString))
21237          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.ORDERRESPONSE, code);
21238        if ("ProcedureRequest".equals(codeString))
21239          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PROCEDUREREQUEST, code);
21240        if ("ProcessRequest".equals(codeString))
21241          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PROCESSREQUEST, code);
21242        if ("ProcessResponse".equals(codeString))
21243          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.PROCESSRESPONSE, code);
21244        if ("ReferralRequest".equals(codeString))
21245          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.REFERRALREQUEST, code);
21246        if ("RequestGroup".equals(codeString))
21247          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.REQUESTGROUP, code);
21248        if ("ResearchDefinition".equals(codeString))
21249          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RESEARCHDEFINITION, code);
21250        if ("ResearchElementDefinition".equals(codeString))
21251          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RESEARCHELEMENTDEFINITION, code);
21252        if ("RiskEvidenceSynthesis".equals(codeString))
21253          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.RISKEVIDENCESYNTHESIS, code);
21254        if ("Sequence".equals(codeString))
21255          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SEQUENCE, code);
21256        if ("ServiceDefinition".equals(codeString))
21257          return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SERVICEDEFINITION, code);
21258          if ("SubstanceSpecification".equals(codeString))
21259            return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.SUBSTANCESPECIFICATION, code);
21260          if ("MolecularDefinition".equals(codeString))
21261            return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.MOLECULARDEFINITION, code);
21262          if ("ClinicalAssessment".equals(codeString))
21263            return new Enumeration<VersionIndependentResourceTypesAll>(this, VersionIndependentResourceTypesAll.CLINICALASSESSMENT, code);
21264        throw new FHIRException("Unknown VersionIndependentResourceTypesAll code '"+codeString+"'");
21265        }
21266    public String toCode(VersionIndependentResourceTypesAll code) {
21267       if (code == VersionIndependentResourceTypesAll.NULL)
21268           return null;
21269       if (code == VersionIndependentResourceTypesAll.ACCOUNT)
21270        return "Account";
21271      if (code == VersionIndependentResourceTypesAll.ACTIVITYDEFINITION)
21272        return "ActivityDefinition";
21273      if (code == VersionIndependentResourceTypesAll.ACTORDEFINITION)
21274        return "ActorDefinition";
21275      if (code == VersionIndependentResourceTypesAll.ADMINISTRABLEPRODUCTDEFINITION)
21276        return "AdministrableProductDefinition";
21277      if (code == VersionIndependentResourceTypesAll.ADVERSEEVENT)
21278        return "AdverseEvent";
21279      if (code == VersionIndependentResourceTypesAll.ALLERGYINTOLERANCE)
21280        return "AllergyIntolerance";
21281      if (code == VersionIndependentResourceTypesAll.APPOINTMENT)
21282        return "Appointment";
21283      if (code == VersionIndependentResourceTypesAll.APPOINTMENTRESPONSE)
21284        return "AppointmentResponse";
21285      if (code == VersionIndependentResourceTypesAll.ARTIFACTASSESSMENT)
21286        return "ArtifactAssessment";
21287      if (code == VersionIndependentResourceTypesAll.AUDITEVENT)
21288        return "AuditEvent";
21289      if (code == VersionIndependentResourceTypesAll.BASIC)
21290        return "Basic";
21291      if (code == VersionIndependentResourceTypesAll.BINARY)
21292        return "Binary";
21293      if (code == VersionIndependentResourceTypesAll.BIOLOGICALLYDERIVEDPRODUCT)
21294        return "BiologicallyDerivedProduct";
21295      if (code == VersionIndependentResourceTypesAll.BIOLOGICALLYDERIVEDPRODUCTDISPENSE)
21296        return "BiologicallyDerivedProductDispense";
21297      if (code == VersionIndependentResourceTypesAll.BODYSTRUCTURE)
21298        return "BodyStructure";
21299      if (code == VersionIndependentResourceTypesAll.BUNDLE)
21300        return "Bundle";
21301      if (code == VersionIndependentResourceTypesAll.CANONICALRESOURCE)
21302        return "CanonicalResource";
21303      if (code == VersionIndependentResourceTypesAll.CAPABILITYSTATEMENT)
21304        return "CapabilityStatement";
21305      if (code == VersionIndependentResourceTypesAll.CAREPLAN)
21306        return "CarePlan";
21307      if (code == VersionIndependentResourceTypesAll.CARETEAM)
21308        return "CareTeam";
21309      if (code == VersionIndependentResourceTypesAll.CHARGEITEM)
21310        return "ChargeItem";
21311      if (code == VersionIndependentResourceTypesAll.CHARGEITEMDEFINITION)
21312        return "ChargeItemDefinition";
21313      if (code == VersionIndependentResourceTypesAll.CITATION)
21314        return "Citation";
21315      if (code == VersionIndependentResourceTypesAll.CLAIM)
21316        return "Claim";
21317      if (code == VersionIndependentResourceTypesAll.CLAIMRESPONSE)
21318        return "ClaimResponse";
21319      if (code == VersionIndependentResourceTypesAll.CLINICALIMPRESSION)
21320        return "ClinicalImpression";
21321      if (code == VersionIndependentResourceTypesAll.CLINICALUSEDEFINITION)
21322        return "ClinicalUseDefinition";
21323      if (code == VersionIndependentResourceTypesAll.CODESYSTEM)
21324        return "CodeSystem";
21325      if (code == VersionIndependentResourceTypesAll.COMMUNICATION)
21326        return "Communication";
21327      if (code == VersionIndependentResourceTypesAll.COMMUNICATIONREQUEST)
21328        return "CommunicationRequest";
21329      if (code == VersionIndependentResourceTypesAll.COMPARTMENTDEFINITION)
21330        return "CompartmentDefinition";
21331      if (code == VersionIndependentResourceTypesAll.COMPOSITION)
21332        return "Composition";
21333      if (code == VersionIndependentResourceTypesAll.CONCEPTMAP)
21334        return "ConceptMap";
21335      if (code == VersionIndependentResourceTypesAll.CONDITION)
21336        return "Condition";
21337      if (code == VersionIndependentResourceTypesAll.CONDITIONDEFINITION)
21338        return "ConditionDefinition";
21339      if (code == VersionIndependentResourceTypesAll.CONSENT)
21340        return "Consent";
21341      if (code == VersionIndependentResourceTypesAll.CONTRACT)
21342        return "Contract";
21343      if (code == VersionIndependentResourceTypesAll.COVERAGE)
21344        return "Coverage";
21345      if (code == VersionIndependentResourceTypesAll.COVERAGEELIGIBILITYREQUEST)
21346        return "CoverageEligibilityRequest";
21347      if (code == VersionIndependentResourceTypesAll.COVERAGEELIGIBILITYRESPONSE)
21348        return "CoverageEligibilityResponse";
21349      if (code == VersionIndependentResourceTypesAll.DETECTEDISSUE)
21350        return "DetectedIssue";
21351      if (code == VersionIndependentResourceTypesAll.DEVICE)
21352        return "Device";
21353      if (code == VersionIndependentResourceTypesAll.DEVICEASSOCIATION)
21354        return "DeviceAssociation";
21355      if (code == VersionIndependentResourceTypesAll.DEVICEDEFINITION)
21356        return "DeviceDefinition";
21357      if (code == VersionIndependentResourceTypesAll.DEVICEDISPENSE)
21358        return "DeviceDispense";
21359      if (code == VersionIndependentResourceTypesAll.DEVICEMETRIC)
21360        return "DeviceMetric";
21361      if (code == VersionIndependentResourceTypesAll.DEVICEREQUEST)
21362        return "DeviceRequest";
21363      if (code == VersionIndependentResourceTypesAll.DEVICEUSAGE)
21364        return "DeviceUsage";
21365      if (code == VersionIndependentResourceTypesAll.DIAGNOSTICREPORT)
21366        return "DiagnosticReport";
21367      if (code == VersionIndependentResourceTypesAll.DOCUMENTREFERENCE)
21368        return "DocumentReference";
21369      if (code == VersionIndependentResourceTypesAll.DOMAINRESOURCE)
21370        return "DomainResource";
21371      if (code == VersionIndependentResourceTypesAll.ENCOUNTER)
21372        return "Encounter";
21373      if (code == VersionIndependentResourceTypesAll.ENCOUNTERHISTORY)
21374        return "EncounterHistory";
21375      if (code == VersionIndependentResourceTypesAll.ENDPOINT)
21376        return "Endpoint";
21377      if (code == VersionIndependentResourceTypesAll.ENROLLMENTREQUEST)
21378        return "EnrollmentRequest";
21379      if (code == VersionIndependentResourceTypesAll.ENROLLMENTRESPONSE)
21380        return "EnrollmentResponse";
21381      if (code == VersionIndependentResourceTypesAll.EPISODEOFCARE)
21382        return "EpisodeOfCare";
21383      if (code == VersionIndependentResourceTypesAll.EVENTDEFINITION)
21384        return "EventDefinition";
21385      if (code == VersionIndependentResourceTypesAll.EVIDENCE)
21386        return "Evidence";
21387      if (code == VersionIndependentResourceTypesAll.EVIDENCEREPORT)
21388        return "EvidenceReport";
21389      if (code == VersionIndependentResourceTypesAll.EVIDENCEVARIABLE)
21390        return "EvidenceVariable";
21391      if (code == VersionIndependentResourceTypesAll.EXAMPLESCENARIO)
21392        return "ExampleScenario";
21393      if (code == VersionIndependentResourceTypesAll.EXPLANATIONOFBENEFIT)
21394        return "ExplanationOfBenefit";
21395      if (code == VersionIndependentResourceTypesAll.FAMILYMEMBERHISTORY)
21396        return "FamilyMemberHistory";
21397      if (code == VersionIndependentResourceTypesAll.FLAG)
21398        return "Flag";
21399      if (code == VersionIndependentResourceTypesAll.FORMULARYITEM)
21400        return "FormularyItem";
21401      if (code == VersionIndependentResourceTypesAll.GENOMICSTUDY)
21402        return "GenomicStudy";
21403      if (code == VersionIndependentResourceTypesAll.GOAL)
21404        return "Goal";
21405      if (code == VersionIndependentResourceTypesAll.GRAPHDEFINITION)
21406        return "GraphDefinition";
21407      if (code == VersionIndependentResourceTypesAll.GROUP)
21408        return "Group";
21409      if (code == VersionIndependentResourceTypesAll.GUIDANCERESPONSE)
21410        return "GuidanceResponse";
21411      if (code == VersionIndependentResourceTypesAll.HEALTHCARESERVICE)
21412        return "HealthcareService";
21413      if (code == VersionIndependentResourceTypesAll.IMAGINGSELECTION)
21414        return "ImagingSelection";
21415      if (code == VersionIndependentResourceTypesAll.IMAGINGSTUDY)
21416        return "ImagingStudy";
21417      if (code == VersionIndependentResourceTypesAll.IMMUNIZATION)
21418        return "Immunization";
21419      if (code == VersionIndependentResourceTypesAll.IMMUNIZATIONEVALUATION)
21420        return "ImmunizationEvaluation";
21421      if (code == VersionIndependentResourceTypesAll.IMMUNIZATIONRECOMMENDATION)
21422        return "ImmunizationRecommendation";
21423      if (code == VersionIndependentResourceTypesAll.IMPLEMENTATIONGUIDE)
21424        return "ImplementationGuide";
21425      if (code == VersionIndependentResourceTypesAll.INGREDIENT)
21426        return "Ingredient";
21427      if (code == VersionIndependentResourceTypesAll.INSURANCEPLAN)
21428        return "InsurancePlan";
21429      if (code == VersionIndependentResourceTypesAll.INVENTORYITEM)
21430        return "InventoryItem";
21431      if (code == VersionIndependentResourceTypesAll.INVENTORYREPORT)
21432        return "InventoryReport";
21433      if (code == VersionIndependentResourceTypesAll.INVOICE)
21434        return "Invoice";
21435      if (code == VersionIndependentResourceTypesAll.LIBRARY)
21436        return "Library";
21437      if (code == VersionIndependentResourceTypesAll.LINKAGE)
21438        return "Linkage";
21439      if (code == VersionIndependentResourceTypesAll.LIST)
21440        return "List";
21441      if (code == VersionIndependentResourceTypesAll.LOCATION)
21442        return "Location";
21443      if (code == VersionIndependentResourceTypesAll.MANUFACTUREDITEMDEFINITION)
21444        return "ManufacturedItemDefinition";
21445      if (code == VersionIndependentResourceTypesAll.MEASURE)
21446        return "Measure";
21447      if (code == VersionIndependentResourceTypesAll.MEASUREREPORT)
21448        return "MeasureReport";
21449      if (code == VersionIndependentResourceTypesAll.MEDICATION)
21450        return "Medication";
21451      if (code == VersionIndependentResourceTypesAll.MEDICATIONADMINISTRATION)
21452        return "MedicationAdministration";
21453      if (code == VersionIndependentResourceTypesAll.MEDICATIONDISPENSE)
21454        return "MedicationDispense";
21455      if (code == VersionIndependentResourceTypesAll.MEDICATIONKNOWLEDGE)
21456        return "MedicationKnowledge";
21457      if (code == VersionIndependentResourceTypesAll.MEDICATIONREQUEST)
21458        return "MedicationRequest";
21459      if (code == VersionIndependentResourceTypesAll.MEDICATIONSTATEMENT)
21460        return "MedicationStatement";
21461      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTDEFINITION)
21462        return "MedicinalProductDefinition";
21463      if (code == VersionIndependentResourceTypesAll.MESSAGEDEFINITION)
21464        return "MessageDefinition";
21465      if (code == VersionIndependentResourceTypesAll.MESSAGEHEADER)
21466        return "MessageHeader";
21467      if (code == VersionIndependentResourceTypesAll.METADATARESOURCE)
21468        return "MetadataResource";
21469      if (code == VersionIndependentResourceTypesAll.MOLECULARSEQUENCE)
21470        return "MolecularSequence";
21471      if (code == VersionIndependentResourceTypesAll.NAMINGSYSTEM)
21472        return "NamingSystem";
21473      if (code == VersionIndependentResourceTypesAll.NUTRITIONINTAKE)
21474        return "NutritionIntake";
21475      if (code == VersionIndependentResourceTypesAll.NUTRITIONORDER)
21476        return "NutritionOrder";
21477      if (code == VersionIndependentResourceTypesAll.NUTRITIONPRODUCT)
21478        return "NutritionProduct";
21479      if (code == VersionIndependentResourceTypesAll.OBSERVATION)
21480        return "Observation";
21481      if (code == VersionIndependentResourceTypesAll.OBSERVATIONDEFINITION)
21482        return "ObservationDefinition";
21483      if (code == VersionIndependentResourceTypesAll.OPERATIONDEFINITION)
21484        return "OperationDefinition";
21485      if (code == VersionIndependentResourceTypesAll.OPERATIONOUTCOME)
21486        return "OperationOutcome";
21487      if (code == VersionIndependentResourceTypesAll.ORGANIZATION)
21488        return "Organization";
21489      if (code == VersionIndependentResourceTypesAll.ORGANIZATIONAFFILIATION)
21490        return "OrganizationAffiliation";
21491      if (code == VersionIndependentResourceTypesAll.PACKAGEDPRODUCTDEFINITION)
21492        return "PackagedProductDefinition";
21493      if (code == VersionIndependentResourceTypesAll.PARAMETERS)
21494        return "Parameters";
21495      if (code == VersionIndependentResourceTypesAll.PATIENT)
21496        return "Patient";
21497      if (code == VersionIndependentResourceTypesAll.PAYMENTNOTICE)
21498        return "PaymentNotice";
21499      if (code == VersionIndependentResourceTypesAll.PAYMENTRECONCILIATION)
21500        return "PaymentReconciliation";
21501      if (code == VersionIndependentResourceTypesAll.PERMISSION)
21502        return "Permission";
21503      if (code == VersionIndependentResourceTypesAll.PERSON)
21504        return "Person";
21505      if (code == VersionIndependentResourceTypesAll.PLANDEFINITION)
21506        return "PlanDefinition";
21507      if (code == VersionIndependentResourceTypesAll.PRACTITIONER)
21508        return "Practitioner";
21509      if (code == VersionIndependentResourceTypesAll.PRACTITIONERROLE)
21510        return "PractitionerRole";
21511      if (code == VersionIndependentResourceTypesAll.PROCEDURE)
21512        return "Procedure";
21513      if (code == VersionIndependentResourceTypesAll.PROVENANCE)
21514        return "Provenance";
21515      if (code == VersionIndependentResourceTypesAll.QUESTIONNAIRE)
21516        return "Questionnaire";
21517      if (code == VersionIndependentResourceTypesAll.QUESTIONNAIRERESPONSE)
21518        return "QuestionnaireResponse";
21519      if (code == VersionIndependentResourceTypesAll.REGULATEDAUTHORIZATION)
21520        return "RegulatedAuthorization";
21521      if (code == VersionIndependentResourceTypesAll.RELATEDPERSON)
21522        return "RelatedPerson";
21523      if (code == VersionIndependentResourceTypesAll.REQUESTORCHESTRATION)
21524        return "RequestOrchestration";
21525      if (code == VersionIndependentResourceTypesAll.REQUIREMENTS)
21526        return "Requirements";
21527      if (code == VersionIndependentResourceTypesAll.RESEARCHSTUDY)
21528        return "ResearchStudy";
21529      if (code == VersionIndependentResourceTypesAll.RESEARCHSUBJECT)
21530        return "ResearchSubject";
21531      if (code == VersionIndependentResourceTypesAll.RESOURCE)
21532        return "Resource";
21533      if (code == VersionIndependentResourceTypesAll.RISKASSESSMENT)
21534        return "RiskAssessment";
21535      if (code == VersionIndependentResourceTypesAll.SCHEDULE)
21536        return "Schedule";
21537      if (code == VersionIndependentResourceTypesAll.SEARCHPARAMETER)
21538        return "SearchParameter";
21539      if (code == VersionIndependentResourceTypesAll.SERVICEREQUEST)
21540        return "ServiceRequest";
21541      if (code == VersionIndependentResourceTypesAll.SLOT)
21542        return "Slot";
21543      if (code == VersionIndependentResourceTypesAll.SPECIMEN)
21544        return "Specimen";
21545      if (code == VersionIndependentResourceTypesAll.SPECIMENDEFINITION)
21546        return "SpecimenDefinition";
21547      if (code == VersionIndependentResourceTypesAll.STRUCTUREDEFINITION)
21548        return "StructureDefinition";
21549      if (code == VersionIndependentResourceTypesAll.STRUCTUREMAP)
21550        return "StructureMap";
21551      if (code == VersionIndependentResourceTypesAll.SUBSCRIPTION)
21552        return "Subscription";
21553      if (code == VersionIndependentResourceTypesAll.SUBSCRIPTIONSTATUS)
21554        return "SubscriptionStatus";
21555      if (code == VersionIndependentResourceTypesAll.SUBSCRIPTIONTOPIC)
21556        return "SubscriptionTopic";
21557      if (code == VersionIndependentResourceTypesAll.SUBSTANCE)
21558        return "Substance";
21559      if (code == VersionIndependentResourceTypesAll.SUBSTANCEDEFINITION)
21560        return "SubstanceDefinition";
21561      if (code == VersionIndependentResourceTypesAll.SUBSTANCENUCLEICACID)
21562        return "SubstanceNucleicAcid";
21563      if (code == VersionIndependentResourceTypesAll.SUBSTANCEPOLYMER)
21564        return "SubstancePolymer";
21565      if (code == VersionIndependentResourceTypesAll.SUBSTANCEPROTEIN)
21566        return "SubstanceProtein";
21567      if (code == VersionIndependentResourceTypesAll.SUBSTANCEREFERENCEINFORMATION)
21568        return "SubstanceReferenceInformation";
21569      if (code == VersionIndependentResourceTypesAll.SUBSTANCESOURCEMATERIAL)
21570        return "SubstanceSourceMaterial";
21571      if (code == VersionIndependentResourceTypesAll.SUPPLYDELIVERY)
21572        return "SupplyDelivery";
21573      if (code == VersionIndependentResourceTypesAll.SUPPLYREQUEST)
21574        return "SupplyRequest";
21575      if (code == VersionIndependentResourceTypesAll.TASK)
21576        return "Task";
21577      if (code == VersionIndependentResourceTypesAll.TERMINOLOGYCAPABILITIES)
21578        return "TerminologyCapabilities";
21579      if (code == VersionIndependentResourceTypesAll.TESTPLAN)
21580        return "TestPlan";
21581      if (code == VersionIndependentResourceTypesAll.TESTREPORT)
21582        return "TestReport";
21583      if (code == VersionIndependentResourceTypesAll.TESTSCRIPT)
21584        return "TestScript";
21585      if (code == VersionIndependentResourceTypesAll.TRANSPORT)
21586        return "Transport";
21587      if (code == VersionIndependentResourceTypesAll.VALUESET)
21588        return "ValueSet";
21589      if (code == VersionIndependentResourceTypesAll.VERIFICATIONRESULT)
21590        return "VerificationResult";
21591      if (code == VersionIndependentResourceTypesAll.VISIONPRESCRIPTION)
21592        return "VisionPrescription";
21593      if (code == VersionIndependentResourceTypesAll.BODYSITE)
21594        return "BodySite";
21595      if (code == VersionIndependentResourceTypesAll.CATALOGENTRY)
21596        return "CatalogEntry";
21597      if (code == VersionIndependentResourceTypesAll.CONFORMANCE)
21598        return "Conformance";
21599      if (code == VersionIndependentResourceTypesAll.DATAELEMENT)
21600        return "DataElement";
21601      if (code == VersionIndependentResourceTypesAll.DEVICECOMPONENT)
21602        return "DeviceComponent";
21603      if (code == VersionIndependentResourceTypesAll.DEVICEUSEREQUEST)
21604        return "DeviceUseRequest";
21605      if (code == VersionIndependentResourceTypesAll.DEVICEUSESTATEMENT)
21606        return "DeviceUseStatement";
21607      if (code == VersionIndependentResourceTypesAll.DIAGNOSTICORDER)
21608        return "DiagnosticOrder";
21609      if (code == VersionIndependentResourceTypesAll.DOCUMENTMANIFEST)
21610        return "DocumentManifest";
21611      if (code == VersionIndependentResourceTypesAll.EFFECTEVIDENCESYNTHESIS)
21612        return "EffectEvidenceSynthesis";
21613      if (code == VersionIndependentResourceTypesAll.ELIGIBILITYREQUEST)
21614        return "EligibilityRequest";
21615      if (code == VersionIndependentResourceTypesAll.ELIGIBILITYRESPONSE)
21616        return "EligibilityResponse";
21617      if (code == VersionIndependentResourceTypesAll.EXPANSIONPROFILE)
21618        return "ExpansionProfile";
21619      if (code == VersionIndependentResourceTypesAll.IMAGINGMANIFEST)
21620        return "ImagingManifest";
21621      if (code == VersionIndependentResourceTypesAll.IMAGINGOBJECTSELECTION)
21622        return "ImagingObjectSelection";
21623      if (code == VersionIndependentResourceTypesAll.MEDIA)
21624        return "Media";
21625      if (code == VersionIndependentResourceTypesAll.MEDICATIONORDER)
21626        return "MedicationOrder";
21627      if (code == VersionIndependentResourceTypesAll.MEDICATIONUSAGE)
21628        return "MedicationUsage";
21629      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCT)
21630        return "MedicinalProduct";
21631      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTAUTHORIZATION)
21632        return "MedicinalProductAuthorization";
21633      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTCONTRAINDICATION)
21634        return "MedicinalProductContraindication";
21635      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTINDICATION)
21636        return "MedicinalProductIndication";
21637      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTINGREDIENT)
21638        return "MedicinalProductIngredient";
21639      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTINTERACTION)
21640        return "MedicinalProductInteraction";
21641      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTMANUFACTURED)
21642        return "MedicinalProductManufactured";
21643      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTPACKAGED)
21644        return "MedicinalProductPackaged";
21645      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTPHARMACEUTICAL)
21646        return "MedicinalProductPharmaceutical";
21647      if (code == VersionIndependentResourceTypesAll.MEDICINALPRODUCTUNDESIRABLEEFFECT)
21648        return "MedicinalProductUndesirableEffect";
21649      if (code == VersionIndependentResourceTypesAll.ORDER)
21650        return "Order";
21651      if (code == VersionIndependentResourceTypesAll.ORDERRESPONSE)
21652        return "OrderResponse";
21653      if (code == VersionIndependentResourceTypesAll.PROCEDUREREQUEST)
21654        return "ProcedureRequest";
21655      if (code == VersionIndependentResourceTypesAll.PROCESSREQUEST)
21656        return "ProcessRequest";
21657      if (code == VersionIndependentResourceTypesAll.PROCESSRESPONSE)
21658        return "ProcessResponse";
21659      if (code == VersionIndependentResourceTypesAll.REFERRALREQUEST)
21660        return "ReferralRequest";
21661      if (code == VersionIndependentResourceTypesAll.REQUESTGROUP)
21662        return "RequestGroup";
21663      if (code == VersionIndependentResourceTypesAll.RESEARCHDEFINITION)
21664        return "ResearchDefinition";
21665      if (code == VersionIndependentResourceTypesAll.RESEARCHELEMENTDEFINITION)
21666        return "ResearchElementDefinition";
21667      if (code == VersionIndependentResourceTypesAll.RISKEVIDENCESYNTHESIS)
21668        return "RiskEvidenceSynthesis";
21669      if (code == VersionIndependentResourceTypesAll.SEQUENCE)
21670        return "Sequence";
21671      if (code == VersionIndependentResourceTypesAll.SERVICEDEFINITION)
21672        return "ServiceDefinition";
21673      if (code == VersionIndependentResourceTypesAll.SUBSTANCESPECIFICATION)
21674        return "SubstanceSpecification";
21675      if (code == VersionIndependentResourceTypesAll.MOLECULARDEFINITION)
21676        return "MolecularDefinition";
21677      return "?";
21678   }
21679    public String toSystem(VersionIndependentResourceTypesAll code) {
21680      return code.getSystem();
21681      }
21682    }
21683
21684
21685}
21686