001package org.hl7.fhir.dstu3.model.codesystems;
002
003
004
005
006/*
007  Copyright (c) 2011+, HL7, Inc.
008  All rights reserved.
009  
010  Redistribution and use in source and binary forms, with or without modification, 
011  are permitted provided that the following conditions are met:
012  
013   * Redistributions of source code must retain the above copyright notice, this 
014     list of conditions and the following disclaimer.
015   * Redistributions in binary form must reproduce the above copyright notice, 
016     this list of conditions and the following disclaimer in the documentation 
017     and/or other materials provided with the distribution.
018   * Neither the name of HL7 nor the names of its contributors may be used to 
019     endorse or promote products derived from this software without specific 
020     prior written permission.
021  
022  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
023  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
024  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
025  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
026  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
027  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
028  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
029  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
030  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
031  POSSIBILITY OF SUCH DAMAGE.
032  
033*/
034
035// Generated on Sat, Mar 25, 2017 21:03-0400 for FHIR v3.0.0
036
037
038import org.hl7.fhir.exceptions.FHIRException;
039
040public enum DataTypes {
041
042        /**
043         * 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.
044         */
045        ADDRESS, 
046        /**
047         * A duration of time during which an organism (or a process) has existed.
048         */
049        AGE, 
050        /**
051         * A  text note which also  contains information about who made the statement and when.
052         */
053        ANNOTATION, 
054        /**
055         * For referring to data content defined in other formats.
056         */
057        ATTACHMENT, 
058        /**
059         * Base definition for all elements that are defined inside a resource - but not those in a data type.
060         */
061        BACKBONEELEMENT, 
062        /**
063         * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.
064         */
065        CODEABLECONCEPT, 
066        /**
067         * A reference to a code defined by a terminology system.
068         */
069        CODING, 
070        /**
071         * Specifies contact information for a person or organization.
072         */
073        CONTACTDETAIL, 
074        /**
075         * Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
076         */
077        CONTACTPOINT, 
078        /**
079         * A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.
080         */
081        CONTRIBUTOR, 
082        /**
083         * 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.
084         */
085        COUNT, 
086        /**
087         * Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.
088         */
089        DATAREQUIREMENT, 
090        /**
091         * A length - a value with a unit that is a physical distance.
092         */
093        DISTANCE, 
094        /**
095         * Indicates how the medication is/was taken or should be taken by the patient.
096         */
097        DOSAGE, 
098        /**
099         * A length of time.
100         */
101        DURATION, 
102        /**
103         * Base definition for all elements in a resource.
104         */
105        ELEMENT, 
106        /**
107         * Captures constraints on each element within the resource, profile, or extension.
108         */
109        ELEMENTDEFINITION, 
110        /**
111         * Optional Extension Element - found in all resources.
112         */
113        EXTENSION, 
114        /**
115         * A human's name with the ability to identify parts and usage.
116         */
117        HUMANNAME, 
118        /**
119         * A technical identifier - identifies some entity uniquely and unambiguously.
120         */
121        IDENTIFIER, 
122        /**
123         * The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.
124         */
125        META, 
126        /**
127         * An amount of economic utility in some recognized currency.
128         */
129        MONEY, 
130        /**
131         * A human-readable formatted text, including images.
132         */
133        NARRATIVE, 
134        /**
135         * 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.
136         */
137        PARAMETERDEFINITION, 
138        /**
139         * A time period defined by a start and end date and optionally time.
140         */
141        PERIOD, 
142        /**
143         * 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.
144         */
145        QUANTITY, 
146        /**
147         * A set of ordered Quantities defined by a low and high limit.
148         */
149        RANGE, 
150        /**
151         * A relationship of two Quantity values - expressed as a numerator and a denominator.
152         */
153        RATIO, 
154        /**
155         * A reference from one resource to another.
156         */
157        REFERENCE, 
158        /**
159         * Related artifacts such as additional documentation, justification, or bibliographic references.
160         */
161        RELATEDARTIFACT, 
162        /**
163         * A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
164         */
165        SAMPLEDDATA, 
166        /**
167         * A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.
168         */
169        SIGNATURE, 
170        /**
171         * null
172         */
173        SIMPLEQUANTITY, 
174        /**
175         * 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.
176         */
177        TIMING, 
178        /**
179         * A description of a triggering event.
180         */
181        TRIGGERDEFINITION, 
182        /**
183         * 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).
184         */
185        USAGECONTEXT, 
186        /**
187         * A stream of bytes
188         */
189        BASE64BINARY, 
190        /**
191         * Value of "true" or "false"
192         */
193        BOOLEAN, 
194        /**
195         * 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
196         */
197        CODE, 
198        /**
199         * A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.
200         */
201        DATE, 
202        /**
203         * A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.
204         */
205        DATETIME, 
206        /**
207         * A rational number with implicit precision
208         */
209        DECIMAL, 
210        /**
211         * 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.
212         */
213        ID, 
214        /**
215         * An instant in time - known at least to the second
216         */
217        INSTANT, 
218        /**
219         * A whole number
220         */
221        INTEGER, 
222        /**
223         * A string that may contain markdown syntax for optional processing by a mark down presentation engine
224         */
225        MARKDOWN, 
226        /**
227         * An OID represented as a URI
228         */
229        OID, 
230        /**
231         * An integer with a value that is positive (e.g. >0)
232         */
233        POSITIVEINT, 
234        /**
235         * A sequence of Unicode characters
236         */
237        STRING, 
238        /**
239         * A time during the day, with no date specified
240         */
241        TIME, 
242        /**
243         * An integer with a value that is not negative (e.g. >= 0)
244         */
245        UNSIGNEDINT, 
246        /**
247         * String of characters used to identify a name or a resource
248         */
249        URI, 
250        /**
251         * A UUID, represented as a URI
252         */
253        UUID, 
254        /**
255         * XHTML format, as defined by W3C, but restricted usage (mainly, no active content)
256         */
257        XHTML, 
258        /**
259         * added to help the parsers
260         */
261        NULL;
262        public static DataTypes fromCode(String codeString) throws FHIRException {
263            if (codeString == null || "".equals(codeString))
264                return null;
265        if ("Address".equals(codeString))
266          return ADDRESS;
267        if ("Age".equals(codeString))
268          return AGE;
269        if ("Annotation".equals(codeString))
270          return ANNOTATION;
271        if ("Attachment".equals(codeString))
272          return ATTACHMENT;
273        if ("BackboneElement".equals(codeString))
274          return BACKBONEELEMENT;
275        if ("CodeableConcept".equals(codeString))
276          return CODEABLECONCEPT;
277        if ("Coding".equals(codeString))
278          return CODING;
279        if ("ContactDetail".equals(codeString))
280          return CONTACTDETAIL;
281        if ("ContactPoint".equals(codeString))
282          return CONTACTPOINT;
283        if ("Contributor".equals(codeString))
284          return CONTRIBUTOR;
285        if ("Count".equals(codeString))
286          return COUNT;
287        if ("DataRequirement".equals(codeString))
288          return DATAREQUIREMENT;
289        if ("Distance".equals(codeString))
290          return DISTANCE;
291        if ("Dosage".equals(codeString))
292          return DOSAGE;
293        if ("Duration".equals(codeString))
294          return DURATION;
295        if ("Element".equals(codeString))
296          return ELEMENT;
297        if ("ElementDefinition".equals(codeString))
298          return ELEMENTDEFINITION;
299        if ("Extension".equals(codeString))
300          return EXTENSION;
301        if ("HumanName".equals(codeString))
302          return HUMANNAME;
303        if ("Identifier".equals(codeString))
304          return IDENTIFIER;
305        if ("Meta".equals(codeString))
306          return META;
307        if ("Money".equals(codeString))
308          return MONEY;
309        if ("Narrative".equals(codeString))
310          return NARRATIVE;
311        if ("ParameterDefinition".equals(codeString))
312          return PARAMETERDEFINITION;
313        if ("Period".equals(codeString))
314          return PERIOD;
315        if ("Quantity".equals(codeString))
316          return QUANTITY;
317        if ("Range".equals(codeString))
318          return RANGE;
319        if ("Ratio".equals(codeString))
320          return RATIO;
321        if ("Reference".equals(codeString))
322          return REFERENCE;
323        if ("RelatedArtifact".equals(codeString))
324          return RELATEDARTIFACT;
325        if ("SampledData".equals(codeString))
326          return SAMPLEDDATA;
327        if ("Signature".equals(codeString))
328          return SIGNATURE;
329        if ("SimpleQuantity".equals(codeString))
330          return SIMPLEQUANTITY;
331        if ("Timing".equals(codeString))
332          return TIMING;
333        if ("TriggerDefinition".equals(codeString))
334          return TRIGGERDEFINITION;
335        if ("UsageContext".equals(codeString))
336          return USAGECONTEXT;
337        if ("base64Binary".equals(codeString))
338          return BASE64BINARY;
339        if ("boolean".equals(codeString))
340          return BOOLEAN;
341        if ("code".equals(codeString))
342          return CODE;
343        if ("date".equals(codeString))
344          return DATE;
345        if ("dateTime".equals(codeString))
346          return DATETIME;
347        if ("decimal".equals(codeString))
348          return DECIMAL;
349        if ("id".equals(codeString))
350          return ID;
351        if ("instant".equals(codeString))
352          return INSTANT;
353        if ("integer".equals(codeString))
354          return INTEGER;
355        if ("markdown".equals(codeString))
356          return MARKDOWN;
357        if ("oid".equals(codeString))
358          return OID;
359        if ("positiveInt".equals(codeString))
360          return POSITIVEINT;
361        if ("string".equals(codeString))
362          return STRING;
363        if ("time".equals(codeString))
364          return TIME;
365        if ("unsignedInt".equals(codeString))
366          return UNSIGNEDINT;
367        if ("uri".equals(codeString))
368          return URI;
369        if ("uuid".equals(codeString))
370          return UUID;
371        if ("xhtml".equals(codeString))
372          return XHTML;
373        throw new FHIRException("Unknown DataTypes code '"+codeString+"'");
374        }
375        public String toCode() {
376          switch (this) {
377            case ADDRESS: return "Address";
378            case AGE: return "Age";
379            case ANNOTATION: return "Annotation";
380            case ATTACHMENT: return "Attachment";
381            case BACKBONEELEMENT: return "BackboneElement";
382            case CODEABLECONCEPT: return "CodeableConcept";
383            case CODING: return "Coding";
384            case CONTACTDETAIL: return "ContactDetail";
385            case CONTACTPOINT: return "ContactPoint";
386            case CONTRIBUTOR: return "Contributor";
387            case COUNT: return "Count";
388            case DATAREQUIREMENT: return "DataRequirement";
389            case DISTANCE: return "Distance";
390            case DOSAGE: return "Dosage";
391            case DURATION: return "Duration";
392            case ELEMENT: return "Element";
393            case ELEMENTDEFINITION: return "ElementDefinition";
394            case EXTENSION: return "Extension";
395            case HUMANNAME: return "HumanName";
396            case IDENTIFIER: return "Identifier";
397            case META: return "Meta";
398            case MONEY: return "Money";
399            case NARRATIVE: return "Narrative";
400            case PARAMETERDEFINITION: return "ParameterDefinition";
401            case PERIOD: return "Period";
402            case QUANTITY: return "Quantity";
403            case RANGE: return "Range";
404            case RATIO: return "Ratio";
405            case REFERENCE: return "Reference";
406            case RELATEDARTIFACT: return "RelatedArtifact";
407            case SAMPLEDDATA: return "SampledData";
408            case SIGNATURE: return "Signature";
409            case SIMPLEQUANTITY: return "SimpleQuantity";
410            case TIMING: return "Timing";
411            case TRIGGERDEFINITION: return "TriggerDefinition";
412            case USAGECONTEXT: return "UsageContext";
413            case BASE64BINARY: return "base64Binary";
414            case BOOLEAN: return "boolean";
415            case CODE: return "code";
416            case DATE: return "date";
417            case DATETIME: return "dateTime";
418            case DECIMAL: return "decimal";
419            case ID: return "id";
420            case INSTANT: return "instant";
421            case INTEGER: return "integer";
422            case MARKDOWN: return "markdown";
423            case OID: return "oid";
424            case POSITIVEINT: return "positiveInt";
425            case STRING: return "string";
426            case TIME: return "time";
427            case UNSIGNEDINT: return "unsignedInt";
428            case URI: return "uri";
429            case UUID: return "uuid";
430            case XHTML: return "xhtml";
431            case NULL: return null;
432            default: return "?";
433          }
434        }
435        public String getSystem() {
436          return "http://hl7.org/fhir/data-types";
437        }
438        public String getDefinition() {
439          switch (this) {
440            case ADDRESS: return "An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.";
441            case AGE: return "A duration of time during which an organism (or a process) has existed.";
442            case ANNOTATION: return "A  text note which also  contains information about who made the statement and when.";
443            case ATTACHMENT: return "For referring to data content defined in other formats.";
444            case BACKBONEELEMENT: return "Base definition for all elements that are defined inside a resource - but not those in a data type.";
445            case CODEABLECONCEPT: return "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.";
446            case CODING: return "A reference to a code defined by a terminology system.";
447            case CONTACTDETAIL: return "Specifies contact information for a person or organization.";
448            case CONTACTPOINT: return "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.";
449            case CONTRIBUTOR: return "A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.";
450            case COUNT: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
451            case DATAREQUIREMENT: return "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.";
452            case DISTANCE: return "A length - a value with a unit that is a physical distance.";
453            case DOSAGE: return "Indicates how the medication is/was taken or should be taken by the patient.";
454            case DURATION: return "A length of time.";
455            case ELEMENT: return "Base definition for all elements in a resource.";
456            case ELEMENTDEFINITION: return "Captures constraints on each element within the resource, profile, or extension.";
457            case EXTENSION: return "Optional Extension Element - found in all resources.";
458            case HUMANNAME: return "A human's name with the ability to identify parts and usage.";
459            case IDENTIFIER: return "A technical identifier - identifies some entity uniquely and unambiguously.";
460            case META: return "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.";
461            case MONEY: return "An amount of economic utility in some recognized currency.";
462            case NARRATIVE: return "A human-readable formatted text, including images.";
463            case PARAMETERDEFINITION: return "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.";
464            case PERIOD: return "A time period defined by a start and end date and optionally time.";
465            case QUANTITY: return "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.";
466            case RANGE: return "A set of ordered Quantities defined by a low and high limit.";
467            case RATIO: return "A relationship of two Quantity values - expressed as a numerator and a denominator.";
468            case REFERENCE: return "A reference from one resource to another.";
469            case RELATEDARTIFACT: return "Related artifacts such as additional documentation, justification, or bibliographic references.";
470            case SAMPLEDDATA: return "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.";
471            case SIGNATURE: return "A digital signature along with supporting context. The signature may be electronic/cryptographic in nature, or a graphical image representing a hand-written signature, or a signature process. Different signature approaches have different utilities.";
472            case SIMPLEQUANTITY: return "";
473            case TIMING: return "Specifies an event that may occur multiple times. Timing schedules are used to record when things are planned, expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds, and may be used for reporting the schedule to which past regular activities were carried out.";
474            case TRIGGERDEFINITION: return "A description of a triggering event.";
475            case USAGECONTEXT: return "Specifies clinical/business/etc metadata that can be used to retrieve, index and/or categorize an artifact. This metadata can either be specific to the applicable population (e.g., age category, DRG) or the specific context of care (e.g., venue, care setting, provider of care).";
476            case BASE64BINARY: return "A stream of bytes";
477            case BOOLEAN: return "Value of \"true\" or \"false\"";
478            case CODE: return "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents";
479            case DATE: return "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date.  Dates SHALL be valid dates.";
480            case DATETIME: return "A date, date-time or partial date (e.g. just year or year + month).  If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored.                 Dates SHALL be valid dates.";
481            case DECIMAL: return "A rational number with implicit precision";
482            case ID: return "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters.  (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.)  Ids are case-insensitive.";
483            case INSTANT: return "An instant in time - known at least to the second";
484            case INTEGER: return "A whole number";
485            case MARKDOWN: return "A string that may contain markdown syntax for optional processing by a mark down presentation engine";
486            case OID: return "An OID represented as a URI";
487            case POSITIVEINT: return "An integer with a value that is positive (e.g. >0)";
488            case STRING: return "A sequence of Unicode characters";
489            case TIME: return "A time during the day, with no date specified";
490            case UNSIGNEDINT: return "An integer with a value that is not negative (e.g. >= 0)";
491            case URI: return "String of characters used to identify a name or a resource";
492            case UUID: return "A UUID, represented as a URI";
493            case XHTML: return "XHTML format, as defined by W3C, but restricted usage (mainly, no active content)";
494            case NULL: return null;
495            default: return "?";
496          }
497        }
498        public String getDisplay() {
499          switch (this) {
500            case ADDRESS: return "Address";
501            case AGE: return "Age";
502            case ANNOTATION: return "Annotation";
503            case ATTACHMENT: return "Attachment";
504            case BACKBONEELEMENT: return "BackboneElement";
505            case CODEABLECONCEPT: return "CodeableConcept";
506            case CODING: return "Coding";
507            case CONTACTDETAIL: return "ContactDetail";
508            case CONTACTPOINT: return "ContactPoint";
509            case CONTRIBUTOR: return "Contributor";
510            case COUNT: return "Count";
511            case DATAREQUIREMENT: return "DataRequirement";
512            case DISTANCE: return "Distance";
513            case DOSAGE: return "Dosage";
514            case DURATION: return "Duration";
515            case ELEMENT: return "Element";
516            case ELEMENTDEFINITION: return "ElementDefinition";
517            case EXTENSION: return "Extension";
518            case HUMANNAME: return "HumanName";
519            case IDENTIFIER: return "Identifier";
520            case META: return "Meta";
521            case MONEY: return "Money";
522            case NARRATIVE: return "Narrative";
523            case PARAMETERDEFINITION: return "ParameterDefinition";
524            case PERIOD: return "Period";
525            case QUANTITY: return "Quantity";
526            case RANGE: return "Range";
527            case RATIO: return "Ratio";
528            case REFERENCE: return "Reference";
529            case RELATEDARTIFACT: return "RelatedArtifact";
530            case SAMPLEDDATA: return "SampledData";
531            case SIGNATURE: return "Signature";
532            case SIMPLEQUANTITY: return "SimpleQuantity";
533            case TIMING: return "Timing";
534            case TRIGGERDEFINITION: return "TriggerDefinition";
535            case USAGECONTEXT: return "UsageContext";
536            case BASE64BINARY: return "base64Binary";
537            case BOOLEAN: return "boolean";
538            case CODE: return "code";
539            case DATE: return "date";
540            case DATETIME: return "dateTime";
541            case DECIMAL: return "decimal";
542            case ID: return "id";
543            case INSTANT: return "instant";
544            case INTEGER: return "integer";
545            case MARKDOWN: return "markdown";
546            case OID: return "oid";
547            case POSITIVEINT: return "positiveInt";
548            case STRING: return "string";
549            case TIME: return "time";
550            case UNSIGNEDINT: return "unsignedInt";
551            case URI: return "uri";
552            case UUID: return "uuid";
553            case XHTML: return "XHTML";
554            case NULL: return null;
555            default: return "?";
556          }
557    }
558
559
560}