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 AuditEventObjectRoleEnum {
009
010        /**
011         * Display: <b>Patient</b><br>
012         * Code Value: <b>1</b>
013         *
014         * This object is the patient that is the subject of care related to this event.  It is identifiable by patient ID or equivalent.  The patient may be either human or animal.
015         */
016        PATIENT("1", "http://hl7.org/fhir/object-role"),
017        
018        /**
019         * Display: <b>Location</b><br>
020         * Code Value: <b>2</b>
021         *
022         * This is a location identified as related to the event.  This is usually the location where the event took place.  Note that for shipping, the usual events are arrival at a location or departure from a location.
023         */
024        LOCATION("2", "http://hl7.org/fhir/object-role"),
025        
026        /**
027         * Display: <b>Report</b><br>
028         * Code Value: <b>3</b>
029         *
030         * This object is any kind of persistent document created as a result of the event.  This could be a paper report, film, electronic report, DICOM Study, etc.  Issues related to medical records life cycle management are conveyed elsewhere.
031         */
032        REPORT("3", "http://hl7.org/fhir/object-role"),
033        
034        /**
035         * Display: <b>Domain Resource</b><br>
036         * Code Value: <b>4</b>
037         *
038         * A logical object related to a health record event.  This is any healthcare  specific resource (object) not restricted to FHIR defined Resources.
039         */
040        DOMAIN_RESOURCE("4", "http://hl7.org/fhir/object-role"),
041        
042        /**
043         * Display: <b>Master file</b><br>
044         * Code Value: <b>5</b>
045         *
046         * This is any configurable file used to control creation of documents.  Examples include the objects maintained by the HL7 Master File transactions, Value Sets, etc.
047         */
048        MASTER_FILE("5", "http://hl7.org/fhir/object-role"),
049        
050        /**
051         * Display: <b>User</b><br>
052         * Code Value: <b>6</b>
053         *
054         * A human participant not otherwise identified by some other category.
055         */
056        USER("6", "http://hl7.org/fhir/object-role"),
057        
058        /**
059         * Display: <b>List</b><br>
060         * Code Value: <b>7</b>
061         *
062         * (deprecated)
063         */
064        LIST("7", "http://hl7.org/fhir/object-role"),
065        
066        /**
067         * Display: <b>Doctor</b><br>
068         * Code Value: <b>8</b>
069         *
070         * Typically a licensed person who is providing or performing care related to the event, generally a physician.   The key distinction between doctor and practitioner is with regards to their role, not the licensing.  The doctor is the human who actually performed the work.  The practitioner is the human or organization that is responsible for the work.
071         */
072        DOCTOR("8", "http://hl7.org/fhir/object-role"),
073        
074        /**
075         * Display: <b>Subscriber</b><br>
076         * Code Value: <b>9</b>
077         *
078         * A person or system that is being notified as part of the event.  This is relevant in situations where automated systems provide notifications to other parties when an event took place.
079         */
080        SUBSCRIBER("9", "http://hl7.org/fhir/object-role"),
081        
082        /**
083         * Display: <b>Guarantor</b><br>
084         * Code Value: <b>10</b>
085         *
086         * Insurance company, or any other organization who accepts responsibility for paying for the healthcare event.
087         */
088        GUARANTOR("10", "http://hl7.org/fhir/object-role"),
089        
090        /**
091         * Display: <b>Security User Entity</b><br>
092         * Code Value: <b>11</b>
093         *
094         * A person or active system object involved in the event with a security role.
095         */
096        SECURITY_USER_ENTITY("11", "http://hl7.org/fhir/object-role"),
097        
098        /**
099         * Display: <b>Security User Group</b><br>
100         * Code Value: <b>12</b>
101         *
102         * A person or system object involved in the event with the authority to modify security roles of other objects.
103         */
104        SECURITY_USER_GROUP("12", "http://hl7.org/fhir/object-role"),
105        
106        /**
107         * Display: <b>Security Resource</b><br>
108         * Code Value: <b>13</b>
109         *
110         * A passive object, such as a role table, that is relevant to the event.
111         */
112        SECURITY_RESOURCE("13", "http://hl7.org/fhir/object-role"),
113        
114        /**
115         * Display: <b>Security Granularity Definition</b><br>
116         * Code Value: <b>14</b>
117         *
118         * (deprecated)  Relevant to certain RBAC security methodologies.
119         */
120        SECURITY_GRANULARITY_DEFINITION("14", "http://hl7.org/fhir/object-role"),
121        
122        /**
123         * Display: <b>Practitioner</b><br>
124         * Code Value: <b>15</b>
125         *
126         * Any person or organization responsible for providing care.  This encompasses all forms of care, licensed or otherwise, and all sorts of teams and care groups. Note, the distinction between practitioners and the doctor that actually provided the care to the patient.
127         */
128        PRACTITIONER("15", "http://hl7.org/fhir/object-role"),
129        
130        /**
131         * Display: <b>Data Destination</b><br>
132         * Code Value: <b>16</b>
133         *
134         * The source or destination for data transfer, when it does not match some other role.
135         */
136        DATA_DESTINATION("16", "http://hl7.org/fhir/object-role"),
137        
138        /**
139         * Display: <b>Data Repository</b><br>
140         * Code Value: <b>17</b>
141         *
142         * A source or destination for data transfer that acts as an archive, database, or similar role.
143         */
144        DATA_REPOSITORY("17", "http://hl7.org/fhir/object-role"),
145        
146        /**
147         * Display: <b>Schedule</b><br>
148         * Code Value: <b>18</b>
149         *
150         * An object that holds schedule information.  This could be an appointment book, availability information, etc.
151         */
152        SCHEDULE("18", "http://hl7.org/fhir/object-role"),
153        
154        /**
155         * Display: <b>Customer</b><br>
156         * Code Value: <b>19</b>
157         *
158         * An organization or person that is the recipient of services.  This could be an organization that is buying services for a patient, or a person that is buying services for an animal.
159         */
160        CUSTOMER("19", "http://hl7.org/fhir/object-role"),
161        
162        /**
163         * Display: <b>Job</b><br>
164         * Code Value: <b>20</b>
165         *
166         * An order, task, work item, procedure step, or other description of work to be performed; e.g. a particular instance of an MPPS.
167         */
168        JOB("20", "http://hl7.org/fhir/object-role"),
169        
170        /**
171         * Display: <b>Job Stream</b><br>
172         * Code Value: <b>21</b>
173         *
174         * A list of jobs or a system that provides lists of jobs; e.g. an MWL SCP.
175         */
176        JOB_STREAM("21", "http://hl7.org/fhir/object-role"),
177        
178        /**
179         * Display: <b>Table</b><br>
180         * Code Value: <b>22</b>
181         *
182         * (Deprecated)
183         */
184        TABLE("22", "http://hl7.org/fhir/object-role"),
185        
186        /**
187         * Display: <b>Routing Criteria</b><br>
188         * Code Value: <b>23</b>
189         *
190         * An object that specifies or controls the routing or delivery of items.  For example, a distribution list is the routing criteria for mail.  The items delivered may be documents, jobs, or other objects.
191         */
192        ROUTING_CRITERIA("23", "http://hl7.org/fhir/object-role"),
193        
194        /**
195         * Display: <b>Query</b><br>
196         * Code Value: <b>24</b>
197         *
198         * The contents of a query.  This is used to capture the contents of any kind of query.  For security surveillance purposes knowing the queries being made is very important.
199         */
200        QUERY("24", "http://hl7.org/fhir/object-role"),
201        
202        ;
203        
204        /**
205         * Identifier for this Value Set:
206         * 
207         */
208        public static final String VALUESET_IDENTIFIER = "";
209
210        /**
211         * Name for this Value Set:
212         * AuditEventObjectRole
213         */
214        public static final String VALUESET_NAME = "AuditEventObjectRole";
215
216        private static Map<String, AuditEventObjectRoleEnum> CODE_TO_ENUM = new HashMap<String, AuditEventObjectRoleEnum>();
217        private static Map<String, Map<String, AuditEventObjectRoleEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, AuditEventObjectRoleEnum>>();
218        
219        private final String myCode;
220        private final String mySystem;
221        
222        static {
223                for (AuditEventObjectRoleEnum next : AuditEventObjectRoleEnum.values()) {
224                        CODE_TO_ENUM.put(next.getCode(), next);
225                        
226                        if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
227                                SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, AuditEventObjectRoleEnum>());
228                        }
229                        SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);                 
230                }
231        }
232        
233        /**
234         * Returns the code associated with this enumerated value
235         */
236        public String getCode() {
237                return myCode;
238        }
239        
240        /**
241         * Returns the code system associated with this enumerated value
242         */
243        public String getSystem() {
244                return mySystem;
245        }
246        
247        /**
248         * Returns the enumerated value associated with this code
249         */
250        public static AuditEventObjectRoleEnum forCode(String theCode) {
251                AuditEventObjectRoleEnum retVal = CODE_TO_ENUM.get(theCode);
252                return retVal;
253        }
254
255        /**
256         * Converts codes to their respective enumerated values
257         */
258        public static final IValueSetEnumBinder<AuditEventObjectRoleEnum> VALUESET_BINDER = new IValueSetEnumBinder<AuditEventObjectRoleEnum>() {
259                @Override
260                public String toCodeString(AuditEventObjectRoleEnum theEnum) {
261                        return theEnum.getCode();
262                }
263
264                @Override
265                public String toSystemString(AuditEventObjectRoleEnum theEnum) {
266                        return theEnum.getSystem();
267                }
268                
269                @Override
270                public AuditEventObjectRoleEnum fromCodeString(String theCodeString) {
271                        return CODE_TO_ENUM.get(theCodeString);
272                }
273                
274                @Override
275                public AuditEventObjectRoleEnum fromCodeString(String theCodeString, String theSystemString) {
276                        Map<String, AuditEventObjectRoleEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
277                        if (map == null) {
278                                return null;
279                        }
280                        return map.get(theCodeString);
281                }
282                
283        };
284        
285        /** 
286         * Constructor
287         */
288        AuditEventObjectRoleEnum(String theCode, String theSystem) {
289                myCode = theCode;
290                mySystem = theSystem;
291        }
292
293        
294}