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