All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hl7.fhir.r4.model.Patient Maven / Gradle / Ivy

Go to download

Builds the hapi fhir r4. Requires hapi-fhir-base and hapi-fhir-utilities be built first and be excluded from any other poms requiring it.

The newest version!
package org.hl7.fhir.r4.model;

/*
  Copyright (c) 2011+, HL7, Inc.
  All rights reserved.
  
  Redistribution and use in source and binary forms, with or without modification, 
  are permitted provided that the following conditions are met:
  
   * Redistributions of source code must retain the above copyright notice, this 
     list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright notice, 
     this list of conditions and the following disclaimer in the documentation 
     and/or other materials provided with the distribution.
   * Neither the name of HL7 nor the names of its contributors may be used to 
     endorse or promote products derived from this software without specific 
     prior written permission.
  
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
  POSSIBILITY OF SUCH DAMAGE.
  
*/

// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
import org.hl7.fhir.r4.model.Enumerations.AdministrativeGender;
import org.hl7.fhir.r4.model.Enumerations.AdministrativeGenderEnumFactory;

import ca.uhn.fhir.model.api.annotation.Block;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.ResourceDef;
import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;

/**
 * Demographics and other administrative information about an individual or
 * animal receiving care or other health-related services.
 */
@ResourceDef(name = "Patient", profile = "http://hl7.org/fhir/StructureDefinition/Patient")
public class Patient extends DomainResource {

  public enum LinkType {
    /**
     * The patient resource containing this link must no longer be used. The link
     * points forward to another patient resource that must be used in lieu of the
     * patient resource that contains this link.
     */
    REPLACEDBY,
    /**
     * The patient resource containing this link is the current active patient
     * record. The link points back to an inactive patient resource that has been
     * merged into this resource, and should be consulted to retrieve additional
     * referenced information.
     */
    REPLACES,
    /**
     * The patient resource containing this link is in use and valid but not
     * considered the main source of information about a patient. The link points
     * forward to another patient resource that should be consulted to retrieve
     * additional patient information.
     */
    REFER,
    /**
     * The patient resource containing this link is in use and valid, but points to
     * another patient resource that is known to contain data about the same person.
     * Data in this resource might overlap or contradict information found in the
     * other patient resource. This link does not indicate any relative importance
     * of the resources concerned, and both should be regarded as equally valid.
     */
    SEEALSO,
    /**
     * added to help the parsers with the generic types
     */
    NULL;

    public static LinkType fromCode(String codeString) throws FHIRException {
      if (codeString == null || "".equals(codeString))
        return null;
      if ("replaced-by".equals(codeString))
        return REPLACEDBY;
      if ("replaces".equals(codeString))
        return REPLACES;
      if ("refer".equals(codeString))
        return REFER;
      if ("seealso".equals(codeString))
        return SEEALSO;
      if (Configuration.isAcceptInvalidEnums())
        return null;
      else
        throw new FHIRException("Unknown LinkType code '" + codeString + "'");
    }

    public String toCode() {
      switch (this) {
      case REPLACEDBY:
        return "replaced-by";
      case REPLACES:
        return "replaces";
      case REFER:
        return "refer";
      case SEEALSO:
        return "seealso";
      case NULL:
        return null;
      default:
        return "?";
      }
    }

    public String getSystem() {
      switch (this) {
      case REPLACEDBY:
        return "http://hl7.org/fhir/link-type";
      case REPLACES:
        return "http://hl7.org/fhir/link-type";
      case REFER:
        return "http://hl7.org/fhir/link-type";
      case SEEALSO:
        return "http://hl7.org/fhir/link-type";
      case NULL:
        return null;
      default:
        return "?";
      }
    }

    public String getDefinition() {
      switch (this) {
      case REPLACEDBY:
        return "The patient resource containing this link must no longer be used. The link points forward to another patient resource that must be used in lieu of the patient resource that contains this link.";
      case REPLACES:
        return "The patient resource containing this link is the current active patient record. The link points back to an inactive patient resource that has been merged into this resource, and should be consulted to retrieve additional referenced information.";
      case REFER:
        return "The patient resource containing this link is in use and valid but not considered the main source of information about a patient. The link points forward to another patient resource that should be consulted to retrieve additional patient information.";
      case SEEALSO:
        return "The patient resource containing this link is in use and valid, but points to another patient resource that is known to contain data about the same person. Data in this resource might overlap or contradict information found in the other patient resource. This link does not indicate any relative importance of the resources concerned, and both should be regarded as equally valid.";
      case NULL:
        return null;
      default:
        return "?";
      }
    }

    public String getDisplay() {
      switch (this) {
      case REPLACEDBY:
        return "Replaced-by";
      case REPLACES:
        return "Replaces";
      case REFER:
        return "Refer";
      case SEEALSO:
        return "See also";
      case NULL:
        return null;
      default:
        return "?";
      }
    }
  }

  public static class LinkTypeEnumFactory implements EnumFactory {
    public LinkType fromCode(String codeString) throws IllegalArgumentException {
      if (codeString == null || "".equals(codeString))
        if (codeString == null || "".equals(codeString))
          return null;
      if ("replaced-by".equals(codeString))
        return LinkType.REPLACEDBY;
      if ("replaces".equals(codeString))
        return LinkType.REPLACES;
      if ("refer".equals(codeString))
        return LinkType.REFER;
      if ("seealso".equals(codeString))
        return LinkType.SEEALSO;
      throw new IllegalArgumentException("Unknown LinkType code '" + codeString + "'");
    }

    public Enumeration fromType(PrimitiveType code) throws FHIRException {
      if (code == null)
        return null;
      if (code.isEmpty())
        return new Enumeration(this, LinkType.NULL, code);
      String codeString = code.asStringValue();
      if (codeString == null || "".equals(codeString))
        return new Enumeration(this, LinkType.NULL, code);
      if ("replaced-by".equals(codeString))
        return new Enumeration(this, LinkType.REPLACEDBY, code);
      if ("replaces".equals(codeString))
        return new Enumeration(this, LinkType.REPLACES, code);
      if ("refer".equals(codeString))
        return new Enumeration(this, LinkType.REFER, code);
      if ("seealso".equals(codeString))
        return new Enumeration(this, LinkType.SEEALSO, code);
      throw new FHIRException("Unknown LinkType code '" + codeString + "'");
    }

    public String toCode(LinkType code) {
      if (code == LinkType.REPLACEDBY)
        return "replaced-by";
      if (code == LinkType.REPLACES)
        return "replaces";
      if (code == LinkType.REFER)
        return "refer";
      if (code == LinkType.SEEALSO)
        return "seealso";
      return "?";
    }

    public String toSystem(LinkType code) {
      return code.getSystem();
    }
  }

