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