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