001package org.hl7.fhir.r5.patterns;
002
003
004
005
006import java.util.Date;
007import java.util.List;
008
009import org.hl7.fhir.exceptions.FHIRException;
010
011/*
012  Copyright (c) 2011+, HL7, Inc.
013  All rights reserved.
014  
015  Redistribution and use in source and binary forms, with or without modification, 
016  are permitted provided that the following conditions are met:
017  
018   * Redistributions of source code must retain the above copyright notice, this 
019     list of conditions and the following disclaimer.
020   * Redistributions in binary form must reproduce the above copyright notice, 
021     this list of conditions and the following disclaimer in the documentation 
022     and/or other materials provided with the distribution.
023   * Neither the name of HL7 nor the names of its contributors may be used to 
024     endorse or promote products derived from this software without specific 
025     prior written permission.
026  
027  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
028  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
029  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
030  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
031  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
032  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
033  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
034  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
035  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
036  POSSIBILITY OF SUCH DAMAGE.
037  
038*/
039
040// Generated on Wed, May 8, 2019 10:40+1000 for FHIR v4.1.0
041import org.hl7.fhir.r5.model.Base;
042import org.hl7.fhir.r5.model.CodeableConcept;
043import org.hl7.fhir.r5.model.Configuration;
044import org.hl7.fhir.r5.model.DataType;
045import org.hl7.fhir.r5.model.DateTimeType;
046import org.hl7.fhir.r5.model.EnumFactory;
047import org.hl7.fhir.r5.model.Enumeration;
048import org.hl7.fhir.r5.model.Identifier;
049import org.hl7.fhir.r5.model.InstantType;
050import org.hl7.fhir.r5.model.Period;
051import org.hl7.fhir.r5.model.PrimitiveType;
052import org.hl7.fhir.r5.model.Reference;
053import org.hl7.fhir.r5.model.StringType;
054import org.hl7.fhir.r5.model.Timing;
055/**
056 * Who What When Where Why - Common pattern for all resources that deals with attribution.
057 */
058public interface Fivews extends PatternBase {
059
060    public enum CanonicalStatus {
061        /**
062         * The resource was created in error, and should not be treated as valid (note: in many cases, for various data integrity related reasons, the information cannot be removed from the record)
063         */
064        ERROR, 
065        /**
066         * The resource describes an action or plan that is proposed, and not yet approved by the participants
067         */
068        PROPOSED, 
069        /**
070         * The resource describes a course of action that is planned and agreed/approved, but at the time of recording was still future
071         */
072        PLANNED, 
073        /**
074         * The information in the resource is still being prepared and edited
075         */
076        DRAFT, 
077        /**
078         * A fulfiller has been asked to perform this action, but it has not yet occurred
079         */
080        REQUESTED, 
081        /**
082         * The fulfiller has received the request, but not yet agreed to carry out the action
083         */
084        RECEIVED, 
085        /**
086         * The fulfiller chose not to perform the action
087         */
088        DECLINED, 
089        /**
090         * The fulfiller has decided to perform the action, and plans are in train to do this in the future
091         */
092        ACCEPTED, 
093        /**
094         * The pre-conditions for the action are all fulfilled, and it is imminent
095         */
096        ARRIVED, 
097        /**
098         * The resource describes information that is currently valid or a process that is presently occuring
099         */
100        ACTIVE, 
101        /**
102         * The process described/requested in this resource has been halted for some reason
103         */
104        SUSPENDED, 
105        /**
106         * The process described/requested in the resource could not be completed, and no further action is planned
107         */
108        FAILED, 
109        /**
110         * The information in this resource has been replaced by information in another resource
111         */
112        REPLACED, 
113        /**
114         * The process described/requested in the resource has been completed, and no further action is planned
115         */
116        COMPLETE, 
117        /**
118         * The resource describes information that is no longer valid or a process that is stopped occurring
119         */
120        INACTIVE, 
121        /**
122         * The process described/requested in the resource did not complete - usually due to some workflow error, and no further action is planned
123         */
124        ABANDONED, 
125        /**
126         * Authoring system does not know the status
127         */
128        UNKNOWN, 
129        /**
130         * The information in this resource is not yet approved
131         */
132        UNCONFIRMED, 
133        /**
134         * The information in this resource is approved
135         */
136        CONFIRMED, 
137        /**
138         * The issue identified by this resource is no longer of concern
139         */
140        RESOLVED, 
141        /**
142         * This information has been ruled out by testing and evaluation
143         */
144        REFUTED, 
145        /**
146         * Potentially true?
147         */
148        DIFFERENTIAL, 
149        /**
150         * This information is still being assembled
151         */
152        PARTIAL, 
153        /**
154         * not available at this time/location
155         */
156        BUSYUNAVAILABLE, 
157        /**
158         * Free for scheduling
159         */
160        FREE, 
161        /**
162         * Ready to act
163         */
164        ONTARGET, 
165        /**
166         * Ahead of the planned timelines
167         */
168        AHEADOFTARGET, 
169        /**
170         * 
171         */
172        BEHINDTARGET, 
173        /**
174         * Behind the planned timelines
175         */
176        NOTREADY, 
177        /**
178         * The device transducer is disconnected
179         */
180        TRANSDUCDISCON, 
181        /**
182         * The hardware is disconnected
183         */
184        HWDISCON, 
185        /**
186         * added to help the parsers with the generic types
187         */
188        NULL;
189        public static CanonicalStatus fromCode(String codeString) throws FHIRException {
190            if (codeString == null || "".equals(codeString))
191                return null;
192        if ("error".equals(codeString))
193          return ERROR;
194        if ("proposed".equals(codeString))
195          return PROPOSED;
196        if ("planned".equals(codeString))
197          return PLANNED;
198        if ("draft".equals(codeString))
199          return DRAFT;
200        if ("requested".equals(codeString))
201          return REQUESTED;
202        if ("received".equals(codeString))
203          return RECEIVED;
204        if ("declined".equals(codeString))
205          return DECLINED;
206        if ("accepted".equals(codeString))
207          return ACCEPTED;
208        if ("arrived".equals(codeString))
209          return ARRIVED;
210        if ("active".equals(codeString))
211          return ACTIVE;
212        if ("suspended".equals(codeString))
213          return SUSPENDED;
214        if ("failed".equals(codeString))
215          return FAILED;
216        if ("replaced".equals(codeString))
217          return REPLACED;
218        if ("complete".equals(codeString))
219          return COMPLETE;
220        if ("inactive".equals(codeString))
221          return INACTIVE;
222        if ("abandoned".equals(codeString))
223          return ABANDONED;
224        if ("unknown".equals(codeString))
225          return UNKNOWN;
226        if ("unconfirmed".equals(codeString))
227          return UNCONFIRMED;
228        if ("confirmed".equals(codeString))
229          return CONFIRMED;
230        if ("resolved".equals(codeString))
231          return RESOLVED;
232        if ("refuted".equals(codeString))
233          return REFUTED;
234        if ("differential".equals(codeString))
235          return DIFFERENTIAL;
236        if ("partial".equals(codeString))
237          return PARTIAL;
238        if ("busy-unavailable".equals(codeString))
239          return BUSYUNAVAILABLE;
240        if ("free".equals(codeString))
241          return FREE;
242        if ("on-target".equals(codeString))
243          return ONTARGET;
244        if ("ahead-of-target".equals(codeString))
245          return AHEADOFTARGET;
246        if ("behind-target".equals(codeString))
247          return BEHINDTARGET;
248        if ("not-ready".equals(codeString))
249          return NOTREADY;
250        if ("transduc-discon".equals(codeString))
251          return TRANSDUCDISCON;
252        if ("hw-discon".equals(codeString))
253          return HWDISCON;
254        if (Configuration.isAcceptInvalidEnums())
255          return null;
256        else
257          throw new FHIRException("Unknown CanonicalStatus code '"+codeString+"'");
258        }
259        public String toCode() {
260          switch (this) {
261            case ERROR: return "error";
262            case PROPOSED: return "proposed";
263            case PLANNED: return "planned";
264            case DRAFT: return "draft";
265            case REQUESTED: return "requested";
266            case RECEIVED: return "received";
267            case DECLINED: return "declined";
268            case ACCEPTED: return "accepted";
269            case ARRIVED: return "arrived";
270            case ACTIVE: return "active";
271            case SUSPENDED: return "suspended";
272            case FAILED: return "failed";
273            case REPLACED: return "replaced";
274            case COMPLETE: return "complete";
275            case INACTIVE: return "inactive";
276            case ABANDONED: return "abandoned";
277            case UNKNOWN: return "unknown";
278            case UNCONFIRMED: return "unconfirmed";
279            case CONFIRMED: return "confirmed";
280            case RESOLVED: return "resolved";
281            case REFUTED: return "refuted";
282            case DIFFERENTIAL: return "differential";
283            case PARTIAL: return "partial";
284            case BUSYUNAVAILABLE: return "busy-unavailable";
285            case FREE: return "free";
286            case ONTARGET: return "on-target";
287            case AHEADOFTARGET: return "ahead-of-target";
288            case BEHINDTARGET: return "behind-target";
289            case NOTREADY: return "not-ready";
290            case TRANSDUCDISCON: return "transduc-discon";
291            case HWDISCON: return "hw-discon";
292            case NULL: return null;
293            default: return "?";
294          }
295        }
296        public String getSystem() {
297          switch (this) {
298            case ERROR: return "http://hl7.org/fhir/resource-status";
299            case PROPOSED: return "http://hl7.org/fhir/resource-status";
300            case PLANNED: return "http://hl7.org/fhir/resource-status";
301            case DRAFT: return "http://hl7.org/fhir/resource-status";
302            case REQUESTED: return "http://hl7.org/fhir/resource-status";
303            case RECEIVED: return "http://hl7.org/fhir/resource-status";
304            case DECLINED: return "http://hl7.org/fhir/resource-status";
305            case ACCEPTED: return "http://hl7.org/fhir/resource-status";
306            case ARRIVED: return "http://hl7.org/fhir/resource-status";
307            case ACTIVE: return "http://hl7.org/fhir/resource-status";
308            case SUSPENDED: return "http://hl7.org/fhir/resource-status";
309            case FAILED: return "http://hl7.org/fhir/resource-status";
310            case REPLACED: return "http://hl7.org/fhir/resource-status";
311            case COMPLETE: return "http://hl7.org/fhir/resource-status";
312            case INACTIVE: return "http://hl7.org/fhir/resource-status";
313            case ABANDONED: return "http://hl7.org/fhir/resource-status";
314            case UNKNOWN: return "http://hl7.org/fhir/resource-status";
315            case UNCONFIRMED: return "http://hl7.org/fhir/resource-status";
316            case CONFIRMED: return "http://hl7.org/fhir/resource-status";
317            case RESOLVED: return "http://hl7.org/fhir/resource-status";
318            case REFUTED: return "http://hl7.org/fhir/resource-status";
319            case DIFFERENTIAL: return "http://hl7.org/fhir/resource-status";
320            case PARTIAL: return "http://hl7.org/fhir/resource-status";
321            case BUSYUNAVAILABLE: return "http://hl7.org/fhir/resource-status";
322            case FREE: return "http://hl7.org/fhir/resource-status";
323            case ONTARGET: return "http://hl7.org/fhir/resource-status";
324            case AHEADOFTARGET: return "http://hl7.org/fhir/resource-status";
325            case BEHINDTARGET: return "http://hl7.org/fhir/resource-status";
326            case NOTREADY: return "http://hl7.org/fhir/resource-status";
327            case TRANSDUCDISCON: return "http://hl7.org/fhir/resource-status";
328            case HWDISCON: return "http://hl7.org/fhir/resource-status";
329            case NULL: return null;
330            default: return "?";
331          }
332        }
333        public String getDefinition() {
334          switch (this) {
335            case ERROR: return "The resource was created in error, and should not be treated as valid (note: in many cases, for various data integrity related reasons, the information cannot be removed from the record)";
336            case PROPOSED: return "The resource describes an action or plan that is proposed, and not yet approved by the participants";
337            case PLANNED: return "The resource describes a course of action that is planned and agreed/approved, but at the time of recording was still future";
338            case DRAFT: return "The information in the resource is still being prepared and edited";
339            case REQUESTED: return "A fulfiller has been asked to perform this action, but it has not yet occurred";
340            case RECEIVED: return "The fulfiller has received the request, but not yet agreed to carry out the action";
341            case DECLINED: return "The fulfiller chose not to perform the action";
342            case ACCEPTED: return "The fulfiller has decided to perform the action, and plans are in train to do this in the future";
343            case ARRIVED: return "The pre-conditions for the action are all fulfilled, and it is imminent";
344            case ACTIVE: return "The resource describes information that is currently valid or a process that is presently occuring";
345            case SUSPENDED: return "The process described/requested in this resource has been halted for some reason";
346            case FAILED: return "The process described/requested in the resource could not be completed, and no further action is planned";
347            case REPLACED: return "The information in this resource has been replaced by information in another resource";
348            case COMPLETE: return "The process described/requested in the resource has been completed, and no further action is planned";
349            case INACTIVE: return "The resource describes information that is no longer valid or a process that is stopped occurring";
350            case ABANDONED: return "The process described/requested in the resource did not complete - usually due to some workflow error, and no further action is planned";
351            case UNKNOWN: return "Authoring system does not know the status";
352            case UNCONFIRMED: return "The information in this resource is not yet approved";
353            case CONFIRMED: return "The information in this resource is approved";
354            case RESOLVED: return "The issue identified by this resource is no longer of concern";
355            case REFUTED: return "This information has been ruled out by testing and evaluation";
356            case DIFFERENTIAL: return "Potentially true?";
357            case PARTIAL: return "This information is still being assembled";
358            case BUSYUNAVAILABLE: return "not available at this time/location";
359            case FREE: return "Free for scheduling";
360            case ONTARGET: return "Ready to act";
361            case AHEADOFTARGET: return "Ahead of the planned timelines";
362            case BEHINDTARGET: return "";
363            case NOTREADY: return "Behind the planned timelines";
364            case TRANSDUCDISCON: return "The device transducer is disconnected";
365            case HWDISCON: return "The hardware is disconnected";
366            case NULL: return null;
367            default: return "?";
368          }
369        }
370        public String getDisplay() {
371          switch (this) {
372            case ERROR: return "error";
373            case PROPOSED: return "proposed";
374            case PLANNED: return "planned";
375            case DRAFT: return "draft";
376            case REQUESTED: return "requested";
377            case RECEIVED: return "received";
378            case DECLINED: return "declined";
379            case ACCEPTED: return "accepted";
380            case ARRIVED: return "arrived";
381            case ACTIVE: return "active";
382            case SUSPENDED: return "suspended";
383            case FAILED: return "failed";
384            case REPLACED: return "replaced";
385            case COMPLETE: return "complete";
386            case INACTIVE: return "inactive";
387            case ABANDONED: return "abandoned";
388            case UNKNOWN: return "unknown";
389            case UNCONFIRMED: return "unconfirmed";
390            case CONFIRMED: return "confirmed";
391            case RESOLVED: return "resolved";
392            case REFUTED: return "refuted";
393            case DIFFERENTIAL: return "differential";
394            case PARTIAL: return "partial";
395            case BUSYUNAVAILABLE: return "busy-unavailable";
396            case FREE: return "free";
397            case ONTARGET: return "on-target";
398            case AHEADOFTARGET: return "ahead-of-target";
399            case BEHINDTARGET: return "behind-target";
400            case NOTREADY: return "not-ready";
401            case TRANSDUCDISCON: return "transduc-discon";
402            case HWDISCON: return "hw-discon";
403            case NULL: return null;
404            default: return "?";
405          }
406        }
407    }
408
409  public class CanonicalStatusEnumFactory implements EnumFactory<CanonicalStatus> {
410    public CanonicalStatus fromCode(String codeString) throws IllegalArgumentException {
411      if (codeString == null || "".equals(codeString))
412            if (codeString == null || "".equals(codeString))
413                return null;
414        if ("error".equals(codeString))
415          return CanonicalStatus.ERROR;
416        if ("proposed".equals(codeString))
417          return CanonicalStatus.PROPOSED;
418        if ("planned".equals(codeString))
419          return CanonicalStatus.PLANNED;
420        if ("draft".equals(codeString))
421          return CanonicalStatus.DRAFT;
422        if ("requested".equals(codeString))
423          return CanonicalStatus.REQUESTED;
424        if ("received".equals(codeString))
425          return CanonicalStatus.RECEIVED;
426        if ("declined".equals(codeString))
427          return CanonicalStatus.DECLINED;
428        if ("accepted".equals(codeString))
429          return CanonicalStatus.ACCEPTED;
430        if ("arrived".equals(codeString))
431          return CanonicalStatus.ARRIVED;
432        if ("active".equals(codeString))
433          return CanonicalStatus.ACTIVE;
434        if ("suspended".equals(codeString))
435          return CanonicalStatus.SUSPENDED;
436        if ("failed".equals(codeString))
437          return CanonicalStatus.FAILED;
438        if ("replaced".equals(codeString))
439          return CanonicalStatus.REPLACED;
440        if ("complete".equals(codeString))
441          return CanonicalStatus.COMPLETE;
442        if ("inactive".equals(codeString))
443          return CanonicalStatus.INACTIVE;
444        if ("abandoned".equals(codeString))
445          return CanonicalStatus.ABANDONED;
446        if ("unknown".equals(codeString))
447          return CanonicalStatus.UNKNOWN;
448        if ("unconfirmed".equals(codeString))
449          return CanonicalStatus.UNCONFIRMED;
450        if ("confirmed".equals(codeString))
451          return CanonicalStatus.CONFIRMED;
452        if ("resolved".equals(codeString))
453          return CanonicalStatus.RESOLVED;
454        if ("refuted".equals(codeString))
455          return CanonicalStatus.REFUTED;
456        if ("differential".equals(codeString))
457          return CanonicalStatus.DIFFERENTIAL;
458        if ("partial".equals(codeString))
459          return CanonicalStatus.PARTIAL;
460        if ("busy-unavailable".equals(codeString))
461          return CanonicalStatus.BUSYUNAVAILABLE;
462        if ("free".equals(codeString))
463          return CanonicalStatus.FREE;
464        if ("on-target".equals(codeString))
465          return CanonicalStatus.ONTARGET;
466        if ("ahead-of-target".equals(codeString))
467          return CanonicalStatus.AHEADOFTARGET;
468        if ("behind-target".equals(codeString))
469          return CanonicalStatus.BEHINDTARGET;
470        if ("not-ready".equals(codeString))
471          return CanonicalStatus.NOTREADY;
472        if ("transduc-discon".equals(codeString))
473          return CanonicalStatus.TRANSDUCDISCON;
474        if ("hw-discon".equals(codeString))
475          return CanonicalStatus.HWDISCON;
476        throw new IllegalArgumentException("Unknown CanonicalStatus code '"+codeString+"'");
477        }
478        public Enumeration<CanonicalStatus> fromType(PrimitiveType<?> code) throws FHIRException {
479          if (code == null)
480            return null;
481          if (code.isEmpty())
482            return new Enumeration<CanonicalStatus>(this, CanonicalStatus.NULL, code);
483          String codeString = ((PrimitiveType) code).asStringValue();
484          if (codeString == null || "".equals(codeString))
485            return new Enumeration<CanonicalStatus>(this, CanonicalStatus.NULL, code);
486        if ("error".equals(codeString))
487          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.ERROR, code);
488        if ("proposed".equals(codeString))
489          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.PROPOSED, code);
490        if ("planned".equals(codeString))
491          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.PLANNED, code);
492        if ("draft".equals(codeString))
493          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.DRAFT, code);
494        if ("requested".equals(codeString))
495          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.REQUESTED, code);
496        if ("received".equals(codeString))
497          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.RECEIVED, code);
498        if ("declined".equals(codeString))
499          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.DECLINED, code);
500        if ("accepted".equals(codeString))
501          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.ACCEPTED, code);
502        if ("arrived".equals(codeString))
503          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.ARRIVED, code);
504        if ("active".equals(codeString))
505          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.ACTIVE, code);
506        if ("suspended".equals(codeString))
507          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.SUSPENDED, code);
508        if ("failed".equals(codeString))
509          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.FAILED, code);
510        if ("replaced".equals(codeString))
511          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.REPLACED, code);
512        if ("complete".equals(codeString))
513          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.COMPLETE, code);
514        if ("inactive".equals(codeString))
515          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.INACTIVE, code);
516        if ("abandoned".equals(codeString))
517          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.ABANDONED, code);
518        if ("unknown".equals(codeString))
519          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.UNKNOWN, code);
520        if ("unconfirmed".equals(codeString))
521          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.UNCONFIRMED, code);
522        if ("confirmed".equals(codeString))
523          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.CONFIRMED, code);
524        if ("resolved".equals(codeString))
525          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.RESOLVED, code);
526        if ("refuted".equals(codeString))
527          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.REFUTED, code);
528        if ("differential".equals(codeString))
529          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.DIFFERENTIAL, code);
530        if ("partial".equals(codeString))
531          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.PARTIAL, code);
532        if ("busy-unavailable".equals(codeString))
533          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.BUSYUNAVAILABLE, code);
534        if ("free".equals(codeString))
535          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.FREE, code);
536        if ("on-target".equals(codeString))
537          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.ONTARGET, code);
538        if ("ahead-of-target".equals(codeString))
539          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.AHEADOFTARGET, code);
540        if ("behind-target".equals(codeString))
541          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.BEHINDTARGET, code);
542        if ("not-ready".equals(codeString))
543          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.NOTREADY, code);
544        if ("transduc-discon".equals(codeString))
545          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.TRANSDUCDISCON, code);
546        if ("hw-discon".equals(codeString))
547          return new Enumeration<CanonicalStatus>(this, CanonicalStatus.HWDISCON, code);
548        throw new FHIRException("Unknown CanonicalStatus code '"+codeString+"'");
549        }
550    public String toCode(CanonicalStatus code) {
551      if (code == CanonicalStatus.ERROR)
552        return "error";
553      if (code == CanonicalStatus.PROPOSED)
554        return "proposed";
555      if (code == CanonicalStatus.PLANNED)
556        return "planned";
557      if (code == CanonicalStatus.DRAFT)
558        return "draft";
559      if (code == CanonicalStatus.REQUESTED)
560        return "requested";
561      if (code == CanonicalStatus.RECEIVED)
562        return "received";
563      if (code == CanonicalStatus.DECLINED)
564        return "declined";
565      if (code == CanonicalStatus.ACCEPTED)
566        return "accepted";
567      if (code == CanonicalStatus.ARRIVED)
568        return "arrived";
569      if (code == CanonicalStatus.ACTIVE)
570        return "active";
571      if (code == CanonicalStatus.SUSPENDED)
572        return "suspended";
573      if (code == CanonicalStatus.FAILED)
574        return "failed";
575      if (code == CanonicalStatus.REPLACED)
576        return "replaced";
577      if (code == CanonicalStatus.COMPLETE)
578        return "complete";
579      if (code == CanonicalStatus.INACTIVE)
580        return "inactive";
581      if (code == CanonicalStatus.ABANDONED)
582        return "abandoned";
583      if (code == CanonicalStatus.UNKNOWN)
584        return "unknown";
585      if (code == CanonicalStatus.UNCONFIRMED)
586        return "unconfirmed";
587      if (code == CanonicalStatus.CONFIRMED)
588        return "confirmed";
589      if (code == CanonicalStatus.RESOLVED)
590        return "resolved";
591      if (code == CanonicalStatus.REFUTED)
592        return "refuted";
593      if (code == CanonicalStatus.DIFFERENTIAL)
594        return "differential";
595      if (code == CanonicalStatus.PARTIAL)
596        return "partial";
597      if (code == CanonicalStatus.BUSYUNAVAILABLE)
598        return "busy-unavailable";
599      if (code == CanonicalStatus.FREE)
600        return "free";
601      if (code == CanonicalStatus.ONTARGET)
602        return "on-target";
603      if (code == CanonicalStatus.AHEADOFTARGET)
604        return "ahead-of-target";
605      if (code == CanonicalStatus.BEHINDTARGET)
606        return "behind-target";
607      if (code == CanonicalStatus.NOTREADY)
608        return "not-ready";
609      if (code == CanonicalStatus.TRANSDUCDISCON)
610        return "transduc-discon";
611      if (code == CanonicalStatus.HWDISCON)
612        return "hw-discon";
613      return "?";
614      }
615    public String toSystem(CanonicalStatus code) {
616      return code.getSystem();
617      }
618    }
619
620    /**
621     * @return {@link #identifier} (Business Identifier.)
622     */
623    public List<Identifier> getIdentifier() throws FHIRException;
624
625    /**
626     * @return Returns a reference to <code>this</code> for easy method chaining
627     */
628    public Fivews setIdentifier(List<Identifier> theIdentifier) throws FHIRException;
629
630    /**
631     * @return whether there is more than zero values for identifier
632     */
633    public boolean hasIdentifier();
634    /**
635     * @return minimum allowed cardinality for identifier. Note that with patterns, this may be different for the underlying resource
636     */
637    public int getIdentifierMin();
638    /**
639     * @return maximum allowed cardinality for identifier. Note that with patterns, this may be different for the underlying resource
640     */
641    public int getIdentifierMax();
642
643    public Identifier addIdentifier() throws FHIRException;
644
645    public Fivews addIdentifier(Identifier t) throws FHIRException;
646
647    /**
648     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
649     */
650    public Identifier getIdentifierFirstRep() throws FHIRException;
651
652    /**
653     * @return {@link #version} (Identifier for this version.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
654     */
655    public StringType getVersionElement() throws FHIRException;
656
657    /**
658     * @return whether there is more than zero values for version
659     */
660    public boolean hasVersion();
661    /**
662     * @return minimum allowed cardinality for version. Note that with patterns, this may be different for the underlying resource
663     */
664    public int getVersionMin() throws FHIRException;
665    /**
666     * @return maximum allowed cardinality for version. Note that with patterns, this may be different for the underlying resource
667     */
668    public int getVersionMax() throws FHIRException;
669    public boolean hasVersionElement();
670
671    /**
672     * @param value {@link #version} (Identifier for this version.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
673     */
674    public Fivews setVersionElement(StringType value) throws FHIRException;
675
676    /**
677     * @return Identifier for this version.
678     */
679    public String getVersion() throws FHIRException;
680
681    /**
682     * @param value Identifier for this version.
683     */
684    public Fivews setVersion(String value) throws FHIRException;
685
686    /**
687     * @return {@link #status} (Status Field.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
688     */
689    public Enumeration<CanonicalStatus> getStatusElement() throws FHIRException;
690
691    /**
692     * @return whether there is more than zero values for status
693     */
694    public boolean hasStatus();
695    /**
696     * @return minimum allowed cardinality for status. Note that with patterns, this may be different for the underlying resource
697     */
698    public int getStatusMin() throws FHIRException;
699    /**
700     * @return maximum allowed cardinality for status. Note that with patterns, this may be different for the underlying resource
701     */
702    public int getStatusMax() throws FHIRException;
703    public boolean hasStatusElement();
704
705    /**
706     * @param value {@link #status} (Status Field.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
707     */
708    public Fivews setStatusElement(Enumeration<CanonicalStatus> value) throws FHIRException;
709
710    /**
711     * @return Status Field.
712     */
713    public CanonicalStatus getStatus() throws FHIRException;
714
715    /**
716     * @param value Status Field.
717     */
718    public Fivews setStatus(CanonicalStatus value) throws FHIRException;
719
720    /**
721     * @return {@link #class_} (Classifier Field.)
722     */
723    public List<CodeableConcept> getClass_() throws FHIRException;
724
725    /**
726     * @return Returns a reference to <code>this</code> for easy method chaining
727     */
728    public Fivews setClass_(List<CodeableConcept> theClass_) throws FHIRException;
729
730    /**
731     * @return whether there is more than zero values for class_
732     */
733    public boolean hasClass_();
734    /**
735     * @return minimum allowed cardinality for class_. Note that with patterns, this may be different for the underlying resource
736     */
737    public int getClass_Min();
738    /**
739     * @return maximum allowed cardinality for class_. Note that with patterns, this may be different for the underlying resource
740     */
741    public int getClass_Max();
742
743    public CodeableConcept addClass_() throws FHIRException;
744
745    public Fivews addClass_(CodeableConcept t) throws FHIRException;
746
747    /**
748     * @return The first repetition of repeating field {@link #class_}, creating it if it does not already exist
749     */
750    public CodeableConcept getClass_FirstRep() throws FHIRException;
751
752    /**
753     * @return {@link #grade} (A field that indicates the potential impact of the content of the resource.)
754     */
755    public CodeableConcept getGrade() throws FHIRException ;
756
757    /**
758     * @return whether there is more than zero values for grade
759     */
760    public boolean hasGrade();
761    /**
762     * @return minimum allowed cardinality for grade. Note that with patterns, this may be different for the underlying resource
763     */
764    public int getGradeMin();
765    /**
766     * @return maximum allowed cardinality for grade. Note that with patterns, this may be different for the underlying resource
767     */
768    public int getGradeMax();
769    /**
770     * @param value {@link #grade} (A field that indicates the potential impact of the content of the resource.)
771     */
772    public Fivews setGrade(CodeableConcept value) throws FHIRException;
773
774    /**
775     * @return {@link #what} (what this resource is about.)
776     */
777    public DataType getWhat() throws FHIRException ;
778
779    /**
780     * @return {@link #what} (what this resource is about.)
781     */
782    public CodeableConcept getWhatCodeableConcept() throws FHIRException;
783
784    public boolean hasWhatCodeableConcept();
785
786    /**
787     * @return {@link #what} (what this resource is about.)
788     */
789    public Reference getWhatReference() throws FHIRException;
790
791    public boolean hasWhatReference();
792
793    /**
794     * @return whether there is more than zero values for what
795     */
796    public boolean hasWhat();
797    /**
798     * @return minimum allowed cardinality for what. Note that with patterns, this may be different for the underlying resource
799     */
800    public int getWhatMin();
801    /**
802     * @return maximum allowed cardinality for what. Note that with patterns, this may be different for the underlying resource
803     */
804    public int getWhatMax();
805    /**
806     * @param value {@link #what} (what this resource is about.)
807     */
808    public Fivews setWhat(DataType value) throws FHIRException;
809
810    /**
811     * @return {@link #subject} (Who this resource is about.)
812     */
813    public List<Reference> getSubject() throws FHIRException;
814
815    /**
816     * @return Returns a reference to <code>this</code> for easy method chaining
817     */
818    public Fivews setSubject(List<Reference> theSubject) throws FHIRException;
819
820    /**
821     * @return whether there is more than zero values for subject
822     */
823    public boolean hasSubject();
824    /**
825     * @return minimum allowed cardinality for subject. Note that with patterns, this may be different for the underlying resource
826     */
827    public int getSubjectMin();
828    /**
829     * @return maximum allowed cardinality for subject. Note that with patterns, this may be different for the underlying resource
830     */
831    public int getSubjectMax();
832
833    public Reference addSubject() throws FHIRException;
834
835    public Fivews addSubject(Reference t) throws FHIRException;
836
837    /**
838     * @return The first repetition of repeating field {@link #subject}, creating it if it does not already exist
839     */
840    public Reference getSubjectFirstRep() throws FHIRException;
841
842    /**
843     * @return {@link #context} (a resource that gives context for the work described in this resource (usually Encounter or EpisodeOfCare).)
844     */
845    public Reference getContext() throws FHIRException ;
846
847    /**
848     * @return whether there is more than zero values for context
849     */
850    public boolean hasContext();
851    /**
852     * @return minimum allowed cardinality for context. Note that with patterns, this may be different for the underlying resource
853     */
854    public int getContextMin();
855    /**
856     * @return maximum allowed cardinality for context. Note that with patterns, this may be different for the underlying resource
857     */
858    public int getContextMax();
859    /**
860     * @param value {@link #context} (a resource that gives context for the work described in this resource (usually Encounter or EpisodeOfCare).)
861     */
862    public Fivews setContext(Reference value) throws FHIRException;
863
864    /**
865     * @return {@link #init} (when the work described in this resource was started (or will be).). This is the underlying object with id, value and extensions. The accessor "getInit" gives direct access to the value
866     */
867    public DateTimeType getInitElement() throws FHIRException;
868
869    /**
870     * @return whether there is more than zero values for init
871     */
872    public boolean hasInit();
873    /**
874     * @return minimum allowed cardinality for init. Note that with patterns, this may be different for the underlying resource
875     */
876    public int getInitMin() throws FHIRException;
877    /**
878     * @return maximum allowed cardinality for init. Note that with patterns, this may be different for the underlying resource
879     */
880    public int getInitMax() throws FHIRException;
881    public boolean hasInitElement();
882
883    /**
884     * @param value {@link #init} (when the work described in this resource was started (or will be).). This is the underlying object with id, value and extensions. The accessor "getInit" gives direct access to the value
885     */
886    public Fivews setInitElement(DateTimeType value) throws FHIRException;
887
888    /**
889     * @return when the work described in this resource was started (or will be).
890     */
891    public Date getInit() throws FHIRException;
892
893    /**
894     * @param value when the work described in this resource was started (or will be).
895     */
896    public Fivews setInit(Date value) throws FHIRException;
897
898    /**
899     * @return {@link #planned} (when this resource is planned to occur.)
900     */
901    public List<Timing> getPlanned() throws FHIRException;
902
903    /**
904     * @return Returns a reference to <code>this</code> for easy method chaining
905     */
906    public Fivews setPlanned(List<Timing> thePlanned) throws FHIRException;
907
908    /**
909     * @return whether there is more than zero values for planned
910     */
911    public boolean hasPlanned();
912    /**
913     * @return minimum allowed cardinality for planned. Note that with patterns, this may be different for the underlying resource
914     */
915    public int getPlannedMin();
916    /**
917     * @return maximum allowed cardinality for planned. Note that with patterns, this may be different for the underlying resource
918     */
919    public int getPlannedMax();
920
921    public Timing addPlanned() throws FHIRException;
922
923    public Fivews addPlanned(Timing t) throws FHIRException;
924
925    /**
926     * @return The first repetition of repeating field {@link #planned}, creating it if it does not already exist
927     */
928    public Timing getPlannedFirstRep() throws FHIRException;
929
930    /**
931     * @return {@link #done} (when the work described in this resource was completed (or will be).)
932     */
933    public DataType getDone() throws FHIRException ;
934
935    /**
936     * @return {@link #done} (when the work described in this resource was completed (or will be).)
937     */
938    public DateTimeType getDoneDateTimeType() throws FHIRException;
939
940    public boolean hasDoneDateTimeType();
941
942    /**
943     * @return {@link #done} (when the work described in this resource was completed (or will be).)
944     */
945    public Period getDonePeriod() throws FHIRException;
946
947    public boolean hasDonePeriod();
948
949    /**
950     * @return whether there is more than zero values for done
951     */
952    public boolean hasDone();
953    /**
954     * @return minimum allowed cardinality for done. Note that with patterns, this may be different for the underlying resource
955     */
956    public int getDoneMin();
957    /**
958     * @return maximum allowed cardinality for done. Note that with patterns, this may be different for the underlying resource
959     */
960    public int getDoneMax();
961    /**
962     * @param value {@link #done} (when the work described in this resource was completed (or will be).)
963     */
964    public Fivews setDone(DataType value) throws FHIRException;
965
966    /**
967     * @return {@link #recorded} (when this resource itself was created.). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value
968     */
969    public InstantType getRecordedElement() throws FHIRException;
970
971    /**
972     * @return whether there is more than zero values for recorded
973     */
974    public boolean hasRecorded();
975    /**
976     * @return minimum allowed cardinality for recorded. Note that with patterns, this may be different for the underlying resource
977     */
978    public int getRecordedMin() throws FHIRException;
979    /**
980     * @return maximum allowed cardinality for recorded. Note that with patterns, this may be different for the underlying resource
981     */
982    public int getRecordedMax() throws FHIRException;
983    public boolean hasRecordedElement();
984
985    /**
986     * @param value {@link #recorded} (when this resource itself was created.). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value
987     */
988    public Fivews setRecordedElement(InstantType value) throws FHIRException;
989
990    /**
991     * @return when this resource itself was created.
992     */
993    public Date getRecorded() throws FHIRException;
994
995    /**
996     * @param value when this resource itself was created.
997     */
998    public Fivews setRecorded(Date value) throws FHIRException;
999
1000    /**
1001     * @return {@link #author} (who authored the content of the resource.)
1002     */
1003    public List<Reference> getAuthor() throws FHIRException;
1004
1005    /**
1006     * @return Returns a reference to <code>this</code> for easy method chaining
1007     */
1008    public Fivews setAuthor(List<Reference> theAuthor) throws FHIRException;
1009
1010    /**
1011     * @return whether there is more than zero values for author
1012     */
1013    public boolean hasAuthor();
1014    /**
1015     * @return minimum allowed cardinality for author. Note that with patterns, this may be different for the underlying resource
1016     */
1017    public int getAuthorMin();
1018    /**
1019     * @return maximum allowed cardinality for author. Note that with patterns, this may be different for the underlying resource
1020     */
1021    public int getAuthorMax();
1022
1023    public Reference addAuthor() throws FHIRException;
1024
1025    public Fivews addAuthor(Reference t) throws FHIRException;
1026
1027    /**
1028     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist
1029     */
1030    public Reference getAuthorFirstRep() throws FHIRException;
1031
1032    /**
1033     * @return {@link #source} (Who provided the information in this resource.)
1034     */
1035    public List<Reference> getSource() throws FHIRException;
1036
1037    /**
1038     * @return Returns a reference to <code>this</code> for easy method chaining
1039     */
1040    public Fivews setSource(List<Reference> theSource) throws FHIRException;
1041
1042    /**
1043     * @return whether there is more than zero values for source
1044     */
1045    public boolean hasSource();
1046    /**
1047     * @return minimum allowed cardinality for source. Note that with patterns, this may be different for the underlying resource
1048     */
1049    public int getSourceMin();
1050    /**
1051     * @return maximum allowed cardinality for source. Note that with patterns, this may be different for the underlying resource
1052     */
1053    public int getSourceMax();
1054
1055    public Reference addSource() throws FHIRException;
1056
1057    public Fivews addSource(Reference t) throws FHIRException;
1058
1059    /**
1060     * @return The first repetition of repeating field {@link #source}, creating it if it does not already exist
1061     */
1062    public Reference getSourceFirstRep() throws FHIRException;
1063
1064    /**
1065     * @return {@link #actor} (who did the work described the resource (or will do).)
1066     */
1067    public List<Reference> getActor() throws FHIRException;
1068
1069    /**
1070     * @return Returns a reference to <code>this</code> for easy method chaining
1071     */
1072    public Fivews setActor(List<Reference> theActor) throws FHIRException;
1073
1074    /**
1075     * @return whether there is more than zero values for actor
1076     */
1077    public boolean hasActor();
1078    /**
1079     * @return minimum allowed cardinality for actor. Note that with patterns, this may be different for the underlying resource
1080     */
1081    public int getActorMin();
1082    /**
1083     * @return maximum allowed cardinality for actor. Note that with patterns, this may be different for the underlying resource
1084     */
1085    public int getActorMax();
1086
1087    public Reference addActor() throws FHIRException;
1088
1089    public Fivews addActor(Reference t) throws FHIRException;
1090
1091    /**
1092     * @return The first repetition of repeating field {@link #actor}, creating it if it does not already exist
1093     */
1094    public Reference getActorFirstRep() throws FHIRException;
1095
1096    /**
1097     * @return {@link #cause} (who prompted the work described in the resource.)
1098     */
1099    public List<Reference> getCause() throws FHIRException;
1100
1101    /**
1102     * @return Returns a reference to <code>this</code> for easy method chaining
1103     */
1104    public Fivews setCause(List<Reference> theCause) throws FHIRException;
1105
1106    /**
1107     * @return whether there is more than zero values for cause
1108     */
1109    public boolean hasCause();
1110    /**
1111     * @return minimum allowed cardinality for cause. Note that with patterns, this may be different for the underlying resource
1112     */
1113    public int getCauseMin();
1114    /**
1115     * @return maximum allowed cardinality for cause. Note that with patterns, this may be different for the underlying resource
1116     */
1117    public int getCauseMax();
1118
1119    public Reference addCause() throws FHIRException;
1120
1121    public Fivews addCause(Reference t) throws FHIRException;
1122
1123    /**
1124     * @return The first repetition of repeating field {@link #cause}, creating it if it does not already exist
1125     */
1126    public Reference getCauseFirstRep() throws FHIRException;
1127
1128    /**
1129     * @return {@link #witness} (who attests to the content of the resource (individual or org).)
1130     */
1131    public List<Reference> getWitness() throws FHIRException;
1132
1133    /**
1134     * @return Returns a reference to <code>this</code> for easy method chaining
1135     */
1136    public Fivews setWitness(List<Reference> theWitness) throws FHIRException;
1137
1138    /**
1139     * @return whether there is more than zero values for witness
1140     */
1141    public boolean hasWitness();
1142    /**
1143     * @return minimum allowed cardinality for witness. Note that with patterns, this may be different for the underlying resource
1144     */
1145    public int getWitnessMin();
1146    /**
1147     * @return maximum allowed cardinality for witness. Note that with patterns, this may be different for the underlying resource
1148     */
1149    public int getWitnessMax();
1150
1151    public Reference addWitness() throws FHIRException;
1152
1153    public Fivews addWitness(Reference t) throws FHIRException;
1154
1155    /**
1156     * @return The first repetition of repeating field {@link #witness}, creating it if it does not already exist
1157     */
1158    public Reference getWitnessFirstRep() throws FHIRException;
1159
1160    /**
1161     * @return {@link #who} (An actor involved in the work described by this resource.)
1162     */
1163    public List<Reference> getWho() throws FHIRException;
1164
1165    /**
1166     * @return Returns a reference to <code>this</code> for easy method chaining
1167     */
1168    public Fivews setWho(List<Reference> theWho) throws FHIRException;
1169
1170    /**
1171     * @return whether there is more than zero values for who
1172     */
1173    public boolean hasWho();
1174    /**
1175     * @return minimum allowed cardinality for who. Note that with patterns, this may be different for the underlying resource
1176     */
1177    public int getWhoMin();
1178    /**
1179     * @return maximum allowed cardinality for who. Note that with patterns, this may be different for the underlying resource
1180     */
1181    public int getWhoMax();
1182
1183    public Reference addWho() throws FHIRException;
1184
1185    public Fivews addWho(Reference t) throws FHIRException;
1186
1187    /**
1188     * @return The first repetition of repeating field {@link #who}, creating it if it does not already exist
1189     */
1190    public Reference getWhoFirstRep() throws FHIRException;
1191
1192    /**
1193     * @return {@link #where} (The location of the work described.)
1194     */
1195    public List<DataType> getWhere() throws FHIRException;
1196
1197    /**
1198     * @return Returns a reference to <code>this</code> for easy method chaining
1199     */
1200    public Fivews setWhere(List<DataType> theWhere) throws FHIRException;
1201
1202    /**
1203     * @return whether there is more than zero values for where
1204     */
1205    public boolean hasWhere();
1206    /**
1207     * @return minimum allowed cardinality for where. Note that with patterns, this may be different for the underlying resource
1208     */
1209    public int getWhereMin();
1210    /**
1211     * @return maximum allowed cardinality for where. Note that with patterns, this may be different for the underlying resource
1212     */
1213    public int getWhereMax();
1214
1215    public DataType addWhere() throws FHIRException;
1216
1217    public Fivews addWhere(DataType t) throws FHIRException;
1218
1219    /**
1220     * @return The first repetition of repeating field {@link #where}, creating it if it does not already exist
1221     */
1222    public DataType getWhereFirstRep() throws FHIRException;
1223
1224    /**
1225     * @return {@link #why} (Why this work was done.)
1226     */
1227    public List<DataType> getWhy() throws FHIRException;
1228
1229    /**
1230     * @return Returns a reference to <code>this</code> for easy method chaining
1231     */
1232    public Fivews setWhy(List<DataType> theWhy) throws FHIRException;
1233
1234    /**
1235     * @return whether there is more than zero values for why
1236     */
1237    public boolean hasWhy();
1238    /**
1239     * @return minimum allowed cardinality for why. Note that with patterns, this may be different for the underlying resource
1240     */
1241    public int getWhyMin();
1242    /**
1243     * @return maximum allowed cardinality for why. Note that with patterns, this may be different for the underlying resource
1244     */
1245    public int getWhyMax();
1246
1247    public DataType addWhy() throws FHIRException;
1248
1249    public Fivews addWhy(DataType t) throws FHIRException;
1250
1251    /**
1252     * @return The first repetition of repeating field {@link #why}, creating it if it does not already exist
1253     */
1254    public DataType getWhyFirstRep() throws FHIRException;
1255
1256  public String fhirType();
1257
1258
1259}