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 LinkTypeEnum {
009
010        /**
011         * Display: <b>Replace</b><br>
012         * Code Value: <b>replace</b>
013         *
014         * The patient resource containing this link must no longer be used. The link points forward to another patient resource that must be used in lieu of the patient resource that contains this link.
015         */
016        REPLACE("replace", "http://hl7.org/fhir/link-type"),
017        
018        /**
019         * Display: <b>Refer</b><br>
020         * Code Value: <b>refer</b>
021         *
022         * The patient resource containing this link is in use and valid but not considered the main source of information about a patient. The link points forward to another patient resource that should be consulted to retrieve additional patient information.
023         */
024        REFER("refer", "http://hl7.org/fhir/link-type"),
025        
026        /**
027         * Display: <b>See also</b><br>
028         * Code Value: <b>seealso</b>
029         *
030         * The patient resource containing this link is in use and valid, but points to another patient resource that is known to contain data about the same person. Data in this resource might overlap or contradict information found in the other patient resource. This link does not indicate any relative importance of the resources concerned, and both should be regarded as equally valid.
031         */
032        SEE_ALSO("seealso", "http://hl7.org/fhir/link-type"),
033        
034        ;
035        
036        /**
037         * Identifier for this Value Set:
038         * 
039         */
040        public static final String VALUESET_IDENTIFIER = "";
041
042        /**
043         * Name for this Value Set:
044         * LinkType
045         */
046        public static final String VALUESET_NAME = "LinkType";
047
048        private static Map<String, LinkTypeEnum> CODE_TO_ENUM = new HashMap<String, LinkTypeEnum>();
049        private static Map<String, Map<String, LinkTypeEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, LinkTypeEnum>>();
050        
051        private final String myCode;
052        private final String mySystem;
053        
054        static {
055                for (LinkTypeEnum next : LinkTypeEnum.values()) {
056                        CODE_TO_ENUM.put(next.getCode(), next);
057                        
058                        if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
059                                SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, LinkTypeEnum>());
060                        }
061                        SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);                 
062                }
063        }
064        
065        /**
066         * Returns the code associated with this enumerated value
067         */
068        public String getCode() {
069                return myCode;
070        }
071        
072        /**
073         * Returns the code system associated with this enumerated value
074         */
075        public String getSystem() {
076                return mySystem;
077        }
078        
079        /**
080         * Returns the enumerated value associated with this code
081         */
082        public static LinkTypeEnum forCode(String theCode) {
083                LinkTypeEnum retVal = CODE_TO_ENUM.get(theCode);
084                return retVal;
085        }
086
087        /**
088         * Converts codes to their respective enumerated values
089         */
090        public static final IValueSetEnumBinder<LinkTypeEnum> VALUESET_BINDER = new IValueSetEnumBinder<LinkTypeEnum>() {
091                @Override
092                public String toCodeString(LinkTypeEnum theEnum) {
093                        return theEnum.getCode();
094                }
095
096                @Override
097                public String toSystemString(LinkTypeEnum theEnum) {
098                        return theEnum.getSystem();
099                }
100                
101                @Override
102                public LinkTypeEnum fromCodeString(String theCodeString) {
103                        return CODE_TO_ENUM.get(theCodeString);
104                }
105                
106                @Override
107                public LinkTypeEnum fromCodeString(String theCodeString, String theSystemString) {
108                        Map<String, LinkTypeEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
109                        if (map == null) {
110                                return null;
111                        }
112                        return map.get(theCodeString);
113                }
114                
115        };
116        
117        /** 
118         * Constructor
119         */
120        LinkTypeEnum(String theCode, String theSystem) {
121                myCode = theCode;
122                mySystem = theSystem;
123        }
124
125        
126}