001package org.hl7.fhir.r4.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 Thu, Dec 27, 2018 10:06-0500 for FHIR v4.0.0
033
034import java.util.*;
035
036import org.hl7.fhir.utilities.Utilities;
037import ca.uhn.fhir.model.api.annotation.ResourceDef;
038import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
039import ca.uhn.fhir.model.api.annotation.Child;
040import ca.uhn.fhir.model.api.annotation.ChildOrder;
041import ca.uhn.fhir.model.api.annotation.Description;
042import ca.uhn.fhir.model.api.annotation.Block;
043import org.hl7.fhir.instance.model.api.*;
044import org.hl7.fhir.exceptions.FHIRException;
045/**
046 * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
047 */
048@ResourceDef(name="PaymentNotice", profile="http://hl7.org/fhir/StructureDefinition/PaymentNotice")
049public class PaymentNotice extends DomainResource {
050
051    public enum PaymentNoticeStatus {
052        /**
053         * The instance is currently in-force.
054         */
055        ACTIVE, 
056        /**
057         * The instance is withdrawn, rescinded or reversed.
058         */
059        CANCELLED, 
060        /**
061         * A new instance the contents of which is not complete.
062         */
063        DRAFT, 
064        /**
065         * The instance was entered in error.
066         */
067        ENTEREDINERROR, 
068        /**
069         * added to help the parsers with the generic types
070         */
071        NULL;
072        public static PaymentNoticeStatus fromCode(String codeString) throws FHIRException {
073            if (codeString == null || "".equals(codeString))
074                return null;
075        if ("active".equals(codeString))
076          return ACTIVE;
077        if ("cancelled".equals(codeString))
078          return CANCELLED;
079        if ("draft".equals(codeString))
080          return DRAFT;
081        if ("entered-in-error".equals(codeString))
082          return ENTEREDINERROR;
083        if (Configuration.isAcceptInvalidEnums())
084          return null;
085        else
086          throw new FHIRException("Unknown PaymentNoticeStatus code '"+codeString+"'");
087        }
088        public String toCode() {
089          switch (this) {
090            case ACTIVE: return "active";
091            case CANCELLED: return "cancelled";
092            case DRAFT: return "draft";
093            case ENTEREDINERROR: return "entered-in-error";
094            default: return "?";
095          }
096        }
097        public String getSystem() {
098          switch (this) {
099            case ACTIVE: return "http://hl7.org/fhir/fm-status";
100            case CANCELLED: return "http://hl7.org/fhir/fm-status";
101            case DRAFT: return "http://hl7.org/fhir/fm-status";
102            case ENTEREDINERROR: return "http://hl7.org/fhir/fm-status";
103            default: return "?";
104          }
105        }
106        public String getDefinition() {
107          switch (this) {
108            case ACTIVE: return "The instance is currently in-force.";
109            case CANCELLED: return "The instance is withdrawn, rescinded or reversed.";
110            case DRAFT: return "A new instance the contents of which is not complete.";
111            case ENTEREDINERROR: return "The instance was entered in error.";
112            default: return "?";
113          }
114        }
115        public String getDisplay() {
116          switch (this) {
117            case ACTIVE: return "Active";
118            case CANCELLED: return "Cancelled";
119            case DRAFT: return "Draft";
120            case ENTEREDINERROR: return "Entered in Error";
121            default: return "?";
122          }
123        }
124    }
125
126  public static class PaymentNoticeStatusEnumFactory implements EnumFactory<PaymentNoticeStatus> {
127    public PaymentNoticeStatus fromCode(String codeString) throws IllegalArgumentException {
128      if (codeString == null || "".equals(codeString))
129            if (codeString == null || "".equals(codeString))
130                return null;
131        if ("active".equals(codeString))
132          return PaymentNoticeStatus.ACTIVE;
133        if ("cancelled".equals(codeString))
134          return PaymentNoticeStatus.CANCELLED;
135        if ("draft".equals(codeString))
136          return PaymentNoticeStatus.DRAFT;
137        if ("entered-in-error".equals(codeString))
138          return PaymentNoticeStatus.ENTEREDINERROR;
139        throw new IllegalArgumentException("Unknown PaymentNoticeStatus code '"+codeString+"'");
140        }
141        public Enumeration<PaymentNoticeStatus> fromType(Base code) throws FHIRException {
142          if (code == null)
143            return null;
144          if (code.isEmpty())
145            return new Enumeration<PaymentNoticeStatus>(this);
146          String codeString = ((PrimitiveType) code).asStringValue();
147          if (codeString == null || "".equals(codeString))
148            return null;
149        if ("active".equals(codeString))
150          return new Enumeration<PaymentNoticeStatus>(this, PaymentNoticeStatus.ACTIVE);
151        if ("cancelled".equals(codeString))
152          return new Enumeration<PaymentNoticeStatus>(this, PaymentNoticeStatus.CANCELLED);
153        if ("draft".equals(codeString))
154          return new Enumeration<PaymentNoticeStatus>(this, PaymentNoticeStatus.DRAFT);
155        if ("entered-in-error".equals(codeString))
156          return new Enumeration<PaymentNoticeStatus>(this, PaymentNoticeStatus.ENTEREDINERROR);
157        throw new FHIRException("Unknown PaymentNoticeStatus code '"+codeString+"'");
158        }
159    public String toCode(PaymentNoticeStatus code) {
160      if (code == PaymentNoticeStatus.ACTIVE)
161        return "active";
162      if (code == PaymentNoticeStatus.CANCELLED)
163        return "cancelled";
164      if (code == PaymentNoticeStatus.DRAFT)
165        return "draft";
166      if (code == PaymentNoticeStatus.ENTEREDINERROR)
167        return "entered-in-error";
168      return "?";
169      }
170    public String toSystem(PaymentNoticeStatus code) {
171      return code.getSystem();
172      }
173    }
174
175    /**
176     * A unique identifier assigned to this payment notice.
177     */
178    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
179    @Description(shortDefinition="Business Identifier for the payment noctice", formalDefinition="A unique identifier assigned to this payment notice." )
180    protected List<Identifier> identifier;
181
182    /**
183     * The status of the resource instance.
184     */
185    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
186    @Description(shortDefinition="active | cancelled | draft | entered-in-error", formalDefinition="The status of the resource instance." )
187    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fm-status")
188    protected Enumeration<PaymentNoticeStatus> status;
189
190    /**
191     * Reference of resource for which payment is being made.
192     */
193    @Child(name = "request", type = {Reference.class}, order=2, min=0, max=1, modifier=false, summary=false)
194    @Description(shortDefinition="Request reference", formalDefinition="Reference of resource for which payment is being made." )
195    protected Reference request;
196
197    /**
198     * The actual object that is the target of the reference (Reference of resource for which payment is being made.)
199     */
200    protected Resource requestTarget;
201
202    /**
203     * Reference of response to resource for which payment is being made.
204     */
205    @Child(name = "response", type = {Reference.class}, order=3, min=0, max=1, modifier=false, summary=false)
206    @Description(shortDefinition="Response reference", formalDefinition="Reference of response to resource for which payment is being made." )
207    protected Reference response;
208
209    /**
210     * The actual object that is the target of the reference (Reference of response to resource for which payment is being made.)
211     */
212    protected Resource responseTarget;
213
214    /**
215     * The date when this resource was created.
216     */
217    @Child(name = "created", type = {DateTimeType.class}, order=4, min=1, max=1, modifier=false, summary=true)
218    @Description(shortDefinition="Creation date", formalDefinition="The date when this resource was created." )
219    protected DateTimeType created;
220
221    /**
222     * The practitioner who is responsible for the services rendered to the patient.
223     */
224    @Child(name = "provider", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=5, min=0, max=1, modifier=false, summary=false)
225    @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." )
226    protected Reference provider;
227
228    /**
229     * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.)
230     */
231    protected Resource providerTarget;
232
233    /**
234     * A reference to the payment which is the subject of this notice.
235     */
236    @Child(name = "payment", type = {PaymentReconciliation.class}, order=6, min=1, max=1, modifier=false, summary=true)
237    @Description(shortDefinition="Payment reference", formalDefinition="A reference to the payment which is the subject of this notice." )
238    protected Reference payment;
239
240    /**
241     * The actual object that is the target of the reference (A reference to the payment which is the subject of this notice.)
242     */
243    protected PaymentReconciliation paymentTarget;
244
245    /**
246     * The date when the above payment action occurred.
247     */
248    @Child(name = "paymentDate", type = {DateType.class}, order=7, min=0, max=1, modifier=false, summary=false)
249    @Description(shortDefinition="Payment or clearing date", formalDefinition="The date when the above payment action occurred." )
250    protected DateType paymentDate;
251
252    /**
253     * The party who will receive or has received payment that is the subject of this notification.
254     */
255    @Child(name = "payee", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=8, min=0, max=1, modifier=false, summary=false)
256    @Description(shortDefinition="Party being paid", formalDefinition="The party who will receive or has received payment that is the subject of this notification." )
257    protected Reference payee;
258
259    /**
260     * The actual object that is the target of the reference (The party who will receive or has received payment that is the subject of this notification.)
261     */
262    protected Resource payeeTarget;
263
264    /**
265     * The party who is notified of the payment status.
266     */
267    @Child(name = "recipient", type = {Organization.class}, order=9, min=1, max=1, modifier=false, summary=true)
268    @Description(shortDefinition="Party being notified", formalDefinition="The party who is notified of the payment status." )
269    protected Reference recipient;
270
271    /**
272     * The actual object that is the target of the reference (The party who is notified of the payment status.)
273     */
274    protected Organization recipientTarget;
275
276    /**
277     * The amount sent to the payee.
278     */
279    @Child(name = "amount", type = {Money.class}, order=10, min=1, max=1, modifier=false, summary=true)
280    @Description(shortDefinition="Monetary amount of the payment", formalDefinition="The amount sent to the payee." )
281    protected Money amount;
282
283    /**
284     * A code indicating whether payment has been sent or cleared.
285     */
286    @Child(name = "paymentStatus", type = {CodeableConcept.class}, order=11, min=0, max=1, modifier=false, summary=false)
287    @Description(shortDefinition="Issued or cleared Status of the payment", formalDefinition="A code indicating whether payment has been sent or cleared." )
288    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/payment-status")
289    protected CodeableConcept paymentStatus;
290
291    private static final long serialVersionUID = -545198613L;
292
293  /**
294   * Constructor
295   */
296    public PaymentNotice() {
297      super();
298    }
299
300  /**
301   * Constructor
302   */
303    public PaymentNotice(Enumeration<PaymentNoticeStatus> status, DateTimeType created, Reference payment, Reference recipient, Money amount) {
304      super();
305      this.status = status;
306      this.created = created;
307      this.payment = payment;
308      this.recipient = recipient;
309      this.amount = amount;
310    }
311
312    /**
313     * @return {@link #identifier} (A unique identifier assigned to this payment notice.)
314     */
315    public List<Identifier> getIdentifier() { 
316      if (this.identifier == null)
317        this.identifier = new ArrayList<Identifier>();
318      return this.identifier;
319    }
320
321    /**
322     * @return Returns a reference to <code>this</code> for easy method chaining
323     */
324    public PaymentNotice setIdentifier(List<Identifier> theIdentifier) { 
325      this.identifier = theIdentifier;
326      return this;
327    }
328
329    public boolean hasIdentifier() { 
330      if (this.identifier == null)
331        return false;
332      for (Identifier item : this.identifier)
333        if (!item.isEmpty())
334          return true;
335      return false;
336    }
337
338    public Identifier addIdentifier() { //3
339      Identifier t = new Identifier();
340      if (this.identifier == null)
341        this.identifier = new ArrayList<Identifier>();
342      this.identifier.add(t);
343      return t;
344    }
345
346    public PaymentNotice addIdentifier(Identifier t) { //3
347      if (t == null)
348        return this;
349      if (this.identifier == null)
350        this.identifier = new ArrayList<Identifier>();
351      this.identifier.add(t);
352      return this;
353    }
354
355    /**
356     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
357     */
358    public Identifier getIdentifierFirstRep() { 
359      if (getIdentifier().isEmpty()) {
360        addIdentifier();
361      }
362      return getIdentifier().get(0);
363    }
364
365    /**
366     * @return {@link #status} (The status of the resource instance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
367     */
368    public Enumeration<PaymentNoticeStatus> getStatusElement() { 
369      if (this.status == null)
370        if (Configuration.errorOnAutoCreate())
371          throw new Error("Attempt to auto-create PaymentNotice.status");
372        else if (Configuration.doAutoCreate())
373          this.status = new Enumeration<PaymentNoticeStatus>(new PaymentNoticeStatusEnumFactory()); // bb
374      return this.status;
375    }
376
377    public boolean hasStatusElement() { 
378      return this.status != null && !this.status.isEmpty();
379    }
380
381    public boolean hasStatus() { 
382      return this.status != null && !this.status.isEmpty();
383    }
384
385    /**
386     * @param value {@link #status} (The status of the resource instance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
387     */
388    public PaymentNotice setStatusElement(Enumeration<PaymentNoticeStatus> value) { 
389      this.status = value;
390      return this;
391    }
392
393    /**
394     * @return The status of the resource instance.
395     */
396    public PaymentNoticeStatus getStatus() { 
397      return this.status == null ? null : this.status.getValue();
398    }
399
400    /**
401     * @param value The status of the resource instance.
402     */
403    public PaymentNotice setStatus(PaymentNoticeStatus value) { 
404        if (this.status == null)
405          this.status = new Enumeration<PaymentNoticeStatus>(new PaymentNoticeStatusEnumFactory());
406        this.status.setValue(value);
407      return this;
408    }
409
410    /**
411     * @return {@link #request} (Reference of resource for which payment is being made.)
412     */
413    public Reference getRequest() { 
414      if (this.request == null)
415        if (Configuration.errorOnAutoCreate())
416          throw new Error("Attempt to auto-create PaymentNotice.request");
417        else if (Configuration.doAutoCreate())
418          this.request = new Reference(); // cc
419      return this.request;
420    }
421
422    public boolean hasRequest() { 
423      return this.request != null && !this.request.isEmpty();
424    }
425
426    /**
427     * @param value {@link #request} (Reference of resource for which payment is being made.)
428     */
429    public PaymentNotice setRequest(Reference value) { 
430      this.request = value;
431      return this;
432    }
433
434    /**
435     * @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 for which payment is being made.)
436     */
437    public Resource getRequestTarget() { 
438      return this.requestTarget;
439    }
440
441    /**
442     * @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 for which payment is being made.)
443     */
444    public PaymentNotice setRequestTarget(Resource value) { 
445      this.requestTarget = value;
446      return this;
447    }
448
449    /**
450     * @return {@link #response} (Reference of response to resource for which payment is being made.)
451     */
452    public Reference getResponse() { 
453      if (this.response == null)
454        if (Configuration.errorOnAutoCreate())
455          throw new Error("Attempt to auto-create PaymentNotice.response");
456        else if (Configuration.doAutoCreate())
457          this.response = new Reference(); // cc
458      return this.response;
459    }
460
461    public boolean hasResponse() { 
462      return this.response != null && !this.response.isEmpty();
463    }
464
465    /**
466     * @param value {@link #response} (Reference of response to resource for which payment is being made.)
467     */
468    public PaymentNotice setResponse(Reference value) { 
469      this.response = value;
470      return this;
471    }
472
473    /**
474     * @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 response to resource for which payment is being made.)
475     */
476    public Resource getResponseTarget() { 
477      return this.responseTarget;
478    }
479
480    /**
481     * @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 response to resource for which payment is being made.)
482     */
483    public PaymentNotice setResponseTarget(Resource value) { 
484      this.responseTarget = value;
485      return this;
486    }
487
488    /**
489     * @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
490     */
491    public DateTimeType getCreatedElement() { 
492      if (this.created == null)
493        if (Configuration.errorOnAutoCreate())
494          throw new Error("Attempt to auto-create PaymentNotice.created");
495        else if (Configuration.doAutoCreate())
496          this.created = new DateTimeType(); // bb
497      return this.created;
498    }
499
500    public boolean hasCreatedElement() { 
501      return this.created != null && !this.created.isEmpty();
502    }
503
504    public boolean hasCreated() { 
505      return this.created != null && !this.created.isEmpty();
506    }
507
508    /**
509     * @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
510     */
511    public PaymentNotice setCreatedElement(DateTimeType value) { 
512      this.created = value;
513      return this;
514    }
515
516    /**
517     * @return The date when this resource was created.
518     */
519    public Date getCreated() { 
520      return this.created == null ? null : this.created.getValue();
521    }
522
523    /**
524     * @param value The date when this resource was created.
525     */
526    public PaymentNotice setCreated(Date value) { 
527        if (this.created == null)
528          this.created = new DateTimeType();
529        this.created.setValue(value);
530      return this;
531    }
532
533    /**
534     * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
535     */
536    public Reference getProvider() { 
537      if (this.provider == null)
538        if (Configuration.errorOnAutoCreate())
539          throw new Error("Attempt to auto-create PaymentNotice.provider");
540        else if (Configuration.doAutoCreate())
541          this.provider = new Reference(); // cc
542      return this.provider;
543    }
544
545    public boolean hasProvider() { 
546      return this.provider != null && !this.provider.isEmpty();
547    }
548
549    /**
550     * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
551     */
552    public PaymentNotice setProvider(Reference value) { 
553      this.provider = value;
554      return this;
555    }
556
557    /**
558     * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.)
559     */
560    public Resource getProviderTarget() { 
561      return this.providerTarget;
562    }
563
564    /**
565     * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.)
566     */
567    public PaymentNotice setProviderTarget(Resource value) { 
568      this.providerTarget = value;
569      return this;
570    }
571
572    /**
573     * @return {@link #payment} (A reference to the payment which is the subject of this notice.)
574     */
575    public Reference getPayment() { 
576      if (this.payment == null)
577        if (Configuration.errorOnAutoCreate())
578          throw new Error("Attempt to auto-create PaymentNotice.payment");
579        else if (Configuration.doAutoCreate())
580          this.payment = new Reference(); // cc
581      return this.payment;
582    }
583
584    public boolean hasPayment() { 
585      return this.payment != null && !this.payment.isEmpty();
586    }
587
588    /**
589     * @param value {@link #payment} (A reference to the payment which is the subject of this notice.)
590     */
591    public PaymentNotice setPayment(Reference value) { 
592      this.payment = value;
593      return this;
594    }
595
596    /**
597     * @return {@link #payment} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to the payment which is the subject of this notice.)
598     */
599    public PaymentReconciliation getPaymentTarget() { 
600      if (this.paymentTarget == null)
601        if (Configuration.errorOnAutoCreate())
602          throw new Error("Attempt to auto-create PaymentNotice.payment");
603        else if (Configuration.doAutoCreate())
604          this.paymentTarget = new PaymentReconciliation(); // aa
605      return this.paymentTarget;
606    }
607
608    /**
609     * @param value {@link #payment} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to the payment which is the subject of this notice.)
610     */
611    public PaymentNotice setPaymentTarget(PaymentReconciliation value) { 
612      this.paymentTarget = value;
613      return this;
614    }
615
616    /**
617     * @return {@link #paymentDate} (The date when the above payment action occurred.). This is the underlying object with id, value and extensions. The accessor "getPaymentDate" gives direct access to the value
618     */
619    public DateType getPaymentDateElement() { 
620      if (this.paymentDate == null)
621        if (Configuration.errorOnAutoCreate())
622          throw new Error("Attempt to auto-create PaymentNotice.paymentDate");
623        else if (Configuration.doAutoCreate())
624          this.paymentDate = new DateType(); // bb
625      return this.paymentDate;
626    }
627
628    public boolean hasPaymentDateElement() { 
629      return this.paymentDate != null && !this.paymentDate.isEmpty();
630    }
631
632    public boolean hasPaymentDate() { 
633      return this.paymentDate != null && !this.paymentDate.isEmpty();
634    }
635
636    /**
637     * @param value {@link #paymentDate} (The date when the above payment action occurred.). This is the underlying object with id, value and extensions. The accessor "getPaymentDate" gives direct access to the value
638     */
639    public PaymentNotice setPaymentDateElement(DateType value) { 
640      this.paymentDate = value;
641      return this;
642    }
643
644    /**
645     * @return The date when the above payment action occurred.
646     */
647    public Date getPaymentDate() { 
648      return this.paymentDate == null ? null : this.paymentDate.getValue();
649    }
650
651    /**
652     * @param value The date when the above payment action occurred.
653     */
654    public PaymentNotice setPaymentDate(Date value) { 
655      if (value == null)
656        this.paymentDate = null;
657      else {
658        if (this.paymentDate == null)
659          this.paymentDate = new DateType();
660        this.paymentDate.setValue(value);
661      }
662      return this;
663    }
664
665    /**
666     * @return {@link #payee} (The party who will receive or has received payment that is the subject of this notification.)
667     */
668    public Reference getPayee() { 
669      if (this.payee == null)
670        if (Configuration.errorOnAutoCreate())
671          throw new Error("Attempt to auto-create PaymentNotice.payee");
672        else if (Configuration.doAutoCreate())
673          this.payee = new Reference(); // cc
674      return this.payee;
675    }
676
677    public boolean hasPayee() { 
678      return this.payee != null && !this.payee.isEmpty();
679    }
680
681    /**
682     * @param value {@link #payee} (The party who will receive or has received payment that is the subject of this notification.)
683     */
684    public PaymentNotice setPayee(Reference value) { 
685      this.payee = value;
686      return this;
687    }
688
689    /**
690     * @return {@link #payee} 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 party who will receive or has received payment that is the subject of this notification.)
691     */
692    public Resource getPayeeTarget() { 
693      return this.payeeTarget;
694    }
695
696    /**
697     * @param value {@link #payee} 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 party who will receive or has received payment that is the subject of this notification.)
698     */
699    public PaymentNotice setPayeeTarget(Resource value) { 
700      this.payeeTarget = value;
701      return this;
702    }
703
704    /**
705     * @return {@link #recipient} (The party who is notified of the payment status.)
706     */
707    public Reference getRecipient() { 
708      if (this.recipient == null)
709        if (Configuration.errorOnAutoCreate())
710          throw new Error("Attempt to auto-create PaymentNotice.recipient");
711        else if (Configuration.doAutoCreate())
712          this.recipient = new Reference(); // cc
713      return this.recipient;
714    }
715
716    public boolean hasRecipient() { 
717      return this.recipient != null && !this.recipient.isEmpty();
718    }
719
720    /**
721     * @param value {@link #recipient} (The party who is notified of the payment status.)
722     */
723    public PaymentNotice setRecipient(Reference value) { 
724      this.recipient = value;
725      return this;
726    }
727
728    /**
729     * @return {@link #recipient} 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 party who is notified of the payment status.)
730     */
731    public Organization getRecipientTarget() { 
732      if (this.recipientTarget == null)
733        if (Configuration.errorOnAutoCreate())
734          throw new Error("Attempt to auto-create PaymentNotice.recipient");
735        else if (Configuration.doAutoCreate())
736          this.recipientTarget = new Organization(); // aa
737      return this.recipientTarget;
738    }
739
740    /**
741     * @param value {@link #recipient} 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 party who is notified of the payment status.)
742     */
743    public PaymentNotice setRecipientTarget(Organization value) { 
744      this.recipientTarget = value;
745      return this;
746    }
747
748    /**
749     * @return {@link #amount} (The amount sent to the payee.)
750     */
751    public Money getAmount() { 
752      if (this.amount == null)
753        if (Configuration.errorOnAutoCreate())
754          throw new Error("Attempt to auto-create PaymentNotice.amount");
755        else if (Configuration.doAutoCreate())
756          this.amount = new Money(); // cc
757      return this.amount;
758    }
759
760    public boolean hasAmount() { 
761      return this.amount != null && !this.amount.isEmpty();
762    }
763
764    /**
765     * @param value {@link #amount} (The amount sent to the payee.)
766     */
767    public PaymentNotice setAmount(Money value) { 
768      this.amount = value;
769      return this;
770    }
771
772    /**
773     * @return {@link #paymentStatus} (A code indicating whether payment has been sent or cleared.)
774     */
775    public CodeableConcept getPaymentStatus() { 
776      if (this.paymentStatus == null)
777        if (Configuration.errorOnAutoCreate())
778          throw new Error("Attempt to auto-create PaymentNotice.paymentStatus");
779        else if (Configuration.doAutoCreate())
780          this.paymentStatus = new CodeableConcept(); // cc
781      return this.paymentStatus;
782    }
783
784    public boolean hasPaymentStatus() { 
785      return this.paymentStatus != null && !this.paymentStatus.isEmpty();
786    }
787
788    /**
789     * @param value {@link #paymentStatus} (A code indicating whether payment has been sent or cleared.)
790     */
791    public PaymentNotice setPaymentStatus(CodeableConcept value) { 
792      this.paymentStatus = value;
793      return this;
794    }
795
796      protected void listChildren(List<Property> children) {
797        super.listChildren(children);
798        children.add(new Property("identifier", "Identifier", "A unique identifier assigned to this payment notice.", 0, java.lang.Integer.MAX_VALUE, identifier));
799        children.add(new Property("status", "code", "The status of the resource instance.", 0, 1, status));
800        children.add(new Property("request", "Reference(Any)", "Reference of resource for which payment is being made.", 0, 1, request));
801        children.add(new Property("response", "Reference(Any)", "Reference of response to resource for which payment is being made.", 0, 1, response));
802        children.add(new Property("created", "dateTime", "The date when this resource was created.", 0, 1, created));
803        children.add(new Property("provider", "Reference(Practitioner|PractitionerRole|Organization)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, provider));
804        children.add(new Property("payment", "Reference(PaymentReconciliation)", "A reference to the payment which is the subject of this notice.", 0, 1, payment));
805        children.add(new Property("paymentDate", "date", "The date when the above payment action occurred.", 0, 1, paymentDate));
806        children.add(new Property("payee", "Reference(Practitioner|PractitionerRole|Organization)", "The party who will receive or has received payment that is the subject of this notification.", 0, 1, payee));
807        children.add(new Property("recipient", "Reference(Organization)", "The party who is notified of the payment status.", 0, 1, recipient));
808        children.add(new Property("amount", "Money", "The amount sent to the payee.", 0, 1, amount));
809        children.add(new Property("paymentStatus", "CodeableConcept", "A code indicating whether payment has been sent or cleared.", 0, 1, paymentStatus));
810      }
811
812      @Override
813      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
814        switch (_hash) {
815        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A unique identifier assigned to this payment notice.", 0, java.lang.Integer.MAX_VALUE, identifier);
816        case -892481550: /*status*/  return new Property("status", "code", "The status of the resource instance.", 0, 1, status);
817        case 1095692943: /*request*/  return new Property("request", "Reference(Any)", "Reference of resource for which payment is being made.", 0, 1, request);
818        case -340323263: /*response*/  return new Property("response", "Reference(Any)", "Reference of response to resource for which payment is being made.", 0, 1, response);
819        case 1028554472: /*created*/  return new Property("created", "dateTime", "The date when this resource was created.", 0, 1, created);
820        case -987494927: /*provider*/  return new Property("provider", "Reference(Practitioner|PractitionerRole|Organization)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, provider);
821        case -786681338: /*payment*/  return new Property("payment", "Reference(PaymentReconciliation)", "A reference to the payment which is the subject of this notice.", 0, 1, payment);
822        case -1540873516: /*paymentDate*/  return new Property("paymentDate", "date", "The date when the above payment action occurred.", 0, 1, paymentDate);
823        case 106443592: /*payee*/  return new Property("payee", "Reference(Practitioner|PractitionerRole|Organization)", "The party who will receive or has received payment that is the subject of this notification.", 0, 1, payee);
824        case 820081177: /*recipient*/  return new Property("recipient", "Reference(Organization)", "The party who is notified of the payment status.", 0, 1, recipient);
825        case -1413853096: /*amount*/  return new Property("amount", "Money", "The amount sent to the payee.", 0, 1, amount);
826        case 1430704536: /*paymentStatus*/  return new Property("paymentStatus", "CodeableConcept", "A code indicating whether payment has been sent or cleared.", 0, 1, paymentStatus);
827        default: return super.getNamedProperty(_hash, _name, _checkValid);
828        }
829
830      }
831
832      @Override
833      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
834        switch (hash) {
835        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
836        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PaymentNoticeStatus>
837        case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference
838        case -340323263: /*response*/ return this.response == null ? new Base[0] : new Base[] {this.response}; // Reference
839        case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateTimeType
840        case -987494927: /*provider*/ return this.provider == null ? new Base[0] : new Base[] {this.provider}; // Reference
841        case -786681338: /*payment*/ return this.payment == null ? new Base[0] : new Base[] {this.payment}; // Reference
842        case -1540873516: /*paymentDate*/ return this.paymentDate == null ? new Base[0] : new Base[] {this.paymentDate}; // DateType
843        case 106443592: /*payee*/ return this.payee == null ? new Base[0] : new Base[] {this.payee}; // Reference
844        case 820081177: /*recipient*/ return this.recipient == null ? new Base[0] : new Base[] {this.recipient}; // Reference
845        case -1413853096: /*amount*/ return this.amount == null ? new Base[0] : new Base[] {this.amount}; // Money
846        case 1430704536: /*paymentStatus*/ return this.paymentStatus == null ? new Base[0] : new Base[] {this.paymentStatus}; // CodeableConcept
847        default: return super.getProperty(hash, name, checkValid);
848        }
849
850      }
851
852      @Override
853      public Base setProperty(int hash, String name, Base value) throws FHIRException {
854        switch (hash) {
855        case -1618432855: // identifier
856          this.getIdentifier().add(castToIdentifier(value)); // Identifier
857          return value;
858        case -892481550: // status
859          value = new PaymentNoticeStatusEnumFactory().fromType(castToCode(value));
860          this.status = (Enumeration) value; // Enumeration<PaymentNoticeStatus>
861          return value;
862        case 1095692943: // request
863          this.request = castToReference(value); // Reference
864          return value;
865        case -340323263: // response
866          this.response = castToReference(value); // Reference
867          return value;
868        case 1028554472: // created
869          this.created = castToDateTime(value); // DateTimeType
870          return value;
871        case -987494927: // provider
872          this.provider = castToReference(value); // Reference
873          return value;
874        case -786681338: // payment
875          this.payment = castToReference(value); // Reference
876          return value;
877        case -1540873516: // paymentDate
878          this.paymentDate = castToDate(value); // DateType
879          return value;
880        case 106443592: // payee
881          this.payee = castToReference(value); // Reference
882          return value;
883        case 820081177: // recipient
884          this.recipient = castToReference(value); // Reference
885          return value;
886        case -1413853096: // amount
887          this.amount = castToMoney(value); // Money
888          return value;
889        case 1430704536: // paymentStatus
890          this.paymentStatus = castToCodeableConcept(value); // CodeableConcept
891          return value;
892        default: return super.setProperty(hash, name, value);
893        }
894
895      }
896
897      @Override
898      public Base setProperty(String name, Base value) throws FHIRException {
899        if (name.equals("identifier")) {
900          this.getIdentifier().add(castToIdentifier(value));
901        } else if (name.equals("status")) {
902          value = new PaymentNoticeStatusEnumFactory().fromType(castToCode(value));
903          this.status = (Enumeration) value; // Enumeration<PaymentNoticeStatus>
904        } else if (name.equals("request")) {
905          this.request = castToReference(value); // Reference
906        } else if (name.equals("response")) {
907          this.response = castToReference(value); // Reference
908        } else if (name.equals("created")) {
909          this.created = castToDateTime(value); // DateTimeType
910        } else if (name.equals("provider")) {
911          this.provider = castToReference(value); // Reference
912        } else if (name.equals("payment")) {
913          this.payment = castToReference(value); // Reference
914        } else if (name.equals("paymentDate")) {
915          this.paymentDate = castToDate(value); // DateType
916        } else if (name.equals("payee")) {
917          this.payee = castToReference(value); // Reference
918        } else if (name.equals("recipient")) {
919          this.recipient = castToReference(value); // Reference
920        } else if (name.equals("amount")) {
921          this.amount = castToMoney(value); // Money
922        } else if (name.equals("paymentStatus")) {
923          this.paymentStatus = castToCodeableConcept(value); // CodeableConcept
924        } else
925          return super.setProperty(name, value);
926        return value;
927      }
928
929      @Override
930      public Base makeProperty(int hash, String name) throws FHIRException {
931        switch (hash) {
932        case -1618432855:  return addIdentifier(); 
933        case -892481550:  return getStatusElement();
934        case 1095692943:  return getRequest(); 
935        case -340323263:  return getResponse(); 
936        case 1028554472:  return getCreatedElement();
937        case -987494927:  return getProvider(); 
938        case -786681338:  return getPayment(); 
939        case -1540873516:  return getPaymentDateElement();
940        case 106443592:  return getPayee(); 
941        case 820081177:  return getRecipient(); 
942        case -1413853096:  return getAmount(); 
943        case 1430704536:  return getPaymentStatus(); 
944        default: return super.makeProperty(hash, name);
945        }
946
947      }
948
949      @Override
950      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
951        switch (hash) {
952        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
953        case -892481550: /*status*/ return new String[] {"code"};
954        case 1095692943: /*request*/ return new String[] {"Reference"};
955        case -340323263: /*response*/ return new String[] {"Reference"};
956        case 1028554472: /*created*/ return new String[] {"dateTime"};
957        case -987494927: /*provider*/ return new String[] {"Reference"};
958        case -786681338: /*payment*/ return new String[] {"Reference"};
959        case -1540873516: /*paymentDate*/ return new String[] {"date"};
960        case 106443592: /*payee*/ return new String[] {"Reference"};
961        case 820081177: /*recipient*/ return new String[] {"Reference"};
962        case -1413853096: /*amount*/ return new String[] {"Money"};
963        case 1430704536: /*paymentStatus*/ return new String[] {"CodeableConcept"};
964        default: return super.getTypesForProperty(hash, name);
965        }
966
967      }
968
969      @Override
970      public Base addChild(String name) throws FHIRException {
971        if (name.equals("identifier")) {
972          return addIdentifier();
973        }
974        else if (name.equals("status")) {
975          throw new FHIRException("Cannot call addChild on a primitive type PaymentNotice.status");
976        }
977        else if (name.equals("request")) {
978          this.request = new Reference();
979          return this.request;
980        }
981        else if (name.equals("response")) {
982          this.response = new Reference();
983          return this.response;
984        }
985        else if (name.equals("created")) {
986          throw new FHIRException("Cannot call addChild on a primitive type PaymentNotice.created");
987        }
988        else if (name.equals("provider")) {
989          this.provider = new Reference();
990          return this.provider;
991        }
992        else if (name.equals("payment")) {
993          this.payment = new Reference();
994          return this.payment;
995        }
996        else if (name.equals("paymentDate")) {
997          throw new FHIRException("Cannot call addChild on a primitive type PaymentNotice.paymentDate");
998        }
999        else if (name.equals("payee")) {
1000          this.payee = new Reference();
1001          return this.payee;
1002        }
1003        else if (name.equals("recipient")) {
1004          this.recipient = new Reference();
1005          return this.recipient;
1006        }
1007        else if (name.equals("amount")) {
1008          this.amount = new Money();
1009          return this.amount;
1010        }
1011        else if (name.equals("paymentStatus")) {
1012          this.paymentStatus = new CodeableConcept();
1013          return this.paymentStatus;
1014        }
1015        else
1016          return super.addChild(name);
1017      }
1018
1019  public String fhirType() {
1020    return "PaymentNotice";
1021
1022  }
1023
1024      public PaymentNotice copy() {
1025        PaymentNotice dst = new PaymentNotice();
1026        copyValues(dst);
1027        if (identifier != null) {
1028          dst.identifier = new ArrayList<Identifier>();
1029          for (Identifier i : identifier)
1030            dst.identifier.add(i.copy());
1031        };
1032        dst.status = status == null ? null : status.copy();
1033        dst.request = request == null ? null : request.copy();
1034        dst.response = response == null ? null : response.copy();
1035        dst.created = created == null ? null : created.copy();
1036        dst.provider = provider == null ? null : provider.copy();
1037        dst.payment = payment == null ? null : payment.copy();
1038        dst.paymentDate = paymentDate == null ? null : paymentDate.copy();
1039        dst.payee = payee == null ? null : payee.copy();
1040        dst.recipient = recipient == null ? null : recipient.copy();
1041        dst.amount = amount == null ? null : amount.copy();
1042        dst.paymentStatus = paymentStatus == null ? null : paymentStatus.copy();
1043        return dst;
1044      }
1045
1046      protected PaymentNotice typedCopy() {
1047        return copy();
1048      }
1049
1050      @Override
1051      public boolean equalsDeep(Base other_) {
1052        if (!super.equalsDeep(other_))
1053          return false;
1054        if (!(other_ instanceof PaymentNotice))
1055          return false;
1056        PaymentNotice o = (PaymentNotice) other_;
1057        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(request, o.request, true)
1058           && compareDeep(response, o.response, true) && compareDeep(created, o.created, true) && compareDeep(provider, o.provider, true)
1059           && compareDeep(payment, o.payment, true) && compareDeep(paymentDate, o.paymentDate, true) && compareDeep(payee, o.payee, true)
1060           && compareDeep(recipient, o.recipient, true) && compareDeep(amount, o.amount, true) && compareDeep(paymentStatus, o.paymentStatus, true)
1061          ;
1062      }
1063
1064      @Override
1065      public boolean equalsShallow(Base other_) {
1066        if (!super.equalsShallow(other_))
1067          return false;
1068        if (!(other_ instanceof PaymentNotice))
1069          return false;
1070        PaymentNotice o = (PaymentNotice) other_;
1071        return compareValues(status, o.status, true) && compareValues(created, o.created, true) && compareValues(paymentDate, o.paymentDate, true)
1072          ;
1073      }
1074
1075      public boolean isEmpty() {
1076        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, request
1077          , response, created, provider, payment, paymentDate, payee, recipient, amount
1078          , paymentStatus);
1079      }
1080
1081  @Override
1082  public ResourceType getResourceType() {
1083    return ResourceType.PaymentNotice;
1084   }
1085
1086 /**
1087   * Search parameter: <b>identifier</b>
1088   * <p>
1089   * Description: <b>The business identifier of the notice</b><br>
1090   * Type: <b>token</b><br>
1091   * Path: <b>PaymentNotice.identifier</b><br>
1092   * </p>
1093   */
1094  @SearchParamDefinition(name="identifier", path="PaymentNotice.identifier", description="The business identifier of the notice", type="token" )
1095  public static final String SP_IDENTIFIER = "identifier";
1096 /**
1097   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1098   * <p>
1099   * Description: <b>The business identifier of the notice</b><br>
1100   * Type: <b>token</b><br>
1101   * Path: <b>PaymentNotice.identifier</b><br>
1102   * </p>
1103   */
1104  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1105
1106 /**
1107   * Search parameter: <b>request</b>
1108   * <p>
1109   * Description: <b>The Claim</b><br>
1110   * Type: <b>reference</b><br>
1111   * Path: <b>PaymentNotice.request</b><br>
1112   * </p>
1113   */
1114  @SearchParamDefinition(name="request", path="PaymentNotice.request", description="The Claim", type="reference" )
1115  public static final String SP_REQUEST = "request";
1116 /**
1117   * <b>Fluent Client</b> search parameter constant for <b>request</b>
1118   * <p>
1119   * Description: <b>The Claim</b><br>
1120   * Type: <b>reference</b><br>
1121   * Path: <b>PaymentNotice.request</b><br>
1122   * </p>
1123   */
1124  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST);
1125
1126/**
1127   * Constant for fluent queries to be used to add include statements. Specifies
1128   * the path value of "<b>PaymentNotice:request</b>".
1129   */
1130  public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST = new ca.uhn.fhir.model.api.Include("PaymentNotice:request").toLocked();
1131
1132 /**
1133   * Search parameter: <b>provider</b>
1134   * <p>
1135   * Description: <b>The reference to the provider</b><br>
1136   * Type: <b>reference</b><br>
1137   * Path: <b>PaymentNotice.provider</b><br>
1138   * </p>
1139   */
1140  @SearchParamDefinition(name="provider", path="PaymentNotice.provider", description="The reference to the provider", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Organization.class, Practitioner.class, PractitionerRole.class } )
1141  public static final String SP_PROVIDER = "provider";
1142 /**
1143   * <b>Fluent Client</b> search parameter constant for <b>provider</b>
1144   * <p>
1145   * Description: <b>The reference to the provider</b><br>
1146   * Type: <b>reference</b><br>
1147   * Path: <b>PaymentNotice.provider</b><br>
1148   * </p>
1149   */
1150  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PROVIDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PROVIDER);
1151
1152/**
1153   * Constant for fluent queries to be used to add include statements. Specifies
1154   * the path value of "<b>PaymentNotice:provider</b>".
1155   */
1156  public static final ca.uhn.fhir.model.api.Include INCLUDE_PROVIDER = new ca.uhn.fhir.model.api.Include("PaymentNotice:provider").toLocked();
1157
1158 /**
1159   * Search parameter: <b>created</b>
1160   * <p>
1161   * Description: <b>Creation date fro the notice</b><br>
1162   * Type: <b>date</b><br>
1163   * Path: <b>PaymentNotice.created</b><br>
1164   * </p>
1165   */
1166  @SearchParamDefinition(name="created", path="PaymentNotice.created", description="Creation date fro the notice", type="date" )
1167  public static final String SP_CREATED = "created";
1168 /**
1169   * <b>Fluent Client</b> search parameter constant for <b>created</b>
1170   * <p>
1171   * Description: <b>Creation date fro the notice</b><br>
1172   * Type: <b>date</b><br>
1173   * Path: <b>PaymentNotice.created</b><br>
1174   * </p>
1175   */
1176  public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_CREATED);
1177
1178 /**
1179   * Search parameter: <b>response</b>
1180   * <p>
1181   * Description: <b>The ClaimResponse</b><br>
1182   * Type: <b>reference</b><br>
1183   * Path: <b>PaymentNotice.response</b><br>
1184   * </p>
1185   */
1186  @SearchParamDefinition(name="response", path="PaymentNotice.response", description="The ClaimResponse", type="reference" )
1187  public static final String SP_RESPONSE = "response";
1188 /**
1189   * <b>Fluent Client</b> search parameter constant for <b>response</b>
1190   * <p>
1191   * Description: <b>The ClaimResponse</b><br>
1192   * Type: <b>reference</b><br>
1193   * Path: <b>PaymentNotice.response</b><br>
1194   * </p>
1195   */
1196  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RESPONSE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RESPONSE);
1197
1198/**
1199   * Constant for fluent queries to be used to add include statements. Specifies
1200   * the path value of "<b>PaymentNotice:response</b>".
1201   */
1202  public static final ca.uhn.fhir.model.api.Include INCLUDE_RESPONSE = new ca.uhn.fhir.model.api.Include("PaymentNotice:response").toLocked();
1203
1204 /**
1205   * Search parameter: <b>payment-status</b>
1206   * <p>
1207   * Description: <b>The type of payment notice</b><br>
1208   * Type: <b>token</b><br>
1209   * Path: <b>PaymentNotice.paymentStatus</b><br>
1210   * </p>
1211   */
1212  @SearchParamDefinition(name="payment-status", path="PaymentNotice.paymentStatus", description="The type of payment notice", type="token" )
1213  public static final String SP_PAYMENT_STATUS = "payment-status";
1214 /**
1215   * <b>Fluent Client</b> search parameter constant for <b>payment-status</b>
1216   * <p>
1217   * Description: <b>The type of payment notice</b><br>
1218   * Type: <b>token</b><br>
1219   * Path: <b>PaymentNotice.paymentStatus</b><br>
1220   * </p>
1221   */
1222  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PAYMENT_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PAYMENT_STATUS);
1223
1224 /**
1225   * Search parameter: <b>status</b>
1226   * <p>
1227   * Description: <b>The status of the payment notice</b><br>
1228   * Type: <b>token</b><br>
1229   * Path: <b>PaymentNotice.status</b><br>
1230   * </p>
1231   */
1232  @SearchParamDefinition(name="status", path="PaymentNotice.status", description="The status of the payment notice", type="token" )
1233  public static final String SP_STATUS = "status";
1234 /**
1235   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1236   * <p>
1237   * Description: <b>The status of the payment notice</b><br>
1238   * Type: <b>token</b><br>
1239   * Path: <b>PaymentNotice.status</b><br>
1240   * </p>
1241   */
1242  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1243
1244
1245}
1246