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            default: return "?";
243          }
244        }
245        public String getSystem() {
246          return "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle";
247        }
248        public String getDefinition() {
249          switch (this) {
250            case ACCESS: return "Occurs when an agent causes the system to obtain and open a record entry for inspection or review.";
251            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”.";
252            case AMEND: return "Occurs when an agent makes any change to record entry content currently residing in storage considered permanent (persistent).";
253            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.";
254            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.";
255            case DECRYPT: return "Occurs when an agent causes the system to decode record entry content from a cipher.";
256            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.";
257            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.";
258            case DESTROY: return "Occurs when an agent causes the system to permanently erase record entry content from the system.";
259            case DISCLOSE: return "Occurs when an agent causes the system to release, transfer, provision access to, or otherwise divulge record entry content.";
260            case ENCRYPT: return "Occurs when an agent causes the system to encode record entry content in a cipher.";
261            case EXTRACT: return "Occurs when an agent causes the system to selectively pull out a subset of record entry content, based on explicit criteria.";
262            case LINK: return "Occurs when an agent causes the system to connect related record entries.";
263            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.";
264            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.";
265            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.";
266            case REACTIVATE: return "Occurs when an agent causes the system to recreate or restore full status to record entries previously deleted or deprecated.";
267            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.";
268            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.";
269            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”.";
270            case REPORT: return "Occurs when an agent causes the system to produce and deliver record entry content in a particular form and manner.";
271            case RESTORE: return "Occurs when an agent causes the system to recreate record entries and their content from a previous created archive artefact.";
272            case TRANSFORM: return "Occurs when an agent causes the system to change the form, language or code system used to represent record entry content.";
273            case TRANSMIT: return "Occurs when an agent causes the system to send record entry content from one (EHR/PHR/other) system to another.";
274            case UNLINK: return "Occurs when an agent causes the system to disconnect two or more record entries previously connected, rendering them separate (disconnected) again.";
275            case UNMERGE: return "Occurs when an agent causes the system to reverse a previous record entry merge operation, rendering them separate again.";
276            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.";
277            default: return "?";
278          }
279        }
280        public String getDisplay() {
281          switch (this) {
282            case ACCESS: return "Access/View Record Lifecycle Event";
283            case HOLD: return "Add Legal Hold Record Lifecycle Event";
284            case AMEND: return "Amend (Update) Record Lifecycle Event";
285            case ARCHIVE: return "Archive Record Lifecycle Event";
286            case ATTEST: return "Attest Record Lifecycle Event";
287            case DECRYPT: return "Decrypt Record Lifecycle Event";
288            case DEIDENTIFY: return "De-Identify (Anononymize) Record Lifecycle Event";
289            case DEPRECATE: return "Deprecate Record Lifecycle Event";
290            case DESTROY: return "Destroy/Delete Record Lifecycle Event";
291            case DISCLOSE: return "Disclose Record Lifecycle Event";
292            case ENCRYPT: return "Encrypt Record Lifecycle Event";
293            case EXTRACT: return "Extract Record Lifecycle Event";
294            case LINK: return "Link Record Lifecycle Event";
295            case MERGE: return "Merge Record Lifecycle Event";
296            case ORIGINATE: return "Originate/Retain Record Lifecycle Event";
297            case PSEUDONYMIZE: return "Pseudonymize Record Lifecycle Event";
298            case REACTIVATE: return "Re-activate Record Lifecycle Event";
299            case RECEIVE: return "Receive/Retain Record Lifecycle Event";
300            case REIDENTIFY: return "Re-identify Record Lifecycle Event";
301            case UNHOLD: return "Remove Legal Hold Record Lifecycle Event";
302            case REPORT: return "Report (Output) Record Lifecycle Event";
303            case RESTORE: return "Restore Record Lifecycle Event";
304            case TRANSFORM: return "Transform/Translate Record Lifecycle Event";
305            case TRANSMIT: return "Transmit Record Lifecycle Event";
306            case UNLINK: return "Unlink Record Lifecycle Event";
307            case UNMERGE: return "Unmerge Record Lifecycle Event";
308            case VERIFY: return "Verify Record Lifecycle Event";
309            default: return "?";
310          }
311    }
312
313
314}