001package org.hl7.fhir.dstu2.model;
002
003
004
005
006/*
007  Copyright (c) 2011+, HL7, Inc.
008  All rights reserved.
009  
010  Redistribution and use in source and binary forms, with or without modification, 
011  are permitted provided that the following conditions are met:
012  
013   * Redistributions of source code must retain the above copyright notice, this 
014     list of conditions and the following disclaimer.
015   * Redistributions in binary form must reproduce the above copyright notice, 
016     this list of conditions and the following disclaimer in the documentation 
017     and/or other materials provided with the distribution.
018   * Neither the name of HL7 nor the names of its contributors may be used to 
019     endorse or promote products derived from this software without specific 
020     prior written permission.
021  
022  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
023  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
024  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
025  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
026  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
027  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
028  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
029  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
030  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
031  POSSIBILITY OF SUCH DAMAGE.
032  
033*/
034
035// Generated on Wed, Jul 13, 2016 05:32+1000 for FHIR v1.0.2
036import java.util.ArrayList;
037import java.util.Date;
038import java.util.List;
039
040import ca.uhn.fhir.model.api.annotation.Block;
041import ca.uhn.fhir.model.api.annotation.Child;
042import ca.uhn.fhir.model.api.annotation.Description;
043import ca.uhn.fhir.model.api.annotation.ResourceDef;
044import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
045import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
046import org.hl7.fhir.exceptions.FHIRException;
047import org.hl7.fhir.utilities.Utilities;
048/**
049 * This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources.
050 */
051@ResourceDef(name="ProcessRequest", profile="http://hl7.org/fhir/Profile/ProcessRequest")
052public class ProcessRequest extends DomainResource {
053
054    public enum ActionList {
055        /**
056         * Cancel, reverse or nullify the target resource.
057         */
058        CANCEL, 
059        /**
060         * Check for previously un-read/ not-retrieved resources.
061         */
062        POLL, 
063        /**
064         * Re-process the target resource.
065         */
066        REPROCESS, 
067        /**
068         * Retrieve the processing status of the target resource.
069         */
070        STATUS, 
071        /**
072         * added to help the parsers
073         */
074        NULL;
075        public static ActionList fromCode(String codeString) throws FHIRException {
076            if (codeString == null || "".equals(codeString))
077                return null;
078        if ("cancel".equals(codeString))
079          return CANCEL;
080        if ("poll".equals(codeString))
081          return POLL;
082        if ("reprocess".equals(codeString))
083          return REPROCESS;
084        if ("status".equals(codeString))
085          return STATUS;
086        throw new FHIRException("Unknown ActionList code '"+codeString+"'");
087        }
088        public String toCode() {
089          switch (this) {
090            case CANCEL: return "cancel";
091            case POLL: return "poll";
092            case REPROCESS: return "reprocess";
093            case STATUS: return "status";
094            case NULL: return null;
095            default: return "?";
096          }
097        }
098        public String getSystem() {
099          switch (this) {
100            case CANCEL: return "http://hl7.org/fhir/actionlist";
101            case POLL: return "http://hl7.org/fhir/actionlist";
102            case REPROCESS: return "http://hl7.org/fhir/actionlist";
103            case STATUS: return "http://hl7.org/fhir/actionlist";
104            case NULL: return null;
105            default: return "?";
106          }
107        }
108        public String getDefinition() {
109          switch (this) {
110            case CANCEL: return "Cancel, reverse or nullify the target resource.";
111            case POLL: return "Check for previously un-read/ not-retrieved resources.";
112            case REPROCESS: return "Re-process the target resource.";
113            case STATUS: return "Retrieve the processing status of the target resource.";
114            case NULL: return null;
115            default: return "?";
116          }
117        }
118        public String getDisplay() {
119          switch (this) {
120            case CANCEL: return "Cancel, Reverse or Nullify";
121            case POLL: return "Poll";
122            case REPROCESS: return "Re-Process";
123            case STATUS: return "Status Check";
124            case NULL: return null;
125            default: return "?";
126          }
127        }
128    }
129
130  public static class ActionListEnumFactory implements EnumFactory<ActionList> {
131    public ActionList fromCode(String codeString) throws IllegalArgumentException {
132      if (codeString == null || "".equals(codeString))
133            if (codeString == null || "".equals(codeString))
134                return null;
135        if ("cancel".equals(codeString))
136          return ActionList.CANCEL;
137        if ("poll".equals(codeString))
138          return ActionList.POLL;
139        if ("reprocess".equals(codeString))
140          return ActionList.REPROCESS;
141        if ("status".equals(codeString))
142          return ActionList.STATUS;
143        throw new IllegalArgumentException("Unknown ActionList code '"+codeString+"'");
144        }
145        public Enumeration<ActionList> fromType(Base code) throws FHIRException {
146          if (code == null || code.isEmpty())
147            return null;
148          String codeString = ((PrimitiveType) code).asStringValue();
149          if (codeString == null || "".equals(codeString))
150            return null;
151        if ("cancel".equals(codeString))
152          return new Enumeration<ActionList>(this, ActionList.CANCEL);
153        if ("poll".equals(codeString))
154          return new Enumeration<ActionList>(this, ActionList.POLL);
155        if ("reprocess".equals(codeString))
156          return new Enumeration<ActionList>(this, ActionList.REPROCESS);
157        if ("status".equals(codeString))
158          return new Enumeration<ActionList>(this, ActionList.STATUS);
159        throw new FHIRException("Unknown ActionList code '"+codeString+"'");
160        }
161    public String toCode(ActionList code) {
162      if (code == ActionList.CANCEL)
163        return "cancel";
164      if (code == ActionList.POLL)
165        return "poll";
166      if (code == ActionList.REPROCESS)
167        return "reprocess";
168      if (code == ActionList.STATUS)
169        return "status";
170      return "?";
171      }
172    }
173
174    @Block()
175    public static class ItemsComponent extends BackboneElement implements IBaseBackboneElement {
176        /**
177         * A service line number.
178         */
179        @Child(name = "sequenceLinkId", type = {IntegerType.class}, order=1, min=1, max=1, modifier=false, summary=true)
180        @Description(shortDefinition="Service instance", formalDefinition="A service line number." )
181        protected IntegerType sequenceLinkId;
182
183        private static final long serialVersionUID = -1598360600L;
184
185    /*
186     * Constructor
187     */
188      public ItemsComponent() {
189        super();
190      }
191
192    /*
193     * Constructor
194     */
195      public ItemsComponent(IntegerType sequenceLinkId) {
196        super();
197        this.sequenceLinkId = sequenceLinkId;
198      }
199
200        /**
201         * @return {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value
202         */
203        public IntegerType getSequenceLinkIdElement() { 
204          if (this.sequenceLinkId == null)
205            if (Configuration.errorOnAutoCreate())
206              throw new Error("Attempt to auto-create ItemsComponent.sequenceLinkId");
207            else if (Configuration.doAutoCreate())
208              this.sequenceLinkId = new IntegerType(); // bb
209          return this.sequenceLinkId;
210        }
211
212        public boolean hasSequenceLinkIdElement() { 
213          return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty();
214        }
215
216        public boolean hasSequenceLinkId() { 
217          return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty();
218        }
219
220        /**
221         * @param value {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value
222         */
223        public ItemsComponent setSequenceLinkIdElement(IntegerType value) { 
224          this.sequenceLinkId = value;
225          return this;
226        }
227
228        /**
229         * @return A service line number.
230         */
231        public int getSequenceLinkId() { 
232          return this.sequenceLinkId == null || this.sequenceLinkId.isEmpty() ? 0 : this.sequenceLinkId.getValue();
233        }
234
235        /**
236         * @param value A service line number.
237         */
238        public ItemsComponent setSequenceLinkId(int value) { 
239            if (this.sequenceLinkId == null)
240              this.sequenceLinkId = new IntegerType();
241            this.sequenceLinkId.setValue(value);
242          return this;
243        }
244
245        protected void listChildren(List<Property> childrenList) {
246          super.listChildren(childrenList);
247          childrenList.add(new Property("sequenceLinkId", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId));
248        }
249
250      @Override
251      public void setProperty(String name, Base value) throws FHIRException {
252        if (name.equals("sequenceLinkId"))
253          this.sequenceLinkId = castToInteger(value); // IntegerType
254        else
255          super.setProperty(name, value);
256      }
257
258      @Override
259      public Base addChild(String name) throws FHIRException {
260        if (name.equals("sequenceLinkId")) {
261          throw new FHIRException("Cannot call addChild on a primitive type ProcessRequest.sequenceLinkId");
262        }
263        else
264          return super.addChild(name);
265      }
266
267      public ItemsComponent copy() {
268        ItemsComponent dst = new ItemsComponent();
269        copyValues(dst);
270        dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy();
271        return dst;
272      }
273
274      @Override
275      public boolean equalsDeep(Base other) {
276        if (!super.equalsDeep(other))
277          return false;
278        if (!(other instanceof ItemsComponent))
279          return false;
280        ItemsComponent o = (ItemsComponent) other;
281        return compareDeep(sequenceLinkId, o.sequenceLinkId, true);
282      }
283
284      @Override
285      public boolean equalsShallow(Base other) {
286        if (!super.equalsShallow(other))
287          return false;
288        if (!(other instanceof ItemsComponent))
289          return false;
290        ItemsComponent o = (ItemsComponent) other;
291        return compareValues(sequenceLinkId, o.sequenceLinkId, true);
292      }
293
294      public boolean isEmpty() {
295        return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty());
296      }
297
298  public String fhirType() {
299    return "ProcessRequest.item";
300
301  }
302
303  }
304
305    /**
306     * The type of processing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest.
307     */
308    @Child(name = "action", type = {CodeType.class}, order=0, min=1, max=1, modifier=false, summary=true)
309    @Description(shortDefinition="cancel | poll | reprocess | status", formalDefinition="The type of processing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest." )
310    protected Enumeration<ActionList> action;
311
312    /**
313     * The ProcessRequest business identifier.
314     */
315    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
316    @Description(shortDefinition="Business Identifier", formalDefinition="The ProcessRequest business identifier." )
317    protected List<Identifier> identifier;
318
319    /**
320     * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.
321     */
322    @Child(name = "ruleset", type = {Coding.class}, order=2, min=0, max=1, modifier=false, summary=true)
323    @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." )
324    protected Coding ruleset;
325
326    /**
327     * The style (standard) and version of the original material which was converted into this resource.
328     */
329    @Child(name = "originalRuleset", type = {Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
330    @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." )
331    protected Coding originalRuleset;
332
333    /**
334     * The date when this resource was created.
335     */
336    @Child(name = "created", type = {DateTimeType.class}, order=4, min=0, max=1, modifier=false, summary=true)
337    @Description(shortDefinition="Creation date", formalDefinition="The date when this resource was created." )
338    protected DateTimeType created;
339
340    /**
341     * The organization which is the target of the request.
342     */
343    @Child(name = "target", type = {Organization.class}, order=5, min=0, max=1, modifier=false, summary=true)
344    @Description(shortDefinition="Target of the request", formalDefinition="The organization which is the target of the request." )
345    protected Reference target;
346
347    /**
348     * The actual object that is the target of the reference (The organization which is the target of the request.)
349     */
350    protected Organization targetTarget;
351
352    /**
353     * The practitioner who is responsible for the action specified in thise request.
354     */
355    @Child(name = "provider", type = {Practitioner.class}, order=6, min=0, max=1, modifier=false, summary=true)
356    @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the action specified in thise request." )
357    protected Reference provider;
358
359    /**
360     * The actual object that is the target of the reference (The practitioner who is responsible for the action specified in thise request.)
361     */
362    protected Practitioner providerTarget;
363
364    /**
365     * The organization which is responsible for the action speccified in thise request.
366     */
367    @Child(name = "organization", type = {Organization.class}, order=7, min=0, max=1, modifier=false, summary=true)
368    @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the action speccified in thise request." )
369    protected Reference organization;
370
371    /**
372     * The actual object that is the target of the reference (The organization which is responsible for the action speccified in thise request.)
373     */
374    protected Organization organizationTarget;
375
376    /**
377     * Reference of resource which is the target or subject of this action.
378     */
379    @Child(name = "request", type = {}, order=8, min=0, max=1, modifier=false, summary=true)
380    @Description(shortDefinition="Request reference", formalDefinition="Reference of resource which is the target or subject of this action." )
381    protected Reference request;
382
383    /**
384     * The actual object that is the target of the reference (Reference of resource which is the target or subject of this action.)
385     */
386    protected Resource requestTarget;
387
388    /**
389     * Reference of a prior response to resource which is the target or subject of this action.
390     */
391    @Child(name = "response", type = {}, order=9, min=0, max=1, modifier=false, summary=true)
392    @Description(shortDefinition="Response reference", formalDefinition="Reference of a prior response to resource which is the target or subject of this action." )
393    protected Reference response;
394
395    /**
396     * The actual object that is the target of the reference (Reference of a prior response to resource which is the target or subject of this action.)
397     */
398    protected Resource responseTarget;
399
400    /**
401     * If true remove all history excluding audit.
402     */
403    @Child(name = "nullify", type = {BooleanType.class}, order=10, min=0, max=1, modifier=false, summary=true)
404    @Description(shortDefinition="Nullify", formalDefinition="If true remove all history excluding audit." )
405    protected BooleanType nullify;
406
407    /**
408     * A reference to supply which authenticates the process.
409     */
410    @Child(name = "reference", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=true)
411    @Description(shortDefinition="Reference number/string", formalDefinition="A reference to supply which authenticates the process." )
412    protected StringType reference;
413
414    /**
415     * List of top level items to be re-adjudicated, if none specified then the entire submission is re-adjudicated.
416     */
417    @Child(name = "item", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
418    @Description(shortDefinition="Items to re-adjudicate", formalDefinition="List of top level items to be re-adjudicated, if none specified then the entire submission is re-adjudicated." )
419    protected List<ItemsComponent> item;
420
421    /**
422     * Names of resource types to include.
423     */
424    @Child(name = "include", type = {StringType.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
425    @Description(shortDefinition="Resource type(s) to include", formalDefinition="Names of resource types to include." )
426    protected List<StringType> include;
427
428    /**
429     * Names of resource types to exclude.
430     */
431    @Child(name = "exclude", type = {StringType.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
432    @Description(shortDefinition="Resource type(s) to exclude", formalDefinition="Names of resource types to exclude." )
433    protected List<StringType> exclude;
434
435    /**
436     * A period of time during which the fulfilling resources would have been created.
437     */
438    @Child(name = "period", type = {Period.class}, order=15, min=0, max=1, modifier=false, summary=true)
439    @Description(shortDefinition="Period", formalDefinition="A period of time during which the fulfilling resources would have been created." )
440    protected Period period;
441
442    private static final long serialVersionUID = -1332331220L;
443
444  /*
445   * Constructor
446   */
447    public ProcessRequest() {
448      super();
449    }
450
451  /*
452   * Constructor
453   */
454    public ProcessRequest(Enumeration<ActionList> action) {
455      super();
456      this.action = action;
457    }
458
459    /**
460     * @return {@link #action} (The type of processing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest.). This is the underlying object with id, value and extensions. The accessor "getAction" gives direct access to the value
461     */
462    public Enumeration<ActionList> getActionElement() { 
463      if (this.action == null)
464        if (Configuration.errorOnAutoCreate())
465          throw new Error("Attempt to auto-create ProcessRequest.action");
466        else if (Configuration.doAutoCreate())
467          this.action = new Enumeration<ActionList>(new ActionListEnumFactory()); // bb
468      return this.action;
469    }
470
471    public boolean hasActionElement() { 
472      return this.action != null && !this.action.isEmpty();
473    }
474
475    public boolean hasAction() { 
476      return this.action != null && !this.action.isEmpty();
477    }
478
479    /**
480     * @param value {@link #action} (The type of processing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest.). This is the underlying object with id, value and extensions. The accessor "getAction" gives direct access to the value
481     */
482    public ProcessRequest setActionElement(Enumeration<ActionList> value) { 
483      this.action = value;
484      return this;
485    }
486
487    /**
488     * @return The type of processing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest.
489     */
490    public ActionList getAction() { 
491      return this.action == null ? null : this.action.getValue();
492    }
493
494    /**
495     * @param value The type of processing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest.
496     */
497    public ProcessRequest setAction(ActionList value) { 
498        if (this.action == null)
499          this.action = new Enumeration<ActionList>(new ActionListEnumFactory());
500        this.action.setValue(value);
501      return this;
502    }
503
504    /**
505     * @return {@link #identifier} (The ProcessRequest business identifier.)
506     */
507    public List<Identifier> getIdentifier() { 
508      if (this.identifier == null)
509        this.identifier = new ArrayList<Identifier>();
510      return this.identifier;
511    }
512
513    public boolean hasIdentifier() { 
514      if (this.identifier == null)
515        return false;
516      for (Identifier item : this.identifier)
517        if (!item.isEmpty())
518          return true;
519      return false;
520    }
521
522    /**
523     * @return {@link #identifier} (The ProcessRequest business identifier.)
524     */
525    // syntactic sugar
526    public Identifier addIdentifier() { //3
527      Identifier t = new Identifier();
528      if (this.identifier == null)
529        this.identifier = new ArrayList<Identifier>();
530      this.identifier.add(t);
531      return t;
532    }
533
534    // syntactic sugar
535    public ProcessRequest addIdentifier(Identifier t) { //3
536      if (t == null)
537        return this;
538      if (this.identifier == null)
539        this.identifier = new ArrayList<Identifier>();
540      this.identifier.add(t);
541      return this;
542    }
543
544    /**
545     * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.)
546     */
547    public Coding getRuleset() { 
548      if (this.ruleset == null)
549        if (Configuration.errorOnAutoCreate())
550          throw new Error("Attempt to auto-create ProcessRequest.ruleset");
551        else if (Configuration.doAutoCreate())
552          this.ruleset = new Coding(); // cc
553      return this.ruleset;
554    }
555
556    public boolean hasRuleset() { 
557      return this.ruleset != null && !this.ruleset.isEmpty();
558    }
559
560    /**
561     * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.)
562     */
563    public ProcessRequest setRuleset(Coding value) { 
564      this.ruleset = value;
565      return this;
566    }
567
568    /**
569     * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.)
570     */
571    public Coding getOriginalRuleset() { 
572      if (this.originalRuleset == null)
573        if (Configuration.errorOnAutoCreate())
574          throw new Error("Attempt to auto-create ProcessRequest.originalRuleset");
575        else if (Configuration.doAutoCreate())
576          this.originalRuleset = new Coding(); // cc
577      return this.originalRuleset;
578    }
579
580    public boolean hasOriginalRuleset() { 
581      return this.originalRuleset != null && !this.originalRuleset.isEmpty();
582    }
583
584    /**
585     * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.)
586     */
587    public ProcessRequest setOriginalRuleset(Coding value) { 
588      this.originalRuleset = value;
589      return this;
590    }
591
592    /**
593     * @return {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value
594     */
595    public DateTimeType getCreatedElement() { 
596      if (this.created == null)
597        if (Configuration.errorOnAutoCreate())
598          throw new Error("Attempt to auto-create ProcessRequest.created");
599        else if (Configuration.doAutoCreate())
600          this.created = new DateTimeType(); // bb
601      return this.created;
602    }
603
604    public boolean hasCreatedElement() { 
605      return this.created != null && !this.created.isEmpty();
606    }
607
608    public boolean hasCreated() { 
609      return this.created != null && !this.created.isEmpty();
610    }
611
612    /**
613     * @param value {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value
614     */
615    public ProcessRequest setCreatedElement(DateTimeType value) { 
616      this.created = value;
617      return this;
618    }
619
620    /**
621     * @return The date when this resource was created.
622     */
623    public Date getCreated() { 
624      return this.created == null ? null : this.created.getValue();
625    }
626
627    /**
628     * @param value The date when this resource was created.
629     */
630    public ProcessRequest setCreated(Date value) { 
631      if (value == null)
632        this.created = null;
633      else {
634        if (this.created == null)
635          this.created = new DateTimeType();
636        this.created.setValue(value);
637      }
638      return this;
639    }
640
641    /**
642     * @return {@link #target} (The organization which is the target of the request.)
643     */
644    public Reference getTarget() { 
645      if (this.target == null)
646        if (Configuration.errorOnAutoCreate())
647          throw new Error("Attempt to auto-create ProcessRequest.target");
648        else if (Configuration.doAutoCreate())
649          this.target = new Reference(); // cc
650      return this.target;
651    }
652
653    public boolean hasTarget() { 
654      return this.target != null && !this.target.isEmpty();
655    }
656
657    /**
658     * @param value {@link #target} (The organization which is the target of the request.)
659     */
660    public ProcessRequest setTarget(Reference value) { 
661      this.target = value;
662      return this;
663    }
664
665    /**
666     * @return {@link #target} 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 which is the target of the request.)
667     */
668    public Organization getTargetTarget() { 
669      if (this.targetTarget == null)
670        if (Configuration.errorOnAutoCreate())
671          throw new Error("Attempt to auto-create ProcessRequest.target");
672        else if (Configuration.doAutoCreate())
673          this.targetTarget = new Organization(); // aa
674      return this.targetTarget;
675    }
676
677    /**
678     * @param value {@link #target} 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 which is the target of the request.)
679     */
680    public ProcessRequest setTargetTarget(Organization value) { 
681      this.targetTarget = value;
682      return this;
683    }
684
685    /**
686     * @return {@link #provider} (The practitioner who is responsible for the action specified in thise request.)
687     */
688    public Reference getProvider() { 
689      if (this.provider == null)
690        if (Configuration.errorOnAutoCreate())
691          throw new Error("Attempt to auto-create ProcessRequest.provider");
692        else if (Configuration.doAutoCreate())
693          this.provider = new Reference(); // cc
694      return this.provider;
695    }
696
697    public boolean hasProvider() { 
698      return this.provider != null && !this.provider.isEmpty();
699    }
700
701    /**
702     * @param value {@link #provider} (The practitioner who is responsible for the action specified in thise request.)
703     */
704    public ProcessRequest setProvider(Reference value) { 
705      this.provider = value;
706      return this;
707    }
708
709    /**
710     * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the action specified in thise request.)
711     */
712    public Practitioner getProviderTarget() { 
713      if (this.providerTarget == null)
714        if (Configuration.errorOnAutoCreate())
715          throw new Error("Attempt to auto-create ProcessRequest.provider");
716        else if (Configuration.doAutoCreate())
717          this.providerTarget = new Practitioner(); // aa
718      return this.providerTarget;
719    }
720
721    /**
722     * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the action specified in thise request.)
723     */
724    public ProcessRequest setProviderTarget(Practitioner value) { 
725      this.providerTarget = value;
726      return this;
727    }
728
729    /**
730     * @return {@link #organization} (The organization which is responsible for the action speccified in thise request.)
731     */
732    public Reference getOrganization() { 
733      if (this.organization == null)
734        if (Configuration.errorOnAutoCreate())
735          throw new Error("Attempt to auto-create ProcessRequest.organization");
736        else if (Configuration.doAutoCreate())
737          this.organization = new Reference(); // cc
738      return this.organization;
739    }
740
741    public boolean hasOrganization() { 
742      return this.organization != null && !this.organization.isEmpty();
743    }
744
745    /**
746     * @param value {@link #organization} (The organization which is responsible for the action speccified in thise request.)
747     */
748    public ProcessRequest setOrganization(Reference value) { 
749      this.organization = value;
750      return this;
751    }
752
753    /**
754     * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the action speccified in thise request.)
755     */
756    public Organization getOrganizationTarget() { 
757      if (this.organizationTarget == null)
758        if (Configuration.errorOnAutoCreate())
759          throw new Error("Attempt to auto-create ProcessRequest.organization");
760        else if (Configuration.doAutoCreate())
761          this.organizationTarget = new Organization(); // aa
762      return this.organizationTarget;
763    }
764
765    /**
766     * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the action speccified in thise request.)
767     */
768    public ProcessRequest setOrganizationTarget(Organization value) { 
769      this.organizationTarget = value;
770      return this;
771    }
772
773    /**
774     * @return {@link #request} (Reference of resource which is the target or subject of this action.)
775     */
776    public Reference getRequest() { 
777      if (this.request == null)
778        if (Configuration.errorOnAutoCreate())
779          throw new Error("Attempt to auto-create ProcessRequest.request");
780        else if (Configuration.doAutoCreate())
781          this.request = new Reference(); // cc
782      return this.request;
783    }
784
785    public boolean hasRequest() { 
786      return this.request != null && !this.request.isEmpty();
787    }
788
789    /**
790     * @param value {@link #request} (Reference of resource which is the target or subject of this action.)
791     */
792    public ProcessRequest setRequest(Reference value) { 
793      this.request = value;
794      return this;
795    }
796
797    /**
798     * @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. (Reference of resource which is the target or subject of this action.)
799     */
800    public Resource getRequestTarget() { 
801      return this.requestTarget;
802    }
803
804    /**
805     * @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. (Reference of resource which is the target or subject of this action.)
806     */
807    public ProcessRequest setRequestTarget(Resource value) { 
808      this.requestTarget = value;
809      return this;
810    }
811
812    /**
813     * @return {@link #response} (Reference of a prior response to resource which is the target or subject of this action.)
814     */
815    public Reference getResponse() { 
816      if (this.response == null)
817        if (Configuration.errorOnAutoCreate())
818          throw new Error("Attempt to auto-create ProcessRequest.response");
819        else if (Configuration.doAutoCreate())
820          this.response = new Reference(); // cc
821      return this.response;
822    }
823
824    public boolean hasResponse() { 
825      return this.response != null && !this.response.isEmpty();
826    }
827
828    /**
829     * @param value {@link #response} (Reference of a prior response to resource which is the target or subject of this action.)
830     */
831    public ProcessRequest setResponse(Reference value) { 
832      this.response = value;
833      return this;
834    }
835
836    /**
837     * @return {@link #response} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reference of a prior response to resource which is the target or subject of this action.)
838     */
839    public Resource getResponseTarget() { 
840      return this.responseTarget;
841    }
842
843    /**
844     * @param value {@link #response} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reference of a prior response to resource which is the target or subject of this action.)
845     */
846    public ProcessRequest setResponseTarget(Resource value) { 
847      this.responseTarget = value;
848      return this;
849    }
850
851    /**
852     * @return {@link #nullify} (If true remove all history excluding audit.). This is the underlying object with id, value and extensions. The accessor "getNullify" gives direct access to the value
853     */
854    public BooleanType getNullifyElement() { 
855      if (this.nullify == null)
856        if (Configuration.errorOnAutoCreate())
857          throw new Error("Attempt to auto-create ProcessRequest.nullify");
858        else if (Configuration.doAutoCreate())
859          this.nullify = new BooleanType(); // bb
860      return this.nullify;
861    }
862
863    public boolean hasNullifyElement() { 
864      return this.nullify != null && !this.nullify.isEmpty();
865    }
866
867    public boolean hasNullify() { 
868      return this.nullify != null && !this.nullify.isEmpty();
869    }
870
871    /**
872     * @param value {@link #nullify} (If true remove all history excluding audit.). This is the underlying object with id, value and extensions. The accessor "getNullify" gives direct access to the value
873     */
874    public ProcessRequest setNullifyElement(BooleanType value) { 
875      this.nullify = value;
876      return this;
877    }
878
879    /**
880     * @return If true remove all history excluding audit.
881     */
882    public boolean getNullify() { 
883      return this.nullify == null || this.nullify.isEmpty() ? false : this.nullify.getValue();
884    }
885
886    /**
887     * @param value If true remove all history excluding audit.
888     */
889    public ProcessRequest setNullify(boolean value) { 
890        if (this.nullify == null)
891          this.nullify = new BooleanType();
892        this.nullify.setValue(value);
893      return this;
894    }
895
896    /**
897     * @return {@link #reference} (A reference to supply which authenticates the process.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value
898     */
899    public StringType getReferenceElement() { 
900      if (this.reference == null)
901        if (Configuration.errorOnAutoCreate())
902          throw new Error("Attempt to auto-create ProcessRequest.reference");
903        else if (Configuration.doAutoCreate())
904          this.reference = new StringType(); // bb
905      return this.reference;
906    }
907
908    public boolean hasReferenceElement() { 
909      return this.reference != null && !this.reference.isEmpty();
910    }
911
912    public boolean hasReference() { 
913      return this.reference != null && !this.reference.isEmpty();
914    }
915
916    /**
917     * @param value {@link #reference} (A reference to supply which authenticates the process.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value
918     */
919    public ProcessRequest setReferenceElement(StringType value) { 
920      this.reference = value;
921      return this;
922    }
923
924    /**
925     * @return A reference to supply which authenticates the process.
926     */
927    public String getReference() { 
928      return this.reference == null ? null : this.reference.getValue();
929    }
930
931    /**
932     * @param value A reference to supply which authenticates the process.
933     */
934    public ProcessRequest setReference(String value) { 
935      if (Utilities.noString(value))
936        this.reference = null;
937      else {
938        if (this.reference == null)
939          this.reference = new StringType();
940        this.reference.setValue(value);
941      }
942      return this;
943    }
944
945    /**
946     * @return {@link #item} (List of top level items to be re-adjudicated, if none specified then the entire submission is re-adjudicated.)
947     */
948    public List<ItemsComponent> getItem() { 
949      if (this.item == null)
950        this.item = new ArrayList<ItemsComponent>();
951      return this.item;
952    }
953
954    public boolean hasItem() { 
955      if (this.item == null)
956        return false;
957      for (ItemsComponent item : this.item)
958        if (!item.isEmpty())
959          return true;
960      return false;
961    }
962
963    /**
964     * @return {@link #item} (List of top level items to be re-adjudicated, if none specified then the entire submission is re-adjudicated.)
965     */
966    // syntactic sugar
967    public ItemsComponent addItem() { //3
968      ItemsComponent t = new ItemsComponent();
969      if (this.item == null)
970        this.item = new ArrayList<ItemsComponent>();
971      this.item.add(t);
972      return t;
973    }
974
975    // syntactic sugar
976    public ProcessRequest addItem(ItemsComponent t) { //3
977      if (t == null)
978        return this;
979      if (this.item == null)
980        this.item = new ArrayList<ItemsComponent>();
981      this.item.add(t);
982      return this;
983    }
984
985    /**
986     * @return {@link #include} (Names of resource types to include.)
987     */
988    public List<StringType> getInclude() { 
989      if (this.include == null)
990        this.include = new ArrayList<StringType>();
991      return this.include;
992    }
993
994    public boolean hasInclude() { 
995      if (this.include == null)
996        return false;
997      for (StringType item : this.include)
998        if (!item.isEmpty())
999          return true;
1000      return false;
1001    }
1002
1003    /**
1004     * @return {@link #include} (Names of resource types to include.)
1005     */
1006    // syntactic sugar
1007    public StringType addIncludeElement() {//2 
1008      StringType t = new StringType();
1009      if (this.include == null)
1010        this.include = new ArrayList<StringType>();
1011      this.include.add(t);
1012      return t;
1013    }
1014
1015    /**
1016     * @param value {@link #include} (Names of resource types to include.)
1017     */
1018    public ProcessRequest addInclude(String value) { //1
1019      StringType t = new StringType();
1020      t.setValue(value);
1021      if (this.include == null)
1022        this.include = new ArrayList<StringType>();
1023      this.include.add(t);
1024      return this;
1025    }
1026
1027    /**
1028     * @param value {@link #include} (Names of resource types to include.)
1029     */
1030    public boolean hasInclude(String value) { 
1031      if (this.include == null)
1032        return false;
1033      for (StringType v : this.include)
1034        if (v.equals(value)) // string
1035          return true;
1036      return false;
1037    }
1038
1039    /**
1040     * @return {@link #exclude} (Names of resource types to exclude.)
1041     */
1042    public List<StringType> getExclude() { 
1043      if (this.exclude == null)
1044        this.exclude = new ArrayList<StringType>();
1045      return this.exclude;
1046    }
1047
1048    public boolean hasExclude() { 
1049      if (this.exclude == null)
1050        return false;
1051      for (StringType item : this.exclude)
1052        if (!item.isEmpty())
1053          return true;
1054      return false;
1055    }
1056
1057    /**
1058     * @return {@link #exclude} (Names of resource types to exclude.)
1059     */
1060    // syntactic sugar
1061    public StringType addExcludeElement() {//2 
1062      StringType t = new StringType();
1063      if (this.exclude == null)
1064        this.exclude = new ArrayList<StringType>();
1065      this.exclude.add(t);
1066      return t;
1067    }
1068
1069    /**
1070     * @param value {@link #exclude} (Names of resource types to exclude.)
1071     */
1072    public ProcessRequest addExclude(String value) { //1
1073      StringType t = new StringType();
1074      t.setValue(value);
1075      if (this.exclude == null)
1076        this.exclude = new ArrayList<StringType>();
1077      this.exclude.add(t);
1078      return this;
1079    }
1080
1081    /**
1082     * @param value {@link #exclude} (Names of resource types to exclude.)
1083     */
1084    public boolean hasExclude(String value) { 
1085      if (this.exclude == null)
1086        return false;
1087      for (StringType v : this.exclude)
1088        if (v.equals(value)) // string
1089          return true;
1090      return false;
1091    }
1092
1093    /**
1094     * @return {@link #period} (A period of time during which the fulfilling resources would have been created.)
1095     */
1096    public Period getPeriod() { 
1097      if (this.period == null)
1098        if (Configuration.errorOnAutoCreate())
1099          throw new Error("Attempt to auto-create ProcessRequest.period");
1100        else if (Configuration.doAutoCreate())
1101          this.period = new Period(); // cc
1102      return this.period;
1103    }
1104
1105    public boolean hasPeriod() { 
1106      return this.period != null && !this.period.isEmpty();
1107    }
1108
1109    /**
1110     * @param value {@link #period} (A period of time during which the fulfilling resources would have been created.)
1111     */
1112    public ProcessRequest setPeriod(Period value) { 
1113      this.period = value;
1114      return this;
1115    }
1116
1117      protected void listChildren(List<Property> childrenList) {
1118        super.listChildren(childrenList);
1119        childrenList.add(new Property("action", "code", "The type of processing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest.", 0, java.lang.Integer.MAX_VALUE, action));
1120        childrenList.add(new Property("identifier", "Identifier", "The ProcessRequest business identifier.", 0, java.lang.Integer.MAX_VALUE, identifier));
1121        childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset));
1122        childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset));
1123        childrenList.add(new Property("created", "dateTime", "The date when this resource was created.", 0, java.lang.Integer.MAX_VALUE, created));
1124        childrenList.add(new Property("target", "Reference(Organization)", "The organization which is the target of the request.", 0, java.lang.Integer.MAX_VALUE, target));
1125        childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the action specified in thise request.", 0, java.lang.Integer.MAX_VALUE, provider));
1126        childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the action speccified in thise request.", 0, java.lang.Integer.MAX_VALUE, organization));
1127        childrenList.add(new Property("request", "Reference(Any)", "Reference of resource which is the target or subject of this action.", 0, java.lang.Integer.MAX_VALUE, request));
1128        childrenList.add(new Property("response", "Reference(Any)", "Reference of a prior response to resource which is the target or subject of this action.", 0, java.lang.Integer.MAX_VALUE, response));
1129        childrenList.add(new Property("nullify", "boolean", "If true remove all history excluding audit.", 0, java.lang.Integer.MAX_VALUE, nullify));
1130        childrenList.add(new Property("reference", "string", "A reference to supply which authenticates the process.", 0, java.lang.Integer.MAX_VALUE, reference));
1131        childrenList.add(new Property("item", "", "List of top level items to be re-adjudicated, if none specified then the entire submission is re-adjudicated.", 0, java.lang.Integer.MAX_VALUE, item));
1132        childrenList.add(new Property("include", "string", "Names of resource types to include.", 0, java.lang.Integer.MAX_VALUE, include));
1133        childrenList.add(new Property("exclude", "string", "Names of resource types to exclude.", 0, java.lang.Integer.MAX_VALUE, exclude));
1134        childrenList.add(new Property("period", "Period", "A period of time during which the fulfilling resources would have been created.", 0, java.lang.Integer.MAX_VALUE, period));
1135      }
1136
1137      @Override
1138      public void setProperty(String name, Base value) throws FHIRException {
1139        if (name.equals("action"))
1140          this.action = new ActionListEnumFactory().fromType(value); // Enumeration<ActionList>
1141        else if (name.equals("identifier"))
1142          this.getIdentifier().add(castToIdentifier(value));
1143        else if (name.equals("ruleset"))
1144          this.ruleset = castToCoding(value); // Coding
1145        else if (name.equals("originalRuleset"))
1146          this.originalRuleset = castToCoding(value); // Coding
1147        else if (name.equals("created"))
1148          this.created = castToDateTime(value); // DateTimeType
1149        else if (name.equals("target"))
1150          this.target = castToReference(value); // Reference
1151        else if (name.equals("provider"))
1152          this.provider = castToReference(value); // Reference
1153        else if (name.equals("organization"))
1154          this.organization = castToReference(value); // Reference
1155        else if (name.equals("request"))
1156          this.request = castToReference(value); // Reference
1157        else if (name.equals("response"))
1158          this.response = castToReference(value); // Reference
1159        else if (name.equals("nullify"))
1160          this.nullify = castToBoolean(value); // BooleanType
1161        else if (name.equals("reference"))
1162          this.reference = castToString(value); // StringType
1163        else if (name.equals("item"))
1164          this.getItem().add((ItemsComponent) value);
1165        else if (name.equals("include"))
1166          this.getInclude().add(castToString(value));
1167        else if (name.equals("exclude"))
1168          this.getExclude().add(castToString(value));
1169        else if (name.equals("period"))
1170          this.period = castToPeriod(value); // Period
1171        else
1172          super.setProperty(name, value);
1173      }
1174
1175      @Override
1176      public Base addChild(String name) throws FHIRException {
1177        if (name.equals("action")) {
1178          throw new FHIRException("Cannot call addChild on a primitive type ProcessRequest.action");
1179        }
1180        else if (name.equals("identifier")) {
1181          return addIdentifier();
1182        }
1183        else if (name.equals("ruleset")) {
1184          this.ruleset = new Coding();
1185          return this.ruleset;
1186        }
1187        else if (name.equals("originalRuleset")) {
1188          this.originalRuleset = new Coding();
1189          return this.originalRuleset;
1190        }
1191        else if (name.equals("created")) {
1192          throw new FHIRException("Cannot call addChild on a primitive type ProcessRequest.created");
1193        }
1194        else if (name.equals("target")) {
1195          this.target = new Reference();
1196          return this.target;
1197        }
1198        else if (name.equals("provider")) {
1199          this.provider = new Reference();
1200          return this.provider;
1201        }
1202        else if (name.equals("organization")) {
1203          this.organization = new Reference();
1204          return this.organization;
1205        }
1206        else if (name.equals("request")) {
1207          this.request = new Reference();
1208          return this.request;
1209        }
1210        else if (name.equals("response")) {
1211          this.response = new Reference();
1212          return this.response;
1213        }
1214        else if (name.equals("nullify")) {
1215          throw new FHIRException("Cannot call addChild on a primitive type ProcessRequest.nullify");
1216        }
1217        else if (name.equals("reference")) {
1218          throw new FHIRException("Cannot call addChild on a primitive type ProcessRequest.reference");
1219        }
1220        else if (name.equals("item")) {
1221          return addItem();
1222        }
1223        else if (name.equals("include")) {
1224          throw new FHIRException("Cannot call addChild on a primitive type ProcessRequest.include");
1225        }
1226        else if (name.equals("exclude")) {
1227          throw new FHIRException("Cannot call addChild on a primitive type ProcessRequest.exclude");
1228        }
1229        else if (name.equals("period")) {
1230          this.period = new Period();
1231          return this.period;
1232        }
1233        else
1234          return super.addChild(name);
1235      }
1236
1237  public String fhirType() {
1238    return "ProcessRequest";
1239
1240  }
1241
1242      public ProcessRequest copy() {
1243        ProcessRequest dst = new ProcessRequest();
1244        copyValues(dst);
1245        dst.action = action == null ? null : action.copy();
1246        if (identifier != null) {
1247          dst.identifier = new ArrayList<Identifier>();
1248          for (Identifier i : identifier)
1249            dst.identifier.add(i.copy());
1250        };
1251        dst.ruleset = ruleset == null ? null : ruleset.copy();
1252        dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy();
1253        dst.created = created == null ? null : created.copy();
1254        dst.target = target == null ? null : target.copy();
1255        dst.provider = provider == null ? null : provider.copy();
1256        dst.organization = organization == null ? null : organization.copy();
1257        dst.request = request == null ? null : request.copy();
1258        dst.response = response == null ? null : response.copy();
1259        dst.nullify = nullify == null ? null : nullify.copy();
1260        dst.reference = reference == null ? null : reference.copy();
1261        if (item != null) {
1262          dst.item = new ArrayList<ItemsComponent>();
1263          for (ItemsComponent i : item)
1264            dst.item.add(i.copy());
1265        };
1266        if (include != null) {
1267          dst.include = new ArrayList<StringType>();
1268          for (StringType i : include)
1269            dst.include.add(i.copy());
1270        };
1271        if (exclude != null) {
1272          dst.exclude = new ArrayList<StringType>();
1273          for (StringType i : exclude)
1274            dst.exclude.add(i.copy());
1275        };
1276        dst.period = period == null ? null : period.copy();
1277        return dst;
1278      }
1279
1280      protected ProcessRequest typedCopy() {
1281        return copy();
1282      }
1283
1284      @Override
1285      public boolean equalsDeep(Base other) {
1286        if (!super.equalsDeep(other))
1287          return false;
1288        if (!(other instanceof ProcessRequest))
1289          return false;
1290        ProcessRequest o = (ProcessRequest) other;
1291        return compareDeep(action, o.action, true) && compareDeep(identifier, o.identifier, true) && compareDeep(ruleset, o.ruleset, true)
1292           && compareDeep(originalRuleset, o.originalRuleset, true) && compareDeep(created, o.created, true)
1293           && compareDeep(target, o.target, true) && compareDeep(provider, o.provider, true) && compareDeep(organization, o.organization, true)
1294           && compareDeep(request, o.request, true) && compareDeep(response, o.response, true) && compareDeep(nullify, o.nullify, true)
1295           && compareDeep(reference, o.reference, true) && compareDeep(item, o.item, true) && compareDeep(include, o.include, true)
1296           && compareDeep(exclude, o.exclude, true) && compareDeep(period, o.period, true);
1297      }
1298
1299      @Override
1300      public boolean equalsShallow(Base other) {
1301        if (!super.equalsShallow(other))
1302          return false;
1303        if (!(other instanceof ProcessRequest))
1304          return false;
1305        ProcessRequest o = (ProcessRequest) other;
1306        return compareValues(action, o.action, true) && compareValues(created, o.created, true) && compareValues(nullify, o.nullify, true)
1307           && compareValues(reference, o.reference, true) && compareValues(include, o.include, true) && compareValues(exclude, o.exclude, true)
1308          ;
1309      }
1310
1311      public boolean isEmpty() {
1312        return super.isEmpty() && (action == null || action.isEmpty()) && (identifier == null || identifier.isEmpty())
1313           && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty())
1314           && (created == null || created.isEmpty()) && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty())
1315           && (organization == null || organization.isEmpty()) && (request == null || request.isEmpty())
1316           && (response == null || response.isEmpty()) && (nullify == null || nullify.isEmpty()) && (reference == null || reference.isEmpty())
1317           && (item == null || item.isEmpty()) && (include == null || include.isEmpty()) && (exclude == null || exclude.isEmpty())
1318           && (period == null || period.isEmpty());
1319      }
1320
1321  @Override
1322  public ResourceType getResourceType() {
1323    return ResourceType.ProcessRequest;
1324   }
1325
1326  @SearchParamDefinition(name="identifier", path="ProcessRequest.identifier", description="The business identifier of the ProcessRequest", type="token" )
1327  public static final String SP_IDENTIFIER = "identifier";
1328  @SearchParamDefinition(name="provider", path="ProcessRequest.provider", description="The provider who regenerated this request", type="reference" )
1329  public static final String SP_PROVIDER = "provider";
1330  @SearchParamDefinition(name="organization", path="ProcessRequest.organization", description="The organization who generated this request", type="reference" )
1331  public static final String SP_ORGANIZATION = "organization";
1332  @SearchParamDefinition(name="action", path="ProcessRequest.action", description="The action requested by this resource", type="token" )
1333  public static final String SP_ACTION = "action";
1334
1335}