001package org.hl7.fhir.r4.model.codesystems;
002
003/*-
004 * #%L
005 * org.hl7.fhir.r4
006 * %%
007 * Copyright (C) 2014 - 2019 Health Level 7
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023
024/*
025  Copyright (c) 2011+, HL7, Inc.
026  All rights reserved.
027  
028  Redistribution and use in source and binary forms, with or without modification, 
029  are permitted provided that the following conditions are met:
030  
031   * Redistributions of source code must retain the above copyright notice, this 
032     list of conditions and the following disclaimer.
033   * Redistributions in binary form must reproduce the above copyright notice, 
034     this list of conditions and the following disclaimer in the documentation 
035     and/or other materials provided with the distribution.
036   * Neither the name of HL7 nor the names of its contributors may be used to 
037     endorse or promote products derived from this software without specific 
038     prior written permission.
039  
040  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
041  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
042  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
043  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
044  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
045  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
046  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
047  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
048  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
049  POSSIBILITY OF SUCH DAMAGE.
050  
051*/
052
053// Generated on Wed, Jan 30, 2019 16:19-0500 for FHIR v4.0.0
054
055
056import org.hl7.fhir.exceptions.FHIRException;
057
058public enum Iso21089Lifecycle {
059
060        /**
061         * Occurs when an agent causes the system to obtain and open a record entry for inspection or review.
062         */
063        ACCESS, 
064        /**
065         * Occurs when an agent causes the system to tag or otherwise indicate special access management and suspension of record entry deletion/destruction, if deemed relevant to a lawsuit or which are reasonably anticipated to be relevant or to fulfill organizational policy under the legal doctrine of “duty to preserve”.
066         */
067        HOLD, 
068        /**
069         * Occurs when an agent makes any change to record entry content currently residing in storage considered permanent (persistent).
070         */
071        AMEND, 
072        /**
073         * Occurs when an agent causes the system to create and move archive artifacts containing record entry content, typically to long-term offline storage.
074         */
075        ARCHIVE, 
076        /**
077         * Occurs when an agent causes the system to capture the agent’s digital signature (or equivalent indication) during formal validation of record entry content.
078         */
079        ATTEST, 
080        /**
081         * Occurs when an agent causes the system to decode record entry content from a cipher.
082         */
083        DECRYPT, 
084        /**
085         * Occurs when an agent causes the system to scrub record entry content to reduce the association between a set of identifying data and the data subject in a way that might or might not be reversible.
086         */
087        DEIDENTIFY, 
088        /**
089         * Occurs when an agent causes the system to tag record entry(ies) as obsolete, erroneous or untrustworthy, to warn against its future use.
090         */
091        DEPRECATE, 
092        /**
093         * Occurs when an agent causes the system to permanently erase record entry content from the system.
094         */
095        DESTROY, 
096        /**
097         * Occurs when an agent causes the system to release, transfer, provision access to, or otherwise divulge record entry content.
098         */
099        DISCLOSE, 
100        /**
101         * Occurs when an agent causes the system to encode record entry content in a cipher.
102         */
103        ENCRYPT, 
104        /**
105         * Occurs when an agent causes the system to selectively pull out a subset of record entry content, based on explicit criteria.
106         */
107        EXTRACT, 
108        /**
109         * Occurs when an agent causes the system to connect related record entries.
110         */
111        LINK, 
112        /**
113         * Occurs when an agent causes the system to combine or join content from two or more record entries, resulting in a single logical record entry.
114         */
115        MERGE, 
116        /**
117         * Occurs when an agent causes the system to: a) initiate capture of potential record content, and b) incorporate that content into the storage considered a permanent part of the health record.
118         */
119        ORIGINATE, 
120        /**
121         * Occurs when an agent causes the system to remove record entry content to reduce the association between a set of identifying data and the data subject in a way that may be reversible.
122         */
123        PSEUDONYMIZE, 
124        /**
125         * Occurs when an agent causes the system to recreate or restore full status to record entries previously deleted or deprecated.
126         */
127        REACTIVATE, 
128        /**
129         * Occurs when an agent causes the system to a) initiate capture of data content from elsewhere, and b) incorporate that content into the storage considered a permanent part of the health record.
130         */
131        RECEIVE, 
132        /**
133         * Occurs when an agent causes the system to restore information to data that allows identification of information source and/or information subject.
134         */
135        REIDENTIFY, 
136        /**
137         * Occurs when an agent causes the system to remove a tag or other cues for special access management had required to fulfill organizational policy under the legal doctrine of “duty to preserve”.
138         */
139        UNHOLD, 
140        /**
141         * Occurs when an agent causes the system to produce and deliver record entry content in a particular form and manner.
142         */
143        REPORT, 
144        /**
145         * Occurs when an agent causes the system to recreate record entries and their content from a previous created archive artefact.
146         */
147        RESTORE, 
148        /**
149         * Occurs when an agent causes the system to change the form, language or code system used to represent record entry content.
150         */
151        TRANSFORM, 
152        /**
153         * Occurs when an agent causes the system to send record entry content from one (EHR/PHR/other) system to another.
154         */
155        TRANSMIT, 
156        /**
157         * Occurs when an agent causes the system to disconnect two or more record entries previously connected, rendering them separate (disconnected) again.
158         */
159        UNLINK, 
160        /**
161         * Occurs when an agent causes the system to reverse a previous record entry merge operation, rendering them separate again.
162         */
163        UNMERGE, 
164        /**
165         * Occurs when an agent causes the system to confirm compliance of data or data objects with regulations, requirements, specifications, or other imposed conditions based on organizational policy.
166         */
167        VERIFY, 
168        /**
169         * added to help the parsers
170         */
171        NULL;
172        public static Iso21089Lifecycle fromCode(String codeString) throws FHIRException {
173            if (codeString == null || "".equals(codeString))
174                return null;
175        if ("access".equals(codeString))
176          return ACCESS;
177        if ("hold".equals(codeString))
178          return HOLD;
179        if ("amend".equals(codeString))
180          return AMEND;
181        if ("archive".equals(codeString))
182          return ARCHIVE;
183        if ("attest".equals(codeString))
184          return ATTEST;
185        if ("decrypt".equals(codeString))
186          return DECRYPT;
187        if ("deidentify".equals(codeString))
188          return DEIDENTIFY;
189        if ("deprecate".equals(codeString))
190          return DEPRECATE;
191        if ("destroy".equals(codeString))
192          return DESTROY;
193        if ("disclose".equals(codeString))
194          return DISCLOSE;
195        if ("encrypt".equals(codeString))
196          return ENCRYPT;
197        if ("extract".equals(codeString))
198          return EXTRACT;
199        if ("link".equals(codeString))
200          return LINK;
201        if ("merge".equals(codeString))
202          return MERGE;
203        if ("originate".equals(codeString))
204          return ORIGINATE;
205        if ("pseudonymize".equals(codeString))
206          return PSEUDONYMIZE;
207        if ("reactivate".equals(codeString))
208          return REACTIVATE;
209        if ("receive".equals(codeString))
210          return RECEIVE;
211        if ("reidentify".equals(codeString))
212          return REIDENTIFY;
213        if ("unhold".equals(codeString))
214          return UNHOLD;
215        if ("report".equals(codeString))
216          return REPORT;
217        if ("restore".equals(codeString))
218          return RESTORE;
219        if ("transform".equals(codeString))
220          return TRANSFORM;
221        if ("transmit".equals(codeString))
222          return TRANSMIT;
223        if ("unlink".equals(codeString))
224          return UNLINK;
225        if ("unmerge".equals(codeString))
226          return UNMERGE;
227        if ("verify".equals(codeString))
228          return VERIFY;
229        throw new FHIRException("Unknown Iso21089Lifecycle code '"+codeString+"'");
230        }
231        public String toCode() {
232          switch (this) {
233            case ACCESS: return "access";
234            case HOLD: return "hold";
235            case AMEND: return "amend";
236            case ARCHIVE: return "archive";
237            case ATTEST: return "attest";
238            case DECRYPT: return "decrypt";
239            case DEIDENTIFY: return "deidentify";
240            case DEPRECATE: return "deprecate";
241            case DESTROY: return "destroy";
242            case DISCLOSE: return "disclose";
243            case ENCRYPT: return "encrypt";
244            case EXTRACT: return "extract";
245            case LINK: return "link";
246            case MERGE: return "merge";
247            case ORIGINATE: return "originate";
248            case PSEUDONYMIZE: return "pseudonymize";
249            case REACTIVATE: return "reactivate";
250            case RECEIVE: return "receive";
251            case REIDENTIFY: return "reidentify";
252            case UNHOLD: return "unhold";
253            case REPORT: return "report";
254            case RESTORE: return "restore";
255            case TRANSFORM: return "transform";
256            case TRANSMIT: return "transmit";
257            case UNLINK: return "unlink";
258            case UNMERGE: return "unmerge";
259            case VERIFY: return "verify";
260            default: return "?";
261          }
262        }
263        public String getSystem() {
264          return "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle";
265        }
266        public String getDefinition() {
267          switch (this) {
268            case ACCESS: return "Occurs when an agent causes the system to obtain and open a record entry for inspection or review.";
269            case HOLD: return "Occurs when an agent causes the system to tag or otherwise indicate special access management and suspension of record entry deletion/destruction, if deemed relevant to a lawsuit or which are reasonably anticipated to be relevant or to fulfill organizational policy under the legal doctrine of “duty to preserve”.";
270            case AMEND: return "Occurs when an agent makes any change to record entry content currently residing in storage considered permanent (persistent).";
271            case ARCHIVE: return "Occurs when an agent causes the system to create and move archive artifacts containing record entry content, typically to long-term offline storage.";
272            case ATTEST: return "Occurs when an agent causes the system to capture the agent’s digital signature (or equivalent indication) during formal validation of record entry content.";
273            case DECRYPT: return "Occurs when an agent causes the system to decode record entry content from a cipher.";
274            case DEIDENTIFY: return "Occurs when an agent causes the system to scrub record entry content to reduce the association between a set of identifying data and the data subject in a way that might or might not be reversible.";
275            case DEPRECATE: return "Occurs when an agent causes the system to tag record entry(ies) as obsolete, erroneous or untrustworthy, to warn against its future use.";
276            case DESTROY: return "Occurs when an agent causes the system to permanently erase record entry content from the system.";
277            case DISCLOSE: return "Occurs when an agent causes the system to release, transfer, provision access to, or otherwise divulge record entry content.";
278            case ENCRYPT: return "Occurs when an agent causes the system to encode record entry content in a cipher.";
279            case EXTRACT: return "Occurs when an agent causes the system to selectively pull out a subset of record entry content, based on explicit criteria.";
280            case LINK: return "Occurs when an agent causes the system to connect related record entries.";
281            case MERGE: return "Occurs when an agent causes the system to combine or join content from two or more record entries, resulting in a single logical record entry.";
282            case ORIGINATE: return "Occurs when an agent causes the system to: a) initiate capture of potential record content, and b) incorporate that content into the storage considered a permanent part of the health record.";
283            case PSEUDONYMIZE: return "Occurs when an agent causes the system to remove record entry content to reduce the association between a set of identifying data and the data subject in a way that may be reversible.";
284            case REACTIVATE: return "Occurs when an agent causes the system to recreate or restore full status to record entries previously deleted or deprecated.";
285            case RECEIVE: return "Occurs when an agent causes the system to a) initiate capture of data content from elsewhere, and b) incorporate that content into the storage considered a permanent part of the health record.";
286            case REIDENTIFY: return "Occurs when an agent causes the system to restore information to data that allows identification of information source and/or information subject.";
287            case UNHOLD: return "Occurs when an agent causes the system to remove a tag or other cues for special access management had required to fulfill organizational policy under the legal doctrine of “duty to preserve”.";
288            case REPORT: return "Occurs when an agent causes the system to produce and deliver record entry content in a particular form and manner.";
289            case RESTORE: return "Occurs when an agent causes the system to recreate record entries and their content from a previous created archive artefact.";
290            case TRANSFORM: return "Occurs when an agent causes the system to change the form, language or code system used to represent record entry content.";
291            case TRANSMIT: return "Occurs when an agent causes the system to send record entry content from one (EHR/PHR/other) system to another.";
292            case UNLINK: return "Occurs when an agent causes the system to disconnect two or more record entries previously connected, rendering them separate (disconnected) again.";
293            case UNMERGE: return "Occurs when an agent causes the system to reverse a previous record entry merge operation, rendering them separate again.";
294            case VERIFY: return "Occurs when an agent causes the system to confirm compliance of data or data objects with regulations, requirements, specifications, or other imposed conditions based on organizational policy.";
295            default: return "?";
296          }
297        }
298        public String getDisplay() {
299          switch (this) {
300            case ACCESS: return "Access/View Record Lifecycle Event";
301            case HOLD: return "Add Legal Hold Record Lifecycle Event";
302            case AMEND: return "Amend (Update) Record Lifecycle Event";
303            case ARCHIVE: return "Archive Record Lifecycle Event";
304            case ATTEST: return "Attest Record Lifecycle Event";
305            case DECRYPT: return "Decrypt Record Lifecycle Event";
306            case DEIDENTIFY: return "De-Identify (Anononymize) Record Lifecycle Event";
307            case DEPRECATE: return "Deprecate Record Lifecycle Event";
308            case DESTROY: return "Destroy/Delete Record Lifecycle Event";
309            case DISCLOSE: return "Disclose Record Lifecycle Event";
310            case ENCRYPT: return "Encrypt Record Lifecycle Event";
311            case EXTRACT: return "Extract Record Lifecycle Event";
312            case LINK: return "Link Record Lifecycle Event";
313            case MERGE: return "Merge Record Lifecycle Event";
314            case ORIGINATE: return "Originate/Retain Record Lifecycle Event";
315            case PSEUDONYMIZE: return "Pseudonymize Record Lifecycle Event";
316            case REACTIVATE: return "Re-activate Record Lifecycle Event";
317            case RECEIVE: return "Receive/Retain Record Lifecycle Event";
318            case REIDENTIFY: return "Re-identify Record Lifecycle Event";
319            case UNHOLD: return "Remove Legal Hold Record Lifecycle Event";
320            case REPORT: return "Report (Output) Record Lifecycle Event";
321            case RESTORE: return "Restore Record Lifecycle Event";
322            case TRANSFORM: return "Transform/Translate Record Lifecycle Event";
323            case TRANSMIT: return "Transmit Record Lifecycle Event";
324            case UNLINK: return "Unlink Record Lifecycle Event";
325            case UNMERGE: return "Unmerge Record Lifecycle Event";
326            case VERIFY: return "Verify Record Lifecycle Event";
327            default: return "?";
328          }
329    }
330
331
332}
333