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