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 org.hl7.fhir.dstu2.model.Enumerations.DocumentReferenceStatus; 041import org.hl7.fhir.dstu2.model.Enumerations.DocumentReferenceStatusEnumFactory; 042import ca.uhn.fhir.model.api.annotation.Block; 043import ca.uhn.fhir.model.api.annotation.Child; 044import ca.uhn.fhir.model.api.annotation.Description; 045import ca.uhn.fhir.model.api.annotation.ResourceDef; 046import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 047import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 048import org.hl7.fhir.exceptions.FHIRException; 049import org.hl7.fhir.utilities.Utilities; 050/** 051 * A manifest that defines a set of documents. 052 */ 053@ResourceDef(name="DocumentManifest", profile="http://hl7.org/fhir/Profile/DocumentManifest") 054public class DocumentManifest extends DomainResource { 055 056 @Block() 057 public static class DocumentManifestContentComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed. 060 */ 061 @Child(name = "p", type = {Attachment.class}, order=1, min=1, max=1, modifier=false, summary=true) 062 @Description(shortDefinition="Contents of this set of documents", formalDefinition="The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed." ) 063 protected Type p; 064 065 private static final long serialVersionUID = -347538500L; 066 067 /* 068 * Constructor 069 */ 070 public DocumentManifestContentComponent() { 071 super(); 072 } 073 074 /* 075 * Constructor 076 */ 077 public DocumentManifestContentComponent(Type p) { 078 super(); 079 this.p = p; 080 } 081 082 /** 083 * @return {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.) 084 */ 085 public Type getP() { 086 return this.p; 087 } 088 089 /** 090 * @return {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.) 091 */ 092 public Attachment getPAttachment() throws FHIRException { 093 if (!(this.p instanceof Attachment)) 094 throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.p.getClass().getName()+" was encountered"); 095 return (Attachment) this.p; 096 } 097 098 public boolean hasPAttachment() { 099 return this.p instanceof Attachment; 100 } 101 102 /** 103 * @return {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.) 104 */ 105 public Reference getPReference() throws FHIRException { 106 if (!(this.p instanceof Reference)) 107 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.p.getClass().getName()+" was encountered"); 108 return (Reference) this.p; 109 } 110 111 public boolean hasPReference() { 112 return this.p instanceof Reference; 113 } 114 115 public boolean hasP() { 116 return this.p != null && !this.p.isEmpty(); 117 } 118 119 /** 120 * @param value {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.) 121 */ 122 public DocumentManifestContentComponent setP(Type value) { 123 this.p = value; 124 return this; 125 } 126 127 protected void listChildren(List<Property> childrenList) { 128 super.listChildren(childrenList); 129 childrenList.add(new Property("p[x]", "Attachment|Reference(Any)", "The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.", 0, java.lang.Integer.MAX_VALUE, p)); 130 } 131 132 @Override 133 public void setProperty(String name, Base value) throws FHIRException { 134 if (name.equals("p[x]")) 135 this.p = (Type) value; // Type 136 else 137 super.setProperty(name, value); 138 } 139 140 @Override 141 public Base addChild(String name) throws FHIRException { 142 if (name.equals("pAttachment")) { 143 this.p = new Attachment(); 144 return this.p; 145 } 146 else if (name.equals("pReference")) { 147 this.p = new Reference(); 148 return this.p; 149 } 150 else 151 return super.addChild(name); 152 } 153 154 public DocumentManifestContentComponent copy() { 155 DocumentManifestContentComponent dst = new DocumentManifestContentComponent(); 156 copyValues(dst); 157 dst.p = p == null ? null : p.copy(); 158 return dst; 159 } 160 161 @Override 162 public boolean equalsDeep(Base other) { 163 if (!super.equalsDeep(other)) 164 return false; 165 if (!(other instanceof DocumentManifestContentComponent)) 166 return false; 167 DocumentManifestContentComponent o = (DocumentManifestContentComponent) other; 168 return compareDeep(p, o.p, true); 169 } 170 171 @Override 172 public boolean equalsShallow(Base other) { 173 if (!super.equalsShallow(other)) 174 return false; 175 if (!(other instanceof DocumentManifestContentComponent)) 176 return false; 177 DocumentManifestContentComponent o = (DocumentManifestContentComponent) other; 178 return true; 179 } 180 181 public boolean isEmpty() { 182 return super.isEmpty() && (p == null || p.isEmpty()); 183 } 184 185 public String fhirType() { 186 return "DocumentManifest.content"; 187 188 } 189 190 } 191 192 @Block() 193 public static class DocumentManifestRelatedComponent extends BackboneElement implements IBaseBackboneElement { 194 /** 195 * Related identifier to this DocumentManifest. For example, Order numbers, accession numbers, XDW workflow numbers. 196 */ 197 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=1, modifier=false, summary=true) 198 @Description(shortDefinition="Identifiers of things that are related", formalDefinition="Related identifier to this DocumentManifest. For example, Order numbers, accession numbers, XDW workflow numbers." ) 199 protected Identifier identifier; 200 201 /** 202 * Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc. 203 */ 204 @Child(name = "ref", type = {}, order=2, min=0, max=1, modifier=false, summary=true) 205 @Description(shortDefinition="Related Resource", formalDefinition="Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc." ) 206 protected Reference ref; 207 208 /** 209 * The actual object that is the target of the reference (Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc.) 210 */ 211 protected Resource refTarget; 212 213 private static final long serialVersionUID = -1670123330L; 214 215 /* 216 * Constructor 217 */ 218 public DocumentManifestRelatedComponent() { 219 super(); 220 } 221 222 /** 223 * @return {@link #identifier} (Related identifier to this DocumentManifest. For example, Order numbers, accession numbers, XDW workflow numbers.) 224 */ 225 public Identifier getIdentifier() { 226 if (this.identifier == null) 227 if (Configuration.errorOnAutoCreate()) 228 throw new Error("Attempt to auto-create DocumentManifestRelatedComponent.identifier"); 229 else if (Configuration.doAutoCreate()) 230 this.identifier = new Identifier(); // cc 231 return this.identifier; 232 } 233 234 public boolean hasIdentifier() { 235 return this.identifier != null && !this.identifier.isEmpty(); 236 } 237 238 /** 239 * @param value {@link #identifier} (Related identifier to this DocumentManifest. For example, Order numbers, accession numbers, XDW workflow numbers.) 240 */ 241 public DocumentManifestRelatedComponent setIdentifier(Identifier value) { 242 this.identifier = value; 243 return this; 244 } 245 246 /** 247 * @return {@link #ref} (Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc.) 248 */ 249 public Reference getRef() { 250 if (this.ref == null) 251 if (Configuration.errorOnAutoCreate()) 252 throw new Error("Attempt to auto-create DocumentManifestRelatedComponent.ref"); 253 else if (Configuration.doAutoCreate()) 254 this.ref = new Reference(); // cc 255 return this.ref; 256 } 257 258 public boolean hasRef() { 259 return this.ref != null && !this.ref.isEmpty(); 260 } 261 262 /** 263 * @param value {@link #ref} (Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc.) 264 */ 265 public DocumentManifestRelatedComponent setRef(Reference value) { 266 this.ref = value; 267 return this; 268 } 269 270 /** 271 * @return {@link #ref} 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. (Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc.) 272 */ 273 public Resource getRefTarget() { 274 return this.refTarget; 275 } 276 277 /** 278 * @param value {@link #ref} 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. (Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc.) 279 */ 280 public DocumentManifestRelatedComponent setRefTarget(Resource value) { 281 this.refTarget = value; 282 return this; 283 } 284 285 protected void listChildren(List<Property> childrenList) { 286 super.listChildren(childrenList); 287 childrenList.add(new Property("identifier", "Identifier", "Related identifier to this DocumentManifest. For example, Order numbers, accession numbers, XDW workflow numbers.", 0, java.lang.Integer.MAX_VALUE, identifier)); 288 childrenList.add(new Property("ref", "Reference(Any)", "Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder, Procedure, EligibilityRequest, etc.", 0, java.lang.Integer.MAX_VALUE, ref)); 289 } 290 291 @Override 292 public void setProperty(String name, Base value) throws FHIRException { 293 if (name.equals("identifier")) 294 this.identifier = castToIdentifier(value); // Identifier 295 else if (name.equals("ref")) 296 this.ref = castToReference(value); // Reference 297 else 298 super.setProperty(name, value); 299 } 300 301 @Override 302 public Base addChild(String name) throws FHIRException { 303 if (name.equals("identifier")) { 304 this.identifier = new Identifier(); 305 return this.identifier; 306 } 307 else if (name.equals("ref")) { 308 this.ref = new Reference(); 309 return this.ref; 310 } 311 else 312 return super.addChild(name); 313 } 314 315 public DocumentManifestRelatedComponent copy() { 316 DocumentManifestRelatedComponent dst = new DocumentManifestRelatedComponent(); 317 copyValues(dst); 318 dst.identifier = identifier == null ? null : identifier.copy(); 319 dst.ref = ref == null ? null : ref.copy(); 320 return dst; 321 } 322 323 @Override 324 public boolean equalsDeep(Base other) { 325 if (!super.equalsDeep(other)) 326 return false; 327 if (!(other instanceof DocumentManifestRelatedComponent)) 328 return false; 329 DocumentManifestRelatedComponent o = (DocumentManifestRelatedComponent) other; 330 return compareDeep(identifier, o.identifier, true) && compareDeep(ref, o.ref, true); 331 } 332 333 @Override 334 public boolean equalsShallow(Base other) { 335 if (!super.equalsShallow(other)) 336 return false; 337 if (!(other instanceof DocumentManifestRelatedComponent)) 338 return false; 339 DocumentManifestRelatedComponent o = (DocumentManifestRelatedComponent) other; 340 return true; 341 } 342 343 public boolean isEmpty() { 344 return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ref == null || ref.isEmpty()) 345 ; 346 } 347 348 public String fhirType() { 349 return "DocumentManifest.related"; 350 351 } 352 353 } 354 355 /** 356 * A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts. 357 */ 358 @Child(name = "masterIdentifier", type = {Identifier.class}, order=0, min=0, max=1, modifier=false, summary=true) 359 @Description(shortDefinition="Unique Identifier for the set of documents", formalDefinition="A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts." ) 360 protected Identifier masterIdentifier; 361 362 /** 363 * Other identifiers associated with the document manifest, including version independent identifiers. 364 */ 365 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 366 @Description(shortDefinition="Other identifiers for the manifest", formalDefinition="Other identifiers associated with the document manifest, including version independent identifiers." ) 367 protected List<Identifier> identifier; 368 369 /** 370 * Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case). 371 */ 372 @Child(name = "subject", type = {Patient.class, Practitioner.class, Group.class, Device.class}, order=2, min=0, max=1, modifier=false, summary=true) 373 @Description(shortDefinition="The subject of the set of documents", formalDefinition="Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case)." ) 374 protected Reference subject; 375 376 /** 377 * The actual object that is the target of the reference (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) 378 */ 379 protected Resource subjectTarget; 380 381 /** 382 * A patient, practitioner, or organization for which this set of documents is intended. 383 */ 384 @Child(name = "recipient", type = {Patient.class, Practitioner.class, RelatedPerson.class, Organization.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 385 @Description(shortDefinition="Intended to get notified about this set of documents", formalDefinition="A patient, practitioner, or organization for which this set of documents is intended." ) 386 protected List<Reference> recipient; 387 /** 388 * The actual objects that are the target of the reference (A patient, practitioner, or organization for which this set of documents is intended.) 389 */ 390 protected List<Resource> recipientTarget; 391 392 393 /** 394 * Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider. 395 */ 396 @Child(name = "type", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=true) 397 @Description(shortDefinition="Kind of document set", formalDefinition="Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider." ) 398 protected CodeableConcept type; 399 400 /** 401 * Identifies who is responsible for creating the manifest, and adding documents to it. 402 */ 403 @Child(name = "author", type = {Practitioner.class, Organization.class, Device.class, Patient.class, RelatedPerson.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 404 @Description(shortDefinition="Who and/or what authored the manifest", formalDefinition="Identifies who is responsible for creating the manifest, and adding documents to it." ) 405 protected List<Reference> author; 406 /** 407 * The actual objects that are the target of the reference (Identifies who is responsible for creating the manifest, and adding documents to it.) 408 */ 409 protected List<Resource> authorTarget; 410 411 412 /** 413 * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.). 414 */ 415 @Child(name = "created", type = {DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=true) 416 @Description(shortDefinition="When this document manifest created", formalDefinition="When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)." ) 417 protected DateTimeType created; 418 419 /** 420 * Identifies the source system, application, or software that produced the document manifest. 421 */ 422 @Child(name = "source", type = {UriType.class}, order=7, min=0, max=1, modifier=false, summary=true) 423 @Description(shortDefinition="The source system/application/software", formalDefinition="Identifies the source system, application, or software that produced the document manifest." ) 424 protected UriType source; 425 426 /** 427 * The status of this document manifest. 428 */ 429 @Child(name = "status", type = {CodeType.class}, order=8, min=1, max=1, modifier=true, summary=true) 430 @Description(shortDefinition="current | superseded | entered-in-error", formalDefinition="The status of this document manifest." ) 431 protected Enumeration<DocumentReferenceStatus> status; 432 433 /** 434 * Human-readable description of the source document. This is sometimes known as the "title". 435 */ 436 @Child(name = "description", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true) 437 @Description(shortDefinition="Human-readable description (title)", formalDefinition="Human-readable description of the source document. This is sometimes known as the \"title\"." ) 438 protected StringType description; 439 440 /** 441 * The list of Documents included in the manifest. 442 */ 443 @Child(name = "content", type = {}, order=10, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 444 @Description(shortDefinition="The items included", formalDefinition="The list of Documents included in the manifest." ) 445 protected List<DocumentManifestContentComponent> content; 446 447 /** 448 * Related identifiers or resources associated with the DocumentManifest. 449 */ 450 @Child(name = "related", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 451 @Description(shortDefinition="Related things", formalDefinition="Related identifiers or resources associated with the DocumentManifest." ) 452 protected List<DocumentManifestRelatedComponent> related; 453 454 private static final long serialVersionUID = -2056683927L; 455 456 /* 457 * Constructor 458 */ 459 public DocumentManifest() { 460 super(); 461 } 462 463 /* 464 * Constructor 465 */ 466 public DocumentManifest(Enumeration<DocumentReferenceStatus> status) { 467 super(); 468 this.status = status; 469 } 470 471 /** 472 * @return {@link #masterIdentifier} (A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.) 473 */ 474 public Identifier getMasterIdentifier() { 475 if (this.masterIdentifier == null) 476 if (Configuration.errorOnAutoCreate()) 477 throw new Error("Attempt to auto-create DocumentManifest.masterIdentifier"); 478 else if (Configuration.doAutoCreate()) 479 this.masterIdentifier = new Identifier(); // cc 480 return this.masterIdentifier; 481 } 482 483 public boolean hasMasterIdentifier() { 484 return this.masterIdentifier != null && !this.masterIdentifier.isEmpty(); 485 } 486 487 /** 488 * @param value {@link #masterIdentifier} (A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.) 489 */ 490 public DocumentManifest setMasterIdentifier(Identifier value) { 491 this.masterIdentifier = value; 492 return this; 493 } 494 495 /** 496 * @return {@link #identifier} (Other identifiers associated with the document manifest, including version independent identifiers.) 497 */ 498 public List<Identifier> getIdentifier() { 499 if (this.identifier == null) 500 this.identifier = new ArrayList<Identifier>(); 501 return this.identifier; 502 } 503 504 public boolean hasIdentifier() { 505 if (this.identifier == null) 506 return false; 507 for (Identifier item : this.identifier) 508 if (!item.isEmpty()) 509 return true; 510 return false; 511 } 512 513 /** 514 * @return {@link #identifier} (Other identifiers associated with the document manifest, including version independent identifiers.) 515 */ 516 // syntactic sugar 517 public Identifier addIdentifier() { //3 518 Identifier t = new Identifier(); 519 if (this.identifier == null) 520 this.identifier = new ArrayList<Identifier>(); 521 this.identifier.add(t); 522 return t; 523 } 524 525 // syntactic sugar 526 public DocumentManifest addIdentifier(Identifier t) { //3 527 if (t == null) 528 return this; 529 if (this.identifier == null) 530 this.identifier = new ArrayList<Identifier>(); 531 this.identifier.add(t); 532 return this; 533 } 534 535 /** 536 * @return {@link #subject} (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) 537 */ 538 public Reference getSubject() { 539 if (this.subject == null) 540 if (Configuration.errorOnAutoCreate()) 541 throw new Error("Attempt to auto-create DocumentManifest.subject"); 542 else if (Configuration.doAutoCreate()) 543 this.subject = new Reference(); // cc 544 return this.subject; 545 } 546 547 public boolean hasSubject() { 548 return this.subject != null && !this.subject.isEmpty(); 549 } 550 551 /** 552 * @param value {@link #subject} (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) 553 */ 554 public DocumentManifest setSubject(Reference value) { 555 this.subject = value; 556 return this; 557 } 558 559 /** 560 * @return {@link #subject} 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. (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) 561 */ 562 public Resource getSubjectTarget() { 563 return this.subjectTarget; 564 } 565 566 /** 567 * @param value {@link #subject} 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. (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) 568 */ 569 public DocumentManifest setSubjectTarget(Resource value) { 570 this.subjectTarget = value; 571 return this; 572 } 573 574 /** 575 * @return {@link #recipient} (A patient, practitioner, or organization for which this set of documents is intended.) 576 */ 577 public List<Reference> getRecipient() { 578 if (this.recipient == null) 579 this.recipient = new ArrayList<Reference>(); 580 return this.recipient; 581 } 582 583 public boolean hasRecipient() { 584 if (this.recipient == null) 585 return false; 586 for (Reference item : this.recipient) 587 if (!item.isEmpty()) 588 return true; 589 return false; 590 } 591 592 /** 593 * @return {@link #recipient} (A patient, practitioner, or organization for which this set of documents is intended.) 594 */ 595 // syntactic sugar 596 public Reference addRecipient() { //3 597 Reference t = new Reference(); 598 if (this.recipient == null) 599 this.recipient = new ArrayList<Reference>(); 600 this.recipient.add(t); 601 return t; 602 } 603 604 // syntactic sugar 605 public DocumentManifest addRecipient(Reference t) { //3 606 if (t == null) 607 return this; 608 if (this.recipient == null) 609 this.recipient = new ArrayList<Reference>(); 610 this.recipient.add(t); 611 return this; 612 } 613 614 /** 615 * @return {@link #recipient} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A patient, practitioner, or organization for which this set of documents is intended.) 616 */ 617 public List<Resource> getRecipientTarget() { 618 if (this.recipientTarget == null) 619 this.recipientTarget = new ArrayList<Resource>(); 620 return this.recipientTarget; 621 } 622 623 /** 624 * @return {@link #type} (Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.) 625 */ 626 public CodeableConcept getType() { 627 if (this.type == null) 628 if (Configuration.errorOnAutoCreate()) 629 throw new Error("Attempt to auto-create DocumentManifest.type"); 630 else if (Configuration.doAutoCreate()) 631 this.type = new CodeableConcept(); // cc 632 return this.type; 633 } 634 635 public boolean hasType() { 636 return this.type != null && !this.type.isEmpty(); 637 } 638 639 /** 640 * @param value {@link #type} (Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.) 641 */ 642 public DocumentManifest setType(CodeableConcept value) { 643 this.type = value; 644 return this; 645 } 646 647 /** 648 * @return {@link #author} (Identifies who is responsible for creating the manifest, and adding documents to it.) 649 */ 650 public List<Reference> getAuthor() { 651 if (this.author == null) 652 this.author = new ArrayList<Reference>(); 653 return this.author; 654 } 655 656 public boolean hasAuthor() { 657 if (this.author == null) 658 return false; 659 for (Reference item : this.author) 660 if (!item.isEmpty()) 661 return true; 662 return false; 663 } 664 665 /** 666 * @return {@link #author} (Identifies who is responsible for creating the manifest, and adding documents to it.) 667 */ 668 // syntactic sugar 669 public Reference addAuthor() { //3 670 Reference t = new Reference(); 671 if (this.author == null) 672 this.author = new ArrayList<Reference>(); 673 this.author.add(t); 674 return t; 675 } 676 677 // syntactic sugar 678 public DocumentManifest addAuthor(Reference t) { //3 679 if (t == null) 680 return this; 681 if (this.author == null) 682 this.author = new ArrayList<Reference>(); 683 this.author.add(t); 684 return this; 685 } 686 687 /** 688 * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for creating the manifest, and adding documents to it.) 689 */ 690 public List<Resource> getAuthorTarget() { 691 if (this.authorTarget == null) 692 this.authorTarget = new ArrayList<Resource>(); 693 return this.authorTarget; 694 } 695 696 /** 697 * @return {@link #created} (When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.).). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 698 */ 699 public DateTimeType getCreatedElement() { 700 if (this.created == null) 701 if (Configuration.errorOnAutoCreate()) 702 throw new Error("Attempt to auto-create DocumentManifest.created"); 703 else if (Configuration.doAutoCreate()) 704 this.created = new DateTimeType(); // bb 705 return this.created; 706 } 707 708 public boolean hasCreatedElement() { 709 return this.created != null && !this.created.isEmpty(); 710 } 711 712 public boolean hasCreated() { 713 return this.created != null && !this.created.isEmpty(); 714 } 715 716 /** 717 * @param value {@link #created} (When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.).). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 718 */ 719 public DocumentManifest setCreatedElement(DateTimeType value) { 720 this.created = value; 721 return this; 722 } 723 724 /** 725 * @return When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.). 726 */ 727 public Date getCreated() { 728 return this.created == null ? null : this.created.getValue(); 729 } 730 731 /** 732 * @param value When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.). 733 */ 734 public DocumentManifest setCreated(Date value) { 735 if (value == null) 736 this.created = null; 737 else { 738 if (this.created == null) 739 this.created = new DateTimeType(); 740 this.created.setValue(value); 741 } 742 return this; 743 } 744 745 /** 746 * @return {@link #source} (Identifies the source system, application, or software that produced the document manifest.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value 747 */ 748 public UriType getSourceElement() { 749 if (this.source == null) 750 if (Configuration.errorOnAutoCreate()) 751 throw new Error("Attempt to auto-create DocumentManifest.source"); 752 else if (Configuration.doAutoCreate()) 753 this.source = new UriType(); // bb 754 return this.source; 755 } 756 757 public boolean hasSourceElement() { 758 return this.source != null && !this.source.isEmpty(); 759 } 760 761 public boolean hasSource() { 762 return this.source != null && !this.source.isEmpty(); 763 } 764 765 /** 766 * @param value {@link #source} (Identifies the source system, application, or software that produced the document manifest.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value 767 */ 768 public DocumentManifest setSourceElement(UriType value) { 769 this.source = value; 770 return this; 771 } 772 773 /** 774 * @return Identifies the source system, application, or software that produced the document manifest. 775 */ 776 public String getSource() { 777 return this.source == null ? null : this.source.getValue(); 778 } 779 780 /** 781 * @param value Identifies the source system, application, or software that produced the document manifest. 782 */ 783 public DocumentManifest setSource(String value) { 784 if (Utilities.noString(value)) 785 this.source = null; 786 else { 787 if (this.source == null) 788 this.source = new UriType(); 789 this.source.setValue(value); 790 } 791 return this; 792 } 793 794 /** 795 * @return {@link #status} (The status of this document manifest.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 796 */ 797 public Enumeration<DocumentReferenceStatus> getStatusElement() { 798 if (this.status == null) 799 if (Configuration.errorOnAutoCreate()) 800 throw new Error("Attempt to auto-create DocumentManifest.status"); 801 else if (Configuration.doAutoCreate()) 802 this.status = new Enumeration<DocumentReferenceStatus>(new DocumentReferenceStatusEnumFactory()); // bb 803 return this.status; 804 } 805 806 public boolean hasStatusElement() { 807 return this.status != null && !this.status.isEmpty(); 808 } 809 810 public boolean hasStatus() { 811 return this.status != null && !this.status.isEmpty(); 812 } 813 814 /** 815 * @param value {@link #status} (The status of this document manifest.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 816 */ 817 public DocumentManifest setStatusElement(Enumeration<DocumentReferenceStatus> value) { 818 this.status = value; 819 return this; 820 } 821 822 /** 823 * @return The status of this document manifest. 824 */ 825 public DocumentReferenceStatus getStatus() { 826 return this.status == null ? null : this.status.getValue(); 827 } 828 829 /** 830 * @param value The status of this document manifest. 831 */ 832 public DocumentManifest setStatus(DocumentReferenceStatus value) { 833 if (this.status == null) 834 this.status = new Enumeration<DocumentReferenceStatus>(new DocumentReferenceStatusEnumFactory()); 835 this.status.setValue(value); 836 return this; 837 } 838 839 /** 840 * @return {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 841 */ 842 public StringType getDescriptionElement() { 843 if (this.description == null) 844 if (Configuration.errorOnAutoCreate()) 845 throw new Error("Attempt to auto-create DocumentManifest.description"); 846 else if (Configuration.doAutoCreate()) 847 this.description = new StringType(); // bb 848 return this.description; 849 } 850 851 public boolean hasDescriptionElement() { 852 return this.description != null && !this.description.isEmpty(); 853 } 854 855 public boolean hasDescription() { 856 return this.description != null && !this.description.isEmpty(); 857 } 858 859 /** 860 * @param value {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 861 */ 862 public DocumentManifest setDescriptionElement(StringType value) { 863 this.description = value; 864 return this; 865 } 866 867 /** 868 * @return Human-readable description of the source document. This is sometimes known as the "title". 869 */ 870 public String getDescription() { 871 return this.description == null ? null : this.description.getValue(); 872 } 873 874 /** 875 * @param value Human-readable description of the source document. This is sometimes known as the "title". 876 */ 877 public DocumentManifest setDescription(String value) { 878 if (Utilities.noString(value)) 879 this.description = null; 880 else { 881 if (this.description == null) 882 this.description = new StringType(); 883 this.description.setValue(value); 884 } 885 return this; 886 } 887 888 /** 889 * @return {@link #content} (The list of Documents included in the manifest.) 890 */ 891 public List<DocumentManifestContentComponent> getContent() { 892 if (this.content == null) 893 this.content = new ArrayList<DocumentManifestContentComponent>(); 894 return this.content; 895 } 896 897 public boolean hasContent() { 898 if (this.content == null) 899 return false; 900 for (DocumentManifestContentComponent item : this.content) 901 if (!item.isEmpty()) 902 return true; 903 return false; 904 } 905 906 /** 907 * @return {@link #content} (The list of Documents included in the manifest.) 908 */ 909 // syntactic sugar 910 public DocumentManifestContentComponent addContent() { //3 911 DocumentManifestContentComponent t = new DocumentManifestContentComponent(); 912 if (this.content == null) 913 this.content = new ArrayList<DocumentManifestContentComponent>(); 914 this.content.add(t); 915 return t; 916 } 917 918 // syntactic sugar 919 public DocumentManifest addContent(DocumentManifestContentComponent t) { //3 920 if (t == null) 921 return this; 922 if (this.content == null) 923 this.content = new ArrayList<DocumentManifestContentComponent>(); 924 this.content.add(t); 925 return this; 926 } 927 928 /** 929 * @return {@link #related} (Related identifiers or resources associated with the DocumentManifest.) 930 */ 931 public List<DocumentManifestRelatedComponent> getRelated() { 932 if (this.related == null) 933 this.related = new ArrayList<DocumentManifestRelatedComponent>(); 934 return this.related; 935 } 936 937 public boolean hasRelated() { 938 if (this.related == null) 939 return false; 940 for (DocumentManifestRelatedComponent item : this.related) 941 if (!item.isEmpty()) 942 return true; 943 return false; 944 } 945 946 /** 947 * @return {@link #related} (Related identifiers or resources associated with the DocumentManifest.) 948 */ 949 // syntactic sugar 950 public DocumentManifestRelatedComponent addRelated() { //3 951 DocumentManifestRelatedComponent t = new DocumentManifestRelatedComponent(); 952 if (this.related == null) 953 this.related = new ArrayList<DocumentManifestRelatedComponent>(); 954 this.related.add(t); 955 return t; 956 } 957 958 // syntactic sugar 959 public DocumentManifest addRelated(DocumentManifestRelatedComponent t) { //3 960 if (t == null) 961 return this; 962 if (this.related == null) 963 this.related = new ArrayList<DocumentManifestRelatedComponent>(); 964 this.related.add(t); 965 return this; 966 } 967 968 protected void listChildren(List<Property> childrenList) { 969 super.listChildren(childrenList); 970 childrenList.add(new Property("masterIdentifier", "Identifier", "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.", 0, java.lang.Integer.MAX_VALUE, masterIdentifier)); 971 childrenList.add(new Property("identifier", "Identifier", "Other identifiers associated with the document manifest, including version independent identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier)); 972 childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)", "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).", 0, java.lang.Integer.MAX_VALUE, subject)); 973 childrenList.add(new Property("recipient", "Reference(Patient|Practitioner|RelatedPerson|Organization)", "A patient, practitioner, or organization for which this set of documents is intended.", 0, java.lang.Integer.MAX_VALUE, recipient)); 974 childrenList.add(new Property("type", "CodeableConcept", "Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.", 0, java.lang.Integer.MAX_VALUE, type)); 975 childrenList.add(new Property("author", "Reference(Practitioner|Organization|Device|Patient|RelatedPerson)", "Identifies who is responsible for creating the manifest, and adding documents to it.", 0, java.lang.Integer.MAX_VALUE, author)); 976 childrenList.add(new Property("created", "dateTime", "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.).", 0, java.lang.Integer.MAX_VALUE, created)); 977 childrenList.add(new Property("source", "uri", "Identifies the source system, application, or software that produced the document manifest.", 0, java.lang.Integer.MAX_VALUE, source)); 978 childrenList.add(new Property("status", "code", "The status of this document manifest.", 0, java.lang.Integer.MAX_VALUE, status)); 979 childrenList.add(new Property("description", "string", "Human-readable description of the source document. This is sometimes known as the \"title\".", 0, java.lang.Integer.MAX_VALUE, description)); 980 childrenList.add(new Property("content", "", "The list of Documents included in the manifest.", 0, java.lang.Integer.MAX_VALUE, content)); 981 childrenList.add(new Property("related", "", "Related identifiers or resources associated with the DocumentManifest.", 0, java.lang.Integer.MAX_VALUE, related)); 982 } 983 984 @Override 985 public void setProperty(String name, Base value) throws FHIRException { 986 if (name.equals("masterIdentifier")) 987 this.masterIdentifier = castToIdentifier(value); // Identifier 988 else if (name.equals("identifier")) 989 this.getIdentifier().add(castToIdentifier(value)); 990 else if (name.equals("subject")) 991 this.subject = castToReference(value); // Reference 992 else if (name.equals("recipient")) 993 this.getRecipient().add(castToReference(value)); 994 else if (name.equals("type")) 995 this.type = castToCodeableConcept(value); // CodeableConcept 996 else if (name.equals("author")) 997 this.getAuthor().add(castToReference(value)); 998 else if (name.equals("created")) 999 this.created = castToDateTime(value); // DateTimeType 1000 else if (name.equals("source")) 1001 this.source = castToUri(value); // UriType 1002 else if (name.equals("status")) 1003 this.status = new DocumentReferenceStatusEnumFactory().fromType(value); // Enumeration<DocumentReferenceStatus> 1004 else if (name.equals("description")) 1005 this.description = castToString(value); // StringType 1006 else if (name.equals("content")) 1007 this.getContent().add((DocumentManifestContentComponent) value); 1008 else if (name.equals("related")) 1009 this.getRelated().add((DocumentManifestRelatedComponent) value); 1010 else 1011 super.setProperty(name, value); 1012 } 1013 1014 @Override 1015 public Base addChild(String name) throws FHIRException { 1016 if (name.equals("masterIdentifier")) { 1017 this.masterIdentifier = new Identifier(); 1018 return this.masterIdentifier; 1019 } 1020 else if (name.equals("identifier")) { 1021 return addIdentifier(); 1022 } 1023 else if (name.equals("subject")) { 1024 this.subject = new Reference(); 1025 return this.subject; 1026 } 1027 else if (name.equals("recipient")) { 1028 return addRecipient(); 1029 } 1030 else if (name.equals("type")) { 1031 this.type = new CodeableConcept(); 1032 return this.type; 1033 } 1034 else if (name.equals("author")) { 1035 return addAuthor(); 1036 } 1037 else if (name.equals("created")) { 1038 throw new FHIRException("Cannot call addChild on a primitive type DocumentManifest.created"); 1039 } 1040 else if (name.equals("source")) { 1041 throw new FHIRException("Cannot call addChild on a primitive type DocumentManifest.source"); 1042 } 1043 else if (name.equals("status")) { 1044 throw new FHIRException("Cannot call addChild on a primitive type DocumentManifest.status"); 1045 } 1046 else if (name.equals("description")) { 1047 throw new FHIRException("Cannot call addChild on a primitive type DocumentManifest.description"); 1048 } 1049 else if (name.equals("content")) { 1050 return addContent(); 1051 } 1052 else if (name.equals("related")) { 1053 return addRelated(); 1054 } 1055 else 1056 return super.addChild(name); 1057 } 1058 1059 public String fhirType() { 1060 return "DocumentManifest"; 1061 1062 } 1063 1064 public DocumentManifest copy() { 1065 DocumentManifest dst = new DocumentManifest(); 1066 copyValues(dst); 1067 dst.masterIdentifier = masterIdentifier == null ? null : masterIdentifier.copy(); 1068 if (identifier != null) { 1069 dst.identifier = new ArrayList<Identifier>(); 1070 for (Identifier i : identifier) 1071 dst.identifier.add(i.copy()); 1072 }; 1073 dst.subject = subject == null ? null : subject.copy(); 1074 if (recipient != null) { 1075 dst.recipient = new ArrayList<Reference>(); 1076 for (Reference i : recipient) 1077 dst.recipient.add(i.copy()); 1078 }; 1079 dst.type = type == null ? null : type.copy(); 1080 if (author != null) { 1081 dst.author = new ArrayList<Reference>(); 1082 for (Reference i : author) 1083 dst.author.add(i.copy()); 1084 }; 1085 dst.created = created == null ? null : created.copy(); 1086 dst.source = source == null ? null : source.copy(); 1087 dst.status = status == null ? null : status.copy(); 1088 dst.description = description == null ? null : description.copy(); 1089 if (content != null) { 1090 dst.content = new ArrayList<DocumentManifestContentComponent>(); 1091 for (DocumentManifestContentComponent i : content) 1092 dst.content.add(i.copy()); 1093 }; 1094 if (related != null) { 1095 dst.related = new ArrayList<DocumentManifestRelatedComponent>(); 1096 for (DocumentManifestRelatedComponent i : related) 1097 dst.related.add(i.copy()); 1098 }; 1099 return dst; 1100 } 1101 1102 protected DocumentManifest typedCopy() { 1103 return copy(); 1104 } 1105 1106 @Override 1107 public boolean equalsDeep(Base other) { 1108 if (!super.equalsDeep(other)) 1109 return false; 1110 if (!(other instanceof DocumentManifest)) 1111 return false; 1112 DocumentManifest o = (DocumentManifest) other; 1113 return compareDeep(masterIdentifier, o.masterIdentifier, true) && compareDeep(identifier, o.identifier, true) 1114 && compareDeep(subject, o.subject, true) && compareDeep(recipient, o.recipient, true) && compareDeep(type, o.type, true) 1115 && compareDeep(author, o.author, true) && compareDeep(created, o.created, true) && compareDeep(source, o.source, true) 1116 && compareDeep(status, o.status, true) && compareDeep(description, o.description, true) && compareDeep(content, o.content, true) 1117 && compareDeep(related, o.related, true); 1118 } 1119 1120 @Override 1121 public boolean equalsShallow(Base other) { 1122 if (!super.equalsShallow(other)) 1123 return false; 1124 if (!(other instanceof DocumentManifest)) 1125 return false; 1126 DocumentManifest o = (DocumentManifest) other; 1127 return compareValues(created, o.created, true) && compareValues(source, o.source, true) && compareValues(status, o.status, true) 1128 && compareValues(description, o.description, true); 1129 } 1130 1131 public boolean isEmpty() { 1132 return super.isEmpty() && (masterIdentifier == null || masterIdentifier.isEmpty()) && (identifier == null || identifier.isEmpty()) 1133 && (subject == null || subject.isEmpty()) && (recipient == null || recipient.isEmpty()) && (type == null || type.isEmpty()) 1134 && (author == null || author.isEmpty()) && (created == null || created.isEmpty()) && (source == null || source.isEmpty()) 1135 && (status == null || status.isEmpty()) && (description == null || description.isEmpty()) 1136 && (content == null || content.isEmpty()) && (related == null || related.isEmpty()); 1137 } 1138 1139 @Override 1140 public ResourceType getResourceType() { 1141 return ResourceType.DocumentManifest; 1142 } 1143 1144 @SearchParamDefinition(name="identifier", path="DocumentManifest.masterIdentifier | DocumentManifest.identifier", description="Unique Identifier for the set of documents", type="token" ) 1145 public static final String SP_IDENTIFIER = "identifier"; 1146 @SearchParamDefinition(name="related-id", path="DocumentManifest.related.identifier", description="Identifiers of things that are related", type="token" ) 1147 public static final String SP_RELATEDID = "related-id"; 1148 @SearchParamDefinition(name="content-ref", path="DocumentManifest.content.pReference", description="Contents of this set of documents", type="reference" ) 1149 public static final String SP_CONTENTREF = "content-ref"; 1150 @SearchParamDefinition(name="subject", path="DocumentManifest.subject", description="The subject of the set of documents", type="reference" ) 1151 public static final String SP_SUBJECT = "subject"; 1152 @SearchParamDefinition(name="author", path="DocumentManifest.author", description="Who and/or what authored the manifest", type="reference" ) 1153 public static final String SP_AUTHOR = "author"; 1154 @SearchParamDefinition(name="created", path="DocumentManifest.created", description="When this document manifest created", type="date" ) 1155 public static final String SP_CREATED = "created"; 1156 @SearchParamDefinition(name="description", path="DocumentManifest.description", description="Human-readable description (title)", type="string" ) 1157 public static final String SP_DESCRIPTION = "description"; 1158 @SearchParamDefinition(name="source", path="DocumentManifest.source", description="The source system/application/software", type="uri" ) 1159 public static final String SP_SOURCE = "source"; 1160 @SearchParamDefinition(name="type", path="DocumentManifest.type", description="Kind of document set", type="token" ) 1161 public static final String SP_TYPE = "type"; 1162 @SearchParamDefinition(name="related-ref", path="DocumentManifest.related.ref", description="Related Resource", type="reference" ) 1163 public static final String SP_RELATEDREF = "related-ref"; 1164 @SearchParamDefinition(name="patient", path="DocumentManifest.subject", description="The subject of the set of documents", type="reference" ) 1165 public static final String SP_PATIENT = "patient"; 1166 @SearchParamDefinition(name="recipient", path="DocumentManifest.recipient", description="Intended to get notified about this set of documents", type="reference" ) 1167 public static final String SP_RECIPIENT = "recipient"; 1168 @SearchParamDefinition(name="status", path="DocumentManifest.status", description="current | superseded | entered-in-error", type="token" ) 1169 public static final String SP_STATUS = "status"; 1170 1171}