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