001package org.hl7.fhir.dstu2.model;
002
003
004
005
006/*
007  Copyright (c) 2011+, HL7, Inc.
008  All rights reserved.
009  
010  Redistribution and use in source and binary forms, with or without modification, 
011  are permitted provided that the following conditions are met:
012  
013   * Redistributions of source code must retain the above copyright notice, this 
014     list of conditions and the following disclaimer.
015   * Redistributions in binary form must reproduce the above copyright notice, 
016     this list of conditions and the following disclaimer in the documentation 
017     and/or other materials provided with the distribution.
018   * Neither the name of HL7 nor the names of its contributors may be used to 
019     endorse or promote products derived from this software without specific 
020     prior written permission.
021  
022  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
023  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
024  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
025  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
026  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
027  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
028  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
029  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
030  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
031  POSSIBILITY OF SUCH DAMAGE.
032  
033*/
034
035// Generated on Wed, Jul 13, 2016 05:32+1000 for FHIR v1.0.2
036import java.util.ArrayList;
037import java.util.Date;
038import java.util.List;
039
040import ca.uhn.fhir.model.api.annotation.Child;
041import ca.uhn.fhir.model.api.annotation.Description;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.exceptions.FHIRException;
045/**
046 * This resource provides the status of the payment for goods and services rendered, and the request and response resource references.
047 */
048@ResourceDef(name="PaymentNotice", profile="http://hl7.org/fhir/Profile/PaymentNotice")
049public class PaymentNotice extends DomainResource {
050
051    /**
052     * The Response business identifier.
053     */
054    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
055    @Description(shortDefinition="Business Identifier", formalDefinition="The Response business identifier." )
056    protected List<Identifier> identifier;
057
058    /**
059     * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.
060     */
061    @Child(name = "ruleset", type = {Coding.class}, order=1, min=0, max=1, modifier=false, summary=true)
062    @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." )
063    protected Coding ruleset;
064
065    /**
066     * The style (standard) and version of the original material which was converted into this resource.
067     */
068    @Child(name = "originalRuleset", type = {Coding.class}, order=2, min=0, max=1, modifier=false, summary=true)
069    @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." )
070    protected Coding originalRuleset;
071
072    /**
073     * The date when this resource was created.
074     */
075    @Child(name = "created", type = {DateTimeType.class}, order=3, min=0, max=1, modifier=false, summary=true)
076    @Description(shortDefinition="Creation date", formalDefinition="The date when this resource was created." )
077    protected DateTimeType created;
078
079    /**
080     * The Insurer who is target  of the request.
081     */
082    @Child(name = "target", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=true)
083    @Description(shortDefinition="Insurer or Regulatory body", formalDefinition="The Insurer who is target  of the request." )
084    protected Reference target;
085
086    /**
087     * The actual object that is the target of the reference (The Insurer who is target  of the request.)
088     */
089    protected Organization targetTarget;
090
091    /**
092     * The practitioner who is responsible for the services rendered to the patient.
093     */
094    @Child(name = "provider", type = {Practitioner.class}, order=5, min=0, max=1, modifier=false, summary=true)
095    @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." )
096    protected Reference provider;
097
098    /**
099     * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.)
100     */
101    protected Practitioner providerTarget;
102
103    /**
104     * The organization which is responsible for the services rendered to the patient.
105     */
106    @Child(name = "organization", type = {Organization.class}, order=6, min=0, max=1, modifier=false, summary=true)
107    @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." )
108    protected Reference organization;
109
110    /**
111     * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.)
112     */
113    protected Organization organizationTarget;
114
115    /**
116     * Reference of resource to reverse.
117     */
118    @Child(name = "request", type = {}, order=7, min=0, max=1, modifier=false, summary=true)
119    @Description(shortDefinition="Request reference", formalDefinition="Reference of resource to reverse." )
120    protected Reference request;
121
122    /**
123     * The actual object that is the target of the reference (Reference of resource to reverse.)
124     */
125    protected Resource requestTarget;
126
127    /**
128     * Reference of response to resource to reverse.
129     */
130    @Child(name = "response", type = {}, order=8, min=0, max=1, modifier=false, summary=true)
131    @Description(shortDefinition="Response reference", formalDefinition="Reference of response to resource to reverse." )
132    protected Reference response;
133
134    /**
135     * The actual object that is the target of the reference (Reference of response to resource to reverse.)
136     */
137    protected Resource responseTarget;
138
139    /**
140     * The payment status, typically paid: payment sent, cleared: payment received.
141     */
142    @Child(name = "paymentStatus", type = {Coding.class}, order=9, min=1, max=1, modifier=false, summary=true)
143    @Description(shortDefinition="Status of the payment", formalDefinition="The payment status, typically paid: payment sent, cleared: payment received." )
144    protected Coding paymentStatus;
145
146    private static final long serialVersionUID = -394826458L;
147
148  /*
149   * Constructor
150   */
151    public PaymentNotice() {
152      super();
153    }
154
155  /*
156   * Constructor
157   */
158    public PaymentNotice(Coding paymentStatus) {
159      super();
160      this.paymentStatus = paymentStatus;
161    }
162
163    /**
164     * @return {@link #identifier} (The Response business identifier.)
165     */
166    public List<Identifier> getIdentifier() { 
167      if (this.identifier == null)
168        this.identifier = new ArrayList<Identifier>();
169      return this.identifier;
170    }
171
172    public boolean hasIdentifier() { 
173      if (this.identifier == null)
174        return false;
175      for (Identifier item : this.identifier)
176        if (!item.isEmpty())
177          return true;
178      return false;
179    }
180
181    /**
182     * @return {@link #identifier} (The Response business identifier.)
183     */
184    // syntactic sugar
185    public Identifier addIdentifier() { //3
186      Identifier t = new Identifier();
187      if (this.identifier == null)
188        this.identifier = new ArrayList<Identifier>();
189      this.identifier.add(t);
190      return t;
191    }
192
193    // syntactic sugar
194    public PaymentNotice addIdentifier(Identifier t) { //3
195      if (t == null)
196        return this;
197      if (this.identifier == null)
198        this.identifier = new ArrayList<Identifier>();
199      this.identifier.add(t);
200      return this;
201    }
202
203    /**
204     * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.)
205     */
206    public Coding getRuleset() { 
207      if (this.ruleset == null)
208        if (Configuration.errorOnAutoCreate())
209          throw new Error("Attempt to auto-create PaymentNotice.ruleset");
210        else if (Configuration.doAutoCreate())
211          this.ruleset = new Coding(); // cc
212      return this.ruleset;
213    }
214
215    public boolean hasRuleset() { 
216      return this.ruleset != null && !this.ruleset.isEmpty();
217    }
218
219    /**
220     * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.)
221     */
222    public PaymentNotice setRuleset(Coding value) { 
223      this.ruleset = value;
224      return this;
225    }
226
227    /**
228     * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.)
229     */
230    public Coding getOriginalRuleset() { 
231      if (this.originalRuleset == null)
232        if (Configuration.errorOnAutoCreate())
233          throw new Error("Attempt to auto-create PaymentNotice.originalRuleset");
234        else if (Configuration.doAutoCreate())
235          this.originalRuleset = new Coding(); // cc
236      return this.originalRuleset;
237    }
238
239    public boolean hasOriginalRuleset() { 
240      return this.originalRuleset != null && !this.originalRuleset.isEmpty();
241    }
242
243    /**
244     * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.)
245     */
246    public PaymentNotice setOriginalRuleset(Coding value) { 
247      this.originalRuleset = value;
248      return this;
249    }
250
251    /**
252     * @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
253     */
254    public DateTimeType getCreatedElement() { 
255      if (this.created == null)
256        if (Configuration.errorOnAutoCreate())
257          throw new Error("Attempt to auto-create PaymentNotice.created");
258        else if (Configuration.doAutoCreate())
259          this.created = new DateTimeType(); // bb
260      return this.created;
261    }
262
263    public boolean hasCreatedElement() { 
264      return this.created != null && !this.created.isEmpty();
265    }
266
267    public boolean hasCreated() { 
268      return this.created != null && !this.created.isEmpty();
269    }
270
271    /**
272     * @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
273     */
274    public PaymentNotice setCreatedElement(DateTimeType value) { 
275      this.created = value;
276      return this;
277    }
278
279    /**
280     * @return The date when this resource was created.
281     */
282    public Date getCreated() { 
283      return this.created == null ? null : this.created.getValue();
284    }
285
286    /**
287     * @param value The date when this resource was created.
288     */
289    public PaymentNotice setCreated(Date value) { 
290      if (value == null)
291        this.created = null;
292      else {
293        if (this.created == null)
294          this.created = new DateTimeType();
295        this.created.setValue(value);
296      }
297      return this;
298    }
299
300    /**
301     * @return {@link #target} (The Insurer who is target  of the request.)
302     */
303    public Reference getTarget() { 
304      if (this.target == null)
305        if (Configuration.errorOnAutoCreate())
306          throw new Error("Attempt to auto-create PaymentNotice.target");
307        else if (Configuration.doAutoCreate())
308          this.target = new Reference(); // cc
309      return this.target;
310    }
311
312    public boolean hasTarget() { 
313      return this.target != null && !this.target.isEmpty();
314    }
315
316    /**
317     * @param value {@link #target} (The Insurer who is target  of the request.)
318     */
319    public PaymentNotice setTarget(Reference value) { 
320      this.target = value;
321      return this;
322    }
323
324    /**
325     * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who is target  of the request.)
326     */
327    public Organization getTargetTarget() { 
328      if (this.targetTarget == null)
329        if (Configuration.errorOnAutoCreate())
330          throw new Error("Attempt to auto-create PaymentNotice.target");
331        else if (Configuration.doAutoCreate())
332          this.targetTarget = new Organization(); // aa
333      return this.targetTarget;
334    }
335
336    /**
337     * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who is target  of the request.)
338     */
339    public PaymentNotice setTargetTarget(Organization value) { 
340      this.targetTarget = value;
341      return this;
342    }
343
344    /**
345     * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
346     */
347    public Reference getProvider() { 
348      if (this.provider == null)
349        if (Configuration.errorOnAutoCreate())
350          throw new Error("Attempt to auto-create PaymentNotice.provider");
351        else if (Configuration.doAutoCreate())
352          this.provider = new Reference(); // cc
353      return this.provider;
354    }
355
356    public boolean hasProvider() { 
357      return this.provider != null && !this.provider.isEmpty();
358    }
359
360    /**
361     * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.)
362     */
363    public PaymentNotice setProvider(Reference value) { 
364      this.provider = value;
365      return this;
366    }
367
368    /**
369     * @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.)
370     */
371    public Practitioner getProviderTarget() { 
372      if (this.providerTarget == null)
373        if (Configuration.errorOnAutoCreate())
374          throw new Error("Attempt to auto-create PaymentNotice.provider");
375        else if (Configuration.doAutoCreate())
376          this.providerTarget = new Practitioner(); // aa
377      return this.providerTarget;
378    }
379
380    /**
381     * @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.)
382     */
383    public PaymentNotice setProviderTarget(Practitioner value) { 
384      this.providerTarget = value;
385      return this;
386    }
387
388    /**
389     * @return {@link #organization} (The organization which is responsible for the services rendered to the patient.)
390     */
391    public Reference getOrganization() { 
392      if (this.organization == null)
393        if (Configuration.errorOnAutoCreate())
394          throw new Error("Attempt to auto-create PaymentNotice.organization");
395        else if (Configuration.doAutoCreate())
396          this.organization = new Reference(); // cc
397      return this.organization;
398    }
399
400    public boolean hasOrganization() { 
401      return this.organization != null && !this.organization.isEmpty();
402    }
403
404    /**
405     * @param value {@link #organization} (The organization which is responsible for the services rendered to the patient.)
406     */
407    public PaymentNotice setOrganization(Reference value) { 
408      this.organization = value;
409      return this;
410    }
411
412    /**
413     * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.)
414     */
415    public Organization getOrganizationTarget() { 
416      if (this.organizationTarget == null)
417        if (Configuration.errorOnAutoCreate())
418          throw new Error("Attempt to auto-create PaymentNotice.organization");
419        else if (Configuration.doAutoCreate())
420          this.organizationTarget = new Organization(); // aa
421      return this.organizationTarget;
422    }
423
424    /**
425     * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.)
426     */
427    public PaymentNotice setOrganizationTarget(Organization value) { 
428      this.organizationTarget = value;
429      return this;
430    }
431
432    /**
433     * @return {@link #request} (Reference of resource to reverse.)
434     */
435    public Reference getRequest() { 
436      if (this.request == null)
437        if (Configuration.errorOnAutoCreate())
438          throw new Error("Attempt to auto-create PaymentNotice.request");
439        else if (Configuration.doAutoCreate())
440          this.request = new Reference(); // cc
441      return this.request;
442    }
443
444    public boolean hasRequest() { 
445      return this.request != null && !this.request.isEmpty();
446    }
447
448    /**
449     * @param value {@link #request} (Reference of resource to reverse.)
450     */
451    public PaymentNotice setRequest(Reference value) { 
452      this.request = value;
453      return this;
454    }
455
456    /**
457     * @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 to reverse.)
458     */
459    public Resource getRequestTarget() { 
460      return this.requestTarget;
461    }
462
463    /**
464     * @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 to reverse.)
465     */
466    public PaymentNotice setRequestTarget(Resource value) { 
467      this.requestTarget = value;
468      return this;
469    }
470
471    /**
472     * @return {@link #response} (Reference of response to resource to reverse.)
473     */
474    public Reference getResponse() { 
475      if (this.response == null)
476        if (Configuration.errorOnAutoCreate())
477          throw new Error("Attempt to auto-create PaymentNotice.response");
478        else if (Configuration.doAutoCreate())
479          this.response = new Reference(); // cc
480      return this.response;
481    }
482
483    public boolean hasResponse() { 
484      return this.response != null && !this.response.isEmpty();
485    }
486
487    /**
488     * @param value {@link #response} (Reference of response to resource to reverse.)
489     */
490    public PaymentNotice setResponse(Reference value) { 
491      this.response = value;
492      return this;
493    }
494
495    /**
496     * @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 to reverse.)
497     */
498    public Resource getResponseTarget() { 
499      return this.responseTarget;
500    }
501
502    /**
503     * @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 to reverse.)
504     */
505    public PaymentNotice setResponseTarget(Resource value) { 
506      this.responseTarget = value;
507      return this;
508    }
509
510    /**
511     * @return {@link #paymentStatus} (The payment status, typically paid: payment sent, cleared: payment received.)
512     */
513    public Coding getPaymentStatus() { 
514      if (this.paymentStatus == null)
515        if (Configuration.errorOnAutoCreate())
516          throw new Error("Attempt to auto-create PaymentNotice.paymentStatus");
517        else if (Configuration.doAutoCreate())
518          this.paymentStatus = new Coding(); // cc
519      return this.paymentStatus;
520    }
521
522    public boolean hasPaymentStatus() { 
523      return this.paymentStatus != null && !this.paymentStatus.isEmpty();
524    }
525
526    /**
527     * @param value {@link #paymentStatus} (The payment status, typically paid: payment sent, cleared: payment received.)
528     */
529    public PaymentNotice setPaymentStatus(Coding value) { 
530      this.paymentStatus = value;
531      return this;
532    }
533
534      protected void listChildren(List<Property> childrenList) {
535        super.listChildren(childrenList);
536        childrenList.add(new Property("identifier", "Identifier", "The Response business identifier.", 0, java.lang.Integer.MAX_VALUE, identifier));
537        childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset));
538        childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset));
539        childrenList.add(new Property("created", "dateTime", "The date when this resource was created.", 0, java.lang.Integer.MAX_VALUE, created));
540        childrenList.add(new Property("target", "Reference(Organization)", "The Insurer who is target  of the request.", 0, java.lang.Integer.MAX_VALUE, target));
541        childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider));
542        childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, organization));
543        childrenList.add(new Property("request", "Reference(Any)", "Reference of resource to reverse.", 0, java.lang.Integer.MAX_VALUE, request));
544        childrenList.add(new Property("response", "Reference(Any)", "Reference of response to resource to reverse.", 0, java.lang.Integer.MAX_VALUE, response));
545        childrenList.add(new Property("paymentStatus", "Coding", "The payment status, typically paid: payment sent, cleared: payment received.", 0, java.lang.Integer.MAX_VALUE, paymentStatus));
546      }
547
548      @Override
549      public void setProperty(String name, Base value) throws FHIRException {
550        if (name.equals("identifier"))
551          this.getIdentifier().add(castToIdentifier(value));
552        else if (name.equals("ruleset"))
553          this.ruleset = castToCoding(value); // Coding
554        else if (name.equals("originalRuleset"))
555          this.originalRuleset = castToCoding(value); // Coding
556        else if (name.equals("created"))
557          this.created = castToDateTime(value); // DateTimeType
558        else if (name.equals("target"))
559          this.target = castToReference(value); // Reference
560        else if (name.equals("provider"))
561          this.provider = castToReference(value); // Reference
562        else if (name.equals("organization"))
563          this.organization = castToReference(value); // Reference
564        else if (name.equals("request"))
565          this.request = castToReference(value); // Reference
566        else if (name.equals("response"))
567          this.response = castToReference(value); // Reference
568        else if (name.equals("paymentStatus"))
569          this.paymentStatus = castToCoding(value); // Coding
570        else
571          super.setProperty(name, value);
572      }
573
574      @Override
575      public Base addChild(String name) throws FHIRException {
576        if (name.equals("identifier")) {
577          return addIdentifier();
578        }
579        else if (name.equals("ruleset")) {
580          this.ruleset = new Coding();
581          return this.ruleset;
582        }
583        else if (name.equals("originalRuleset")) {
584          this.originalRuleset = new Coding();
585          return this.originalRuleset;
586        }
587        else if (name.equals("created")) {
588          throw new FHIRException("Cannot call addChild on a primitive type PaymentNotice.created");
589        }
590        else if (name.equals("target")) {
591          this.target = new Reference();
592          return this.target;
593        }
594        else if (name.equals("provider")) {
595          this.provider = new Reference();
596          return this.provider;
597        }
598        else if (name.equals("organization")) {
599          this.organization = new Reference();
600          return this.organization;
601        }
602        else if (name.equals("request")) {
603          this.request = new Reference();
604          return this.request;
605        }
606        else if (name.equals("response")) {
607          this.response = new Reference();
608          return this.response;
609        }
610        else if (name.equals("paymentStatus")) {
611          this.paymentStatus = new Coding();
612          return this.paymentStatus;
613        }
614        else
615          return super.addChild(name);
616      }
617
618  public String fhirType() {
619    return "PaymentNotice";
620
621  }
622
623      public PaymentNotice copy() {
624        PaymentNotice dst = new PaymentNotice();
625        copyValues(dst);
626        if (identifier != null) {
627          dst.identifier = new ArrayList<Identifier>();
628          for (Identifier i : identifier)
629            dst.identifier.add(i.copy());
630        };
631        dst.ruleset = ruleset == null ? null : ruleset.copy();
632        dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy();
633        dst.created = created == null ? null : created.copy();
634        dst.target = target == null ? null : target.copy();
635        dst.provider = provider == null ? null : provider.copy();
636        dst.organization = organization == null ? null : organization.copy();
637        dst.request = request == null ? null : request.copy();
638        dst.response = response == null ? null : response.copy();
639        dst.paymentStatus = paymentStatus == null ? null : paymentStatus.copy();
640        return dst;
641      }
642
643      protected PaymentNotice typedCopy() {
644        return copy();
645      }
646
647      @Override
648      public boolean equalsDeep(Base other) {
649        if (!super.equalsDeep(other))
650          return false;
651        if (!(other instanceof PaymentNotice))
652          return false;
653        PaymentNotice o = (PaymentNotice) other;
654        return compareDeep(identifier, o.identifier, true) && compareDeep(ruleset, o.ruleset, true) && compareDeep(originalRuleset, o.originalRuleset, true)
655           && compareDeep(created, o.created, true) && compareDeep(target, o.target, true) && compareDeep(provider, o.provider, true)
656           && compareDeep(organization, o.organization, true) && compareDeep(request, o.request, true) && compareDeep(response, o.response, true)
657           && compareDeep(paymentStatus, o.paymentStatus, true);
658      }
659
660      @Override
661      public boolean equalsShallow(Base other) {
662        if (!super.equalsShallow(other))
663          return false;
664        if (!(other instanceof PaymentNotice))
665          return false;
666        PaymentNotice o = (PaymentNotice) other;
667        return compareValues(created, o.created, true);
668      }
669
670      public boolean isEmpty() {
671        return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ruleset == null || ruleset.isEmpty())
672           && (originalRuleset == null || originalRuleset.isEmpty()) && (created == null || created.isEmpty())
673           && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty()) && (organization == null || organization.isEmpty())
674           && (request == null || request.isEmpty()) && (response == null || response.isEmpty()) && (paymentStatus == null || paymentStatus.isEmpty())
675          ;
676      }
677
678  @Override
679  public ResourceType getResourceType() {
680    return ResourceType.PaymentNotice;
681   }
682
683  @SearchParamDefinition(name="identifier", path="PaymentNotice.identifier", description="The business identifier of the Eligibility", type="token" )
684  public static final String SP_IDENTIFIER = "identifier";
685
686}