  @Block()
  public static class ContactComponent extends BackboneElement implements IBaseBackboneElement {
    /**
     * The nature of the relationship between the patient and the contact person.
     */
    @Child(name = "relationship", type = {
        CodeableConcept.class }, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
    @Description(shortDefinition = "The kind of relationship", formalDefinition = "The nature of the relationship between the patient and the contact person.")
    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/patient-contactrelationship")
    protected List relationship;

    /**
     * A name associated with the contact person.
     */
    @Child(name = "name", type = { HumanName.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
    @Description(shortDefinition = "A name associated with the contact person", formalDefinition = "A name associated with the contact person.")
    protected HumanName name;

    /**
     * A contact detail for the person, e.g. a telephone number or an email address.
     */
    @Child(name = "telecom", type = {
        ContactPoint.class }, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
    @Description(shortDefinition = "A contact detail for the person", formalDefinition = "A contact detail for the person, e.g. a telephone number or an email address.")
    protected List telecom;

    /**
     * Address for the contact person.
     */
    @Child(name = "address", type = { Address.class }, order = 4, min = 0, max = 1, modifier = false, summary = false)
    @Description(shortDefinition = "Address for the contact person", formalDefinition = "Address for the contact person.")
    protected Address address;

    /**
     * Administrative Gender - the gender that the contact person is considered to
     * have for administration and record keeping purposes.
     */
    @Child(name = "gender", type = { CodeType.class }, order = 5, min = 0, max = 1, modifier = false, summary = false)
    @Description(shortDefinition = "male | female | other | unknown", formalDefinition = "Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.")
    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/administrative-gender")
    protected Enumeration gender;

    /**
     * Organization on behalf of which the contact is acting or for which the
     * contact is working.
     */
    @Child(name = "organization", type = {
        Organization.class }, order = 6, min = 0, max = 1, modifier = false, summary = false)
    @Description(shortDefinition = "Organization that is associated with the contact", formalDefinition = "Organization on behalf of which the contact is acting or for which the contact is working.")
    protected Reference organization;

    /**
     * The actual object that is the target of the reference (Organization on behalf
     * of which the contact is acting or for which the contact is working.)
     */
    protected Organization organizationTarget;

    /**
     * The period during which this contact person or organization is valid to be
     * contacted relating to this patient.
     */
    @Child(name = "period", type = { Period.class }, order = 7, min = 0, max = 1, modifier = false, summary = false)
    @Description(shortDefinition = "The period during which this contact person or organization is valid to be contacted relating to this patient", formalDefinition = "The period during which this contact person or organization is valid to be contacted relating to this patient.")
    protected Period period;

    private static final long serialVersionUID = 364269017L;

    /**
     * Constructor
     */
    public ContactComponent() {
      super();
    }

    /**
     * @return {@link #relationship} (The nature of the relationship between the
     *         patient and the contact person.)
     */
    public List getRelationship() {
      if (this.relationship == null)
        this.relationship = new ArrayList();
      return this.relationship;
    }

    /**
     * @return Returns a reference to this for easy method chaining
     */
    public ContactComponent setRelationship(List theRelationship) {
      this.relationship = theRelationship;
      return this;
    }

    public boolean hasRelationship() {
      if (this.relationship == null)
        return false;
      for (CodeableConcept item : this.relationship)
        if (!item.isEmpty())
          return true;
      return false;
    }

    public CodeableConcept addRelationship() { // 3
      CodeableConcept t = new CodeableConcept();
      if (this.relationship == null)
        this.relationship = new ArrayList();
      this.relationship.add(t);
      return t;
    }

    public ContactComponent addRelationship(CodeableConcept t) { // 3
      if (t == null)
        return this;
      if (this.relationship == null)
        this.relationship = new ArrayList();
      this.relationship.add(t);
      return this;
    }

    /**
     * @return The first repetition of repeating field {@link #relationship},
     *         creating it if it does not already exist
     */
    public CodeableConcept getRelationshipFirstRep() {
      if (getRelationship().isEmpty()) {
        addRelationship();
      }
      return getRelationship().get(0);
    }

    /**
     * @return {@link #name} (A name associated with the contact person.)
     */
    public HumanName getName() {
      if (this.name == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create ContactComponent.name");
        else if (Configuration.doAutoCreate())
          this.name = new HumanName(); // cc
      return this.name;
    }

    public boolean hasName() {
      return this.name != null && !this.name.isEmpty();
    }

    /**
     * @param value {@link #name} (A name associated with the contact person.)
     */
    public ContactComponent setName(HumanName value) {
      this.name = value;
      return this;
    }

    /**
     * @return {@link #telecom} (A contact detail for the person, e.g. a telephone
     *         number or an email address.)
     */
    public List getTelecom() {
      if (this.telecom == null)
        this.telecom = new ArrayList();
      return this.telecom;
    }

    /**
     * @return Returns a reference to this for easy method chaining
     */
    public ContactComponent setTelecom(List theTelecom) {
      this.telecom = theTelecom;
      return this;
    }

    public boolean hasTelecom() {
      if (this.telecom == null)
        return false;
      for (ContactPoint item : this.telecom)
        if (!item.isEmpty())
          return true;
      return false;
    }

    public ContactPoint addTelecom() { // 3
      ContactPoint t = new ContactPoint();
      if (this.telecom == null)
        this.telecom = new ArrayList();
      this.telecom.add(t);
      return t;
    }

    public ContactComponent addTelecom(ContactPoint t) { // 3
      if (t == null)
        return this;
      if (this.telecom == null)
        this.telecom = new ArrayList();
      this.telecom.add(t);
      return this;
    }

    /**
     * @return The first repetition of repeating field {@link #telecom}, creating it
     *         if it does not already exist
     */
    public ContactPoint getTelecomFirstRep() {
      if (getTelecom().isEmpty()) {
        addTelecom();
      }
      return getTelecom().get(0);
    }

    /**
     * @return {@link #address} (Address for the contact person.)
     */
    public Address getAddress() {
      if (this.address == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create ContactComponent.address");
        else if (Configuration.doAutoCreate())
          this.address = new Address(); // cc
      return this.address;
    }

    public boolean hasAddress() {
      return this.address != null && !this.address.isEmpty();
    }

    /**
     * @param value {@link #address} (Address for the contact person.)
     */
    public ContactComponent setAddress(Address value) {
      this.address = value;
      return this;
    }

    /**
     * @return {@link #gender} (Administrative Gender - the gender that the contact
     *         person is considered to have for administration and record keeping
     *         purposes.). This is the underlying object with id, value and
     *         extensions. The accessor "getGender" gives direct access to the value
     */
    public Enumeration getGenderElement() {
      if (this.gender == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create ContactComponent.gender");
        else if (Configuration.doAutoCreate())
          this.gender = new Enumeration(new AdministrativeGenderEnumFactory()); // bb
      return this.gender;
    }

    public boolean hasGenderElement() {
      return this.gender != null && !this.gender.isEmpty();
    }

    public boolean hasGender() {
      return this.gender != null && !this.gender.isEmpty();
    }

    /**
     * @param value {@link #gender} (Administrative Gender - the gender that the
     *              contact person is considered to have for administration and
     *              record keeping purposes.). This is the underlying object with
     *              id, value and extensions. The accessor "getGender" gives direct
     *              access to the value
     */
    public ContactComponent setGenderElement(Enumeration value) {
      this.gender = value;
      return this;
    }

    /**
     * @return Administrative Gender - the gender that the contact person is
     *         considered to have for administration and record keeping purposes.
     */
    public AdministrativeGender getGender() {
      return this.gender == null ? null : this.gender.getValue();
    }

    /**
     * @param value Administrative Gender - the gender that the contact person is
     *              considered to have for administration and record keeping
     *              purposes.
     */
    public ContactComponent setGender(AdministrativeGender value) {
      if (value == null)
        this.gender = null;
      else {
        if (this.gender == null)
          this.gender = new Enumeration(new AdministrativeGenderEnumFactory());
        this.gender.setValue(value);
      }
      return this;
    }

    /**
     * @return {@link #organization} (Organization on behalf of which the contact is
     *         acting or for which the contact is working.)
     */
    public Reference getOrganization() {
      if (this.organization == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create ContactComponent.organization");
        else if (Configuration.doAutoCreate())
          this.organization = new Reference(); // cc
      return this.organization;
    }

    public boolean hasOrganization() {
      return this.organization != null && !this.organization.isEmpty();
    }

    /**
     * @param value {@link #organization} (Organization on behalf of which the
     *              contact is acting or for which the contact is working.)
     */
    public ContactComponent setOrganization(Reference value) {
      this.organization = value;
      return this;
    }

    /**
     * @return {@link #organization} The actual object that is the target of the
     *         reference. The reference library doesn't populate this, but you can
     *         use it to hold the resource if you resolve it. (Organization on
     *         behalf of which the contact is acting or for which the contact is
     *         working.)
     */
    public Organization getOrganizationTarget() {
      if (this.organizationTarget == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create ContactComponent.organization");
        else if (Configuration.doAutoCreate())
          this.organizationTarget = new Organization(); // aa
      return this.organizationTarget;
    }

    /**
     * @param value {@link #organization} The actual object that is the target of
     *              the reference. The reference library doesn't use these, but you
     *              can use it to hold the resource if you resolve it. (Organization
     *              on behalf of which the contact is acting or for which the
     *              contact is working.)
     */
    public ContactComponent setOrganizationTarget(Organization value) {
      this.organizationTarget = value;
      return this;
    }

    /**
     * @return {@link #period} (The period during which this contact person or
     *         organization is valid to be contacted relating to this patient.)
     */
    public Period getPeriod() {
      if (this.period == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create ContactComponent.period");
        else if (Configuration.doAutoCreate())
          this.period = new Period(); // cc
      return this.period;
    }

    public boolean hasPeriod() {
      return this.period != null && !this.period.isEmpty();
    }

    /**
     * @param value {@link #period} (The period during which this contact person or
     *              organization is valid to be contacted relating to this patient.)
     */
    public ContactComponent setPeriod(Period value) {
      this.period = value;
      return this;
    }

    protected void listChildren(List children) {
      super.listChildren(children);
      children.add(new Property("relationship", "CodeableConcept",
          "The nature of the relationship between the patient and the contact person.", 0, java.lang.Integer.MAX_VALUE,
          relationship));
      children.add(new Property("name", "HumanName", "A name associated with the contact person.", 0, 1, name));
      children.add(new Property("telecom", "ContactPoint",
          "A contact detail for the person, e.g. a telephone number or an email address.", 0,
          java.lang.Integer.MAX_VALUE, telecom));
      children.add(new Property("address", "Address", "Address for the contact person.", 0, 1, address));
      children.add(new Property("gender", "code",
          "Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.",
          0, 1, gender));
      children.add(new Property("organization", "Reference(Organization)",
          "Organization on behalf of which the contact is acting or for which the contact is working.", 0, 1,
          organization));
      children.add(new Property("period", "Period",
          "The period during which this contact person or organization is valid to be contacted relating to this patient.",
          0, 1, period));
    }

    @Override
    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
      switch (_hash) {
      case -261851592:
        /* relationship */ return new Property("relationship", "CodeableConcept",
            "The nature of the relationship between the patient and the contact person.", 0,
            java.lang.Integer.MAX_VALUE, relationship);
      case 3373707:
        /* name */ return new Property("name", "HumanName", "A name associated with the contact person.", 0, 1, name);
      case -1429363305:
        /* telecom */ return new Property("telecom", "ContactPoint",
            "A contact detail for the person, e.g. a telephone number or an email address.", 0,
            java.lang.Integer.MAX_VALUE, telecom);
      case -1147692044:
        /* address */ return new Property("address", "Address", "Address for the contact person.", 0, 1, address);
      case -1249512767:
        /* gender */ return new Property("gender", "code",
            "Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.",
            0, 1, gender);
      case 1178922291:
        /* organization */ return new Property("organization", "Reference(Organization)",
            "Organization on behalf of which the contact is acting or for which the contact is working.", 0, 1,
            organization);
      case -991726143:
        /* period */ return new Property("period", "Period",
            "The period during which this contact person or organization is valid to be contacted relating to this patient.",
            0, 1, period);
      default:
        return super.getNamedProperty(_hash, _name, _checkValid);
      }

    }

    @Override
    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
      switch (hash) {
      case -261851592:
        /* relationship */ return this.relationship == null ? new Base[0]
            : this.relationship.toArray(new Base[this.relationship.size()]); // CodeableConcept
      case 3373707:
        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // HumanName
      case -1429363305:
        /* telecom */ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint
      case -1147692044:
        /* address */ return this.address == null ? new Base[0] : new Base[] { this.address }; // Address
      case -1249512767:
        /* gender */ return this.gender == null ? new Base[0] : new Base[] { this.gender }; // Enumeration
      case 1178922291:
        /* organization */ return this.organization == null ? new Base[0] : new Base[] { this.organization }; // Reference
      case -991726143:
        /* period */ return this.period == null ? new Base[0] : new Base[] { this.period }; // Period
      default:
        return super.getProperty(hash, name, checkValid);
      }

    }

    @Override
    public Base setProperty(int hash, String name, Base value) throws FHIRException {
      switch (hash) {
      case -261851592: // relationship
        this.getRelationship().add(castToCodeableConcept(value)); // CodeableConcept
        return value;
      case 3373707: // name
        this.name = castToHumanName(value); // HumanName
        return value;
      case -1429363305: // telecom
        this.getTelecom().add(castToContactPoint(value)); // ContactPoint
        return value;
      case -1147692044: // address
        this.address = castToAddress(value); // Address
        return value;
      case -1249512767: // gender
        value = new AdministrativeGenderEnumFactory().fromType(castToCode(value));
        this.gender = (Enumeration) value; // Enumeration
        return value;
      case 1178922291: // organization
        this.organization = castToReference(value); // Reference
        return value;
      case -991726143: // period
        this.period = castToPeriod(value); // Period
        return value;
      default:
        return super.setProperty(hash, name, value);
      }

    }

    @Override
    public Base setProperty(String name, Base value) throws FHIRException {
      if (name.equals("relationship")) {
        this.getRelationship().add(castToCodeableConcept(value));
      } else if (name.equals("name")) {
        this.name = castToHumanName(value); // HumanName
      } else if (name.equals("telecom")) {
        this.getTelecom().add(castToContactPoint(value));
      } else if (name.equals("address")) {
        this.address = castToAddress(value); // Address
      } else if (name.equals("gender")) {
        value = new AdministrativeGenderEnumFactory().fromType(castToCode(value));
        this.gender = (Enumeration) value; // Enumeration
      } else if (name.equals("organization")) {
        this.organization = castToReference(value); // Reference
      } else if (name.equals("period")) {
        this.period = castToPeriod(value); // Period
      } else
        return super.setProperty(name, value);
      return value;
    }

  @Override
  public void removeChild(String name, Base value) throws FHIRException {
      if (name.equals("relationship")) {
        this.getRelationship().remove(castToCodeableConcept(value));
      } else if (name.equals("name")) {
        this.name = null;
      } else if (name.equals("telecom")) {
        this.getTelecom().remove(castToContactPoint(value));
      } else if (name.equals("address")) {
        this.address = null;
      } else if (name.equals("gender")) {
        this.gender = null;
      } else if (name.equals("organization")) {
        this.organization = null;
      } else if (name.equals("period")) {
        this.period = null;
      } else
        super.removeChild(name, value);
      
    }

    @Override
    public Base makeProperty(int hash, String name) throws FHIRException {
      switch (hash) {
      case -261851592:
        return addRelationship();
      case 3373707:
        return getName();
      case -1429363305:
        return addTelecom();
      case -1147692044:
        return getAddress();
      case -1249512767:
        return getGenderElement();
      case 1178922291:
        return getOrganization();
      case -991726143:
        return getPeriod();
      default:
        return super.makeProperty(hash, name);
      }

    }

    @Override
    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
      switch (hash) {
      case -261851592:
        /* relationship */ return new String[] { "CodeableConcept" };
      case 3373707:
        /* name */ return new String[] { "HumanName" };
      case -1429363305:
        /* telecom */ return new String[] { "ContactPoint" };
      case -1147692044:
        /* address */ return new String[] { "Address" };
      case -1249512767:
        /* gender */ return new String[] { "code" };
      case 1178922291:
        /* organization */ return new String[] { "Reference" };
      case -991726143:
        /* period */ return new String[] { "Period" };
      default:
        return super.getTypesForProperty(hash, name);
      }

    }

    @Override
    public Base addChild(String name) throws FHIRException {
      if (name.equals("relationship")) {
        return addRelationship();
      } else if (name.equals("name")) {
        this.name = new HumanName();
        return this.name;
      } else if (name.equals("telecom")) {
        return addTelecom();
      } else if (name.equals("address")) {
        this.address = new Address();
        return this.address;
      } else if (name.equals("gender")) {
        throw new FHIRException("Cannot call addChild on a singleton property Patient.gender");
      } else if (name.equals("organization")) {
        this.organization = new Reference();
        return this.organization;
      } else if (name.equals("period")) {
        this.period = new Period();
        return this.period;
      } else
        return super.addChild(name);
    }

    public ContactComponent copy() {
      ContactComponent dst = new ContactComponent();
      copyValues(dst);
      return dst;
    }

    public void copyValues(ContactComponent dst) {
      super.copyValues(dst);
      if (relationship != null) {
        dst.relationship = new ArrayList();
        for (CodeableConcept i : relationship)
          dst.relationship.add(i.copy());
      }
      ;
      dst.name = name == null ? null : name.copy();
      if (telecom != null) {
        dst.telecom = new ArrayList();
        for (ContactPoint i : telecom)
          dst.telecom.add(i.copy());
      }
      ;
      dst.address = address == null ? null : address.copy();
      dst.gender = gender == null ? null : gender.copy();
      dst.organization = organization == null ? null : organization.copy();
      dst.period = period == null ? null : period.copy();
    }

    @Override
    public boolean equalsDeep(Base other_) {
      if (!super.equalsDeep(other_))
        return false;
      if (!(other_ instanceof ContactComponent))
        return false;
      ContactComponent o = (ContactComponent) other_;
      return compareDeep(relationship, o.relationship, true) && compareDeep(name, o.name, true)
          && compareDeep(telecom, o.telecom, true) && compareDeep(address, o.address, true)
          && compareDeep(gender, o.gender, true) && compareDeep(organization, o.organization, true)
          && compareDeep(period, o.period, true);
    }

    @Override
    public boolean equalsShallow(Base other_) {
      if (!super.equalsShallow(other_))
        return false;
      if (!(other_ instanceof ContactComponent))
        return false;
      ContactComponent o = (ContactComponent) other_;
      return compareValues(gender, o.gender, true);
    }

    public boolean isEmpty() {
      return super.isEmpty()
          && ca.uhn.fhir.util.ElementUtil.isEmpty(relationship, name, telecom, address, gender, organization, period);
    }

    public String fhirType() {
      return "Patient.contact";

    }

  }

  @Block()
  public static class PatientCommunicationComponent extends BackboneElement implements IBaseBackboneElement {
    /**
     * The ISO-639-1 alpha 2 code in lower case for the language, optionally
     * followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper
     * case; e.g. "en" for English, or "en-US" for American English versus "en-EN"
     * for England English.
     */
    @Child(name = "language", type = {
        CodeableConcept.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
    @Description(shortDefinition = "The language which can be used to communicate with the patient about his or her health", formalDefinition = "The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-EN\" for England English.")
    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/languages")
    protected CodeableConcept language;

    /**
     * Indicates whether or not the patient prefers this language (over other
     * languages he masters up a certain level).
     */
    @Child(name = "preferred", type = {
        BooleanType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
    @Description(shortDefinition = "Language preference indicator", formalDefinition = "Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).")
    protected BooleanType preferred;

    private static final long serialVersionUID = 633792918L;

    /**
     * Constructor
     */
    public PatientCommunicationComponent() {
      super();
    }

    /**
     * Constructor
     */
    public PatientCommunicationComponent(CodeableConcept language) {
      super();
      this.language = language;
    }

    /**
     * @return {@link #language} (The ISO-639-1 alpha 2 code in lower case for the
     *         language, optionally followed by a hyphen and the ISO-3166-1 alpha 2
     *         code for the region in upper case; e.g. "en" for English, or "en-US"
     *         for American English versus "en-EN" for England English.)
     */
    public CodeableConcept getLanguage() {
      if (this.language == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create PatientCommunicationComponent.language");
        else if (Configuration.doAutoCreate())
          this.language = new CodeableConcept(); // cc
      return this.language;
    }

    public boolean hasLanguage() {
      return this.language != null && !this.language.isEmpty();
    }

    /**
     * @param value {@link #language} (The ISO-639-1 alpha 2 code in lower case for
     *              the language, optionally followed by a hyphen and the ISO-3166-1
     *              alpha 2 code for the region in upper case; e.g. "en" for
     *              English, or "en-US" for American English versus "en-EN" for
     *              England English.)
     */
    public PatientCommunicationComponent setLanguage(CodeableConcept value) {
      this.language = value;
      return this;
    }

    /**
     * @return {@link #preferred} (Indicates whether or not the patient prefers this
     *         language (over other languages he masters up a certain level).). This
     *         is the underlying object with id, value and extensions. The accessor
     *         "getPreferred" gives direct access to the value
     */
    public BooleanType getPreferredElement() {
      if (this.preferred == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create PatientCommunicationComponent.preferred");
        else if (Configuration.doAutoCreate())
          this.preferred = new BooleanType(); // bb
      return this.preferred;
    }

    public boolean hasPreferredElement() {
      return this.preferred != null && !this.preferred.isEmpty();
    }

    public boolean hasPreferred() {
      return this.preferred != null && !this.preferred.isEmpty();
    }

    /**
     * @param value {@link #preferred} (Indicates whether or not the patient prefers
     *              this language (over other languages he masters up a certain
     *              level).). This is the underlying object with id, value and
     *              extensions. The accessor "getPreferred" gives direct access to
     *              the value
     */
    public PatientCommunicationComponent setPreferredElement(BooleanType value) {
      this.preferred = value;
      return this;
    }

    /**
     * @return Indicates whether or not the patient prefers this language (over
     *         other languages he masters up a certain level).
     */
    public boolean getPreferred() {
      return this.preferred == null || this.preferred.isEmpty() ? false : this.preferred.getValue();
    }

    /**
     * @param value Indicates whether or not the patient prefers this language (over
     *              other languages he masters up a certain level).
     */
    public PatientCommunicationComponent setPreferred(boolean value) {
      if (this.preferred == null)
        this.preferred = new BooleanType();
      this.preferred.setValue(value);
      return this;
    }

    protected void listChildren(List children) {
      super.listChildren(children);
      children.add(new Property("language", "CodeableConcept",
          "The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-EN\" for England English.",
          0, 1, language));
      children.add(new Property("preferred", "boolean",
          "Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).",
          0, 1, preferred));
    }

    @Override
    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
      switch (_hash) {
      case -1613589672:
        /* language */ return new Property("language", "CodeableConcept",
            "The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-EN\" for England English.",
            0, 1, language);
      case -1294005119:
        /* preferred */ return new Property("preferred", "boolean",
            "Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).",
            0, 1, preferred);
      default:
        return super.getNamedProperty(_hash, _name, _checkValid);
      }

    }

    @Override
    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
      switch (hash) {
      case -1613589672:
        /* language */ return this.language == null ? new Base[0] : new Base[] { this.language }; // CodeableConcept
      case -1294005119:
        /* preferred */ return this.preferred == null ? new Base[0] : new Base[] { this.preferred }; // BooleanType
      default:
        return super.getProperty(hash, name, checkValid);
      }

    }

    @Override
    public Base setProperty(int hash, String name, Base value) throws FHIRException {
      switch (hash) {
      case -1613589672: // language
        this.language = castToCodeableConcept(value); // CodeableConcept
        return value;
      case -1294005119: // preferred
        this.preferred = castToBoolean(value); // BooleanType
        return value;
      default:
        return super.setProperty(hash, name, value);
      }

    }

    @Override
    public Base setProperty(String name, Base value) throws FHIRException {
      if (name.equals("language")) {
        this.language = castToCodeableConcept(value); // CodeableConcept
      } else if (name.equals("preferred")) {
        this.preferred = castToBoolean(value); // BooleanType
      } else
        return super.setProperty(name, value);
      return value;
    }

  @Override
  public void removeChild(String name, Base value) throws FHIRException {
      if (name.equals("language")) {
        this.language = null;
      } else if (name.equals("preferred")) {
        this.preferred = null;
      } else
        super.removeChild(name, value);
      
    }

    @Override
    public Base makeProperty(int hash, String name) throws FHIRException {
      switch (hash) {
      case -1613589672:
        return getLanguage();
      case -1294005119:
        return getPreferredElement();
      default:
        return super.makeProperty(hash, name);
      }

    }

    @Override
    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
      switch (hash) {
      case -1613589672:
        /* language */ return new String[] { "CodeableConcept" };
      case -1294005119:
        /* preferred */ return new String[] { "boolean" };
      default:
        return super.getTypesForProperty(hash, name);
      }

    }

    @Override
    public Base addChild(String name) throws FHIRException {
      if (name.equals("language")) {
        this.language = new CodeableConcept();
        return this.language;
      } else if (name.equals("preferred")) {
        throw new FHIRException("Cannot call addChild on a singleton property Patient.preferred");
      } else
        return super.addChild(name);
    }

    public PatientCommunicationComponent copy() {
      PatientCommunicationComponent dst = new PatientCommunicationComponent();
      copyValues(dst);
      return dst;
    }

    public void copyValues(PatientCommunicationComponent dst) {
      super.copyValues(dst);
      dst.language = language == null ? null : language.copy();
      dst.preferred = preferred == null ? null : preferred.copy();
    }

    @Override
    public boolean equalsDeep(Base other_) {
      if (!super.equalsDeep(other_))
        return false;
      if (!(other_ instanceof PatientCommunicationComponent))
        return false;
      PatientCommunicationComponent o = (PatientCommunicationComponent) other_;
      return compareDeep(language, o.language, true) && compareDeep(preferred, o.preferred, true);
    }

    @Override
    public boolean equalsShallow(Base other_) {
      if (!super.equalsShallow(other_))
        return false;
      if (!(other_ instanceof PatientCommunicationComponent))
        return false;
      PatientCommunicationComponent o = (PatientCommunicationComponent) other_;
      return compareValues(preferred, o.preferred, true);
    }

    public boolean isEmpty() {
      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(language, preferred);
    }

    public String fhirType() {
      return "Patient.communication";

    }

  }

  @Block()
  public static class PatientLinkComponent extends BackboneElement implements IBaseBackboneElement {
    /**
     * The other patient resource that the link refers to.
     */
    @Child(name = "other", type = { Patient.class,
        RelatedPerson.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
    @Description(shortDefinition = "The other patient or related person resource that the link refers to", formalDefinition = "The other patient resource that the link refers to.")
    protected Reference other;

    /**
     * The actual object that is the target of the reference (The other patient
     * resource that the link refers to.)
     */
    protected Resource otherTarget;

    /**
     * The type of link between this patient resource and another patient resource.
     */
    @Child(name = "type", type = { CodeType.class }, order = 2, min = 1, max = 1, modifier = false, summary = true)
    @Description(shortDefinition = "replaced-by | replaces | refer | seealso", formalDefinition = "The type of link between this patient resource and another patient resource.")
    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/link-type")
    protected Enumeration type;

    private static final long serialVersionUID = 1083576633L;

    /**
     * Constructor
     */
    public PatientLinkComponent() {
      super();
    }

    /**
     * Constructor
     */
    public PatientLinkComponent(Reference other, Enumeration type) {
      super();
      this.other = other;
      this.type = type;
    }

    /**
     * @return {@link #other} (The other patient resource that the link refers to.)
     */
    public Reference getOther() {
      if (this.other == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create PatientLinkComponent.other");
        else if (Configuration.doAutoCreate())
          this.other = new Reference(); // cc
      return this.other;
    }

    public boolean hasOther() {
      return this.other != null && !this.other.isEmpty();
    }

    /**
     * @param value {@link #other} (The other patient resource that the link refers
     *              to.)
     */
    public PatientLinkComponent setOther(Reference value) {
      this.other = value;
      return this;
    }

    /**
     * @return {@link #other} The actual object that is the target of the reference.
     *         The reference library doesn't populate this, but you can use it to
     *         hold the resource if you resolve it. (The other patient resource that
     *         the link refers to.)
     */
    public Resource getOtherTarget() {
      return this.otherTarget;
    }

    /**
     * @param value {@link #other} The actual object that is the target of the
     *              reference. The reference library doesn't use these, but you can
     *              use it to hold the resource if you resolve it. (The other
     *              patient resource that the link refers to.)
     */
    public PatientLinkComponent setOtherTarget(Resource value) {
      this.otherTarget = value;
      return this;
    }

    /**
     * @return {@link #type} (The type of link between this patient resource and
     *         another patient resource.). This is the underlying object with id,
     *         value and extensions. The accessor "getType" gives direct access to
     *         the value
     */
    public Enumeration getTypeElement() {
      if (this.type == null)
        if (Configuration.errorOnAutoCreate())
          throw new Error("Attempt to auto-create PatientLinkComponent.type");
        else if (Configuration.doAutoCreate())
          this.type = new Enumeration(new LinkTypeEnumFactory()); // bb
      return this.type;
    }

    public boolean hasTypeElement() {
      return this.type != null && !this.type.isEmpty();
    }

    public boolean hasType() {
      return this.type != null && !this.type.isEmpty();
    }

    /**
     * @param value {@link #type} (The type of link between this patient resource
     *              and another patient resource.). This is the underlying object
     *              with id, value and extensions. The accessor "getType" gives
     *              direct access to the value
     */
    public PatientLinkComponent setTypeElement(Enumeration value) {
      this.type = value;
      return this;
    }

    /**
     * @return The type of link between this patient resource and another patient
     *         resource.
     */
    public LinkType getType() {
      return this.type == null ? null : this.type.getValue();
    }

    /**
     * @param value The type of link between this patient resource and another
     *              patient resource.
     */
    public PatientLinkComponent setType(LinkType value) {
      if (this.type == null)
        this.type = new Enumeration(new LinkTypeEnumFactory());
      this.type.setValue(value);
      return this;
    }

    protected void listChildren(List children) {
      super.listChildren(children);
      children.add(new Property("other", "Reference(Patient|RelatedPerson)",
          "The other patient resource that the link refers to.", 0, 1, other));
      children.add(new Property("type", "code",
          "The type of link between this patient resource and another patient resource.", 0, 1, type));
    }

    @Override
    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
      switch (_hash) {
      case 106069776:
        /* other */ return new Property("other", "Reference(Patient|RelatedPerson)",
            "The other patient resource that the link refers to.", 0, 1, other);
      case 3575610:
        /* type */ return new Property("type", "code",
            "The type of link between this patient resource and another patient resource.", 0, 1, type);
      default:
        return super.getNamedProperty(_hash, _name, _checkValid);
      }

    }

    @Override
    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
      switch (hash) {
      case 106069776:
        /* other */ return this.other == null ? new Base[0] : new Base[] { this.other }; // Reference
      case 3575610:
        /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // Enumeration
      default:
        return super.getProperty(hash, name, checkValid);
      }

    }

    @Override
    public Base setProperty(int hash, String name, Base value) throws FHIRException {
      switch (hash) {
      case 106069776: // other
        this.other = castToReference(value); // Reference
        return value;
      case 3575610: // type
        value = new LinkTypeEnumFactory().fromType(castToCode(value));
        this.type = (Enumeration) value; // Enumeration
        return value;
      default:
        return super.setProperty(hash, name, value);
      }

    }

    @Override
    public Base setProperty(String name, Base value) throws FHIRException {
      if (name.equals("other")) {
        this.other = castToReference(value); // Reference
      } else if (name.equals("type")) {
        value = new LinkTypeEnumFactory().fromType(castToCode(value));
        this.type = (Enumeration) value; // Enumeration
      } else
        return super.setProperty(name, value);
      return value;
    }

  @Override
  public void removeChild(String name, Base value) throws FHIRException {
      if (name.equals("other")) {
        this.other = null;
      } else if (name.equals("type")) {
        this.type = null;
      } else
        super.removeChild(name, value);
      
    }

    @Override
    public Base makeProperty(int hash, String name) throws FHIRException {
      switch (hash) {
      case 106069776:
        return getOther();
      case 3575610:
        return getTypeElement();
      default:
        return super.makeProperty(hash, name);
      }

    }

    @Override
    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
      switch (hash) {
      case 106069776:
        /* other */ return new String[] { "Reference" };
      case 3575610:
        /* type */ return new String[] { "code" };
      default:
        return super.getTypesForProperty(hash, name);
      }

    }

    @Override
    public Base addChild(String name) throws FHIRException {
      if (name.equals("other")) {
        this.other = new Reference();
        return this.other;
      } else if (name.equals("type")) {
        throw new FHIRException("Cannot call addChild on a singleton property Patient.type");
      } else
        return super.addChild(name);
    }

    public PatientLinkComponent copy() {
      PatientLinkComponent dst = new PatientLinkComponent();
      copyValues(dst);
      return dst;
    }

    public void copyValues(PatientLinkComponent dst) {
      super.copyValues(dst);
      dst.other = other == null ? null : other.copy();
      dst.type = type == null ? null : type.copy();
    }

    @Override
    public boolean equalsDeep(Base other_) {
      if (!super.equalsDeep(other_))
        return false;
      if (!(other_ instanceof PatientLinkComponent))
        return false;
      PatientLinkComponent o = (PatientLinkComponent) other_;
      return compareDeep(other, o.other, true) && compareDeep(type, o.type, true);
    }

    @Override
    public boolean equalsShallow(Base other_) {
      if (!super.equalsShallow(other_))
        return false;
      if (!(other_ instanceof PatientLinkComponent))
        return false;
      PatientLinkComponent o = (PatientLinkComponent) other_;
      return compareValues(type, o.type, true);
    }

    public boolean isEmpty() {
      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(other, type);
    }

    public String fhirType() {
      return "Patient.link";

    }

  }

  /**
   * An identifier for this patient.
   */
  @Child(name = "identifier", type = {
      Identifier.class }, order = 0, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
  @Description(shortDefinition = "An identifier for this patient", formalDefinition = "An identifier for this patient.")
  protected List identifier;

  /**
   * Whether this patient record is in active use. Many systems use this property
   * to mark as non-current patients, such as those that have not been seen for a
   * period of time based on an organization's business rules.
   * 
   * It is often used to filter patient lists to exclude inactive patients
   * 
   * Deceased patients may also be marked as inactive for the same reasons, but
   * may be active for some time after death.
   */
  @Child(name = "active", type = { BooleanType.class }, order = 1, min = 0, max = 1, modifier = true, summary = true)
  @Description(shortDefinition = "Whether this patient's record is in active use", formalDefinition = "Whether this patient record is in active use. \nMany systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules.\n\nIt is often used to filter patient lists to exclude inactive patients\n\nDeceased patients may also be marked as inactive for the same reasons, but may be active for some time after death.")
  protected BooleanType active;

  /**
   * A name associated with the individual.
   */
  @Child(name = "name", type = {
      HumanName.class }, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
  @Description(shortDefinition = "A name associated with the patient", formalDefinition = "A name associated with the individual.")
  protected List name;

  /**
   * A contact detail (e.g. a telephone number or an email address) by which the
   * individual may be contacted.
   */
  @Child(name = "telecom", type = {
      ContactPoint.class }, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
  @Description(shortDefinition = "A contact detail for the individual", formalDefinition = "A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.")
  protected List telecom;

  /**
   * Administrative Gender - the gender that the patient is considered to have for
   * administration and record keeping purposes.
   */
  @Child(name = "gender", type = { CodeType.class }, order = 4, min = 0, max = 1, modifier = false, summary = true)
  @Description(shortDefinition = "male | female | other | unknown", formalDefinition = "Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.")
  @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/administrative-gender")
  protected Enumeration gender;

  /**
   * The date of birth for the individual.
   */
  @Child(name = "birthDate", type = { DateType.class }, order = 5, min = 0, max = 1, modifier = false, summary = true)
  @Description(shortDefinition = "The date of birth for the individual", formalDefinition = "The date of birth for the individual.")
  protected DateType birthDate;

  /**
   * Indicates if the individual is deceased or not.
   */
  @Child(name = "deceased", type = { BooleanType.class,
      DateTimeType.class }, order = 6, min = 0, max = 1, modifier = true, summary = true)
  @Description(shortDefinition = "Indicates if the individual is deceased or not", formalDefinition = "Indicates if the individual is deceased or not.")
  protected Type deceased;

  /**
   * An address for the individual.
   */
  @Child(name = "address", type = {
      Address.class }, order = 7, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
  @Description(shortDefinition = "An address for the individual", formalDefinition = "An address for the individual.")
  protected List
address; /** * This field contains a patient's most recent marital (civil) status. */ @Child(name = "maritalStatus", type = { CodeableConcept.class }, order = 8, min = 0, max = 1, modifier = false, summary = false) @Description(shortDefinition = "Marital (civil) status of a patient", formalDefinition = "This field contains a patient's most recent marital (civil) status.") @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/marital-status") protected CodeableConcept maritalStatus; /** * Indicates whether the patient is part of a multiple (boolean) or indicates * the actual birth order (integer). */ @Child(name = "multipleBirth", type = { BooleanType.class, IntegerType.class }, order = 9, min = 0, max = 1, modifier = false, summary = false) @Description(shortDefinition = "Whether patient is part of a multiple birth", formalDefinition = "Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).") protected Type multipleBirth; /** * Image of the patient. */ @Child(name = "photo", type = { Attachment.class }, order = 10, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) @Description(shortDefinition = "Image of the patient", formalDefinition = "Image of the patient.") protected List photo; /** * A contact party (e.g. guardian, partner, friend) for the patient. */ @Child(name = "contact", type = {}, order = 11, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) @Description(shortDefinition = "A contact party (e.g. guardian, partner, friend) for the patient", formalDefinition = "A contact party (e.g. guardian, partner, friend) for the patient.") protected List contact; /** * A language which may be used to communicate with the patient about his or her * health. */ @Child(name = "communication", type = {}, order = 12, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) @Description(shortDefinition = "A language which may be used to communicate with the patient about his or her health", formalDefinition = "A language which may be used to communicate with the patient about his or her health.") protected List communication; /** * Patient's nominated care provider. */ @Child(name = "generalPractitioner", type = { Organization.class, Practitioner.class, PractitionerRole.class }, order = 13, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) @Description(shortDefinition = "Patient's nominated primary care provider", formalDefinition = "Patient's nominated care provider.") protected List generalPractitioner; /** * The actual objects that are the target of the reference (Patient's nominated * care provider.) */ protected List generalPractitionerTarget; /** * Organization that is the custodian of the patient record. */ @Child(name = "managingOrganization", type = { Organization.class }, order = 14, min = 0, max = 1, modifier = false, summary = true) @Description(shortDefinition = "Organization that is the custodian of the patient record", formalDefinition = "Organization that is the custodian of the patient record.") protected Reference managingOrganization; /** * The actual object that is the target of the reference (Organization that is * the custodian of the patient record.) */ protected Organization managingOrganizationTarget; /** * Link to another patient resource that concerns the same actual patient. */ @Child(name = "link", type = {}, order = 15, min = 0, max = Child.MAX_UNLIMITED, modifier = true, summary = true) @Description(shortDefinition = "Link to another patient resource that concerns the same actual person", formalDefinition = "Link to another patient resource that concerns the same actual patient.") protected List link; private static final long serialVersionUID = 2138656939L; /** * Constructor */ public Patient() { super(); } /** * @return {@link #identifier} (An identifier for this patient.) */ public List getIdentifier() { if (this.identifier == null) this.identifier = new ArrayList(); return this.identifier; } /** * @return Returns a reference to this for easy method chaining */ public Patient setIdentifier(List theIdentifier) { this.identifier = theIdentifier; return this; } public boolean hasIdentifier() { if (this.identifier == null) return false; for (Identifier item : this.identifier) if (!item.isEmpty()) return true; return false; } public Identifier addIdentifier() { // 3 Identifier t = new Identifier(); if (this.identifier == null) this.identifier = new ArrayList(); this.identifier.add(t); return t; } public Patient addIdentifier(Identifier t) { // 3 if (t == null) return this; if (this.identifier == null) this.identifier = new ArrayList(); this.identifier.add(t); return this; } /** * @return The first repetition of repeating field {@link #identifier}, creating * it if it does not already exist */ public Identifier getIdentifierFirstRep() { if (getIdentifier().isEmpty()) { addIdentifier(); } return getIdentifier().get(0); } /** * @return {@link #active} (Whether this patient record is in active use. Many * systems use this property to mark as non-current patients, such as * those that have not been seen for a period of time based on an * organization's business rules. * * It is often used to filter patient lists to exclude inactive patients * * Deceased patients may also be marked as inactive for the same * reasons, but may be active for some time after death.). This is the * underlying object with id, value and extensions. The accessor * "getActive" gives direct access to the value */ public BooleanType getActiveElement() { if (this.active == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Patient.active"); else if (Configuration.doAutoCreate()) this.active = new BooleanType(); // bb return this.active; } public boolean hasActiveElement() { return this.active != null && !this.active.isEmpty(); } public boolean hasActive() { return this.active != null && !this.active.isEmpty(); } /** * @param value {@link #active} (Whether this patient record is in active use. * Many systems use this property to mark as non-current patients, * such as those that have not been seen for a period of time based * on an organization's business rules. * * It is often used to filter patient lists to exclude inactive * patients * * Deceased patients may also be marked as inactive for the same * reasons, but may be active for some time after death.). This is * the underlying object with id, value and extensions. The * accessor "getActive" gives direct access to the value */ public Patient setActiveElement(BooleanType value) { this.active = value; return this; } /** * @return Whether this patient record is in active use. Many systems use this * property to mark as non-current patients, such as those that have not * been seen for a period of time based on an organization's business * rules. * * It is often used to filter patient lists to exclude inactive patients * * Deceased patients may also be marked as inactive for the same * reasons, but may be active for some time after death. */ public boolean getActive() { return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); } /** * @param value Whether this patient record is in active use. Many systems use * this property to mark as non-current patients, such as those * that have not been seen for a period of time based on an * organization's business rules. * * It is often used to filter patient lists to exclude inactive * patients * * Deceased patients may also be marked as inactive for the same * reasons, but may be active for some time after death. */ public Patient setActive(boolean value) { if (this.active == null) this.active = new BooleanType(); this.active.setValue(value); return this; } /** * @return {@link #name} (A name associated with the individual.) */ public List getName() { if (this.name == null) this.name = new ArrayList(); return this.name; } /** * @return Returns a reference to this for easy method chaining */ public Patient setName(List theName) { this.name = theName; return this; } public boolean hasName() { if (this.name == null) return false; for (HumanName item : this.name) if (!item.isEmpty()) return true; return false; } public HumanName addName() { // 3 HumanName t = new HumanName(); if (this.name == null) this.name = new ArrayList(); this.name.add(t); return t; } public Patient addName(HumanName t) { // 3 if (t == null) return this; if (this.name == null) this.name = new ArrayList(); this.name.add(t); return this; } /** * @return The first repetition of repeating field {@link #name}, creating it if * it does not already exist */ public HumanName getNameFirstRep() { if (getName().isEmpty()) { addName(); } return getName().get(0); } /** * @return {@link #telecom} (A contact detail (e.g. a telephone number or an * email address) by which the individual may be contacted.) */ public List getTelecom() { if (this.telecom == null) this.telecom = new ArrayList(); return this.telecom; } /** * @return Returns a reference to this for easy method chaining */ public Patient setTelecom(List theTelecom) { this.telecom = theTelecom; return this; } public boolean hasTelecom() { if (this.telecom == null) return false; for (ContactPoint item : this.telecom) if (!item.isEmpty()) return true; return false; } public ContactPoint addTelecom() { // 3 ContactPoint t = new ContactPoint(); if (this.telecom == null) this.telecom = new ArrayList(); this.telecom.add(t); return t; } public Patient addTelecom(ContactPoint t) { // 3 if (t == null) return this; if (this.telecom == null) this.telecom = new ArrayList(); this.telecom.add(t); return this; } /** * @return The first repetition of repeating field {@link #telecom}, creating it * if it does not already exist */ public ContactPoint getTelecomFirstRep() { if (getTelecom().isEmpty()) { addTelecom(); } return getTelecom().get(0); } /** * @return {@link #gender} (Administrative Gender - the gender that the patient * is considered to have for administration and record keeping * purposes.). This is the underlying object with id, value and * extensions. The accessor "getGender" gives direct access to the value */ public Enumeration getGenderElement() { if (this.gender == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Patient.gender"); else if (Configuration.doAutoCreate()) this.gender = new Enumeration(new AdministrativeGenderEnumFactory()); // bb return this.gender; } public boolean hasGenderElement() { return this.gender != null && !this.gender.isEmpty(); } public boolean hasGender() { return this.gender != null && !this.gender.isEmpty(); } /** * @param value {@link #gender} (Administrative Gender - the gender that the * patient is considered to have for administration and record * keeping purposes.). This is the underlying object with id, value * and extensions. The accessor "getGender" gives direct access to * the value */ public Patient setGenderElement(Enumeration value) { this.gender = value; return this; } /** * @return Administrative Gender - the gender that the patient is considered to * have for administration and record keeping purposes. */ public AdministrativeGender getGender() { return this.gender == null ? null : this.gender.getValue(); } /** * @param value Administrative Gender - the gender that the patient is * considered to have for administration and record keeping * purposes. */ public Patient setGender(AdministrativeGender value) { if (value == null) this.gender = null; else { if (this.gender == null) this.gender = new Enumeration(new AdministrativeGenderEnumFactory()); this.gender.setValue(value); } return this; } /** * @return {@link #birthDate} (The date of birth for the individual.). This is * the underlying object with id, value and extensions. The accessor * "getBirthDate" gives direct access to the value */ public DateType getBirthDateElement() { if (this.birthDate == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Patient.birthDate"); else if (Configuration.doAutoCreate()) this.birthDate = new DateType(); // bb return this.birthDate; } public boolean hasBirthDateElement() { return this.birthDate != null && !this.birthDate.isEmpty(); } public boolean hasBirthDate() { return this.birthDate != null && !this.birthDate.isEmpty(); } /** * @param value {@link #birthDate} (The date of birth for the individual.). This * is the underlying object with id, value and extensions. The * accessor "getBirthDate" gives direct access to the value */ public Patient setBirthDateElement(DateType value) { this.birthDate = value; return this; } /** * @return The date of birth for the individual. */ public Date getBirthDate() { return this.birthDate == null ? null : this.birthDate.getValue(); } /** * @param value The date of birth for the individual. */ public Patient setBirthDate(Date value) { if (value == null) this.birthDate = null; else { if (this.birthDate == null) this.birthDate = new DateType(); this.birthDate.setValue(value); } return this; } /** * @return {@link #deceased} (Indicates if the individual is deceased or not.) */ public Type getDeceased() { return this.deceased; } /** * @return {@link #deceased} (Indicates if the individual is deceased or not.) */ public BooleanType getDeceasedBooleanType() throws FHIRException { if (this.deceased == null) this.deceased = new BooleanType(); if (!(this.deceased instanceof BooleanType)) throw new FHIRException("Type mismatch: the type BooleanType was expected, but " + this.deceased.getClass().getName() + " was encountered"); return (BooleanType) this.deceased; } public boolean hasDeceasedBooleanType() { return this != null && this.deceased instanceof BooleanType; } /** * @return {@link #deceased} (Indicates if the individual is deceased or not.) */ public DateTimeType getDeceasedDateTimeType() throws FHIRException { if (this.deceased == null) this.deceased = new DateTimeType(); if (!(this.deceased instanceof DateTimeType)) throw new FHIRException("Type mismatch: the type DateTimeType was expected, but " + this.deceased.getClass().getName() + " was encountered"); return (DateTimeType) this.deceased; } public boolean hasDeceasedDateTimeType() { return this != null && this.deceased instanceof DateTimeType; } public boolean hasDeceased() { return this.deceased != null && !this.deceased.isEmpty(); } /** * @param value {@link #deceased} (Indicates if the individual is deceased or * not.) */ public Patient setDeceased(Type value) { if (value != null && !(value instanceof BooleanType || value instanceof DateTimeType)) throw new Error("Not the right type for Patient.deceased[x]: " + value.fhirType()); this.deceased = value; return this; } /** * @return {@link #address} (An address for the individual.) */ public List
getAddress() { if (this.address == null) this.address = new ArrayList
(); return this.address; } /** * @return Returns a reference to this for easy method chaining */ public Patient setAddress(List
theAddress) { this.address = theAddress; return this; } public boolean hasAddress() { if (this.address == null) return false; for (Address item : this.address) if (!item.isEmpty()) return true; return false; } public Address addAddress() { // 3 Address t = new Address(); if (this.address == null) this.address = new ArrayList
(); this.address.add(t); return t; } public Patient addAddress(Address t) { // 3 if (t == null) return this; if (this.address == null) this.address = new ArrayList
(); this.address.add(t); return this; } /** * @return The first repetition of repeating field {@link #address}, creating it * if it does not already exist */ public Address getAddressFirstRep() { if (getAddress().isEmpty()) { addAddress(); } return getAddress().get(0); } /** * @return {@link #maritalStatus} (This field contains a patient's most recent * marital (civil) status.) */ public CodeableConcept getMaritalStatus() { if (this.maritalStatus == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Patient.maritalStatus"); else if (Configuration.doAutoCreate()) this.maritalStatus = new CodeableConcept(); // cc return this.maritalStatus; } public boolean hasMaritalStatus() { return this.maritalStatus != null && !this.maritalStatus.isEmpty(); } /** * @param value {@link #maritalStatus} (This field contains a patient's most * recent marital (civil) status.) */ public Patient setMaritalStatus(CodeableConcept value) { this.maritalStatus = value; return this; } /** * @return {@link #multipleBirth} (Indicates whether the patient is part of a * multiple (boolean) or indicates the actual birth order (integer).) */ public Type getMultipleBirth() { return this.multipleBirth; } /** * @return {@link #multipleBirth} (Indicates whether the patient is part of a * multiple (boolean) or indicates the actual birth order (integer).) */ public BooleanType getMultipleBirthBooleanType() throws FHIRException { if (this.multipleBirth == null) this.multipleBirth = new BooleanType(); if (!(this.multipleBirth instanceof BooleanType)) throw new FHIRException("Type mismatch: the type BooleanType was expected, but " + this.multipleBirth.getClass().getName() + " was encountered"); return (BooleanType) this.multipleBirth; } public boolean hasMultipleBirthBooleanType() { return this != null && this.multipleBirth instanceof BooleanType; } /** * @return {@link #multipleBirth} (Indicates whether the patient is part of a * multiple (boolean) or indicates the actual birth order (integer).) */ public IntegerType getMultipleBirthIntegerType() throws FHIRException { if (this.multipleBirth == null) this.multipleBirth = new IntegerType(); if (!(this.multipleBirth instanceof IntegerType)) throw new FHIRException("Type mismatch: the type IntegerType was expected, but " + this.multipleBirth.getClass().getName() + " was encountered"); return (IntegerType) this.multipleBirth; } public boolean hasMultipleBirthIntegerType() { return this != null && this.multipleBirth instanceof IntegerType; } public boolean hasMultipleBirth() { return this.multipleBirth != null && !this.multipleBirth.isEmpty(); } /** * @param value {@link #multipleBirth} (Indicates whether the patient is part of * a multiple (boolean) or indicates the actual birth order * (integer).) */ public Patient setMultipleBirth(Type value) { if (value != null && !(value instanceof BooleanType || value instanceof IntegerType)) throw new Error("Not the right type for Patient.multipleBirth[x]: " + value.fhirType()); this.multipleBirth = value; return this; } /** * @return {@link #photo} (Image of the patient.) */ public List getPhoto() { if (this.photo == null) this.photo = new ArrayList(); return this.photo; } /** * @return Returns a reference to this for easy method chaining */ public Patient setPhoto(List thePhoto) { this.photo = thePhoto; return this; } public boolean hasPhoto() { if (this.photo == null) return false; for (Attachment item : this.photo) if (!item.isEmpty()) return true; return false; } public Attachment addPhoto() { // 3 Attachment t = new Attachment(); if (this.photo == null) this.photo = new ArrayList(); this.photo.add(t); return t; } public Patient addPhoto(Attachment t) { // 3 if (t == null) return this; if (this.photo == null) this.photo = new ArrayList(); this.photo.add(t); return this; } /** * @return The first repetition of repeating field {@link #photo}, creating it * if it does not already exist */ public Attachment getPhotoFirstRep() { if (getPhoto().isEmpty()) { addPhoto(); } return getPhoto().get(0); } /** * @return {@link #contact} (A contact party (e.g. guardian, partner, friend) * for the patient.) */ public List getContact() { if (this.contact == null) this.contact = new ArrayList(); return this.contact; } /** * @return Returns a reference to this for easy method chaining */ public Patient setContact(List theContact) { this.contact = theContact; return this; } public boolean hasContact() { if (this.contact == null) return false; for (ContactComponent item : this.contact) if (!item.isEmpty()) return true; return false; } public ContactComponent addContact() { // 3 ContactComponent t = new ContactComponent(); if (this.contact == null) this.contact = new ArrayList(); this.contact.add(t); return t; } public Patient addContact(ContactComponent t) { // 3 if (t == null) return this; if (this.contact == null) this.contact = new ArrayList(); this.contact.add(t); return this; } /** * @return The first repetition of repeating field {@link #contact}, creating it * if it does not already exist */ public ContactComponent getContactFirstRep() { if (getContact().isEmpty()) { addContact(); } return getContact().get(0); } /** * @return {@link #communication} (A language which may be used to communicate * with the patient about his or her health.) */ public List getCommunication() { if (this.communication == null) this.communication = new ArrayList(); return this.communication; } /** * @return Returns a reference to this for easy method chaining */ public Patient setCommunication(List theCommunication) { this.communication = theCommunication; return this; } public boolean hasCommunication() { if (this.communication == null) return false; for (PatientCommunicationComponent item : this.communication) if (!item.isEmpty()) return true; return false; } public PatientCommunicationComponent addCommunication() { // 3 PatientCommunicationComponent t = new PatientCommunicationComponent(); if (this.communication == null) this.communication = new ArrayList(); this.communication.add(t); return t; } public Patient addCommunication(PatientCommunicationComponent t) { // 3 if (t == null) return this; if (this.communication == null) this.communication = new ArrayList(); this.communication.add(t); return this; } /** * @return The first repetition of repeating field {@link #communication}, * creating it if it does not already exist */ public PatientCommunicationComponent getCommunicationFirstRep() { if (getCommunication().isEmpty()) { addCommunication(); } return getCommunication().get(0); } /** * @return {@link #generalPractitioner} (Patient's nominated care provider.) */ public List getGeneralPractitioner() { if (this.generalPractitioner == null) this.generalPractitioner = new ArrayList(); return this.generalPractitioner; } /** * @return Returns a reference to this for easy method chaining */ public Patient setGeneralPractitioner(List theGeneralPractitioner) { this.generalPractitioner = theGeneralPractitioner; return this; } public boolean hasGeneralPractitioner() { if (this.generalPractitioner == null) return false; for (Reference item : this.generalPractitioner) if (!item.isEmpty()) return true; return false; } public Reference addGeneralPractitioner() { // 3 Reference t = new Reference(); if (this.generalPractitioner == null) this.generalPractitioner = new ArrayList(); this.generalPractitioner.add(t); return t; } public Patient addGeneralPractitioner(Reference t) { // 3 if (t == null) return this; if (this.generalPractitioner == null) this.generalPractitioner = new ArrayList(); this.generalPractitioner.add(t); return this; } /** * @return The first repetition of repeating field {@link #generalPractitioner}, * creating it if it does not already exist */ public Reference getGeneralPractitionerFirstRep() { if (getGeneralPractitioner().isEmpty()) { addGeneralPractitioner(); } return getGeneralPractitioner().get(0); } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public List getGeneralPractitionerTarget() { if (this.generalPractitionerTarget == null) this.generalPractitionerTarget = new ArrayList(); return this.generalPractitionerTarget; } /** * @return {@link #managingOrganization} (Organization that is the custodian of * the patient record.) */ public Reference getManagingOrganization() { if (this.managingOrganization == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Patient.managingOrganization"); else if (Configuration.doAutoCreate()) this.managingOrganization = new Reference(); // cc return this.managingOrganization; } public boolean hasManagingOrganization() { return this.managingOrganization != null && !this.managingOrganization.isEmpty(); } /** * @param value {@link #managingOrganization} (Organization that is the * custodian of the patient record.) */ public Patient setManagingOrganization(Reference value) { this.managingOrganization = value; return this; } /** * @return {@link #managingOrganization} The actual object that is the target of * the reference. The reference library doesn't populate this, but you * can use it to hold the resource if you resolve it. (Organization that * is the custodian of the patient record.) */ public Organization getManagingOrganizationTarget() { if (this.managingOrganizationTarget == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Patient.managingOrganization"); else if (Configuration.doAutoCreate()) this.managingOrganizationTarget = new Organization(); // aa return this.managingOrganizationTarget; } /** * @param value {@link #managingOrganization} The actual object that is the * target of the reference. The reference library doesn't use * these, but you can use it to hold the resource if you resolve * it. (Organization that is the custodian of the patient record.) */ public Patient setManagingOrganizationTarget(Organization value) { this.managingOrganizationTarget = value; return this; } /** * @return {@link #link} (Link to another patient resource that concerns the * same actual patient.) */ public List getLink() { if (this.link == null) this.link = new ArrayList(); return this.link; } /** * @return Returns a reference to this for easy method chaining */ public Patient setLink(List theLink) { this.link = theLink; return this; } public boolean hasLink() { if (this.link == null) return false; for (PatientLinkComponent item : this.link) if (!item.isEmpty()) return true; return false; } public PatientLinkComponent addLink() { // 3 PatientLinkComponent t = new PatientLinkComponent(); if (this.link == null) this.link = new ArrayList(); this.link.add(t); return t; } public Patient addLink(PatientLinkComponent t) { // 3 if (t == null) return this; if (this.link == null) this.link = new ArrayList(); this.link.add(t); return this; } /** * @return The first repetition of repeating field {@link #link}, creating it if * it does not already exist */ public PatientLinkComponent getLinkFirstRep() { if (getLink().isEmpty()) { addLink(); } return getLink().get(0); } protected void listChildren(List children) { super.listChildren(children); children.add(new Property("identifier", "Identifier", "An identifier for this patient.", 0, java.lang.Integer.MAX_VALUE, identifier)); children.add(new Property("active", "boolean", "Whether this patient record is in active use. \nMany systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules.\n\nIt is often used to filter patient lists to exclude inactive patients\n\nDeceased patients may also be marked as inactive for the same reasons, but may be active for some time after death.", 0, 1, active)); children.add(new Property("name", "HumanName", "A name associated with the individual.", 0, java.lang.Integer.MAX_VALUE, name)); children.add(new Property("telecom", "ContactPoint", "A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.", 0, java.lang.Integer.MAX_VALUE, telecom)); children.add(new Property("gender", "code", "Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.", 0, 1, gender)); children.add(new Property("birthDate", "date", "The date of birth for the individual.", 0, 1, birthDate)); children.add(new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased)); children.add( new Property("address", "Address", "An address for the individual.", 0, java.lang.Integer.MAX_VALUE, address)); children.add(new Property("maritalStatus", "CodeableConcept", "This field contains a patient's most recent marital (civil) status.", 0, 1, maritalStatus)); children.add(new Property("multipleBirth[x]", "boolean|integer", "Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).", 0, 1, multipleBirth)); children.add(new Property("photo", "Attachment", "Image of the patient.", 0, java.lang.Integer.MAX_VALUE, photo)); children.add(new Property("contact", "", "A contact party (e.g. guardian, partner, friend) for the patient.", 0, java.lang.Integer.MAX_VALUE, contact)); children.add(new Property("communication", "", "A language which may be used to communicate with the patient about his or her health.", 0, java.lang.Integer.MAX_VALUE, communication)); children.add(new Property("generalPractitioner", "Reference(Organization|Practitioner|PractitionerRole)", "Patient's nominated care provider.", 0, java.lang.Integer.MAX_VALUE, generalPractitioner)); children.add(new Property("managingOrganization", "Reference(Organization)", "Organization that is the custodian of the patient record.", 0, 1, managingOrganization)); children.add(new Property("link", "", "Link to another patient resource that concerns the same actual patient.", 0, java.lang.Integer.MAX_VALUE, link)); } @Override public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { switch (_hash) { case -1618432855: /* identifier */ return new Property("identifier", "Identifier", "An identifier for this patient.", 0, java.lang.Integer.MAX_VALUE, identifier); case -1422950650: /* active */ return new Property("active", "boolean", "Whether this patient record is in active use. \nMany systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules.\n\nIt is often used to filter patient lists to exclude inactive patients\n\nDeceased patients may also be marked as inactive for the same reasons, but may be active for some time after death.", 0, 1, active); case 3373707: /* name */ return new Property("name", "HumanName", "A name associated with the individual.", 0, java.lang.Integer.MAX_VALUE, name); case -1429363305: /* telecom */ return new Property("telecom", "ContactPoint", "A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.", 0, java.lang.Integer.MAX_VALUE, telecom); case -1249512767: /* gender */ return new Property("gender", "code", "Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.", 0, 1, gender); case -1210031859: /* birthDate */ return new Property("birthDate", "date", "The date of birth for the individual.", 0, 1, birthDate); case -1311442804: /* deceased[x] */ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased); case 561497972: /* deceased */ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased); case 497463828: /* deceasedBoolean */ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased); case -1971804369: /* deceasedDateTime */ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased); case -1147692044: /* address */ return new Property("address", "Address", "An address for the individual.", 0, java.lang.Integer.MAX_VALUE, address); case 1756919302: /* maritalStatus */ return new Property("maritalStatus", "CodeableConcept", "This field contains a patient's most recent marital (civil) status.", 0, 1, maritalStatus); case -1764672111: /* multipleBirth[x] */ return new Property("multipleBirth[x]", "boolean|integer", "Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).", 0, 1, multipleBirth); case -677369713: /* multipleBirth */ return new Property("multipleBirth[x]", "boolean|integer", "Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).", 0, 1, multipleBirth); case -247534439: /* multipleBirthBoolean */ return new Property("multipleBirth[x]", "boolean|integer", "Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).", 0, 1, multipleBirth); case 1645805999: /* multipleBirthInteger */ return new Property("multipleBirth[x]", "boolean|integer", "Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).", 0, 1, multipleBirth); case 106642994: /* photo */ return new Property("photo", "Attachment", "Image of the patient.", 0, java.lang.Integer.MAX_VALUE, photo); case 951526432: /* contact */ return new Property("contact", "", "A contact party (e.g. guardian, partner, friend) for the patient.", 0, java.lang.Integer.MAX_VALUE, contact); case -1035284522: /* communication */ return new Property("communication", "", "A language which may be used to communicate with the patient about his or her health.", 0, java.lang.Integer.MAX_VALUE, communication); case 1488292898: /* generalPractitioner */ return new Property("generalPractitioner", "Reference(Organization|Practitioner|PractitionerRole)", "Patient's nominated care provider.", 0, java.lang.Integer.MAX_VALUE, generalPractitioner); case -2058947787: /* managingOrganization */ return new Property("managingOrganization", "Reference(Organization)", "Organization that is the custodian of the patient record.", 0, 1, managingOrganization); case 3321850: /* link */ return new Property("link", "", "Link to another patient resource that concerns the same actual patient.", 0, java.lang.Integer.MAX_VALUE, link); default: return super.getNamedProperty(_hash, _name, _checkValid); } } @Override public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { switch (hash) { case -1618432855: /* identifier */ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier case -1422950650: /* active */ return this.active == null ? new Base[0] : new Base[] { this.active }; // BooleanType case 3373707: /* name */ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // HumanName case -1429363305: /* telecom */ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint case -1249512767: /* gender */ return this.gender == null ? new Base[0] : new Base[] { this.gender }; // Enumeration case -1210031859: /* birthDate */ return this.birthDate == null ? new Base[0] : new Base[] { this.birthDate }; // DateType case 561497972: /* deceased */ return this.deceased == null ? new Base[0] : new Base[] { this.deceased }; // Type case -1147692044: /* address */ return this.address == null ? new Base[0] : this.address.toArray(new Base[this.address.size()]); // Address case 1756919302: /* maritalStatus */ return this.maritalStatus == null ? new Base[0] : new Base[] { this.maritalStatus }; // CodeableConcept case -677369713: /* multipleBirth */ return this.multipleBirth == null ? new Base[0] : new Base[] { this.multipleBirth }; // Type case 106642994: /* photo */ return this.photo == null ? new Base[0] : this.photo.toArray(new Base[this.photo.size()]); // Attachment case 951526432: /* contact */ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactComponent case -1035284522: /* communication */ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // PatientCommunicationComponent case 1488292898: /* generalPractitioner */ return this.generalPractitioner == null ? new Base[0] : this.generalPractitioner.toArray(new Base[this.generalPractitioner.size()]); // Reference case -2058947787: /* managingOrganization */ return this.managingOrganization == null ? new Base[0] : new Base[] { this.managingOrganization }; // Reference case 3321850: /* link */ return this.link == null ? new Base[0] : this.link.toArray(new Base[this.link.size()]); // PatientLinkComponent default: return super.getProperty(hash, name, checkValid); } } @Override public Base setProperty(int hash, String name, Base value) throws FHIRException { switch (hash) { case -1618432855: // identifier this.getIdentifier().add(castToIdentifier(value)); // Identifier return value; case -1422950650: // active this.active = castToBoolean(value); // BooleanType return value; case 3373707: // name this.getName().add(castToHumanName(value)); // HumanName return value; case -1429363305: // telecom this.getTelecom().add(castToContactPoint(value)); // ContactPoint return value; case -1249512767: // gender value = new AdministrativeGenderEnumFactory().fromType(castToCode(value)); this.gender = (Enumeration) value; // Enumeration return value; case -1210031859: // birthDate this.birthDate = castToDate(value); // DateType return value; case 561497972: // deceased this.deceased = castToType(value); // Type return value; case -1147692044: // address this.getAddress().add(castToAddress(value)); // Address return value; case 1756919302: // maritalStatus this.maritalStatus = castToCodeableConcept(value); // CodeableConcept return value; case -677369713: // multipleBirth this.multipleBirth = castToType(value); // Type return value; case 106642994: // photo this.getPhoto().add(castToAttachment(value)); // Attachment return value; case 951526432: // contact this.getContact().add((ContactComponent) value); // ContactComponent return value; case -1035284522: // communication this.getCommunication().add((PatientCommunicationComponent) value); // PatientCommunicationComponent return value; case 1488292898: // generalPractitioner this.getGeneralPractitioner().add(castToReference(value)); // Reference return value; case -2058947787: // managingOrganization this.managingOrganization = castToReference(value); // Reference return value; case 3321850: // link this.getLink().add((PatientLinkComponent) value); // PatientLinkComponent return value; default: return super.setProperty(hash, name, value); } } @Override public Base setProperty(String name, Base value) throws FHIRException { if (name.equals("identifier")) { this.getIdentifier().add(castToIdentifier(value)); } else if (name.equals("active")) { this.active = castToBoolean(value); // BooleanType } else if (name.equals("name")) { this.getName().add(castToHumanName(value)); } else if (name.equals("telecom")) { this.getTelecom().add(castToContactPoint(value)); } else if (name.equals("gender")) { value = new AdministrativeGenderEnumFactory().fromType(castToCode(value)); this.gender = (Enumeration) value; // Enumeration } else if (name.equals("birthDate")) { this.birthDate = castToDate(value); // DateType } else if (name.equals("deceased[x]")) { this.deceased = castToType(value); // Type } else if (name.equals("address")) { this.getAddress().add(castToAddress(value)); } else if (name.equals("maritalStatus")) { this.maritalStatus = castToCodeableConcept(value); // CodeableConcept } else if (name.equals("multipleBirth[x]")) { this.multipleBirth = castToType(value); // Type } else if (name.equals("photo")) { this.getPhoto().add(castToAttachment(value)); } else if (name.equals("contact")) { this.getContact().add((ContactComponent) value); } else if (name.equals("communication")) { this.getCommunication().add((PatientCommunicationComponent) value); } else if (name.equals("generalPractitioner")) { this.getGeneralPractitioner().add(castToReference(value)); } else if (name.equals("managingOrganization")) { this.managingOrganization = castToReference(value); // Reference } else if (name.equals("link")) { this.getLink().add((PatientLinkComponent) value); } else return super.setProperty(name, value); return value; } @Override public void removeChild(String name, Base value) throws FHIRException { if (name.equals("identifier")) { this.getIdentifier().remove(castToIdentifier(value)); } else if (name.equals("active")) { this.active = null; } else if (name.equals("name")) { this.getName().remove(castToHumanName(value)); } else if (name.equals("telecom")) { this.getTelecom().remove(castToContactPoint(value)); } else if (name.equals("gender")) { this.gender = null; } else if (name.equals("birthDate")) { this.birthDate = null; } else if (name.equals("deceased[x]")) { this.deceased = null; } else if (name.equals("address")) { this.getAddress().remove(castToAddress(value)); } else if (name.equals("maritalStatus")) { this.maritalStatus = null; } else if (name.equals("multipleBirth[x]")) { this.multipleBirth = null; } else if (name.equals("photo")) { this.getPhoto().remove(castToAttachment(value)); } else if (name.equals("contact")) { this.getContact().remove((ContactComponent) value); } else if (name.equals("communication")) { this.getCommunication().remove((PatientCommunicationComponent) value); } else if (name.equals("generalPractitioner")) { this.getGeneralPractitioner().remove(castToReference(value)); } else if (name.equals("managingOrganization")) { this.managingOrganization = null; } else if (name.equals("link")) { this.getLink().remove((PatientLinkComponent) value); } else super.removeChild(name, value); } @Override public Base makeProperty(int hash, String name) throws FHIRException { switch (hash) { case -1618432855: return addIdentifier(); case -1422950650: return getActiveElement(); case 3373707: return addName(); case -1429363305: return addTelecom(); case -1249512767: return getGenderElement(); case -1210031859: return getBirthDateElement(); case -1311442804: return getDeceased(); case 561497972: return getDeceased(); case -1147692044: return addAddress(); case 1756919302: return getMaritalStatus(); case -1764672111: return getMultipleBirth(); case -677369713: return getMultipleBirth(); case 106642994: return addPhoto(); case 951526432: return addContact(); case -1035284522: return addCommunication(); case 1488292898: return addGeneralPractitioner(); case -2058947787: return getManagingOrganization(); case 3321850: return addLink(); default: return super.makeProperty(hash, name); } } @Override public String[] getTypesForProperty(int hash, String name) throws FHIRException { switch (hash) { case -1618432855: /* identifier */ return new String[] { "Identifier" }; case -1422950650: /* active */ return new String[] { "boolean" }; case 3373707: /* name */ return new String[] { "HumanName" }; case -1429363305: /* telecom */ return new String[] { "ContactPoint" }; case -1249512767: /* gender */ return new String[] { "code" }; case -1210031859: /* birthDate */ return new String[] { "date" }; case 561497972: /* deceased */ return new String[] { "boolean", "dateTime" }; case -1147692044: /* address */ return new String[] { "Address" }; case 1756919302: /* maritalStatus */ return new String[] { "CodeableConcept" }; case -677369713: /* multipleBirth */ return new String[] { "boolean", "integer" }; case 106642994: /* photo */ return new String[] { "Attachment" }; case 951526432: /* contact */ return new String[] {}; case -1035284522: /* communication */ return new String[] {}; case 1488292898: /* generalPractitioner */ return new String[] { "Reference" }; case -2058947787: /* managingOrganization */ return new String[] { "Reference" }; case 3321850: /* link */ return new String[] {}; default: return super.getTypesForProperty(hash, name); } } @Override public Base addChild(String name) throws FHIRException { if (name.equals("identifier")) { return addIdentifier(); } else if (name.equals("active")) { throw new FHIRException("Cannot call addChild on a singleton property Patient.active"); } else if (name.equals("name")) { return addName(); } else if (name.equals("telecom")) { return addTelecom(); } else if (name.equals("gender")) { throw new FHIRException("Cannot call addChild on a singleton property Patient.gender"); } else if (name.equals("birthDate")) { throw new FHIRException("Cannot call addChild on a singleton property Patient.birthDate"); } else if (name.equals("deceasedBoolean")) { this.deceased = new BooleanType(); return this.deceased; } else if (name.equals("deceasedDateTime")) { this.deceased = new DateTimeType(); return this.deceased; } else if (name.equals("address")) { return addAddress(); } else if (name.equals("maritalStatus")) { this.maritalStatus = new CodeableConcept(); return this.maritalStatus; } else if (name.equals("multipleBirthBoolean")) { this.multipleBirth = new BooleanType(); return this.multipleBirth; } else if (name.equals("multipleBirthInteger")) { this.multipleBirth = new IntegerType(); return this.multipleBirth; } else if (name.equals("photo")) { return addPhoto(); } else if (name.equals("contact")) { return addContact(); } else if (name.equals("communication")) { return addCommunication(); } else if (name.equals("generalPractitioner")) { return addGeneralPractitioner(); } else if (name.equals("managingOrganization")) { this.managingOrganization = new Reference(); return this.managingOrganization; } else if (name.equals("link")) { return addLink(); } else return super.addChild(name); } public String fhirType() { return "Patient"; } public Patient copy() { Patient dst = new Patient(); copyValues(dst); return dst; } public void copyValues(Patient dst) { super.copyValues(dst); if (identifier != null) { dst.identifier = new ArrayList(); for (Identifier i : identifier) dst.identifier.add(i.copy()); } ; dst.active = active == null ? null : active.copy(); if (name != null) { dst.name = new ArrayList(); for (HumanName i : name) dst.name.add(i.copy()); } ; if (telecom != null) { dst.telecom = new ArrayList(); for (ContactPoint i : telecom) dst.telecom.add(i.copy()); } ; dst.gender = gender == null ? null : gender.copy(); dst.birthDate = birthDate == null ? null : birthDate.copy(); dst.deceased = deceased == null ? null : deceased.copy(); if (address != null) { dst.address = new ArrayList
(); for (Address i : address) dst.address.add(i.copy()); } ; dst.maritalStatus = maritalStatus == null ? null : maritalStatus.copy(); dst.multipleBirth = multipleBirth == null ? null : multipleBirth.copy(); if (photo != null) { dst.photo = new ArrayList(); for (Attachment i : photo) dst.photo.add(i.copy()); } ; if (contact != null) { dst.contact = new ArrayList(); for (ContactComponent i : contact) dst.contact.add(i.copy()); } ; if (communication != null) { dst.communication = new ArrayList(); for (PatientCommunicationComponent i : communication) dst.communication.add(i.copy()); } ; if (generalPractitioner != null) { dst.generalPractitioner = new ArrayList(); for (Reference i : generalPractitioner) dst.generalPractitioner.add(i.copy()); } ; dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy(); if (link != null) { dst.link = new ArrayList(); for (PatientLinkComponent i : link) dst.link.add(i.copy()); } ; } protected Patient typedCopy() { return copy(); } @Override public boolean equalsDeep(Base other_) { if (!super.equalsDeep(other_)) return false; if (!(other_ instanceof Patient)) return false; Patient o = (Patient) other_; return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(name, o.name, true) && compareDeep(telecom, o.telecom, true) && compareDeep(gender, o.gender, true) && compareDeep(birthDate, o.birthDate, true) && compareDeep(deceased, o.deceased, true) && compareDeep(address, o.address, true) && compareDeep(maritalStatus, o.maritalStatus, true) && compareDeep(multipleBirth, o.multipleBirth, true) && compareDeep(photo, o.photo, true) && compareDeep(contact, o.contact, true) && compareDeep(communication, o.communication, true) && compareDeep(generalPractitioner, o.generalPractitioner, true) && compareDeep(managingOrganization, o.managingOrganization, true) && compareDeep(link, o.link, true); } @Override public boolean equalsShallow(Base other_) { if (!super.equalsShallow(other_)) return false; if (!(other_ instanceof Patient)) return false; Patient o = (Patient) other_; return compareValues(active, o.active, true) && compareValues(gender, o.gender, true) && compareValues(birthDate, o.birthDate, true); } public boolean isEmpty() { return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, name, telecom, gender, birthDate, deceased, address, maritalStatus, multipleBirth, photo, contact, communication, generalPractitioner, managingOrganization, link); } @Override public ResourceType getResourceType() { return ResourceType.Patient; } /** * Search parameter: identifier *

* Description: A patient identifier
* Type: token
* Path: Patient.identifier
*

*/ @SearchParamDefinition(name = "identifier", path = "Patient.identifier", description = "A patient identifier", type = "token") public static final String SP_IDENTIFIER = "identifier"; /** * Fluent Client search parameter constant for identifier *

* Description: A patient identifier
* Type: token
* Path: Patient.identifier
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_IDENTIFIER); /** * Search parameter: given *

* Description: A portion of the given name of the patient
* Type: string
* Path: Patient.name.given
*

*/ @SearchParamDefinition(name = "given", path = "Patient.name.given", description = "A portion of the given name of the patient", type = "string") public static final String SP_GIVEN = "given"; /** * Fluent Client search parameter constant for given *

* Description: A portion of the given name of the patient
* Type: string
* Path: Patient.name.given
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam GIVEN = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_GIVEN); /** * Search parameter: address *

* Description: A server defined search that may match any of the string * fields in the Address, including line, city, district, state, country, * postalCode, and/or text
* Type: string
* Path: Patient.address
*

*/ @SearchParamDefinition(name = "address", path = "Patient.address", description = "A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text", type = "string") public static final String SP_ADDRESS = "address"; /** * Fluent Client search parameter constant for address *

* Description: A server defined search that may match any of the string * fields in the Address, including line, city, district, state, country, * postalCode, and/or text
* Type: string
* Path: Patient.address
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_ADDRESS); /** * Search parameter: birthdate *

* Description: The patient's date of birth
* Type: date
* Path: Patient.birthDate
*

*/ @SearchParamDefinition(name = "birthdate", path = "Patient.birthDate", description = "The patient's date of birth", type = "date") public static final String SP_BIRTHDATE = "birthdate"; /** * Fluent Client search parameter constant for birthdate *

* Description: The patient's date of birth
* Type: date
* Path: Patient.birthDate
*

*/ public static final ca.uhn.fhir.rest.gclient.DateClientParam BIRTHDATE = new ca.uhn.fhir.rest.gclient.DateClientParam( SP_BIRTHDATE); /** * Search parameter: deceased *

* Description: This patient has been marked as deceased, or as a death date * entered
* Type: token
* Path: Patient.deceased[x]
*

*/ @SearchParamDefinition(name = "deceased", path = "Patient.deceased.exists() and Patient.deceased != false", description = "This patient has been marked as deceased, or as a death date entered", type = "token") public static final String SP_DECEASED = "deceased"; /** * Fluent Client search parameter constant for deceased *

* Description: This patient has been marked as deceased, or as a death date * entered
* Type: token
* Path: Patient.deceased[x]
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam DECEASED = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_DECEASED); /** * Search parameter: address-state *

* Description: A state specified in an address
* Type: string
* Path: Patient.address.state
*

*/ @SearchParamDefinition(name = "address-state", path = "Patient.address.state", description = "A state specified in an address", type = "string") public static final String SP_ADDRESS_STATE = "address-state"; /** * Fluent Client search parameter constant for address-state *

* Description: A state specified in an address
* Type: string
* Path: Patient.address.state
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_ADDRESS_STATE); /** * Search parameter: gender *

* Description: Gender of the patient
* Type: token
* Path: Patient.gender
*

*/ @SearchParamDefinition(name = "gender", path = "Patient.gender", description = "Gender of the patient", type = "token") public static final String SP_GENDER = "gender"; /** * Fluent Client search parameter constant for gender *

* Description: Gender of the patient
* Type: token
* Path: Patient.gender
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_GENDER); /** * Search parameter: general-practitioner *

* Description: Patient's nominated general practitioner, not the * organization that manages the record
* Type: reference
* Path: Patient.generalPractitioner
*

*/ @SearchParamDefinition(name = "general-practitioner", path = "Patient.generalPractitioner", description = "Patient's nominated general practitioner, not the organization that manages the record", type = "reference", providesMembershipIn = { @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner") }, target = { Organization.class, Practitioner.class, PractitionerRole.class }) public static final String SP_GENERAL_PRACTITIONER = "general-practitioner"; /** * Fluent Client search parameter constant for * general-practitioner *

* Description: Patient's nominated general practitioner, not the * organization that manages the record
* Type: reference
* Path: Patient.generalPractitioner
*

*/ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GENERAL_PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( SP_GENERAL_PRACTITIONER); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "Patient:general-practitioner". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_GENERAL_PRACTITIONER = new ca.uhn.fhir.model.api.Include( "Patient:general-practitioner").toLocked(); /** * Search parameter: link *

* Description: All patients linked to the given patient
* Type: reference
* Path: Patient.link.other
*

*/ @SearchParamDefinition(name = "link", path = "Patient.link.other", description = "All patients linked to the given patient", type = "reference", providesMembershipIn = { @ca.uhn.fhir.model.api.annotation.Compartment(name = "Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name = "RelatedPerson") }, target = { Patient.class, RelatedPerson.class }) public static final String SP_LINK = "link"; /** * Fluent Client search parameter constant for link *

* Description: All patients linked to the given patient
* Type: reference
* Path: Patient.link.other
*

*/ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LINK = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( SP_LINK); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "Patient:link". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_LINK = new ca.uhn.fhir.model.api.Include("Patient:link") .toLocked(); /** * Search parameter: active *

* Description: Whether the patient record is active
* Type: token
* Path: Patient.active
*

*/ @SearchParamDefinition(name = "active", path = "Patient.active", description = "Whether the patient record is active", type = "token") public static final String SP_ACTIVE = "active"; /** * Fluent Client search parameter constant for active *

* Description: Whether the patient record is active
* Type: token
* Path: Patient.active
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_ACTIVE); /** * Search parameter: language *

* Description: Language code (irrespective of use value)
* Type: token
* Path: Patient.communication.language
*

*/ @SearchParamDefinition(name = "language", path = "Patient.communication.language", description = "Language code (irrespective of use value)", type = "token") public static final String SP_LANGUAGE = "language"; /** * Fluent Client search parameter constant for language *

* Description: Language code (irrespective of use value)
* Type: token
* Path: Patient.communication.language
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam LANGUAGE = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_LANGUAGE); /** * Search parameter: address-postalcode *

* Description: A postalCode specified in an address
* Type: string
* Path: Patient.address.postalCode
*

*/ @SearchParamDefinition(name = "address-postalcode", path = "Patient.address.postalCode", description = "A postalCode specified in an address", type = "string") public static final String SP_ADDRESS_POSTALCODE = "address-postalcode"; /** * Fluent Client search parameter constant for address-postalcode *

* Description: A postalCode specified in an address
* Type: string
* Path: Patient.address.postalCode
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_ADDRESS_POSTALCODE); /** * Search parameter: address-country *

* Description: A country specified in an address
* Type: string
* Path: Patient.address.country
*

*/ @SearchParamDefinition(name = "address-country", path = "Patient.address.country", description = "A country specified in an address", type = "string") public static final String SP_ADDRESS_COUNTRY = "address-country"; /** * Fluent Client search parameter constant for address-country *

* Description: A country specified in an address
* Type: string
* Path: Patient.address.country
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_ADDRESS_COUNTRY); /** * Search parameter: death-date *

* Description: The date of death has been provided and satisfies this search * value
* Type: date
* Path: Patient.deceasedDateTime
*

*/ @SearchParamDefinition(name = "death-date", path = "(Patient.deceased as dateTime)", description = "The date of death has been provided and satisfies this search value", type = "date") public static final String SP_DEATH_DATE = "death-date"; /** * Fluent Client search parameter constant for death-date *

* Description: The date of death has been provided and satisfies this search * value
* Type: date
* Path: Patient.deceasedDateTime
*

*/ public static final ca.uhn.fhir.rest.gclient.DateClientParam DEATH_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam( SP_DEATH_DATE); /** * Search parameter: phonetic *

* Description: A portion of either family or given name using some kind of * phonetic matching algorithm
* Type: string
* Path: Patient.name
*

*/ @SearchParamDefinition(name = "phonetic", path = "Patient.name", description = "A portion of either family or given name using some kind of phonetic matching algorithm", type = "string") public static final String SP_PHONETIC = "phonetic"; /** * Fluent Client search parameter constant for phonetic *

* Description: A portion of either family or given name using some kind of * phonetic matching algorithm
* Type: string
* Path: Patient.name
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_PHONETIC); /** * Search parameter: phone *

* Description: A value in a phone contact
* Type: token
* Path: Patient.telecom(system=phone)
*

*/ @SearchParamDefinition(name = "phone", path = "Patient.telecom.where(system='phone')", description = "A value in a phone contact", type = "token") public static final String SP_PHONE = "phone"; /** * Fluent Client search parameter constant for phone *

* Description: A value in a phone contact
* Type: token
* Path: Patient.telecom(system=phone)
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_PHONE); /** * Search parameter: organization *

* Description: The organization that is the custodian of the patient * record
* Type: reference
* Path: Patient.managingOrganization
*

*/ @SearchParamDefinition(name = "organization", path = "Patient.managingOrganization", description = "The organization that is the custodian of the patient record", type = "reference", target = { Organization.class }) public static final String SP_ORGANIZATION = "organization"; /** * Fluent Client search parameter constant for organization *

* Description: The organization that is the custodian of the patient * record
* Type: reference
* Path: Patient.managingOrganization
*

*/ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( SP_ORGANIZATION); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "Patient:organization". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include( "Patient:organization").toLocked(); /** * Search parameter: name *

* Description: A server defined search that may match any of the string * fields in the HumanName, including family, give, prefix, suffix, suffix, * and/or text
* Type: string
* Path: Patient.name
*

*/ @SearchParamDefinition(name = "name", path = "Patient.name", description = "A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text", type = "string") public static final String SP_NAME = "name"; /** * Fluent Client search parameter constant for name *

* Description: A server defined search that may match any of the string * fields in the HumanName, including family, give, prefix, suffix, suffix, * and/or text
* Type: string
* Path: Patient.name
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_NAME); /** * Search parameter: address-use *

* Description: A use code specified in an address
* Type: token
* Path: Patient.address.use
*

*/ @SearchParamDefinition(name = "address-use", path = "Patient.address.use", description = "A use code specified in an address", type = "token") public static final String SP_ADDRESS_USE = "address-use"; /** * Fluent Client search parameter constant for address-use *

* Description: A use code specified in an address
* Type: token
* Path: Patient.address.use
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_ADDRESS_USE); /** * Search parameter: telecom *

* Description: The value in any kind of telecom details of the * patient
* Type: token
* Path: Patient.telecom
*

*/ @SearchParamDefinition(name = "telecom", path = "Patient.telecom", description = "The value in any kind of telecom details of the patient", type = "token") public static final String SP_TELECOM = "telecom"; /** * Fluent Client search parameter constant for telecom *

* Description: The value in any kind of telecom details of the * patient
* Type: token
* Path: Patient.telecom
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_TELECOM); /** * Search parameter: family *

* Description: A portion of the family name of the patient
* Type: string
* Path: Patient.name.family
*

*/ @SearchParamDefinition(name = "family", path = "Patient.name.family", description = "A portion of the family name of the patient", type = "string") public static final String SP_FAMILY = "family"; /** * Fluent Client search parameter constant for family *

* Description: A portion of the family name of the patient
* Type: string
* Path: Patient.name.family
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam FAMILY = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_FAMILY); /** * Search parameter: address-city *

* Description: A city specified in an address
* Type: string
* Path: Patient.address.city
*

*/ @SearchParamDefinition(name = "address-city", path = "Patient.address.city", description = "A city specified in an address", type = "string") public static final String SP_ADDRESS_CITY = "address-city"; /** * Fluent Client search parameter constant for address-city *

* Description: A city specified in an address
* Type: string
* Path: Patient.address.city
*

*/ public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam( SP_ADDRESS_CITY); /** * Search parameter: email *

* Description: A value in an email contact
* Type: token
* Path: Patient.telecom(system=email)
*

*/ @SearchParamDefinition(name = "email", path = "Patient.telecom.where(system='email')", description = "A value in an email contact", type = "token") public static final String SP_EMAIL = "email"; /** * Fluent Client search parameter constant for email *

* Description: A value in an email contact
* Type: token
* Path: Patient.telecom(system=email)
*

*/ public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam( SP_EMAIL); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy