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