001package org.hl7.fhir.r4.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030*/
031
032// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1
033import java.util.ArrayList;
034import java.util.Date;
035import java.util.List;
036
037import org.hl7.fhir.exceptions.FHIRException;
038import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
039import org.hl7.fhir.r4.model.Enumerations.DocumentReferenceStatus;
040import org.hl7.fhir.r4.model.Enumerations.DocumentReferenceStatusEnumFactory;
041import org.hl7.fhir.utilities.Utilities;
042
043import ca.uhn.fhir.model.api.annotation.Block;
044import ca.uhn.fhir.model.api.annotation.Child;
045import ca.uhn.fhir.model.api.annotation.Description;
046import ca.uhn.fhir.model.api.annotation.ResourceDef;
047import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
048
049/**
050 * A collection of documents compiled for a purpose together with metadata that
051 * applies to the collection.
052 */
053@ResourceDef(name = "DocumentManifest", profile = "http://hl7.org/fhir/StructureDefinition/DocumentManifest")
054public class DocumentManifest extends DomainResource {
055
056  @Block()
057  public static class DocumentManifestRelatedComponent extends BackboneElement implements IBaseBackboneElement {
058    /**
059     * Related identifier to this DocumentManifest. For example, Order numbers,
060     * accession numbers, XDW workflow numbers.
061     */
062    @Child(name = "identifier", type = {
063        Identifier.class }, order = 1, min = 0, max = 1, modifier = false, summary = false)
064    @Description(shortDefinition = "Identifiers of things that are related", formalDefinition = "Related identifier to this DocumentManifest.  For example, Order numbers, accession numbers, XDW workflow numbers.")
065    protected Identifier identifier;
066
067    /**
068     * Related Resource to this DocumentManifest. For example, Order,
069     * ServiceRequest, Procedure, EligibilityRequest, etc.
070     */
071    @Child(name = "ref", type = { Reference.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
072    @Description(shortDefinition = "Related Resource", formalDefinition = "Related Resource to this DocumentManifest. For example, Order, ServiceRequest,  Procedure, EligibilityRequest, etc.")
073    protected Reference ref;
074
075    /**
076     * The actual object that is the target of the reference (Related Resource to
077     * this DocumentManifest. For example, Order, ServiceRequest, Procedure,
078     * EligibilityRequest, etc.)
079     */
080    protected Resource refTarget;
081
082    private static final long serialVersionUID = -1670123330L;
083
084    /**
085     * Constructor
086     */
087    public DocumentManifestRelatedComponent() {
088      super();
089    }
090
091    /**
092     * @return {@link #identifier} (Related identifier to this DocumentManifest. For
093     *         example, Order numbers, accession numbers, XDW workflow numbers.)
094     */
095    public Identifier getIdentifier() {
096      if (this.identifier == null)
097        if (Configuration.errorOnAutoCreate())
098          throw new Error("Attempt to auto-create DocumentManifestRelatedComponent.identifier");
099        else if (Configuration.doAutoCreate())
100          this.identifier = new Identifier(); // cc
101      return this.identifier;
102    }
103
104    public boolean hasIdentifier() {
105      return this.identifier != null && !this.identifier.isEmpty();
106    }
107
108    /**
109     * @param value {@link #identifier} (Related identifier to this
110     *              DocumentManifest. For example, Order numbers, accession numbers,
111     *              XDW workflow numbers.)
112     */
113    public DocumentManifestRelatedComponent setIdentifier(Identifier value) {
114      this.identifier = value;
115      return this;
116    }
117
118    /**
119     * @return {@link #ref} (Related Resource to this DocumentManifest. For example,
120     *         Order, ServiceRequest, Procedure, EligibilityRequest, etc.)
121     */
122    public Reference getRef() {
123      if (this.ref == null)
124        if (Configuration.errorOnAutoCreate())
125          throw new Error("Attempt to auto-create DocumentManifestRelatedComponent.ref");
126        else if (Configuration.doAutoCreate())
127          this.ref = new Reference(); // cc
128      return this.ref;
129    }
130
131    public boolean hasRef() {
132      return this.ref != null && !this.ref.isEmpty();
133    }
134
135    /**
136     * @param value {@link #ref} (Related Resource to this DocumentManifest. For
137     *              example, Order, ServiceRequest, Procedure, EligibilityRequest,
138     *              etc.)
139     */
140    public DocumentManifestRelatedComponent setRef(Reference value) {
141      this.ref = value;
142      return this;
143    }
144
145    /**
146     * @return {@link #ref} The actual object that is the target of the reference.
147     *         The reference library doesn't populate this, but you can use it to
148     *         hold the resource if you resolve it. (Related Resource to this
149     *         DocumentManifest. For example, Order, ServiceRequest, Procedure,
150     *         EligibilityRequest, etc.)
151     */
152    public Resource getRefTarget() {
153      return this.refTarget;
154    }
155
156    /**
157     * @param value {@link #ref} The actual object that is the target of the
158     *              reference. The reference library doesn't use these, but you can
159     *              use it to hold the resource if you resolve it. (Related Resource
160     *              to this DocumentManifest. For example, Order, ServiceRequest,
161     *              Procedure, EligibilityRequest, etc.)
162     */
163    public DocumentManifestRelatedComponent setRefTarget(Resource value) {
164      this.refTarget = value;
165      return this;
166    }
167
168    protected void listChildren(List<Property> children) {
169      super.listChildren(children);
170      children.add(new Property("identifier", "Identifier",
171          "Related identifier to this DocumentManifest.  For example, Order numbers, accession numbers, XDW workflow numbers.",
172          0, 1, identifier));
173      children.add(new Property("ref", "Reference(Any)",
174          "Related Resource to this DocumentManifest. For example, Order, ServiceRequest,  Procedure, EligibilityRequest, etc.",
175          0, 1, ref));
176    }
177
178    @Override
179    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
180      switch (_hash) {
181      case -1618432855:
182        /* identifier */ return new Property("identifier", "Identifier",
183            "Related identifier to this DocumentManifest.  For example, Order numbers, accession numbers, XDW workflow numbers.",
184            0, 1, identifier);
185      case 112787:
186        /* ref */ return new Property("ref", "Reference(Any)",
187            "Related Resource to this DocumentManifest. For example, Order, ServiceRequest,  Procedure, EligibilityRequest, etc.",
188            0, 1, ref);
189      default:
190        return super.getNamedProperty(_hash, _name, _checkValid);
191      }
192
193    }
194
195    @Override
196    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
197      switch (hash) {
198      case -1618432855:
199        /* identifier */ return this.identifier == null ? new Base[0] : new Base[] { this.identifier }; // Identifier
200      case 112787:
201        /* ref */ return this.ref == null ? new Base[0] : new Base[] { this.ref }; // Reference
202      default:
203        return super.getProperty(hash, name, checkValid);
204      }
205
206    }
207
208    @Override
209    public Base setProperty(int hash, String name, Base value) throws FHIRException {
210      switch (hash) {
211      case -1618432855: // identifier
212        this.identifier = castToIdentifier(value); // Identifier
213        return value;
214      case 112787: // ref
215        this.ref = castToReference(value); // Reference
216        return value;
217      default:
218        return super.setProperty(hash, name, value);
219      }
220
221    }
222
223    @Override
224    public Base setProperty(String name, Base value) throws FHIRException {
225      if (name.equals("identifier")) {
226        this.identifier = castToIdentifier(value); // Identifier
227      } else if (name.equals("ref")) {
228        this.ref = castToReference(value); // Reference
229      } else
230        return super.setProperty(name, value);
231      return value;
232    }
233
234  @Override
235  public void removeChild(String name, Base value) throws FHIRException {
236      if (name.equals("identifier")) {
237        this.identifier = null;
238      } else if (name.equals("ref")) {
239        this.ref = null;
240      } else
241        super.removeChild(name, value);
242      
243    }
244
245    @Override
246    public Base makeProperty(int hash, String name) throws FHIRException {
247      switch (hash) {
248      case -1618432855:
249        return getIdentifier();
250      case 112787:
251        return getRef();
252      default:
253        return super.makeProperty(hash, name);
254      }
255
256    }
257
258    @Override
259    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
260      switch (hash) {
261      case -1618432855:
262        /* identifier */ return new String[] { "Identifier" };
263      case 112787:
264        /* ref */ return new String[] { "Reference" };
265      default:
266        return super.getTypesForProperty(hash, name);
267      }
268
269    }
270
271    @Override
272    public Base addChild(String name) throws FHIRException {
273      if (name.equals("identifier")) {
274        this.identifier = new Identifier();
275        return this.identifier;
276      } else if (name.equals("ref")) {
277        this.ref = new Reference();
278        return this.ref;
279      } else
280        return super.addChild(name);
281    }
282
283    public DocumentManifestRelatedComponent copy() {
284      DocumentManifestRelatedComponent dst = new DocumentManifestRelatedComponent();
285      copyValues(dst);
286      return dst;
287    }
288
289    public void copyValues(DocumentManifestRelatedComponent dst) {
290      super.copyValues(dst);
291      dst.identifier = identifier == null ? null : identifier.copy();
292      dst.ref = ref == null ? null : ref.copy();
293    }
294
295    @Override
296    public boolean equalsDeep(Base other_) {
297      if (!super.equalsDeep(other_))
298        return false;
299      if (!(other_ instanceof DocumentManifestRelatedComponent))
300        return false;
301      DocumentManifestRelatedComponent o = (DocumentManifestRelatedComponent) other_;
302      return compareDeep(identifier, o.identifier, true) && compareDeep(ref, o.ref, true);
303    }
304
305    @Override
306    public boolean equalsShallow(Base other_) {
307      if (!super.equalsShallow(other_))
308        return false;
309      if (!(other_ instanceof DocumentManifestRelatedComponent))
310        return false;
311      DocumentManifestRelatedComponent o = (DocumentManifestRelatedComponent) other_;
312      return true;
313    }
314
315    public boolean isEmpty() {
316      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, ref);
317    }
318
319    public String fhirType() {
320      return "DocumentManifest.related";
321
322    }
323
324  }
325
326  /**
327   * A single identifier that uniquely identifies this manifest. Principally used
328   * to refer to the manifest in non-FHIR contexts.
329   */
330  @Child(name = "masterIdentifier", type = {
331      Identifier.class }, order = 0, min = 0, max = 1, modifier = false, summary = true)
332  @Description(shortDefinition = "Unique Identifier for the set of documents", formalDefinition = "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.")
333  protected Identifier masterIdentifier;
334
335  /**
336   * Other identifiers associated with the document manifest, including version
337   * independent identifiers.
338   */
339  @Child(name = "identifier", type = {
340      Identifier.class }, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
341  @Description(shortDefinition = "Other identifiers for the manifest", formalDefinition = "Other identifiers associated with the document manifest, including version independent  identifiers.")
342  protected List<Identifier> identifier;
343
344  /**
345   * The status of this document manifest.
346   */
347  @Child(name = "status", type = { CodeType.class }, order = 2, min = 1, max = 1, modifier = true, summary = true)
348  @Description(shortDefinition = "current | superseded | entered-in-error", formalDefinition = "The status of this document manifest.")
349  @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/document-reference-status")
350  protected Enumeration<DocumentReferenceStatus> status;
351
352  /**
353   * The code specifying the type of clinical activity that resulted in placing
354   * the associated content into the DocumentManifest.
355   */
356  @Child(name = "type", type = { CodeableConcept.class }, order = 3, min = 0, max = 1, modifier = false, summary = true)
357  @Description(shortDefinition = "Kind of document set", formalDefinition = "The code specifying the type of clinical activity that resulted in placing the associated content into the DocumentManifest.")
358  @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v3-ActCode")
359  protected CodeableConcept type;
360
361  /**
362   * Who or what the set of documents is about. The documents can be about a
363   * person, (patient or healthcare practitioner), a device (i.e. machine) or even
364   * a group of subjects (such as a document about a herd of farm animals, or a
365   * set of patients that share a common exposure). If the documents cross more
366   * than one subject, then more than one subject is allowed here (unusual use
367   * case).
368   */
369  @Child(name = "subject", type = { Patient.class, Practitioner.class, Group.class,
370      Device.class }, order = 4, min = 0, max = 1, modifier = false, summary = true)
371  @Description(shortDefinition = "The subject of the set of documents", formalDefinition = "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).")
372  protected Reference subject;
373
374  /**
375   * The actual object that is the target of the reference (Who or what the set of
376   * documents is about. The documents can be about a person, (patient or
377   * healthcare practitioner), a device (i.e. machine) or even a group of subjects
378   * (such as a document about a herd of farm animals, or a set of patients that
379   * share a common exposure). If the documents cross more than one subject, then
380   * more than one subject is allowed here (unusual use case).)
381   */
382  protected Resource subjectTarget;
383
384  /**
385   * When the document manifest was created for submission to the server (not
386   * necessarily the same thing as the actual resource last modified time, since
387   * it may be modified, replicated, etc.).
388   */
389  @Child(name = "created", type = {
390      DateTimeType.class }, order = 5, min = 0, max = 1, modifier = false, summary = false)
391  @Description(shortDefinition = "When this document manifest created", formalDefinition = "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.).")
392  protected DateTimeType created;
393
394  /**
395   * Identifies who is the author of the manifest. Manifest author is not
396   * necessarly the author of the references included.
397   */
398  @Child(name = "author", type = { Practitioner.class, PractitionerRole.class, Organization.class, Device.class,
399      Patient.class,
400      RelatedPerson.class }, order = 6, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
401  @Description(shortDefinition = "Who and/or what authored the DocumentManifest", formalDefinition = "Identifies who is the author of the manifest. Manifest author is not necessarly the author of the references included.")
402  protected List<Reference> author;
403  /**
404   * The actual objects that are the target of the reference (Identifies who is
405   * the author of the manifest. Manifest author is not necessarly the author of
406   * the references included.)
407   */
408  protected List<Resource> authorTarget;
409
410  /**
411   * A patient, practitioner, or organization for which this set of documents is
412   * intended.
413   */
414  @Child(name = "recipient", type = { Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class,
415      Organization.class }, order = 7, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
416  @Description(shortDefinition = "Intended to get notified about this set of documents", formalDefinition = "A patient, practitioner, or organization for which this set of documents is intended.")
417  protected List<Reference> recipient;
418  /**
419   * The actual objects that are the target of the reference (A patient,
420   * practitioner, or organization for which this set of documents is intended.)
421   */
422  protected List<Resource> recipientTarget;
423
424  /**
425   * Identifies the source system, application, or software that produced the
426   * document manifest.
427   */
428  @Child(name = "source", type = { UriType.class }, order = 8, min = 0, max = 1, modifier = false, summary = false)
429  @Description(shortDefinition = "The source system/application/software", formalDefinition = "Identifies the source system, application, or software that produced the document manifest.")
430  protected UriType source;
431
432  /**
433   * Human-readable description of the source document. This is sometimes known as
434   * the "title".
435   */
436  @Child(name = "description", type = {
437      StringType.class }, order = 9, min = 0, max = 1, modifier = false, summary = true)
438  @Description(shortDefinition = "Human-readable description (title)", formalDefinition = "Human-readable description of the source document. This is sometimes known as the \"title\".")
439  protected StringType description;
440
441  /**
442   * The list of Resources that consist of the parts of this manifest.
443   */
444  @Child(name = "content", type = {
445      Reference.class }, order = 10, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
446  @Description(shortDefinition = "Items in manifest", formalDefinition = "The list of Resources that consist of the parts of this manifest.")
447  protected List<Reference> content;
448  /**
449   * The actual objects that are the target of the reference (The list of
450   * Resources that consist of the parts of this manifest.)
451   */
452  protected List<Resource> contentTarget;
453
454  /**
455   * Related identifiers or resources associated with the DocumentManifest.
456   */
457  @Child(name = "related", type = {}, order = 11, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
458  @Description(shortDefinition = "Related things", formalDefinition = "Related identifiers or resources associated with the DocumentManifest.")
459  protected List<DocumentManifestRelatedComponent> related;
460
461  private static final long serialVersionUID = 432971934L;
462
463  /**
464   * Constructor
465   */
466  public DocumentManifest() {
467    super();
468  }
469
470  /**
471   * Constructor
472   */
473  public DocumentManifest(Enumeration<DocumentReferenceStatus> status) {
474    super();
475    this.status = status;
476  }
477
478  /**
479   * @return {@link #masterIdentifier} (A single identifier that uniquely
480   *         identifies this manifest. Principally used to refer to the manifest
481   *         in non-FHIR contexts.)
482   */
483  public Identifier getMasterIdentifier() {
484    if (this.masterIdentifier == null)
485      if (Configuration.errorOnAutoCreate())
486        throw new Error("Attempt to auto-create DocumentManifest.masterIdentifier");
487      else if (Configuration.doAutoCreate())
488        this.masterIdentifier = new Identifier(); // cc
489    return this.masterIdentifier;
490  }
491
492  public boolean hasMasterIdentifier() {
493    return this.masterIdentifier != null && !this.masterIdentifier.isEmpty();
494  }
495
496  /**
497   * @param value {@link #masterIdentifier} (A single identifier that uniquely
498   *              identifies this manifest. Principally used to refer to the
499   *              manifest in non-FHIR contexts.)
500   */
501  public DocumentManifest setMasterIdentifier(Identifier value) {
502    this.masterIdentifier = value;
503    return this;
504  }
505
506  /**
507   * @return {@link #identifier} (Other identifiers associated with the document
508   *         manifest, including version independent identifiers.)
509   */
510  public List<Identifier> getIdentifier() {
511    if (this.identifier == null)
512      this.identifier = new ArrayList<Identifier>();
513    return this.identifier;
514  }
515
516  /**
517   * @return Returns a reference to <code>this</code> for easy method chaining
518   */
519  public DocumentManifest setIdentifier(List<Identifier> theIdentifier) {
520    this.identifier = theIdentifier;
521    return this;
522  }
523
524  public boolean hasIdentifier() {
525    if (this.identifier == null)
526      return false;
527    for (Identifier item : this.identifier)
528      if (!item.isEmpty())
529        return true;
530    return false;
531  }
532
533  public Identifier addIdentifier() { // 3
534    Identifier t = new Identifier();
535    if (this.identifier == null)
536      this.identifier = new ArrayList<Identifier>();
537    this.identifier.add(t);
538    return t;
539  }
540
541  public DocumentManifest addIdentifier(Identifier t) { // 3
542    if (t == null)
543      return this;
544    if (this.identifier == null)
545      this.identifier = new ArrayList<Identifier>();
546    this.identifier.add(t);
547    return this;
548  }
549
550  /**
551   * @return The first repetition of repeating field {@link #identifier}, creating
552   *         it if it does not already exist
553   */
554  public Identifier getIdentifierFirstRep() {
555    if (getIdentifier().isEmpty()) {
556      addIdentifier();
557    }
558    return getIdentifier().get(0);
559  }
560
561  /**
562   * @return {@link #status} (The status of this document manifest.). This is the
563   *         underlying object with id, value and extensions. The accessor
564   *         "getStatus" gives direct access to the value
565   */
566  public Enumeration<DocumentReferenceStatus> getStatusElement() {
567    if (this.status == null)
568      if (Configuration.errorOnAutoCreate())
569        throw new Error("Attempt to auto-create DocumentManifest.status");
570      else if (Configuration.doAutoCreate())
571        this.status = new Enumeration<DocumentReferenceStatus>(new DocumentReferenceStatusEnumFactory()); // bb
572    return this.status;
573  }
574
575  public boolean hasStatusElement() {
576    return this.status != null && !this.status.isEmpty();
577  }
578
579  public boolean hasStatus() {
580    return this.status != null && !this.status.isEmpty();
581  }
582
583  /**
584   * @param value {@link #status} (The status of this document manifest.). This is
585   *              the underlying object with id, value and extensions. The
586   *              accessor "getStatus" gives direct access to the value
587   */
588  public DocumentManifest setStatusElement(Enumeration<DocumentReferenceStatus> value) {
589    this.status = value;
590    return this;
591  }
592
593  /**
594   * @return The status of this document manifest.
595   */
596  public DocumentReferenceStatus getStatus() {
597    return this.status == null ? null : this.status.getValue();
598  }
599
600  /**
601   * @param value The status of this document manifest.
602   */
603  public DocumentManifest setStatus(DocumentReferenceStatus value) {
604    if (this.status == null)
605      this.status = new Enumeration<DocumentReferenceStatus>(new DocumentReferenceStatusEnumFactory());
606    this.status.setValue(value);
607    return this;
608  }
609
610  /**
611   * @return {@link #type} (The code specifying the type of clinical activity that
612   *         resulted in placing the associated content into the
613   *         DocumentManifest.)
614   */
615  public CodeableConcept getType() {
616    if (this.type == null)
617      if (Configuration.errorOnAutoCreate())
618        throw new Error("Attempt to auto-create DocumentManifest.type");
619      else if (Configuration.doAutoCreate())
620        this.type = new CodeableConcept(); // cc
621    return this.type;
622  }
623
624  public boolean hasType() {
625    return this.type != null && !this.type.isEmpty();
626  }
627
628  /**
629   * @param value {@link #type} (The code specifying the type of clinical activity
630   *              that resulted in placing the associated content into the
631   *              DocumentManifest.)
632   */
633  public DocumentManifest setType(CodeableConcept value) {
634    this.type = value;
635    return this;
636  }
637
638  /**
639   * @return {@link #subject} (Who or what the set of documents is about. The
640   *         documents can be about a person, (patient or healthcare
641   *         practitioner), a device (i.e. machine) or even a group of subjects
642   *         (such as a document about a herd of farm animals, or a set of
643   *         patients that share a common exposure). If the documents cross more
644   *         than one subject, then more than one subject is allowed here (unusual
645   *         use case).)
646   */
647  public Reference getSubject() {
648    if (this.subject == null)
649      if (Configuration.errorOnAutoCreate())
650        throw new Error("Attempt to auto-create DocumentManifest.subject");
651      else if (Configuration.doAutoCreate())
652        this.subject = new Reference(); // cc
653    return this.subject;
654  }
655
656  public boolean hasSubject() {
657    return this.subject != null && !this.subject.isEmpty();
658  }
659
660  /**
661   * @param value {@link #subject} (Who or what the set of documents is about. The
662   *              documents can be about a person, (patient or healthcare
663   *              practitioner), a device (i.e. machine) or even a group of
664   *              subjects (such as a document about a herd of farm animals, or a
665   *              set of patients that share a common exposure). If the documents
666   *              cross more than one subject, then more than one subject is
667   *              allowed here (unusual use case).)
668   */
669  public DocumentManifest setSubject(Reference value) {
670    this.subject = value;
671    return this;
672  }
673
674  /**
675   * @return {@link #subject} The actual object that is the target of the
676   *         reference. The reference library doesn't populate this, but you can
677   *         use it to hold the resource if you resolve it. (Who or what the set
678   *         of documents is about. The documents can be about a person, (patient
679   *         or healthcare practitioner), a device (i.e. machine) or even a group
680   *         of subjects (such as a document about a herd of farm animals, or a
681   *         set of patients that share a common exposure). If the documents cross
682   *         more than one subject, then more than one subject is allowed here
683   *         (unusual use case).)
684   */
685  public Resource getSubjectTarget() {
686    return this.subjectTarget;
687  }
688
689  /**
690   * @param value {@link #subject} The actual object that is the target of the
691   *              reference. The reference library doesn't use these, but you can
692   *              use it to hold the resource if you resolve it. (Who or what the
693   *              set of documents is about. The documents can be about a person,
694   *              (patient or healthcare practitioner), a device (i.e. machine) or
695   *              even a group of subjects (such as a document about a herd of
696   *              farm animals, or a set of patients that share a common
697   *              exposure). If the documents cross more than one subject, then
698   *              more than one subject is allowed here (unusual use case).)
699   */
700  public DocumentManifest setSubjectTarget(Resource value) {
701    this.subjectTarget = value;
702    return this;
703  }
704
705  /**
706   * @return {@link #created} (When the document manifest was created for
707   *         submission to the server (not necessarily the same thing as the
708   *         actual resource last modified time, since it may be modified,
709   *         replicated, etc.).). This is the underlying object with id, value and
710   *         extensions. The accessor "getCreated" gives direct access to the
711   *         value
712   */
713  public DateTimeType getCreatedElement() {
714    if (this.created == null)
715      if (Configuration.errorOnAutoCreate())
716        throw new Error("Attempt to auto-create DocumentManifest.created");
717      else if (Configuration.doAutoCreate())
718        this.created = new DateTimeType(); // bb
719    return this.created;
720  }
721
722  public boolean hasCreatedElement() {
723    return this.created != null && !this.created.isEmpty();
724  }
725
726  public boolean hasCreated() {
727    return this.created != null && !this.created.isEmpty();
728  }
729
730  /**
731   * @param value {@link #created} (When the document manifest was created for
732   *              submission to the server (not necessarily the same thing as the
733   *              actual resource last modified time, since it may be modified,
734   *              replicated, etc.).). This is the underlying object with id,
735   *              value and extensions. The accessor "getCreated" gives direct
736   *              access to the value
737   */
738  public DocumentManifest setCreatedElement(DateTimeType value) {
739    this.created = value;
740    return this;
741  }
742
743  /**
744   * @return When the document manifest was created for submission to the server
745   *         (not necessarily the same thing as the actual resource last modified
746   *         time, since it may be modified, replicated, etc.).
747   */
748  public Date getCreated() {
749    return this.created == null ? null : this.created.getValue();
750  }
751
752  /**
753   * @param value When the document manifest was created for submission to the
754   *              server (not necessarily the same thing as the actual resource
755   *              last modified time, since it may be modified, replicated, etc.).
756   */
757  public DocumentManifest setCreated(Date value) {
758    if (value == null)
759      this.created = null;
760    else {
761      if (this.created == null)
762        this.created = new DateTimeType();
763      this.created.setValue(value);
764    }
765    return this;
766  }
767
768  /**
769   * @return {@link #author} (Identifies who is the author of the manifest.
770   *         Manifest author is not necessarly the author of the references
771   *         included.)
772   */
773  public List<Reference> getAuthor() {
774    if (this.author == null)
775      this.author = new ArrayList<Reference>();
776    return this.author;
777  }
778
779  /**
780   * @return Returns a reference to <code>this</code> for easy method chaining
781   */
782  public DocumentManifest setAuthor(List<Reference> theAuthor) {
783    this.author = theAuthor;
784    return this;
785  }
786
787  public boolean hasAuthor() {
788    if (this.author == null)
789      return false;
790    for (Reference item : this.author)
791      if (!item.isEmpty())
792        return true;
793    return false;
794  }
795
796  public Reference addAuthor() { // 3
797    Reference t = new Reference();
798    if (this.author == null)
799      this.author = new ArrayList<Reference>();
800    this.author.add(t);
801    return t;
802  }
803
804  public DocumentManifest addAuthor(Reference t) { // 3
805    if (t == null)
806      return this;
807    if (this.author == null)
808      this.author = new ArrayList<Reference>();
809    this.author.add(t);
810    return this;
811  }
812
813  /**
814   * @return The first repetition of repeating field {@link #author}, creating it
815   *         if it does not already exist
816   */
817  public Reference getAuthorFirstRep() {
818    if (getAuthor().isEmpty()) {
819      addAuthor();
820    }
821    return getAuthor().get(0);
822  }
823
824  /**
825   * @deprecated Use Reference#setResource(IBaseResource) instead
826   */
827  @Deprecated
828  public List<Resource> getAuthorTarget() {
829    if (this.authorTarget == null)
830      this.authorTarget = new ArrayList<Resource>();
831    return this.authorTarget;
832  }
833
834  /**
835   * @return {@link #recipient} (A patient, practitioner, or organization for
836   *         which this set of documents is intended.)
837   */
838  public List<Reference> getRecipient() {
839    if (this.recipient == null)
840      this.recipient = new ArrayList<Reference>();
841    return this.recipient;
842  }
843
844  /**
845   * @return Returns a reference to <code>this</code> for easy method chaining
846   */
847  public DocumentManifest setRecipient(List<Reference> theRecipient) {
848    this.recipient = theRecipient;
849    return this;
850  }
851
852  public boolean hasRecipient() {
853    if (this.recipient == null)
854      return false;
855    for (Reference item : this.recipient)
856      if (!item.isEmpty())
857        return true;
858    return false;
859  }
860
861  public Reference addRecipient() { // 3
862    Reference t = new Reference();
863    if (this.recipient == null)
864      this.recipient = new ArrayList<Reference>();
865    this.recipient.add(t);
866    return t;
867  }
868
869  public DocumentManifest addRecipient(Reference t) { // 3
870    if (t == null)
871      return this;
872    if (this.recipient == null)
873      this.recipient = new ArrayList<Reference>();
874    this.recipient.add(t);
875    return this;
876  }
877
878  /**
879   * @return The first repetition of repeating field {@link #recipient}, creating
880   *         it if it does not already exist
881   */
882  public Reference getRecipientFirstRep() {
883    if (getRecipient().isEmpty()) {
884      addRecipient();
885    }
886    return getRecipient().get(0);
887  }
888
889  /**
890   * @deprecated Use Reference#setResource(IBaseResource) instead
891   */
892  @Deprecated
893  public List<Resource> getRecipientTarget() {
894    if (this.recipientTarget == null)
895      this.recipientTarget = new ArrayList<Resource>();
896    return this.recipientTarget;
897  }
898
899  /**
900   * @return {@link #source} (Identifies the source system, application, or
901   *         software that produced the document manifest.). This is the
902   *         underlying object with id, value and extensions. The accessor
903   *         "getSource" gives direct access to the value
904   */
905  public UriType getSourceElement() {
906    if (this.source == null)
907      if (Configuration.errorOnAutoCreate())
908        throw new Error("Attempt to auto-create DocumentManifest.source");
909      else if (Configuration.doAutoCreate())
910        this.source = new UriType(); // bb
911    return this.source;
912  }
913
914  public boolean hasSourceElement() {
915    return this.source != null && !this.source.isEmpty();
916  }
917
918  public boolean hasSource() {
919    return this.source != null && !this.source.isEmpty();
920  }
921
922  /**
923   * @param value {@link #source} (Identifies the source system, application, or
924   *              software that produced the document manifest.). This is the
925   *              underlying object with id, value and extensions. The accessor
926   *              "getSource" gives direct access to the value
927   */
928  public DocumentManifest setSourceElement(UriType value) {
929    this.source = value;
930    return this;
931  }
932
933  /**
934   * @return Identifies the source system, application, or software that produced
935   *         the document manifest.
936   */
937  public String getSource() {
938    return this.source == null ? null : this.source.getValue();
939  }
940
941  /**
942   * @param value Identifies the source system, application, or software that
943   *              produced the document manifest.
944   */
945  public DocumentManifest setSource(String value) {
946    if (Utilities.noString(value))
947      this.source = null;
948    else {
949      if (this.source == null)
950        this.source = new UriType();
951      this.source.setValue(value);
952    }
953    return this;
954  }
955
956  /**
957   * @return {@link #description} (Human-readable description of the source
958   *         document. This is sometimes known as the "title".). This is the
959   *         underlying object with id, value and extensions. The accessor
960   *         "getDescription" gives direct access to the value
961   */
962  public StringType getDescriptionElement() {
963    if (this.description == null)
964      if (Configuration.errorOnAutoCreate())
965        throw new Error("Attempt to auto-create DocumentManifest.description");
966      else if (Configuration.doAutoCreate())
967        this.description = new StringType(); // bb
968    return this.description;
969  }
970
971  public boolean hasDescriptionElement() {
972    return this.description != null && !this.description.isEmpty();
973  }
974
975  public boolean hasDescription() {
976    return this.description != null && !this.description.isEmpty();
977  }
978
979  /**
980   * @param value {@link #description} (Human-readable description of the source
981   *              document. This is sometimes known as the "title".). This is the
982   *              underlying object with id, value and extensions. The accessor
983   *              "getDescription" gives direct access to the value
984   */
985  public DocumentManifest setDescriptionElement(StringType value) {
986    this.description = value;
987    return this;
988  }
989
990  /**
991   * @return Human-readable description of the source document. This is sometimes
992   *         known as the "title".
993   */
994  public String getDescription() {
995    return this.description == null ? null : this.description.getValue();
996  }
997
998  /**
999   * @param value Human-readable description of the source document. This is
1000   *              sometimes known as the "title".
1001   */
1002  public DocumentManifest setDescription(String value) {
1003    if (Utilities.noString(value))
1004      this.description = null;
1005    else {
1006      if (this.description == null)
1007        this.description = new StringType();
1008      this.description.setValue(value);
1009    }
1010    return this;
1011  }
1012
1013  /**
1014   * @return {@link #content} (The list of Resources that consist of the parts of
1015   *         this manifest.)
1016   */
1017  public List<Reference> getContent() {
1018    if (this.content == null)
1019      this.content = new ArrayList<Reference>();
1020    return this.content;
1021  }
1022
1023  /**
1024   * @return Returns a reference to <code>this</code> for easy method chaining
1025   */
1026  public DocumentManifest setContent(List<Reference> theContent) {
1027    this.content = theContent;
1028    return this;
1029  }
1030
1031  public boolean hasContent() {
1032    if (this.content == null)
1033      return false;
1034    for (Reference item : this.content)
1035      if (!item.isEmpty())
1036        return true;
1037    return false;
1038  }
1039
1040  public Reference addContent() { // 3
1041    Reference t = new Reference();
1042    if (this.content == null)
1043      this.content = new ArrayList<Reference>();
1044    this.content.add(t);
1045    return t;
1046  }
1047
1048  public DocumentManifest addContent(Reference t) { // 3
1049    if (t == null)
1050      return this;
1051    if (this.content == null)
1052      this.content = new ArrayList<Reference>();
1053    this.content.add(t);
1054    return this;
1055  }
1056
1057  /**
1058   * @return The first repetition of repeating field {@link #content}, creating it
1059   *         if it does not already exist
1060   */
1061  public Reference getContentFirstRep() {
1062    if (getContent().isEmpty()) {
1063      addContent();
1064    }
1065    return getContent().get(0);
1066  }
1067
1068  /**
1069   * @deprecated Use Reference#setResource(IBaseResource) instead
1070   */
1071  @Deprecated
1072  public List<Resource> getContentTarget() {
1073    if (this.contentTarget == null)
1074      this.contentTarget = new ArrayList<Resource>();
1075    return this.contentTarget;
1076  }
1077
1078  /**
1079   * @return {@link #related} (Related identifiers or resources associated with
1080   *         the DocumentManifest.)
1081   */
1082  public List<DocumentManifestRelatedComponent> getRelated() {
1083    if (this.related == null)
1084      this.related = new ArrayList<DocumentManifestRelatedComponent>();
1085    return this.related;
1086  }
1087
1088  /**
1089   * @return Returns a reference to <code>this</code> for easy method chaining
1090   */
1091  public DocumentManifest setRelated(List<DocumentManifestRelatedComponent> theRelated) {
1092    this.related = theRelated;
1093    return this;
1094  }
1095
1096  public boolean hasRelated() {
1097    if (this.related == null)
1098      return false;
1099    for (DocumentManifestRelatedComponent item : this.related)
1100      if (!item.isEmpty())
1101        return true;
1102    return false;
1103  }
1104
1105  public DocumentManifestRelatedComponent addRelated() { // 3
1106    DocumentManifestRelatedComponent t = new DocumentManifestRelatedComponent();
1107    if (this.related == null)
1108      this.related = new ArrayList<DocumentManifestRelatedComponent>();
1109    this.related.add(t);
1110    return t;
1111  }
1112
1113  public DocumentManifest addRelated(DocumentManifestRelatedComponent t) { // 3
1114    if (t == null)
1115      return this;
1116    if (this.related == null)
1117      this.related = new ArrayList<DocumentManifestRelatedComponent>();
1118    this.related.add(t);
1119    return this;
1120  }
1121
1122  /**
1123   * @return The first repetition of repeating field {@link #related}, creating it
1124   *         if it does not already exist
1125   */
1126  public DocumentManifestRelatedComponent getRelatedFirstRep() {
1127    if (getRelated().isEmpty()) {
1128      addRelated();
1129    }
1130    return getRelated().get(0);
1131  }
1132
1133  protected void listChildren(List<Property> children) {
1134    super.listChildren(children);
1135    children.add(new Property("masterIdentifier", "Identifier",
1136        "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.",
1137        0, 1, masterIdentifier));
1138    children.add(new Property("identifier", "Identifier",
1139        "Other identifiers associated with the document manifest, including version independent  identifiers.", 0,
1140        java.lang.Integer.MAX_VALUE, identifier));
1141    children.add(new Property("status", "code", "The status of this document manifest.", 0, 1, status));
1142    children.add(new Property("type", "CodeableConcept",
1143        "The code specifying the type of clinical activity that resulted in placing the associated content into the DocumentManifest.",
1144        0, 1, type));
1145    children.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)",
1146        "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).",
1147        0, 1, subject));
1148    children.add(new Property("created", "dateTime",
1149        "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.).",
1150        0, 1, created));
1151    children.add(new Property("author",
1152        "Reference(Practitioner|PractitionerRole|Organization|Device|Patient|RelatedPerson)",
1153        "Identifies who is the author of the manifest. Manifest author is not necessarly the author of the references included.",
1154        0, java.lang.Integer.MAX_VALUE, author));
1155    children
1156        .add(new Property("recipient", "Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|Organization)",
1157            "A patient, practitioner, or organization for which this set of documents is intended.", 0,
1158            java.lang.Integer.MAX_VALUE, recipient));
1159    children.add(new Property("source", "uri",
1160        "Identifies the source system, application, or software that produced the document manifest.", 0, 1, source));
1161    children.add(new Property("description", "string",
1162        "Human-readable description of the source document. This is sometimes known as the \"title\".", 0, 1,
1163        description));
1164    children.add(new Property("content", "Reference(Any)",
1165        "The list of Resources that consist of the parts of this manifest.", 0, java.lang.Integer.MAX_VALUE, content));
1166    children.add(new Property("related", "", "Related identifiers or resources associated with the DocumentManifest.",
1167        0, java.lang.Integer.MAX_VALUE, related));
1168  }
1169
1170  @Override
1171  public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1172    switch (_hash) {
1173    case 243769515:
1174      /* masterIdentifier */ return new Property("masterIdentifier", "Identifier",
1175          "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.",
1176          0, 1, masterIdentifier);
1177    case -1618432855:
1178      /* identifier */ return new Property("identifier", "Identifier",
1179          "Other identifiers associated with the document manifest, including version independent  identifiers.", 0,
1180          java.lang.Integer.MAX_VALUE, identifier);
1181    case -892481550:
1182      /* status */ return new Property("status", "code", "The status of this document manifest.", 0, 1, status);
1183    case 3575610:
1184      /* type */ return new Property("type", "CodeableConcept",
1185          "The code specifying the type of clinical activity that resulted in placing the associated content into the DocumentManifest.",
1186          0, 1, type);
1187    case -1867885268:
1188      /* subject */ return new Property("subject", "Reference(Patient|Practitioner|Group|Device)",
1189          "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).",
1190          0, 1, subject);
1191    case 1028554472:
1192      /* created */ return new Property("created", "dateTime",
1193          "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.).",
1194          0, 1, created);
1195    case -1406328437:
1196      /* author */ return new Property("author",
1197          "Reference(Practitioner|PractitionerRole|Organization|Device|Patient|RelatedPerson)",
1198          "Identifies who is the author of the manifest. Manifest author is not necessarly the author of the references included.",
1199          0, java.lang.Integer.MAX_VALUE, author);
1200    case 820081177:
1201      /* recipient */ return new Property("recipient",
1202          "Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|Organization)",
1203          "A patient, practitioner, or organization for which this set of documents is intended.", 0,
1204          java.lang.Integer.MAX_VALUE, recipient);
1205    case -896505829:
1206      /* source */ return new Property("source", "uri",
1207          "Identifies the source system, application, or software that produced the document manifest.", 0, 1, source);
1208    case -1724546052:
1209      /* description */ return new Property("description", "string",
1210          "Human-readable description of the source document. This is sometimes known as the \"title\".", 0, 1,
1211          description);
1212    case 951530617:
1213      /* content */ return new Property("content", "Reference(Any)",
1214          "The list of Resources that consist of the parts of this manifest.", 0, java.lang.Integer.MAX_VALUE, content);
1215    case 1090493483:
1216      /* related */ return new Property("related", "",
1217          "Related identifiers or resources associated with the DocumentManifest.", 0, java.lang.Integer.MAX_VALUE,
1218          related);
1219    default:
1220      return super.getNamedProperty(_hash, _name, _checkValid);
1221    }
1222
1223  }
1224
1225  @Override
1226  public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1227    switch (hash) {
1228    case 243769515:
1229      /* masterIdentifier */ return this.masterIdentifier == null ? new Base[0] : new Base[] { this.masterIdentifier }; // Identifier
1230    case -1618432855:
1231      /* identifier */ return this.identifier == null ? new Base[0]
1232          : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1233    case -892481550:
1234      /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<DocumentReferenceStatus>
1235    case 3575610:
1236      /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeableConcept
1237    case -1867885268:
1238      /* subject */ return this.subject == null ? new Base[0] : new Base[] { this.subject }; // Reference
1239    case 1028554472:
1240      /* created */ return this.created == null ? new Base[0] : new Base[] { this.created }; // DateTimeType
1241    case -1406328437:
1242      /* author */ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // Reference
1243    case 820081177:
1244      /* recipient */ return this.recipient == null ? new Base[0]
1245          : this.recipient.toArray(new Base[this.recipient.size()]); // Reference
1246    case -896505829:
1247      /* source */ return this.source == null ? new Base[0] : new Base[] { this.source }; // UriType
1248    case -1724546052:
1249      /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // StringType
1250    case 951530617:
1251      /* content */ return this.content == null ? new Base[0] : this.content.toArray(new Base[this.content.size()]); // Reference
1252    case 1090493483:
1253      /* related */ return this.related == null ? new Base[0] : this.related.toArray(new Base[this.related.size()]); // DocumentManifestRelatedComponent
1254    default:
1255      return super.getProperty(hash, name, checkValid);
1256    }
1257
1258  }
1259
1260  @Override
1261  public Base setProperty(int hash, String name, Base value) throws FHIRException {
1262    switch (hash) {
1263    case 243769515: // masterIdentifier
1264      this.masterIdentifier = castToIdentifier(value); // Identifier
1265      return value;
1266    case -1618432855: // identifier
1267      this.getIdentifier().add(castToIdentifier(value)); // Identifier
1268      return value;
1269    case -892481550: // status
1270      value = new DocumentReferenceStatusEnumFactory().fromType(castToCode(value));
1271      this.status = (Enumeration) value; // Enumeration<DocumentReferenceStatus>
1272      return value;
1273    case 3575610: // type
1274      this.type = castToCodeableConcept(value); // CodeableConcept
1275      return value;
1276    case -1867885268: // subject
1277      this.subject = castToReference(value); // Reference
1278      return value;
1279    case 1028554472: // created
1280      this.created = castToDateTime(value); // DateTimeType
1281      return value;
1282    case -1406328437: // author
1283      this.getAuthor().add(castToReference(value)); // Reference
1284      return value;
1285    case 820081177: // recipient
1286      this.getRecipient().add(castToReference(value)); // Reference
1287      return value;
1288    case -896505829: // source
1289      this.source = castToUri(value); // UriType
1290      return value;
1291    case -1724546052: // description
1292      this.description = castToString(value); // StringType
1293      return value;
1294    case 951530617: // content
1295      this.getContent().add(castToReference(value)); // Reference
1296      return value;
1297    case 1090493483: // related
1298      this.getRelated().add((DocumentManifestRelatedComponent) value); // DocumentManifestRelatedComponent
1299      return value;
1300    default:
1301      return super.setProperty(hash, name, value);
1302    }
1303
1304  }
1305
1306  @Override
1307  public Base setProperty(String name, Base value) throws FHIRException {
1308    if (name.equals("masterIdentifier")) {
1309      this.masterIdentifier = castToIdentifier(value); // Identifier
1310    } else if (name.equals("identifier")) {
1311      this.getIdentifier().add(castToIdentifier(value));
1312    } else if (name.equals("status")) {
1313      value = new DocumentReferenceStatusEnumFactory().fromType(castToCode(value));
1314      this.status = (Enumeration) value; // Enumeration<DocumentReferenceStatus>
1315    } else if (name.equals("type")) {
1316      this.type = castToCodeableConcept(value); // CodeableConcept
1317    } else if (name.equals("subject")) {
1318      this.subject = castToReference(value); // Reference
1319    } else if (name.equals("created")) {
1320      this.created = castToDateTime(value); // DateTimeType
1321    } else if (name.equals("author")) {
1322      this.getAuthor().add(castToReference(value));
1323    } else if (name.equals("recipient")) {
1324      this.getRecipient().add(castToReference(value));
1325    } else if (name.equals("source")) {
1326      this.source = castToUri(value); // UriType
1327    } else if (name.equals("description")) {
1328      this.description = castToString(value); // StringType
1329    } else if (name.equals("content")) {
1330      this.getContent().add(castToReference(value));
1331    } else if (name.equals("related")) {
1332      this.getRelated().add((DocumentManifestRelatedComponent) value);
1333    } else
1334      return super.setProperty(name, value);
1335    return value;
1336  }
1337
1338  @Override
1339  public void removeChild(String name, Base value) throws FHIRException {
1340    if (name.equals("masterIdentifier")) {
1341      this.masterIdentifier = null;
1342    } else if (name.equals("identifier")) {
1343      this.getIdentifier().remove(castToIdentifier(value));
1344    } else if (name.equals("status")) {
1345      this.status = null;
1346    } else if (name.equals("type")) {
1347      this.type = null;
1348    } else if (name.equals("subject")) {
1349      this.subject = null;
1350    } else if (name.equals("created")) {
1351      this.created = null;
1352    } else if (name.equals("author")) {
1353      this.getAuthor().remove(castToReference(value));
1354    } else if (name.equals("recipient")) {
1355      this.getRecipient().remove(castToReference(value));
1356    } else if (name.equals("source")) {
1357      this.source = null;
1358    } else if (name.equals("description")) {
1359      this.description = null;
1360    } else if (name.equals("content")) {
1361      this.getContent().remove(castToReference(value));
1362    } else if (name.equals("related")) {
1363      this.getRelated().remove((DocumentManifestRelatedComponent) value);
1364    } else
1365      super.removeChild(name, value);
1366    
1367  }
1368
1369  @Override
1370  public Base makeProperty(int hash, String name) throws FHIRException {
1371    switch (hash) {
1372    case 243769515:
1373      return getMasterIdentifier();
1374    case -1618432855:
1375      return addIdentifier();
1376    case -892481550:
1377      return getStatusElement();
1378    case 3575610:
1379      return getType();
1380    case -1867885268:
1381      return getSubject();
1382    case 1028554472:
1383      return getCreatedElement();
1384    case -1406328437:
1385      return addAuthor();
1386    case 820081177:
1387      return addRecipient();
1388    case -896505829:
1389      return getSourceElement();
1390    case -1724546052:
1391      return getDescriptionElement();
1392    case 951530617:
1393      return addContent();
1394    case 1090493483:
1395      return addRelated();
1396    default:
1397      return super.makeProperty(hash, name);
1398    }
1399
1400  }
1401
1402  @Override
1403  public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1404    switch (hash) {
1405    case 243769515:
1406      /* masterIdentifier */ return new String[] { "Identifier" };
1407    case -1618432855:
1408      /* identifier */ return new String[] { "Identifier" };
1409    case -892481550:
1410      /* status */ return new String[] { "code" };
1411    case 3575610:
1412      /* type */ return new String[] { "CodeableConcept" };
1413    case -1867885268:
1414      /* subject */ return new String[] { "Reference" };
1415    case 1028554472:
1416      /* created */ return new String[] { "dateTime" };
1417    case -1406328437:
1418      /* author */ return new String[] { "Reference" };
1419    case 820081177:
1420      /* recipient */ return new String[] { "Reference" };
1421    case -896505829:
1422      /* source */ return new String[] { "uri" };
1423    case -1724546052:
1424      /* description */ return new String[] { "string" };
1425    case 951530617:
1426      /* content */ return new String[] { "Reference" };
1427    case 1090493483:
1428      /* related */ return new String[] {};
1429    default:
1430      return super.getTypesForProperty(hash, name);
1431    }
1432
1433  }
1434
1435  @Override
1436  public Base addChild(String name) throws FHIRException {
1437    if (name.equals("masterIdentifier")) {
1438      this.masterIdentifier = new Identifier();
1439      return this.masterIdentifier;
1440    } else if (name.equals("identifier")) {
1441      return addIdentifier();
1442    } else if (name.equals("status")) {
1443      throw new FHIRException("Cannot call addChild on a singleton property DocumentManifest.status");
1444    } else if (name.equals("type")) {
1445      this.type = new CodeableConcept();
1446      return this.type;
1447    } else if (name.equals("subject")) {
1448      this.subject = new Reference();
1449      return this.subject;
1450    } else if (name.equals("created")) {
1451      throw new FHIRException("Cannot call addChild on a singleton property DocumentManifest.created");
1452    } else if (name.equals("author")) {
1453      return addAuthor();
1454    } else if (name.equals("recipient")) {
1455      return addRecipient();
1456    } else if (name.equals("source")) {
1457      throw new FHIRException("Cannot call addChild on a singleton property DocumentManifest.source");
1458    } else if (name.equals("description")) {
1459      throw new FHIRException("Cannot call addChild on a singleton property DocumentManifest.description");
1460    } else if (name.equals("content")) {
1461      return addContent();
1462    } else if (name.equals("related")) {
1463      return addRelated();
1464    } else
1465      return super.addChild(name);
1466  }
1467
1468  public String fhirType() {
1469    return "DocumentManifest";
1470
1471  }
1472
1473  public DocumentManifest copy() {
1474    DocumentManifest dst = new DocumentManifest();
1475    copyValues(dst);
1476    return dst;
1477  }
1478
1479  public void copyValues(DocumentManifest dst) {
1480    super.copyValues(dst);
1481    dst.masterIdentifier = masterIdentifier == null ? null : masterIdentifier.copy();
1482    if (identifier != null) {
1483      dst.identifier = new ArrayList<Identifier>();
1484      for (Identifier i : identifier)
1485        dst.identifier.add(i.copy());
1486    }
1487    ;
1488    dst.status = status == null ? null : status.copy();
1489    dst.type = type == null ? null : type.copy();
1490    dst.subject = subject == null ? null : subject.copy();
1491    dst.created = created == null ? null : created.copy();
1492    if (author != null) {
1493      dst.author = new ArrayList<Reference>();
1494      for (Reference i : author)
1495        dst.author.add(i.copy());
1496    }
1497    ;
1498    if (recipient != null) {
1499      dst.recipient = new ArrayList<Reference>();
1500      for (Reference i : recipient)
1501        dst.recipient.add(i.copy());
1502    }
1503    ;
1504    dst.source = source == null ? null : source.copy();
1505    dst.description = description == null ? null : description.copy();
1506    if (content != null) {
1507      dst.content = new ArrayList<Reference>();
1508      for (Reference i : content)
1509        dst.content.add(i.copy());
1510    }
1511    ;
1512    if (related != null) {
1513      dst.related = new ArrayList<DocumentManifestRelatedComponent>();
1514      for (DocumentManifestRelatedComponent i : related)
1515        dst.related.add(i.copy());
1516    }
1517    ;
1518  }
1519
1520  protected DocumentManifest typedCopy() {
1521    return copy();
1522  }
1523
1524  @Override
1525  public boolean equalsDeep(Base other_) {
1526    if (!super.equalsDeep(other_))
1527      return false;
1528    if (!(other_ instanceof DocumentManifest))
1529      return false;
1530    DocumentManifest o = (DocumentManifest) other_;
1531    return compareDeep(masterIdentifier, o.masterIdentifier, true) && compareDeep(identifier, o.identifier, true)
1532        && compareDeep(status, o.status, true) && compareDeep(type, o.type, true)
1533        && compareDeep(subject, o.subject, true) && compareDeep(created, o.created, true)
1534        && compareDeep(author, o.author, true) && compareDeep(recipient, o.recipient, true)
1535        && compareDeep(source, o.source, true) && compareDeep(description, o.description, true)
1536        && compareDeep(content, o.content, true) && compareDeep(related, o.related, true);
1537  }
1538
1539  @Override
1540  public boolean equalsShallow(Base other_) {
1541    if (!super.equalsShallow(other_))
1542      return false;
1543    if (!(other_ instanceof DocumentManifest))
1544      return false;
1545    DocumentManifest o = (DocumentManifest) other_;
1546    return compareValues(status, o.status, true) && compareValues(created, o.created, true)
1547        && compareValues(source, o.source, true) && compareValues(description, o.description, true);
1548  }
1549
1550  public boolean isEmpty() {
1551    return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(masterIdentifier, identifier, status, type, subject,
1552        created, author, recipient, source, description, content, related);
1553  }
1554
1555  @Override
1556  public ResourceType getResourceType() {
1557    return ResourceType.DocumentManifest;
1558  }
1559
1560  /**
1561   * Search parameter: <b>identifier</b>
1562   * <p>
1563   * Description: <b>Unique Identifier for the set of documents</b><br>
1564   * Type: <b>token</b><br>
1565   * Path: <b>DocumentManifest.masterIdentifier,
1566   * DocumentManifest.identifier</b><br>
1567   * </p>
1568   */
1569  @SearchParamDefinition(name = "identifier", path = "DocumentManifest.masterIdentifier | DocumentManifest.identifier", description = "Unique Identifier for the set of documents", type = "token")
1570  public static final String SP_IDENTIFIER = "identifier";
1571  /**
1572   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1573   * <p>
1574   * Description: <b>Unique Identifier for the set of documents</b><br>
1575   * Type: <b>token</b><br>
1576   * Path: <b>DocumentManifest.masterIdentifier,
1577   * DocumentManifest.identifier</b><br>
1578   * </p>
1579   */
1580  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(
1581      SP_IDENTIFIER);
1582
1583  /**
1584   * Search parameter: <b>item</b>
1585   * <p>
1586   * Description: <b>Items in manifest</b><br>
1587   * Type: <b>reference</b><br>
1588   * Path: <b>DocumentManifest.content</b><br>
1589   * </p>
1590   */
1591  @SearchParamDefinition(name = "item", path = "DocumentManifest.content", description = "Items in manifest", type = "reference")
1592  public static final String SP_ITEM = "item";
1593  /**
1594   * <b>Fluent Client</b> search parameter constant for <b>item</b>
1595   * <p>
1596   * Description: <b>Items in manifest</b><br>
1597   * Type: <b>reference</b><br>
1598   * Path: <b>DocumentManifest.content</b><br>
1599   * </p>
1600   */
1601  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ITEM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
1602      SP_ITEM);
1603
1604  /**
1605   * Constant for fluent queries to be used to add include statements. Specifies
1606   * the path value of "<b>DocumentManifest:item</b>".
1607   */
1608  public static final ca.uhn.fhir.model.api.Include INCLUDE_ITEM = new ca.uhn.fhir.model.api.Include(
1609      "DocumentManifest:item").toLocked();
1610
1611  /**
1612   * Search parameter: <b>related-id</b>
1613   * <p>
1614   * Description: <b>Identifiers of things that are related</b><br>
1615   * Type: <b>token</b><br>
1616   * Path: <b>DocumentManifest.related.identifier</b><br>
1617   * </p>
1618   */
1619  @SearchParamDefinition(name = "related-id", path = "DocumentManifest.related.identifier", description = "Identifiers of things that are related", type = "token")
1620  public static final String SP_RELATED_ID = "related-id";
1621  /**
1622   * <b>Fluent Client</b> search parameter constant for <b>related-id</b>
1623   * <p>
1624   * Description: <b>Identifiers of things that are related</b><br>
1625   * Type: <b>token</b><br>
1626   * Path: <b>DocumentManifest.related.identifier</b><br>
1627   * </p>
1628   */
1629  public static final ca.uhn.fhir.rest.gclient.TokenClientParam RELATED_ID = new ca.uhn.fhir.rest.gclient.TokenClientParam(
1630      SP_RELATED_ID);
1631
1632  /**
1633   * Search parameter: <b>subject</b>
1634   * <p>
1635   * Description: <b>The subject of the set of documents</b><br>
1636   * Type: <b>reference</b><br>
1637   * Path: <b>DocumentManifest.subject</b><br>
1638   * </p>
1639   */
1640  @SearchParamDefinition(name = "subject", path = "DocumentManifest.subject", description = "The subject of the set of documents", type = "reference", providesMembershipIn = {
1641      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Device"),
1642      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Patient"),
1643      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner") }, target = { Device.class, Group.class,
1644          Patient.class, Practitioner.class })
1645  public static final String SP_SUBJECT = "subject";
1646  /**
1647   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
1648   * <p>
1649   * Description: <b>The subject of the set of documents</b><br>
1650   * Type: <b>reference</b><br>
1651   * Path: <b>DocumentManifest.subject</b><br>
1652   * </p>
1653   */
1654  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
1655      SP_SUBJECT);
1656
1657  /**
1658   * Constant for fluent queries to be used to add include statements. Specifies
1659   * the path value of "<b>DocumentManifest:subject</b>".
1660   */
1661  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include(
1662      "DocumentManifest:subject").toLocked();
1663
1664  /**
1665   * Search parameter: <b>author</b>
1666   * <p>
1667   * Description: <b>Who and/or what authored the DocumentManifest</b><br>
1668   * Type: <b>reference</b><br>
1669   * Path: <b>DocumentManifest.author</b><br>
1670   * </p>
1671   */
1672  @SearchParamDefinition(name = "author", path = "DocumentManifest.author", description = "Who and/or what authored the DocumentManifest", type = "reference", providesMembershipIn = {
1673      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Device"),
1674      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Patient"),
1675      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner"),
1676      @ca.uhn.fhir.model.api.annotation.Compartment(name = "RelatedPerson") }, target = { Device.class,
1677          Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class })
1678  public static final String SP_AUTHOR = "author";
1679  /**
1680   * <b>Fluent Client</b> search parameter constant for <b>author</b>
1681   * <p>
1682   * Description: <b>Who and/or what authored the DocumentManifest</b><br>
1683   * Type: <b>reference</b><br>
1684   * Path: <b>DocumentManifest.author</b><br>
1685   * </p>
1686   */
1687  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
1688      SP_AUTHOR);
1689
1690  /**
1691   * Constant for fluent queries to be used to add include statements. Specifies
1692   * the path value of "<b>DocumentManifest:author</b>".
1693   */
1694  public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include(
1695      "DocumentManifest:author").toLocked();
1696
1697  /**
1698   * Search parameter: <b>created</b>
1699   * <p>
1700   * Description: <b>When this document manifest created</b><br>
1701   * Type: <b>date</b><br>
1702   * Path: <b>DocumentManifest.created</b><br>
1703   * </p>
1704   */
1705  @SearchParamDefinition(name = "created", path = "DocumentManifest.created", description = "When this document manifest created", type = "date")
1706  public static final String SP_CREATED = "created";
1707  /**
1708   * <b>Fluent Client</b> search parameter constant for <b>created</b>
1709   * <p>
1710   * Description: <b>When this document manifest created</b><br>
1711   * Type: <b>date</b><br>
1712   * Path: <b>DocumentManifest.created</b><br>
1713   * </p>
1714   */
1715  public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam(
1716      SP_CREATED);
1717
1718  /**
1719   * Search parameter: <b>description</b>
1720   * <p>
1721   * Description: <b>Human-readable description (title)</b><br>
1722   * Type: <b>string</b><br>
1723   * Path: <b>DocumentManifest.description</b><br>
1724   * </p>
1725   */
1726  @SearchParamDefinition(name = "description", path = "DocumentManifest.description", description = "Human-readable description (title)", type = "string")
1727  public static final String SP_DESCRIPTION = "description";
1728  /**
1729   * <b>Fluent Client</b> search parameter constant for <b>description</b>
1730   * <p>
1731   * Description: <b>Human-readable description (title)</b><br>
1732   * Type: <b>string</b><br>
1733   * Path: <b>DocumentManifest.description</b><br>
1734   * </p>
1735   */
1736  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(
1737      SP_DESCRIPTION);
1738
1739  /**
1740   * Search parameter: <b>source</b>
1741   * <p>
1742   * Description: <b>The source system/application/software</b><br>
1743   * Type: <b>uri</b><br>
1744   * Path: <b>DocumentManifest.source</b><br>
1745   * </p>
1746   */
1747  @SearchParamDefinition(name = "source", path = "DocumentManifest.source", description = "The source system/application/software", type = "uri")
1748  public static final String SP_SOURCE = "source";
1749  /**
1750   * <b>Fluent Client</b> search parameter constant for <b>source</b>
1751   * <p>
1752   * Description: <b>The source system/application/software</b><br>
1753   * Type: <b>uri</b><br>
1754   * Path: <b>DocumentManifest.source</b><br>
1755   * </p>
1756   */
1757  public static final ca.uhn.fhir.rest.gclient.UriClientParam SOURCE = new ca.uhn.fhir.rest.gclient.UriClientParam(
1758      SP_SOURCE);
1759
1760  /**
1761   * Search parameter: <b>type</b>
1762   * <p>
1763   * Description: <b>Kind of document set</b><br>
1764   * Type: <b>token</b><br>
1765   * Path: <b>DocumentManifest.type</b><br>
1766   * </p>
1767   */
1768  @SearchParamDefinition(name = "type", path = "DocumentManifest.type", description = "Kind of document set", type = "token")
1769  public static final String SP_TYPE = "type";
1770  /**
1771   * <b>Fluent Client</b> search parameter constant for <b>type</b>
1772   * <p>
1773   * Description: <b>Kind of document set</b><br>
1774   * Type: <b>token</b><br>
1775   * Path: <b>DocumentManifest.type</b><br>
1776   * </p>
1777   */
1778  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(
1779      SP_TYPE);
1780
1781  /**
1782   * Search parameter: <b>related-ref</b>
1783   * <p>
1784   * Description: <b>Related Resource</b><br>
1785   * Type: <b>reference</b><br>
1786   * Path: <b>DocumentManifest.related.ref</b><br>
1787   * </p>
1788   */
1789  @SearchParamDefinition(name = "related-ref", path = "DocumentManifest.related.ref", description = "Related Resource", type = "reference", providesMembershipIn = {
1790      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Encounter") })
1791  public static final String SP_RELATED_REF = "related-ref";
1792  /**
1793   * <b>Fluent Client</b> search parameter constant for <b>related-ref</b>
1794   * <p>
1795   * Description: <b>Related Resource</b><br>
1796   * Type: <b>reference</b><br>
1797   * Path: <b>DocumentManifest.related.ref</b><br>
1798   * </p>
1799   */
1800  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RELATED_REF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
1801      SP_RELATED_REF);
1802
1803  /**
1804   * Constant for fluent queries to be used to add include statements. Specifies
1805   * the path value of "<b>DocumentManifest:related-ref</b>".
1806   */
1807  public static final ca.uhn.fhir.model.api.Include INCLUDE_RELATED_REF = new ca.uhn.fhir.model.api.Include(
1808      "DocumentManifest:related-ref").toLocked();
1809
1810  /**
1811   * Search parameter: <b>patient</b>
1812   * <p>
1813   * Description: <b>The subject of the set of documents</b><br>
1814   * Type: <b>reference</b><br>
1815   * Path: <b>DocumentManifest.subject</b><br>
1816   * </p>
1817   */
1818  @SearchParamDefinition(name = "patient", path = "DocumentManifest.subject.where(resolve() is Patient)", description = "The subject of the set of documents", type = "reference", target = {
1819      Patient.class })
1820  public static final String SP_PATIENT = "patient";
1821  /**
1822   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1823   * <p>
1824   * Description: <b>The subject of the set of documents</b><br>
1825   * Type: <b>reference</b><br>
1826   * Path: <b>DocumentManifest.subject</b><br>
1827   * </p>
1828   */
1829  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
1830      SP_PATIENT);
1831
1832  /**
1833   * Constant for fluent queries to be used to add include statements. Specifies
1834   * the path value of "<b>DocumentManifest:patient</b>".
1835   */
1836  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include(
1837      "DocumentManifest:patient").toLocked();
1838
1839  /**
1840   * Search parameter: <b>recipient</b>
1841   * <p>
1842   * Description: <b>Intended to get notified about this set of documents</b><br>
1843   * Type: <b>reference</b><br>
1844   * Path: <b>DocumentManifest.recipient</b><br>
1845   * </p>
1846   */
1847  @SearchParamDefinition(name = "recipient", path = "DocumentManifest.recipient", description = "Intended to get notified about this set of documents", type = "reference", providesMembershipIn = {
1848      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Patient"),
1849      @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner"),
1850      @ca.uhn.fhir.model.api.annotation.Compartment(name = "RelatedPerson") }, target = { Organization.class,
1851          Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class })
1852  public static final String SP_RECIPIENT = "recipient";
1853  /**
1854   * <b>Fluent Client</b> search parameter constant for <b>recipient</b>
1855   * <p>
1856   * Description: <b>Intended to get notified about this set of documents</b><br>
1857   * Type: <b>reference</b><br>
1858   * Path: <b>DocumentManifest.recipient</b><br>
1859   * </p>
1860   */
1861  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RECIPIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
1862      SP_RECIPIENT);
1863
1864  /**
1865   * Constant for fluent queries to be used to add include statements. Specifies
1866   * the path value of "<b>DocumentManifest:recipient</b>".
1867   */
1868  public static final ca.uhn.fhir.model.api.Include INCLUDE_RECIPIENT = new ca.uhn.fhir.model.api.Include(
1869      "DocumentManifest:recipient").toLocked();
1870
1871  /**
1872   * Search parameter: <b>status</b>
1873   * <p>
1874   * Description: <b>current | superseded | entered-in-error</b><br>
1875   * Type: <b>token</b><br>
1876   * Path: <b>DocumentManifest.status</b><br>
1877   * </p>
1878   */
1879  @SearchParamDefinition(name = "status", path = "DocumentManifest.status", description = "current | superseded | entered-in-error", type = "token")
1880  public static final String SP_STATUS = "status";
1881  /**
1882   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1883   * <p>
1884   * Description: <b>current | superseded | entered-in-error</b><br>
1885   * Type: <b>token</b><br>
1886   * Path: <b>DocumentManifest.status</b><br>
1887   * </p>
1888   */
1889  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(
1890      SP_STATUS);
1891
1892}