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 Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1 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.ChildOrder; 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.exceptions.FHIRException; /** * Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker. */ @ResourceDef(name="DeviceRequest", profile="http://hl7.org/fhir/Profile/DeviceRequest") public class DeviceRequest extends DomainResource { public enum DeviceRequestStatus { /** * The request has been created but is not yet complete or ready for action */ DRAFT, /** * The request is ready to be acted upon */ ACTIVE, /** * The authorization/request to act has been temporarily withdrawn but is expected to resume in the future */ SUSPENDED, /** * The authorization/request to act has been terminated prior to the full completion of the intended actions. No further activity should occur. */ CANCELLED, /** * Activity against the request has been sufficiently completed to the satisfaction of the requester */ COMPLETED, /** * This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be "cancelled" rather than "entered-in-error".) */ ENTEREDINERROR, /** * The authoring system does not know which of the status values currently applies for this request. Note: This concept is not to be used for "other" . One of the listed statuses is presumed to apply, but the system creating the request doesn't know. */ UNKNOWN, /** * added to help the parsers with the generic types */ NULL; public static DeviceRequestStatus fromCode(String codeString) throws FHIRException { if (codeString == null || "".equals(codeString)) return null; if ("draft".equals(codeString)) return DRAFT; if ("active".equals(codeString)) return ACTIVE; if ("suspended".equals(codeString)) return SUSPENDED; if ("cancelled".equals(codeString)) return CANCELLED; if ("completed".equals(codeString)) return COMPLETED; if ("entered-in-error".equals(codeString)) return ENTEREDINERROR; if ("unknown".equals(codeString)) return UNKNOWN; if (Configuration.isAcceptInvalidEnums()) return null; else throw new FHIRException("Unknown DeviceRequestStatus code '"+codeString+"'"); } public String toCode() { switch (this) { case DRAFT: return "draft"; case ACTIVE: return "active"; case SUSPENDED: return "suspended"; case CANCELLED: return "cancelled"; case COMPLETED: return "completed"; case ENTEREDINERROR: return "entered-in-error"; case UNKNOWN: return "unknown"; default: return "?"; } } public String getSystem() { switch (this) { case DRAFT: return "http://hl7.org/fhir/request-status"; case ACTIVE: return "http://hl7.org/fhir/request-status"; case SUSPENDED: return "http://hl7.org/fhir/request-status"; case CANCELLED: return "http://hl7.org/fhir/request-status"; case COMPLETED: return "http://hl7.org/fhir/request-status"; case ENTEREDINERROR: return "http://hl7.org/fhir/request-status"; case UNKNOWN: return "http://hl7.org/fhir/request-status"; default: return "?"; } } public String getDefinition() { switch (this) { case DRAFT: return "The request has been created but is not yet complete or ready for action"; case ACTIVE: return "The request is ready to be acted upon"; case SUSPENDED: return "The authorization/request to act has been temporarily withdrawn but is expected to resume in the future"; case CANCELLED: return "The authorization/request to act has been terminated prior to the full completion of the intended actions. No further activity should occur."; case COMPLETED: return "Activity against the request has been sufficiently completed to the satisfaction of the requester"; case ENTEREDINERROR: return "This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be \"cancelled\" rather than \"entered-in-error\".)"; case UNKNOWN: return "The authoring system does not know which of the status values currently applies for this request. Note: This concept is not to be used for \"other\" . One of the listed statuses is presumed to apply, but the system creating the request doesn't know."; default: return "?"; } } public String getDisplay() { switch (this) { case DRAFT: return "Draft"; case ACTIVE: return "Active"; case SUSPENDED: return "Suspended"; case CANCELLED: return "Cancelled"; case COMPLETED: return "Completed"; case ENTEREDINERROR: return "Entered in Error"; case UNKNOWN: return "Unknown"; default: return "?"; } } } public static class DeviceRequestStatusEnumFactory implements EnumFactory<DeviceRequestStatus> { public DeviceRequestStatus fromCode(String codeString) throws IllegalArgumentException { if (codeString == null || "".equals(codeString)) if (codeString == null || "".equals(codeString)) return null; if ("draft".equals(codeString)) return DeviceRequestStatus.DRAFT; if ("active".equals(codeString)) return DeviceRequestStatus.ACTIVE; if ("suspended".equals(codeString)) return DeviceRequestStatus.SUSPENDED; if ("cancelled".equals(codeString)) return DeviceRequestStatus.CANCELLED; if ("completed".equals(codeString)) return DeviceRequestStatus.COMPLETED; if ("entered-in-error".equals(codeString)) return DeviceRequestStatus.ENTEREDINERROR; if ("unknown".equals(codeString)) return DeviceRequestStatus.UNKNOWN; throw new IllegalArgumentException("Unknown DeviceRequestStatus code '"+codeString+"'"); } public Enumeration<DeviceRequestStatus> fromType(Base code) throws FHIRException { if (code == null) return null; if (code.isEmpty()) return new Enumeration<DeviceRequestStatus>(this); String codeString = ((PrimitiveType) code).asStringValue(); if (codeString == null || "".equals(codeString)) return null; if ("draft".equals(codeString)) return new Enumeration<DeviceRequestStatus>(this, DeviceRequestStatus.DRAFT); if ("active".equals(codeString)) return new Enumeration<DeviceRequestStatus>(this, DeviceRequestStatus.ACTIVE); if ("suspended".equals(codeString)) return new Enumeration<DeviceRequestStatus>(this, DeviceRequestStatus.SUSPENDED); if ("cancelled".equals(codeString)) return new Enumeration<DeviceRequestStatus>(this, DeviceRequestStatus.CANCELLED); if ("completed".equals(codeString)) return new Enumeration<DeviceRequestStatus>(this, DeviceRequestStatus.COMPLETED); if ("entered-in-error".equals(codeString)) return new Enumeration<DeviceRequestStatus>(this, DeviceRequestStatus.ENTEREDINERROR); if ("unknown".equals(codeString)) return new Enumeration<DeviceRequestStatus>(this, DeviceRequestStatus.UNKNOWN); throw new FHIRException("Unknown DeviceRequestStatus code '"+codeString+"'"); } public String toCode(DeviceRequestStatus code) { if (code == DeviceRequestStatus.DRAFT) return "draft"; if (code == DeviceRequestStatus.ACTIVE) return "active"; if (code == DeviceRequestStatus.SUSPENDED) return "suspended"; if (code == DeviceRequestStatus.CANCELLED) return "cancelled"; if (code == DeviceRequestStatus.COMPLETED) return "completed"; if (code == DeviceRequestStatus.ENTEREDINERROR) return "entered-in-error"; if (code == DeviceRequestStatus.UNKNOWN) return "unknown"; return "?"; } public String toSystem(DeviceRequestStatus code) { return code.getSystem(); } } public enum RequestPriority { /** * The request has normal priority */ ROUTINE, /** * The request should be actioned promptly - higher priority than routine */ URGENT, /** * The request should be actioned as soon as possible - higher priority than urgent */ ASAP, /** * The request should be actioned immediately - highest possible priority. E.g. an emergency */ STAT, /** * added to help the parsers with the generic types */ NULL; public static RequestPriority fromCode(String codeString) throws FHIRException { if (codeString == null || "".equals(codeString)) return null; if ("routine".equals(codeString)) return ROUTINE; if ("urgent".equals(codeString)) return URGENT; if ("asap".equals(codeString)) return ASAP; if ("stat".equals(codeString)) return STAT; if (Configuration.isAcceptInvalidEnums()) return null; else throw new FHIRException("Unknown RequestPriority code '"+codeString+"'"); } public String toCode() { switch (this) { case ROUTINE: return "routine"; case URGENT: return "urgent"; case ASAP: return "asap"; case STAT: return "stat"; default: return "?"; } } public String getSystem() { switch (this) { case ROUTINE: return "http://hl7.org/fhir/request-priority"; case URGENT: return "http://hl7.org/fhir/request-priority"; case ASAP: return "http://hl7.org/fhir/request-priority"; case STAT: return "http://hl7.org/fhir/request-priority"; default: return "?"; } } public String getDefinition() { switch (this) { case ROUTINE: return "The request has normal priority"; case URGENT: return "The request should be actioned promptly - higher priority than routine"; case ASAP: return "The request should be actioned as soon as possible - higher priority than urgent"; case STAT: return "The request should be actioned immediately - highest possible priority. E.g. an emergency"; default: return "?"; } } public String getDisplay() { switch (this) { case ROUTINE: return "Routine"; case URGENT: return "Urgent"; case ASAP: return "ASAP"; case STAT: return "STAT"; default: return "?"; } } } public static class RequestPriorityEnumFactory implements EnumFactory<RequestPriority> { public RequestPriority fromCode(String codeString) throws IllegalArgumentException { if (codeString == null || "".equals(codeString)) if (codeString == null || "".equals(codeString)) return null; if ("routine".equals(codeString)) return RequestPriority.ROUTINE; if ("urgent".equals(codeString)) return RequestPriority.URGENT; if ("asap".equals(codeString)) return RequestPriority.ASAP; if ("stat".equals(codeString)) return RequestPriority.STAT; throw new IllegalArgumentException("Unknown RequestPriority code '"+codeString+"'"); } public Enumeration<RequestPriority> fromType(Base code) throws FHIRException { if (code == null) return null; if (code.isEmpty()) return new Enumeration<RequestPriority>(this); String codeString = ((PrimitiveType) code).asStringValue(); if (codeString == null || "".equals(codeString)) return null; if ("routine".equals(codeString)) return new Enumeration<RequestPriority>(this, RequestPriority.ROUTINE); if ("urgent".equals(codeString)) return new Enumeration<RequestPriority>(this, RequestPriority.URGENT); if ("asap".equals(codeString)) return new Enumeration<RequestPriority>(this, RequestPriority.ASAP); if ("stat".equals(codeString)) return new Enumeration<RequestPriority>(this, RequestPriority.STAT); throw new FHIRException("Unknown RequestPriority code '"+codeString+"'"); } public String toCode(RequestPriority code) { if (code == RequestPriority.ROUTINE) return "routine"; if (code == RequestPriority.URGENT) return "urgent"; if (code == RequestPriority.ASAP) return "asap"; if (code == RequestPriority.STAT) return "stat"; return "?"; } public String toSystem(RequestPriority code) { return code.getSystem(); } } @Block() public static class DeviceRequestRequesterComponent extends BackboneElement implements IBaseBackboneElement { /** * The device, practitioner, etc. who initiated the request. */ @Child(name = "agent", type = {Device.class, Practitioner.class, Organization.class}, order=1, min=1, max=1, modifier=false, summary=true) @Description(shortDefinition="Individual making the request", formalDefinition="The device, practitioner, etc. who initiated the request." ) protected Reference agent; /** * The actual object that is the target of the reference (The device, practitioner, etc. who initiated the request.) */ protected Resource agentTarget; /** * The organization the device or practitioner was acting on behalf of. */ @Child(name = "onBehalfOf", type = {Organization.class}, order=2, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Organization agent is acting for", formalDefinition="The organization the device or practitioner was acting on behalf of." ) protected Reference onBehalfOf; /** * The actual object that is the target of the reference (The organization the device or practitioner was acting on behalf of.) */ protected Organization onBehalfOfTarget; private static final long serialVersionUID = -71453027L; /** * Constructor */ public DeviceRequestRequesterComponent() { super(); } /** * Constructor */ public DeviceRequestRequesterComponent(Reference agent) { super(); this.agent = agent; } /** * @return {@link #agent} (The device, practitioner, etc. who initiated the request.) */ public Reference getAgent() { if (this.agent == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequestRequesterComponent.agent"); else if (Configuration.doAutoCreate()) this.agent = new Reference(); // cc return this.agent; } public boolean hasAgent() { return this.agent != null && !this.agent.isEmpty(); } /** * @param value {@link #agent} (The device, practitioner, etc. who initiated the request.) */ public DeviceRequestRequesterComponent setAgent(Reference value) { this.agent = value; return this; } /** * @return {@link #agent} 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 device, practitioner, etc. who initiated the request.) */ public Resource getAgentTarget() { return this.agentTarget; } /** * @param value {@link #agent} 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 device, practitioner, etc. who initiated the request.) */ public DeviceRequestRequesterComponent setAgentTarget(Resource value) { this.agentTarget = value; return this; } /** * @return {@link #onBehalfOf} (The organization the device or practitioner was acting on behalf of.) */ public Reference getOnBehalfOf() { if (this.onBehalfOf == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequestRequesterComponent.onBehalfOf"); else if (Configuration.doAutoCreate()) this.onBehalfOf = new Reference(); // cc return this.onBehalfOf; } public boolean hasOnBehalfOf() { return this.onBehalfOf != null && !this.onBehalfOf.isEmpty(); } /** * @param value {@link #onBehalfOf} (The organization the device or practitioner was acting on behalf of.) */ public DeviceRequestRequesterComponent setOnBehalfOf(Reference value) { this.onBehalfOf = value; return this; } /** * @return {@link #onBehalfOf} 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 the device or practitioner was acting on behalf of.) */ public Organization getOnBehalfOfTarget() { if (this.onBehalfOfTarget == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequestRequesterComponent.onBehalfOf"); else if (Configuration.doAutoCreate()) this.onBehalfOfTarget = new Organization(); // aa return this.onBehalfOfTarget; } /** * @param value {@link #onBehalfOf} 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 the device or practitioner was acting on behalf of.) */ public DeviceRequestRequesterComponent setOnBehalfOfTarget(Organization value) { this.onBehalfOfTarget = value; return this; } protected void listChildren(List<Property> childrenList) { super.listChildren(childrenList); childrenList.add(new Property("agent", "Reference(Device|Practitioner|Organization)", "The device, practitioner, etc. who initiated the request.", 0, java.lang.Integer.MAX_VALUE, agent)); childrenList.add(new Property("onBehalfOf", "Reference(Organization)", "The organization the device or practitioner was acting on behalf of.", 0, java.lang.Integer.MAX_VALUE, onBehalfOf)); } @Override public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { switch (hash) { case 92750597: /*agent*/ return this.agent == null ? new Base[0] : new Base[] {this.agent}; // Reference case -14402964: /*onBehalfOf*/ return this.onBehalfOf == null ? new Base[0] : new Base[] {this.onBehalfOf}; // Reference default: return super.getProperty(hash, name, checkValid); } } @Override public Base setProperty(int hash, String name, Base value) throws FHIRException { switch (hash) { case 92750597: // agent this.agent = castToReference(value); // Reference return value; case -14402964: // onBehalfOf this.onBehalfOf = castToReference(value); // Reference return value; default: return super.setProperty(hash, name, value); } } @Override public Base setProperty(String name, Base value) throws FHIRException { if (name.equals("agent")) { this.agent = castToReference(value); // Reference } else if (name.equals("onBehalfOf")) { this.onBehalfOf = castToReference(value); // Reference } else return super.setProperty(name, value); return value; } @Override public Base makeProperty(int hash, String name) throws FHIRException { switch (hash) { case 92750597: return getAgent(); case -14402964: return getOnBehalfOf(); default: return super.makeProperty(hash, name); } } @Override public String[] getTypesForProperty(int hash, String name) throws FHIRException { switch (hash) { case 92750597: /*agent*/ return new String[] {"Reference"}; case -14402964: /*onBehalfOf*/ return new String[] {"Reference"}; default: return super.getTypesForProperty(hash, name); } } @Override public Base addChild(String name) throws FHIRException { if (name.equals("agent")) { this.agent = new Reference(); return this.agent; } else if (name.equals("onBehalfOf")) { this.onBehalfOf = new Reference(); return this.onBehalfOf; } else return super.addChild(name); } public DeviceRequestRequesterComponent copy() { DeviceRequestRequesterComponent dst = new DeviceRequestRequesterComponent(); copyValues(dst); dst.agent = agent == null ? null : agent.copy(); dst.onBehalfOf = onBehalfOf == null ? null : onBehalfOf.copy(); return dst; } @Override public boolean equalsDeep(Base other) { if (!super.equalsDeep(other)) return false; if (!(other instanceof DeviceRequestRequesterComponent)) return false; DeviceRequestRequesterComponent o = (DeviceRequestRequesterComponent) other; return compareDeep(agent, o.agent, true) && compareDeep(onBehalfOf, o.onBehalfOf, true); } @Override public boolean equalsShallow(Base other) { if (!super.equalsShallow(other)) return false; if (!(other instanceof DeviceRequestRequesterComponent)) return false; DeviceRequestRequesterComponent o = (DeviceRequestRequesterComponent) other; return true; } public boolean isEmpty() { return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(agent, onBehalfOf); } public String fhirType() { return "DeviceRequest.requester"; } } /** * Identifiers assigned to this order by the orderer or by the receiver. */ @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="External Request identifier", formalDefinition="Identifiers assigned to this order by the orderer or by the receiver." ) protected List<Identifier> identifier; /** * Protocol or definition followed by this request. For example: The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%. */ @Child(name = "definition", type = {ActivityDefinition.class, PlanDefinition.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="Protocol or definition", formalDefinition="Protocol or definition followed by this request. For example: The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%." ) protected List<Reference> definition; /** * The actual objects that are the target of the reference (Protocol or definition followed by this request. For example: The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.) */ protected List<Resource> definitionTarget; /** * Plan/proposal/order fulfilled by this request. */ @Child(name = "basedOn", type = {Reference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="What request fulfills", formalDefinition="Plan/proposal/order fulfilled by this request." ) protected List<Reference> basedOn; /** * The actual objects that are the target of the reference (Plan/proposal/order fulfilled by this request.) */ protected List<Resource> basedOnTarget; /** * The request takes the place of the referenced completed or terminated request(s). */ @Child(name = "priorRequest", type = {Reference.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="What request replaces", formalDefinition="The request takes the place of the referenced completed or terminated request(s)." ) protected List<Reference> priorRequest; /** * The actual objects that are the target of the reference (The request takes the place of the referenced completed or terminated request(s).) */ protected List<Resource> priorRequestTarget; /** * Composite request this is part of. */ @Child(name = "groupIdentifier", type = {Identifier.class}, order=4, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Identifier of composite request", formalDefinition="Composite request this is part of." ) protected Identifier groupIdentifier; /** * The status of the request. */ @Child(name = "status", type = {CodeType.class}, order=5, min=0, max=1, modifier=true, summary=true) @Description(shortDefinition="draft | active | suspended | completed | entered-in-error | cancelled", formalDefinition="The status of the request." ) @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-status") protected Enumeration<DeviceRequestStatus> status; /** * Whether the request is a proposal, plan, an original order or a reflex order. */ @Child(name = "intent", type = {CodeableConcept.class}, order=6, min=1, max=1, modifier=true, summary=true) @Description(shortDefinition="proposal | plan | original-order | encoded | reflex-order", formalDefinition="Whether the request is a proposal, plan, an original order or a reflex order." ) protected CodeableConcept intent; /** * Indicates how quickly the {{title}} should be addressed with respect to other requests. */ @Child(name = "priority", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Indicates how quickly the {{title}} should be addressed with respect to other requests", formalDefinition="Indicates how quickly the {{title}} should be addressed with respect to other requests." ) @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-priority") protected Enumeration<RequestPriority> priority; /** * The details of the device to be used. */ @Child(name = "code", type = {Device.class, CodeableConcept.class}, order=8, min=1, max=1, modifier=false, summary=true) @Description(shortDefinition="Device requested", formalDefinition="The details of the device to be used." ) @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-kind") protected Type code; /** * The patient who will use the device. */ @Child(name = "subject", type = {Patient.class, Group.class, Location.class, Device.class}, order=9, min=1, max=1, modifier=false, summary=true) @Description(shortDefinition="Focus of request", formalDefinition="The patient who will use the device." ) protected Reference subject; /** * The actual object that is the target of the reference (The patient who will use the device.) */ protected Resource subjectTarget; /** * An encounter that provides additional context in which this request is made. */ @Child(name = "context", type = {Encounter.class, EpisodeOfCare.class}, order=10, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Encounter or Episode motivating request", formalDefinition="An encounter that provides additional context in which this request is made." ) protected Reference context; /** * The actual object that is the target of the reference (An encounter that provides additional context in which this request is made.) */ protected Resource contextTarget; /** * The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". */ @Child(name = "occurrence", type = {DateTimeType.class, Period.class, Timing.class}, order=11, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Desired time or schedule for use", formalDefinition="The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. \"Every 8 hours\"; \"Three times a day\"; \"1/2 an hour before breakfast for 10 days from 23-Dec 2011:\"; \"15 Oct 2013, 17 Oct 2013 and 1 Nov 2013\"." ) protected Type occurrence; /** * When the request transitioned to being actionable. */ @Child(name = "authoredOn", type = {DateTimeType.class}, order=12, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="When recorded", formalDefinition="When the request transitioned to being actionable." ) protected DateTimeType authoredOn; /** * The individual who initiated the request and has responsibility for its activation. */ @Child(name = "requester", type = {}, order=13, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Who/what is requesting diagnostics", formalDefinition="The individual who initiated the request and has responsibility for its activation." ) protected DeviceRequestRequesterComponent requester; /** * Desired type of performer for doing the diagnostic testing. */ @Child(name = "performerType", type = {CodeableConcept.class}, order=14, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Fille role", formalDefinition="Desired type of performer for doing the diagnostic testing." ) @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participant-role") protected CodeableConcept performerType; /** * The desired perfomer for doing the diagnostic testing. */ @Child(name = "performer", type = {Practitioner.class, Organization.class, Patient.class, Device.class, RelatedPerson.class, HealthcareService.class}, order=15, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Requested Filler", formalDefinition="The desired perfomer for doing the diagnostic testing." ) protected Reference performer; /** * The actual object that is the target of the reference (The desired perfomer for doing the diagnostic testing.) */ protected Resource performerTarget; /** * Reason or justification for the use of this device. */ @Child(name = "reasonCode", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="Coded Reason for request", formalDefinition="Reason or justification for the use of this device." ) @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-code") protected List<CodeableConcept> reasonCode; /** * Reason or justification for the use of this device. */ @Child(name = "reasonReference", type = {Reference.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="Linked Reason for request", formalDefinition="Reason or justification for the use of this device." ) protected List<Reference> reasonReference; /** * The actual objects that are the target of the reference (Reason or justification for the use of this device.) */ protected List<Resource> reasonReferenceTarget; /** * Additional clinical information about the patient that may influence the request fulfilment. For example, this may includes body where on the subject's the device will be used ( i.e. the target site). */ @Child(name = "supportingInfo", type = {Reference.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Additional clinical information", formalDefinition="Additional clinical information about the patient that may influence the request fulfilment. For example, this may includes body where on the subject's the device will be used ( i.e. the target site)." ) protected List<Reference> supportingInfo; /** * The actual objects that are the target of the reference (Additional clinical information about the patient that may influence the request fulfilment. For example, this may includes body where on the subject's the device will be used ( i.e. the target site).) */ protected List<Resource> supportingInfoTarget; /** * Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement. */ @Child(name = "note", type = {Annotation.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Notes or comments", formalDefinition="Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement." ) protected List<Annotation> note; /** * Key events in the history of the request. */ @Child(name = "relevantHistory", type = {Provenance.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Request provenance", formalDefinition="Key events in the history of the request." ) protected List<Reference> relevantHistory; /** * The actual objects that are the target of the reference (Key events in the history of the request.) */ protected List<Provenance> relevantHistoryTarget; private static final long serialVersionUID = -2002514925L; /** * Constructor */ public DeviceRequest() { super(); } /** * Constructor */ public DeviceRequest(CodeableConcept intent, Type code, Reference subject) { super(); this.intent = intent; this.code = code; this.subject = subject; } /** * @return {@link #identifier} (Identifiers assigned to this order by the orderer or by the receiver.) */ public List<Identifier> getIdentifier() { if (this.identifier == null) this.identifier = new ArrayList<Identifier>(); return this.identifier; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setIdentifier(List<Identifier> theIdentifier) { this.identifier = theIdentifier; return this; } public boolean hasIdentifier() { if (this.identifier == null) return false; for (Identifier item : this.identifier) if (!item.isEmpty()) return true; return false; } public Identifier addIdentifier() { //3 Identifier t = new Identifier(); if (this.identifier == null) this.identifier = new ArrayList<Identifier>(); this.identifier.add(t); return t; } public DeviceRequest addIdentifier(Identifier t) { //3 if (t == null) return this; if (this.identifier == null) this.identifier = new ArrayList<Identifier>(); this.identifier.add(t); return this; } /** * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist */ public Identifier getIdentifierFirstRep() { if (getIdentifier().isEmpty()) { addIdentifier(); } return getIdentifier().get(0); } /** * @return {@link #definition} (Protocol or definition followed by this request. For example: The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.) */ public List<Reference> getDefinition() { if (this.definition == null) this.definition = new ArrayList<Reference>(); return this.definition; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setDefinition(List<Reference> theDefinition) { this.definition = theDefinition; return this; } public boolean hasDefinition() { if (this.definition == null) return false; for (Reference item : this.definition) if (!item.isEmpty()) return true; return false; } public Reference addDefinition() { //3 Reference t = new Reference(); if (this.definition == null) this.definition = new ArrayList<Reference>(); this.definition.add(t); return t; } public DeviceRequest addDefinition(Reference t) { //3 if (t == null) return this; if (this.definition == null) this.definition = new ArrayList<Reference>(); this.definition.add(t); return this; } /** * @return The first repetition of repeating field {@link #definition}, creating it if it does not already exist */ public Reference getDefinitionFirstRep() { if (getDefinition().isEmpty()) { addDefinition(); } return getDefinition().get(0); } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public List<Resource> getDefinitionTarget() { if (this.definitionTarget == null) this.definitionTarget = new ArrayList<Resource>(); return this.definitionTarget; } /** * @return {@link #basedOn} (Plan/proposal/order fulfilled by this request.) */ public List<Reference> getBasedOn() { if (this.basedOn == null) this.basedOn = new ArrayList<Reference>(); return this.basedOn; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setBasedOn(List<Reference> theBasedOn) { this.basedOn = theBasedOn; return this; } public boolean hasBasedOn() { if (this.basedOn == null) return false; for (Reference item : this.basedOn) if (!item.isEmpty()) return true; return false; } public Reference addBasedOn() { //3 Reference t = new Reference(); if (this.basedOn == null) this.basedOn = new ArrayList<Reference>(); this.basedOn.add(t); return t; } public DeviceRequest addBasedOn(Reference t) { //3 if (t == null) return this; if (this.basedOn == null) this.basedOn = new ArrayList<Reference>(); this.basedOn.add(t); return this; } /** * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist */ public Reference getBasedOnFirstRep() { if (getBasedOn().isEmpty()) { addBasedOn(); } return getBasedOn().get(0); } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public List<Resource> getBasedOnTarget() { if (this.basedOnTarget == null) this.basedOnTarget = new ArrayList<Resource>(); return this.basedOnTarget; } /** * @return {@link #priorRequest} (The request takes the place of the referenced completed or terminated request(s).) */ public List<Reference> getPriorRequest() { if (this.priorRequest == null) this.priorRequest = new ArrayList<Reference>(); return this.priorRequest; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setPriorRequest(List<Reference> thePriorRequest) { this.priorRequest = thePriorRequest; return this; } public boolean hasPriorRequest() { if (this.priorRequest == null) return false; for (Reference item : this.priorRequest) if (!item.isEmpty()) return true; return false; } public Reference addPriorRequest() { //3 Reference t = new Reference(); if (this.priorRequest == null) this.priorRequest = new ArrayList<Reference>(); this.priorRequest.add(t); return t; } public DeviceRequest addPriorRequest(Reference t) { //3 if (t == null) return this; if (this.priorRequest == null) this.priorRequest = new ArrayList<Reference>(); this.priorRequest.add(t); return this; } /** * @return The first repetition of repeating field {@link #priorRequest}, creating it if it does not already exist */ public Reference getPriorRequestFirstRep() { if (getPriorRequest().isEmpty()) { addPriorRequest(); } return getPriorRequest().get(0); } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public List<Resource> getPriorRequestTarget() { if (this.priorRequestTarget == null) this.priorRequestTarget = new ArrayList<Resource>(); return this.priorRequestTarget; } /** * @return {@link #groupIdentifier} (Composite request this is part of.) */ public Identifier getGroupIdentifier() { if (this.groupIdentifier == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.groupIdentifier"); else if (Configuration.doAutoCreate()) this.groupIdentifier = new Identifier(); // cc return this.groupIdentifier; } public boolean hasGroupIdentifier() { return this.groupIdentifier != null && !this.groupIdentifier.isEmpty(); } /** * @param value {@link #groupIdentifier} (Composite request this is part of.) */ public DeviceRequest setGroupIdentifier(Identifier value) { this.groupIdentifier = value; return this; } /** * @return {@link #status} (The status of the request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value */ public Enumeration<DeviceRequestStatus> getStatusElement() { if (this.status == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.status"); else if (Configuration.doAutoCreate()) this.status = new Enumeration<DeviceRequestStatus>(new DeviceRequestStatusEnumFactory()); // bb return this.status; } public boolean hasStatusElement() { return this.status != null && !this.status.isEmpty(); } public boolean hasStatus() { return this.status != null && !this.status.isEmpty(); } /** * @param value {@link #status} (The status of the request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value */ public DeviceRequest setStatusElement(Enumeration<DeviceRequestStatus> value) { this.status = value; return this; } /** * @return The status of the request. */ public DeviceRequestStatus getStatus() { return this.status == null ? null : this.status.getValue(); } /** * @param value The status of the request. */ public DeviceRequest setStatus(DeviceRequestStatus value) { if (value == null) this.status = null; else { if (this.status == null) this.status = new Enumeration<DeviceRequestStatus>(new DeviceRequestStatusEnumFactory()); this.status.setValue(value); } return this; } /** * @return {@link #intent} (Whether the request is a proposal, plan, an original order or a reflex order.) */ public CodeableConcept getIntent() { if (this.intent == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.intent"); else if (Configuration.doAutoCreate()) this.intent = new CodeableConcept(); // cc return this.intent; } public boolean hasIntent() { return this.intent != null && !this.intent.isEmpty(); } /** * @param value {@link #intent} (Whether the request is a proposal, plan, an original order or a reflex order.) */ public DeviceRequest setIntent(CodeableConcept value) { this.intent = value; return this; } /** * @return {@link #priority} (Indicates how quickly the {{title}} should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value */ public Enumeration<RequestPriority> getPriorityElement() { if (this.priority == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.priority"); else if (Configuration.doAutoCreate()) this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory()); // bb return this.priority; } public boolean hasPriorityElement() { return this.priority != null && !this.priority.isEmpty(); } public boolean hasPriority() { return this.priority != null && !this.priority.isEmpty(); } /** * @param value {@link #priority} (Indicates how quickly the {{title}} should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value */ public DeviceRequest setPriorityElement(Enumeration<RequestPriority> value) { this.priority = value; return this; } /** * @return Indicates how quickly the {{title}} should be addressed with respect to other requests. */ public RequestPriority getPriority() { return this.priority == null ? null : this.priority.getValue(); } /** * @param value Indicates how quickly the {{title}} should be addressed with respect to other requests. */ public DeviceRequest setPriority(RequestPriority value) { if (value == null) this.priority = null; else { if (this.priority == null) this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory()); this.priority.setValue(value); } return this; } /** * @return {@link #code} (The details of the device to be used.) */ public Type getCode() { return this.code; } /** * @return {@link #code} (The details of the device to be used.) */ public Reference getCodeReference() throws FHIRException { if (!(this.code instanceof Reference)) throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.code.getClass().getName()+" was encountered"); return (Reference) this.code; } public boolean hasCodeReference() { return this.code instanceof Reference; } /** * @return {@link #code} (The details of the device to be used.) */ public CodeableConcept getCodeCodeableConcept() throws FHIRException { if (!(this.code instanceof CodeableConcept)) throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.code.getClass().getName()+" was encountered"); return (CodeableConcept) this.code; } public boolean hasCodeCodeableConcept() { return this.code instanceof CodeableConcept; } public boolean hasCode() { return this.code != null && !this.code.isEmpty(); } /** * @param value {@link #code} (The details of the device to be used.) */ public DeviceRequest setCode(Type value) { this.code = value; return this; } /** * @return {@link #subject} (The patient who will use the device.) */ public Reference getSubject() { if (this.subject == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.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} (The patient who will use the device.) */ public DeviceRequest 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. (The patient who will use the device.) */ 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. (The patient who will use the device.) */ public DeviceRequest setSubjectTarget(Resource value) { this.subjectTarget = value; return this; } /** * @return {@link #context} (An encounter that provides additional context in which this request is made.) */ public Reference getContext() { if (this.context == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.context"); else if (Configuration.doAutoCreate()) this.context = new Reference(); // cc return this.context; } public boolean hasContext() { return this.context != null && !this.context.isEmpty(); } /** * @param value {@link #context} (An encounter that provides additional context in which this request is made.) */ public DeviceRequest setContext(Reference value) { this.context = value; return this; } /** * @return {@link #context} 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. (An encounter that provides additional context in which this request is made.) */ public Resource getContextTarget() { return this.contextTarget; } /** * @param value {@link #context} 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. (An encounter that provides additional context in which this request is made.) */ public DeviceRequest setContextTarget(Resource value) { this.contextTarget = value; return this; } /** * @return {@link #occurrence} (The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) */ public Type getOccurrence() { return this.occurrence; } /** * @return {@link #occurrence} (The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) */ public DateTimeType getOccurrenceDateTimeType() throws FHIRException { if (!(this.occurrence instanceof DateTimeType)) throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurrence.getClass().getName()+" was encountered"); return (DateTimeType) this.occurrence; } public boolean hasOccurrenceDateTimeType() { return this.occurrence instanceof DateTimeType; } /** * @return {@link #occurrence} (The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) */ public Period getOccurrencePeriod() throws FHIRException { if (!(this.occurrence instanceof Period)) throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurrence.getClass().getName()+" was encountered"); return (Period) this.occurrence; } public boolean hasOccurrencePeriod() { return this.occurrence instanceof Period; } /** * @return {@link #occurrence} (The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) */ public Timing getOccurrenceTiming() throws FHIRException { if (!(this.occurrence instanceof Timing)) throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.occurrence.getClass().getName()+" was encountered"); return (Timing) this.occurrence; } public boolean hasOccurrenceTiming() { return this.occurrence instanceof Timing; } public boolean hasOccurrence() { return this.occurrence != null && !this.occurrence.isEmpty(); } /** * @param value {@link #occurrence} (The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) */ public DeviceRequest setOccurrence(Type value) { this.occurrence = value; return this; } /** * @return {@link #authoredOn} (When the request transitioned to being actionable.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value */ public DateTimeType getAuthoredOnElement() { if (this.authoredOn == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.authoredOn"); else if (Configuration.doAutoCreate()) this.authoredOn = new DateTimeType(); // bb return this.authoredOn; } public boolean hasAuthoredOnElement() { return this.authoredOn != null && !this.authoredOn.isEmpty(); } public boolean hasAuthoredOn() { return this.authoredOn != null && !this.authoredOn.isEmpty(); } /** * @param value {@link #authoredOn} (When the request transitioned to being actionable.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value */ public DeviceRequest setAuthoredOnElement(DateTimeType value) { this.authoredOn = value; return this; } /** * @return When the request transitioned to being actionable. */ public Date getAuthoredOn() { return this.authoredOn == null ? null : this.authoredOn.getValue(); } /** * @param value When the request transitioned to being actionable. */ public DeviceRequest setAuthoredOn(Date value) { if (value == null) this.authoredOn = null; else { if (this.authoredOn == null) this.authoredOn = new DateTimeType(); this.authoredOn.setValue(value); } return this; } /** * @return {@link #requester} (The individual who initiated the request and has responsibility for its activation.) */ public DeviceRequestRequesterComponent getRequester() { if (this.requester == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.requester"); else if (Configuration.doAutoCreate()) this.requester = new DeviceRequestRequesterComponent(); // cc return this.requester; } public boolean hasRequester() { return this.requester != null && !this.requester.isEmpty(); } /** * @param value {@link #requester} (The individual who initiated the request and has responsibility for its activation.) */ public DeviceRequest setRequester(DeviceRequestRequesterComponent value) { this.requester = value; return this; } /** * @return {@link #performerType} (Desired type of performer for doing the diagnostic testing.) */ public CodeableConcept getPerformerType() { if (this.performerType == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.performerType"); else if (Configuration.doAutoCreate()) this.performerType = new CodeableConcept(); // cc return this.performerType; } public boolean hasPerformerType() { return this.performerType != null && !this.performerType.isEmpty(); } /** * @param value {@link #performerType} (Desired type of performer for doing the diagnostic testing.) */ public DeviceRequest setPerformerType(CodeableConcept value) { this.performerType = value; return this; } /** * @return {@link #performer} (The desired perfomer for doing the diagnostic testing.) */ public Reference getPerformer() { if (this.performer == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create DeviceRequest.performer"); else if (Configuration.doAutoCreate()) this.performer = new Reference(); // cc return this.performer; } public boolean hasPerformer() { return this.performer != null && !this.performer.isEmpty(); } /** * @param value {@link #performer} (The desired perfomer for doing the diagnostic testing.) */ public DeviceRequest setPerformer(Reference value) { this.performer = value; return this; } /** * @return {@link #performer} 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 desired perfomer for doing the diagnostic testing.) */ public Resource getPerformerTarget() { return this.performerTarget; } /** * @param value {@link #performer} 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 desired perfomer for doing the diagnostic testing.) */ public DeviceRequest setPerformerTarget(Resource value) { this.performerTarget = value; return this; } /** * @return {@link #reasonCode} (Reason or justification for the use of this device.) */ public List<CodeableConcept> getReasonCode() { if (this.reasonCode == null) this.reasonCode = new ArrayList<CodeableConcept>(); return this.reasonCode; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setReasonCode(List<CodeableConcept> theReasonCode) { this.reasonCode = theReasonCode; return this; } public boolean hasReasonCode() { if (this.reasonCode == null) return false; for (CodeableConcept item : this.reasonCode) if (!item.isEmpty()) return true; return false; } public CodeableConcept addReasonCode() { //3 CodeableConcept t = new CodeableConcept(); if (this.reasonCode == null) this.reasonCode = new ArrayList<CodeableConcept>(); this.reasonCode.add(t); return t; } public DeviceRequest addReasonCode(CodeableConcept t) { //3 if (t == null) return this; if (this.reasonCode == null) this.reasonCode = new ArrayList<CodeableConcept>(); this.reasonCode.add(t); return this; } /** * @return The first repetition of repeating field {@link #reasonCode}, creating it if it does not already exist */ public CodeableConcept getReasonCodeFirstRep() { if (getReasonCode().isEmpty()) { addReasonCode(); } return getReasonCode().get(0); } /** * @return {@link #reasonReference} (Reason or justification for the use of this device.) */ public List<Reference> getReasonReference() { if (this.reasonReference == null) this.reasonReference = new ArrayList<Reference>(); return this.reasonReference; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setReasonReference(List<Reference> theReasonReference) { this.reasonReference = theReasonReference; return this; } public boolean hasReasonReference() { if (this.reasonReference == null) return false; for (Reference item : this.reasonReference) if (!item.isEmpty()) return true; return false; } public Reference addReasonReference() { //3 Reference t = new Reference(); if (this.reasonReference == null) this.reasonReference = new ArrayList<Reference>(); this.reasonReference.add(t); return t; } public DeviceRequest addReasonReference(Reference t) { //3 if (t == null) return this; if (this.reasonReference == null) this.reasonReference = new ArrayList<Reference>(); this.reasonReference.add(t); return this; } /** * @return The first repetition of repeating field {@link #reasonReference}, creating it if it does not already exist */ public Reference getReasonReferenceFirstRep() { if (getReasonReference().isEmpty()) { addReasonReference(); } return getReasonReference().get(0); } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public List<Resource> getReasonReferenceTarget() { if (this.reasonReferenceTarget == null) this.reasonReferenceTarget = new ArrayList<Resource>(); return this.reasonReferenceTarget; } /** * @return {@link #supportingInfo} (Additional clinical information about the patient that may influence the request fulfilment. For example, this may includes body where on the subject's the device will be used ( i.e. the target site).) */ public List<Reference> getSupportingInfo() { if (this.supportingInfo == null) this.supportingInfo = new ArrayList<Reference>(); return this.supportingInfo; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setSupportingInfo(List<Reference> theSupportingInfo) { this.supportingInfo = theSupportingInfo; return this; } public boolean hasSupportingInfo() { if (this.supportingInfo == null) return false; for (Reference item : this.supportingInfo) if (!item.isEmpty()) return true; return false; } public Reference addSupportingInfo() { //3 Reference t = new Reference(); if (this.supportingInfo == null) this.supportingInfo = new ArrayList<Reference>(); this.supportingInfo.add(t); return t; } public DeviceRequest addSupportingInfo(Reference t) { //3 if (t == null) return this; if (this.supportingInfo == null) this.supportingInfo = new ArrayList<Reference>(); this.supportingInfo.add(t); return this; } /** * @return The first repetition of repeating field {@link #supportingInfo}, creating it if it does not already exist */ public Reference getSupportingInfoFirstRep() { if (getSupportingInfo().isEmpty()) { addSupportingInfo(); } return getSupportingInfo().get(0); } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public List<Resource> getSupportingInfoTarget() { if (this.supportingInfoTarget == null) this.supportingInfoTarget = new ArrayList<Resource>(); return this.supportingInfoTarget; } /** * @return {@link #note} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) */ public List<Annotation> getNote() { if (this.note == null) this.note = new ArrayList<Annotation>(); return this.note; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setNote(List<Annotation> theNote) { this.note = theNote; return this; } public boolean hasNote() { if (this.note == null) return false; for (Annotation item : this.note) if (!item.isEmpty()) return true; return false; } public Annotation addNote() { //3 Annotation t = new Annotation(); if (this.note == null) this.note = new ArrayList<Annotation>(); this.note.add(t); return t; } public DeviceRequest addNote(Annotation t) { //3 if (t == null) return this; if (this.note == null) this.note = new ArrayList<Annotation>(); this.note.add(t); return this; } /** * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist */ public Annotation getNoteFirstRep() { if (getNote().isEmpty()) { addNote(); } return getNote().get(0); } /** * @return {@link #relevantHistory} (Key events in the history of the request.) */ public List<Reference> getRelevantHistory() { if (this.relevantHistory == null) this.relevantHistory = new ArrayList<Reference>(); return this.relevantHistory; } /** * @return Returns a reference to <code>this</code> for easy method chaining */ public DeviceRequest setRelevantHistory(List<Reference> theRelevantHistory) { this.relevantHistory = theRelevantHistory; return this; } public boolean hasRelevantHistory() { if (this.relevantHistory == null) return false; for (Reference item : this.relevantHistory) if (!item.isEmpty()) return true; return false; } public Reference addRelevantHistory() { //3 Reference t = new Reference(); if (this.relevantHistory == null) this.relevantHistory = new ArrayList<Reference>(); this.relevantHistory.add(t); return t; } public DeviceRequest addRelevantHistory(Reference t) { //3 if (t == null) return this; if (this.relevantHistory == null) this.relevantHistory = new ArrayList<Reference>(); this.relevantHistory.add(t); return this; } /** * @return The first repetition of repeating field {@link #relevantHistory}, creating it if it does not already exist */ public Reference getRelevantHistoryFirstRep() { if (getRelevantHistory().isEmpty()) { addRelevantHistory(); } return getRelevantHistory().get(0); } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public List<Provenance> getRelevantHistoryTarget() { if (this.relevantHistoryTarget == null) this.relevantHistoryTarget = new ArrayList<Provenance>(); return this.relevantHistoryTarget; } /** * @deprecated Use Reference#setResource(IBaseResource) instead */ @Deprecated public Provenance addRelevantHistoryTarget() { Provenance r = new Provenance(); if (this.relevantHistoryTarget == null) this.relevantHistoryTarget = new ArrayList<Provenance>(); this.relevantHistoryTarget.add(r); return r; } protected void listChildren(List<Property> childrenList) { super.listChildren(childrenList); childrenList.add(new Property("identifier", "Identifier", "Identifiers assigned to this order by the orderer or by the receiver.", 0, java.lang.Integer.MAX_VALUE, identifier)); childrenList.add(new Property("definition", "Reference(ActivityDefinition|PlanDefinition)", "Protocol or definition followed by this request. For example: The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.", 0, java.lang.Integer.MAX_VALUE, definition)); childrenList.add(new Property("basedOn", "Reference(Any)", "Plan/proposal/order fulfilled by this request.", 0, java.lang.Integer.MAX_VALUE, basedOn)); childrenList.add(new Property("priorRequest", "Reference(Any)", "The request takes the place of the referenced completed or terminated request(s).", 0, java.lang.Integer.MAX_VALUE, priorRequest)); childrenList.add(new Property("groupIdentifier", "Identifier", "Composite request this is part of.", 0, java.lang.Integer.MAX_VALUE, groupIdentifier)); childrenList.add(new Property("status", "code", "The status of the request.", 0, java.lang.Integer.MAX_VALUE, status)); childrenList.add(new Property("intent", "CodeableConcept", "Whether the request is a proposal, plan, an original order or a reflex order.", 0, java.lang.Integer.MAX_VALUE, intent)); childrenList.add(new Property("priority", "code", "Indicates how quickly the {{title}} should be addressed with respect to other requests.", 0, java.lang.Integer.MAX_VALUE, priority)); childrenList.add(new Property("code[x]", "Reference(Device)|CodeableConcept", "The details of the device to be used.", 0, java.lang.Integer.MAX_VALUE, code)); childrenList.add(new Property("subject", "Reference(Patient|Group|Location|Device)", "The patient who will use the device.", 0, java.lang.Integer.MAX_VALUE, subject)); childrenList.add(new Property("context", "Reference(Encounter|EpisodeOfCare)", "An encounter that provides additional context in which this request is made.", 0, java.lang.Integer.MAX_VALUE, context)); childrenList.add(new Property("occurrence[x]", "dateTime|Period|Timing", "The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. \"Every 8 hours\"; \"Three times a day\"; \"1/2 an hour before breakfast for 10 days from 23-Dec 2011:\"; \"15 Oct 2013, 17 Oct 2013 and 1 Nov 2013\".", 0, java.lang.Integer.MAX_VALUE, occurrence)); childrenList.add(new Property("authoredOn", "dateTime", "When the request transitioned to being actionable.", 0, java.lang.Integer.MAX_VALUE, authoredOn)); childrenList.add(new Property("requester", "", "The individual who initiated the request and has responsibility for its activation.", 0, java.lang.Integer.MAX_VALUE, requester)); childrenList.add(new Property("performerType", "CodeableConcept", "Desired type of performer for doing the diagnostic testing.", 0, java.lang.Integer.MAX_VALUE, performerType)); childrenList.add(new Property("performer", "Reference(Practitioner|Organization|Patient|Device|RelatedPerson|HealthcareService)", "The desired perfomer for doing the diagnostic testing.", 0, java.lang.Integer.MAX_VALUE, performer)); childrenList.add(new Property("reasonCode", "CodeableConcept", "Reason or justification for the use of this device.", 0, java.lang.Integer.MAX_VALUE, reasonCode)); childrenList.add(new Property("reasonReference", "Reference(Any)", "Reason or justification for the use of this device.", 0, java.lang.Integer.MAX_VALUE, reasonReference)); childrenList.add(new Property("supportingInfo", "Reference(Any)", "Additional clinical information about the patient that may influence the request fulfilment. For example, this may includes body where on the subject's the device will be used ( i.e. the target site).", 0, java.lang.Integer.MAX_VALUE, supportingInfo)); childrenList.add(new Property("note", "Annotation", "Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.", 0, java.lang.Integer.MAX_VALUE, note)); childrenList.add(new Property("relevantHistory", "Reference(Provenance)", "Key events in the history of the request.", 0, java.lang.Integer.MAX_VALUE, relevantHistory)); } @Override public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { switch (hash) { case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : this.definition.toArray(new Base[this.definition.size()]); // Reference case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference case 237568101: /*priorRequest*/ return this.priorRequest == null ? new Base[0] : this.priorRequest.toArray(new Base[this.priorRequest.size()]); // Reference case -445338488: /*groupIdentifier*/ return this.groupIdentifier == null ? new Base[0] : new Base[] {this.groupIdentifier}; // Identifier case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<DeviceRequestStatus> case -1183762788: /*intent*/ return this.intent == null ? new Base[0] : new Base[] {this.intent}; // CodeableConcept case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // Enumeration<RequestPriority> case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Type case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // Reference case 1687874001: /*occurrence*/ return this.occurrence == null ? new Base[0] : new Base[] {this.occurrence}; // Type case -1500852503: /*authoredOn*/ return this.authoredOn == null ? new Base[0] : new Base[] {this.authoredOn}; // DateTimeType case 693933948: /*requester*/ return this.requester == null ? new Base[0] : new Base[] {this.requester}; // DeviceRequestRequesterComponent case -901444568: /*performerType*/ return this.performerType == null ? new Base[0] : new Base[] {this.performerType}; // CodeableConcept case 481140686: /*performer*/ return this.performer == null ? new Base[0] : new Base[] {this.performer}; // Reference case 722137681: /*reasonCode*/ return this.reasonCode == null ? new Base[0] : this.reasonCode.toArray(new Base[this.reasonCode.size()]); // CodeableConcept case -1146218137: /*reasonReference*/ return this.reasonReference == null ? new Base[0] : this.reasonReference.toArray(new Base[this.reasonReference.size()]); // Reference case 1922406657: /*supportingInfo*/ return this.supportingInfo == null ? new Base[0] : this.supportingInfo.toArray(new Base[this.supportingInfo.size()]); // Reference case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation case 1538891575: /*relevantHistory*/ return this.relevantHistory == null ? new Base[0] : this.relevantHistory.toArray(new Base[this.relevantHistory.size()]); // Reference default: return super.getProperty(hash, name, checkValid); } } @Override public Base setProperty(int hash, String name, Base value) throws FHIRException { switch (hash) { case -1618432855: // identifier this.getIdentifier().add(castToIdentifier(value)); // Identifier return value; case -1014418093: // definition this.getDefinition().add(castToReference(value)); // Reference return value; case -332612366: // basedOn this.getBasedOn().add(castToReference(value)); // Reference return value; case 237568101: // priorRequest this.getPriorRequest().add(castToReference(value)); // Reference return value; case -445338488: // groupIdentifier this.groupIdentifier = castToIdentifier(value); // Identifier return value; case -892481550: // status value = new DeviceRequestStatusEnumFactory().fromType(castToCode(value)); this.status = (Enumeration) value; // Enumeration<DeviceRequestStatus> return value; case -1183762788: // intent this.intent = castToCodeableConcept(value); // CodeableConcept return value; case -1165461084: // priority value = new RequestPriorityEnumFactory().fromType(castToCode(value)); this.priority = (Enumeration) value; // Enumeration<RequestPriority> return value; case 3059181: // code this.code = castToType(value); // Type return value; case -1867885268: // subject this.subject = castToReference(value); // Reference return value; case 951530927: // context this.context = castToReference(value); // Reference return value; case 1687874001: // occurrence this.occurrence = castToType(value); // Type return value; case -1500852503: // authoredOn this.authoredOn = castToDateTime(value); // DateTimeType return value; case 693933948: // requester this.requester = (DeviceRequestRequesterComponent) value; // DeviceRequestRequesterComponent return value; case -901444568: // performerType this.performerType = castToCodeableConcept(value); // CodeableConcept return value; case 481140686: // performer this.performer = castToReference(value); // Reference return value; case 722137681: // reasonCode this.getReasonCode().add(castToCodeableConcept(value)); // CodeableConcept return value; case -1146218137: // reasonReference this.getReasonReference().add(castToReference(value)); // Reference return value; case 1922406657: // supportingInfo this.getSupportingInfo().add(castToReference(value)); // Reference return value; case 3387378: // note this.getNote().add(castToAnnotation(value)); // Annotation return value; case 1538891575: // relevantHistory this.getRelevantHistory().add(castToReference(value)); // Reference return value; default: return super.setProperty(hash, name, value); } } @Override public Base setProperty(String name, Base value) throws FHIRException { if (name.equals("identifier")) { this.getIdentifier().add(castToIdentifier(value)); } else if (name.equals("definition")) { this.getDefinition().add(castToReference(value)); } else if (name.equals("basedOn")) { this.getBasedOn().add(castToReference(value)); } else if (name.equals("priorRequest")) { this.getPriorRequest().add(castToReference(value)); } else if (name.equals("groupIdentifier")) { this.groupIdentifier = castToIdentifier(value); // Identifier } else if (name.equals("status")) { value = new DeviceRequestStatusEnumFactory().fromType(castToCode(value)); this.status = (Enumeration) value; // Enumeration<DeviceRequestStatus> } else if (name.equals("intent")) { this.intent = castToCodeableConcept(value); // CodeableConcept } else if (name.equals("priority")) { value = new RequestPriorityEnumFactory().fromType(castToCode(value)); this.priority = (Enumeration) value; // Enumeration<RequestPriority> } else if (name.equals("code[x]")) { this.code = castToType(value); // Type } else if (name.equals("subject")) { this.subject = castToReference(value); // Reference } else if (name.equals("context")) { this.context = castToReference(value); // Reference } else if (name.equals("occurrence[x]")) { this.occurrence = castToType(value); // Type } else if (name.equals("authoredOn")) { this.authoredOn = castToDateTime(value); // DateTimeType } else if (name.equals("requester")) { this.requester = (DeviceRequestRequesterComponent) value; // DeviceRequestRequesterComponent } else if (name.equals("performerType")) { this.performerType = castToCodeableConcept(value); // CodeableConcept } else if (name.equals("performer")) { this.performer = castToReference(value); // Reference } else if (name.equals("reasonCode")) { this.getReasonCode().add(castToCodeableConcept(value)); } else if (name.equals("reasonReference")) { this.getReasonReference().add(castToReference(value)); } else if (name.equals("supportingInfo")) { this.getSupportingInfo().add(castToReference(value)); } else if (name.equals("note")) { this.getNote().add(castToAnnotation(value)); } else if (name.equals("relevantHistory")) { this.getRelevantHistory().add(castToReference(value)); } else return super.setProperty(name, value); return value; } @Override public Base makeProperty(int hash, String name) throws FHIRException { switch (hash) { case -1618432855: return addIdentifier(); case -1014418093: return addDefinition(); case -332612366: return addBasedOn(); case 237568101: return addPriorRequest(); case -445338488: return getGroupIdentifier(); case -892481550: return getStatusElement(); case -1183762788: return getIntent(); case -1165461084: return getPriorityElement(); case 941839219: return getCode(); case 3059181: return getCode(); case -1867885268: return getSubject(); case 951530927: return getContext(); case -2022646513: return getOccurrence(); case 1687874001: return getOccurrence(); case -1500852503: return getAuthoredOnElement(); case 693933948: return getRequester(); case -901444568: return getPerformerType(); case 481140686: return getPerformer(); case 722137681: return addReasonCode(); case -1146218137: return addReasonReference(); case 1922406657: return addSupportingInfo(); case 3387378: return addNote(); case 1538891575: return addRelevantHistory(); default: return super.makeProperty(hash, name); } } @Override public String[] getTypesForProperty(int hash, String name) throws FHIRException { switch (hash) { case -1618432855: /*identifier*/ return new String[] {"Identifier"}; case -1014418093: /*definition*/ return new String[] {"Reference"}; case -332612366: /*basedOn*/ return new String[] {"Reference"}; case 237568101: /*priorRequest*/ return new String[] {"Reference"}; case -445338488: /*groupIdentifier*/ return new String[] {"Identifier"}; case -892481550: /*status*/ return new String[] {"code"}; case -1183762788: /*intent*/ return new String[] {"CodeableConcept"}; case -1165461084: /*priority*/ return new String[] {"code"}; case 3059181: /*code*/ return new String[] {"Reference", "CodeableConcept"}; case -1867885268: /*subject*/ return new String[] {"Reference"}; case 951530927: /*context*/ return new String[] {"Reference"}; case 1687874001: /*occurrence*/ return new String[] {"dateTime", "Period", "Timing"}; case -1500852503: /*authoredOn*/ return new String[] {"dateTime"}; case 693933948: /*requester*/ return new String[] {}; case -901444568: /*performerType*/ return new String[] {"CodeableConcept"}; case 481140686: /*performer*/ return new String[] {"Reference"}; case 722137681: /*reasonCode*/ return new String[] {"CodeableConcept"}; case -1146218137: /*reasonReference*/ return new String[] {"Reference"}; case 1922406657: /*supportingInfo*/ return new String[] {"Reference"}; case 3387378: /*note*/ return new String[] {"Annotation"}; case 1538891575: /*relevantHistory*/ return new String[] {"Reference"}; default: return super.getTypesForProperty(hash, name); } } @Override public Base addChild(String name) throws FHIRException { if (name.equals("identifier")) { return addIdentifier(); } else if (name.equals("definition")) { return addDefinition(); } else if (name.equals("basedOn")) { return addBasedOn(); } else if (name.equals("priorRequest")) { return addPriorRequest(); } else if (name.equals("groupIdentifier")) { this.groupIdentifier = new Identifier(); return this.groupIdentifier; } else if (name.equals("status")) { throw new FHIRException("Cannot call addChild on a primitive type DeviceRequest.status"); } else if (name.equals("intent")) { this.intent = new CodeableConcept(); return this.intent; } else if (name.equals("priority")) { throw new FHIRException("Cannot call addChild on a primitive type DeviceRequest.priority"); } else if (name.equals("codeReference")) { this.code = new Reference(); return this.code; } else if (name.equals("codeCodeableConcept")) { this.code = new CodeableConcept(); return this.code; } else if (name.equals("subject")) { this.subject = new Reference(); return this.subject; } else if (name.equals("context")) { this.context = new Reference(); return this.context; } else if (name.equals("occurrenceDateTime")) { this.occurrence = new DateTimeType(); return this.occurrence; } else if (name.equals("occurrencePeriod")) { this.occurrence = new Period(); return this.occurrence; } else if (name.equals("occurrenceTiming")) { this.occurrence = new Timing(); return this.occurrence; } else if (name.equals("authoredOn")) { throw new FHIRException("Cannot call addChild on a primitive type DeviceRequest.authoredOn"); } else if (name.equals("requester")) { this.requester = new DeviceRequestRequesterComponent(); return this.requester; } else if (name.equals("performerType")) { this.performerType = new CodeableConcept(); return this.performerType; } else if (name.equals("performer")) { this.performer = new Reference(); return this.performer; } else if (name.equals("reasonCode")) { return addReasonCode(); } else if (name.equals("reasonReference")) { return addReasonReference(); } else if (name.equals("supportingInfo")) { return addSupportingInfo(); } else if (name.equals("note")) { return addNote(); } else if (name.equals("relevantHistory")) { return addRelevantHistory(); } else return super.addChild(name); } public String fhirType() { return "DeviceRequest"; } public DeviceRequest copy() { DeviceRequest dst = new DeviceRequest(); copyValues(dst); if (identifier != null) { dst.identifier = new ArrayList<Identifier>(); for (Identifier i : identifier) dst.identifier.add(i.copy()); }; if (definition != null) { dst.definition = new ArrayList<Reference>(); for (Reference i : definition) dst.definition.add(i.copy()); }; if (basedOn != null) { dst.basedOn = new ArrayList<Reference>(); for (Reference i : basedOn) dst.basedOn.add(i.copy()); }; if (priorRequest != null) { dst.priorRequest = new ArrayList<Reference>(); for (Reference i : priorRequest) dst.priorRequest.add(i.copy()); }; dst.groupIdentifier = groupIdentifier == null ? null : groupIdentifier.copy(); dst.status = status == null ? null : status.copy(); dst.intent = intent == null ? null : intent.copy(); dst.priority = priority == null ? null : priority.copy(); dst.code = code == null ? null : code.copy(); dst.subject = subject == null ? null : subject.copy(); dst.context = context == null ? null : context.copy(); dst.occurrence = occurrence == null ? null : occurrence.copy(); dst.authoredOn = authoredOn == null ? null : authoredOn.copy(); dst.requester = requester == null ? null : requester.copy(); dst.performerType = performerType == null ? null : performerType.copy(); dst.performer = performer == null ? null : performer.copy(); if (reasonCode != null) { dst.reasonCode = new ArrayList<CodeableConcept>(); for (CodeableConcept i : reasonCode) dst.reasonCode.add(i.copy()); }; if (reasonReference != null) { dst.reasonReference = new ArrayList<Reference>(); for (Reference i : reasonReference) dst.reasonReference.add(i.copy()); }; if (supportingInfo != null) { dst.supportingInfo = new ArrayList<Reference>(); for (Reference i : supportingInfo) dst.supportingInfo.add(i.copy()); }; if (note != null) { dst.note = new ArrayList<Annotation>(); for (Annotation i : note) dst.note.add(i.copy()); }; if (relevantHistory != null) { dst.relevantHistory = new ArrayList<Reference>(); for (Reference i : relevantHistory) dst.relevantHistory.add(i.copy()); }; return dst; } protected DeviceRequest typedCopy() { return copy(); } @Override public boolean equalsDeep(Base other) { if (!super.equalsDeep(other)) return false; if (!(other instanceof DeviceRequest)) return false; DeviceRequest o = (DeviceRequest) other; return compareDeep(identifier, o.identifier, true) && compareDeep(definition, o.definition, true) && compareDeep(basedOn, o.basedOn, true) && compareDeep(priorRequest, o.priorRequest, true) && compareDeep(groupIdentifier, o.groupIdentifier, true) && compareDeep(status, o.status, true) && compareDeep(intent, o.intent, true) && compareDeep(priority, o.priority, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) && compareDeep(context, o.context, true) && compareDeep(occurrence, o.occurrence, true) && compareDeep(authoredOn, o.authoredOn, true) && compareDeep(requester, o.requester, true) && compareDeep(performerType, o.performerType, true) && compareDeep(performer, o.performer, true) && compareDeep(reasonCode, o.reasonCode, true) && compareDeep(reasonReference, o.reasonReference, true) && compareDeep(supportingInfo, o.supportingInfo, true) && compareDeep(note, o.note, true) && compareDeep(relevantHistory, o.relevantHistory, true) ; } @Override public boolean equalsShallow(Base other) { if (!super.equalsShallow(other)) return false; if (!(other instanceof DeviceRequest)) return false; DeviceRequest o = (DeviceRequest) other; return compareValues(status, o.status, true) && compareValues(priority, o.priority, true) && compareValues(authoredOn, o.authoredOn, true) ; } public boolean isEmpty() { return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, definition, basedOn , priorRequest, groupIdentifier, status, intent, priority, code, subject, context , occurrence, authoredOn, requester, performerType, performer, reasonCode, reasonReference , supportingInfo, note, relevantHistory); } @Override public ResourceType getResourceType() { return ResourceType.DeviceRequest; } /** * Search parameter: <b>requester</b> * <p> * Description: <b>Who/what is requesting service </b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.requester.agent</b><br> * </p> */ @SearchParamDefinition(name="requester", path="DeviceRequest.requester.agent", description="Who/what is requesting service ", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Device.class, Organization.class, Practitioner.class } ) public static final String SP_REQUESTER = "requester"; /** * <b>Fluent Client</b> search parameter constant for <b>requester</b> * <p> * Description: <b>Who/what is requesting service </b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.requester.agent</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUESTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUESTER); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>DeviceRequest:requester</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUESTER = new ca.uhn.fhir.model.api.Include("DeviceRequest:requester").toLocked(); /** * Search parameter: <b>identifier</b> * <p> * Description: <b>Business identifier for request/order</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.identifier</b><br> * </p> */ @SearchParamDefinition(name="identifier", path="DeviceRequest.identifier", description="Business identifier for request/order", type="token" ) public static final String SP_IDENTIFIER = "identifier"; /** * <b>Fluent Client</b> search parameter constant for <b>identifier</b> * <p> * Description: <b>Business identifier for request/order</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.identifier</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); /** * Search parameter: <b>code</b> * <p> * Description: <b>Code for what is being requested/ordered</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.codeCodeableConcept</b><br> * </p> */ @SearchParamDefinition(name="code", path="DeviceRequest.code.as(CodeableConcept)", description="Code for what is being requested/ordered", type="token" ) public static final String SP_CODE = "code"; /** * <b>Fluent Client</b> search parameter constant for <b>code</b> * <p> * Description: <b>Code for what is being requested/ordered</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.codeCodeableConcept</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); /** * Search parameter: <b>performer</b> * <p> * Description: <b>Desired performer for service</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.performer</b><br> * </p> */ @SearchParamDefinition(name="performer", path="DeviceRequest.performer", description="Desired performer for service", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Device.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, RelatedPerson.class } ) public static final String SP_PERFORMER = "performer"; /** * <b>Fluent Client</b> search parameter constant for <b>performer</b> * <p> * Description: <b>Desired performer for service</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.performer</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PERFORMER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PERFORMER); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>DeviceRequest:performer</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMER = new ca.uhn.fhir.model.api.Include("DeviceRequest:performer").toLocked(); /** * Search parameter: <b>event-date</b> * <p> * Description: <b>When service should occur</b><br> * Type: <b>date</b><br> * Path: <b>DeviceRequest.occurrenceDateTime, DeviceRequest.occurrencePeriod</b><br> * </p> */ @SearchParamDefinition(name="event-date", path="DeviceRequest.occurrence.as(DateTime) | DeviceRequest.occurrence.as(Period)", description="When service should occur", type="date" ) public static final String SP_EVENT_DATE = "event-date"; /** * <b>Fluent Client</b> search parameter constant for <b>event-date</b> * <p> * Description: <b>When service should occur</b><br> * Type: <b>date</b><br> * Path: <b>DeviceRequest.occurrenceDateTime, DeviceRequest.occurrencePeriod</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.DateClientParam EVENT_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EVENT_DATE); /** * Search parameter: <b>subject</b> * <p> * Description: <b>Individual the service is ordered for</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.subject</b><br> * </p> */ @SearchParamDefinition(name="subject", path="DeviceRequest.subject", description="Individual the service is ordered for", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Device.class, Group.class, Location.class, Patient.class } ) public static final String SP_SUBJECT = "subject"; /** * <b>Fluent Client</b> search parameter constant for <b>subject</b> * <p> * Description: <b>Individual the service is ordered for</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.subject</b><br> * </p> */ 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 "<b>DeviceRequest:subject</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("DeviceRequest:subject").toLocked(); /** * Search parameter: <b>encounter</b> * <p> * Description: <b>Encounter or Episode during which request was created</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.context</b><br> * </p> */ @SearchParamDefinition(name="encounter", path="DeviceRequest.context", description="Encounter or Episode during which request was created", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Encounter") }, target={Encounter.class, EpisodeOfCare.class } ) public static final String SP_ENCOUNTER = "encounter"; /** * <b>Fluent Client</b> search parameter constant for <b>encounter</b> * <p> * Description: <b>Encounter or Episode during which request was created</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.context</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>DeviceRequest:encounter</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("DeviceRequest:encounter").toLocked(); /** * Search parameter: <b>authored-on</b> * <p> * Description: <b>When the request transitioned to being actionable</b><br> * Type: <b>date</b><br> * Path: <b>DeviceRequest.authoredOn</b><br> * </p> */ @SearchParamDefinition(name="authored-on", path="DeviceRequest.authoredOn", description="When the request transitioned to being actionable", type="date" ) public static final String SP_AUTHORED_ON = "authored-on"; /** * <b>Fluent Client</b> search parameter constant for <b>authored-on</b> * <p> * Description: <b>When the request transitioned to being actionable</b><br> * Type: <b>date</b><br> * Path: <b>DeviceRequest.authoredOn</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.DateClientParam AUTHORED_ON = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_AUTHORED_ON); /** * Search parameter: <b>intent</b> * <p> * Description: <b>proposal | plan | original-order |reflex-order</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.intent</b><br> * </p> */ @SearchParamDefinition(name="intent", path="DeviceRequest.intent", description="proposal | plan | original-order |reflex-order", type="token" ) public static final String SP_INTENT = "intent"; /** * <b>Fluent Client</b> search parameter constant for <b>intent</b> * <p> * Description: <b>proposal | plan | original-order |reflex-order</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.intent</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.TokenClientParam INTENT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_INTENT); /** * Search parameter: <b>group-identifier</b> * <p> * Description: <b>Composite request this is part of</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.groupIdentifier</b><br> * </p> */ @SearchParamDefinition(name="group-identifier", path="DeviceRequest.groupIdentifier", description="Composite request this is part of", type="token" ) public static final String SP_GROUP_IDENTIFIER = "group-identifier"; /** * <b>Fluent Client</b> search parameter constant for <b>group-identifier</b> * <p> * Description: <b>Composite request this is part of</b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.groupIdentifier</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.TokenClientParam GROUP_IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GROUP_IDENTIFIER); /** * Search parameter: <b>based-on</b> * <p> * Description: <b>Plan/proposal/order fulfilled by this request</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.basedOn</b><br> * </p> */ @SearchParamDefinition(name="based-on", path="DeviceRequest.basedOn", description="Plan/proposal/order fulfilled by this request", type="reference" ) public static final String SP_BASED_ON = "based-on"; /** * <b>Fluent Client</b> search parameter constant for <b>based-on</b> * <p> * Description: <b>Plan/proposal/order fulfilled by this request</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.basedOn</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>DeviceRequest:based-on</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("DeviceRequest:based-on").toLocked(); /** * Search parameter: <b>priorrequest</b> * <p> * Description: <b>Request takes the place of referenced completed or terminated requests</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.priorRequest</b><br> * </p> */ @SearchParamDefinition(name="priorrequest", path="DeviceRequest.priorRequest", description="Request takes the place of referenced completed or terminated requests", type="reference" ) public static final String SP_PRIORREQUEST = "priorrequest"; /** * <b>Fluent Client</b> search parameter constant for <b>priorrequest</b> * <p> * Description: <b>Request takes the place of referenced completed or terminated requests</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.priorRequest</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRIORREQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRIORREQUEST); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>DeviceRequest:priorrequest</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_PRIORREQUEST = new ca.uhn.fhir.model.api.Include("DeviceRequest:priorrequest").toLocked(); /** * Search parameter: <b>patient</b> * <p> * Description: <b>Individual the service is ordered for</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.subject</b><br> * </p> */ @SearchParamDefinition(name="patient", path="DeviceRequest.subject", description="Individual the service is ordered for", type="reference", target={Patient.class } ) public static final String SP_PATIENT = "patient"; /** * <b>Fluent Client</b> search parameter constant for <b>patient</b> * <p> * Description: <b>Individual the service is ordered for</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.subject</b><br> * </p> */ 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 "<b>DeviceRequest:patient</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("DeviceRequest:patient").toLocked(); /** * Search parameter: <b>definition</b> * <p> * Description: <b>Protocol or definition followed by this request</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.definition</b><br> * </p> */ @SearchParamDefinition(name="definition", path="DeviceRequest.definition", description="Protocol or definition followed by this request", type="reference", target={ActivityDefinition.class, PlanDefinition.class } ) public static final String SP_DEFINITION = "definition"; /** * <b>Fluent Client</b> search parameter constant for <b>definition</b> * <p> * Description: <b>Protocol or definition followed by this request</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.definition</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEFINITION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEFINITION); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>DeviceRequest:definition</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_DEFINITION = new ca.uhn.fhir.model.api.Include("DeviceRequest:definition").toLocked(); /** * Search parameter: <b>device</b> * <p> * Description: <b>Reference to resource that is being requested/ordered</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.codeReference</b><br> * </p> */ @SearchParamDefinition(name="device", path="DeviceRequest.code.as(Reference)", description="Reference to resource that is being requested/ordered", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device") }, target={Device.class } ) public static final String SP_DEVICE = "device"; /** * <b>Fluent Client</b> search parameter constant for <b>device</b> * <p> * Description: <b>Reference to resource that is being requested/ordered</b><br> * Type: <b>reference</b><br> * Path: <b>DeviceRequest.codeReference</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEVICE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEVICE); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>DeviceRequest:device</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_DEVICE = new ca.uhn.fhir.model.api.Include("DeviceRequest:device").toLocked(); /** * Search parameter: <b>status</b> * <p> * Description: <b>entered-in-error | draft | active |suspended | completed </b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.status</b><br> * </p> */ @SearchParamDefinition(name="status", path="DeviceRequest.status", description="entered-in-error | draft | active |suspended | completed ", type="token" ) public static final String SP_STATUS = "status"; /** * <b>Fluent Client</b> search parameter constant for <b>status</b> * <p> * Description: <b>entered-in-error | draft | active |suspended | completed </b><br> * Type: <b>token</b><br> * Path: <b>DeviceRequest.status</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); }