001
002package ca.uhn.fhir.model.dstu2.valueset;
003
004import ca.uhn.fhir.model.api.*;
005import java.util.HashMap;
006import java.util.Map;
007
008public enum ReferralMethodEnum {
009
010        /**
011         * Display: <b>Fax</b><br>
012         * Code Value: <b>fax</b>
013         *
014         * Referrals may be accepted by fax.
015         */
016        FAX("fax", "http://hl7.org/fhir/service-referral-method"),
017        
018        /**
019         * Display: <b>Phone</b><br>
020         * Code Value: <b>phone</b>
021         *
022         * Referrals may be accepted over the phone from a practitioner.
023         */
024        PHONE("phone", "http://hl7.org/fhir/service-referral-method"),
025        
026        /**
027         * Display: <b>Secure Messaging</b><br>
028         * Code Value: <b>elec</b>
029         *
030         * Referrals may be accepted via a secure messaging system. To determine the types of secure messaging systems supported, refer to the identifiers collection. Callers will need to understand the specific identifier system used to know that they are able to transmit messages.
031         */
032        SECURE_MESSAGING("elec", "http://hl7.org/fhir/service-referral-method"),
033        
034        /**
035         * Display: <b>Secure Email</b><br>
036         * Code Value: <b>semail</b>
037         *
038         * Referrals may be accepted via a secure email. To send please enrypt with the services public key.
039         */
040        SECURE_EMAIL("semail", "http://hl7.org/fhir/service-referral-method"),
041        
042        /**
043         * Display: <b>Mail</b><br>
044         * Code Value: <b>mail</b>
045         *
046         * Referrals may be accepted via regular postage (or hand delivered).
047         */
048        MAIL("mail", "http://hl7.org/fhir/service-referral-method"),
049        
050        ;
051        
052        /**
053         * Identifier for this Value Set:
054         * 
055         */
056        public static final String VALUESET_IDENTIFIER = "";
057
058        /**
059         * Name for this Value Set:
060         * ReferralMethod
061         */
062        public static final String VALUESET_NAME = "ReferralMethod";
063
064        private static Map<String, ReferralMethodEnum> CODE_TO_ENUM = new HashMap<String, ReferralMethodEnum>();
065        private static Map<String, Map<String, ReferralMethodEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, ReferralMethodEnum>>();
066        
067        private final String myCode;
068        private final String mySystem;
069        
070        static {
071                for (ReferralMethodEnum next : ReferralMethodEnum.values()) {
072                        CODE_TO_ENUM.put(next.getCode(), next);
073                        
074                        if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
075                                SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, ReferralMethodEnum>());
076                        }
077                        SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);                 
078                }
079        }
080        
081        /**
082         * Returns the code associated with this enumerated value
083         */
084        public String getCode() {
085                return myCode;
086        }
087        
088        /**
089         * Returns the code system associated with this enumerated value
090         */
091        public String getSystem() {
092                return mySystem;
093        }
094        
095        /**
096         * Returns the enumerated value associated with this code
097         */
098        public static ReferralMethodEnum forCode(String theCode) {
099                ReferralMethodEnum retVal = CODE_TO_ENUM.get(theCode);
100                return retVal;
101        }
102
103        /**
104         * Converts codes to their respective enumerated values
105         */
106        public static final IValueSetEnumBinder<ReferralMethodEnum> VALUESET_BINDER = new IValueSetEnumBinder<ReferralMethodEnum>() {
107                @Override
108                public String toCodeString(ReferralMethodEnum theEnum) {
109                        return theEnum.getCode();
110                }
111
112                @Override
113                public String toSystemString(ReferralMethodEnum theEnum) {
114                        return theEnum.getSystem();
115                }
116                
117                @Override
118                public ReferralMethodEnum fromCodeString(String theCodeString) {
119                        return CODE_TO_ENUM.get(theCodeString);
120                }
121                
122                @Override
123                public ReferralMethodEnum fromCodeString(String theCodeString, String theSystemString) {
124                        Map<String, ReferralMethodEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
125                        if (map == null) {
126                                return null;
127                        }
128                        return map.get(theCodeString);
129                }
130                
131        };
132        
133        /** 
134         * Constructor
135         */
136        ReferralMethodEnum(String theCode, String theSystem) {
137                myCode = theCode;
138                mySystem = theSystem;
139        }
140
141        
142}