getAgent() {
if (this.agent == null)
@@ -2745,7 +2734,7 @@ public class AuditEvent extends DomainResource {
}
/**
- * @return {@link #agent} (A person, a hardware device or software process.)
+ * @return {@link #agent} (An actor taking an active role in the event or activity that is logged.)
*/
// syntactic sugar
public AuditEventAgentComponent addAgent() { //3
@@ -2839,7 +2828,7 @@ public class AuditEvent extends DomainResource {
childrenList.add(new Property("outcome", "code", "Indicates whether the event succeeded or failed.", 0, java.lang.Integer.MAX_VALUE, outcome));
childrenList.add(new Property("outcomeDesc", "string", "A free text description of the outcome of the event.", 0, java.lang.Integer.MAX_VALUE, outcomeDesc));
childrenList.add(new Property("purposeOfEvent", "Coding", "The purposeOfUse (reason) that was used during the event being recorded.", 0, java.lang.Integer.MAX_VALUE, purposeOfEvent));
- childrenList.add(new Property("agent", "", "A person, a hardware device or software process.", 0, java.lang.Integer.MAX_VALUE, agent));
+ childrenList.add(new Property("agent", "", "An actor taking an active role in the event or activity that is logged.", 0, java.lang.Integer.MAX_VALUE, agent));
childrenList.add(new Property("source", "", "Application systems and processes.", 0, java.lang.Integer.MAX_VALUE, source));
childrenList.add(new Property("entity", "", "Specific instances of data or objects that have been accessed.", 0, java.lang.Integer.MAX_VALUE, entity));
}
@@ -2974,11 +2963,8 @@ public class AuditEvent extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (type == null || type.isEmpty()) && (subtype == null || subtype.isEmpty())
- && (action == null || action.isEmpty()) && (recorded == null || recorded.isEmpty()) && (outcome == null || outcome.isEmpty())
- && (outcomeDesc == null || outcomeDesc.isEmpty()) && (purposeOfEvent == null || purposeOfEvent.isEmpty())
- && (agent == null || agent.isEmpty()) && (source == null || source.isEmpty()) && (entity == null || entity.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( type, subtype, action, recorded
+ , outcome, outcomeDesc, purposeOfEvent, agent, source, entity);
}
@Override
@@ -3006,6 +2992,52 @@ public class AuditEvent extends DomainResource {
*/
public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
+ /**
+ * Search parameter: entity-type
+ *
+ * Description: Type of object involved
+ * Type: token
+ * Path: AuditEvent.entity.type
+ *
+ */
+ @SearchParamDefinition(name="entity-type", path="AuditEvent.entity.type", description="Type of object involved", type="token" )
+ public static final String SP_ENTITY_TYPE = "entity-type";
+ /**
+ * Fluent Client search parameter constant for entity-type
+ *
+ * Description: Type of object involved
+ * Type: token
+ * Path: AuditEvent.entity.type
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.TokenClientParam ENTITY_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ENTITY_TYPE);
+
+ /**
+ * Search parameter: agent
+ *
+ * Description: Direct reference to resource
+ * Type: reference
+ * Path: AuditEvent.agent.reference
+ *
+ */
+ @SearchParamDefinition(name="agent", path="AuditEvent.agent.reference", description="Direct reference to resource", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") } )
+ public static final String SP_AGENT = "agent";
+ /**
+ * Fluent Client search parameter constant for agent
+ *
+ * Description: Direct reference to resource
+ * Type: reference
+ * Path: AuditEvent.agent.reference
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AGENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AGENT);
+
+/**
+ * Constant for fluent queries to be used to add include statements. Specifies
+ * the path value of "AuditEvent:agent".
+ */
+ public static final ca.uhn.fhir.model.api.Include INCLUDE_AGENT = new ca.uhn.fhir.model.api.Include("AuditEvent:agent").toLocked();
+
/**
* Search parameter: address
*
@@ -3086,58 +3118,6 @@ public class AuditEvent extends DomainResource {
*/
public static final ca.uhn.fhir.rest.gclient.TokenClientParam ALTID = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ALTID);
- /**
- * Search parameter: participant
- *
- * Description: Direct reference to resource
- * Type: reference
- * Path: AuditEvent.agent.reference
- *
- */
- @SearchParamDefinition(name="participant", path="AuditEvent.agent.reference", description="Direct reference to resource", type="reference" )
- public static final String SP_PARTICIPANT = "participant";
- /**
- * Fluent Client search parameter constant for participant
- *
- * Description: Direct reference to resource
- * Type: reference
- * Path: AuditEvent.agent.reference
- *
- */
- public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTICIPANT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTICIPANT);
-
-/**
- * Constant for fluent queries to be used to add include statements. Specifies
- * the path value of "AuditEvent:participant".
- */
- public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTICIPANT = new ca.uhn.fhir.model.api.Include("AuditEvent:participant").toLocked();
-
- /**
- * Search parameter: reference
- *
- * Description: Specific instance of resource (e.g. versioned)
- * Type: reference
- * Path: AuditEvent.entity.reference
- *
- */
- @SearchParamDefinition(name="reference", path="AuditEvent.entity.reference", description="Specific instance of resource (e.g. versioned)", type="reference" )
- public static final String SP_REFERENCE = "reference";
- /**
- * Fluent Client search parameter constant for reference
- *
- * Description: Specific instance of resource (e.g. versioned)
- * Type: reference
- * Path: AuditEvent.entity.reference
- *
- */
- public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REFERENCE);
-
-/**
- * Constant for fluent queries to be used to add include statements. Specifies
- * the path value of "AuditEvent:reference".
- */
- public static final ca.uhn.fhir.model.api.Include INCLUDE_REFERENCE = new ca.uhn.fhir.model.api.Include("AuditEvent:reference").toLocked();
-
/**
* Search parameter: site
*
@@ -3158,6 +3138,46 @@ public class AuditEvent extends DomainResource {
*/
public static final ca.uhn.fhir.rest.gclient.TokenClientParam SITE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SITE);
+ /**
+ * Search parameter: agent-name
+ *
+ * Description: Human-meaningful name for the agent
+ * Type: string
+ * Path: AuditEvent.agent.name
+ *
+ */
+ @SearchParamDefinition(name="agent-name", path="AuditEvent.agent.name", description="Human-meaningful name for the agent", type="string" )
+ public static final String SP_AGENT_NAME = "agent-name";
+ /**
+ * Fluent Client search parameter constant for agent-name
+ *
+ * Description: Human-meaningful name for the agent
+ * Type: string
+ * Path: AuditEvent.agent.name
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.StringClientParam AGENT_NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_AGENT_NAME);
+
+ /**
+ * Search parameter: entity-name
+ *
+ * Description: Descriptor for entity
+ * Type: string
+ * Path: AuditEvent.entity.name
+ *
+ */
+ @SearchParamDefinition(name="entity-name", path="AuditEvent.entity.name", description="Descriptor for entity", type="string" )
+ public static final String SP_ENTITY_NAME = "entity-name";
+ /**
+ * Fluent Client search parameter constant for entity-name
+ *
+ * Description: Descriptor for entity
+ * Type: string
+ * Path: AuditEvent.entity.name
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.StringClientParam ENTITY_NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ENTITY_NAME);
+
/**
* Search parameter: subtype
*
@@ -3178,26 +3198,6 @@ public class AuditEvent extends DomainResource {
*/
public static final ca.uhn.fhir.rest.gclient.TokenClientParam SUBTYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SUBTYPE);
- /**
- * Search parameter: identity
- *
- * Description: Specific instance of object (e.g. versioned)
- * Type: token
- * Path: AuditEvent.entity.identifier
- *
- */
- @SearchParamDefinition(name="identity", path="AuditEvent.entity.identifier", description="Specific instance of object (e.g. versioned)", type="token" )
- public static final String SP_IDENTITY = "identity";
- /**
- * Fluent Client search parameter constant for identity
- *
- * Description: Specific instance of object (e.g. versioned)
- * Type: token
- * Path: AuditEvent.entity.identifier
- *
- */
- public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTITY);
-
/**
* Search parameter: patient
*
@@ -3206,7 +3206,7 @@ public class AuditEvent extends DomainResource {
* Path: AuditEvent.agent.reference, AuditEvent.entity.reference
*
*/
- @SearchParamDefinition(name="patient", path="AuditEvent.agent.reference | AuditEvent.entity.reference", description="Direct reference to resource", type="reference" )
+ @SearchParamDefinition(name="patient", path="AuditEvent.agent.reference | AuditEvent.entity.reference", description="Direct reference to resource", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") } )
public static final String SP_PATIENT = "patient";
/**
* Fluent Client search parameter constant for patient
@@ -3224,46 +3224,6 @@ public class AuditEvent extends DomainResource {
*/
public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("AuditEvent:patient").toLocked();
- /**
- * Search parameter: object-type
- *
- * Description: Type of object involved
- * Type: token
- * Path: AuditEvent.entity.type
- *
- */
- @SearchParamDefinition(name="object-type", path="AuditEvent.entity.type", description="Type of object involved", type="token" )
- public static final String SP_OBJECT_TYPE = "object-type";
- /**
- * Fluent Client search parameter constant for object-type
- *
- * Description: Type of object involved
- * Type: token
- * Path: AuditEvent.entity.type
- *
- */
- public static final ca.uhn.fhir.rest.gclient.TokenClientParam OBJECT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_OBJECT_TYPE);
-
- /**
- * Search parameter: name
- *
- * Description: Human-meaningful name for the user
- * Type: string
- * Path: AuditEvent.agent.name
- *
- */
- @SearchParamDefinition(name="name", path="AuditEvent.agent.name", description="Human-meaningful name for the user", type="string" )
- public static final String SP_NAME = "name";
- /**
- * Fluent Client search parameter constant for name
- *
- * Description: Human-meaningful name for the user
- * Type: string
- * Path: AuditEvent.agent.name
- *
- */
- public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
-
/**
* Search parameter: action
*
@@ -3305,24 +3265,50 @@ public class AuditEvent extends DomainResource {
public static final ca.uhn.fhir.rest.gclient.TokenClientParam USER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_USER);
/**
- * Search parameter: desc
+ * Search parameter: entity
*
- * Description: Descriptor for entity
- * Type: string
- * Path: AuditEvent.entity.name
+ * Description: Specific instance of resource (e.g. versioned)
+ * Type: reference
+ * Path: AuditEvent.entity.reference
*
*/
- @SearchParamDefinition(name="desc", path="AuditEvent.entity.name", description="Descriptor for entity", type="string" )
- public static final String SP_DESC = "desc";
+ @SearchParamDefinition(name="entity", path="AuditEvent.entity.reference", description="Specific instance of resource (e.g. versioned)", type="reference" )
+ public static final String SP_ENTITY = "entity";
/**
- * Fluent Client search parameter constant for desc
+ * Fluent Client search parameter constant for entity
*
- * Description: Descriptor for entity
- * Type: string
- * Path: AuditEvent.entity.name
+ * Description: Specific instance of resource (e.g. versioned)
+ * Type: reference
+ * Path: AuditEvent.entity.reference
*
*/
- public static final ca.uhn.fhir.rest.gclient.StringClientParam DESC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESC);
+ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENTITY = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENTITY);
+
+/**
+ * Constant for fluent queries to be used to add include statements. Specifies
+ * the path value of "AuditEvent:entity".
+ */
+ public static final ca.uhn.fhir.model.api.Include INCLUDE_ENTITY = new ca.uhn.fhir.model.api.Include("AuditEvent:entity").toLocked();
+
+ /**
+ * Search parameter: entity-id
+ *
+ * Description: Specific instance of object (e.g. versioned)
+ * Type: token
+ * Path: AuditEvent.entity.identifier
+ *
+ */
+ @SearchParamDefinition(name="entity-id", path="AuditEvent.entity.identifier", description="Specific instance of object (e.g. versioned)", type="token" )
+ public static final String SP_ENTITY_ID = "entity-id";
+ /**
+ * Fluent Client search parameter constant for entity-id
+ *
+ * Description: Specific instance of object (e.g. versioned)
+ * Type: token
+ * Path: AuditEvent.entity.identifier
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.TokenClientParam ENTITY_ID = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ENTITY_ID);
/**
* Search parameter: policy
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BackboneElement.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BackboneElement.java
index dc4924e0230..a7188eb88f8 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BackboneElement.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BackboneElement.java
@@ -29,7 +29,7 @@ package org.hl7.fhir.dstu3.model;
*/
-// Generated on Sat, Jan 30, 2016 09:18-0500 for FHIR v1.3.0
+// Generated on Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
import java.util.*;
@@ -37,9 +37,8 @@ import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
import ca.uhn.fhir.model.api.annotation.Block;
-
-import org.hl7.fhir.dstu3.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
/**
* Base definition for all elements that are defined inside a resource - but not those in a data type.
*/
@@ -159,7 +158,7 @@ public abstract class BackboneElement extends Element implements IBaseBackboneEl
}
public boolean isEmpty() {
- return super.isEmpty() && (modifierExtension == null || modifierExtension.isEmpty());
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( modifierExtension);
}
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Base.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Base.java
index 20f87273e91..30f1e13bf23 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Base.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Base.java
@@ -68,19 +68,16 @@ private Map userData;
return (Integer) getUserData(name);
}
- @Override
public boolean hasFormatComment() {
return (formatCommentsPre != null && !formatCommentsPre.isEmpty()) || (formatCommentsPost != null && !formatCommentsPost.isEmpty());
}
- @Override
public List getFormatCommentsPre() {
if (formatCommentsPre == null)
formatCommentsPre = new ArrayList();
return formatCommentsPre;
}
-
- @Override
+
public List getFormatCommentsPost() {
if (formatCommentsPost == null)
formatCommentsPost = new ArrayList();
@@ -489,7 +486,7 @@ private Map userData;
else
throw new FHIRException("Unable to convert a "+b.getClass().getName()+" to a Meta");
}
-
+
public Extension castToExtension(Base b) throws FHIRException {
if (b instanceof Extension)
return (Extension) b;
@@ -518,7 +515,42 @@ private Map userData;
else
throw new FHIRException("Unable to convert a "+b.getClass().getName()+" to a ElementDefinition");
}
-
+
+ public ModuleMetadata castToModuleMetadata(Base b) throws FHIRException {
+ if (b instanceof ModuleMetadata)
+ return (ModuleMetadata) b;
+ else
+ throw new FHIRException("Unable to convert a "+b.getClass().getName()+" to a ModuleMetadata");
+ }
+
+ public ActionDefinition castToActionDefinition(Base b) throws FHIRException {
+ if (b instanceof ActionDefinition)
+ return (ActionDefinition) b;
+ else
+ throw new FHIRException("Unable to convert a "+b.getClass().getName()+" to a ActionDefinition");
+ }
+
+ public DataRequirement castToDataRequirement(Base b) throws FHIRException {
+ if (b instanceof DataRequirement)
+ return (DataRequirement) b;
+ else
+ throw new FHIRException("Unable to convert a "+b.getClass().getName()+" to a DataRequirement");
+ }
+
+ public ParameterDefinition castToParameterDefinition(Base b) throws FHIRException {
+ if (b instanceof ParameterDefinition)
+ return (ParameterDefinition) b;
+ else
+ throw new FHIRException("Unable to convert a "+b.getClass().getName()+" to a ParameterDefinition");
+ }
+
+ public TriggerDefinition castToTriggerDefinition(Base b) throws FHIRException {
+ if (b instanceof TriggerDefinition)
+ return (TriggerDefinition) b;
+ else
+ throw new FHIRException("Unable to convert a "+b.getClass().getName()+" to a TriggerDefinition");
+ }
+
protected boolean isMetadataBased() {
return false;
}
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseNarrative.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseNarrative.java
index 25d1b7f9cc9..ae5d68d7539 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseNarrative.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseNarrative.java
@@ -38,13 +38,11 @@ public abstract class BaseNarrative extends Type implements INarrative {
public abstract Enumeration> getStatusElement();
- @Override
public INarrative setStatusAsString(String theString) {
getStatusElement().setValueAsString(theString);
return this;
}
- @Override
public String getStatusAsString() {
return getStatusElement().getValueAsString();
}
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseResource.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseResource.java
index fb5a6f17312..d9b4044981a 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseResource.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BaseResource.java
@@ -24,11 +24,11 @@ public abstract class BaseResource extends Base implements IAnyResource, IElemen
return this;
}
+ public abstract BaseResource setIdElement(IdType theIdType);
+
@Override
public FhirVersionEnum getStructureFhirVersionEnum() {
return FhirVersionEnum.DSTU3;
}
- public abstract BaseResource setIdElement(IdType theIdType);
-
}
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Basic.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Basic.java
index cfe1be531e3..4b17d22fa5a 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Basic.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Basic.java
@@ -29,7 +29,7 @@ package org.hl7.fhir.dstu3.model;
*/
-// Generated on Sat, Jan 30, 2016 09:18-0500 for FHIR v1.3.0
+// Generated on Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
import java.util.*;
@@ -38,9 +38,8 @@ import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.Block;
-
-import org.hl7.fhir.dstu3.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
/**
* Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.
*/
@@ -395,9 +394,8 @@ public class Basic extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (code == null || code.isEmpty())
- && (subject == null || subject.isEmpty()) && (created == null || created.isEmpty()) && (author == null || author.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( identifier, code, subject, created
+ , author);
}
@Override
@@ -499,7 +497,7 @@ public class Basic extends DomainResource {
* Path: Basic.subject
*
*/
- @SearchParamDefinition(name="patient", path="Basic.subject", description="Identifies the focus of this resource", type="reference" )
+ @SearchParamDefinition(name="patient", path="Basic.subject", description="Identifies the focus of this resource", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") } )
public static final String SP_PATIENT = "patient";
/**
* Fluent Client search parameter constant for patient
@@ -525,7 +523,7 @@ public class Basic extends DomainResource {
* Path: Basic.author
*
*/
- @SearchParamDefinition(name="author", path="Basic.author", description="Who created", type="reference" )
+ @SearchParamDefinition(name="author", path="Basic.author", description="Who created", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") } )
public static final String SP_AUTHOR = "author";
/**
* Fluent Client search parameter constant for author
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Binary.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Binary.java
index 2021d4de134..57ef2badb8e 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Binary.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Binary.java
@@ -29,21 +29,19 @@ package org.hl7.fhir.dstu3.model;
*/
-// Generated on Sat, Jan 30, 2016 09:18-0500 for FHIR v1.3.0
+// Generated on Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
import java.util.*;
import org.hl7.fhir.utilities.Utilities;
-
+import org.hl7.fhir.dstu3.model.Enumerations.*;
import ca.uhn.fhir.model.api.annotation.ResourceDef;
import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.Block;
-
-import org.hl7.fhir.dstu3.exceptions.FHIRException;
-import org.hl7.fhir.dstu3.model.Enumerations.*;
import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
/**
* A binary resource can contain any content, whether text, image, pdf, zip archive, etc.
*/
@@ -238,8 +236,7 @@ public class Binary extends BaseBinary implements IBaseBinary {
}
public boolean isEmpty() {
- return super.isEmpty() && (contentType == null || contentType.isEmpty()) && (content == null || content.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( contentType, content);
}
@Override
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BodySite.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BodySite.java
index ad422413515..82264a2a4eb 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BodySite.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/BodySite.java
@@ -29,7 +29,7 @@ package org.hl7.fhir.dstu3.model;
*/
-// Generated on Sat, Jan 30, 2016 09:18-0500 for FHIR v1.3.0
+// Generated on Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
import java.util.*;
@@ -39,9 +39,8 @@ import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.Block;
-
-import org.hl7.fhir.dstu3.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
/**
* Record details about the anatomical location of a specimen or body part. This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
*/
@@ -459,9 +458,8 @@ public class BodySite extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (patient == null || patient.isEmpty()) && (identifier == null || identifier.isEmpty())
- && (code == null || code.isEmpty()) && (modifier == null || modifier.isEmpty()) && (description == null || description.isEmpty())
- && (image == null || image.isEmpty());
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( patient, identifier, code, modifier
+ , description, image);
}
@Override
@@ -517,7 +515,7 @@ public class BodySite extends DomainResource {
* Path: BodySite.patient
*
*/
- @SearchParamDefinition(name="patient", path="BodySite.patient", description="Patient to whom bodysite belongs", type="reference" )
+ @SearchParamDefinition(name="patient", path="BodySite.patient", description="Patient to whom bodysite belongs", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") } )
public static final String SP_PATIENT = "patient";
/**
* Fluent Client search parameter constant for patient
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Bundle.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Bundle.java
index 44506819364..368226e0ac1 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Bundle.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Bundle.java
@@ -29,7 +29,7 @@ package org.hl7.fhir.dstu3.model;
*/
-// Generated on Sat, Jan 30, 2016 09:18-0500 for FHIR v1.3.0
+// Generated on Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
import java.util.*;
@@ -40,9 +40,8 @@ import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.Block;
-
-import org.hl7.fhir.dstu3.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
/**
* A container for a collection of resources.
*/
@@ -651,8 +650,7 @@ public class Bundle extends Resource implements IBaseBundle {
}
public boolean isEmpty() {
- return super.isEmpty() && (relation == null || relation.isEmpty()) && (url == null || url.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( relation, url);
}
public String fhirType() {
@@ -672,10 +670,12 @@ public class Bundle extends Resource implements IBaseBundle {
protected List link;
/**
- * The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource.
+ * The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
+* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)
+* Results from operations might involve resources that are not identified.
*/
@Child(name = "fullUrl", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Absolute URL for resource (server address, or UUID/OID)", formalDefinition="The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource." )
+ @Description(shortDefinition="Absolute URL for resource (server address, or UUID/OID)", formalDefinition="The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: \n* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)\n* Results from operations might involve resources that are not identified." )
protected UriType fullUrl;
/**
@@ -756,7 +756,9 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @return {@link #fullUrl} (The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource.). This is the underlying object with id, value and extensions. The accessor "getFullUrl" gives direct access to the value
+ * @return {@link #fullUrl} (The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
+* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)
+* Results from operations might involve resources that are not identified.). This is the underlying object with id, value and extensions. The accessor "getFullUrl" gives direct access to the value
*/
public UriType getFullUrlElement() {
if (this.fullUrl == null)
@@ -776,7 +778,9 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @param value {@link #fullUrl} (The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource.). This is the underlying object with id, value and extensions. The accessor "getFullUrl" gives direct access to the value
+ * @param value {@link #fullUrl} (The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
+* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)
+* Results from operations might involve resources that are not identified.). This is the underlying object with id, value and extensions. The accessor "getFullUrl" gives direct access to the value
*/
public BundleEntryComponent setFullUrlElement(UriType value) {
this.fullUrl = value;
@@ -784,14 +788,18 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @return The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource.
+ * @return The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
+* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)
+* Results from operations might involve resources that are not identified.
*/
public String getFullUrl() {
return this.fullUrl == null ? null : this.fullUrl.getValue();
}
/**
- * @param value The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource.
+ * @param value The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
+* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)
+* Results from operations might involve resources that are not identified.
*/
public BundleEntryComponent setFullUrl(String value) {
if (Utilities.noString(value))
@@ -945,7 +953,7 @@ public class Bundle extends Resource implements IBaseBundle {
protected void listChildren(List childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("link", "@Bundle.link", "A series of links that provide context to this entry.", 0, java.lang.Integer.MAX_VALUE, link));
- childrenList.add(new Property("fullUrl", "uri", "The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource.", 0, java.lang.Integer.MAX_VALUE, fullUrl));
+ childrenList.add(new Property("fullUrl", "uri", "The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: \n* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)\n* Results from operations might involve resources that are not identified.", 0, java.lang.Integer.MAX_VALUE, fullUrl));
childrenList.add(new Property("resource", "Resource", "The Resources for the entry.", 0, java.lang.Integer.MAX_VALUE, resource));
childrenList.add(new Property("search", "", "Information about the search process that lead to the creation of this entry.", 0, java.lang.Integer.MAX_VALUE, search));
childrenList.add(new Property("request", "", "Additional information about how this entry should be processed as part of a transaction.", 0, java.lang.Integer.MAX_VALUE, request));
@@ -1036,9 +1044,8 @@ public class Bundle extends Resource implements IBaseBundle {
}
public boolean isEmpty() {
- return super.isEmpty() && (link == null || link.isEmpty()) && (fullUrl == null || fullUrl.isEmpty())
- && (resource == null || resource.isEmpty()) && (search == null || search.isEmpty()) && (request == null || request.isEmpty())
- && (response == null || response.isEmpty());
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( link, fullUrl, resource, search
+ , request, response);
}
public String fhirType() {
@@ -1246,8 +1253,7 @@ public class Bundle extends Resource implements IBaseBundle {
}
public boolean isEmpty() {
- return super.isEmpty() && (mode == null || mode.isEmpty()) && (score == null || score.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( mode, score);
}
public String fhirType() {
@@ -1260,10 +1266,10 @@ public class Bundle extends Resource implements IBaseBundle {
@Block()
public static class BundleEntryRequestComponent extends BackboneElement implements IBaseBackboneElement {
/**
- * The HTTP verb for this entry in either a update history, or a transaction/ transaction response.
+ * The HTTP verb for this entry in either a change history, or a transaction/ transaction response.
*/
@Child(name = "method", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
- @Description(shortDefinition="GET | POST | PUT | DELETE", formalDefinition="The HTTP verb for this entry in either a update history, or a transaction/ transaction response." )
+ @Description(shortDefinition="GET | POST | PUT | DELETE", formalDefinition="The HTTP verb for this entry in either a change history, or a transaction/ transaction response." )
protected Enumeration method;
/**
@@ -1320,7 +1326,7 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @return {@link #method} (The HTTP verb for this entry in either a update history, or a transaction/ transaction response.). This is the underlying object with id, value and extensions. The accessor "getMethod" gives direct access to the value
+ * @return {@link #method} (The HTTP verb for this entry in either a change history, or a transaction/ transaction response.). This is the underlying object with id, value and extensions. The accessor "getMethod" gives direct access to the value
*/
public Enumeration getMethodElement() {
if (this.method == null)
@@ -1340,7 +1346,7 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @param value {@link #method} (The HTTP verb for this entry in either a update history, or a transaction/ transaction response.). This is the underlying object with id, value and extensions. The accessor "getMethod" gives direct access to the value
+ * @param value {@link #method} (The HTTP verb for this entry in either a change history, or a transaction/ transaction response.). This is the underlying object with id, value and extensions. The accessor "getMethod" gives direct access to the value
*/
public BundleEntryRequestComponent setMethodElement(Enumeration value) {
this.method = value;
@@ -1348,14 +1354,14 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @return The HTTP verb for this entry in either a update history, or a transaction/ transaction response.
+ * @return The HTTP verb for this entry in either a change history, or a transaction/ transaction response.
*/
public HTTPVerb getMethod() {
return this.method == null ? null : this.method.getValue();
}
/**
- * @param value The HTTP verb for this entry in either a update history, or a transaction/ transaction response.
+ * @param value The HTTP verb for this entry in either a change history, or a transaction/ transaction response.
*/
public BundleEntryRequestComponent setMethod(HTTPVerb value) {
if (this.method == null)
@@ -1607,7 +1613,7 @@ public class Bundle extends Resource implements IBaseBundle {
protected void listChildren(List childrenList) {
super.listChildren(childrenList);
- childrenList.add(new Property("method", "code", "The HTTP verb for this entry in either a update history, or a transaction/ transaction response.", 0, java.lang.Integer.MAX_VALUE, method));
+ childrenList.add(new Property("method", "code", "The HTTP verb for this entry in either a change history, or a transaction/ transaction response.", 0, java.lang.Integer.MAX_VALUE, method));
childrenList.add(new Property("url", "uri", "The URL for this entry, relative to the root (the address to which the request is posted).", 0, java.lang.Integer.MAX_VALUE, url));
childrenList.add(new Property("ifNoneMatch", "string", "If the ETag values match, return a 304 Not modified status. See the API documentation for [\"Conditional Read\"](http.html#cread).", 0, java.lang.Integer.MAX_VALUE, ifNoneMatch));
childrenList.add(new Property("ifModifiedSince", "instant", "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread).", 0, java.lang.Integer.MAX_VALUE, ifModifiedSince));
@@ -1694,10 +1700,8 @@ public class Bundle extends Resource implements IBaseBundle {
}
public boolean isEmpty() {
- return super.isEmpty() && (method == null || method.isEmpty()) && (url == null || url.isEmpty())
- && (ifNoneMatch == null || ifNoneMatch.isEmpty()) && (ifModifiedSince == null || ifModifiedSince.isEmpty())
- && (ifMatch == null || ifMatch.isEmpty()) && (ifNoneExist == null || ifNoneExist.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( method, url, ifNoneMatch, ifModifiedSince
+ , ifMatch, ifNoneExist);
}
public String fhirType() {
@@ -1710,10 +1714,10 @@ public class Bundle extends Resource implements IBaseBundle {
@Block()
public static class BundleEntryResponseComponent extends BackboneElement implements IBaseBackboneElement {
/**
- * The status code returned by processing this entry.
+ * The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.
*/
@Child(name = "status", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Status return code for entry", formalDefinition="The status code returned by processing this entry." )
+ @Description(shortDefinition="Status response code (text optional)", formalDefinition="The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code." )
protected StringType status;
/**
@@ -1755,7 +1759,7 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @return {@link #status} (The status code returned by processing this entry.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
+ * @return {@link #status} (The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
*/
public StringType getStatusElement() {
if (this.status == null)
@@ -1775,7 +1779,7 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @param value {@link #status} (The status code returned by processing this entry.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
+ * @param value {@link #status} (The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
*/
public BundleEntryResponseComponent setStatusElement(StringType value) {
this.status = value;
@@ -1783,14 +1787,14 @@ public class Bundle extends Resource implements IBaseBundle {
}
/**
- * @return The status code returned by processing this entry.
+ * @return The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.
*/
public String getStatus() {
return this.status == null ? null : this.status.getValue();
}
/**
- * @param value The status code returned by processing this entry.
+ * @param value The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.
*/
public BundleEntryResponseComponent setStatus(String value) {
if (this.status == null)
@@ -1948,7 +1952,7 @@ public class Bundle extends Resource implements IBaseBundle {
protected void listChildren(List childrenList) {
super.listChildren(childrenList);
- childrenList.add(new Property("status", "string", "The status code returned by processing this entry.", 0, java.lang.Integer.MAX_VALUE, status));
+ childrenList.add(new Property("status", "string", "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.", 0, java.lang.Integer.MAX_VALUE, status));
childrenList.add(new Property("location", "uri", "The location header created by processing this operation.", 0, java.lang.Integer.MAX_VALUE, location));
childrenList.add(new Property("etag", "string", "The etag for the resource, it the operation for the entry produced a versioned resource.", 0, java.lang.Integer.MAX_VALUE, etag));
childrenList.add(new Property("lastModified", "instant", "The date/time that the resource was modified on the server.", 0, java.lang.Integer.MAX_VALUE, lastModified));
@@ -2019,8 +2023,8 @@ public class Bundle extends Resource implements IBaseBundle {
}
public boolean isEmpty() {
- return super.isEmpty() && (status == null || status.isEmpty()) && (location == null || location.isEmpty())
- && (etag == null || etag.isEmpty()) && (lastModified == null || lastModified.isEmpty());
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( status, location, etag, lastModified
+ );
}
public String fhirType() {
@@ -2420,9 +2424,8 @@ public class Bundle extends Resource implements IBaseBundle {
}
public boolean isEmpty() {
- return super.isEmpty() && (type == null || type.isEmpty()) && (total == null || total.isEmpty())
- && (link == null || link.isEmpty()) && (entry == null || entry.isEmpty()) && (signature == null || signature.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( type, total, link, entry, signature
+ );
}
@Override
@@ -2438,7 +2441,7 @@ public class Bundle extends Resource implements IBaseBundle {
* Path: Bundle.entry.resource(0)
*
*/
- @SearchParamDefinition(name="composition", path="Bundle.entry.resource.item(0)", description="The first resource in the bundle, if the bundle type is \"document\" - this is a composition, and this parameter provides access to searches its contents", type="reference" )
+ @SearchParamDefinition(name="composition", path="Bundle.entry.resource[0]", description="The first resource in the bundle, if the bundle type is \"document\" - this is a composition, and this parameter provides access to searches its contents", type="reference" )
public static final String SP_COMPOSITION = "composition";
/**
* Fluent Client search parameter constant for composition
@@ -2484,7 +2487,7 @@ public class Bundle extends Resource implements IBaseBundle {
* Path: Bundle.entry.resource(0)
*
*/
- @SearchParamDefinition(name="message", path="Bundle.entry.resource.item(0)", description="The first resource in the bundle, if the bundle type is \"message\" - this is a message header, and this parameter provides access to search its contents", type="reference" )
+ @SearchParamDefinition(name="message", path="Bundle.entry.resource[0]", description="The first resource in the bundle, if the bundle type is \"message\" - this is a message header, and this parameter provides access to search its contents", type="reference" )
public static final String SP_MESSAGE = "message";
/**
* Fluent Client search parameter constant for message
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/CarePlan.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/CarePlan.java
index d118deefb77..d78974936f9 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/CarePlan.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/CarePlan.java
@@ -29,7 +29,7 @@ package org.hl7.fhir.dstu3.model;
*/
-// Generated on Sat, Jan 30, 2016 09:18-0500 for FHIR v1.3.0
+// Generated on Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
import java.util.*;
@@ -39,9 +39,8 @@ import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.Block;
-
-import org.hl7.fhir.dstu3.exceptions.FHIRException;
import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
/**
* Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.
*/
@@ -626,8 +625,7 @@ public class CarePlan extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (code == null || code.isEmpty()) && (plan == null || plan.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( code, plan);
}
public String fhirType() {
@@ -789,8 +787,7 @@ public class CarePlan extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (role == null || role.isEmpty()) && (member == null || member.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( role, member);
}
public String fhirType() {
@@ -1083,8 +1080,8 @@ public class CarePlan extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (actionResulting == null || actionResulting.isEmpty()) && (progress == null || progress.isEmpty())
- && (reference == null || reference.isEmpty()) && (detail == null || detail.isEmpty());
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( actionResulting, progress, reference
+ , detail);
}
public String fhirType() {
@@ -2049,14 +2046,9 @@ public class CarePlan extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (category == null || category.isEmpty()) && (code == null || code.isEmpty())
- && (reasonCode == null || reasonCode.isEmpty()) && (reasonReference == null || reasonReference.isEmpty())
- && (goal == null || goal.isEmpty()) && (status == null || status.isEmpty()) && (statusReason == null || statusReason.isEmpty())
- && (prohibited == null || prohibited.isEmpty()) && (scheduled == null || scheduled.isEmpty())
- && (location == null || location.isEmpty()) && (performer == null || performer.isEmpty())
- && (product == null || product.isEmpty()) && (dailyAmount == null || dailyAmount.isEmpty())
- && (quantity == null || quantity.isEmpty()) && (description == null || description.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( category, code, reasonCode, reasonReference
+ , goal, status, statusReason, prohibited, scheduled, location, performer, product, dailyAmount
+ , quantity, description);
}
public String fhirType() {
@@ -3124,13 +3116,9 @@ public class CarePlan extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (subject == null || subject.isEmpty())
- && (status == null || status.isEmpty()) && (context == null || context.isEmpty()) && (period == null || period.isEmpty())
- && (author == null || author.isEmpty()) && (modified == null || modified.isEmpty()) && (category == null || category.isEmpty())
- && (description == null || description.isEmpty()) && (addresses == null || addresses.isEmpty())
- && (support == null || support.isEmpty()) && (relatedPlan == null || relatedPlan.isEmpty())
- && (participant == null || participant.isEmpty()) && (goal == null || goal.isEmpty()) && (activity == null || activity.isEmpty())
- && (note == null || note.isEmpty());
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( identifier, subject, status, context
+ , period, author, modified, category, description, addresses, support, relatedPlan, participant
+ , goal, activity, note);
}
@Override
@@ -3232,7 +3220,7 @@ public class CarePlan extends DomainResource {
* Path: CarePlan.activity.detail.performer
*
*/
- @SearchParamDefinition(name="performer", path="CarePlan.activity.detail.performer", description="Matches if the practitioner is listed as a performer in any of the \"simple\" activities. (For performers of the detailed activities, chain through the activitydetail search parameter.)", type="reference" )
+ @SearchParamDefinition(name="performer", path="CarePlan.activity.detail.performer", description="Matches if the practitioner is listed as a performer in any of the \"simple\" activities. (For performers of the detailed activities, chain through the activitydetail search parameter.)", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") } )
public static final String SP_PERFORMER = "performer";
/**
* Fluent Client search parameter constant for performer
@@ -3330,7 +3318,7 @@ public class CarePlan extends DomainResource {
* Path: CarePlan.participant.member
*
*/
- @SearchParamDefinition(name="participant", path="CarePlan.participant.member", description="Who is involved", type="reference" )
+ @SearchParamDefinition(name="participant", path="CarePlan.participant.member", description="Who is involved", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") } )
public static final String SP_PARTICIPANT = "participant";
/**
* Fluent Client search parameter constant for participant
@@ -3428,7 +3416,7 @@ public class CarePlan extends DomainResource {
* Path: CarePlan.subject
*
*/
- @SearchParamDefinition(name="patient", path="CarePlan.subject", description="Who care plan is for", type="reference" )
+ @SearchParamDefinition(name="patient", path="CarePlan.subject", description="Who care plan is for", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") } )
public static final String SP_PATIENT = "patient";
/**
* Fluent Client search parameter constant for patient
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/CareTeam.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/CareTeam.java
new file mode 100644
index 00000000000..a0ca6588e7b
--- /dev/null
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/CareTeam.java
@@ -0,0 +1,923 @@
+package org.hl7.fhir.dstu3.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 Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
+
+import java.util.*;
+
+import org.hl7.fhir.utilities.Utilities;
+import ca.uhn.fhir.model.api.annotation.ResourceDef;
+import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
+import ca.uhn.fhir.model.api.annotation.Child;
+import ca.uhn.fhir.model.api.annotation.Description;
+import ca.uhn.fhir.model.api.annotation.Block;
+import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
+/**
+ * The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
+ */
+@ResourceDef(name="CareTeam", profile="http://hl7.org/fhir/Profile/CareTeam")
+public class CareTeam extends DomainResource {
+
+ @Block()
+ public static class CareTeamParticipantComponent extends BackboneElement implements IBaseBackboneElement {
+ /**
+ * Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
+ */
+ @Child(name = "role", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Type of involvement", formalDefinition="Indicates specific responsibility of an individual within the care team, such as \"Primary physician\", \"Team coordinator\", \"Caregiver\", etc." )
+ protected CodeableConcept role;
+
+ /**
+ * The specific person or organization who is participating/expected to participate in the care team.
+ */
+ @Child(name = "member", type = {Practitioner.class, RelatedPerson.class, Patient.class, Organization.class}, order=2, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Who is involved", formalDefinition="The specific person or organization who is participating/expected to participate in the care team." )
+ protected Reference member;
+
+ /**
+ * The actual object that is the target of the reference (The specific person or organization who is participating/expected to participate in the care team.)
+ */
+ protected Resource memberTarget;
+
+ /**
+ * Indicates when the specific member or organization did (or is intended to) come into effect and end.
+ */
+ @Child(name = "period", type = {Period.class}, order=3, min=0, max=1, modifier=false, summary=false)
+ @Description(shortDefinition="Time period of participant", formalDefinition="Indicates when the specific member or organization did (or is intended to) come into effect and end." )
+ protected Period period;
+
+ private static final long serialVersionUID = -1416929603L;
+
+ /**
+ * Constructor
+ */
+ public CareTeamParticipantComponent() {
+ super();
+ }
+
+ /**
+ * @return {@link #role} (Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.)
+ */
+ public CodeableConcept getRole() {
+ if (this.role == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeamParticipantComponent.role");
+ else if (Configuration.doAutoCreate())
+ this.role = new CodeableConcept(); // cc
+ return this.role;
+ }
+
+ public boolean hasRole() {
+ return this.role != null && !this.role.isEmpty();
+ }
+
+ /**
+ * @param value {@link #role} (Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.)
+ */
+ public CareTeamParticipantComponent setRole(CodeableConcept value) {
+ this.role = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #member} (The specific person or organization who is participating/expected to participate in the care team.)
+ */
+ public Reference getMember() {
+ if (this.member == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeamParticipantComponent.member");
+ else if (Configuration.doAutoCreate())
+ this.member = new Reference(); // cc
+ return this.member;
+ }
+
+ public boolean hasMember() {
+ return this.member != null && !this.member.isEmpty();
+ }
+
+ /**
+ * @param value {@link #member} (The specific person or organization who is participating/expected to participate in the care team.)
+ */
+ public CareTeamParticipantComponent setMember(Reference value) {
+ this.member = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #member} 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 specific person or organization who is participating/expected to participate in the care team.)
+ */
+ public Resource getMemberTarget() {
+ return this.memberTarget;
+ }
+
+ /**
+ * @param value {@link #member} 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 specific person or organization who is participating/expected to participate in the care team.)
+ */
+ public CareTeamParticipantComponent setMemberTarget(Resource value) {
+ this.memberTarget = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #period} (Indicates when the specific member or organization did (or is intended to) come into effect and end.)
+ */
+ public Period getPeriod() {
+ if (this.period == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeamParticipantComponent.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} (Indicates when the specific member or organization did (or is intended to) come into effect and end.)
+ */
+ public CareTeamParticipantComponent setPeriod(Period value) {
+ this.period = value;
+ return this;
+ }
+
+ protected void listChildren(List childrenList) {
+ super.listChildren(childrenList);
+ childrenList.add(new Property("role", "CodeableConcept", "Indicates specific responsibility of an individual within the care team, such as \"Primary physician\", \"Team coordinator\", \"Caregiver\", etc.", 0, java.lang.Integer.MAX_VALUE, role));
+ childrenList.add(new Property("member", "Reference(Practitioner|RelatedPerson|Patient|Organization)", "The specific person or organization who is participating/expected to participate in the care team.", 0, java.lang.Integer.MAX_VALUE, member));
+ childrenList.add(new Property("period", "Period", "Indicates when the specific member or organization did (or is intended to) come into effect and end.", 0, java.lang.Integer.MAX_VALUE, period));
+ }
+
+ @Override
+ public void setProperty(String name, Base value) throws FHIRException {
+ if (name.equals("role"))
+ this.role = castToCodeableConcept(value); // CodeableConcept
+ else if (name.equals("member"))
+ this.member = castToReference(value); // Reference
+ else if (name.equals("period"))
+ this.period = castToPeriod(value); // Period
+ else
+ super.setProperty(name, value);
+ }
+
+ @Override
+ public Base addChild(String name) throws FHIRException {
+ if (name.equals("role")) {
+ this.role = new CodeableConcept();
+ return this.role;
+ }
+ else if (name.equals("member")) {
+ this.member = new Reference();
+ return this.member;
+ }
+ else if (name.equals("period")) {
+ this.period = new Period();
+ return this.period;
+ }
+ else
+ return super.addChild(name);
+ }
+
+ public CareTeamParticipantComponent copy() {
+ CareTeamParticipantComponent dst = new CareTeamParticipantComponent();
+ copyValues(dst);
+ dst.role = role == null ? null : role.copy();
+ dst.member = member == null ? null : member.copy();
+ dst.period = period == null ? null : period.copy();
+ return dst;
+ }
+
+ @Override
+ public boolean equalsDeep(Base other) {
+ if (!super.equalsDeep(other))
+ return false;
+ if (!(other instanceof CareTeamParticipantComponent))
+ return false;
+ CareTeamParticipantComponent o = (CareTeamParticipantComponent) other;
+ return compareDeep(role, o.role, true) && compareDeep(member, o.member, true) && compareDeep(period, o.period, true)
+ ;
+ }
+
+ @Override
+ public boolean equalsShallow(Base other) {
+ if (!super.equalsShallow(other))
+ return false;
+ if (!(other instanceof CareTeamParticipantComponent))
+ return false;
+ CareTeamParticipantComponent o = (CareTeamParticipantComponent) other;
+ return true;
+ }
+
+ public boolean isEmpty() {
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( role, member, period);
+ }
+
+ public String fhirType() {
+ return "CareTeam.participant";
+
+ }
+
+ }
+
+ /**
+ * This records identifiers associated with this care team that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate.
+ */
+ @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Description(shortDefinition="External Ids for this team", formalDefinition="This records identifiers associated with this care team that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate." )
+ protected List identifier;
+
+ /**
+ * Indicates whether the care team is currently active, suspended, inactive, or entered in error.
+ */
+ @Child(name = "status", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=true, summary=true)
+ @Description(shortDefinition="active | suspended | inactive | entered in error", formalDefinition="Indicates whether the care team is currently active, suspended, inactive, or entered in error." )
+ protected CodeableConcept status;
+
+ /**
+ * Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team.
+ */
+ @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Description(shortDefinition="Type of team", formalDefinition="Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team." )
+ protected List type;
+
+ /**
+ * Name of the care team.
+ */
+ @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Name of the team, such as crisis assessment team", formalDefinition="Name of the care team." )
+ protected StringType name;
+
+ /**
+ * Identifies the patient or group whose intended care is handled by the team.
+ */
+ @Child(name = "subject", type = {Patient.class, Group.class}, order=4, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Who care team is for", formalDefinition="Identifies the patient or group whose intended care is handled by the team." )
+ protected Reference subject;
+
+ /**
+ * The actual object that is the target of the reference (Identifies the patient or group whose intended care is handled by the team.)
+ */
+ protected Resource subjectTarget;
+
+ /**
+ * Indicates when the team did (or is intended to) come into effect and end.
+ */
+ @Child(name = "period", type = {Period.class}, order=5, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Time period team covers", formalDefinition="Indicates when the team did (or is intended to) come into effect and end." )
+ protected Period period;
+
+ /**
+ * Identifies all people and organizations who are expected to be involved in the care team.
+ */
+ @Child(name = "participant", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
+ @Description(shortDefinition="Members of the team", formalDefinition="Identifies all people and organizations who are expected to be involved in the care team." )
+ protected List participant;
+
+ /**
+ * The organization responsible for the care team.
+ */
+ @Child(name = "managingOrganization", type = {Organization.class}, order=7, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Organization responsible for the care team", formalDefinition="The organization responsible for the care team." )
+ protected Reference managingOrganization;
+
+ /**
+ * The actual object that is the target of the reference (The organization responsible for the care team.)
+ */
+ protected Organization managingOrganizationTarget;
+
+ private static final long serialVersionUID = -917605050L;
+
+ /**
+ * Constructor
+ */
+ public CareTeam() {
+ super();
+ }
+
+ /**
+ * @return {@link #identifier} (This records identifiers associated with this care team that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate.)
+ */
+ public List getIdentifier() {
+ if (this.identifier == null)
+ this.identifier = new ArrayList();
+ return this.identifier;
+ }
+
+ public boolean hasIdentifier() {
+ if (this.identifier == null)
+ return false;
+ for (Identifier item : this.identifier)
+ if (!item.isEmpty())
+ return true;
+ return false;
+ }
+
+ /**
+ * @return {@link #identifier} (This records identifiers associated with this care team that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate.)
+ */
+ // syntactic sugar
+ public Identifier addIdentifier() { //3
+ Identifier t = new Identifier();
+ if (this.identifier == null)
+ this.identifier = new ArrayList();
+ this.identifier.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public CareTeam addIdentifier(Identifier t) { //3
+ if (t == null)
+ return this;
+ if (this.identifier == null)
+ this.identifier = new ArrayList();
+ this.identifier.add(t);
+ return this;
+ }
+
+ /**
+ * @return {@link #status} (Indicates whether the care team is currently active, suspended, inactive, or entered in error.)
+ */
+ public CodeableConcept getStatus() {
+ if (this.status == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeam.status");
+ else if (Configuration.doAutoCreate())
+ this.status = new CodeableConcept(); // cc
+ return this.status;
+ }
+
+ public boolean hasStatus() {
+ return this.status != null && !this.status.isEmpty();
+ }
+
+ /**
+ * @param value {@link #status} (Indicates whether the care team is currently active, suspended, inactive, or entered in error.)
+ */
+ public CareTeam setStatus(CodeableConcept value) {
+ this.status = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #type} (Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team.)
+ */
+ public List getType() {
+ if (this.type == null)
+ this.type = new ArrayList();
+ return this.type;
+ }
+
+ public boolean hasType() {
+ if (this.type == null)
+ return false;
+ for (CodeableConcept item : this.type)
+ if (!item.isEmpty())
+ return true;
+ return false;
+ }
+
+ /**
+ * @return {@link #type} (Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team.)
+ */
+ // syntactic sugar
+ public CodeableConcept addType() { //3
+ CodeableConcept t = new CodeableConcept();
+ if (this.type == null)
+ this.type = new ArrayList();
+ this.type.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public CareTeam addType(CodeableConcept t) { //3
+ if (t == null)
+ return this;
+ if (this.type == null)
+ this.type = new ArrayList();
+ this.type.add(t);
+ return this;
+ }
+
+ /**
+ * @return {@link #name} (Name of the care team.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
+ */
+ public StringType getNameElement() {
+ if (this.name == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeam.name");
+ else if (Configuration.doAutoCreate())
+ this.name = new StringType(); // bb
+ return this.name;
+ }
+
+ public boolean hasNameElement() {
+ return this.name != null && !this.name.isEmpty();
+ }
+
+ public boolean hasName() {
+ return this.name != null && !this.name.isEmpty();
+ }
+
+ /**
+ * @param value {@link #name} (Name of the care team.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
+ */
+ public CareTeam setNameElement(StringType value) {
+ this.name = value;
+ return this;
+ }
+
+ /**
+ * @return Name of the care team.
+ */
+ public String getName() {
+ return this.name == null ? null : this.name.getValue();
+ }
+
+ /**
+ * @param value Name of the care team.
+ */
+ public CareTeam setName(String value) {
+ if (Utilities.noString(value))
+ this.name = null;
+ else {
+ if (this.name == null)
+ this.name = new StringType();
+ this.name.setValue(value);
+ }
+ return this;
+ }
+
+ /**
+ * @return {@link #subject} (Identifies the patient or group whose intended care is handled by the team.)
+ */
+ public Reference getSubject() {
+ if (this.subject == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeam.subject");
+ else if (Configuration.doAutoCreate())
+ this.subject = new Reference(); // cc
+ return this.subject;
+ }
+
+ public boolean hasSubject() {
+ return this.subject != null && !this.subject.isEmpty();
+ }
+
+ /**
+ * @param value {@link #subject} (Identifies the patient or group whose intended care is handled by the team.)
+ */
+ public CareTeam setSubject(Reference value) {
+ this.subject = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #subject} 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. (Identifies the patient or group whose intended care is handled by the team.)
+ */
+ public Resource getSubjectTarget() {
+ return this.subjectTarget;
+ }
+
+ /**
+ * @param value {@link #subject} 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. (Identifies the patient or group whose intended care is handled by the team.)
+ */
+ public CareTeam setSubjectTarget(Resource value) {
+ this.subjectTarget = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #period} (Indicates when the team did (or is intended to) come into effect and end.)
+ */
+ public Period getPeriod() {
+ if (this.period == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeam.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} (Indicates when the team did (or is intended to) come into effect and end.)
+ */
+ public CareTeam setPeriod(Period value) {
+ this.period = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care team.)
+ */
+ public List getParticipant() {
+ if (this.participant == null)
+ this.participant = new ArrayList();
+ return this.participant;
+ }
+
+ public boolean hasParticipant() {
+ if (this.participant == null)
+ return false;
+ for (CareTeamParticipantComponent item : this.participant)
+ if (!item.isEmpty())
+ return true;
+ return false;
+ }
+
+ /**
+ * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care team.)
+ */
+ // syntactic sugar
+ public CareTeamParticipantComponent addParticipant() { //3
+ CareTeamParticipantComponent t = new CareTeamParticipantComponent();
+ if (this.participant == null)
+ this.participant = new ArrayList();
+ this.participant.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public CareTeam addParticipant(CareTeamParticipantComponent t) { //3
+ if (t == null)
+ return this;
+ if (this.participant == null)
+ this.participant = new ArrayList();
+ this.participant.add(t);
+ return this;
+ }
+
+ /**
+ * @return {@link #managingOrganization} (The organization responsible for the care team.)
+ */
+ public Reference getManagingOrganization() {
+ if (this.managingOrganization == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeam.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} (The organization responsible for the care team.)
+ */
+ public CareTeam 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. (The organization responsible for the care team.)
+ */
+ public Organization getManagingOrganizationTarget() {
+ if (this.managingOrganizationTarget == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create CareTeam.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. (The organization responsible for the care team.)
+ */
+ public CareTeam setManagingOrganizationTarget(Organization value) {
+ this.managingOrganizationTarget = value;
+ return this;
+ }
+
+ protected void listChildren(List childrenList) {
+ super.listChildren(childrenList);
+ childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care team that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate.", 0, java.lang.Integer.MAX_VALUE, identifier));
+ childrenList.add(new Property("status", "CodeableConcept", "Indicates whether the care team is currently active, suspended, inactive, or entered in error.", 0, java.lang.Integer.MAX_VALUE, status));
+ childrenList.add(new Property("type", "CodeableConcept", "Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team.", 0, java.lang.Integer.MAX_VALUE, type));
+ childrenList.add(new Property("name", "string", "Name of the care team.", 0, java.lang.Integer.MAX_VALUE, name));
+ childrenList.add(new Property("subject", "Reference(Patient|Group)", "Identifies the patient or group whose intended care is handled by the team.", 0, java.lang.Integer.MAX_VALUE, subject));
+ childrenList.add(new Property("period", "Period", "Indicates when the team did (or is intended to) come into effect and end.", 0, java.lang.Integer.MAX_VALUE, period));
+ childrenList.add(new Property("participant", "", "Identifies all people and organizations who are expected to be involved in the care team.", 0, java.lang.Integer.MAX_VALUE, participant));
+ childrenList.add(new Property("managingOrganization", "Reference(Organization)", "The organization responsible for the care team.", 0, java.lang.Integer.MAX_VALUE, managingOrganization));
+ }
+
+ @Override
+ public void setProperty(String name, Base value) throws FHIRException {
+ if (name.equals("identifier"))
+ this.getIdentifier().add(castToIdentifier(value));
+ else if (name.equals("status"))
+ this.status = castToCodeableConcept(value); // CodeableConcept
+ else if (name.equals("type"))
+ this.getType().add(castToCodeableConcept(value));
+ else if (name.equals("name"))
+ this.name = castToString(value); // StringType
+ else if (name.equals("subject"))
+ this.subject = castToReference(value); // Reference
+ else if (name.equals("period"))
+ this.period = castToPeriod(value); // Period
+ else if (name.equals("participant"))
+ this.getParticipant().add((CareTeamParticipantComponent) value);
+ else if (name.equals("managingOrganization"))
+ this.managingOrganization = castToReference(value); // Reference
+ else
+ super.setProperty(name, value);
+ }
+
+ @Override
+ public Base addChild(String name) throws FHIRException {
+ if (name.equals("identifier")) {
+ return addIdentifier();
+ }
+ else if (name.equals("status")) {
+ this.status = new CodeableConcept();
+ return this.status;
+ }
+ else if (name.equals("type")) {
+ return addType();
+ }
+ else if (name.equals("name")) {
+ throw new FHIRException("Cannot call addChild on a primitive type CareTeam.name");
+ }
+ else if (name.equals("subject")) {
+ this.subject = new Reference();
+ return this.subject;
+ }
+ else if (name.equals("period")) {
+ this.period = new Period();
+ return this.period;
+ }
+ else if (name.equals("participant")) {
+ return addParticipant();
+ }
+ else if (name.equals("managingOrganization")) {
+ this.managingOrganization = new Reference();
+ return this.managingOrganization;
+ }
+ else
+ return super.addChild(name);
+ }
+
+ public String fhirType() {
+ return "CareTeam";
+
+ }
+
+ public CareTeam copy() {
+ CareTeam dst = new CareTeam();
+ copyValues(dst);
+ if (identifier != null) {
+ dst.identifier = new ArrayList();
+ for (Identifier i : identifier)
+ dst.identifier.add(i.copy());
+ };
+ dst.status = status == null ? null : status.copy();
+ if (type != null) {
+ dst.type = new ArrayList();
+ for (CodeableConcept i : type)
+ dst.type.add(i.copy());
+ };
+ dst.name = name == null ? null : name.copy();
+ dst.subject = subject == null ? null : subject.copy();
+ dst.period = period == null ? null : period.copy();
+ if (participant != null) {
+ dst.participant = new ArrayList();
+ for (CareTeamParticipantComponent i : participant)
+ dst.participant.add(i.copy());
+ };
+ dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy();
+ return dst;
+ }
+
+ protected CareTeam typedCopy() {
+ return copy();
+ }
+
+ @Override
+ public boolean equalsDeep(Base other) {
+ if (!super.equalsDeep(other))
+ return false;
+ if (!(other instanceof CareTeam))
+ return false;
+ CareTeam o = (CareTeam) other;
+ return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(type, o.type, true)
+ && compareDeep(name, o.name, true) && compareDeep(subject, o.subject, true) && compareDeep(period, o.period, true)
+ && compareDeep(participant, o.participant, true) && compareDeep(managingOrganization, o.managingOrganization, true)
+ ;
+ }
+
+ @Override
+ public boolean equalsShallow(Base other) {
+ if (!super.equalsShallow(other))
+ return false;
+ if (!(other instanceof CareTeam))
+ return false;
+ CareTeam o = (CareTeam) other;
+ return compareValues(name, o.name, true);
+ }
+
+ public boolean isEmpty() {
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( identifier, status, type, name
+ , subject, period, participant, managingOrganization);
+ }
+
+ @Override
+ public ResourceType getResourceType() {
+ return ResourceType.CareTeam;
+ }
+
+ /**
+ * Search parameter: date
+ *
+ * Description: Time period team covers
+ * Type: date
+ * Path: CareTeam.period
+ *
+ */
+ @SearchParamDefinition(name="date", path="CareTeam.period", description="Time period team covers", type="date" )
+ public static final String SP_DATE = "date";
+ /**
+ * Fluent Client search parameter constant for date
+ *
+ * Description: Time period team covers
+ * Type: date
+ * Path: CareTeam.period
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
+
+ /**
+ * Search parameter: identifier
+ *
+ * Description: External Ids for this team
+ * Type: token
+ * Path: CareTeam.identifier
+ *
+ */
+ @SearchParamDefinition(name="identifier", path="CareTeam.identifier", description="External Ids for this team", type="token" )
+ public static final String SP_IDENTIFIER = "identifier";
+ /**
+ * Fluent Client search parameter constant for identifier
+ *
+ * Description: External Ids for this team
+ * Type: token
+ * Path: CareTeam.identifier
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
+
+ /**
+ * Search parameter: patient
+ *
+ * Description: Who care team is for
+ * Type: reference
+ * Path: CareTeam.subject
+ *
+ */
+ @SearchParamDefinition(name="patient", path="CareTeam.subject", description="Who care team is for", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") } )
+ public static final String SP_PATIENT = "patient";
+ /**
+ * Fluent Client search parameter constant for patient
+ *
+ * Description: Who care team is for
+ * Type: reference
+ * Path: CareTeam.subject
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
+
+/**
+ * Constant for fluent queries to be used to add include statements. Specifies
+ * the path value of "CareTeam:patient".
+ */
+ public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("CareTeam:patient").toLocked();
+
+ /**
+ * Search parameter: subject
+ *
+ * Description: Who care team is for
+ * Type: reference
+ * Path: CareTeam.subject
+ *
+ */
+ @SearchParamDefinition(name="subject", path="CareTeam.subject", description="Who care team is for", type="reference" )
+ public static final String SP_SUBJECT = "subject";
+ /**
+ * Fluent Client search parameter constant for subject
+ *
+ * Description: Who care team is for
+ * Type: reference
+ * Path: CareTeam.subject
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
+
+/**
+ * Constant for fluent queries to be used to add include statements. Specifies
+ * the path value of "CareTeam:subject".
+ */
+ public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("CareTeam:subject").toLocked();
+
+ /**
+ * Search parameter: type
+ *
+ * Description: Type of team
+ * Type: token
+ * Path: CareTeam.type
+ *
+ */
+ @SearchParamDefinition(name="type", path="CareTeam.type", description="Type of team", type="token" )
+ public static final String SP_TYPE = "type";
+ /**
+ * Fluent Client search parameter constant for type
+ *
+ * Description: Type of team
+ * Type: token
+ * Path: CareTeam.type
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
+
+ /**
+ * Search parameter: participant
+ *
+ * Description: Who is involved
+ * Type: reference
+ * Path: CareTeam.participant.member
+ *
+ */
+ @SearchParamDefinition(name="participant", path="CareTeam.participant.member", description="Who is involved", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") } )
+ public static final String SP_PARTICIPANT = "participant";
+ /**
+ * Fluent Client search parameter constant for participant
+ *
+ * Description: Who is involved
+ * Type: reference
+ * Path: CareTeam.participant.member
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTICIPANT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTICIPANT);
+
+/**
+ * Constant for fluent queries to be used to add include statements. Specifies
+ * the path value of "CareTeam:participant".
+ */
+ public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTICIPANT = new ca.uhn.fhir.model.api.Include("CareTeam:participant").toLocked();
+
+ /**
+ * Search parameter: status
+ *
+ * Description: active | suspended | inactive | entered in error
+ * Type: token
+ * Path: CareTeam.status
+ *
+ */
+ @SearchParamDefinition(name="status", path="CareTeam.status", description="active | suspended | inactive | entered in error", type="token" )
+ public static final String SP_STATUS = "status";
+ /**
+ * Fluent Client search parameter constant for status
+ *
+ * Description: active | suspended | inactive | entered in error
+ * Type: token
+ * Path: CareTeam.status
+ *
+ */
+ public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
+
+
+}
+
diff --git a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Claim.java b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Claim.java
index df6d3449f2e..c0d346264b0 100644
--- a/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Claim.java
+++ b/hapi-fhir-structures-dstu3/src/main/java/org/hl7/fhir/dstu3/model/Claim.java
@@ -29,22 +29,20 @@ package org.hl7.fhir.dstu3.model;
*/
-// Generated on Sat, Jan 30, 2016 09:18-0500 for FHIR v1.3.0
+// Generated on Fri, Apr 1, 2016 17:57-0400 for FHIR v1.4.0
import java.util.*;
import java.math.*;
import org.hl7.fhir.utilities.Utilities;
-
+import org.hl7.fhir.dstu3.model.Enumerations.*;
import ca.uhn.fhir.model.api.annotation.ResourceDef;
import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.Block;
-
-import org.hl7.fhir.dstu3.exceptions.FHIRException;
-import org.hl7.fhir.dstu3.model.Enumerations.*;
import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
/**
* A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
*/
@@ -305,52 +303,231 @@ public class Claim extends DomainResource {
}
}
+ @Block()
+ public static class RelatedClaimsComponent extends BackboneElement implements IBaseBackboneElement {
+ /**
+ * Other claims which are related to this claim such as prior claim versions or for related services.
+ */
+ @Child(name = "claim", type = {Identifier.class, Claim.class}, order=1, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Reference to the related claim", formalDefinition="Other claims which are related to this claim such as prior claim versions or for related services." )
+ protected Type claim;
+
+ /**
+ * For example prior or umbrella.
+ */
+ @Child(name = "relationship", type = {Coding.class}, order=2, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="How the reference claim is related", formalDefinition="For example prior or umbrella." )
+ protected Coding relationship;
+
+ /**
+ * An alternate organizational reference to the case or file to which this particular claim pertains - eg Property/Casualy insurer claim # or Workers Compensation case # .
+ */
+ @Child(name = "reference", type = {Identifier.class}, order=3, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Related file or case reference", formalDefinition="An alternate organizational reference to the case or file to which this particular claim pertains - eg Property/Casualy insurer claim # or Workers Compensation case # ." )
+ protected Identifier reference;
+
+ private static final long serialVersionUID = -2033217402L;
+
+ /**
+ * Constructor
+ */
+ public RelatedClaimsComponent() {
+ super();
+ }
+
+ /**
+ * @return {@link #claim} (Other claims which are related to this claim such as prior claim versions or for related services.)
+ */
+ public Type getClaim() {
+ return this.claim;
+ }
+
+ /**
+ * @return {@link #claim} (Other claims which are related to this claim such as prior claim versions or for related services.)
+ */
+ public Identifier getClaimIdentifier() throws FHIRException {
+ if (!(this.claim instanceof Identifier))
+ throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.claim.getClass().getName()+" was encountered");
+ return (Identifier) this.claim;
+ }
+
+ public boolean hasClaimIdentifier() {
+ return this.claim instanceof Identifier;
+ }
+
+ /**
+ * @return {@link #claim} (Other claims which are related to this claim such as prior claim versions or for related services.)
+ */
+ public Reference getClaimReference() throws FHIRException {
+ if (!(this.claim instanceof Reference))
+ throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.claim.getClass().getName()+" was encountered");
+ return (Reference) this.claim;
+ }
+
+ public boolean hasClaimReference() {
+ return this.claim instanceof Reference;
+ }
+
+ public boolean hasClaim() {
+ return this.claim != null && !this.claim.isEmpty();
+ }
+
+ /**
+ * @param value {@link #claim} (Other claims which are related to this claim such as prior claim versions or for related services.)
+ */
+ public RelatedClaimsComponent setClaim(Type value) {
+ this.claim = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #relationship} (For example prior or umbrella.)
+ */
+ public Coding getRelationship() {
+ if (this.relationship == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create RelatedClaimsComponent.relationship");
+ else if (Configuration.doAutoCreate())
+ this.relationship = new Coding(); // cc
+ return this.relationship;
+ }
+
+ public boolean hasRelationship() {
+ return this.relationship != null && !this.relationship.isEmpty();
+ }
+
+ /**
+ * @param value {@link #relationship} (For example prior or umbrella.)
+ */
+ public RelatedClaimsComponent setRelationship(Coding value) {
+ this.relationship = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #reference} (An alternate organizational reference to the case or file to which this particular claim pertains - eg Property/Casualy insurer claim # or Workers Compensation case # .)
+ */
+ public Identifier getReference() {
+ if (this.reference == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create RelatedClaimsComponent.reference");
+ else if (Configuration.doAutoCreate())
+ this.reference = new Identifier(); // cc
+ return this.reference;
+ }
+
+ public boolean hasReference() {
+ return this.reference != null && !this.reference.isEmpty();
+ }
+
+ /**
+ * @param value {@link #reference} (An alternate organizational reference to the case or file to which this particular claim pertains - eg Property/Casualy insurer claim # or Workers Compensation case # .)
+ */
+ public RelatedClaimsComponent setReference(Identifier value) {
+ this.reference = value;
+ return this;
+ }
+
+ protected void listChildren(List childrenList) {
+ super.listChildren(childrenList);
+ childrenList.add(new Property("claim[x]", "Identifier|Reference(Claim)", "Other claims which are related to this claim such as prior claim versions or for related services.", 0, java.lang.Integer.MAX_VALUE, claim));
+ childrenList.add(new Property("relationship", "Coding", "For example prior or umbrella.", 0, java.lang.Integer.MAX_VALUE, relationship));
+ childrenList.add(new Property("reference", "Identifier", "An alternate organizational reference to the case or file to which this particular claim pertains - eg Property/Casualy insurer claim # or Workers Compensation case # .", 0, java.lang.Integer.MAX_VALUE, reference));
+ }
+
+ @Override
+ public void setProperty(String name, Base value) throws FHIRException {
+ if (name.equals("claim[x]"))
+ this.claim = (Type) value; // Type
+ else if (name.equals("relationship"))
+ this.relationship = castToCoding(value); // Coding
+ else if (name.equals("reference"))
+ this.reference = castToIdentifier(value); // Identifier
+ else
+ super.setProperty(name, value);
+ }
+
+ @Override
+ public Base addChild(String name) throws FHIRException {
+ if (name.equals("claimIdentifier")) {
+ this.claim = new Identifier();
+ return this.claim;
+ }
+ else if (name.equals("claimReference")) {
+ this.claim = new Reference();
+ return this.claim;
+ }
+ else if (name.equals("relationship")) {
+ this.relationship = new Coding();
+ return this.relationship;
+ }
+ else if (name.equals("reference")) {
+ this.reference = new Identifier();
+ return this.reference;
+ }
+ else
+ return super.addChild(name);
+ }
+
+ public RelatedClaimsComponent copy() {
+ RelatedClaimsComponent dst = new RelatedClaimsComponent();
+ copyValues(dst);
+ dst.claim = claim == null ? null : claim.copy();
+ dst.relationship = relationship == null ? null : relationship.copy();
+ dst.reference = reference == null ? null : reference.copy();
+ return dst;
+ }
+
+ @Override
+ public boolean equalsDeep(Base other) {
+ if (!super.equalsDeep(other))
+ return false;
+ if (!(other instanceof RelatedClaimsComponent))
+ return false;
+ RelatedClaimsComponent o = (RelatedClaimsComponent) other;
+ return compareDeep(claim, o.claim, true) && compareDeep(relationship, o.relationship, true) && compareDeep(reference, o.reference, true)
+ ;
+ }
+
+ @Override
+ public boolean equalsShallow(Base other) {
+ if (!super.equalsShallow(other))
+ return false;
+ if (!(other instanceof RelatedClaimsComponent))
+ return false;
+ RelatedClaimsComponent o = (RelatedClaimsComponent) other;
+ return true;
+ }
+
+ public boolean isEmpty() {
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( claim, relationship, reference
+ );
+ }
+
+ public String fhirType() {
+ return "Claim.related";
+
+ }
+
+ }
+
@Block()
public static class PayeeComponent extends BackboneElement implements IBaseBackboneElement {
/**
- * Party to be reimbursed: Subscriber, provider, other.
+ * Type of Party to be reimbursed: Subscriber, provider, other.
*/
- @Child(name = "type", type = {Coding.class}, order=1, min=0, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Party to be paid any benefits payable", formalDefinition="Party to be reimbursed: Subscriber, provider, other." )
+ @Child(name = "type", type = {Coding.class}, order=1, min=1, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Type of party: Subscriber, Provider, other", formalDefinition="Type of Party to be reimbursed: Subscriber, provider, other." )
protected Coding type;
/**
- * The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).
+ * Party to be reimbursed: Subscriber, provider, other.
*/
- @Child(name = "provider", type = {Practitioner.class}, order=2, min=0, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Provider who is the payee", formalDefinition="The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned)." )
- protected Reference provider;
+ @Child(name = "party", type = {Identifier.class, Practitioner.class, Organization.class, Patient.class, RelatedPerson.class}, order=2, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Party to receive the payable", formalDefinition="Party to be reimbursed: Subscriber, provider, other." )
+ protected Type party;
- /**
- * The actual object that is the target of the reference (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- protected Practitioner providerTarget;
-
- /**
- * The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).
- */
- @Child(name = "organization", type = {Organization.class}, order=3, min=0, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Organization who is the payee", formalDefinition="The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned)." )
- protected Reference organization;
-
- /**
- * The actual object that is the target of the reference (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- protected Organization organizationTarget;
-
- /**
- * The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).
- */
- @Child(name = "person", type = {Patient.class}, order=4, min=0, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Other person who is the payee", formalDefinition="The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned)." )
- protected Reference person;
-
- /**
- * The actual object that is the target of the reference (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- protected Patient personTarget;
-
- private static final long serialVersionUID = -503108488L;
+ private static final long serialVersionUID = 1304353420L;
/**
* Constructor
@@ -359,8 +536,16 @@ public class Claim extends DomainResource {
super();
}
+ /**
+ * Constructor
+ */
+ public PayeeComponent(Coding type) {
+ super();
+ this.type = type;
+ }
+
/**
- * @return {@link #type} (Party to be reimbursed: Subscriber, provider, other.)
+ * @return {@link #type} (Type of Party to be reimbursed: Subscriber, provider, other.)
*/
public Coding getType() {
if (this.type == null)
@@ -376,7 +561,7 @@ public class Claim extends DomainResource {
}
/**
- * @param value {@link #type} (Party to be reimbursed: Subscriber, provider, other.)
+ * @param value {@link #type} (Type of Party to be reimbursed: Subscriber, provider, other.)
*/
public PayeeComponent setType(Coding value) {
this.type = value;
@@ -384,155 +569,62 @@ public class Claim extends DomainResource {
}
/**
- * @return {@link #provider} (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
+ * @return {@link #party} (Party to be reimbursed: Subscriber, provider, other.)
*/
- public Reference getProvider() {
- if (this.provider == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create PayeeComponent.provider");
- else if (Configuration.doAutoCreate())
- this.provider = new Reference(); // cc
- return this.provider;
- }
-
- public boolean hasProvider() {
- return this.provider != null && !this.provider.isEmpty();
+ public Type getParty() {
+ return this.party;
}
/**
- * @param value {@link #provider} (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
+ * @return {@link #party} (Party to be reimbursed: Subscriber, provider, other.)
*/
- public PayeeComponent setProvider(Reference value) {
- this.provider = value;
- return this;
+ public Identifier getPartyIdentifier() throws FHIRException {
+ if (!(this.party instanceof Identifier))
+ throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.party.getClass().getName()+" was encountered");
+ return (Identifier) this.party;
+ }
+
+ public boolean hasPartyIdentifier() {
+ return this.party instanceof Identifier;
}
/**
- * @return {@link #provider} 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 provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
+ * @return {@link #party} (Party to be reimbursed: Subscriber, provider, other.)
*/
- public Practitioner getProviderTarget() {
- if (this.providerTarget == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create PayeeComponent.provider");
- else if (Configuration.doAutoCreate())
- this.providerTarget = new Practitioner(); // aa
- return this.providerTarget;
+ public Reference getPartyReference() throws FHIRException {
+ if (!(this.party instanceof Reference))
+ throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.party.getClass().getName()+" was encountered");
+ return (Reference) this.party;
+ }
+
+ public boolean hasPartyReference() {
+ return this.party instanceof Reference;
+ }
+
+ public boolean hasParty() {
+ return this.party != null && !this.party.isEmpty();
}
/**
- * @param value {@link #provider} 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 provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
+ * @param value {@link #party} (Party to be reimbursed: Subscriber, provider, other.)
*/
- public PayeeComponent setProviderTarget(Practitioner value) {
- this.providerTarget = value;
- return this;
- }
-
- /**
- * @return {@link #organization} (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public Reference getOrganization() {
- if (this.organization == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create PayeeComponent.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} (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public PayeeComponent 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. (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public Organization getOrganizationTarget() {
- if (this.organizationTarget == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create PayeeComponent.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. (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public PayeeComponent setOrganizationTarget(Organization value) {
- this.organizationTarget = value;
- return this;
- }
-
- /**
- * @return {@link #person} (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public Reference getPerson() {
- if (this.person == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create PayeeComponent.person");
- else if (Configuration.doAutoCreate())
- this.person = new Reference(); // cc
- return this.person;
- }
-
- public boolean hasPerson() {
- return this.person != null && !this.person.isEmpty();
- }
-
- /**
- * @param value {@link #person} (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public PayeeComponent setPerson(Reference value) {
- this.person = value;
- return this;
- }
-
- /**
- * @return {@link #person} 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 person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public Patient getPersonTarget() {
- if (this.personTarget == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create PayeeComponent.person");
- else if (Configuration.doAutoCreate())
- this.personTarget = new Patient(); // aa
- return this.personTarget;
- }
-
- /**
- * @param value {@link #person} 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 person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).)
- */
- public PayeeComponent setPersonTarget(Patient value) {
- this.personTarget = value;
+ public PayeeComponent setParty(Type value) {
+ this.party = value;
return this;
}
protected void listChildren(List childrenList) {
super.listChildren(childrenList);
- childrenList.add(new Property("type", "Coding", "Party to be reimbursed: Subscriber, provider, other.", 0, java.lang.Integer.MAX_VALUE, type));
- childrenList.add(new Property("provider", "Reference(Practitioner)", "The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, provider));
- childrenList.add(new Property("organization", "Reference(Organization)", "The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, organization));
- childrenList.add(new Property("person", "Reference(Patient)", "The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, person));
+ childrenList.add(new Property("type", "Coding", "Type of Party to be reimbursed: Subscriber, provider, other.", 0, java.lang.Integer.MAX_VALUE, type));
+ childrenList.add(new Property("party[x]", "Identifier|Reference(Practitioner|Organization|Patient|RelatedPerson)", "Party to be reimbursed: Subscriber, provider, other.", 0, java.lang.Integer.MAX_VALUE, party));
}
@Override
public void setProperty(String name, Base value) throws FHIRException {
if (name.equals("type"))
this.type = castToCoding(value); // Coding
- else if (name.equals("provider"))
- this.provider = castToReference(value); // Reference
- else if (name.equals("organization"))
- this.organization = castToReference(value); // Reference
- else if (name.equals("person"))
- this.person = castToReference(value); // Reference
+ else if (name.equals("party[x]"))
+ this.party = (Type) value; // Type
else
super.setProperty(name, value);
}
@@ -543,17 +635,13 @@ public class Claim extends DomainResource {
this.type = new Coding();
return this.type;
}
- else if (name.equals("provider")) {
- this.provider = new Reference();
- return this.provider;
+ else if (name.equals("partyIdentifier")) {
+ this.party = new Identifier();
+ return this.party;
}
- else if (name.equals("organization")) {
- this.organization = new Reference();
- return this.organization;
- }
- else if (name.equals("person")) {
- this.person = new Reference();
- return this.person;
+ else if (name.equals("partyReference")) {
+ this.party = new Reference();
+ return this.party;
}
else
return super.addChild(name);
@@ -563,9 +651,7 @@ public class Claim extends DomainResource {
PayeeComponent dst = new PayeeComponent();
copyValues(dst);
dst.type = type == null ? null : type.copy();
- dst.provider = provider == null ? null : provider.copy();
- dst.organization = organization == null ? null : organization.copy();
- dst.person = person == null ? null : person.copy();
+ dst.party = party == null ? null : party.copy();
return dst;
}
@@ -576,8 +662,7 @@ public class Claim extends DomainResource {
if (!(other instanceof PayeeComponent))
return false;
PayeeComponent o = (PayeeComponent) other;
- return compareDeep(type, o.type, true) && compareDeep(provider, o.provider, true) && compareDeep(organization, o.organization, true)
- && compareDeep(person, o.person, true);
+ return compareDeep(type, o.type, true) && compareDeep(party, o.party, true);
}
@Override
@@ -591,9 +676,7 @@ public class Claim extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (type == null || type.isEmpty()) && (provider == null || provider.isEmpty())
- && (organization == null || organization.isEmpty()) && (person == null || person.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( type, party);
}
public String fhirType() {
@@ -609,7 +692,7 @@ public class Claim extends DomainResource {
* Sequence of diagnosis which serves to order and provide a link.
*/
@Child(name = "sequence", type = {PositiveIntType.class}, order=1, min=1, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Sequence of diagnosis", formalDefinition="Sequence of diagnosis which serves to order and provide a link." )
+ @Description(shortDefinition="Number to covey order of diagnosis", formalDefinition="Sequence of diagnosis which serves to order and provide a link." )
protected PositiveIntType sequence;
/**
@@ -764,8 +847,7 @@ public class Claim extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (diagnosis == null || diagnosis.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( sequence, diagnosis);
}
public String fhirType() {
@@ -773,6 +855,266 @@ public class Claim extends DomainResource {
}
+ }
+
+ @Block()
+ public static class ProcedureComponent extends BackboneElement implements IBaseBackboneElement {
+ /**
+ * Sequence of procedures which serves to order and provide a link.
+ */
+ @Child(name = "sequence", type = {PositiveIntType.class}, order=1, min=1, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Procedure sequence for reference", formalDefinition="Sequence of procedures which serves to order and provide a link." )
+ protected PositiveIntType sequence;
+
+ /**
+ * Date and optionally time the procedure was performed .
+ */
+ @Child(name = "date", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="When the procedure was performed", formalDefinition="Date and optionally time the procedure was performed ." )
+ protected DateTimeType date;
+
+ /**
+ * The procedure code.
+ */
+ @Child(name = "procedure", type = {Coding.class, Procedure.class}, order=3, min=1, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Patient's list of procedures performed", formalDefinition="The procedure code." )
+ protected Type procedure;
+
+ private static final long serialVersionUID = 864307347L;
+
+ /**
+ * Constructor
+ */
+ public ProcedureComponent() {
+ super();
+ }
+
+ /**
+ * Constructor
+ */
+ public ProcedureComponent(PositiveIntType sequence, Type procedure) {
+ super();
+ this.sequence = sequence;
+ this.procedure = procedure;
+ }
+
+ /**
+ * @return {@link #sequence} (Sequence of procedures which serves to order and provide a link.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value
+ */
+ public PositiveIntType getSequenceElement() {
+ if (this.sequence == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create ProcedureComponent.sequence");
+ else if (Configuration.doAutoCreate())
+ this.sequence = new PositiveIntType(); // bb
+ return this.sequence;
+ }
+
+ public boolean hasSequenceElement() {
+ return this.sequence != null && !this.sequence.isEmpty();
+ }
+
+ public boolean hasSequence() {
+ return this.sequence != null && !this.sequence.isEmpty();
+ }
+
+ /**
+ * @param value {@link #sequence} (Sequence of procedures which serves to order and provide a link.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value
+ */
+ public ProcedureComponent setSequenceElement(PositiveIntType value) {
+ this.sequence = value;
+ return this;
+ }
+
+ /**
+ * @return Sequence of procedures which serves to order and provide a link.
+ */
+ public int getSequence() {
+ return this.sequence == null || this.sequence.isEmpty() ? 0 : this.sequence.getValue();
+ }
+
+ /**
+ * @param value Sequence of procedures which serves to order and provide a link.
+ */
+ public ProcedureComponent setSequence(int value) {
+ if (this.sequence == null)
+ this.sequence = new PositiveIntType();
+ this.sequence.setValue(value);
+ return this;
+ }
+
+ /**
+ * @return {@link #date} (Date and optionally time the procedure was performed .). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
+ */
+ public DateTimeType getDateElement() {
+ if (this.date == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create ProcedureComponent.date");
+ else if (Configuration.doAutoCreate())
+ this.date = new DateTimeType(); // bb
+ return this.date;
+ }
+
+ public boolean hasDateElement() {
+ return this.date != null && !this.date.isEmpty();
+ }
+
+ public boolean hasDate() {
+ return this.date != null && !this.date.isEmpty();
+ }
+
+ /**
+ * @param value {@link #date} (Date and optionally time the procedure was performed .). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
+ */
+ public ProcedureComponent setDateElement(DateTimeType value) {
+ this.date = value;
+ return this;
+ }
+
+ /**
+ * @return Date and optionally time the procedure was performed .
+ */
+ public Date getDate() {
+ return this.date == null ? null : this.date.getValue();
+ }
+
+ /**
+ * @param value Date and optionally time the procedure was performed .
+ */
+ public ProcedureComponent setDate(Date value) {
+ if (value == null)
+ this.date = null;
+ else {
+ if (this.date == null)
+ this.date = new DateTimeType();
+ this.date.setValue(value);
+ }
+ return this;
+ }
+
+ /**
+ * @return {@link #procedure} (The procedure code.)
+ */
+ public Type getProcedure() {
+ return this.procedure;
+ }
+
+ /**
+ * @return {@link #procedure} (The procedure code.)
+ */
+ public Coding getProcedureCoding() throws FHIRException {
+ if (!(this.procedure instanceof Coding))
+ throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.procedure.getClass().getName()+" was encountered");
+ return (Coding) this.procedure;
+ }
+
+ public boolean hasProcedureCoding() {
+ return this.procedure instanceof Coding;
+ }
+
+ /**
+ * @return {@link #procedure} (The procedure code.)
+ */
+ public Reference getProcedureReference() throws FHIRException {
+ if (!(this.procedure instanceof Reference))
+ throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.procedure.getClass().getName()+" was encountered");
+ return (Reference) this.procedure;
+ }
+
+ public boolean hasProcedureReference() {
+ return this.procedure instanceof Reference;
+ }
+
+ public boolean hasProcedure() {
+ return this.procedure != null && !this.procedure.isEmpty();
+ }
+
+ /**
+ * @param value {@link #procedure} (The procedure code.)
+ */
+ public ProcedureComponent setProcedure(Type value) {
+ this.procedure = value;
+ return this;
+ }
+
+ protected void listChildren(List childrenList) {
+ super.listChildren(childrenList);
+ childrenList.add(new Property("sequence", "positiveInt", "Sequence of procedures which serves to order and provide a link.", 0, java.lang.Integer.MAX_VALUE, sequence));
+ childrenList.add(new Property("date", "dateTime", "Date and optionally time the procedure was performed .", 0, java.lang.Integer.MAX_VALUE, date));
+ childrenList.add(new Property("procedure[x]", "Coding|Reference(Procedure)", "The procedure code.", 0, java.lang.Integer.MAX_VALUE, procedure));
+ }
+
+ @Override
+ public void setProperty(String name, Base value) throws FHIRException {
+ if (name.equals("sequence"))
+ this.sequence = castToPositiveInt(value); // PositiveIntType
+ else if (name.equals("date"))
+ this.date = castToDateTime(value); // DateTimeType
+ else if (name.equals("procedure[x]"))
+ this.procedure = (Type) value; // Type
+ else
+ super.setProperty(name, value);
+ }
+
+ @Override
+ public Base addChild(String name) throws FHIRException {
+ if (name.equals("sequence")) {
+ throw new FHIRException("Cannot call addChild on a primitive type Claim.sequence");
+ }
+ else if (name.equals("date")) {
+ throw new FHIRException("Cannot call addChild on a primitive type Claim.date");
+ }
+ else if (name.equals("procedureCoding")) {
+ this.procedure = new Coding();
+ return this.procedure;
+ }
+ else if (name.equals("procedureReference")) {
+ this.procedure = new Reference();
+ return this.procedure;
+ }
+ else
+ return super.addChild(name);
+ }
+
+ public ProcedureComponent copy() {
+ ProcedureComponent dst = new ProcedureComponent();
+ copyValues(dst);
+ dst.sequence = sequence == null ? null : sequence.copy();
+ dst.date = date == null ? null : date.copy();
+ dst.procedure = procedure == null ? null : procedure.copy();
+ return dst;
+ }
+
+ @Override
+ public boolean equalsDeep(Base other) {
+ if (!super.equalsDeep(other))
+ return false;
+ if (!(other instanceof ProcedureComponent))
+ return false;
+ ProcedureComponent o = (ProcedureComponent) other;
+ return compareDeep(sequence, o.sequence, true) && compareDeep(date, o.date, true) && compareDeep(procedure, o.procedure, true)
+ ;
+ }
+
+ @Override
+ public boolean equalsShallow(Base other) {
+ if (!super.equalsShallow(other))
+ return false;
+ if (!(other instanceof ProcedureComponent))
+ return false;
+ ProcedureComponent o = (ProcedureComponent) other;
+ return compareValues(sequence, o.sequence, true) && compareValues(date, o.date, true);
+ }
+
+ public boolean isEmpty() {
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( sequence, date, procedure);
+ }
+
+ public String fhirType() {
+ return "Claim.procedure";
+
+ }
+
}
@Block()
@@ -794,14 +1136,9 @@ public class Claim extends DomainResource {
/**
* Reference to the program or plan identification, underwriter or payor.
*/
- @Child(name = "coverage", type = {Coverage.class}, order=3, min=1, max=1, modifier=false, summary=true)
+ @Child(name = "coverage", type = {Identifier.class, Coverage.class}, order=3, min=1, max=1, modifier=false, summary=true)
@Description(shortDefinition="Insurance information", formalDefinition="Reference to the program or plan identification, underwriter or payor." )
- protected Reference coverage;
-
- /**
- * The actual object that is the target of the reference (Reference to the program or plan identification, underwriter or payor.)
- */
- protected Coverage coverageTarget;
+ protected Type coverage;
/**
* The contract number of a business agreement which describes the terms and conditions.
@@ -810,24 +1147,17 @@ public class Claim extends DomainResource {
@Description(shortDefinition="Business agreement", formalDefinition="The contract number of a business agreement which describes the terms and conditions." )
protected StringType businessArrangement;
- /**
- * The relationship of the patient to the subscriber.
- */
- @Child(name = "relationship", type = {Coding.class}, order=5, min=1, max=1, modifier=false, summary=true)
- @Description(shortDefinition="Patient relationship to subscriber", formalDefinition="The relationship of the patient to the subscriber." )
- protected Coding relationship;
-
/**
* A list of references from the Insurer to which these services pertain.
*/
- @Child(name = "preAuthRef", type = {StringType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Child(name = "preAuthRef", type = {StringType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
@Description(shortDefinition="Pre-Authorization/Determination Reference", formalDefinition="A list of references from the Insurer to which these services pertain." )
protected List preAuthRef;
/**
* The Coverages adjudication details.
*/
- @Child(name = "claimResponse", type = {ClaimResponse.class}, order=7, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "claimResponse", type = {ClaimResponse.class}, order=6, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Adjudication results", formalDefinition="The Coverages adjudication details." )
protected Reference claimResponse;
@@ -839,11 +1169,11 @@ public class Claim extends DomainResource {
/**
* The style (standard) and version of the original material which was converted into this resource.
*/
- @Child(name = "originalRuleset", type = {Coding.class}, order=8, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "originalRuleset", type = {Coding.class}, order=7, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." )
protected Coding originalRuleset;
- private static final long serialVersionUID = 621250924L;
+ private static final long serialVersionUID = 2031704818L;
/**
* Constructor
@@ -855,12 +1185,11 @@ public class Claim extends DomainResource {
/**
* Constructor
*/
- public CoverageComponent(PositiveIntType sequence, BooleanType focal, Reference coverage, Coding relationship) {
+ public CoverageComponent(PositiveIntType sequence, BooleanType focal, Type coverage) {
super();
this.sequence = sequence;
this.focal = focal;
this.coverage = coverage;
- this.relationship = relationship;
}
/**
@@ -956,15 +1285,36 @@ public class Claim extends DomainResource {
/**
* @return {@link #coverage} (Reference to the program or plan identification, underwriter or payor.)
*/
- public Reference getCoverage() {
- if (this.coverage == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create CoverageComponent.coverage");
- else if (Configuration.doAutoCreate())
- this.coverage = new Reference(); // cc
+ public Type getCoverage() {
return this.coverage;
}
+ /**
+ * @return {@link #coverage} (Reference to the program or plan identification, underwriter or payor.)
+ */
+ public Identifier getCoverageIdentifier() throws FHIRException {
+ if (!(this.coverage instanceof Identifier))
+ throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.coverage.getClass().getName()+" was encountered");
+ return (Identifier) this.coverage;
+ }
+
+ public boolean hasCoverageIdentifier() {
+ return this.coverage instanceof Identifier;
+ }
+
+ /**
+ * @return {@link #coverage} (Reference to the program or plan identification, underwriter or payor.)
+ */
+ public Reference getCoverageReference() throws FHIRException {
+ if (!(this.coverage instanceof Reference))
+ throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.coverage.getClass().getName()+" was encountered");
+ return (Reference) this.coverage;
+ }
+
+ public boolean hasCoverageReference() {
+ return this.coverage instanceof Reference;
+ }
+
public boolean hasCoverage() {
return this.coverage != null && !this.coverage.isEmpty();
}
@@ -972,31 +1322,11 @@ public class Claim extends DomainResource {
/**
* @param value {@link #coverage} (Reference to the program or plan identification, underwriter or payor.)
*/
- public CoverageComponent setCoverage(Reference value) {
+ public CoverageComponent setCoverage(Type value) {
this.coverage = value;
return this;
}
- /**
- * @return {@link #coverage} 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. (Reference to the program or plan identification, underwriter or payor.)
- */
- public Coverage getCoverageTarget() {
- if (this.coverageTarget == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create CoverageComponent.coverage");
- else if (Configuration.doAutoCreate())
- this.coverageTarget = new Coverage(); // aa
- return this.coverageTarget;
- }
-
- /**
- * @param value {@link #coverage} 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. (Reference to the program or plan identification, underwriter or payor.)
- */
- public CoverageComponent setCoverageTarget(Coverage value) {
- this.coverageTarget = value;
- return this;
- }
-
/**
* @return {@link #businessArrangement} (The contract number of a business agreement which describes the terms and conditions.). This is the underlying object with id, value and extensions. The accessor "getBusinessArrangement" gives direct access to the value
*/
@@ -1046,30 +1376,6 @@ public class Claim extends DomainResource {
return this;
}
- /**
- * @return {@link #relationship} (The relationship of the patient to the subscriber.)
- */
- public Coding getRelationship() {
- if (this.relationship == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create CoverageComponent.relationship");
- else if (Configuration.doAutoCreate())
- this.relationship = new Coding(); // cc
- return this.relationship;
- }
-
- public boolean hasRelationship() {
- return this.relationship != null && !this.relationship.isEmpty();
- }
-
- /**
- * @param value {@link #relationship} (The relationship of the patient to the subscriber.)
- */
- public CoverageComponent setRelationship(Coding value) {
- this.relationship = value;
- return this;
- }
-
/**
* @return {@link #preAuthRef} (A list of references from the Insurer to which these services pertain.)
*/
@@ -1196,9 +1502,8 @@ public class Claim extends DomainResource {
super.listChildren(childrenList);
childrenList.add(new Property("sequence", "positiveInt", "A service line item.", 0, java.lang.Integer.MAX_VALUE, sequence));
childrenList.add(new Property("focal", "boolean", "The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.", 0, java.lang.Integer.MAX_VALUE, focal));
- childrenList.add(new Property("coverage", "Reference(Coverage)", "Reference to the program or plan identification, underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, coverage));
+ childrenList.add(new Property("coverage[x]", "Identifier|Reference(Coverage)", "Reference to the program or plan identification, underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, coverage));
childrenList.add(new Property("businessArrangement", "string", "The contract number of a business agreement which describes the terms and conditions.", 0, java.lang.Integer.MAX_VALUE, businessArrangement));
- childrenList.add(new Property("relationship", "Coding", "The relationship of the patient to the subscriber.", 0, java.lang.Integer.MAX_VALUE, relationship));
childrenList.add(new Property("preAuthRef", "string", "A list of references from the Insurer to which these services pertain.", 0, java.lang.Integer.MAX_VALUE, preAuthRef));
childrenList.add(new Property("claimResponse", "Reference(ClaimResponse)", "The Coverages adjudication details.", 0, java.lang.Integer.MAX_VALUE, claimResponse));
childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset));
@@ -1210,12 +1515,10 @@ public class Claim extends DomainResource {
this.sequence = castToPositiveInt(value); // PositiveIntType
else if (name.equals("focal"))
this.focal = castToBoolean(value); // BooleanType
- else if (name.equals("coverage"))
- this.coverage = castToReference(value); // Reference
+ else if (name.equals("coverage[x]"))
+ this.coverage = (Type) value; // Type
else if (name.equals("businessArrangement"))
this.businessArrangement = castToString(value); // StringType
- else if (name.equals("relationship"))
- this.relationship = castToCoding(value); // Coding
else if (name.equals("preAuthRef"))
this.getPreAuthRef().add(castToString(value));
else if (name.equals("claimResponse"))
@@ -1234,17 +1537,17 @@ public class Claim extends DomainResource {
else if (name.equals("focal")) {
throw new FHIRException("Cannot call addChild on a primitive type Claim.focal");
}
- else if (name.equals("coverage")) {
+ else if (name.equals("coverageIdentifier")) {
+ this.coverage = new Identifier();
+ return this.coverage;
+ }
+ else if (name.equals("coverageReference")) {
this.coverage = new Reference();
return this.coverage;
}
else if (name.equals("businessArrangement")) {
throw new FHIRException("Cannot call addChild on a primitive type Claim.businessArrangement");
}
- else if (name.equals("relationship")) {
- this.relationship = new Coding();
- return this.relationship;
- }
else if (name.equals("preAuthRef")) {
throw new FHIRException("Cannot call addChild on a primitive type Claim.preAuthRef");
}
@@ -1267,7 +1570,6 @@ public class Claim extends DomainResource {
dst.focal = focal == null ? null : focal.copy();
dst.coverage = coverage == null ? null : coverage.copy();
dst.businessArrangement = businessArrangement == null ? null : businessArrangement.copy();
- dst.relationship = relationship == null ? null : relationship.copy();
if (preAuthRef != null) {
dst.preAuthRef = new ArrayList();
for (StringType i : preAuthRef)
@@ -1286,9 +1588,9 @@ public class Claim extends DomainResource {
return false;
CoverageComponent o = (CoverageComponent) other;
return compareDeep(sequence, o.sequence, true) && compareDeep(focal, o.focal, true) && compareDeep(coverage, o.coverage, true)
- && compareDeep(businessArrangement, o.businessArrangement, true) && compareDeep(relationship, o.relationship, true)
- && compareDeep(preAuthRef, o.preAuthRef, true) && compareDeep(claimResponse, o.claimResponse, true)
- && compareDeep(originalRuleset, o.originalRuleset, true);
+ && compareDeep(businessArrangement, o.businessArrangement, true) && compareDeep(preAuthRef, o.preAuthRef, true)
+ && compareDeep(claimResponse, o.claimResponse, true) && compareDeep(originalRuleset, o.originalRuleset, true)
+ ;
}
@Override
@@ -1303,11 +1605,8 @@ public class Claim extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (focal == null || focal.isEmpty())
- && (coverage == null || coverage.isEmpty()) && (businessArrangement == null || businessArrangement.isEmpty())
- && (relationship == null || relationship.isEmpty()) && (preAuthRef == null || preAuthRef.isEmpty())
- && (claimResponse == null || claimResponse.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( sequence, focal, coverage, businessArrangement
+ , preAuthRef, claimResponse, originalRuleset);
}
public String fhirType() {
@@ -1315,6 +1614,173 @@ public class Claim extends DomainResource {
}
+ }
+
+ @Block()
+ public static class OnsetComponent extends BackboneElement implements IBaseBackboneElement {
+ /**
+ * The start or start and end dates for the treatable condition.
+ */
+ @Child(name = "time", type = {DateType.class, Period.class}, order=1, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Illness, injury or treatable condition date", formalDefinition="The start or start and end dates for the treatable condition." )
+ protected Type time;
+
+ /**
+ * Onset typifications eg. Start of pregnancy, start of illnes, etc.
+ */
+ @Child(name = "type", type = {Coding.class}, order=2, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Onset of what", formalDefinition="Onset typifications eg. Start of pregnancy, start of illnes, etc." )
+ protected Coding type;
+
+ private static final long serialVersionUID = -560173231L;
+
+ /**
+ * Constructor
+ */
+ public OnsetComponent() {
+ super();
+ }
+
+ /**
+ * @return {@link #time} (The start or start and end dates for the treatable condition.)
+ */
+ public Type getTime() {
+ return this.time;
+ }
+
+ /**
+ * @return {@link #time} (The start or start and end dates for the treatable condition.)
+ */
+ public DateType getTimeDateType() throws FHIRException {
+ if (!(this.time instanceof DateType))
+ throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.time.getClass().getName()+" was encountered");
+ return (DateType) this.time;
+ }
+
+ public boolean hasTimeDateType() {
+ return this.time instanceof DateType;
+ }
+
+ /**
+ * @return {@link #time} (The start or start and end dates for the treatable condition.)
+ */
+ public Period getTimePeriod() throws FHIRException {
+ if (!(this.time instanceof Period))
+ throw new FHIRException("Type mismatch: the type Period was expected, but "+this.time.getClass().getName()+" was encountered");
+ return (Period) this.time;
+ }
+
+ public boolean hasTimePeriod() {
+ return this.time instanceof Period;
+ }
+
+ public boolean hasTime() {
+ return this.time != null && !this.time.isEmpty();
+ }
+
+ /**
+ * @param value {@link #time} (The start or start and end dates for the treatable condition.)
+ */
+ public OnsetComponent setTime(Type value) {
+ this.time = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #type} (Onset typifications eg. Start of pregnancy, start of illnes, etc.)
+ */
+ public Coding getType() {
+ if (this.type == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create OnsetComponent.type");
+ else if (Configuration.doAutoCreate())
+ this.type = new Coding(); // cc
+ return this.type;
+ }
+
+ public boolean hasType() {
+ return this.type != null && !this.type.isEmpty();
+ }
+
+ /**
+ * @param value {@link #type} (Onset typifications eg. Start of pregnancy, start of illnes, etc.)
+ */
+ public OnsetComponent setType(Coding value) {
+ this.type = value;
+ return this;
+ }
+
+ protected void listChildren(List childrenList) {
+ super.listChildren(childrenList);
+ childrenList.add(new Property("time[x]", "date|Period", "The start or start and end dates for the treatable condition.", 0, java.lang.Integer.MAX_VALUE, time));
+ childrenList.add(new Property("type", "Coding", "Onset typifications eg. Start of pregnancy, start of illnes, etc.", 0, java.lang.Integer.MAX_VALUE, type));
+ }
+
+ @Override
+ public void setProperty(String name, Base value) throws FHIRException {
+ if (name.equals("time[x]"))
+ this.time = (Type) value; // Type
+ else if (name.equals("type"))
+ this.type = castToCoding(value); // Coding
+ else
+ super.setProperty(name, value);
+ }
+
+ @Override
+ public Base addChild(String name) throws FHIRException {
+ if (name.equals("timeDate")) {
+ this.time = new DateType();
+ return this.time;
+ }
+ else if (name.equals("timePeriod")) {
+ this.time = new Period();
+ return this.time;
+ }
+ else if (name.equals("type")) {
+ this.type = new Coding();
+ return this.type;
+ }
+ else
+ return super.addChild(name);
+ }
+
+ public OnsetComponent copy() {
+ OnsetComponent dst = new OnsetComponent();
+ copyValues(dst);
+ dst.time = time == null ? null : time.copy();
+ dst.type = type == null ? null : type.copy();
+ return dst;
+ }
+
+ @Override
+ public boolean equalsDeep(Base other) {
+ if (!super.equalsDeep(other))
+ return false;
+ if (!(other instanceof OnsetComponent))
+ return false;
+ OnsetComponent o = (OnsetComponent) other;
+ return compareDeep(time, o.time, true) && compareDeep(type, o.type, true);
+ }
+
+ @Override
+ public boolean equalsShallow(Base other) {
+ if (!super.equalsShallow(other))
+ return false;
+ if (!(other instanceof OnsetComponent))
+ return false;
+ OnsetComponent o = (OnsetComponent) other;
+ return true;
+ }
+
+ public boolean isEmpty() {
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( time, type);
+ }
+
+ public String fhirType() {
+ return "Claim.onset";
+
+ }
+
}
@Block()
@@ -1336,121 +1802,149 @@ public class Claim extends DomainResource {
/**
* The practitioner who is responsible for the services rendered to the patient.
*/
- @Child(name = "provider", type = {Practitioner.class}, order=3, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "provider", type = {Identifier.class, Practitioner.class}, order=3, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." )
- protected Reference provider;
+ protected Type provider;
/**
- * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.)
+ * The practitioner who is supervising the work of the servicing provider(s).
*/
- protected Practitioner providerTarget;
+ @Child(name = "supervisor", type = {Identifier.class, Practitioner.class}, order=4, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Supervising Practitioner", formalDefinition="The practitioner who is supervising the work of the servicing provider(s)." )
+ protected Type supervisor;
+
+ /**
+ * The qualification which is applicable for this service.
+ */
+ @Child(name = "providerQualification", type = {Coding.class}, order=5, min=0, max=1, modifier=false, summary=true)
+ @Description(shortDefinition="Type, classification or Specialization", formalDefinition="The qualification which is applicable for this service." )
+ protected Coding providerQualification;
/**
* Diagnosis applicable for this service or product line.
*/
- @Child(name = "diagnosisLinkId", type = {PositiveIntType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
- @Description(shortDefinition="Diagnosis Link", formalDefinition="Diagnosis applicable for this service or product line." )
+ @Child(name = "diagnosisLinkId", type = {PositiveIntType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Description(shortDefinition="Applicable diagnoses", formalDefinition="Diagnosis applicable for this service or product line." )
protected List diagnosisLinkId;
/**
* If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.
*/
- @Child(name = "service", type = {Coding.class}, order=5, min=1, max=1, modifier=false, summary=true)
+ @Child(name = "service", type = {Coding.class}, order=7, min=1, max=1, modifier=false, summary=true)
@Description(shortDefinition="Item Code", formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied." )
protected Coding service;
+ /**
+ * Unusual circumstances which may influence adjudication.
+ */
+ @Child(name = "serviceModifier", type = {Coding.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Description(shortDefinition="Service/Product modifiers", formalDefinition="Unusual circumstances which may influence adjudication." )
+ protected List serviceModifier;
+
+ /**
+ * Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.
+ */
+ @Child(name = "modifier", type = {Coding.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Description(shortDefinition="Service/Product billing modifiers", formalDefinition="Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen." )
+ protected List modifier;
+
+ /**
+ * For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program.
+ */
+ @Child(name = "programCode", type = {Coding.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Description(shortDefinition="Program specific reason for item inclusion", formalDefinition="For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program." )
+ protected List programCode;
+
/**
* The date or dates when the enclosed suite of services were performed or completed.
*/
- @Child(name = "serviced", type = {DateType.class, Period.class}, order=6, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "serviced", type = {DateType.class, Period.class}, order=11, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Date or dates of Service", formalDefinition="The date or dates when the enclosed suite of services were performed or completed." )
protected Type serviced;
/**
* Where the service was provided.
*/
- @Child(name = "place", type = {Coding.class}, order=7, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "place", type = {Coding.class}, order=12, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Place of service", formalDefinition="Where the service was provided." )
protected Coding place;
/**
* The number of repetitions of a service or product.
*/
- @Child(name = "quantity", type = {SimpleQuantity.class}, order=8, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "quantity", type = {SimpleQuantity.class}, order=13, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." )
protected SimpleQuantity quantity;
/**
* If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
*/
- @Child(name = "unitPrice", type = {Money.class}, order=9, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "unitPrice", type = {Money.class}, order=14, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Fee, charge or cost per point", formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group." )
protected Money unitPrice;
/**
* A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
*/
- @Child(name = "factor", type = {DecimalType.class}, order=10, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "factor", type = {DecimalType.class}, order=15, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." )
protected DecimalType factor;
/**
* An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
*/
- @Child(name = "points", type = {DecimalType.class}, order=11, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "points", type = {DecimalType.class}, order=16, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." )
protected DecimalType points;
/**
* The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
*/
- @Child(name = "net", type = {Money.class}, order=12, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "net", type = {Money.class}, order=17, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Total item cost", formalDefinition="The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." )
protected Money net;
/**
* List of Unique Device Identifiers associated with this line item.
*/
- @Child(name = "udi", type = {Coding.class}, order=13, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "udi", type = {Device.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
@Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." )
- protected Coding udi;
+ protected List udi;
+ /**
+ * The actual objects that are the target of the reference (List of Unique Device Identifiers associated with this line item.)
+ */
+ protected List udiTarget;
+
/**
* Physical service site on the patient (limb, tooth, etc).
*/
- @Child(name = "bodySite", type = {Coding.class}, order=14, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "bodySite", type = {Coding.class}, order=19, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Service Location", formalDefinition="Physical service site on the patient (limb, tooth, etc)." )
protected Coding bodySite;
/**
* A region or surface of the site, eg. limb region or tooth surface(s).
*/
- @Child(name = "subSite", type = {Coding.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Child(name = "subSite", type = {Coding.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
@Description(shortDefinition="Service Sub-location", formalDefinition="A region or surface of the site, eg. limb region or tooth surface(s)." )
protected List subSite;
- /**
- * Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.
- */
- @Child(name = "modifier", type = {Coding.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
- @Description(shortDefinition="Service/Product billing modifiers", formalDefinition="Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen." )
- protected List modifier;
-
/**
* Second tier of goods and services.
*/
- @Child(name = "detail", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Child(name = "detail", type = {}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
@Description(shortDefinition="Additional items", formalDefinition="Second tier of goods and services." )
protected List detail;
/**
* The materials and placement date of prior fixed prosthesis.
*/
- @Child(name = "prosthesis", type = {}, order=18, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "prosthesis", type = {}, order=22, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Prosthetic details", formalDefinition="The materials and placement date of prior fixed prosthesis." )
protected ProsthesisComponent prosthesis;
- private static final long serialVersionUID = -1914609123L;
+ private static final long serialVersionUID = 1007480127L;
/**
* Constructor
@@ -1541,15 +2035,36 @@ public class Claim extends DomainResource {
/**
* @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
*/
- public Reference getProvider() {
- if (this.provider == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create ItemsComponent.provider");
- else if (Configuration.doAutoCreate())
- this.provider = new Reference(); // cc
+ public Type getProvider() {
return this.provider;
}
+ /**
+ * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
+ */
+ public Identifier getProviderIdentifier() throws FHIRException {
+ if (!(this.provider instanceof Identifier))
+ throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.provider.getClass().getName()+" was encountered");
+ return (Identifier) this.provider;
+ }
+
+ public boolean hasProviderIdentifier() {
+ return this.provider instanceof Identifier;
+ }
+
+ /**
+ * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
+ */
+ public Reference getProviderReference() throws FHIRException {
+ if (!(this.provider instanceof Reference))
+ throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.provider.getClass().getName()+" was encountered");
+ return (Reference) this.provider;
+ }
+
+ public boolean hasProviderReference() {
+ return this.provider instanceof Reference;
+ }
+
public boolean hasProvider() {
return this.provider != null && !this.provider.isEmpty();
}
@@ -1557,28 +2072,77 @@ public class Claim extends DomainResource {
/**
* @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
*/
- public ItemsComponent setProvider(Reference value) {
+ public ItemsComponent setProvider(Type value) {
this.provider = value;
return this;
}
/**
- * @return {@link #provider} 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 practitioner who is responsible for the services rendered to the patient.)
+ * @return {@link #supervisor} (The practitioner who is supervising the work of the servicing provider(s).)
*/
- public Practitioner getProviderTarget() {
- if (this.providerTarget == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create ItemsComponent.provider");
- else if (Configuration.doAutoCreate())
- this.providerTarget = new Practitioner(); // aa
- return this.providerTarget;
+ public Type getSupervisor() {
+ return this.supervisor;
}
/**
- * @param value {@link #provider} 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 practitioner who is responsible for the services rendered to the patient.)
+ * @return {@link #supervisor} (The practitioner who is supervising the work of the servicing provider(s).)
*/
- public ItemsComponent setProviderTarget(Practitioner value) {
- this.providerTarget = value;
+ public Identifier getSupervisorIdentifier() throws FHIRException {
+ if (!(this.supervisor instanceof Identifier))
+ throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.supervisor.getClass().getName()+" was encountered");
+ return (Identifier) this.supervisor;
+ }
+
+ public boolean hasSupervisorIdentifier() {
+ return this.supervisor instanceof Identifier;
+ }
+
+ /**
+ * @return {@link #supervisor} (The practitioner who is supervising the work of the servicing provider(s).)
+ */
+ public Reference getSupervisorReference() throws FHIRException {
+ if (!(this.supervisor instanceof Reference))
+ throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.supervisor.getClass().getName()+" was encountered");
+ return (Reference) this.supervisor;
+ }
+
+ public boolean hasSupervisorReference() {
+ return this.supervisor instanceof Reference;
+ }
+
+ public boolean hasSupervisor() {
+ return this.supervisor != null && !this.supervisor.isEmpty();
+ }
+
+ /**
+ * @param value {@link #supervisor} (The practitioner who is supervising the work of the servicing provider(s).)
+ */
+ public ItemsComponent setSupervisor(Type value) {
+ this.supervisor = value;
+ return this;
+ }
+
+ /**
+ * @return {@link #providerQualification} (The qualification which is applicable for this service.)
+ */
+ public Coding getProviderQualification() {
+ if (this.providerQualification == null)
+ if (Configuration.errorOnAutoCreate())
+ throw new Error("Attempt to auto-create ItemsComponent.providerQualification");
+ else if (Configuration.doAutoCreate())
+ this.providerQualification = new Coding(); // cc
+ return this.providerQualification;
+ }
+
+ public boolean hasProviderQualification() {
+ return this.providerQualification != null && !this.providerQualification.isEmpty();
+ }
+
+ /**
+ * @param value {@link #providerQualification} (The qualification which is applicable for this service.)
+ */
+ public ItemsComponent setProviderQualification(Coding value) {
+ this.providerQualification = value;
return this;
}
@@ -1660,6 +2224,126 @@ public class Claim extends DomainResource {
return this;
}
+ /**
+ * @return {@link #serviceModifier} (Unusual circumstances which may influence adjudication.)
+ */
+ public List getServiceModifier() {
+ if (this.serviceModifier == null)
+ this.serviceModifier = new ArrayList();
+ return this.serviceModifier;
+ }
+
+ public boolean hasServiceModifier() {
+ if (this.serviceModifier == null)
+ return false;
+ for (Coding item : this.serviceModifier)
+ if (!item.isEmpty())
+ return true;
+ return false;
+ }
+
+ /**
+ * @return {@link #serviceModifier} (Unusual circumstances which may influence adjudication.)
+ */
+ // syntactic sugar
+ public Coding addServiceModifier() { //3
+ Coding t = new Coding();
+ if (this.serviceModifier == null)
+ this.serviceModifier = new ArrayList();
+ this.serviceModifier.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public ItemsComponent addServiceModifier(Coding t) { //3
+ if (t == null)
+ return this;
+ if (this.serviceModifier == null)
+ this.serviceModifier = new ArrayList();
+ this.serviceModifier.add(t);
+ return this;
+ }
+
+ /**
+ * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.)
+ */
+ public List getModifier() {
+ if (this.modifier == null)
+ this.modifier = new ArrayList();
+ return this.modifier;
+ }
+
+ public boolean hasModifier() {
+ if (this.modifier == null)
+ return false;
+ for (Coding item : this.modifier)
+ if (!item.isEmpty())
+ return true;
+ return false;
+ }
+
+ /**
+ * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.)
+ */
+ // syntactic sugar
+ public Coding addModifier() { //3
+ Coding t = new Coding();
+ if (this.modifier == null)
+ this.modifier = new ArrayList();
+ this.modifier.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public ItemsComponent addModifier(Coding t) { //3
+ if (t == null)
+ return this;
+ if (this.modifier == null)
+ this.modifier = new ArrayList();
+ this.modifier.add(t);
+ return this;
+ }
+
+ /**
+ * @return {@link #programCode} (For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program.)
+ */
+ public List getProgramCode() {
+ if (this.programCode == null)
+ this.programCode = new ArrayList();
+ return this.programCode;
+ }
+
+ public boolean hasProgramCode() {
+ if (this.programCode == null)
+ return false;
+ for (Coding item : this.programCode)
+ if (!item.isEmpty())
+ return true;
+ return false;
+ }
+
+ /**
+ * @return {@link #programCode} (For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program.)
+ */
+ // syntactic sugar
+ public Coding addProgramCode() { //3
+ Coding t = new Coding();
+ if (this.programCode == null)
+ this.programCode = new ArrayList();
+ this.programCode.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public ItemsComponent addProgramCode(Coding t) { //3
+ if (t == null)
+ return this;
+ if (this.programCode == null)
+ this.programCode = new ArrayList();
+ this.programCode.add(t);
+ return this;
+ }
+
/**
* @return {@link #serviced} (The date or dates when the enclosed suite of services were performed or completed.)
*/
@@ -1938,27 +2622,64 @@ public class Claim extends DomainResource {
/**
* @return {@link #udi} (List of Unique Device Identifiers associated with this line item.)
*/
- public Coding getUdi() {
+ public List getUdi() {
if (this.udi == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create ItemsComponent.udi");
- else if (Configuration.doAutoCreate())
- this.udi = new Coding(); // cc
+ this.udi = new ArrayList();
return this.udi;
}
public boolean hasUdi() {
- return this.udi != null && !this.udi.isEmpty();
+ if (this.udi == null)
+ return false;
+ for (Reference item : this.udi)
+ if (!item.isEmpty())
+ return true;
+ return false;
}
/**
- * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.)
+ * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.)
*/
- public ItemsComponent setUdi(Coding value) {
- this.udi = value;
+ // syntactic sugar
+ public Reference addUdi() { //3
+ Reference t = new Reference();
+ if (this.udi == null)
+ this.udi = new ArrayList();
+ this.udi.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public ItemsComponent addUdi(Reference t) { //3
+ if (t == null)
+ return this;
+ if (this.udi == null)
+ this.udi = new ArrayList();
+ this.udi.add(t);
return this;
}
+ /**
+ * @return {@link #udi} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. List of Unique Device Identifiers associated with this line item.)
+ */
+ public List getUdiTarget() {
+ if (this.udiTarget == null)
+ this.udiTarget = new ArrayList();
+ return this.udiTarget;
+ }
+
+ // syntactic sugar
+ /**
+ * @return {@link #udi} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. List of Unique Device Identifiers associated with this line item.)
+ */
+ public Device addUdiTarget() {
+ Device r = new Device();
+ if (this.udiTarget == null)
+ this.udiTarget = new ArrayList();
+ this.udiTarget.add(r);
+ return r;
+ }
+
/**
* @return {@link #bodySite} (Physical service site on the patient (limb, tooth, etc).)
*/
@@ -2023,46 +2744,6 @@ public class Claim extends DomainResource {
return this;
}
- /**
- * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.)
- */
- public List getModifier() {
- if (this.modifier == null)
- this.modifier = new ArrayList();
- return this.modifier;
- }
-
- public boolean hasModifier() {
- if (this.modifier == null)
- return false;
- for (Coding item : this.modifier)
- if (!item.isEmpty())
- return true;
- return false;
- }
-
- /**
- * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.)
- */
- // syntactic sugar
- public Coding addModifier() { //3
- Coding t = new Coding();
- if (this.modifier == null)
- this.modifier = new ArrayList();
- this.modifier.add(t);
- return t;
- }
-
- // syntactic sugar
- public ItemsComponent addModifier(Coding t) { //3
- if (t == null)
- return this;
- if (this.modifier == null)
- this.modifier = new ArrayList();
- this.modifier.add(t);
- return this;
- }
-
/**
* @return {@link #detail} (Second tier of goods and services.)
*/
@@ -2131,9 +2812,14 @@ public class Claim extends DomainResource {
super.listChildren(childrenList);
childrenList.add(new Property("sequence", "positiveInt", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence));
childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type));
- childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider));
+ childrenList.add(new Property("provider[x]", "Identifier|Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider));
+ childrenList.add(new Property("supervisor[x]", "Identifier|Reference(Practitioner)", "The practitioner who is supervising the work of the servicing provider(s).", 0, java.lang.Integer.MAX_VALUE, supervisor));
+ childrenList.add(new Property("providerQualification", "Coding", "The qualification which is applicable for this service.", 0, java.lang.Integer.MAX_VALUE, providerQualification));
childrenList.add(new Property("diagnosisLinkId", "positiveInt", "Diagnosis applicable for this service or product line.", 0, java.lang.Integer.MAX_VALUE, diagnosisLinkId));
childrenList.add(new Property("service", "Coding", "If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service));
+ childrenList.add(new Property("serviceModifier", "Coding", "Unusual circumstances which may influence adjudication.", 0, java.lang.Integer.MAX_VALUE, serviceModifier));
+ childrenList.add(new Property("modifier", "Coding", "Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.", 0, java.lang.Integer.MAX_VALUE, modifier));
+ childrenList.add(new Property("programCode", "Coding", "For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program.", 0, java.lang.Integer.MAX_VALUE, programCode));
childrenList.add(new Property("serviced[x]", "date|Period", "The date or dates when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, serviced));
childrenList.add(new Property("place", "Coding", "Where the service was provided.", 0, java.lang.Integer.MAX_VALUE, place));
childrenList.add(new Property("quantity", "SimpleQuantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity));
@@ -2141,10 +2827,9 @@ public class Claim extends DomainResource {
childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor));
childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points));
childrenList.add(new Property("net", "Money", "The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net));
- childrenList.add(new Property("udi", "Coding", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi));
+ childrenList.add(new Property("udi", "Reference(Device)", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi));
childrenList.add(new Property("bodySite", "Coding", "Physical service site on the patient (limb, tooth, etc).", 0, java.lang.Integer.MAX_VALUE, bodySite));
childrenList.add(new Property("subSite", "Coding", "A region or surface of the site, eg. limb region or tooth surface(s).", 0, java.lang.Integer.MAX_VALUE, subSite));
- childrenList.add(new Property("modifier", "Coding", "Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.", 0, java.lang.Integer.MAX_VALUE, modifier));
childrenList.add(new Property("detail", "", "Second tier of goods and services.", 0, java.lang.Integer.MAX_VALUE, detail));
childrenList.add(new Property("prosthesis", "", "The materials and placement date of prior fixed prosthesis.", 0, java.lang.Integer.MAX_VALUE, prosthesis));
}
@@ -2155,12 +2840,22 @@ public class Claim extends DomainResource {
this.sequence = castToPositiveInt(value); // PositiveIntType
else if (name.equals("type"))
this.type = castToCoding(value); // Coding
- else if (name.equals("provider"))
- this.provider = castToReference(value); // Reference
+ else if (name.equals("provider[x]"))
+ this.provider = (Type) value; // Type
+ else if (name.equals("supervisor[x]"))
+ this.supervisor = (Type) value; // Type
+ else if (name.equals("providerQualification"))
+ this.providerQualification = castToCoding(value); // Coding
else if (name.equals("diagnosisLinkId"))
this.getDiagnosisLinkId().add(castToPositiveInt(value));
else if (name.equals("service"))
this.service = castToCoding(value); // Coding
+ else if (name.equals("serviceModifier"))
+ this.getServiceModifier().add(castToCoding(value));
+ else if (name.equals("modifier"))
+ this.getModifier().add(castToCoding(value));
+ else if (name.equals("programCode"))
+ this.getProgramCode().add(castToCoding(value));
else if (name.equals("serviced[x]"))
this.serviced = (Type) value; // Type
else if (name.equals("place"))
@@ -2176,13 +2871,11 @@ public class Claim extends DomainResource {
else if (name.equals("net"))
this.net = castToMoney(value); // Money
else if (name.equals("udi"))
- this.udi = castToCoding(value); // Coding
+ this.getUdi().add(castToReference(value));
else if (name.equals("bodySite"))
this.bodySite = castToCoding(value); // Coding
else if (name.equals("subSite"))
this.getSubSite().add(castToCoding(value));
- else if (name.equals("modifier"))
- this.getModifier().add(castToCoding(value));
else if (name.equals("detail"))
this.getDetail().add((DetailComponent) value);
else if (name.equals("prosthesis"))
@@ -2200,10 +2893,26 @@ public class Claim extends DomainResource {
this.type = new Coding();
return this.type;
}
- else if (name.equals("provider")) {
+ else if (name.equals("providerIdentifier")) {
+ this.provider = new Identifier();
+ return this.provider;
+ }
+ else if (name.equals("providerReference")) {
this.provider = new Reference();
return this.provider;
}
+ else if (name.equals("supervisorIdentifier")) {
+ this.supervisor = new Identifier();
+ return this.supervisor;
+ }
+ else if (name.equals("supervisorReference")) {
+ this.supervisor = new Reference();
+ return this.supervisor;
+ }
+ else if (name.equals("providerQualification")) {
+ this.providerQualification = new Coding();
+ return this.providerQualification;
+ }
else if (name.equals("diagnosisLinkId")) {
throw new FHIRException("Cannot call addChild on a primitive type Claim.diagnosisLinkId");
}
@@ -2211,6 +2920,15 @@ public class Claim extends DomainResource {
this.service = new Coding();
return this.service;
}
+ else if (name.equals("serviceModifier")) {
+ return addServiceModifier();
+ }
+ else if (name.equals("modifier")) {
+ return addModifier();
+ }
+ else if (name.equals("programCode")) {
+ return addProgramCode();
+ }
else if (name.equals("servicedDate")) {
this.serviced = new DateType();
return this.serviced;
@@ -2242,8 +2960,7 @@ public class Claim extends DomainResource {
return this.net;
}
else if (name.equals("udi")) {
- this.udi = new Coding();
- return this.udi;
+ return addUdi();
}
else if (name.equals("bodySite")) {
this.bodySite = new Coding();
@@ -2252,9 +2969,6 @@ public class Claim extends DomainResource {
else if (name.equals("subSite")) {
return addSubSite();
}
- else if (name.equals("modifier")) {
- return addModifier();
- }
else if (name.equals("detail")) {
return addDetail();
}
@@ -2272,12 +2986,29 @@ public class Claim extends DomainResource {
dst.sequence = sequence == null ? null : sequence.copy();
dst.type = type == null ? null : type.copy();
dst.provider = provider == null ? null : provider.copy();
+ dst.supervisor = supervisor == null ? null : supervisor.copy();
+ dst.providerQualification = providerQualification == null ? null : providerQualification.copy();
if (diagnosisLinkId != null) {
dst.diagnosisLinkId = new ArrayList();
for (PositiveIntType i : diagnosisLinkId)
dst.diagnosisLinkId.add(i.copy());
};
dst.service = service == null ? null : service.copy();
+ if (serviceModifier != null) {
+ dst.serviceModifier = new ArrayList();
+ for (Coding i : serviceModifier)
+ dst.serviceModifier.add(i.copy());
+ };
+ if (modifier != null) {
+ dst.modifier = new ArrayList();
+ for (Coding i : modifier)
+ dst.modifier.add(i.copy());
+ };
+ if (programCode != null) {
+ dst.programCode = new ArrayList();
+ for (Coding i : programCode)
+ dst.programCode.add(i.copy());
+ };
dst.serviced = serviced == null ? null : serviced.copy();
dst.place = place == null ? null : place.copy();
dst.quantity = quantity == null ? null : quantity.copy();
@@ -2285,18 +3016,17 @@ public class Claim extends DomainResource {
dst.factor = factor == null ? null : factor.copy();
dst.points = points == null ? null : points.copy();
dst.net = net == null ? null : net.copy();
- dst.udi = udi == null ? null : udi.copy();
+ if (udi != null) {
+ dst.udi = new ArrayList();
+ for (Reference i : udi)
+ dst.udi.add(i.copy());
+ };
dst.bodySite = bodySite == null ? null : bodySite.copy();
if (subSite != null) {
dst.subSite = new ArrayList();
for (Coding i : subSite)
dst.subSite.add(i.copy());
};
- if (modifier != null) {
- dst.modifier = new ArrayList();
- for (Coding i : modifier)
- dst.modifier.add(i.copy());
- };
if (detail != null) {
dst.detail = new ArrayList();
for (DetailComponent i : detail)
@@ -2314,11 +3044,13 @@ public class Claim extends DomainResource {
return false;
ItemsComponent o = (ItemsComponent) other;
return compareDeep(sequence, o.sequence, true) && compareDeep(type, o.type, true) && compareDeep(provider, o.provider, true)
+ && compareDeep(supervisor, o.supervisor, true) && compareDeep(providerQualification, o.providerQualification, true)
&& compareDeep(diagnosisLinkId, o.diagnosisLinkId, true) && compareDeep(service, o.service, true)
- && compareDeep(serviced, o.serviced, true) && compareDeep(place, o.place, true) && compareDeep(quantity, o.quantity, true)
- && compareDeep(unitPrice, o.unitPrice, true) && compareDeep(factor, o.factor, true) && compareDeep(points, o.points, true)
- && compareDeep(net, o.net, true) && compareDeep(udi, o.udi, true) && compareDeep(bodySite, o.bodySite, true)
- && compareDeep(subSite, o.subSite, true) && compareDeep(modifier, o.modifier, true) && compareDeep(detail, o.detail, true)
+ && compareDeep(serviceModifier, o.serviceModifier, true) && compareDeep(modifier, o.modifier, true)
+ && compareDeep(programCode, o.programCode, true) && compareDeep(serviced, o.serviced, true) && compareDeep(place, o.place, true)
+ && compareDeep(quantity, o.quantity, true) && compareDeep(unitPrice, o.unitPrice, true) && compareDeep(factor, o.factor, true)
+ && compareDeep(points, o.points, true) && compareDeep(net, o.net, true) && compareDeep(udi, o.udi, true)
+ && compareDeep(bodySite, o.bodySite, true) && compareDeep(subSite, o.subSite, true) && compareDeep(detail, o.detail, true)
&& compareDeep(prosthesis, o.prosthesis, true);
}
@@ -2334,14 +3066,10 @@ public class Claim extends DomainResource {
}
public boolean isEmpty() {
- return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (type == null || type.isEmpty())
- && (provider == null || provider.isEmpty()) && (diagnosisLinkId == null || diagnosisLinkId.isEmpty())
- && (service == null || service.isEmpty()) && (serviced == null || serviced.isEmpty()) && (place == null || place.isEmpty())
- && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty())
- && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty())
- && (udi == null || udi.isEmpty()) && (bodySite == null || bodySite.isEmpty()) && (subSite == null || subSite.isEmpty())
- && (modifier == null || modifier.isEmpty()) && (detail == null || detail.isEmpty()) && (prosthesis == null || prosthesis.isEmpty())
- ;
+ return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( sequence, type, provider, supervisor
+ , providerQualification, diagnosisLinkId, service, serviceModifier, modifier, programCode
+ , serviced, place, quantity, unitPrice, factor, points, net, udi, bodySite, subSite
+ , detail, prosthesis);
}
public String fhirType() {
@@ -2374,56 +3102,68 @@ public class Claim extends DomainResource {
@Description(shortDefinition="Additional item codes", formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied." )
protected Coding service;
+ /**
+ * For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program.
+ */
+ @Child(name = "programCode", type = {Coding.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Description(shortDefinition="Program specific reason for item inclusion", formalDefinition="For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program." )
+ protected List programCode;
+
/**
* The number of repetitions of a service or product.
*/
- @Child(name = "quantity", type = {SimpleQuantity.class}, order=4, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "quantity", type = {SimpleQuantity.class}, order=5, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." )
protected SimpleQuantity quantity;
/**
* If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
*/
- @Child(name = "unitPrice", type = {Money.class}, order=5, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "unitPrice", type = {Money.class}, order=6, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Fee, charge or cost per point", formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group." )
protected Money unitPrice;
/**
* A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
*/
- @Child(name = "factor", type = {DecimalType.class}, order=6, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "factor", type = {DecimalType.class}, order=7, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." )
protected DecimalType factor;
/**
* An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
*/
- @Child(name = "points", type = {DecimalType.class}, order=7, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "points", type = {DecimalType.class}, order=8, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." )
protected DecimalType points;
/**
* The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
*/
- @Child(name = "net", type = {Money.class}, order=8, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "net", type = {Money.class}, order=9, min=0, max=1, modifier=false, summary=true)
@Description(shortDefinition="Total additional item cost", formalDefinition="The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." )
protected Money net;
/**
* List of Unique Device Identifiers associated with this line item.
*/
- @Child(name = "udi", type = {Coding.class}, order=9, min=0, max=1, modifier=false, summary=true)
+ @Child(name = "udi", type = {Device.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
@Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." )
- protected Coding udi;
+ protected List udi;
+ /**
+ * The actual objects that are the target of the reference (List of Unique Device Identifiers associated with this line item.)
+ */
+ protected List udiTarget;
+
/**
* Third tier of goods and services.
*/
- @Child(name = "subDetail", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
+ @Child(name = "subDetail", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
@Description(shortDefinition="Additional items", formalDefinition="Third tier of goods and services." )
protected List subDetail;
- private static final long serialVersionUID = 5768017L;
+ private static final long serialVersionUID = -1099698352L;
/**
* Constructor
@@ -2535,6 +3275,46 @@ public class Claim extends DomainResource {
return this;
}
+ /**
+ * @return {@link #programCode} (For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program.)
+ */
+ public List getProgramCode() {
+ if (this.programCode == null)
+ this.programCode = new ArrayList();
+ return this.programCode;
+ }
+
+ public boolean hasProgramCode() {
+ if (this.programCode == null)
+ return false;
+ for (Coding item : this.programCode)
+ if (!item.isEmpty())
+ return true;
+ return false;
+ }
+
+ /**
+ * @return {@link #programCode} (For programs which require reson codes for the inclusion, covering, of this billed item under the program or sub-program.)
+ */
+ // syntactic sugar
+ public Coding addProgramCode() { //3
+ Coding t = new Coding();
+ if (this.programCode == null)
+ this.programCode = new ArrayList();
+ this.programCode.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public DetailComponent addProgramCode(Coding t) { //3
+ if (t == null)
+ return this;
+ if (this.programCode == null)
+ this.programCode = new ArrayList();
+ this.programCode.add(t);
+ return this;
+ }
+
/**
* @return {@link #quantity} (The number of repetitions of a service or product.)
*/
@@ -2744,27 +3524,64 @@ public class Claim extends DomainResource {
/**
* @return {@link #udi} (List of Unique Device Identifiers associated with this line item.)
*/
- public Coding getUdi() {
+ public List getUdi() {
if (this.udi == null)
- if (Configuration.errorOnAutoCreate())
- throw new Error("Attempt to auto-create DetailComponent.udi");
- else if (Configuration.doAutoCreate())
- this.udi = new Coding(); // cc
+ this.udi = new ArrayList();
return this.udi;
}
public boolean hasUdi() {
- return this.udi != null && !this.udi.isEmpty();
+ if (this.udi == null)
+ return false;
+ for (Reference item : this.udi)
+ if (!item.isEmpty())
+ return true;
+ return false;
}
/**
- * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.)
+ * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.)
*/
- public DetailComponent setUdi(Coding value) {
- this.udi = value;
+ // syntactic sugar
+ public Reference addUdi() { //3
+ Reference t = new Reference();
+ if (this.udi == null)
+ this.udi = new ArrayList();
+ this.udi.add(t);
+ return t;
+ }
+
+ // syntactic sugar
+ public DetailComponent addUdi(Reference t) { //3
+ if (t == null)
+ return this;
+ if (this.udi == null)
+ this.udi = new ArrayList();
+ this.udi.add(t);
return this;
}
+ /**
+ * @return {@link #udi} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. List of Unique Device Identifiers associated with this line item.)
+ */
+ public List