package org.hl7.fhir.dstu2016may.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 Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0 import java.util.ArrayList; import java.util.List; import org.hl7.fhir.exceptions.FHIRException; import org.hl7.fhir.instance.model.api.IBaseBackboneElement; import ca.uhn.fhir.model.api.annotation.Block; import ca.uhn.fhir.model.api.annotation.Child; import ca.uhn.fhir.model.api.annotation.Description; import ca.uhn.fhir.model.api.annotation.ResourceDef; import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; /** * An action that is or was performed on a patient. This can be a physical intervention like an operation, or less invasive like counseling or hypnotherapy. */ @ResourceDef(name="Procedure", profile="http://hl7.org/fhir/Profile/Procedure") public class Procedure extends DomainResource { public enum ProcedureStatus { /** * The procedure is still occurring. */ INPROGRESS, /** * The procedure was terminated without completing successfully. */ ABORTED, /** * All actions involved in the procedure have taken place. */ COMPLETED, /** * The statement was entered in error and Is not valid. */ ENTEREDINERROR, /** * added to help the parsers */ NULL; public static ProcedureStatus fromCode(String codeString) throws FHIRException { if (codeString == null || "".equals(codeString)) return null; if ("in-progress".equals(codeString)) return INPROGRESS; if ("aborted".equals(codeString)) return ABORTED; if ("completed".equals(codeString)) return COMPLETED; if ("entered-in-error".equals(codeString)) return ENTEREDINERROR; throw new FHIRException("Unknown ProcedureStatus code '"+codeString+"'"); } public String toCode() { switch (this) { case INPROGRESS: return "in-progress"; case ABORTED: return "aborted"; case COMPLETED: return "completed"; case ENTEREDINERROR: return "entered-in-error"; default: return "?"; } } public String getSystem() { switch (this) { case INPROGRESS: return "http://hl7.org/fhir/procedure-status"; case ABORTED: return "http://hl7.org/fhir/procedure-status"; case COMPLETED: return "http://hl7.org/fhir/procedure-status"; case ENTEREDINERROR: return "http://hl7.org/fhir/procedure-status"; default: return "?"; } } public String getDefinition() { switch (this) { case INPROGRESS: return "The procedure is still occurring."; case ABORTED: return "The procedure was terminated without completing successfully."; case COMPLETED: return "All actions involved in the procedure have taken place."; case ENTEREDINERROR: return "The statement was entered in error and Is not valid."; default: return "?"; } } public String getDisplay() { switch (this) { case INPROGRESS: return "In Progress"; case ABORTED: return "Aboted"; case COMPLETED: return "Completed"; case ENTEREDINERROR: return "Entered in Error"; default: return "?"; } } } public static class ProcedureStatusEnumFactory implements EnumFactory<ProcedureStatus> { public ProcedureStatus fromCode(String codeString) throws IllegalArgumentException { if (codeString == null || "".equals(codeString)) if (codeString == null || "".equals(codeString)) return null; if ("in-progress".equals(codeString)) return ProcedureStatus.INPROGRESS; if ("aborted".equals(codeString)) return ProcedureStatus.ABORTED; if ("completed".equals(codeString)) return ProcedureStatus.COMPLETED; if ("entered-in-error".equals(codeString)) return ProcedureStatus.ENTEREDINERROR; throw new IllegalArgumentException("Unknown ProcedureStatus code '"+codeString+"'"); } public Enumeration<ProcedureStatus> fromType(Base code) throws FHIRException { if (code == null || code.isEmpty()) return null; String codeString = ((PrimitiveType) code).asStringValue(); if (codeString == null || "".equals(codeString)) return null; if ("in-progress".equals(codeString)) return new Enumeration<ProcedureStatus>(this, ProcedureStatus.INPROGRESS); if ("aborted".equals(codeString)) return new Enumeration<ProcedureStatus>(this, ProcedureStatus.ABORTED); if ("completed".equals(codeString)) return new Enumeration<ProcedureStatus>(this, ProcedureStatus.COMPLETED); if ("entered-in-error".equals(codeString)) return new Enumeration<ProcedureStatus>(this, ProcedureStatus.ENTEREDINERROR); throw new FHIRException("Unknown ProcedureStatus code '"+codeString+"'"); } public String toCode(ProcedureStatus code) { if (code == ProcedureStatus.INPROGRESS) return "in-progress"; if (code == ProcedureStatus.ABORTED) return "aborted"; if (code == ProcedureStatus.COMPLETED) return "completed"; if (code == ProcedureStatus.ENTEREDINERROR) return "entered-in-error"; return "?"; } public String toSystem(ProcedureStatus code) { return code.getSystem(); } } @Block() public static class ProcedurePerformerComponent extends BackboneElement implements IBaseBackboneElement { /** * The practitioner who was involved in the procedure. */ @Child(name = "actor", type = {Practitioner.class, Organization.class, Patient.class, RelatedPerson.class}, order=1, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="The reference to the practitioner", formalDefinition="The practitioner who was involved in the procedure." ) protected Reference actor; /** * The actual object that is the target of the reference (The practitioner who was involved in the procedure.) */ protected Resource actorTarget; /** * For example: surgeon, anaethetist, endoscopist. */ @Child(name = "role", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="The role the actor was in", formalDefinition="For example: surgeon, anaethetist, endoscopist." ) protected CodeableConcept role; private static final long serialVersionUID = -843698327L; /** * Constructor */ public ProcedurePerformerComponent() { super(); } /** * @return {@link #actor} (The practitioner who was involved in the procedure.) */ public Reference getActor() { if (this.actor == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create ProcedurePerformerComponent.actor"); else if (Configuration.doAutoCreate()) this.actor = new Reference(); // cc return this.actor; } public boolean hasActor() { return this.actor != null && !this.actor.isEmpty(); } /** * @param value {@link #actor} (The practitioner who was involved in the procedure.) */ public ProcedurePerformerComponent setActor(Reference value) { this.actor = value; return this; } /** * @return {@link #actor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who was involved in the procedure.) */ public Resource getActorTarget() { return this.actorTarget; } /** * @param value {@link #actor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who was involved in the procedure.) */ public ProcedurePerformerComponent setActorTarget(Resource value) { this.actorTarget = value; return this; } /** * @return {@link #role} (For example: surgeon, anaethetist, endoscopist.) */ public CodeableConcept getRole() { if (this.role == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create ProcedurePerformerComponent.role"); else if (Configuration.doAutoCreate()) this.role = new CodeableConcept(); // cc return this.role; } public boolean hasRole() { return this.role != null && !this.role.isEmpty(); } /** * @param value {@link #role} (For example: surgeon, anaethetist, endoscopist.) */ public ProcedurePerformerComponent setRole(CodeableConcept value) { this.role = value; return this; } protected void listChildren(List<Property> childrenList) { super.listChildren(childrenList); childrenList.add(new Property("actor", "Reference(Practitioner|Organization|Patient|RelatedPerson)", "The practitioner who was involved in the procedure.", 0, java.lang.Integer.MAX_VALUE, actor)); childrenList.add(new Property("role", "CodeableConcept", "For example: surgeon, anaethetist, endoscopist.", 0, java.lang.Integer.MAX_VALUE, role)); } @Override public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { switch (hash) { case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference case 3506294: /*role*/ return this.role == null ? new Base[0] : new Base[] {this.role}; // CodeableConcept default: return super.getProperty(hash, name, checkValid); } } @Override public void setProperty(int hash, String name, Base value) throws FHIRException { switch (hash) { case 92645877: // actor this.actor = castToReference(value); // Reference break; case 3506294: // role this.role = castToCodeableConcept(value); // CodeableConcept break; default: super.setProperty(hash, name, value); } } @Override public void setProperty(String name, Base value) throws FHIRException { if (name.equals("actor")) this.actor = castToReference(value); // Reference else if (name.equals("role")) this.role = castToCodeableConcept(value); // CodeableConcept else super.setProperty(name, value); } @Override public Base makeProperty(int hash, String name) throws FHIRException { switch (hash) { case 92645877: return getActor(); // Reference case 3506294: return getRole(); // CodeableConcept default: return super.makeProperty(hash, name); } } @Override public Base addChild(String name) throws FHIRException { if (name.equals("actor")) { this.actor = new Reference(); return this.actor; } else if (name.equals("role")) { this.role = new CodeableConcept(); return this.role; } else return super.addChild(name); } public ProcedurePerformerComponent copy() { ProcedurePerformerComponent dst = new ProcedurePerformerComponent(); copyValues(dst); dst.actor = actor == null ? null : actor.copy(); dst.role = role == null ? null : role.copy(); return dst; } @Override public boolean equalsDeep(Base other) { if (!super.equalsDeep(other)) return false; if (!(other instanceof ProcedurePerformerComponent)) return false; ProcedurePerformerComponent o = (ProcedurePerformerComponent) other; return compareDeep(actor, o.actor, true) && compareDeep(role, o.role, true); } @Override public boolean equalsShallow(Base other) { if (!super.equalsShallow(other)) return false; if (!(other instanceof ProcedurePerformerComponent)) return false; ProcedurePerformerComponent o = (ProcedurePerformerComponent) other; return true; } public boolean isEmpty() { return super.isEmpty() && (actor == null || actor.isEmpty()) && (role == null || role.isEmpty()) ; } public String fhirType() { return "Procedure.performer"; } } @Block() public static class ProcedureFocalDeviceComponent extends BackboneElement implements IBaseBackboneElement { /** * The kind of change that happened to the device during the procedure. */ @Child(name = "action", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) @Description(shortDefinition="Kind of change to device", formalDefinition="The kind of change that happened to the device during the procedure." ) protected CodeableConcept action; /** * The device that was manipulated (changed) during the procedure. */ @Child(name = "manipulated", type = {Device.class}, order=2, min=1, max=1, modifier=false, summary=false) @Description(shortDefinition="Device that was changed", formalDefinition="The device that was manipulated (changed) during the procedure." ) protected Reference manipulated; /** * The actual object that is the target of the reference (The device that was manipulated (changed) during the procedure.) */ protected Device manipulatedTarget; private static final long serialVersionUID = 1779937807L; /** * Constructor */ public ProcedureFocalDeviceComponent() { super(); } /** * Constructor */ public ProcedureFocalDeviceComponent(Reference manipulated) { super(); this.manipulated = manipulated; } /** * @return {@link #action} (The kind of change that happened to the device during the procedure.) */ public CodeableConcept getAction() { if (this.action == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create ProcedureFocalDeviceComponent.action"); else if (Configuration.doAutoCreate()) this.action = new CodeableConcept(); // cc return this.action; } public boolean hasAction() { return this.action != null && !this.action.isEmpty(); } /** * @param value {@link #action} (The kind of change that happened to the device during the procedure.) */ public ProcedureFocalDeviceComponent setAction(CodeableConcept value) { this.action = value; return this; } /** * @return {@link #manipulated} (The device that was manipulated (changed) during the procedure.) */ public Reference getManipulated() { if (this.manipulated == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create ProcedureFocalDeviceComponent.manipulated"); else if (Configuration.doAutoCreate()) this.manipulated = new Reference(); // cc return this.manipulated; } public boolean hasManipulated() { return this.manipulated != null && !this.manipulated.isEmpty(); } /** * @param value {@link #manipulated} (The device that was manipulated (changed) during the procedure.) */ public ProcedureFocalDeviceComponent setManipulated(Reference value) { this.manipulated = value; return this; } /** * @return {@link #manipulated} 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 that was manipulated (changed) during the procedure.) */ public Device getManipulatedTarget() { if (this.manipulatedTarget == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create ProcedureFocalDeviceComponent.manipulated"); else if (Configuration.doAutoCreate()) this.manipulatedTarget = new Device(); // aa return this.manipulatedTarget; } /** * @param value {@link #manipulated} 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 that was manipulated (changed) during the procedure.) */ public ProcedureFocalDeviceComponent setManipulatedTarget(Device value) { this.manipulatedTarget = value; return this; } protected void listChildren(List<Property> childrenList) { super.listChildren(childrenList); childrenList.add(new Property("action", "CodeableConcept", "The kind of change that happened to the device during the procedure.", 0, java.lang.Integer.MAX_VALUE, action)); childrenList.add(new Property("manipulated", "Reference(Device)", "The device that was manipulated (changed) during the procedure.", 0, java.lang.Integer.MAX_VALUE, manipulated)); } @Override public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { switch (hash) { case -1422950858: /*action*/ return this.action == null ? new Base[0] : new Base[] {this.action}; // CodeableConcept case 947372650: /*manipulated*/ return this.manipulated == null ? new Base[0] : new Base[] {this.manipulated}; // Reference default: return super.getProperty(hash, name, checkValid); } } @Override public void setProperty(int hash, String name, Base value) throws FHIRException { switch (hash) { case -1422950858: // action this.action = castToCodeableConcept(value); // CodeableConcept break; case 947372650: // manipulated this.manipulated = castToReference(value); // Reference break; default: super.setProperty(hash, name, value); } } @Override public void setProperty(String name, Base value) throws FHIRException { if (name.equals("action")) this.action = castToCodeableConcept(value); // CodeableConcept else if (name.equals("manipulated")) this.manipulated = castToReference(value); // Reference else super.setProperty(name, value); } @Override public Base makeProperty(int hash, String name) throws FHIRException { switch (hash) { case -1422950858: return getAction(); // CodeableConcept case 947372650: return getManipulated(); // Reference default: return super.makeProperty(hash, name); } } @Override public Base addChild(String name) throws FHIRException { if (name.equals("action")) { this.action = new CodeableConcept(); return this.action; } else if (name.equals("manipulated")) { this.manipulated = new Reference(); return this.manipulated; } else return super.addChild(name); } public ProcedureFocalDeviceComponent copy() { ProcedureFocalDeviceComponent dst = new ProcedureFocalDeviceComponent(); copyValues(dst); dst.action = action == null ? null : action.copy(); dst.manipulated = manipulated == null ? null : manipulated.copy(); return dst; } @Override public boolean equalsDeep(Base other) { if (!super.equalsDeep(other)) return false; if (!(other instanceof ProcedureFocalDeviceComponent)) return false; ProcedureFocalDeviceComponent o = (ProcedureFocalDeviceComponent) other; return compareDeep(action, o.action, true) && compareDeep(manipulated, o.manipulated, true); } @Override public boolean equalsShallow(Base other) { if (!super.equalsShallow(other)) return false; if (!(other instanceof ProcedureFocalDeviceComponent)) return false; ProcedureFocalDeviceComponent o = (ProcedureFocalDeviceComponent) other; return true; } public boolean isEmpty() { return super.isEmpty() && (action == null || action.isEmpty()) && (manipulated == null || manipulated.isEmpty()) ; } public String fhirType() { return "Procedure.focalDevice"; } } /** * This records identifiers associated with this procedure that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). */ @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="External Identifiers for this procedure", formalDefinition="This records identifiers associated with this procedure that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) protected List<Identifier> identifier; /** * The person, animal or group on which the procedure was performed. */ @Child(name = "subject", type = {Patient.class, Group.class}, order=1, min=1, max=1, modifier=false, summary=true) @Description(shortDefinition="Who the procedure was performed on", formalDefinition="The person, animal or group on which the procedure was performed." ) protected Reference subject; /** * The actual object that is the target of the reference (The person, animal or group on which the procedure was performed.) */ protected Resource subjectTarget; /** * A code specifying the state of the procedure. Generally this will be in-progress or completed state. */ @Child(name = "status", type = {CodeType.class}, order=2, min=1, max=1, modifier=true, summary=true) @Description(shortDefinition="in-progress | aborted | completed | entered-in-error", formalDefinition="A code specifying the state of the procedure. Generally this will be in-progress or completed state." ) protected Enumeration<ProcedureStatus> status; /** * A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure"). */ @Child(name = "category", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Classification of the procedure", formalDefinition="A code that classifies the procedure for searching, sorting and display purposes (e.g. \"Surgical Procedure\")." ) protected CodeableConcept category; /** * The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy"). */ @Child(name = "code", type = {CodeableConcept.class}, order=4, min=1, max=1, modifier=false, summary=true) @Description(shortDefinition="Identification of the procedure", formalDefinition="The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. \"Laparoscopic Appendectomy\")." ) protected CodeableConcept code; /** * Set this to true if the record is saying that the procedure was NOT performed. */ @Child(name = "notPerformed", type = {BooleanType.class}, order=5, min=0, max=1, modifier=true, summary=false) @Description(shortDefinition="True if procedure was not performed as scheduled", formalDefinition="Set this to true if the record is saying that the procedure was NOT performed." ) protected BooleanType notPerformed; /** * A code indicating why the procedure was not performed. */ @Child(name = "reasonNotPerformed", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Reason procedure was not performed", formalDefinition="A code indicating why the procedure was not performed." ) protected List<CodeableConcept> reasonNotPerformed; /** * Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion. */ @Child(name = "bodySite", type = {CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="Target body sites", formalDefinition="Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion." ) protected List<CodeableConcept> bodySite; /** * The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text. */ @Child(name = "reason", type = {CodeableConcept.class, Condition.class}, order=8, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Reason procedure performed", formalDefinition="The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text." ) protected Type reason; /** * Limited to 'real' people rather than equipment. */ @Child(name = "performer", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) @Description(shortDefinition="The people who performed the procedure", formalDefinition="Limited to 'real' people rather than equipment." ) protected List<ProcedurePerformerComponent> performer; /** * The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured. */ @Child(name = "performed", type = {DateTimeType.class, Period.class}, order=10, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Date/Period the procedure was performed", formalDefinition="The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured." ) protected Type performed; /** * The encounter during which the procedure was performed. */ @Child(name = "encounter", type = {Encounter.class}, order=11, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="The encounter associated with the procedure", formalDefinition="The encounter during which the procedure was performed." ) protected Reference encounter; /** * The actual object that is the target of the reference (The encounter during which the procedure was performed.) */ protected Encounter encounterTarget; /** * The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant. */ @Child(name = "location", type = {Location.class}, order=12, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="Where the procedure happened", formalDefinition="The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant." ) protected Reference location; /** * The actual object that is the target of the reference (The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.) */ protected Location locationTarget; /** * The outcome of the procedure - did it resolve reasons for the procedure being performed? */ @Child(name = "outcome", type = {CodeableConcept.class}, order=13, min=0, max=1, modifier=false, summary=true) @Description(shortDefinition="The result of procedure", formalDefinition="The outcome of the procedure - did it resolve reasons for the procedure being performed?" ) protected CodeableConcept outcome; /** * This could be a histology result, pathology report, surgical report, etc.. */ @Child(name = "report", type = {DiagnosticReport.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Any report resulting from the procedure", formalDefinition="This could be a histology result, pathology report, surgical report, etc.." ) protected List<Reference> report; /** * The actual objects that are the target of the reference (This could be a histology result, pathology report, surgical report, etc..) */ protected List<DiagnosticReport> reportTarget; /** * Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues. */ @Child(name = "complication", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Complication following the procedure", formalDefinition="Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues." ) protected List<CodeableConcept> complication; /** * If the procedure required specific follow up - e.g. removal of sutures. The followup may be represented as a simple note, or could potentially be more complex in which case the CarePlan resource can be used. */ @Child(name = "followUp", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Instructions for follow up", formalDefinition="If the procedure required specific follow up - e.g. removal of sutures. The followup may be represented as a simple note, or could potentially be more complex in which case the CarePlan resource can be used." ) protected List<CodeableConcept> followUp; /** * A reference to a resource that contains details of the request for this procedure. */ @Child(name = "request", type = {CarePlan.class, DiagnosticOrder.class, ProcedureRequest.class, ReferralRequest.class}, order=17, min=0, max=1, modifier=false, summary=false) @Description(shortDefinition="A request for this procedure", formalDefinition="A reference to a resource that contains details of the request for this procedure." ) protected Reference request; /** * The actual object that is the target of the reference (A reference to a resource that contains details of the request for this procedure.) */ protected Resource requestTarget; /** * Any other notes about the procedure. E.g. the operative notes. */ @Child(name = "notes", type = {Annotation.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Additional information about the procedure", formalDefinition="Any other notes about the procedure. E.g. the operative notes." ) protected List<Annotation> notes; /** * A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure. */ @Child(name = "focalDevice", type = {}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Device changed in procedure", formalDefinition="A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure." ) protected List<ProcedureFocalDeviceComponent> focalDevice; /** * Identifies medications, devices and any other substance used as part of the procedure. */ @Child(name = "used", type = {Device.class, Medication.class, Substance.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Description(shortDefinition="Items used during procedure", formalDefinition="Identifies medications, devices and any other substance used as part of the procedure." ) protected List<Reference> used; /** * The actual objects that are the target of the reference (Identifies medications, devices and any other substance used as part of the procedure.) */ protected List<Resource> usedTarget; private static final long serialVersionUID = -489125036L; /** * Constructor */ public Procedure() { super(); } /** * Constructor */ public Procedure(Reference subject, Enumeration<ProcedureStatus> status, CodeableConcept code) { super(); this.subject = subject; this.status = status; this.code = code; } /** * @return {@link #identifier} (This records identifiers associated with this procedure that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) */ public List<Identifier> getIdentifier() { if (this.identifier == null) this.identifier = new ArrayList<Identifier>(); return this.identifier; } public boolean hasIdentifier() { if (this.identifier == null) return false; for (Identifier item : this.identifier) if (!item.isEmpty()) return true; return false; } /** * @return {@link #identifier} (This records identifiers associated with this procedure that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) */ // syntactic sugar public Identifier addIdentifier() { //3 Identifier t = new Identifier(); if (this.identifier == null) this.identifier = new ArrayList<Identifier>(); this.identifier.add(t); return t; } // syntactic sugar public Procedure 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 {@link #subject} (The person, animal or group on which the procedure was performed.) */ public Reference getSubject() { if (this.subject == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.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 person, animal or group on which the procedure was performed.) */ public Procedure 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 person, animal or group on which the procedure was performed.) */ 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 person, animal or group on which the procedure was performed.) */ public Procedure setSubjectTarget(Resource value) { this.subjectTarget = value; return this; } /** * @return {@link #status} (A code specifying the state of the procedure. Generally this will be in-progress or completed state.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value */ public Enumeration<ProcedureStatus> getStatusElement() { if (this.status == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.status"); else if (Configuration.doAutoCreate()) this.status = new Enumeration<ProcedureStatus>(new ProcedureStatusEnumFactory()); // 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} (A code specifying the state of the procedure. Generally this will be in-progress or completed state.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value */ public Procedure setStatusElement(Enumeration<ProcedureStatus> value) { this.status = value; return this; } /** * @return A code specifying the state of the procedure. Generally this will be in-progress or completed state. */ public ProcedureStatus getStatus() { return this.status == null ? null : this.status.getValue(); } /** * @param value A code specifying the state of the procedure. Generally this will be in-progress or completed state. */ public Procedure setStatus(ProcedureStatus value) { if (this.status == null) this.status = new Enumeration<ProcedureStatus>(new ProcedureStatusEnumFactory()); this.status.setValue(value); return this; } /** * @return {@link #category} (A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure").) */ public CodeableConcept getCategory() { if (this.category == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.category"); else if (Configuration.doAutoCreate()) this.category = new CodeableConcept(); // cc return this.category; } public boolean hasCategory() { return this.category != null && !this.category.isEmpty(); } /** * @param value {@link #category} (A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure").) */ public Procedure setCategory(CodeableConcept value) { this.category = value; return this; } /** * @return {@link #code} (The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy").) */ public CodeableConcept getCode() { if (this.code == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.code"); else if (Configuration.doAutoCreate()) this.code = new CodeableConcept(); // cc return this.code; } public boolean hasCode() { return this.code != null && !this.code.isEmpty(); } /** * @param value {@link #code} (The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy").) */ public Procedure setCode(CodeableConcept value) { this.code = value; return this; } /** * @return {@link #notPerformed} (Set this to true if the record is saying that the procedure was NOT performed.). This is the underlying object with id, value and extensions. The accessor "getNotPerformed" gives direct access to the value */ public BooleanType getNotPerformedElement() { if (this.notPerformed == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.notPerformed"); else if (Configuration.doAutoCreate()) this.notPerformed = new BooleanType(); // bb return this.notPerformed; } public boolean hasNotPerformedElement() { return this.notPerformed != null && !this.notPerformed.isEmpty(); } public boolean hasNotPerformed() { return this.notPerformed != null && !this.notPerformed.isEmpty(); } /** * @param value {@link #notPerformed} (Set this to true if the record is saying that the procedure was NOT performed.). This is the underlying object with id, value and extensions. The accessor "getNotPerformed" gives direct access to the value */ public Procedure setNotPerformedElement(BooleanType value) { this.notPerformed = value; return this; } /** * @return Set this to true if the record is saying that the procedure was NOT performed. */ public boolean getNotPerformed() { return this.notPerformed == null || this.notPerformed.isEmpty() ? false : this.notPerformed.getValue(); } /** * @param value Set this to true if the record is saying that the procedure was NOT performed. */ public Procedure setNotPerformed(boolean value) { if (this.notPerformed == null) this.notPerformed = new BooleanType(); this.notPerformed.setValue(value); return this; } /** * @return {@link #reasonNotPerformed} (A code indicating why the procedure was not performed.) */ public List<CodeableConcept> getReasonNotPerformed() { if (this.reasonNotPerformed == null) this.reasonNotPerformed = new ArrayList<CodeableConcept>(); return this.reasonNotPerformed; } public boolean hasReasonNotPerformed() { if (this.reasonNotPerformed == null) return false; for (CodeableConcept item : this.reasonNotPerformed) if (!item.isEmpty()) return true; return false; } /** * @return {@link #reasonNotPerformed} (A code indicating why the procedure was not performed.) */ // syntactic sugar public CodeableConcept addReasonNotPerformed() { //3 CodeableConcept t = new CodeableConcept(); if (this.reasonNotPerformed == null) this.reasonNotPerformed = new ArrayList<CodeableConcept>(); this.reasonNotPerformed.add(t); return t; } // syntactic sugar public Procedure addReasonNotPerformed(CodeableConcept t) { //3 if (t == null) return this; if (this.reasonNotPerformed == null) this.reasonNotPerformed = new ArrayList<CodeableConcept>(); this.reasonNotPerformed.add(t); return this; } /** * @return {@link #bodySite} (Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.) */ public List<CodeableConcept> getBodySite() { if (this.bodySite == null) this.bodySite = new ArrayList<CodeableConcept>(); return this.bodySite; } public boolean hasBodySite() { if (this.bodySite == null) return false; for (CodeableConcept item : this.bodySite) if (!item.isEmpty()) return true; return false; } /** * @return {@link #bodySite} (Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.) */ // syntactic sugar public CodeableConcept addBodySite() { //3 CodeableConcept t = new CodeableConcept(); if (this.bodySite == null) this.bodySite = new ArrayList<CodeableConcept>(); this.bodySite.add(t); return t; } // syntactic sugar public Procedure addBodySite(CodeableConcept t) { //3 if (t == null) return this; if (this.bodySite == null) this.bodySite = new ArrayList<CodeableConcept>(); this.bodySite.add(t); return this; } /** * @return {@link #reason} (The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text.) */ public Type getReason() { return this.reason; } /** * @return {@link #reason} (The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text.) */ public CodeableConcept getReasonCodeableConcept() throws FHIRException { if (!(this.reason instanceof CodeableConcept)) throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.reason.getClass().getName()+" was encountered"); return (CodeableConcept) this.reason; } public boolean hasReasonCodeableConcept() { return this.reason instanceof CodeableConcept; } /** * @return {@link #reason} (The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text.) */ public Reference getReasonReference() throws FHIRException { if (!(this.reason instanceof Reference)) throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.reason.getClass().getName()+" was encountered"); return (Reference) this.reason; } public boolean hasReasonReference() { return this.reason instanceof Reference; } public boolean hasReason() { return this.reason != null && !this.reason.isEmpty(); } /** * @param value {@link #reason} (The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text.) */ public Procedure setReason(Type value) { this.reason = value; return this; } /** * @return {@link #performer} (Limited to 'real' people rather than equipment.) */ public List<ProcedurePerformerComponent> getPerformer() { if (this.performer == null) this.performer = new ArrayList<ProcedurePerformerComponent>(); return this.performer; } public boolean hasPerformer() { if (this.performer == null) return false; for (ProcedurePerformerComponent item : this.performer) if (!item.isEmpty()) return true; return false; } /** * @return {@link #performer} (Limited to 'real' people rather than equipment.) */ // syntactic sugar public ProcedurePerformerComponent addPerformer() { //3 ProcedurePerformerComponent t = new ProcedurePerformerComponent(); if (this.performer == null) this.performer = new ArrayList<ProcedurePerformerComponent>(); this.performer.add(t); return t; } // syntactic sugar public Procedure addPerformer(ProcedurePerformerComponent t) { //3 if (t == null) return this; if (this.performer == null) this.performer = new ArrayList<ProcedurePerformerComponent>(); this.performer.add(t); return this; } /** * @return {@link #performed} (The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) */ public Type getPerformed() { return this.performed; } /** * @return {@link #performed} (The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) */ public DateTimeType getPerformedDateTimeType() throws FHIRException { if (!(this.performed instanceof DateTimeType)) throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.performed.getClass().getName()+" was encountered"); return (DateTimeType) this.performed; } public boolean hasPerformedDateTimeType() { return this.performed instanceof DateTimeType; } /** * @return {@link #performed} (The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) */ public Period getPerformedPeriod() throws FHIRException { if (!(this.performed instanceof Period)) throw new FHIRException("Type mismatch: the type Period was expected, but "+this.performed.getClass().getName()+" was encountered"); return (Period) this.performed; } public boolean hasPerformedPeriod() { return this.performed instanceof Period; } public boolean hasPerformed() { return this.performed != null && !this.performed.isEmpty(); } /** * @param value {@link #performed} (The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) */ public Procedure setPerformed(Type value) { this.performed = value; return this; } /** * @return {@link #encounter} (The encounter during which the procedure was performed.) */ public Reference getEncounter() { if (this.encounter == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.encounter"); else if (Configuration.doAutoCreate()) this.encounter = new Reference(); // cc return this.encounter; } public boolean hasEncounter() { return this.encounter != null && !this.encounter.isEmpty(); } /** * @param value {@link #encounter} (The encounter during which the procedure was performed.) */ public Procedure setEncounter(Reference value) { this.encounter = value; return this; } /** * @return {@link #encounter} 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 encounter during which the procedure was performed.) */ public Encounter getEncounterTarget() { if (this.encounterTarget == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.encounter"); else if (Configuration.doAutoCreate()) this.encounterTarget = new Encounter(); // aa return this.encounterTarget; } /** * @param value {@link #encounter} 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 encounter during which the procedure was performed.) */ public Procedure setEncounterTarget(Encounter value) { this.encounterTarget = value; return this; } /** * @return {@link #location} (The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.) */ public Reference getLocation() { if (this.location == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.location"); else if (Configuration.doAutoCreate()) this.location = new Reference(); // cc return this.location; } public boolean hasLocation() { return this.location != null && !this.location.isEmpty(); } /** * @param value {@link #location} (The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.) */ public Procedure setLocation(Reference value) { this.location = value; return this; } /** * @return {@link #location} 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 location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.) */ public Location getLocationTarget() { if (this.locationTarget == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.location"); else if (Configuration.doAutoCreate()) this.locationTarget = new Location(); // aa return this.locationTarget; } /** * @param value {@link #location} 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 location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.) */ public Procedure setLocationTarget(Location value) { this.locationTarget = value; return this; } /** * @return {@link #outcome} (The outcome of the procedure - did it resolve reasons for the procedure being performed?) */ public CodeableConcept getOutcome() { if (this.outcome == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.outcome"); else if (Configuration.doAutoCreate()) this.outcome = new CodeableConcept(); // cc return this.outcome; } public boolean hasOutcome() { return this.outcome != null && !this.outcome.isEmpty(); } /** * @param value {@link #outcome} (The outcome of the procedure - did it resolve reasons for the procedure being performed?) */ public Procedure setOutcome(CodeableConcept value) { this.outcome = value; return this; } /** * @return {@link #report} (This could be a histology result, pathology report, surgical report, etc..) */ public List<Reference> getReport() { if (this.report == null) this.report = new ArrayList<Reference>(); return this.report; } public boolean hasReport() { if (this.report == null) return false; for (Reference item : this.report) if (!item.isEmpty()) return true; return false; } /** * @return {@link #report} (This could be a histology result, pathology report, surgical report, etc..) */ // syntactic sugar public Reference addReport() { //3 Reference t = new Reference(); if (this.report == null) this.report = new ArrayList<Reference>(); this.report.add(t); return t; } // syntactic sugar public Procedure addReport(Reference t) { //3 if (t == null) return this; if (this.report == null) this.report = new ArrayList<Reference>(); this.report.add(t); return this; } /** * @return {@link #report} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. This could be a histology result, pathology report, surgical report, etc..) */ public List<DiagnosticReport> getReportTarget() { if (this.reportTarget == null) this.reportTarget = new ArrayList<DiagnosticReport>(); return this.reportTarget; } // syntactic sugar /** * @return {@link #report} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. This could be a histology result, pathology report, surgical report, etc..) */ public DiagnosticReport addReportTarget() { DiagnosticReport r = new DiagnosticReport(); if (this.reportTarget == null) this.reportTarget = new ArrayList<DiagnosticReport>(); this.reportTarget.add(r); return r; } /** * @return {@link #complication} (Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.) */ public List<CodeableConcept> getComplication() { if (this.complication == null) this.complication = new ArrayList<CodeableConcept>(); return this.complication; } public boolean hasComplication() { if (this.complication == null) return false; for (CodeableConcept item : this.complication) if (!item.isEmpty()) return true; return false; } /** * @return {@link #complication} (Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.) */ // syntactic sugar public CodeableConcept addComplication() { //3 CodeableConcept t = new CodeableConcept(); if (this.complication == null) this.complication = new ArrayList<CodeableConcept>(); this.complication.add(t); return t; } // syntactic sugar public Procedure addComplication(CodeableConcept t) { //3 if (t == null) return this; if (this.complication == null) this.complication = new ArrayList<CodeableConcept>(); this.complication.add(t); return this; } /** * @return {@link #followUp} (If the procedure required specific follow up - e.g. removal of sutures. The followup may be represented as a simple note, or could potentially be more complex in which case the CarePlan resource can be used.) */ public List<CodeableConcept> getFollowUp() { if (this.followUp == null) this.followUp = new ArrayList<CodeableConcept>(); return this.followUp; } public boolean hasFollowUp() { if (this.followUp == null) return false; for (CodeableConcept item : this.followUp) if (!item.isEmpty()) return true; return false; } /** * @return {@link #followUp} (If the procedure required specific follow up - e.g. removal of sutures. The followup may be represented as a simple note, or could potentially be more complex in which case the CarePlan resource can be used.) */ // syntactic sugar public CodeableConcept addFollowUp() { //3 CodeableConcept t = new CodeableConcept(); if (this.followUp == null) this.followUp = new ArrayList<CodeableConcept>(); this.followUp.add(t); return t; } // syntactic sugar public Procedure addFollowUp(CodeableConcept t) { //3 if (t == null) return this; if (this.followUp == null) this.followUp = new ArrayList<CodeableConcept>(); this.followUp.add(t); return this; } /** * @return {@link #request} (A reference to a resource that contains details of the request for this procedure.) */ public Reference getRequest() { if (this.request == null) if (Configuration.errorOnAutoCreate()) throw new Error("Attempt to auto-create Procedure.request"); else if (Configuration.doAutoCreate()) this.request = new Reference(); // cc return this.request; } public boolean hasRequest() { return this.request != null && !this.request.isEmpty(); } /** * @param value {@link #request} (A reference to a resource that contains details of the request for this procedure.) */ public Procedure setRequest(Reference value) { this.request = value; return this; } /** * @return {@link #request} 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. (A reference to a resource that contains details of the request for this procedure.) */ public Resource getRequestTarget() { return this.requestTarget; } /** * @param value {@link #request} 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. (A reference to a resource that contains details of the request for this procedure.) */ public Procedure setRequestTarget(Resource value) { this.requestTarget = value; return this; } /** * @return {@link #notes} (Any other notes about the procedure. E.g. the operative notes.) */ public List<Annotation> getNotes() { if (this.notes == null) this.notes = new ArrayList<Annotation>(); return this.notes; } public boolean hasNotes() { if (this.notes == null) return false; for (Annotation item : this.notes) if (!item.isEmpty()) return true; return false; } /** * @return {@link #notes} (Any other notes about the procedure. E.g. the operative notes.) */ // syntactic sugar public Annotation addNotes() { //3 Annotation t = new Annotation(); if (this.notes == null) this.notes = new ArrayList<Annotation>(); this.notes.add(t); return t; } // syntactic sugar public Procedure addNotes(Annotation t) { //3 if (t == null) return this; if (this.notes == null) this.notes = new ArrayList<Annotation>(); this.notes.add(t); return this; } /** * @return {@link #focalDevice} (A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.) */ public List<ProcedureFocalDeviceComponent> getFocalDevice() { if (this.focalDevice == null) this.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); return this.focalDevice; } public boolean hasFocalDevice() { if (this.focalDevice == null) return false; for (ProcedureFocalDeviceComponent item : this.focalDevice) if (!item.isEmpty()) return true; return false; } /** * @return {@link #focalDevice} (A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.) */ // syntactic sugar public ProcedureFocalDeviceComponent addFocalDevice() { //3 ProcedureFocalDeviceComponent t = new ProcedureFocalDeviceComponent(); if (this.focalDevice == null) this.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); this.focalDevice.add(t); return t; } // syntactic sugar public Procedure addFocalDevice(ProcedureFocalDeviceComponent t) { //3 if (t == null) return this; if (this.focalDevice == null) this.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); this.focalDevice.add(t); return this; } /** * @return {@link #used} (Identifies medications, devices and any other substance used as part of the procedure.) */ public List<Reference> getUsed() { if (this.used == null) this.used = new ArrayList<Reference>(); return this.used; } public boolean hasUsed() { if (this.used == null) return false; for (Reference item : this.used) if (!item.isEmpty()) return true; return false; } /** * @return {@link #used} (Identifies medications, devices and any other substance used as part of the procedure.) */ // syntactic sugar public Reference addUsed() { //3 Reference t = new Reference(); if (this.used == null) this.used = new ArrayList<Reference>(); this.used.add(t); return t; } // syntactic sugar public Procedure addUsed(Reference t) { //3 if (t == null) return this; if (this.used == null) this.used = new ArrayList<Reference>(); this.used.add(t); return this; } /** * @return {@link #used} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies medications, devices and any other substance used as part of the procedure.) */ public List<Resource> getUsedTarget() { if (this.usedTarget == null) this.usedTarget = new ArrayList<Resource>(); return this.usedTarget; } protected void listChildren(List<Property> childrenList) { super.listChildren(childrenList); childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this procedure that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); childrenList.add(new Property("subject", "Reference(Patient|Group)", "The person, animal or group on which the procedure was performed.", 0, java.lang.Integer.MAX_VALUE, subject)); childrenList.add(new Property("status", "code", "A code specifying the state of the procedure. Generally this will be in-progress or completed state.", 0, java.lang.Integer.MAX_VALUE, status)); childrenList.add(new Property("category", "CodeableConcept", "A code that classifies the procedure for searching, sorting and display purposes (e.g. \"Surgical Procedure\").", 0, java.lang.Integer.MAX_VALUE, category)); childrenList.add(new Property("code", "CodeableConcept", "The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. \"Laparoscopic Appendectomy\").", 0, java.lang.Integer.MAX_VALUE, code)); childrenList.add(new Property("notPerformed", "boolean", "Set this to true if the record is saying that the procedure was NOT performed.", 0, java.lang.Integer.MAX_VALUE, notPerformed)); childrenList.add(new Property("reasonNotPerformed", "CodeableConcept", "A code indicating why the procedure was not performed.", 0, java.lang.Integer.MAX_VALUE, reasonNotPerformed)); childrenList.add(new Property("bodySite", "CodeableConcept", "Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.", 0, java.lang.Integer.MAX_VALUE, bodySite)); childrenList.add(new Property("reason[x]", "CodeableConcept|Reference(Condition)", "The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text.", 0, java.lang.Integer.MAX_VALUE, reason)); childrenList.add(new Property("performer", "", "Limited to 'real' people rather than equipment.", 0, java.lang.Integer.MAX_VALUE, performer)); childrenList.add(new Property("performed[x]", "dateTime|Period", "The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, java.lang.Integer.MAX_VALUE, performed)); childrenList.add(new Property("encounter", "Reference(Encounter)", "The encounter during which the procedure was performed.", 0, java.lang.Integer.MAX_VALUE, encounter)); childrenList.add(new Property("location", "Reference(Location)", "The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.", 0, java.lang.Integer.MAX_VALUE, location)); childrenList.add(new Property("outcome", "CodeableConcept", "The outcome of the procedure - did it resolve reasons for the procedure being performed?", 0, java.lang.Integer.MAX_VALUE, outcome)); childrenList.add(new Property("report", "Reference(DiagnosticReport)", "This could be a histology result, pathology report, surgical report, etc..", 0, java.lang.Integer.MAX_VALUE, report)); childrenList.add(new Property("complication", "CodeableConcept", "Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.", 0, java.lang.Integer.MAX_VALUE, complication)); childrenList.add(new Property("followUp", "CodeableConcept", "If the procedure required specific follow up - e.g. removal of sutures. The followup may be represented as a simple note, or could potentially be more complex in which case the CarePlan resource can be used.", 0, java.lang.Integer.MAX_VALUE, followUp)); childrenList.add(new Property("request", "Reference(CarePlan|DiagnosticOrder|ProcedureRequest|ReferralRequest)", "A reference to a resource that contains details of the request for this procedure.", 0, java.lang.Integer.MAX_VALUE, request)); childrenList.add(new Property("notes", "Annotation", "Any other notes about the procedure. E.g. the operative notes.", 0, java.lang.Integer.MAX_VALUE, notes)); childrenList.add(new Property("focalDevice", "", "A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.", 0, java.lang.Integer.MAX_VALUE, focalDevice)); childrenList.add(new Property("used", "Reference(Device|Medication|Substance)", "Identifies medications, devices and any other substance used as part of the procedure.", 0, java.lang.Integer.MAX_VALUE, used)); } @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 -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ProcedureStatus> case 50511102: /*category*/ return this.category == null ? new Base[0] : new Base[] {this.category}; // CodeableConcept case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept case 585470509: /*notPerformed*/ return this.notPerformed == null ? new Base[0] : new Base[] {this.notPerformed}; // BooleanType case -906415471: /*reasonNotPerformed*/ return this.reasonNotPerformed == null ? new Base[0] : this.reasonNotPerformed.toArray(new Base[this.reasonNotPerformed.size()]); // CodeableConcept case 1702620169: /*bodySite*/ return this.bodySite == null ? new Base[0] : this.bodySite.toArray(new Base[this.bodySite.size()]); // CodeableConcept case -934964668: /*reason*/ return this.reason == null ? new Base[0] : new Base[] {this.reason}; // Type case 481140686: /*performer*/ return this.performer == null ? new Base[0] : this.performer.toArray(new Base[this.performer.size()]); // ProcedurePerformerComponent case 481140672: /*performed*/ return this.performed == null ? new Base[0] : new Base[] {this.performed}; // Type case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // CodeableConcept case -934521548: /*report*/ return this.report == null ? new Base[0] : this.report.toArray(new Base[this.report.size()]); // Reference case -1644401602: /*complication*/ return this.complication == null ? new Base[0] : this.complication.toArray(new Base[this.complication.size()]); // CodeableConcept case 301801004: /*followUp*/ return this.followUp == null ? new Base[0] : this.followUp.toArray(new Base[this.followUp.size()]); // CodeableConcept case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference case 105008833: /*notes*/ return this.notes == null ? new Base[0] : this.notes.toArray(new Base[this.notes.size()]); // Annotation case -1129235173: /*focalDevice*/ return this.focalDevice == null ? new Base[0] : this.focalDevice.toArray(new Base[this.focalDevice.size()]); // ProcedureFocalDeviceComponent case 3599293: /*used*/ return this.used == null ? new Base[0] : this.used.toArray(new Base[this.used.size()]); // Reference default: return super.getProperty(hash, name, checkValid); } } @Override public void setProperty(int hash, String name, Base value) throws FHIRException { switch (hash) { case -1618432855: // identifier this.getIdentifier().add(castToIdentifier(value)); // Identifier break; case -1867885268: // subject this.subject = castToReference(value); // Reference break; case -892481550: // status this.status = new ProcedureStatusEnumFactory().fromType(value); // Enumeration<ProcedureStatus> break; case 50511102: // category this.category = castToCodeableConcept(value); // CodeableConcept break; case 3059181: // code this.code = castToCodeableConcept(value); // CodeableConcept break; case 585470509: // notPerformed this.notPerformed = castToBoolean(value); // BooleanType break; case -906415471: // reasonNotPerformed this.getReasonNotPerformed().add(castToCodeableConcept(value)); // CodeableConcept break; case 1702620169: // bodySite this.getBodySite().add(castToCodeableConcept(value)); // CodeableConcept break; case -934964668: // reason this.reason = (Type) value; // Type break; case 481140686: // performer this.getPerformer().add((ProcedurePerformerComponent) value); // ProcedurePerformerComponent break; case 481140672: // performed this.performed = (Type) value; // Type break; case 1524132147: // encounter this.encounter = castToReference(value); // Reference break; case 1901043637: // location this.location = castToReference(value); // Reference break; case -1106507950: // outcome this.outcome = castToCodeableConcept(value); // CodeableConcept break; case -934521548: // report this.getReport().add(castToReference(value)); // Reference break; case -1644401602: // complication this.getComplication().add(castToCodeableConcept(value)); // CodeableConcept break; case 301801004: // followUp this.getFollowUp().add(castToCodeableConcept(value)); // CodeableConcept break; case 1095692943: // request this.request = castToReference(value); // Reference break; case 105008833: // notes this.getNotes().add(castToAnnotation(value)); // Annotation break; case -1129235173: // focalDevice this.getFocalDevice().add((ProcedureFocalDeviceComponent) value); // ProcedureFocalDeviceComponent break; case 3599293: // used this.getUsed().add(castToReference(value)); // Reference break; default: super.setProperty(hash, name, value); } } @Override public void setProperty(String name, Base value) throws FHIRException { if (name.equals("identifier")) this.getIdentifier().add(castToIdentifier(value)); else if (name.equals("subject")) this.subject = castToReference(value); // Reference else if (name.equals("status")) this.status = new ProcedureStatusEnumFactory().fromType(value); // Enumeration<ProcedureStatus> else if (name.equals("category")) this.category = castToCodeableConcept(value); // CodeableConcept else if (name.equals("code")) this.code = castToCodeableConcept(value); // CodeableConcept else if (name.equals("notPerformed")) this.notPerformed = castToBoolean(value); // BooleanType else if (name.equals("reasonNotPerformed")) this.getReasonNotPerformed().add(castToCodeableConcept(value)); else if (name.equals("bodySite")) this.getBodySite().add(castToCodeableConcept(value)); else if (name.equals("reason[x]")) this.reason = (Type) value; // Type else if (name.equals("performer")) this.getPerformer().add((ProcedurePerformerComponent) value); else if (name.equals("performed[x]")) this.performed = (Type) value; // Type else if (name.equals("encounter")) this.encounter = castToReference(value); // Reference else if (name.equals("location")) this.location = castToReference(value); // Reference else if (name.equals("outcome")) this.outcome = castToCodeableConcept(value); // CodeableConcept else if (name.equals("report")) this.getReport().add(castToReference(value)); else if (name.equals("complication")) this.getComplication().add(castToCodeableConcept(value)); else if (name.equals("followUp")) this.getFollowUp().add(castToCodeableConcept(value)); else if (name.equals("request")) this.request = castToReference(value); // Reference else if (name.equals("notes")) this.getNotes().add(castToAnnotation(value)); else if (name.equals("focalDevice")) this.getFocalDevice().add((ProcedureFocalDeviceComponent) value); else if (name.equals("used")) this.getUsed().add(castToReference(value)); else super.setProperty(name, value); } @Override public Base makeProperty(int hash, String name) throws FHIRException { switch (hash) { case -1618432855: return addIdentifier(); // Identifier case -1867885268: return getSubject(); // Reference case -892481550: throw new FHIRException("Cannot make property status as it is not a complex type"); // Enumeration<ProcedureStatus> case 50511102: return getCategory(); // CodeableConcept case 3059181: return getCode(); // CodeableConcept case 585470509: throw new FHIRException("Cannot make property notPerformed as it is not a complex type"); // BooleanType case -906415471: return addReasonNotPerformed(); // CodeableConcept case 1702620169: return addBodySite(); // CodeableConcept case -669418564: return getReason(); // Type case 481140686: return addPerformer(); // ProcedurePerformerComponent case 1355984064: return getPerformed(); // Type case 1524132147: return getEncounter(); // Reference case 1901043637: return getLocation(); // Reference case -1106507950: return getOutcome(); // CodeableConcept case -934521548: return addReport(); // Reference case -1644401602: return addComplication(); // CodeableConcept case 301801004: return addFollowUp(); // CodeableConcept case 1095692943: return getRequest(); // Reference case 105008833: return addNotes(); // Annotation case -1129235173: return addFocalDevice(); // ProcedureFocalDeviceComponent case 3599293: return addUsed(); // Reference default: return super.makeProperty(hash, name); } } @Override public Base addChild(String name) throws FHIRException { if (name.equals("identifier")) { return addIdentifier(); } else if (name.equals("subject")) { this.subject = new Reference(); return this.subject; } else if (name.equals("status")) { throw new FHIRException("Cannot call addChild on a primitive type Procedure.status"); } else if (name.equals("category")) { this.category = new CodeableConcept(); return this.category; } else if (name.equals("code")) { this.code = new CodeableConcept(); return this.code; } else if (name.equals("notPerformed")) { throw new FHIRException("Cannot call addChild on a primitive type Procedure.notPerformed"); } else if (name.equals("reasonNotPerformed")) { return addReasonNotPerformed(); } else if (name.equals("bodySite")) { return addBodySite(); } else if (name.equals("reasonCodeableConcept")) { this.reason = new CodeableConcept(); return this.reason; } else if (name.equals("reasonReference")) { this.reason = new Reference(); return this.reason; } else if (name.equals("performer")) { return addPerformer(); } else if (name.equals("performedDateTime")) { this.performed = new DateTimeType(); return this.performed; } else if (name.equals("performedPeriod")) { this.performed = new Period(); return this.performed; } else if (name.equals("encounter")) { this.encounter = new Reference(); return this.encounter; } else if (name.equals("location")) { this.location = new Reference(); return this.location; } else if (name.equals("outcome")) { this.outcome = new CodeableConcept(); return this.outcome; } else if (name.equals("report")) { return addReport(); } else if (name.equals("complication")) { return addComplication(); } else if (name.equals("followUp")) { return addFollowUp(); } else if (name.equals("request")) { this.request = new Reference(); return this.request; } else if (name.equals("notes")) { return addNotes(); } else if (name.equals("focalDevice")) { return addFocalDevice(); } else if (name.equals("used")) { return addUsed(); } else return super.addChild(name); } public String fhirType() { return "Procedure"; } public Procedure copy() { Procedure dst = new Procedure(); copyValues(dst); if (identifier != null) { dst.identifier = new ArrayList<Identifier>(); for (Identifier i : identifier) dst.identifier.add(i.copy()); }; dst.subject = subject == null ? null : subject.copy(); dst.status = status == null ? null : status.copy(); dst.category = category == null ? null : category.copy(); dst.code = code == null ? null : code.copy(); dst.notPerformed = notPerformed == null ? null : notPerformed.copy(); if (reasonNotPerformed != null) { dst.reasonNotPerformed = new ArrayList<CodeableConcept>(); for (CodeableConcept i : reasonNotPerformed) dst.reasonNotPerformed.add(i.copy()); }; if (bodySite != null) { dst.bodySite = new ArrayList<CodeableConcept>(); for (CodeableConcept i : bodySite) dst.bodySite.add(i.copy()); }; dst.reason = reason == null ? null : reason.copy(); if (performer != null) { dst.performer = new ArrayList<ProcedurePerformerComponent>(); for (ProcedurePerformerComponent i : performer) dst.performer.add(i.copy()); }; dst.performed = performed == null ? null : performed.copy(); dst.encounter = encounter == null ? null : encounter.copy(); dst.location = location == null ? null : location.copy(); dst.outcome = outcome == null ? null : outcome.copy(); if (report != null) { dst.report = new ArrayList<Reference>(); for (Reference i : report) dst.report.add(i.copy()); }; if (complication != null) { dst.complication = new ArrayList<CodeableConcept>(); for (CodeableConcept i : complication) dst.complication.add(i.copy()); }; if (followUp != null) { dst.followUp = new ArrayList<CodeableConcept>(); for (CodeableConcept i : followUp) dst.followUp.add(i.copy()); }; dst.request = request == null ? null : request.copy(); if (notes != null) { dst.notes = new ArrayList<Annotation>(); for (Annotation i : notes) dst.notes.add(i.copy()); }; if (focalDevice != null) { dst.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); for (ProcedureFocalDeviceComponent i : focalDevice) dst.focalDevice.add(i.copy()); }; if (used != null) { dst.used = new ArrayList<Reference>(); for (Reference i : used) dst.used.add(i.copy()); }; return dst; } protected Procedure typedCopy() { return copy(); } @Override public boolean equalsDeep(Base other) { if (!super.equalsDeep(other)) return false; if (!(other instanceof Procedure)) return false; Procedure o = (Procedure) other; return compareDeep(identifier, o.identifier, true) && compareDeep(subject, o.subject, true) && compareDeep(status, o.status, true) && compareDeep(category, o.category, true) && compareDeep(code, o.code, true) && compareDeep(notPerformed, o.notPerformed, true) && compareDeep(reasonNotPerformed, o.reasonNotPerformed, true) && compareDeep(bodySite, o.bodySite, true) && compareDeep(reason, o.reason, true) && compareDeep(performer, o.performer, true) && compareDeep(performed, o.performed, true) && compareDeep(encounter, o.encounter, true) && compareDeep(location, o.location, true) && compareDeep(outcome, o.outcome, true) && compareDeep(report, o.report, true) && compareDeep(complication, o.complication, true) && compareDeep(followUp, o.followUp, true) && compareDeep(request, o.request, true) && compareDeep(notes, o.notes, true) && compareDeep(focalDevice, o.focalDevice, true) && compareDeep(used, o.used, true); } @Override public boolean equalsShallow(Base other) { if (!super.equalsShallow(other)) return false; if (!(other instanceof Procedure)) return false; Procedure o = (Procedure) other; return compareValues(status, o.status, true) && compareValues(notPerformed, o.notPerformed, true); } public boolean isEmpty() { return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (subject == null || subject.isEmpty()) && (status == null || status.isEmpty()) && (category == null || category.isEmpty()) && (code == null || code.isEmpty()) && (notPerformed == null || notPerformed.isEmpty()) && (reasonNotPerformed == null || reasonNotPerformed.isEmpty()) && (bodySite == null || bodySite.isEmpty()) && (reason == null || reason.isEmpty()) && (performer == null || performer.isEmpty()) && (performed == null || performed.isEmpty()) && (encounter == null || encounter.isEmpty()) && (location == null || location.isEmpty()) && (outcome == null || outcome.isEmpty()) && (report == null || report.isEmpty()) && (complication == null || complication.isEmpty()) && (followUp == null || followUp.isEmpty()) && (request == null || request.isEmpty()) && (notes == null || notes.isEmpty()) && (focalDevice == null || focalDevice.isEmpty()) && (used == null || used.isEmpty()); } @Override public ResourceType getResourceType() { return ResourceType.Procedure; } /** * Search parameter: <b>patient</b> * <p> * Description: <b>Search by subject - a patient</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.subject</b><br> * </p> */ @SearchParamDefinition(name="patient", path="Procedure.subject", description="Search by subject - a patient", type="reference" ) public static final String SP_PATIENT = "patient"; /** * <b>Fluent Client</b> search parameter constant for <b>patient</b> * <p> * Description: <b>Search by subject - a patient</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.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>Procedure:patient</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Procedure:patient").toLocked(); /** * Search parameter: <b>location</b> * <p> * Description: <b>Where the procedure happened</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.location</b><br> * </p> */ @SearchParamDefinition(name="location", path="Procedure.location", description="Where the procedure happened", type="reference" ) public static final String SP_LOCATION = "location"; /** * <b>Fluent Client</b> search parameter constant for <b>location</b> * <p> * Description: <b>Where the procedure happened</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.location</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); /** * Constant for fluent queries to be used to add include statements. Specifies * the path value of "<b>Procedure:location</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("Procedure:location").toLocked(); /** * Search parameter: <b>subject</b> * <p> * Description: <b>Search by subject</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.subject</b><br> * </p> */ @SearchParamDefinition(name="subject", path="Procedure.subject", description="Search by subject", type="reference" ) public static final String SP_SUBJECT = "subject"; /** * <b>Fluent Client</b> search parameter constant for <b>subject</b> * <p> * Description: <b>Search by subject</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.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>Procedure:subject</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Procedure:subject").toLocked(); /** * Search parameter: <b>performer</b> * <p> * Description: <b>The reference to the practitioner</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.performer.actor</b><br> * </p> */ @SearchParamDefinition(name="performer", path="Procedure.performer.actor", description="The reference to the practitioner", type="reference" ) public static final String SP_PERFORMER = "performer"; /** * <b>Fluent Client</b> search parameter constant for <b>performer</b> * <p> * Description: <b>The reference to the practitioner</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.performer.actor</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>Procedure:performer</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMER = new ca.uhn.fhir.model.api.Include("Procedure:performer").toLocked(); /** * Search parameter: <b>encounter</b> * <p> * Description: <b>The encounter associated with the procedure</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.encounter</b><br> * </p> */ @SearchParamDefinition(name="encounter", path="Procedure.encounter", description="The encounter associated with the procedure", type="reference" ) public static final String SP_ENCOUNTER = "encounter"; /** * <b>Fluent Client</b> search parameter constant for <b>encounter</b> * <p> * Description: <b>The encounter associated with the procedure</b><br> * Type: <b>reference</b><br> * Path: <b>Procedure.encounter</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>Procedure:encounter</b>". */ public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Procedure:encounter").toLocked(); /** * Search parameter: <b>code</b> * <p> * Description: <b>A code to identify a procedure</b><br> * Type: <b>token</b><br> * Path: <b>Procedure.code</b><br> * </p> */ @SearchParamDefinition(name="code", path="Procedure.code", description="A code to identify a procedure", type="token" ) public static final String SP_CODE = "code"; /** * <b>Fluent Client</b> search parameter constant for <b>code</b> * <p> * Description: <b>A code to identify a procedure</b><br> * Type: <b>token</b><br> * Path: <b>Procedure.code</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>date</b> * <p> * Description: <b>Date/Period the procedure was performed</b><br> * Type: <b>date</b><br> * Path: <b>Procedure.performed[x]</b><br> * </p> */ @SearchParamDefinition(name="date", path="Procedure.performed", description="Date/Period the procedure was performed", type="date" ) public static final String SP_DATE = "date"; /** * <b>Fluent Client</b> search parameter constant for <b>date</b> * <p> * Description: <b>Date/Period the procedure was performed</b><br> * Type: <b>date</b><br> * Path: <b>Procedure.performed[x]</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); /** * Search parameter: <b>identifier</b> * <p> * Description: <b>A unique identifier for a procedure</b><br> * Type: <b>token</b><br> * Path: <b>Procedure.identifier</b><br> * </p> */ @SearchParamDefinition(name="identifier", path="Procedure.identifier", description="A unique identifier for a procedure", type="token" ) public static final String SP_IDENTIFIER = "identifier"; /** * <b>Fluent Client</b> search parameter constant for <b>identifier</b> * <p> * Description: <b>A unique identifier for a procedure</b><br> * Type: <b>token</b><br> * Path: <b>Procedure.identifier</b><br> * </p> */ public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); }