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; 058import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 059import org.hl7.fhir.r4.model.Enumerations.ConceptMapEquivalence; 060import org.hl7.fhir.r4.model.Enumerations.ConceptMapEquivalenceEnumFactory; 061import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; 062import org.hl7.fhir.r4.model.Enumerations.PublicationStatusEnumFactory; 063import org.hl7.fhir.utilities.Utilities; 064 065import ca.uhn.fhir.model.api.annotation.Block; 066import ca.uhn.fhir.model.api.annotation.Child; 067import ca.uhn.fhir.model.api.annotation.ChildOrder; 068import ca.uhn.fhir.model.api.annotation.Description; 069import ca.uhn.fhir.model.api.annotation.ResourceDef; 070import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 071/** 072 * A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models. 073 */ 074@ResourceDef(name="ConceptMap", profile="http://hl7.org/fhir/StructureDefinition/ConceptMap") 075@ChildOrder(names={"url", "identifier", "version", "name", "title", "status", "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "purpose", "copyright", "source[x]", "target[x]", "group"}) 076public class ConceptMap extends MetadataResource { 077 078 public enum ConceptMapGroupUnmappedMode { 079 /** 080 * Use the code as provided in the $translate request. 081 */ 082 PROVIDED, 083 /** 084 * Use the code explicitly provided in the group.unmapped. 085 */ 086 FIXED, 087 /** 088 * Use the map identified by the canonical URL in the url element. 089 */ 090 OTHERMAP, 091 /** 092 * added to help the parsers with the generic types 093 */ 094 NULL; 095 public static ConceptMapGroupUnmappedMode fromCode(String codeString) throws FHIRException { 096 if (codeString == null || "".equals(codeString)) 097 return null; 098 if ("provided".equals(codeString)) 099 return PROVIDED; 100 if ("fixed".equals(codeString)) 101 return FIXED; 102 if ("other-map".equals(codeString)) 103 return OTHERMAP; 104 if (Configuration.isAcceptInvalidEnums()) 105 return null; 106 else 107 throw new FHIRException("Unknown ConceptMapGroupUnmappedMode code '"+codeString+"'"); 108 } 109 public String toCode() { 110 switch (this) { 111 case PROVIDED: return "provided"; 112 case FIXED: return "fixed"; 113 case OTHERMAP: return "other-map"; 114 default: return "?"; 115 } 116 } 117 public String getSystem() { 118 switch (this) { 119 case PROVIDED: return "http://hl7.org/fhir/conceptmap-unmapped-mode"; 120 case FIXED: return "http://hl7.org/fhir/conceptmap-unmapped-mode"; 121 case OTHERMAP: return "http://hl7.org/fhir/conceptmap-unmapped-mode"; 122 default: return "?"; 123 } 124 } 125 public String getDefinition() { 126 switch (this) { 127 case PROVIDED: return "Use the code as provided in the $translate request."; 128 case FIXED: return "Use the code explicitly provided in the group.unmapped."; 129 case OTHERMAP: return "Use the map identified by the canonical URL in the url element."; 130 default: return "?"; 131 } 132 } 133 public String getDisplay() { 134 switch (this) { 135 case PROVIDED: return "Provided Code"; 136 case FIXED: return "Fixed Code"; 137 case OTHERMAP: return "Other Map"; 138 default: return "?"; 139 } 140 } 141 } 142 143 public static class ConceptMapGroupUnmappedModeEnumFactory implements EnumFactory<ConceptMapGroupUnmappedMode> { 144 public ConceptMapGroupUnmappedMode fromCode(String codeString) throws IllegalArgumentException { 145 if (codeString == null || "".equals(codeString)) 146 if (codeString == null || "".equals(codeString)) 147 return null; 148 if ("provided".equals(codeString)) 149 return ConceptMapGroupUnmappedMode.PROVIDED; 150 if ("fixed".equals(codeString)) 151 return ConceptMapGroupUnmappedMode.FIXED; 152 if ("other-map".equals(codeString)) 153 return ConceptMapGroupUnmappedMode.OTHERMAP; 154 throw new IllegalArgumentException("Unknown ConceptMapGroupUnmappedMode code '"+codeString+"'"); 155 } 156 public Enumeration<ConceptMapGroupUnmappedMode> fromType(Base code) throws FHIRException { 157 if (code == null) 158 return null; 159 if (code.isEmpty()) 160 return new Enumeration<ConceptMapGroupUnmappedMode>(this); 161 String codeString = ((PrimitiveType) code).asStringValue(); 162 if (codeString == null || "".equals(codeString)) 163 return null; 164 if ("provided".equals(codeString)) 165 return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.PROVIDED); 166 if ("fixed".equals(codeString)) 167 return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.FIXED); 168 if ("other-map".equals(codeString)) 169 return new Enumeration<ConceptMapGroupUnmappedMode>(this, ConceptMapGroupUnmappedMode.OTHERMAP); 170 throw new FHIRException("Unknown ConceptMapGroupUnmappedMode code '"+codeString+"'"); 171 } 172 public String toCode(ConceptMapGroupUnmappedMode code) { 173 if (code == ConceptMapGroupUnmappedMode.PROVIDED) 174 return "provided"; 175 if (code == ConceptMapGroupUnmappedMode.FIXED) 176 return "fixed"; 177 if (code == ConceptMapGroupUnmappedMode.OTHERMAP) 178 return "other-map"; 179 return "?"; 180 } 181 public String toSystem(ConceptMapGroupUnmappedMode code) { 182 return code.getSystem(); 183 } 184 } 185 186 @Block() 187 public static class ConceptMapGroupComponent extends BackboneElement implements IBaseBackboneElement { 188 /** 189 * An absolute URI that identifies the source system where the concepts to be mapped are defined. 190 */ 191 @Child(name = "source", type = {UriType.class}, order=1, min=0, max=1, modifier=false, summary=false) 192 @Description(shortDefinition="Source system where concepts to be mapped are defined", formalDefinition="An absolute URI that identifies the source system where the concepts to be mapped are defined." ) 193 protected UriType source; 194 195 /** 196 * The specific version of the code system, as determined by the code system authority. 197 */ 198 @Child(name = "sourceVersion", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 199 @Description(shortDefinition="Specific version of the code system", formalDefinition="The specific version of the code system, as determined by the code system authority." ) 200 protected StringType sourceVersion; 201 202 /** 203 * An absolute URI that identifies the target system that the concepts will be mapped to. 204 */ 205 @Child(name = "target", type = {UriType.class}, order=3, min=0, max=1, modifier=false, summary=false) 206 @Description(shortDefinition="Target system that the concepts are to be mapped to", formalDefinition="An absolute URI that identifies the target system that the concepts will be mapped to." ) 207 protected UriType target; 208 209 /** 210 * The specific version of the code system, as determined by the code system authority. 211 */ 212 @Child(name = "targetVersion", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 213 @Description(shortDefinition="Specific version of the code system", formalDefinition="The specific version of the code system, as determined by the code system authority." ) 214 protected StringType targetVersion; 215 216 /** 217 * Mappings for an individual concept in the source to one or more concepts in the target. 218 */ 219 @Child(name = "element", type = {}, order=5, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 220 @Description(shortDefinition="Mappings for a concept from the source set", formalDefinition="Mappings for an individual concept in the source to one or more concepts in the target." ) 221 protected List<SourceElementComponent> element; 222 223 /** 224 * What to do when there is no mapping for the source concept. "Unmapped" does not include codes that are unamatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched. 225 */ 226 @Child(name = "unmapped", type = {}, order=6, min=0, max=1, modifier=false, summary=false) 227 @Description(shortDefinition="What to do when there is no mapping for the source concept", formalDefinition="What to do when there is no mapping for the source concept. \"Unmapped\" does not include codes that are unamatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched." ) 228 protected ConceptMapGroupUnmappedComponent unmapped; 229 230 private static final long serialVersionUID = 1606357508L; 231 232 /** 233 * Constructor 234 */ 235 public ConceptMapGroupComponent() { 236 super(); 237 } 238 239 /** 240 * @return {@link #source} (An absolute URI that identifies the source system where the concepts to be mapped are defined.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value 241 */ 242 public UriType getSourceElement() { 243 if (this.source == null) 244 if (Configuration.errorOnAutoCreate()) 245 throw new Error("Attempt to auto-create ConceptMapGroupComponent.source"); 246 else if (Configuration.doAutoCreate()) 247 this.source = new UriType(); // bb 248 return this.source; 249 } 250 251 public boolean hasSourceElement() { 252 return this.source != null && !this.source.isEmpty(); 253 } 254 255 public boolean hasSource() { 256 return this.source != null && !this.source.isEmpty(); 257 } 258 259 /** 260 * @param value {@link #source} (An absolute URI that identifies the source system where the concepts to be mapped are defined.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value 261 */ 262 public ConceptMapGroupComponent setSourceElement(UriType value) { 263 this.source = value; 264 return this; 265 } 266 267 /** 268 * @return An absolute URI that identifies the source system where the concepts to be mapped are defined. 269 */ 270 public String getSource() { 271 return this.source == null ? null : this.source.getValue(); 272 } 273 274 /** 275 * @param value An absolute URI that identifies the source system where the concepts to be mapped are defined. 276 */ 277 public ConceptMapGroupComponent setSource(String value) { 278 if (Utilities.noString(value)) 279 this.source = null; 280 else { 281 if (this.source == null) 282 this.source = new UriType(); 283 this.source.setValue(value); 284 } 285 return this; 286 } 287 288 /** 289 * @return {@link #sourceVersion} (The specific version of the code system, as determined by the code system authority.). This is the underlying object with id, value and extensions. The accessor "getSourceVersion" gives direct access to the value 290 */ 291 public StringType getSourceVersionElement() { 292 if (this.sourceVersion == null) 293 if (Configuration.errorOnAutoCreate()) 294 throw new Error("Attempt to auto-create ConceptMapGroupComponent.sourceVersion"); 295 else if (Configuration.doAutoCreate()) 296 this.sourceVersion = new StringType(); // bb 297 return this.sourceVersion; 298 } 299 300 public boolean hasSourceVersionElement() { 301 return this.sourceVersion != null && !this.sourceVersion.isEmpty(); 302 } 303 304 public boolean hasSourceVersion() { 305 return this.sourceVersion != null && !this.sourceVersion.isEmpty(); 306 } 307 308 /** 309 * @param value {@link #sourceVersion} (The specific version of the code system, as determined by the code system authority.). This is the underlying object with id, value and extensions. The accessor "getSourceVersion" gives direct access to the value 310 */ 311 public ConceptMapGroupComponent setSourceVersionElement(StringType value) { 312 this.sourceVersion = value; 313 return this; 314 } 315 316 /** 317 * @return The specific version of the code system, as determined by the code system authority. 318 */ 319 public String getSourceVersion() { 320 return this.sourceVersion == null ? null : this.sourceVersion.getValue(); 321 } 322 323 /** 324 * @param value The specific version of the code system, as determined by the code system authority. 325 */ 326 public ConceptMapGroupComponent setSourceVersion(String value) { 327 if (Utilities.noString(value)) 328 this.sourceVersion = null; 329 else { 330 if (this.sourceVersion == null) 331 this.sourceVersion = new StringType(); 332 this.sourceVersion.setValue(value); 333 } 334 return this; 335 } 336 337 /** 338 * @return {@link #target} (An absolute URI that identifies the target system that the concepts will be mapped to.). This is the underlying object with id, value and extensions. The accessor "getTarget" gives direct access to the value 339 */ 340 public UriType getTargetElement() { 341 if (this.target == null) 342 if (Configuration.errorOnAutoCreate()) 343 throw new Error("Attempt to auto-create ConceptMapGroupComponent.target"); 344 else if (Configuration.doAutoCreate()) 345 this.target = new UriType(); // bb 346 return this.target; 347 } 348 349 public boolean hasTargetElement() { 350 return this.target != null && !this.target.isEmpty(); 351 } 352 353 public boolean hasTarget() { 354 return this.target != null && !this.target.isEmpty(); 355 } 356 357 /** 358 * @param value {@link #target} (An absolute URI that identifies the target system that the concepts will be mapped to.). This is the underlying object with id, value and extensions. The accessor "getTarget" gives direct access to the value 359 */ 360 public ConceptMapGroupComponent setTargetElement(UriType value) { 361 this.target = value; 362 return this; 363 } 364 365 /** 366 * @return An absolute URI that identifies the target system that the concepts will be mapped to. 367 */ 368 public String getTarget() { 369 return this.target == null ? null : this.target.getValue(); 370 } 371 372 /** 373 * @param value An absolute URI that identifies the target system that the concepts will be mapped to. 374 */ 375 public ConceptMapGroupComponent setTarget(String value) { 376 if (Utilities.noString(value)) 377 this.target = null; 378 else { 379 if (this.target == null) 380 this.target = new UriType(); 381 this.target.setValue(value); 382 } 383 return this; 384 } 385 386 /** 387 * @return {@link #targetVersion} (The specific version of the code system, as determined by the code system authority.). This is the underlying object with id, value and extensions. The accessor "getTargetVersion" gives direct access to the value 388 */ 389 public StringType getTargetVersionElement() { 390 if (this.targetVersion == null) 391 if (Configuration.errorOnAutoCreate()) 392 throw new Error("Attempt to auto-create ConceptMapGroupComponent.targetVersion"); 393 else if (Configuration.doAutoCreate()) 394 this.targetVersion = new StringType(); // bb 395 return this.targetVersion; 396 } 397 398 public boolean hasTargetVersionElement() { 399 return this.targetVersion != null && !this.targetVersion.isEmpty(); 400 } 401 402 public boolean hasTargetVersion() { 403 return this.targetVersion != null && !this.targetVersion.isEmpty(); 404 } 405 406 /** 407 * @param value {@link #targetVersion} (The specific version of the code system, as determined by the code system authority.). This is the underlying object with id, value and extensions. The accessor "getTargetVersion" gives direct access to the value 408 */ 409 public ConceptMapGroupComponent setTargetVersionElement(StringType value) { 410 this.targetVersion = value; 411 return this; 412 } 413 414 /** 415 * @return The specific version of the code system, as determined by the code system authority. 416 */ 417 public String getTargetVersion() { 418 return this.targetVersion == null ? null : this.targetVersion.getValue(); 419 } 420 421 /** 422 * @param value The specific version of the code system, as determined by the code system authority. 423 */ 424 public ConceptMapGroupComponent setTargetVersion(String value) { 425 if (Utilities.noString(value)) 426 this.targetVersion = null; 427 else { 428 if (this.targetVersion == null) 429 this.targetVersion = new StringType(); 430 this.targetVersion.setValue(value); 431 } 432 return this; 433 } 434 435 /** 436 * @return {@link #element} (Mappings for an individual concept in the source to one or more concepts in the target.) 437 */ 438 public List<SourceElementComponent> getElement() { 439 if (this.element == null) 440 this.element = new ArrayList<SourceElementComponent>(); 441 return this.element; 442 } 443 444 /** 445 * @return Returns a reference to <code>this</code> for easy method chaining 446 */ 447 public ConceptMapGroupComponent setElement(List<SourceElementComponent> theElement) { 448 this.element = theElement; 449 return this; 450 } 451 452 public boolean hasElement() { 453 if (this.element == null) 454 return false; 455 for (SourceElementComponent item : this.element) 456 if (!item.isEmpty()) 457 return true; 458 return false; 459 } 460 461 public SourceElementComponent addElement() { //3 462 SourceElementComponent t = new SourceElementComponent(); 463 if (this.element == null) 464 this.element = new ArrayList<SourceElementComponent>(); 465 this.element.add(t); 466 return t; 467 } 468 469 public ConceptMapGroupComponent addElement(SourceElementComponent t) { //3 470 if (t == null) 471 return this; 472 if (this.element == null) 473 this.element = new ArrayList<SourceElementComponent>(); 474 this.element.add(t); 475 return this; 476 } 477 478 /** 479 * @return The first repetition of repeating field {@link #element}, creating it if it does not already exist 480 */ 481 public SourceElementComponent getElementFirstRep() { 482 if (getElement().isEmpty()) { 483 addElement(); 484 } 485 return getElement().get(0); 486 } 487 488 /** 489 * @return {@link #unmapped} (What to do when there is no mapping for the source concept. "Unmapped" does not include codes that are unamatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched.) 490 */ 491 public ConceptMapGroupUnmappedComponent getUnmapped() { 492 if (this.unmapped == null) 493 if (Configuration.errorOnAutoCreate()) 494 throw new Error("Attempt to auto-create ConceptMapGroupComponent.unmapped"); 495 else if (Configuration.doAutoCreate()) 496 this.unmapped = new ConceptMapGroupUnmappedComponent(); // cc 497 return this.unmapped; 498 } 499 500 public boolean hasUnmapped() { 501 return this.unmapped != null && !this.unmapped.isEmpty(); 502 } 503 504 /** 505 * @param value {@link #unmapped} (What to do when there is no mapping for the source concept. "Unmapped" does not include codes that are unamatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched.) 506 */ 507 public ConceptMapGroupComponent setUnmapped(ConceptMapGroupUnmappedComponent value) { 508 this.unmapped = value; 509 return this; 510 } 511 512 protected void listChildren(List<Property> children) { 513 super.listChildren(children); 514 children.add(new Property("source", "uri", "An absolute URI that identifies the source system where the concepts to be mapped are defined.", 0, 1, source)); 515 children.add(new Property("sourceVersion", "string", "The specific version of the code system, as determined by the code system authority.", 0, 1, sourceVersion)); 516 children.add(new Property("target", "uri", "An absolute URI that identifies the target system that the concepts will be mapped to.", 0, 1, target)); 517 children.add(new Property("targetVersion", "string", "The specific version of the code system, as determined by the code system authority.", 0, 1, targetVersion)); 518 children.add(new Property("element", "", "Mappings for an individual concept in the source to one or more concepts in the target.", 0, java.lang.Integer.MAX_VALUE, element)); 519 children.add(new Property("unmapped", "", "What to do when there is no mapping for the source concept. \"Unmapped\" does not include codes that are unamatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched.", 0, 1, unmapped)); 520 } 521 522 @Override 523 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 524 switch (_hash) { 525 case -896505829: /*source*/ return new Property("source", "uri", "An absolute URI that identifies the source system where the concepts to be mapped are defined.", 0, 1, source); 526 case 446171197: /*sourceVersion*/ return new Property("sourceVersion", "string", "The specific version of the code system, as determined by the code system authority.", 0, 1, sourceVersion); 527 case -880905839: /*target*/ return new Property("target", "uri", "An absolute URI that identifies the target system that the concepts will be mapped to.", 0, 1, target); 528 case -1639412217: /*targetVersion*/ return new Property("targetVersion", "string", "The specific version of the code system, as determined by the code system authority.", 0, 1, targetVersion); 529 case -1662836996: /*element*/ return new Property("element", "", "Mappings for an individual concept in the source to one or more concepts in the target.", 0, java.lang.Integer.MAX_VALUE, element); 530 case -194857460: /*unmapped*/ return new Property("unmapped", "", "What to do when there is no mapping for the source concept. \"Unmapped\" does not include codes that are unamatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched.", 0, 1, unmapped); 531 default: return super.getNamedProperty(_hash, _name, _checkValid); 532 } 533 534 } 535 536 @Override 537 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 538 switch (hash) { 539 case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // UriType 540 case 446171197: /*sourceVersion*/ return this.sourceVersion == null ? new Base[0] : new Base[] {this.sourceVersion}; // StringType 541 case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // UriType 542 case -1639412217: /*targetVersion*/ return this.targetVersion == null ? new Base[0] : new Base[] {this.targetVersion}; // StringType 543 case -1662836996: /*element*/ return this.element == null ? new Base[0] : this.element.toArray(new Base[this.element.size()]); // SourceElementComponent 544 case -194857460: /*unmapped*/ return this.unmapped == null ? new Base[0] : new Base[] {this.unmapped}; // ConceptMapGroupUnmappedComponent 545 default: return super.getProperty(hash, name, checkValid); 546 } 547 548 } 549 550 @Override 551 public Base setProperty(int hash, String name, Base value) throws FHIRException { 552 switch (hash) { 553 case -896505829: // source 554 this.source = castToUri(value); // UriType 555 return value; 556 case 446171197: // sourceVersion 557 this.sourceVersion = castToString(value); // StringType 558 return value; 559 case -880905839: // target 560 this.target = castToUri(value); // UriType 561 return value; 562 case -1639412217: // targetVersion 563 this.targetVersion = castToString(value); // StringType 564 return value; 565 case -1662836996: // element 566 this.getElement().add((SourceElementComponent) value); // SourceElementComponent 567 return value; 568 case -194857460: // unmapped 569 this.unmapped = (ConceptMapGroupUnmappedComponent) value; // ConceptMapGroupUnmappedComponent 570 return value; 571 default: return super.setProperty(hash, name, value); 572 } 573 574 } 575 576 @Override 577 public Base setProperty(String name, Base value) throws FHIRException { 578 if (name.equals("source")) { 579 this.source = castToUri(value); // UriType 580 } else if (name.equals("sourceVersion")) { 581 this.sourceVersion = castToString(value); // StringType 582 } else if (name.equals("target")) { 583 this.target = castToUri(value); // UriType 584 } else if (name.equals("targetVersion")) { 585 this.targetVersion = castToString(value); // StringType 586 } else if (name.equals("element")) { 587 this.getElement().add((SourceElementComponent) value); 588 } else if (name.equals("unmapped")) { 589 this.unmapped = (ConceptMapGroupUnmappedComponent) value; // ConceptMapGroupUnmappedComponent 590 } else 591 return super.setProperty(name, value); 592 return value; 593 } 594 595 @Override 596 public Base makeProperty(int hash, String name) throws FHIRException { 597 switch (hash) { 598 case -896505829: return getSourceElement(); 599 case 446171197: return getSourceVersionElement(); 600 case -880905839: return getTargetElement(); 601 case -1639412217: return getTargetVersionElement(); 602 case -1662836996: return addElement(); 603 case -194857460: return getUnmapped(); 604 default: return super.makeProperty(hash, name); 605 } 606 607 } 608 609 @Override 610 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 611 switch (hash) { 612 case -896505829: /*source*/ return new String[] {"uri"}; 613 case 446171197: /*sourceVersion*/ return new String[] {"string"}; 614 case -880905839: /*target*/ return new String[] {"uri"}; 615 case -1639412217: /*targetVersion*/ return new String[] {"string"}; 616 case -1662836996: /*element*/ return new String[] {}; 617 case -194857460: /*unmapped*/ return new String[] {}; 618 default: return super.getTypesForProperty(hash, name); 619 } 620 621 } 622 623 @Override 624 public Base addChild(String name) throws FHIRException { 625 if (name.equals("source")) { 626 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.source"); 627 } 628 else if (name.equals("sourceVersion")) { 629 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.sourceVersion"); 630 } 631 else if (name.equals("target")) { 632 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.target"); 633 } 634 else if (name.equals("targetVersion")) { 635 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.targetVersion"); 636 } 637 else if (name.equals("element")) { 638 return addElement(); 639 } 640 else if (name.equals("unmapped")) { 641 this.unmapped = new ConceptMapGroupUnmappedComponent(); 642 return this.unmapped; 643 } 644 else 645 return super.addChild(name); 646 } 647 648 public ConceptMapGroupComponent copy() { 649 ConceptMapGroupComponent dst = new ConceptMapGroupComponent(); 650 copyValues(dst); 651 dst.source = source == null ? null : source.copy(); 652 dst.sourceVersion = sourceVersion == null ? null : sourceVersion.copy(); 653 dst.target = target == null ? null : target.copy(); 654 dst.targetVersion = targetVersion == null ? null : targetVersion.copy(); 655 if (element != null) { 656 dst.element = new ArrayList<SourceElementComponent>(); 657 for (SourceElementComponent i : element) 658 dst.element.add(i.copy()); 659 }; 660 dst.unmapped = unmapped == null ? null : unmapped.copy(); 661 return dst; 662 } 663 664 @Override 665 public boolean equalsDeep(Base other_) { 666 if (!super.equalsDeep(other_)) 667 return false; 668 if (!(other_ instanceof ConceptMapGroupComponent)) 669 return false; 670 ConceptMapGroupComponent o = (ConceptMapGroupComponent) other_; 671 return compareDeep(source, o.source, true) && compareDeep(sourceVersion, o.sourceVersion, true) 672 && compareDeep(target, o.target, true) && compareDeep(targetVersion, o.targetVersion, true) && compareDeep(element, o.element, true) 673 && compareDeep(unmapped, o.unmapped, true); 674 } 675 676 @Override 677 public boolean equalsShallow(Base other_) { 678 if (!super.equalsShallow(other_)) 679 return false; 680 if (!(other_ instanceof ConceptMapGroupComponent)) 681 return false; 682 ConceptMapGroupComponent o = (ConceptMapGroupComponent) other_; 683 return compareValues(source, o.source, true) && compareValues(sourceVersion, o.sourceVersion, true) 684 && compareValues(target, o.target, true) && compareValues(targetVersion, o.targetVersion, true); 685 } 686 687 public boolean isEmpty() { 688 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(source, sourceVersion, target 689 , targetVersion, element, unmapped); 690 } 691 692 public String fhirType() { 693 return "ConceptMap.group"; 694 695 } 696 697 } 698 699 @Block() 700 public static class SourceElementComponent extends BackboneElement implements IBaseBackboneElement { 701 /** 702 * Identity (code or path) or the element/item being mapped. 703 */ 704 @Child(name = "code", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false) 705 @Description(shortDefinition="Identifies element being mapped", formalDefinition="Identity (code or path) or the element/item being mapped." ) 706 protected CodeType code; 707 708 /** 709 * The display for the code. The display is only provided to help editors when editing the concept map. 710 */ 711 @Child(name = "display", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 712 @Description(shortDefinition="Display for the code", formalDefinition="The display for the code. The display is only provided to help editors when editing the concept map." ) 713 protected StringType display; 714 715 /** 716 * A concept from the target value set that this concept maps to. 717 */ 718 @Child(name = "target", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 719 @Description(shortDefinition="Concept in target system for element", formalDefinition="A concept from the target value set that this concept maps to." ) 720 protected List<TargetElementComponent> target; 721 722 private static final long serialVersionUID = -1115258852L; 723 724 /** 725 * Constructor 726 */ 727 public SourceElementComponent() { 728 super(); 729 } 730 731 /** 732 * @return {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 733 */ 734 public CodeType getCodeElement() { 735 if (this.code == null) 736 if (Configuration.errorOnAutoCreate()) 737 throw new Error("Attempt to auto-create SourceElementComponent.code"); 738 else if (Configuration.doAutoCreate()) 739 this.code = new CodeType(); // bb 740 return this.code; 741 } 742 743 public boolean hasCodeElement() { 744 return this.code != null && !this.code.isEmpty(); 745 } 746 747 public boolean hasCode() { 748 return this.code != null && !this.code.isEmpty(); 749 } 750 751 /** 752 * @param value {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 753 */ 754 public SourceElementComponent setCodeElement(CodeType value) { 755 this.code = value; 756 return this; 757 } 758 759 /** 760 * @return Identity (code or path) or the element/item being mapped. 761 */ 762 public String getCode() { 763 return this.code == null ? null : this.code.getValue(); 764 } 765 766 /** 767 * @param value Identity (code or path) or the element/item being mapped. 768 */ 769 public SourceElementComponent setCode(String value) { 770 if (Utilities.noString(value)) 771 this.code = null; 772 else { 773 if (this.code == null) 774 this.code = new CodeType(); 775 this.code.setValue(value); 776 } 777 return this; 778 } 779 780 /** 781 * @return {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 782 */ 783 public StringType getDisplayElement() { 784 if (this.display == null) 785 if (Configuration.errorOnAutoCreate()) 786 throw new Error("Attempt to auto-create SourceElementComponent.display"); 787 else if (Configuration.doAutoCreate()) 788 this.display = new StringType(); // bb 789 return this.display; 790 } 791 792 public boolean hasDisplayElement() { 793 return this.display != null && !this.display.isEmpty(); 794 } 795 796 public boolean hasDisplay() { 797 return this.display != null && !this.display.isEmpty(); 798 } 799 800 /** 801 * @param value {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 802 */ 803 public SourceElementComponent setDisplayElement(StringType value) { 804 this.display = value; 805 return this; 806 } 807 808 /** 809 * @return The display for the code. The display is only provided to help editors when editing the concept map. 810 */ 811 public String getDisplay() { 812 return this.display == null ? null : this.display.getValue(); 813 } 814 815 /** 816 * @param value The display for the code. The display is only provided to help editors when editing the concept map. 817 */ 818 public SourceElementComponent setDisplay(String value) { 819 if (Utilities.noString(value)) 820 this.display = null; 821 else { 822 if (this.display == null) 823 this.display = new StringType(); 824 this.display.setValue(value); 825 } 826 return this; 827 } 828 829 /** 830 * @return {@link #target} (A concept from the target value set that this concept maps to.) 831 */ 832 public List<TargetElementComponent> getTarget() { 833 if (this.target == null) 834 this.target = new ArrayList<TargetElementComponent>(); 835 return this.target; 836 } 837 838 /** 839 * @return Returns a reference to <code>this</code> for easy method chaining 840 */ 841 public SourceElementComponent setTarget(List<TargetElementComponent> theTarget) { 842 this.target = theTarget; 843 return this; 844 } 845 846 public boolean hasTarget() { 847 if (this.target == null) 848 return false; 849 for (TargetElementComponent item : this.target) 850 if (!item.isEmpty()) 851 return true; 852 return false; 853 } 854 855 public TargetElementComponent addTarget() { //3 856 TargetElementComponent t = new TargetElementComponent(); 857 if (this.target == null) 858 this.target = new ArrayList<TargetElementComponent>(); 859 this.target.add(t); 860 return t; 861 } 862 863 public SourceElementComponent addTarget(TargetElementComponent t) { //3 864 if (t == null) 865 return this; 866 if (this.target == null) 867 this.target = new ArrayList<TargetElementComponent>(); 868 this.target.add(t); 869 return this; 870 } 871 872 /** 873 * @return The first repetition of repeating field {@link #target}, creating it if it does not already exist 874 */ 875 public TargetElementComponent getTargetFirstRep() { 876 if (getTarget().isEmpty()) { 877 addTarget(); 878 } 879 return getTarget().get(0); 880 } 881 882 protected void listChildren(List<Property> children) { 883 super.listChildren(children); 884 children.add(new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, 1, code)); 885 children.add(new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display)); 886 children.add(new Property("target", "", "A concept from the target value set that this concept maps to.", 0, java.lang.Integer.MAX_VALUE, target)); 887 } 888 889 @Override 890 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 891 switch (_hash) { 892 case 3059181: /*code*/ return new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, 1, code); 893 case 1671764162: /*display*/ return new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display); 894 case -880905839: /*target*/ return new Property("target", "", "A concept from the target value set that this concept maps to.", 0, java.lang.Integer.MAX_VALUE, target); 895 default: return super.getNamedProperty(_hash, _name, _checkValid); 896 } 897 898 } 899 900 @Override 901 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 902 switch (hash) { 903 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 904 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType 905 case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // TargetElementComponent 906 default: return super.getProperty(hash, name, checkValid); 907 } 908 909 } 910 911 @Override 912 public Base setProperty(int hash, String name, Base value) throws FHIRException { 913 switch (hash) { 914 case 3059181: // code 915 this.code = castToCode(value); // CodeType 916 return value; 917 case 1671764162: // display 918 this.display = castToString(value); // StringType 919 return value; 920 case -880905839: // target 921 this.getTarget().add((TargetElementComponent) value); // TargetElementComponent 922 return value; 923 default: return super.setProperty(hash, name, value); 924 } 925 926 } 927 928 @Override 929 public Base setProperty(String name, Base value) throws FHIRException { 930 if (name.equals("code")) { 931 this.code = castToCode(value); // CodeType 932 } else if (name.equals("display")) { 933 this.display = castToString(value); // StringType 934 } else if (name.equals("target")) { 935 this.getTarget().add((TargetElementComponent) value); 936 } else 937 return super.setProperty(name, value); 938 return value; 939 } 940 941 @Override 942 public Base makeProperty(int hash, String name) throws FHIRException { 943 switch (hash) { 944 case 3059181: return getCodeElement(); 945 case 1671764162: return getDisplayElement(); 946 case -880905839: return addTarget(); 947 default: return super.makeProperty(hash, name); 948 } 949 950 } 951 952 @Override 953 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 954 switch (hash) { 955 case 3059181: /*code*/ return new String[] {"code"}; 956 case 1671764162: /*display*/ return new String[] {"string"}; 957 case -880905839: /*target*/ return new String[] {}; 958 default: return super.getTypesForProperty(hash, name); 959 } 960 961 } 962 963 @Override 964 public Base addChild(String name) throws FHIRException { 965 if (name.equals("code")) { 966 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.code"); 967 } 968 else if (name.equals("display")) { 969 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.display"); 970 } 971 else if (name.equals("target")) { 972 return addTarget(); 973 } 974 else 975 return super.addChild(name); 976 } 977 978 public SourceElementComponent copy() { 979 SourceElementComponent dst = new SourceElementComponent(); 980 copyValues(dst); 981 dst.code = code == null ? null : code.copy(); 982 dst.display = display == null ? null : display.copy(); 983 if (target != null) { 984 dst.target = new ArrayList<TargetElementComponent>(); 985 for (TargetElementComponent i : target) 986 dst.target.add(i.copy()); 987 }; 988 return dst; 989 } 990 991 @Override 992 public boolean equalsDeep(Base other_) { 993 if (!super.equalsDeep(other_)) 994 return false; 995 if (!(other_ instanceof SourceElementComponent)) 996 return false; 997 SourceElementComponent o = (SourceElementComponent) other_; 998 return compareDeep(code, o.code, true) && compareDeep(display, o.display, true) && compareDeep(target, o.target, true) 999 ; 1000 } 1001 1002 @Override 1003 public boolean equalsShallow(Base other_) { 1004 if (!super.equalsShallow(other_)) 1005 return false; 1006 if (!(other_ instanceof SourceElementComponent)) 1007 return false; 1008 SourceElementComponent o = (SourceElementComponent) other_; 1009 return compareValues(code, o.code, true) && compareValues(display, o.display, true); 1010 } 1011 1012 public boolean isEmpty() { 1013 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, display, target); 1014 } 1015 1016 public String fhirType() { 1017 return "ConceptMap.group.element"; 1018 1019 } 1020 1021 } 1022 1023 @Block() 1024 public static class TargetElementComponent extends BackboneElement implements IBaseBackboneElement { 1025 /** 1026 * Identity (code or path) or the element/item that the map refers to. 1027 */ 1028 @Child(name = "code", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1029 @Description(shortDefinition="Code that identifies the target element", formalDefinition="Identity (code or path) or the element/item that the map refers to." ) 1030 protected CodeType code; 1031 1032 /** 1033 * The display for the code. The display is only provided to help editors when editing the concept map. 1034 */ 1035 @Child(name = "display", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1036 @Description(shortDefinition="Display for the code", formalDefinition="The display for the code. The display is only provided to help editors when editing the concept map." ) 1037 protected StringType display; 1038 1039 /** 1040 * The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source). 1041 */ 1042 @Child(name = "equivalence", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=false) 1043 @Description(shortDefinition="relatedto | equivalent | equal | wider | subsumes | narrower | specializes | inexact | unmatched | disjoint", formalDefinition="The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source)." ) 1044 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/concept-map-equivalence") 1045 protected Enumeration<ConceptMapEquivalence> equivalence; 1046 1047 /** 1048 * A description of status/issues in mapping that conveys additional information not represented in the structured data. 1049 */ 1050 @Child(name = "comment", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1051 @Description(shortDefinition="Description of status/issues in mapping", formalDefinition="A description of status/issues in mapping that conveys additional information not represented in the structured data." ) 1052 protected StringType comment; 1053 1054 /** 1055 * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value. 1056 */ 1057 @Child(name = "dependsOn", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1058 @Description(shortDefinition="Other elements required for this mapping (from context)", formalDefinition="A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value." ) 1059 protected List<OtherElementComponent> dependsOn; 1060 1061 /** 1062 * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on. 1063 */ 1064 @Child(name = "product", type = {OtherElementComponent.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1065 @Description(shortDefinition="Other concepts that this mapping also produces", formalDefinition="A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on." ) 1066 protected List<OtherElementComponent> product; 1067 1068 private static final long serialVersionUID = -2008997477L; 1069 1070 /** 1071 * Constructor 1072 */ 1073 public TargetElementComponent() { 1074 super(); 1075 } 1076 1077 /** 1078 * Constructor 1079 */ 1080 public TargetElementComponent(Enumeration<ConceptMapEquivalence> equivalence) { 1081 super(); 1082 this.equivalence = equivalence; 1083 } 1084 1085 /** 1086 * @return {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1087 */ 1088 public CodeType getCodeElement() { 1089 if (this.code == null) 1090 if (Configuration.errorOnAutoCreate()) 1091 throw new Error("Attempt to auto-create TargetElementComponent.code"); 1092 else if (Configuration.doAutoCreate()) 1093 this.code = new CodeType(); // bb 1094 return this.code; 1095 } 1096 1097 public boolean hasCodeElement() { 1098 return this.code != null && !this.code.isEmpty(); 1099 } 1100 1101 public boolean hasCode() { 1102 return this.code != null && !this.code.isEmpty(); 1103 } 1104 1105 /** 1106 * @param value {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1107 */ 1108 public TargetElementComponent setCodeElement(CodeType value) { 1109 this.code = value; 1110 return this; 1111 } 1112 1113 /** 1114 * @return Identity (code or path) or the element/item that the map refers to. 1115 */ 1116 public String getCode() { 1117 return this.code == null ? null : this.code.getValue(); 1118 } 1119 1120 /** 1121 * @param value Identity (code or path) or the element/item that the map refers to. 1122 */ 1123 public TargetElementComponent setCode(String value) { 1124 if (Utilities.noString(value)) 1125 this.code = null; 1126 else { 1127 if (this.code == null) 1128 this.code = new CodeType(); 1129 this.code.setValue(value); 1130 } 1131 return this; 1132 } 1133 1134 /** 1135 * @return {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1136 */ 1137 public StringType getDisplayElement() { 1138 if (this.display == null) 1139 if (Configuration.errorOnAutoCreate()) 1140 throw new Error("Attempt to auto-create TargetElementComponent.display"); 1141 else if (Configuration.doAutoCreate()) 1142 this.display = new StringType(); // bb 1143 return this.display; 1144 } 1145 1146 public boolean hasDisplayElement() { 1147 return this.display != null && !this.display.isEmpty(); 1148 } 1149 1150 public boolean hasDisplay() { 1151 return this.display != null && !this.display.isEmpty(); 1152 } 1153 1154 /** 1155 * @param value {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1156 */ 1157 public TargetElementComponent setDisplayElement(StringType value) { 1158 this.display = value; 1159 return this; 1160 } 1161 1162 /** 1163 * @return The display for the code. The display is only provided to help editors when editing the concept map. 1164 */ 1165 public String getDisplay() { 1166 return this.display == null ? null : this.display.getValue(); 1167 } 1168 1169 /** 1170 * @param value The display for the code. The display is only provided to help editors when editing the concept map. 1171 */ 1172 public TargetElementComponent setDisplay(String value) { 1173 if (Utilities.noString(value)) 1174 this.display = null; 1175 else { 1176 if (this.display == null) 1177 this.display = new StringType(); 1178 this.display.setValue(value); 1179 } 1180 return this; 1181 } 1182 1183 /** 1184 * @return {@link #equivalence} (The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source).). This is the underlying object with id, value and extensions. The accessor "getEquivalence" gives direct access to the value 1185 */ 1186 public Enumeration<ConceptMapEquivalence> getEquivalenceElement() { 1187 if (this.equivalence == null) 1188 if (Configuration.errorOnAutoCreate()) 1189 throw new Error("Attempt to auto-create TargetElementComponent.equivalence"); 1190 else if (Configuration.doAutoCreate()) 1191 this.equivalence = new Enumeration<ConceptMapEquivalence>(new ConceptMapEquivalenceEnumFactory()); // bb 1192 return this.equivalence; 1193 } 1194 1195 public boolean hasEquivalenceElement() { 1196 return this.equivalence != null && !this.equivalence.isEmpty(); 1197 } 1198 1199 public boolean hasEquivalence() { 1200 return this.equivalence != null && !this.equivalence.isEmpty(); 1201 } 1202 1203 /** 1204 * @param value {@link #equivalence} (The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source).). This is the underlying object with id, value and extensions. The accessor "getEquivalence" gives direct access to the value 1205 */ 1206 public TargetElementComponent setEquivalenceElement(Enumeration<ConceptMapEquivalence> value) { 1207 this.equivalence = value; 1208 return this; 1209 } 1210 1211 /** 1212 * @return The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source). 1213 */ 1214 public ConceptMapEquivalence getEquivalence() { 1215 return this.equivalence == null ? null : this.equivalence.getValue(); 1216 } 1217 1218 /** 1219 * @param value The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source). 1220 */ 1221 public TargetElementComponent setEquivalence(ConceptMapEquivalence value) { 1222 if (this.equivalence == null) 1223 this.equivalence = new Enumeration<ConceptMapEquivalence>(new ConceptMapEquivalenceEnumFactory()); 1224 this.equivalence.setValue(value); 1225 return this; 1226 } 1227 1228 /** 1229 * @return {@link #comment} (A description of status/issues in mapping that conveys additional information not represented in the structured data.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 1230 */ 1231 public StringType getCommentElement() { 1232 if (this.comment == null) 1233 if (Configuration.errorOnAutoCreate()) 1234 throw new Error("Attempt to auto-create TargetElementComponent.comment"); 1235 else if (Configuration.doAutoCreate()) 1236 this.comment = new StringType(); // bb 1237 return this.comment; 1238 } 1239 1240 public boolean hasCommentElement() { 1241 return this.comment != null && !this.comment.isEmpty(); 1242 } 1243 1244 public boolean hasComment() { 1245 return this.comment != null && !this.comment.isEmpty(); 1246 } 1247 1248 /** 1249 * @param value {@link #comment} (A description of status/issues in mapping that conveys additional information not represented in the structured data.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 1250 */ 1251 public TargetElementComponent setCommentElement(StringType value) { 1252 this.comment = value; 1253 return this; 1254 } 1255 1256 /** 1257 * @return A description of status/issues in mapping that conveys additional information not represented in the structured data. 1258 */ 1259 public String getComment() { 1260 return this.comment == null ? null : this.comment.getValue(); 1261 } 1262 1263 /** 1264 * @param value A description of status/issues in mapping that conveys additional information not represented in the structured data. 1265 */ 1266 public TargetElementComponent setComment(String value) { 1267 if (Utilities.noString(value)) 1268 this.comment = null; 1269 else { 1270 if (this.comment == null) 1271 this.comment = new StringType(); 1272 this.comment.setValue(value); 1273 } 1274 return this; 1275 } 1276 1277 /** 1278 * @return {@link #dependsOn} (A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.) 1279 */ 1280 public List<OtherElementComponent> getDependsOn() { 1281 if (this.dependsOn == null) 1282 this.dependsOn = new ArrayList<OtherElementComponent>(); 1283 return this.dependsOn; 1284 } 1285 1286 /** 1287 * @return Returns a reference to <code>this</code> for easy method chaining 1288 */ 1289 public TargetElementComponent setDependsOn(List<OtherElementComponent> theDependsOn) { 1290 this.dependsOn = theDependsOn; 1291 return this; 1292 } 1293 1294 public boolean hasDependsOn() { 1295 if (this.dependsOn == null) 1296 return false; 1297 for (OtherElementComponent item : this.dependsOn) 1298 if (!item.isEmpty()) 1299 return true; 1300 return false; 1301 } 1302 1303 public OtherElementComponent addDependsOn() { //3 1304 OtherElementComponent t = new OtherElementComponent(); 1305 if (this.dependsOn == null) 1306 this.dependsOn = new ArrayList<OtherElementComponent>(); 1307 this.dependsOn.add(t); 1308 return t; 1309 } 1310 1311 public TargetElementComponent addDependsOn(OtherElementComponent t) { //3 1312 if (t == null) 1313 return this; 1314 if (this.dependsOn == null) 1315 this.dependsOn = new ArrayList<OtherElementComponent>(); 1316 this.dependsOn.add(t); 1317 return this; 1318 } 1319 1320 /** 1321 * @return The first repetition of repeating field {@link #dependsOn}, creating it if it does not already exist 1322 */ 1323 public OtherElementComponent getDependsOnFirstRep() { 1324 if (getDependsOn().isEmpty()) { 1325 addDependsOn(); 1326 } 1327 return getDependsOn().get(0); 1328 } 1329 1330 /** 1331 * @return {@link #product} (A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.) 1332 */ 1333 public List<OtherElementComponent> getProduct() { 1334 if (this.product == null) 1335 this.product = new ArrayList<OtherElementComponent>(); 1336 return this.product; 1337 } 1338 1339 /** 1340 * @return Returns a reference to <code>this</code> for easy method chaining 1341 */ 1342 public TargetElementComponent setProduct(List<OtherElementComponent> theProduct) { 1343 this.product = theProduct; 1344 return this; 1345 } 1346 1347 public boolean hasProduct() { 1348 if (this.product == null) 1349 return false; 1350 for (OtherElementComponent item : this.product) 1351 if (!item.isEmpty()) 1352 return true; 1353 return false; 1354 } 1355 1356 public OtherElementComponent addProduct() { //3 1357 OtherElementComponent t = new OtherElementComponent(); 1358 if (this.product == null) 1359 this.product = new ArrayList<OtherElementComponent>(); 1360 this.product.add(t); 1361 return t; 1362 } 1363 1364 public TargetElementComponent addProduct(OtherElementComponent t) { //3 1365 if (t == null) 1366 return this; 1367 if (this.product == null) 1368 this.product = new ArrayList<OtherElementComponent>(); 1369 this.product.add(t); 1370 return this; 1371 } 1372 1373 /** 1374 * @return The first repetition of repeating field {@link #product}, creating it if it does not already exist 1375 */ 1376 public OtherElementComponent getProductFirstRep() { 1377 if (getProduct().isEmpty()) { 1378 addProduct(); 1379 } 1380 return getProduct().get(0); 1381 } 1382 1383 protected void listChildren(List<Property> children) { 1384 super.listChildren(children); 1385 children.add(new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, 1, code)); 1386 children.add(new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display)); 1387 children.add(new Property("equivalence", "code", "The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source).", 0, 1, equivalence)); 1388 children.add(new Property("comment", "string", "A description of status/issues in mapping that conveys additional information not represented in the structured data.", 0, 1, comment)); 1389 children.add(new Property("dependsOn", "", "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.", 0, java.lang.Integer.MAX_VALUE, dependsOn)); 1390 children.add(new Property("product", "@ConceptMap.group.element.target.dependsOn", "A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.", 0, java.lang.Integer.MAX_VALUE, product)); 1391 } 1392 1393 @Override 1394 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1395 switch (_hash) { 1396 case 3059181: /*code*/ return new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, 1, code); 1397 case 1671764162: /*display*/ return new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display); 1398 case -15828692: /*equivalence*/ return new Property("equivalence", "code", "The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source).", 0, 1, equivalence); 1399 case 950398559: /*comment*/ return new Property("comment", "string", "A description of status/issues in mapping that conveys additional information not represented in the structured data.", 0, 1, comment); 1400 case -1109214266: /*dependsOn*/ return new Property("dependsOn", "", "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.", 0, java.lang.Integer.MAX_VALUE, dependsOn); 1401 case -309474065: /*product*/ return new Property("product", "@ConceptMap.group.element.target.dependsOn", "A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.", 0, java.lang.Integer.MAX_VALUE, product); 1402 default: return super.getNamedProperty(_hash, _name, _checkValid); 1403 } 1404 1405 } 1406 1407 @Override 1408 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1409 switch (hash) { 1410 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 1411 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType 1412 case -15828692: /*equivalence*/ return this.equivalence == null ? new Base[0] : new Base[] {this.equivalence}; // Enumeration<ConceptMapEquivalence> 1413 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType 1414 case -1109214266: /*dependsOn*/ return this.dependsOn == null ? new Base[0] : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // OtherElementComponent 1415 case -309474065: /*product*/ return this.product == null ? new Base[0] : this.product.toArray(new Base[this.product.size()]); // OtherElementComponent 1416 default: return super.getProperty(hash, name, checkValid); 1417 } 1418 1419 } 1420 1421 @Override 1422 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1423 switch (hash) { 1424 case 3059181: // code 1425 this.code = castToCode(value); // CodeType 1426 return value; 1427 case 1671764162: // display 1428 this.display = castToString(value); // StringType 1429 return value; 1430 case -15828692: // equivalence 1431 value = new ConceptMapEquivalenceEnumFactory().fromType(castToCode(value)); 1432 this.equivalence = (Enumeration) value; // Enumeration<ConceptMapEquivalence> 1433 return value; 1434 case 950398559: // comment 1435 this.comment = castToString(value); // StringType 1436 return value; 1437 case -1109214266: // dependsOn 1438 this.getDependsOn().add((OtherElementComponent) value); // OtherElementComponent 1439 return value; 1440 case -309474065: // product 1441 this.getProduct().add((OtherElementComponent) value); // OtherElementComponent 1442 return value; 1443 default: return super.setProperty(hash, name, value); 1444 } 1445 1446 } 1447 1448 @Override 1449 public Base setProperty(String name, Base value) throws FHIRException { 1450 if (name.equals("code")) { 1451 this.code = castToCode(value); // CodeType 1452 } else if (name.equals("display")) { 1453 this.display = castToString(value); // StringType 1454 } else if (name.equals("equivalence")) { 1455 value = new ConceptMapEquivalenceEnumFactory().fromType(castToCode(value)); 1456 this.equivalence = (Enumeration) value; // Enumeration<ConceptMapEquivalence> 1457 } else if (name.equals("comment")) { 1458 this.comment = castToString(value); // StringType 1459 } else if (name.equals("dependsOn")) { 1460 this.getDependsOn().add((OtherElementComponent) value); 1461 } else if (name.equals("product")) { 1462 this.getProduct().add((OtherElementComponent) value); 1463 } else 1464 return super.setProperty(name, value); 1465 return value; 1466 } 1467 1468 @Override 1469 public Base makeProperty(int hash, String name) throws FHIRException { 1470 switch (hash) { 1471 case 3059181: return getCodeElement(); 1472 case 1671764162: return getDisplayElement(); 1473 case -15828692: return getEquivalenceElement(); 1474 case 950398559: return getCommentElement(); 1475 case -1109214266: return addDependsOn(); 1476 case -309474065: return addProduct(); 1477 default: return super.makeProperty(hash, name); 1478 } 1479 1480 } 1481 1482 @Override 1483 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1484 switch (hash) { 1485 case 3059181: /*code*/ return new String[] {"code"}; 1486 case 1671764162: /*display*/ return new String[] {"string"}; 1487 case -15828692: /*equivalence*/ return new String[] {"code"}; 1488 case 950398559: /*comment*/ return new String[] {"string"}; 1489 case -1109214266: /*dependsOn*/ return new String[] {}; 1490 case -309474065: /*product*/ return new String[] {"@ConceptMap.group.element.target.dependsOn"}; 1491 default: return super.getTypesForProperty(hash, name); 1492 } 1493 1494 } 1495 1496 @Override 1497 public Base addChild(String name) throws FHIRException { 1498 if (name.equals("code")) { 1499 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.code"); 1500 } 1501 else if (name.equals("display")) { 1502 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.display"); 1503 } 1504 else if (name.equals("equivalence")) { 1505 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.equivalence"); 1506 } 1507 else if (name.equals("comment")) { 1508 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.comment"); 1509 } 1510 else if (name.equals("dependsOn")) { 1511 return addDependsOn(); 1512 } 1513 else if (name.equals("product")) { 1514 return addProduct(); 1515 } 1516 else 1517 return super.addChild(name); 1518 } 1519 1520 public TargetElementComponent copy() { 1521 TargetElementComponent dst = new TargetElementComponent(); 1522 copyValues(dst); 1523 dst.code = code == null ? null : code.copy(); 1524 dst.display = display == null ? null : display.copy(); 1525 dst.equivalence = equivalence == null ? null : equivalence.copy(); 1526 dst.comment = comment == null ? null : comment.copy(); 1527 if (dependsOn != null) { 1528 dst.dependsOn = new ArrayList<OtherElementComponent>(); 1529 for (OtherElementComponent i : dependsOn) 1530 dst.dependsOn.add(i.copy()); 1531 }; 1532 if (product != null) { 1533 dst.product = new ArrayList<OtherElementComponent>(); 1534 for (OtherElementComponent i : product) 1535 dst.product.add(i.copy()); 1536 }; 1537 return dst; 1538 } 1539 1540 @Override 1541 public boolean equalsDeep(Base other_) { 1542 if (!super.equalsDeep(other_)) 1543 return false; 1544 if (!(other_ instanceof TargetElementComponent)) 1545 return false; 1546 TargetElementComponent o = (TargetElementComponent) other_; 1547 return compareDeep(code, o.code, true) && compareDeep(display, o.display, true) && compareDeep(equivalence, o.equivalence, true) 1548 && compareDeep(comment, o.comment, true) && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(product, o.product, true) 1549 ; 1550 } 1551 1552 @Override 1553 public boolean equalsShallow(Base other_) { 1554 if (!super.equalsShallow(other_)) 1555 return false; 1556 if (!(other_ instanceof TargetElementComponent)) 1557 return false; 1558 TargetElementComponent o = (TargetElementComponent) other_; 1559 return compareValues(code, o.code, true) && compareValues(display, o.display, true) && compareValues(equivalence, o.equivalence, true) 1560 && compareValues(comment, o.comment, true); 1561 } 1562 1563 public boolean isEmpty() { 1564 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, display, equivalence 1565 , comment, dependsOn, product); 1566 } 1567 1568 public String fhirType() { 1569 return "ConceptMap.group.element.target"; 1570 1571 } 1572 1573 } 1574 1575 @Block() 1576 public static class OtherElementComponent extends BackboneElement implements IBaseBackboneElement { 1577 /** 1578 * A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property. 1579 */ 1580 @Child(name = "property", type = {UriType.class}, order=1, min=1, max=1, modifier=false, summary=false) 1581 @Description(shortDefinition="Reference to property mapping depends on", formalDefinition="A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property." ) 1582 protected UriType property; 1583 1584 /** 1585 * An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems). 1586 */ 1587 @Child(name = "system", type = {CanonicalType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1588 @Description(shortDefinition="Code System (if necessary)", formalDefinition="An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems)." ) 1589 protected CanonicalType system; 1590 1591 /** 1592 * Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to. 1593 */ 1594 @Child(name = "value", type = {StringType.class}, order=3, min=1, max=1, modifier=false, summary=false) 1595 @Description(shortDefinition="Value of the referenced element", formalDefinition="Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to." ) 1596 protected StringType value; 1597 1598 /** 1599 * The display for the code. The display is only provided to help editors when editing the concept map. 1600 */ 1601 @Child(name = "display", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1602 @Description(shortDefinition="Display for the code (if value is a code)", formalDefinition="The display for the code. The display is only provided to help editors when editing the concept map." ) 1603 protected StringType display; 1604 1605 private static final long serialVersionUID = -1836341923L; 1606 1607 /** 1608 * Constructor 1609 */ 1610 public OtherElementComponent() { 1611 super(); 1612 } 1613 1614 /** 1615 * Constructor 1616 */ 1617 public OtherElementComponent(UriType property, StringType value) { 1618 super(); 1619 this.property = property; 1620 this.value = value; 1621 } 1622 1623 /** 1624 * @return {@link #property} (A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property.). This is the underlying object with id, value and extensions. The accessor "getProperty" gives direct access to the value 1625 */ 1626 public UriType getPropertyElement() { 1627 if (this.property == null) 1628 if (Configuration.errorOnAutoCreate()) 1629 throw new Error("Attempt to auto-create OtherElementComponent.property"); 1630 else if (Configuration.doAutoCreate()) 1631 this.property = new UriType(); // bb 1632 return this.property; 1633 } 1634 1635 public boolean hasPropertyElement() { 1636 return this.property != null && !this.property.isEmpty(); 1637 } 1638 1639 public boolean hasProperty() { 1640 return this.property != null && !this.property.isEmpty(); 1641 } 1642 1643 /** 1644 * @param value {@link #property} (A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property.). This is the underlying object with id, value and extensions. The accessor "getProperty" gives direct access to the value 1645 */ 1646 public OtherElementComponent setPropertyElement(UriType value) { 1647 this.property = value; 1648 return this; 1649 } 1650 1651 /** 1652 * @return A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property. 1653 */ 1654 public String getProperty() { 1655 return this.property == null ? null : this.property.getValue(); 1656 } 1657 1658 /** 1659 * @param value A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property. 1660 */ 1661 public OtherElementComponent setProperty(String value) { 1662 if (this.property == null) 1663 this.property = new UriType(); 1664 this.property.setValue(value); 1665 return this; 1666 } 1667 1668 /** 1669 * @return {@link #system} (An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems).). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value 1670 */ 1671 public CanonicalType getSystemElement() { 1672 if (this.system == null) 1673 if (Configuration.errorOnAutoCreate()) 1674 throw new Error("Attempt to auto-create OtherElementComponent.system"); 1675 else if (Configuration.doAutoCreate()) 1676 this.system = new CanonicalType(); // bb 1677 return this.system; 1678 } 1679 1680 public boolean hasSystemElement() { 1681 return this.system != null && !this.system.isEmpty(); 1682 } 1683 1684 public boolean hasSystem() { 1685 return this.system != null && !this.system.isEmpty(); 1686 } 1687 1688 /** 1689 * @param value {@link #system} (An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems).). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value 1690 */ 1691 public OtherElementComponent setSystemElement(CanonicalType value) { 1692 this.system = value; 1693 return this; 1694 } 1695 1696 /** 1697 * @return An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems). 1698 */ 1699 public String getSystem() { 1700 return this.system == null ? null : this.system.getValue(); 1701 } 1702 1703 /** 1704 * @param value An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems). 1705 */ 1706 public OtherElementComponent setSystem(String value) { 1707 if (Utilities.noString(value)) 1708 this.system = null; 1709 else { 1710 if (this.system == null) 1711 this.system = new CanonicalType(); 1712 this.system.setValue(value); 1713 } 1714 return this; 1715 } 1716 1717 /** 1718 * @return {@link #value} (Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1719 */ 1720 public StringType getValueElement() { 1721 if (this.value == null) 1722 if (Configuration.errorOnAutoCreate()) 1723 throw new Error("Attempt to auto-create OtherElementComponent.value"); 1724 else if (Configuration.doAutoCreate()) 1725 this.value = new StringType(); // bb 1726 return this.value; 1727 } 1728 1729 public boolean hasValueElement() { 1730 return this.value != null && !this.value.isEmpty(); 1731 } 1732 1733 public boolean hasValue() { 1734 return this.value != null && !this.value.isEmpty(); 1735 } 1736 1737 /** 1738 * @param value {@link #value} (Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1739 */ 1740 public OtherElementComponent setValueElement(StringType value) { 1741 this.value = value; 1742 return this; 1743 } 1744 1745 /** 1746 * @return Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to. 1747 */ 1748 public String getValue() { 1749 return this.value == null ? null : this.value.getValue(); 1750 } 1751 1752 /** 1753 * @param value Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to. 1754 */ 1755 public OtherElementComponent setValue(String value) { 1756 if (this.value == null) 1757 this.value = new StringType(); 1758 this.value.setValue(value); 1759 return this; 1760 } 1761 1762 /** 1763 * @return {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1764 */ 1765 public StringType getDisplayElement() { 1766 if (this.display == null) 1767 if (Configuration.errorOnAutoCreate()) 1768 throw new Error("Attempt to auto-create OtherElementComponent.display"); 1769 else if (Configuration.doAutoCreate()) 1770 this.display = new StringType(); // bb 1771 return this.display; 1772 } 1773 1774 public boolean hasDisplayElement() { 1775 return this.display != null && !this.display.isEmpty(); 1776 } 1777 1778 public boolean hasDisplay() { 1779 return this.display != null && !this.display.isEmpty(); 1780 } 1781 1782 /** 1783 * @param value {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1784 */ 1785 public OtherElementComponent setDisplayElement(StringType value) { 1786 this.display = value; 1787 return this; 1788 } 1789 1790 /** 1791 * @return The display for the code. The display is only provided to help editors when editing the concept map. 1792 */ 1793 public String getDisplay() { 1794 return this.display == null ? null : this.display.getValue(); 1795 } 1796 1797 /** 1798 * @param value The display for the code. The display is only provided to help editors when editing the concept map. 1799 */ 1800 public OtherElementComponent setDisplay(String value) { 1801 if (Utilities.noString(value)) 1802 this.display = null; 1803 else { 1804 if (this.display == null) 1805 this.display = new StringType(); 1806 this.display.setValue(value); 1807 } 1808 return this; 1809 } 1810 1811 protected void listChildren(List<Property> children) { 1812 super.listChildren(children); 1813 children.add(new Property("property", "uri", "A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property.", 0, 1, property)); 1814 children.add(new Property("system", "canonical(CodeSystem)", "An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems).", 0, 1, system)); 1815 children.add(new Property("value", "string", "Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to.", 0, 1, value)); 1816 children.add(new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display)); 1817 } 1818 1819 @Override 1820 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1821 switch (_hash) { 1822 case -993141291: /*property*/ return new Property("property", "uri", "A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property.", 0, 1, property); 1823 case -887328209: /*system*/ return new Property("system", "canonical(CodeSystem)", "An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems).", 0, 1, system); 1824 case 111972721: /*value*/ return new Property("value", "string", "Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to.", 0, 1, value); 1825 case 1671764162: /*display*/ return new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display); 1826 default: return super.getNamedProperty(_hash, _name, _checkValid); 1827 } 1828 1829 } 1830 1831 @Override 1832 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1833 switch (hash) { 1834 case -993141291: /*property*/ return this.property == null ? new Base[0] : new Base[] {this.property}; // UriType 1835 case -887328209: /*system*/ return this.system == null ? new Base[0] : new Base[] {this.system}; // CanonicalType 1836 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType 1837 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType 1838 default: return super.getProperty(hash, name, checkValid); 1839 } 1840 1841 } 1842 1843 @Override 1844 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1845 switch (hash) { 1846 case -993141291: // property 1847 this.property = castToUri(value); // UriType 1848 return value; 1849 case -887328209: // system 1850 this.system = castToCanonical(value); // CanonicalType 1851 return value; 1852 case 111972721: // value 1853 this.value = castToString(value); // StringType 1854 return value; 1855 case 1671764162: // display 1856 this.display = castToString(value); // StringType 1857 return value; 1858 default: return super.setProperty(hash, name, value); 1859 } 1860 1861 } 1862 1863 @Override 1864 public Base setProperty(String name, Base value) throws FHIRException { 1865 if (name.equals("property")) { 1866 this.property = castToUri(value); // UriType 1867 } else if (name.equals("system")) { 1868 this.system = castToCanonical(value); // CanonicalType 1869 } else if (name.equals("value")) { 1870 this.value = castToString(value); // StringType 1871 } else if (name.equals("display")) { 1872 this.display = castToString(value); // StringType 1873 } else 1874 return super.setProperty(name, value); 1875 return value; 1876 } 1877 1878 @Override 1879 public Base makeProperty(int hash, String name) throws FHIRException { 1880 switch (hash) { 1881 case -993141291: return getPropertyElement(); 1882 case -887328209: return getSystemElement(); 1883 case 111972721: return getValueElement(); 1884 case 1671764162: return getDisplayElement(); 1885 default: return super.makeProperty(hash, name); 1886 } 1887 1888 } 1889 1890 @Override 1891 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1892 switch (hash) { 1893 case -993141291: /*property*/ return new String[] {"uri"}; 1894 case -887328209: /*system*/ return new String[] {"canonical"}; 1895 case 111972721: /*value*/ return new String[] {"string"}; 1896 case 1671764162: /*display*/ return new String[] {"string"}; 1897 default: return super.getTypesForProperty(hash, name); 1898 } 1899 1900 } 1901 1902 @Override 1903 public Base addChild(String name) throws FHIRException { 1904 if (name.equals("property")) { 1905 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.property"); 1906 } 1907 else if (name.equals("system")) { 1908 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.system"); 1909 } 1910 else if (name.equals("value")) { 1911 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.value"); 1912 } 1913 else if (name.equals("display")) { 1914 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.display"); 1915 } 1916 else 1917 return super.addChild(name); 1918 } 1919 1920 public OtherElementComponent copy() { 1921 OtherElementComponent dst = new OtherElementComponent(); 1922 copyValues(dst); 1923 dst.property = property == null ? null : property.copy(); 1924 dst.system = system == null ? null : system.copy(); 1925 dst.value = value == null ? null : value.copy(); 1926 dst.display = display == null ? null : display.copy(); 1927 return dst; 1928 } 1929 1930 @Override 1931 public boolean equalsDeep(Base other_) { 1932 if (!super.equalsDeep(other_)) 1933 return false; 1934 if (!(other_ instanceof OtherElementComponent)) 1935 return false; 1936 OtherElementComponent o = (OtherElementComponent) other_; 1937 return compareDeep(property, o.property, true) && compareDeep(system, o.system, true) && compareDeep(value, o.value, true) 1938 && compareDeep(display, o.display, true); 1939 } 1940 1941 @Override 1942 public boolean equalsShallow(Base other_) { 1943 if (!super.equalsShallow(other_)) 1944 return false; 1945 if (!(other_ instanceof OtherElementComponent)) 1946 return false; 1947 OtherElementComponent o = (OtherElementComponent) other_; 1948 return compareValues(property, o.property, true) && compareValues(value, o.value, true) && compareValues(display, o.display, true) 1949 ; 1950 } 1951 1952 public boolean isEmpty() { 1953 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(property, system, value 1954 , display); 1955 } 1956 1957 public String fhirType() { 1958 return "ConceptMap.group.element.target.dependsOn"; 1959 1960 } 1961 1962 } 1963 1964 @Block() 1965 public static class ConceptMapGroupUnmappedComponent extends BackboneElement implements IBaseBackboneElement { 1966 /** 1967 * Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL). 1968 */ 1969 @Child(name = "mode", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false) 1970 @Description(shortDefinition="provided | fixed | other-map", formalDefinition="Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL)." ) 1971 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/conceptmap-unmapped-mode") 1972 protected Enumeration<ConceptMapGroupUnmappedMode> mode; 1973 1974 /** 1975 * The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code. 1976 */ 1977 @Child(name = "code", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1978 @Description(shortDefinition="Fixed code when mode = fixed", formalDefinition="The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code." ) 1979 protected CodeType code; 1980 1981 /** 1982 * The display for the code. The display is only provided to help editors when editing the concept map. 1983 */ 1984 @Child(name = "display", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1985 @Description(shortDefinition="Display for the code", formalDefinition="The display for the code. The display is only provided to help editors when editing the concept map." ) 1986 protected StringType display; 1987 1988 /** 1989 * The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept. 1990 */ 1991 @Child(name = "url", type = {CanonicalType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1992 @Description(shortDefinition="canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped", formalDefinition="The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept." ) 1993 protected CanonicalType url; 1994 1995 private static final long serialVersionUID = 1261364354L; 1996 1997 /** 1998 * Constructor 1999 */ 2000 public ConceptMapGroupUnmappedComponent() { 2001 super(); 2002 } 2003 2004 /** 2005 * Constructor 2006 */ 2007 public ConceptMapGroupUnmappedComponent(Enumeration<ConceptMapGroupUnmappedMode> mode) { 2008 super(); 2009 this.mode = mode; 2010 } 2011 2012 /** 2013 * @return {@link #mode} (Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 2014 */ 2015 public Enumeration<ConceptMapGroupUnmappedMode> getModeElement() { 2016 if (this.mode == null) 2017 if (Configuration.errorOnAutoCreate()) 2018 throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.mode"); 2019 else if (Configuration.doAutoCreate()) 2020 this.mode = new Enumeration<ConceptMapGroupUnmappedMode>(new ConceptMapGroupUnmappedModeEnumFactory()); // bb 2021 return this.mode; 2022 } 2023 2024 public boolean hasModeElement() { 2025 return this.mode != null && !this.mode.isEmpty(); 2026 } 2027 2028 public boolean hasMode() { 2029 return this.mode != null && !this.mode.isEmpty(); 2030 } 2031 2032 /** 2033 * @param value {@link #mode} (Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 2034 */ 2035 public ConceptMapGroupUnmappedComponent setModeElement(Enumeration<ConceptMapGroupUnmappedMode> value) { 2036 this.mode = value; 2037 return this; 2038 } 2039 2040 /** 2041 * @return Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL). 2042 */ 2043 public ConceptMapGroupUnmappedMode getMode() { 2044 return this.mode == null ? null : this.mode.getValue(); 2045 } 2046 2047 /** 2048 * @param value Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL). 2049 */ 2050 public ConceptMapGroupUnmappedComponent setMode(ConceptMapGroupUnmappedMode value) { 2051 if (this.mode == null) 2052 this.mode = new Enumeration<ConceptMapGroupUnmappedMode>(new ConceptMapGroupUnmappedModeEnumFactory()); 2053 this.mode.setValue(value); 2054 return this; 2055 } 2056 2057 /** 2058 * @return {@link #code} (The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 2059 */ 2060 public CodeType getCodeElement() { 2061 if (this.code == null) 2062 if (Configuration.errorOnAutoCreate()) 2063 throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.code"); 2064 else if (Configuration.doAutoCreate()) 2065 this.code = new CodeType(); // bb 2066 return this.code; 2067 } 2068 2069 public boolean hasCodeElement() { 2070 return this.code != null && !this.code.isEmpty(); 2071 } 2072 2073 public boolean hasCode() { 2074 return this.code != null && !this.code.isEmpty(); 2075 } 2076 2077 /** 2078 * @param value {@link #code} (The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 2079 */ 2080 public ConceptMapGroupUnmappedComponent setCodeElement(CodeType value) { 2081 this.code = value; 2082 return this; 2083 } 2084 2085 /** 2086 * @return The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code. 2087 */ 2088 public String getCode() { 2089 return this.code == null ? null : this.code.getValue(); 2090 } 2091 2092 /** 2093 * @param value The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code. 2094 */ 2095 public ConceptMapGroupUnmappedComponent setCode(String value) { 2096 if (Utilities.noString(value)) 2097 this.code = null; 2098 else { 2099 if (this.code == null) 2100 this.code = new CodeType(); 2101 this.code.setValue(value); 2102 } 2103 return this; 2104 } 2105 2106 /** 2107 * @return {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 2108 */ 2109 public StringType getDisplayElement() { 2110 if (this.display == null) 2111 if (Configuration.errorOnAutoCreate()) 2112 throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.display"); 2113 else if (Configuration.doAutoCreate()) 2114 this.display = new StringType(); // bb 2115 return this.display; 2116 } 2117 2118 public boolean hasDisplayElement() { 2119 return this.display != null && !this.display.isEmpty(); 2120 } 2121 2122 public boolean hasDisplay() { 2123 return this.display != null && !this.display.isEmpty(); 2124 } 2125 2126 /** 2127 * @param value {@link #display} (The display for the code. The display is only provided to help editors when editing the concept map.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 2128 */ 2129 public ConceptMapGroupUnmappedComponent setDisplayElement(StringType value) { 2130 this.display = value; 2131 return this; 2132 } 2133 2134 /** 2135 * @return The display for the code. The display is only provided to help editors when editing the concept map. 2136 */ 2137 public String getDisplay() { 2138 return this.display == null ? null : this.display.getValue(); 2139 } 2140 2141 /** 2142 * @param value The display for the code. The display is only provided to help editors when editing the concept map. 2143 */ 2144 public ConceptMapGroupUnmappedComponent setDisplay(String value) { 2145 if (Utilities.noString(value)) 2146 this.display = null; 2147 else { 2148 if (this.display == null) 2149 this.display = new StringType(); 2150 this.display.setValue(value); 2151 } 2152 return this; 2153 } 2154 2155 /** 2156 * @return {@link #url} (The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2157 */ 2158 public CanonicalType getUrlElement() { 2159 if (this.url == null) 2160 if (Configuration.errorOnAutoCreate()) 2161 throw new Error("Attempt to auto-create ConceptMapGroupUnmappedComponent.url"); 2162 else if (Configuration.doAutoCreate()) 2163 this.url = new CanonicalType(); // bb 2164 return this.url; 2165 } 2166 2167 public boolean hasUrlElement() { 2168 return this.url != null && !this.url.isEmpty(); 2169 } 2170 2171 public boolean hasUrl() { 2172 return this.url != null && !this.url.isEmpty(); 2173 } 2174 2175 /** 2176 * @param value {@link #url} (The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2177 */ 2178 public ConceptMapGroupUnmappedComponent setUrlElement(CanonicalType value) { 2179 this.url = value; 2180 return this; 2181 } 2182 2183 /** 2184 * @return The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept. 2185 */ 2186 public String getUrl() { 2187 return this.url == null ? null : this.url.getValue(); 2188 } 2189 2190 /** 2191 * @param value The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept. 2192 */ 2193 public ConceptMapGroupUnmappedComponent setUrl(String value) { 2194 if (Utilities.noString(value)) 2195 this.url = null; 2196 else { 2197 if (this.url == null) 2198 this.url = new CanonicalType(); 2199 this.url.setValue(value); 2200 } 2201 return this; 2202 } 2203 2204 protected void listChildren(List<Property> children) { 2205 super.listChildren(children); 2206 children.add(new Property("mode", "code", "Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).", 0, 1, mode)); 2207 children.add(new Property("code", "code", "The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code.", 0, 1, code)); 2208 children.add(new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display)); 2209 children.add(new Property("url", "canonical(ConceptMap)", "The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.", 0, 1, url)); 2210 } 2211 2212 @Override 2213 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2214 switch (_hash) { 2215 case 3357091: /*mode*/ return new Property("mode", "code", "Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).", 0, 1, mode); 2216 case 3059181: /*code*/ return new Property("code", "code", "The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code.", 0, 1, code); 2217 case 1671764162: /*display*/ return new Property("display", "string", "The display for the code. The display is only provided to help editors when editing the concept map.", 0, 1, display); 2218 case 116079: /*url*/ return new Property("url", "canonical(ConceptMap)", "The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.", 0, 1, url); 2219 default: return super.getNamedProperty(_hash, _name, _checkValid); 2220 } 2221 2222 } 2223 2224 @Override 2225 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2226 switch (hash) { 2227 case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<ConceptMapGroupUnmappedMode> 2228 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 2229 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType 2230 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // CanonicalType 2231 default: return super.getProperty(hash, name, checkValid); 2232 } 2233 2234 } 2235 2236 @Override 2237 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2238 switch (hash) { 2239 case 3357091: // mode 2240 value = new ConceptMapGroupUnmappedModeEnumFactory().fromType(castToCode(value)); 2241 this.mode = (Enumeration) value; // Enumeration<ConceptMapGroupUnmappedMode> 2242 return value; 2243 case 3059181: // code 2244 this.code = castToCode(value); // CodeType 2245 return value; 2246 case 1671764162: // display 2247 this.display = castToString(value); // StringType 2248 return value; 2249 case 116079: // url 2250 this.url = castToCanonical(value); // CanonicalType 2251 return value; 2252 default: return super.setProperty(hash, name, value); 2253 } 2254 2255 } 2256 2257 @Override 2258 public Base setProperty(String name, Base value) throws FHIRException { 2259 if (name.equals("mode")) { 2260 value = new ConceptMapGroupUnmappedModeEnumFactory().fromType(castToCode(value)); 2261 this.mode = (Enumeration) value; // Enumeration<ConceptMapGroupUnmappedMode> 2262 } else if (name.equals("code")) { 2263 this.code = castToCode(value); // CodeType 2264 } else if (name.equals("display")) { 2265 this.display = castToString(value); // StringType 2266 } else if (name.equals("url")) { 2267 this.url = castToCanonical(value); // CanonicalType 2268 } else 2269 return super.setProperty(name, value); 2270 return value; 2271 } 2272 2273 @Override 2274 public Base makeProperty(int hash, String name) throws FHIRException { 2275 switch (hash) { 2276 case 3357091: return getModeElement(); 2277 case 3059181: return getCodeElement(); 2278 case 1671764162: return getDisplayElement(); 2279 case 116079: return getUrlElement(); 2280 default: return super.makeProperty(hash, name); 2281 } 2282 2283 } 2284 2285 @Override 2286 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2287 switch (hash) { 2288 case 3357091: /*mode*/ return new String[] {"code"}; 2289 case 3059181: /*code*/ return new String[] {"code"}; 2290 case 1671764162: /*display*/ return new String[] {"string"}; 2291 case 116079: /*url*/ return new String[] {"canonical"}; 2292 default: return super.getTypesForProperty(hash, name); 2293 } 2294 2295 } 2296 2297 @Override 2298 public Base addChild(String name) throws FHIRException { 2299 if (name.equals("mode")) { 2300 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.mode"); 2301 } 2302 else if (name.equals("code")) { 2303 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.code"); 2304 } 2305 else if (name.equals("display")) { 2306 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.display"); 2307 } 2308 else if (name.equals("url")) { 2309 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.url"); 2310 } 2311 else 2312 return super.addChild(name); 2313 } 2314 2315 public ConceptMapGroupUnmappedComponent copy() { 2316 ConceptMapGroupUnmappedComponent dst = new ConceptMapGroupUnmappedComponent(); 2317 copyValues(dst); 2318 dst.mode = mode == null ? null : mode.copy(); 2319 dst.code = code == null ? null : code.copy(); 2320 dst.display = display == null ? null : display.copy(); 2321 dst.url = url == null ? null : url.copy(); 2322 return dst; 2323 } 2324 2325 @Override 2326 public boolean equalsDeep(Base other_) { 2327 if (!super.equalsDeep(other_)) 2328 return false; 2329 if (!(other_ instanceof ConceptMapGroupUnmappedComponent)) 2330 return false; 2331 ConceptMapGroupUnmappedComponent o = (ConceptMapGroupUnmappedComponent) other_; 2332 return compareDeep(mode, o.mode, true) && compareDeep(code, o.code, true) && compareDeep(display, o.display, true) 2333 && compareDeep(url, o.url, true); 2334 } 2335 2336 @Override 2337 public boolean equalsShallow(Base other_) { 2338 if (!super.equalsShallow(other_)) 2339 return false; 2340 if (!(other_ instanceof ConceptMapGroupUnmappedComponent)) 2341 return false; 2342 ConceptMapGroupUnmappedComponent o = (ConceptMapGroupUnmappedComponent) other_; 2343 return compareValues(mode, o.mode, true) && compareValues(code, o.code, true) && compareValues(display, o.display, true) 2344 ; 2345 } 2346 2347 public boolean isEmpty() { 2348 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(mode, code, display, url 2349 ); 2350 } 2351 2352 public String fhirType() { 2353 return "ConceptMap.group.unmapped"; 2354 2355 } 2356 2357 } 2358 2359 /** 2360 * A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance. 2361 */ 2362 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=1, modifier=false, summary=true) 2363 @Description(shortDefinition="Additional identifier for the concept map", formalDefinition="A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance." ) 2364 protected Identifier identifier; 2365 2366 /** 2367 * Explanation of why this concept map is needed and why it has been designed as it has. 2368 */ 2369 @Child(name = "purpose", type = {MarkdownType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2370 @Description(shortDefinition="Why this concept map is defined", formalDefinition="Explanation of why this concept map is needed and why it has been designed as it has." ) 2371 protected MarkdownType purpose; 2372 2373 /** 2374 * A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map. 2375 */ 2376 @Child(name = "copyright", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false) 2377 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map." ) 2378 protected MarkdownType copyright; 2379 2380 /** 2381 * Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings. 2382 */ 2383 @Child(name = "source", type = {UriType.class, CanonicalType.class}, order=3, min=0, max=1, modifier=false, summary=true) 2384 @Description(shortDefinition="The source value set that contains the concepts that are being mapped", formalDefinition="Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings." ) 2385 protected Type source; 2386 2387 /** 2388 * The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made. 2389 */ 2390 @Child(name = "target", type = {UriType.class, CanonicalType.class}, order=4, min=0, max=1, modifier=false, summary=true) 2391 @Description(shortDefinition="The target value set which provides context for the mappings", formalDefinition="The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made." ) 2392 protected Type target; 2393 2394 /** 2395 * A group of mappings that all have the same source and target system. 2396 */ 2397 @Child(name = "group", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2398 @Description(shortDefinition="Same source and target systems", formalDefinition="A group of mappings that all have the same source and target system." ) 2399 protected List<ConceptMapGroupComponent> group; 2400 2401 private static final long serialVersionUID = -2081872580L; 2402 2403 /** 2404 * Constructor 2405 */ 2406 public ConceptMap() { 2407 super(); 2408 } 2409 2410 /** 2411 * Constructor 2412 */ 2413 public ConceptMap(Enumeration<PublicationStatus> status) { 2414 super(); 2415 this.status = status; 2416 } 2417 2418 /** 2419 * @return {@link #url} (An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2420 */ 2421 public UriType getUrlElement() { 2422 if (this.url == null) 2423 if (Configuration.errorOnAutoCreate()) 2424 throw new Error("Attempt to auto-create ConceptMap.url"); 2425 else if (Configuration.doAutoCreate()) 2426 this.url = new UriType(); // bb 2427 return this.url; 2428 } 2429 2430 public boolean hasUrlElement() { 2431 return this.url != null && !this.url.isEmpty(); 2432 } 2433 2434 public boolean hasUrl() { 2435 return this.url != null && !this.url.isEmpty(); 2436 } 2437 2438 /** 2439 * @param value {@link #url} (An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2440 */ 2441 public ConceptMap setUrlElement(UriType value) { 2442 this.url = value; 2443 return this; 2444 } 2445 2446 /** 2447 * @return An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers. 2448 */ 2449 public String getUrl() { 2450 return this.url == null ? null : this.url.getValue(); 2451 } 2452 2453 /** 2454 * @param value An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers. 2455 */ 2456 public ConceptMap setUrl(String value) { 2457 if (Utilities.noString(value)) 2458 this.url = null; 2459 else { 2460 if (this.url == null) 2461 this.url = new UriType(); 2462 this.url.setValue(value); 2463 } 2464 return this; 2465 } 2466 2467 /** 2468 * @return {@link #identifier} (A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.) 2469 */ 2470 public Identifier getIdentifier() { 2471 if (this.identifier == null) 2472 if (Configuration.errorOnAutoCreate()) 2473 throw new Error("Attempt to auto-create ConceptMap.identifier"); 2474 else if (Configuration.doAutoCreate()) 2475 this.identifier = new Identifier(); // cc 2476 return this.identifier; 2477 } 2478 2479 public boolean hasIdentifier() { 2480 return this.identifier != null && !this.identifier.isEmpty(); 2481 } 2482 2483 /** 2484 * @param value {@link #identifier} (A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.) 2485 */ 2486 public ConceptMap setIdentifier(Identifier value) { 2487 this.identifier = value; 2488 return this; 2489 } 2490 2491 /** 2492 * @return {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 2493 */ 2494 public StringType getVersionElement() { 2495 if (this.version == null) 2496 if (Configuration.errorOnAutoCreate()) 2497 throw new Error("Attempt to auto-create ConceptMap.version"); 2498 else if (Configuration.doAutoCreate()) 2499 this.version = new StringType(); // bb 2500 return this.version; 2501 } 2502 2503 public boolean hasVersionElement() { 2504 return this.version != null && !this.version.isEmpty(); 2505 } 2506 2507 public boolean hasVersion() { 2508 return this.version != null && !this.version.isEmpty(); 2509 } 2510 2511 /** 2512 * @param value {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 2513 */ 2514 public ConceptMap setVersionElement(StringType value) { 2515 this.version = value; 2516 return this; 2517 } 2518 2519 /** 2520 * @return The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. 2521 */ 2522 public String getVersion() { 2523 return this.version == null ? null : this.version.getValue(); 2524 } 2525 2526 /** 2527 * @param value The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. 2528 */ 2529 public ConceptMap setVersion(String value) { 2530 if (Utilities.noString(value)) 2531 this.version = null; 2532 else { 2533 if (this.version == null) 2534 this.version = new StringType(); 2535 this.version.setValue(value); 2536 } 2537 return this; 2538 } 2539 2540 /** 2541 * @return {@link #name} (A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2542 */ 2543 public StringType getNameElement() { 2544 if (this.name == null) 2545 if (Configuration.errorOnAutoCreate()) 2546 throw new Error("Attempt to auto-create ConceptMap.name"); 2547 else if (Configuration.doAutoCreate()) 2548 this.name = new StringType(); // bb 2549 return this.name; 2550 } 2551 2552 public boolean hasNameElement() { 2553 return this.name != null && !this.name.isEmpty(); 2554 } 2555 2556 public boolean hasName() { 2557 return this.name != null && !this.name.isEmpty(); 2558 } 2559 2560 /** 2561 * @param value {@link #name} (A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2562 */ 2563 public ConceptMap setNameElement(StringType value) { 2564 this.name = value; 2565 return this; 2566 } 2567 2568 /** 2569 * @return A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation. 2570 */ 2571 public String getName() { 2572 return this.name == null ? null : this.name.getValue(); 2573 } 2574 2575 /** 2576 * @param value A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation. 2577 */ 2578 public ConceptMap setName(String value) { 2579 if (Utilities.noString(value)) 2580 this.name = null; 2581 else { 2582 if (this.name == null) 2583 this.name = new StringType(); 2584 this.name.setValue(value); 2585 } 2586 return this; 2587 } 2588 2589 /** 2590 * @return {@link #title} (A short, descriptive, user-friendly title for the concept map.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 2591 */ 2592 public StringType getTitleElement() { 2593 if (this.title == null) 2594 if (Configuration.errorOnAutoCreate()) 2595 throw new Error("Attempt to auto-create ConceptMap.title"); 2596 else if (Configuration.doAutoCreate()) 2597 this.title = new StringType(); // bb 2598 return this.title; 2599 } 2600 2601 public boolean hasTitleElement() { 2602 return this.title != null && !this.title.isEmpty(); 2603 } 2604 2605 public boolean hasTitle() { 2606 return this.title != null && !this.title.isEmpty(); 2607 } 2608 2609 /** 2610 * @param value {@link #title} (A short, descriptive, user-friendly title for the concept map.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 2611 */ 2612 public ConceptMap setTitleElement(StringType value) { 2613 this.title = value; 2614 return this; 2615 } 2616 2617 /** 2618 * @return A short, descriptive, user-friendly title for the concept map. 2619 */ 2620 public String getTitle() { 2621 return this.title == null ? null : this.title.getValue(); 2622 } 2623 2624 /** 2625 * @param value A short, descriptive, user-friendly title for the concept map. 2626 */ 2627 public ConceptMap setTitle(String value) { 2628 if (Utilities.noString(value)) 2629 this.title = null; 2630 else { 2631 if (this.title == null) 2632 this.title = new StringType(); 2633 this.title.setValue(value); 2634 } 2635 return this; 2636 } 2637 2638 /** 2639 * @return {@link #status} (The status of this concept map. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2640 */ 2641 public Enumeration<PublicationStatus> getStatusElement() { 2642 if (this.status == null) 2643 if (Configuration.errorOnAutoCreate()) 2644 throw new Error("Attempt to auto-create ConceptMap.status"); 2645 else if (Configuration.doAutoCreate()) 2646 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 2647 return this.status; 2648 } 2649 2650 public boolean hasStatusElement() { 2651 return this.status != null && !this.status.isEmpty(); 2652 } 2653 2654 public boolean hasStatus() { 2655 return this.status != null && !this.status.isEmpty(); 2656 } 2657 2658 /** 2659 * @param value {@link #status} (The status of this concept map. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2660 */ 2661 public ConceptMap setStatusElement(Enumeration<PublicationStatus> value) { 2662 this.status = value; 2663 return this; 2664 } 2665 2666 /** 2667 * @return The status of this concept map. Enables tracking the life-cycle of the content. 2668 */ 2669 public PublicationStatus getStatus() { 2670 return this.status == null ? null : this.status.getValue(); 2671 } 2672 2673 /** 2674 * @param value The status of this concept map. Enables tracking the life-cycle of the content. 2675 */ 2676 public ConceptMap setStatus(PublicationStatus value) { 2677 if (this.status == null) 2678 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 2679 this.status.setValue(value); 2680 return this; 2681 } 2682 2683 /** 2684 * @return {@link #experimental} (A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 2685 */ 2686 public BooleanType getExperimentalElement() { 2687 if (this.experimental == null) 2688 if (Configuration.errorOnAutoCreate()) 2689 throw new Error("Attempt to auto-create ConceptMap.experimental"); 2690 else if (Configuration.doAutoCreate()) 2691 this.experimental = new BooleanType(); // bb 2692 return this.experimental; 2693 } 2694 2695 public boolean hasExperimentalElement() { 2696 return this.experimental != null && !this.experimental.isEmpty(); 2697 } 2698 2699 public boolean hasExperimental() { 2700 return this.experimental != null && !this.experimental.isEmpty(); 2701 } 2702 2703 /** 2704 * @param value {@link #experimental} (A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 2705 */ 2706 public ConceptMap setExperimentalElement(BooleanType value) { 2707 this.experimental = value; 2708 return this; 2709 } 2710 2711 /** 2712 * @return A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 2713 */ 2714 public boolean getExperimental() { 2715 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 2716 } 2717 2718 /** 2719 * @param value A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 2720 */ 2721 public ConceptMap setExperimental(boolean value) { 2722 if (this.experimental == null) 2723 this.experimental = new BooleanType(); 2724 this.experimental.setValue(value); 2725 return this; 2726 } 2727 2728 /** 2729 * @return {@link #date} (The date (and optionally time) when the concept map was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2730 */ 2731 public DateTimeType getDateElement() { 2732 if (this.date == null) 2733 if (Configuration.errorOnAutoCreate()) 2734 throw new Error("Attempt to auto-create ConceptMap.date"); 2735 else if (Configuration.doAutoCreate()) 2736 this.date = new DateTimeType(); // bb 2737 return this.date; 2738 } 2739 2740 public boolean hasDateElement() { 2741 return this.date != null && !this.date.isEmpty(); 2742 } 2743 2744 public boolean hasDate() { 2745 return this.date != null && !this.date.isEmpty(); 2746 } 2747 2748 /** 2749 * @param value {@link #date} (The date (and optionally time) when the concept map was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2750 */ 2751 public ConceptMap setDateElement(DateTimeType value) { 2752 this.date = value; 2753 return this; 2754 } 2755 2756 /** 2757 * @return The date (and optionally time) when the concept map was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes. 2758 */ 2759 public Date getDate() { 2760 return this.date == null ? null : this.date.getValue(); 2761 } 2762 2763 /** 2764 * @param value The date (and optionally time) when the concept map was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes. 2765 */ 2766 public ConceptMap setDate(Date value) { 2767 if (value == null) 2768 this.date = null; 2769 else { 2770 if (this.date == null) 2771 this.date = new DateTimeType(); 2772 this.date.setValue(value); 2773 } 2774 return this; 2775 } 2776 2777 /** 2778 * @return {@link #publisher} (The name of the organization or individual that published the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2779 */ 2780 public StringType getPublisherElement() { 2781 if (this.publisher == null) 2782 if (Configuration.errorOnAutoCreate()) 2783 throw new Error("Attempt to auto-create ConceptMap.publisher"); 2784 else if (Configuration.doAutoCreate()) 2785 this.publisher = new StringType(); // bb 2786 return this.publisher; 2787 } 2788 2789 public boolean hasPublisherElement() { 2790 return this.publisher != null && !this.publisher.isEmpty(); 2791 } 2792 2793 public boolean hasPublisher() { 2794 return this.publisher != null && !this.publisher.isEmpty(); 2795 } 2796 2797 /** 2798 * @param value {@link #publisher} (The name of the organization or individual that published the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2799 */ 2800 public ConceptMap setPublisherElement(StringType value) { 2801 this.publisher = value; 2802 return this; 2803 } 2804 2805 /** 2806 * @return The name of the organization or individual that published the concept map. 2807 */ 2808 public String getPublisher() { 2809 return this.publisher == null ? null : this.publisher.getValue(); 2810 } 2811 2812 /** 2813 * @param value The name of the organization or individual that published the concept map. 2814 */ 2815 public ConceptMap setPublisher(String value) { 2816 if (Utilities.noString(value)) 2817 this.publisher = null; 2818 else { 2819 if (this.publisher == null) 2820 this.publisher = new StringType(); 2821 this.publisher.setValue(value); 2822 } 2823 return this; 2824 } 2825 2826 /** 2827 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 2828 */ 2829 public List<ContactDetail> getContact() { 2830 if (this.contact == null) 2831 this.contact = new ArrayList<ContactDetail>(); 2832 return this.contact; 2833 } 2834 2835 /** 2836 * @return Returns a reference to <code>this</code> for easy method chaining 2837 */ 2838 public ConceptMap setContact(List<ContactDetail> theContact) { 2839 this.contact = theContact; 2840 return this; 2841 } 2842 2843 public boolean hasContact() { 2844 if (this.contact == null) 2845 return false; 2846 for (ContactDetail item : this.contact) 2847 if (!item.isEmpty()) 2848 return true; 2849 return false; 2850 } 2851 2852 public ContactDetail addContact() { //3 2853 ContactDetail t = new ContactDetail(); 2854 if (this.contact == null) 2855 this.contact = new ArrayList<ContactDetail>(); 2856 this.contact.add(t); 2857 return t; 2858 } 2859 2860 public ConceptMap addContact(ContactDetail t) { //3 2861 if (t == null) 2862 return this; 2863 if (this.contact == null) 2864 this.contact = new ArrayList<ContactDetail>(); 2865 this.contact.add(t); 2866 return this; 2867 } 2868 2869 /** 2870 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 2871 */ 2872 public ContactDetail getContactFirstRep() { 2873 if (getContact().isEmpty()) { 2874 addContact(); 2875 } 2876 return getContact().get(0); 2877 } 2878 2879 /** 2880 * @return {@link #description} (A free text natural language description of the concept map from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2881 */ 2882 public MarkdownType getDescriptionElement() { 2883 if (this.description == null) 2884 if (Configuration.errorOnAutoCreate()) 2885 throw new Error("Attempt to auto-create ConceptMap.description"); 2886 else if (Configuration.doAutoCreate()) 2887 this.description = new MarkdownType(); // bb 2888 return this.description; 2889 } 2890 2891 public boolean hasDescriptionElement() { 2892 return this.description != null && !this.description.isEmpty(); 2893 } 2894 2895 public boolean hasDescription() { 2896 return this.description != null && !this.description.isEmpty(); 2897 } 2898 2899 /** 2900 * @param value {@link #description} (A free text natural language description of the concept map from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2901 */ 2902 public ConceptMap setDescriptionElement(MarkdownType value) { 2903 this.description = value; 2904 return this; 2905 } 2906 2907 /** 2908 * @return A free text natural language description of the concept map from a consumer's perspective. 2909 */ 2910 public String getDescription() { 2911 return this.description == null ? null : this.description.getValue(); 2912 } 2913 2914 /** 2915 * @param value A free text natural language description of the concept map from a consumer's perspective. 2916 */ 2917 public ConceptMap setDescription(String value) { 2918 if (value == null) 2919 this.description = null; 2920 else { 2921 if (this.description == null) 2922 this.description = new MarkdownType(); 2923 this.description.setValue(value); 2924 } 2925 return this; 2926 } 2927 2928 /** 2929 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate concept map instances.) 2930 */ 2931 public List<UsageContext> getUseContext() { 2932 if (this.useContext == null) 2933 this.useContext = new ArrayList<UsageContext>(); 2934 return this.useContext; 2935 } 2936 2937 /** 2938 * @return Returns a reference to <code>this</code> for easy method chaining 2939 */ 2940 public ConceptMap setUseContext(List<UsageContext> theUseContext) { 2941 this.useContext = theUseContext; 2942 return this; 2943 } 2944 2945 public boolean hasUseContext() { 2946 if (this.useContext == null) 2947 return false; 2948 for (UsageContext item : this.useContext) 2949 if (!item.isEmpty()) 2950 return true; 2951 return false; 2952 } 2953 2954 public UsageContext addUseContext() { //3 2955 UsageContext t = new UsageContext(); 2956 if (this.useContext == null) 2957 this.useContext = new ArrayList<UsageContext>(); 2958 this.useContext.add(t); 2959 return t; 2960 } 2961 2962 public ConceptMap addUseContext(UsageContext t) { //3 2963 if (t == null) 2964 return this; 2965 if (this.useContext == null) 2966 this.useContext = new ArrayList<UsageContext>(); 2967 this.useContext.add(t); 2968 return this; 2969 } 2970 2971 /** 2972 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 2973 */ 2974 public UsageContext getUseContextFirstRep() { 2975 if (getUseContext().isEmpty()) { 2976 addUseContext(); 2977 } 2978 return getUseContext().get(0); 2979 } 2980 2981 /** 2982 * @return {@link #jurisdiction} (A legal or geographic region in which the concept map is intended to be used.) 2983 */ 2984 public List<CodeableConcept> getJurisdiction() { 2985 if (this.jurisdiction == null) 2986 this.jurisdiction = new ArrayList<CodeableConcept>(); 2987 return this.jurisdiction; 2988 } 2989 2990 /** 2991 * @return Returns a reference to <code>this</code> for easy method chaining 2992 */ 2993 public ConceptMap setJurisdiction(List<CodeableConcept> theJurisdiction) { 2994 this.jurisdiction = theJurisdiction; 2995 return this; 2996 } 2997 2998 public boolean hasJurisdiction() { 2999 if (this.jurisdiction == null) 3000 return false; 3001 for (CodeableConcept item : this.jurisdiction) 3002 if (!item.isEmpty()) 3003 return true; 3004 return false; 3005 } 3006 3007 public CodeableConcept addJurisdiction() { //3 3008 CodeableConcept t = new CodeableConcept(); 3009 if (this.jurisdiction == null) 3010 this.jurisdiction = new ArrayList<CodeableConcept>(); 3011 this.jurisdiction.add(t); 3012 return t; 3013 } 3014 3015 public ConceptMap addJurisdiction(CodeableConcept t) { //3 3016 if (t == null) 3017 return this; 3018 if (this.jurisdiction == null) 3019 this.jurisdiction = new ArrayList<CodeableConcept>(); 3020 this.jurisdiction.add(t); 3021 return this; 3022 } 3023 3024 /** 3025 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 3026 */ 3027 public CodeableConcept getJurisdictionFirstRep() { 3028 if (getJurisdiction().isEmpty()) { 3029 addJurisdiction(); 3030 } 3031 return getJurisdiction().get(0); 3032 } 3033 3034 /** 3035 * @return {@link #purpose} (Explanation of why this concept map is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 3036 */ 3037 public MarkdownType getPurposeElement() { 3038 if (this.purpose == null) 3039 if (Configuration.errorOnAutoCreate()) 3040 throw new Error("Attempt to auto-create ConceptMap.purpose"); 3041 else if (Configuration.doAutoCreate()) 3042 this.purpose = new MarkdownType(); // bb 3043 return this.purpose; 3044 } 3045 3046 public boolean hasPurposeElement() { 3047 return this.purpose != null && !this.purpose.isEmpty(); 3048 } 3049 3050 public boolean hasPurpose() { 3051 return this.purpose != null && !this.purpose.isEmpty(); 3052 } 3053 3054 /** 3055 * @param value {@link #purpose} (Explanation of why this concept map is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 3056 */ 3057 public ConceptMap setPurposeElement(MarkdownType value) { 3058 this.purpose = value; 3059 return this; 3060 } 3061 3062 /** 3063 * @return Explanation of why this concept map is needed and why it has been designed as it has. 3064 */ 3065 public String getPurpose() { 3066 return this.purpose == null ? null : this.purpose.getValue(); 3067 } 3068 3069 /** 3070 * @param value Explanation of why this concept map is needed and why it has been designed as it has. 3071 */ 3072 public ConceptMap setPurpose(String value) { 3073 if (value == null) 3074 this.purpose = null; 3075 else { 3076 if (this.purpose == null) 3077 this.purpose = new MarkdownType(); 3078 this.purpose.setValue(value); 3079 } 3080 return this; 3081 } 3082 3083 /** 3084 * @return {@link #copyright} (A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 3085 */ 3086 public MarkdownType getCopyrightElement() { 3087 if (this.copyright == null) 3088 if (Configuration.errorOnAutoCreate()) 3089 throw new Error("Attempt to auto-create ConceptMap.copyright"); 3090 else if (Configuration.doAutoCreate()) 3091 this.copyright = new MarkdownType(); // bb 3092 return this.copyright; 3093 } 3094 3095 public boolean hasCopyrightElement() { 3096 return this.copyright != null && !this.copyright.isEmpty(); 3097 } 3098 3099 public boolean hasCopyright() { 3100 return this.copyright != null && !this.copyright.isEmpty(); 3101 } 3102 3103 /** 3104 * @param value {@link #copyright} (A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 3105 */ 3106 public ConceptMap setCopyrightElement(MarkdownType value) { 3107 this.copyright = value; 3108 return this; 3109 } 3110 3111 /** 3112 * @return A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map. 3113 */ 3114 public String getCopyright() { 3115 return this.copyright == null ? null : this.copyright.getValue(); 3116 } 3117 3118 /** 3119 * @param value A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map. 3120 */ 3121 public ConceptMap setCopyright(String value) { 3122 if (value == null) 3123 this.copyright = null; 3124 else { 3125 if (this.copyright == null) 3126 this.copyright = new MarkdownType(); 3127 this.copyright.setValue(value); 3128 } 3129 return this; 3130 } 3131 3132 /** 3133 * @return {@link #source} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.) 3134 */ 3135 public Type getSource() { 3136 return this.source; 3137 } 3138 3139 /** 3140 * @return {@link #source} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.) 3141 */ 3142 public UriType getSourceUriType() throws FHIRException { 3143 if (this.source == null) 3144 this.source = new UriType(); 3145 if (!(this.source instanceof UriType)) 3146 throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.source.getClass().getName()+" was encountered"); 3147 return (UriType) this.source; 3148 } 3149 3150 public boolean hasSourceUriType() { 3151 return this != null && this.source instanceof UriType; 3152 } 3153 3154 /** 3155 * @return {@link #source} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.) 3156 */ 3157 public CanonicalType getSourceCanonicalType() throws FHIRException { 3158 if (this.source == null) 3159 this.source = new CanonicalType(); 3160 if (!(this.source instanceof CanonicalType)) 3161 throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.source.getClass().getName()+" was encountered"); 3162 return (CanonicalType) this.source; 3163 } 3164 3165 public boolean hasSourceCanonicalType() { 3166 return this != null && this.source instanceof CanonicalType; 3167 } 3168 3169 public boolean hasSource() { 3170 return this.source != null && !this.source.isEmpty(); 3171 } 3172 3173 /** 3174 * @param value {@link #source} (Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.) 3175 */ 3176 public ConceptMap setSource(Type value) { 3177 if (value != null && !(value instanceof UriType || value instanceof CanonicalType)) 3178 throw new Error("Not the right type for ConceptMap.source[x]: "+value.fhirType()); 3179 this.source = value; 3180 return this; 3181 } 3182 3183 /** 3184 * @return {@link #target} (The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) 3185 */ 3186 public Type getTarget() { 3187 return this.target; 3188 } 3189 3190 /** 3191 * @return {@link #target} (The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) 3192 */ 3193 public UriType getTargetUriType() throws FHIRException { 3194 if (this.target == null) 3195 this.target = new UriType(); 3196 if (!(this.target instanceof UriType)) 3197 throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.target.getClass().getName()+" was encountered"); 3198 return (UriType) this.target; 3199 } 3200 3201 public boolean hasTargetUriType() { 3202 return this != null && this.target instanceof UriType; 3203 } 3204 3205 /** 3206 * @return {@link #target} (The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) 3207 */ 3208 public CanonicalType getTargetCanonicalType() throws FHIRException { 3209 if (this.target == null) 3210 this.target = new CanonicalType(); 3211 if (!(this.target instanceof CanonicalType)) 3212 throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.target.getClass().getName()+" was encountered"); 3213 return (CanonicalType) this.target; 3214 } 3215 3216 public boolean hasTargetCanonicalType() { 3217 return this != null && this.target instanceof CanonicalType; 3218 } 3219 3220 public boolean hasTarget() { 3221 return this.target != null && !this.target.isEmpty(); 3222 } 3223 3224 /** 3225 * @param value {@link #target} (The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) 3226 */ 3227 public ConceptMap setTarget(Type value) { 3228 if (value != null && !(value instanceof UriType || value instanceof CanonicalType)) 3229 throw new Error("Not the right type for ConceptMap.target[x]: "+value.fhirType()); 3230 this.target = value; 3231 return this; 3232 } 3233 3234 /** 3235 * @return {@link #group} (A group of mappings that all have the same source and target system.) 3236 */ 3237 public List<ConceptMapGroupComponent> getGroup() { 3238 if (this.group == null) 3239 this.group = new ArrayList<ConceptMapGroupComponent>(); 3240 return this.group; 3241 } 3242 3243 /** 3244 * @return Returns a reference to <code>this</code> for easy method chaining 3245 */ 3246 public ConceptMap setGroup(List<ConceptMapGroupComponent> theGroup) { 3247 this.group = theGroup; 3248 return this; 3249 } 3250 3251 public boolean hasGroup() { 3252 if (this.group == null) 3253 return false; 3254 for (ConceptMapGroupComponent item : this.group) 3255 if (!item.isEmpty()) 3256 return true; 3257 return false; 3258 } 3259 3260 public ConceptMapGroupComponent addGroup() { //3 3261 ConceptMapGroupComponent t = new ConceptMapGroupComponent(); 3262 if (this.group == null) 3263 this.group = new ArrayList<ConceptMapGroupComponent>(); 3264 this.group.add(t); 3265 return t; 3266 } 3267 3268 public ConceptMap addGroup(ConceptMapGroupComponent t) { //3 3269 if (t == null) 3270 return this; 3271 if (this.group == null) 3272 this.group = new ArrayList<ConceptMapGroupComponent>(); 3273 this.group.add(t); 3274 return this; 3275 } 3276 3277 /** 3278 * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist 3279 */ 3280 public ConceptMapGroupComponent getGroupFirstRep() { 3281 if (getGroup().isEmpty()) { 3282 addGroup(); 3283 } 3284 return getGroup().get(0); 3285 } 3286 3287 protected void listChildren(List<Property> children) { 3288 super.listChildren(children); 3289 children.add(new Property("url", "uri", "An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.", 0, 1, url)); 3290 children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, 1, identifier)); 3291 children.add(new Property("version", "string", "The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version)); 3292 children.add(new Property("name", "string", "A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 3293 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the concept map.", 0, 1, title)); 3294 children.add(new Property("status", "code", "The status of this concept map. Enables tracking the life-cycle of the content.", 0, 1, status)); 3295 children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental)); 3296 children.add(new Property("date", "dateTime", "The date (and optionally time) when the concept map was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.", 0, 1, date)); 3297 children.add(new Property("publisher", "string", "The name of the organization or individual that published the concept map.", 0, 1, publisher)); 3298 children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact)); 3299 children.add(new Property("description", "markdown", "A free text natural language description of the concept map from a consumer's perspective.", 0, 1, description)); 3300 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate concept map instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 3301 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the concept map is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 3302 children.add(new Property("purpose", "markdown", "Explanation of why this concept map is needed and why it has been designed as it has.", 0, 1, purpose)); 3303 children.add(new Property("copyright", "markdown", "A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.", 0, 1, copyright)); 3304 children.add(new Property("source[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.", 0, 1, source)); 3305 children.add(new Property("target[x]", "uri|canonical(ValueSet)", "The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.", 0, 1, target)); 3306 children.add(new Property("group", "", "A group of mappings that all have the same source and target system.", 0, java.lang.Integer.MAX_VALUE, group)); 3307 } 3308 3309 @Override 3310 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3311 switch (_hash) { 3312 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.", 0, 1, url); 3313 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, 1, identifier); 3314 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version); 3315 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 3316 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the concept map.", 0, 1, title); 3317 case -892481550: /*status*/ return new Property("status", "code", "The status of this concept map. Enables tracking the life-cycle of the content.", 0, 1, status); 3318 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental); 3319 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the concept map was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.", 0, 1, date); 3320 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the concept map.", 0, 1, publisher); 3321 case 951526432: /*contact*/ return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact); 3322 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the concept map from a consumer's perspective.", 0, 1, description); 3323 case -669707736: /*useContext*/ return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate concept map instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 3324 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the concept map is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 3325 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this concept map is needed and why it has been designed as it has.", 0, 1, purpose); 3326 case 1522889671: /*copyright*/ return new Property("copyright", "markdown", "A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.", 0, 1, copyright); 3327 case -1698413947: /*source[x]*/ return new Property("source[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.", 0, 1, source); 3328 case -896505829: /*source*/ return new Property("source[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.", 0, 1, source); 3329 case -1698419887: /*sourceUri*/ return new Property("source[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.", 0, 1, source); 3330 case 1509247769: /*sourceCanonical*/ return new Property("source[x]", "uri|canonical(ValueSet)", "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.", 0, 1, source); 3331 case -815579825: /*target[x]*/ return new Property("target[x]", "uri|canonical(ValueSet)", "The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.", 0, 1, target); 3332 case -880905839: /*target*/ return new Property("target[x]", "uri|canonical(ValueSet)", "The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.", 0, 1, target); 3333 case -815585765: /*targetUri*/ return new Property("target[x]", "uri|canonical(ValueSet)", "The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.", 0, 1, target); 3334 case -1281653149: /*targetCanonical*/ return new Property("target[x]", "uri|canonical(ValueSet)", "The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.", 0, 1, target); 3335 case 98629247: /*group*/ return new Property("group", "", "A group of mappings that all have the same source and target system.", 0, java.lang.Integer.MAX_VALUE, group); 3336 default: return super.getNamedProperty(_hash, _name, _checkValid); 3337 } 3338 3339 } 3340 3341 @Override 3342 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3343 switch (hash) { 3344 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 3345 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier 3346 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 3347 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 3348 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 3349 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 3350 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 3351 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 3352 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 3353 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 3354 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 3355 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 3356 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 3357 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 3358 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 3359 case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // Type 3360 case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // Type 3361 case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // ConceptMapGroupComponent 3362 default: return super.getProperty(hash, name, checkValid); 3363 } 3364 3365 } 3366 3367 @Override 3368 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3369 switch (hash) { 3370 case 116079: // url 3371 this.url = castToUri(value); // UriType 3372 return value; 3373 case -1618432855: // identifier 3374 this.identifier = castToIdentifier(value); // Identifier 3375 return value; 3376 case 351608024: // version 3377 this.version = castToString(value); // StringType 3378 return value; 3379 case 3373707: // name 3380 this.name = castToString(value); // StringType 3381 return value; 3382 case 110371416: // title 3383 this.title = castToString(value); // StringType 3384 return value; 3385 case -892481550: // status 3386 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 3387 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3388 return value; 3389 case -404562712: // experimental 3390 this.experimental = castToBoolean(value); // BooleanType 3391 return value; 3392 case 3076014: // date 3393 this.date = castToDateTime(value); // DateTimeType 3394 return value; 3395 case 1447404028: // publisher 3396 this.publisher = castToString(value); // StringType 3397 return value; 3398 case 951526432: // contact 3399 this.getContact().add(castToContactDetail(value)); // ContactDetail 3400 return value; 3401 case -1724546052: // description 3402 this.description = castToMarkdown(value); // MarkdownType 3403 return value; 3404 case -669707736: // useContext 3405 this.getUseContext().add(castToUsageContext(value)); // UsageContext 3406 return value; 3407 case -507075711: // jurisdiction 3408 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 3409 return value; 3410 case -220463842: // purpose 3411 this.purpose = castToMarkdown(value); // MarkdownType 3412 return value; 3413 case 1522889671: // copyright 3414 this.copyright = castToMarkdown(value); // MarkdownType 3415 return value; 3416 case -896505829: // source 3417 this.source = castToType(value); // Type 3418 return value; 3419 case -880905839: // target 3420 this.target = castToType(value); // Type 3421 return value; 3422 case 98629247: // group 3423 this.getGroup().add((ConceptMapGroupComponent) value); // ConceptMapGroupComponent 3424 return value; 3425 default: return super.setProperty(hash, name, value); 3426 } 3427 3428 } 3429 3430 @Override 3431 public Base setProperty(String name, Base value) throws FHIRException { 3432 if (name.equals("url")) { 3433 this.url = castToUri(value); // UriType 3434 } else if (name.equals("identifier")) { 3435 this.identifier = castToIdentifier(value); // Identifier 3436 } else if (name.equals("version")) { 3437 this.version = castToString(value); // StringType 3438 } else if (name.equals("name")) { 3439 this.name = castToString(value); // StringType 3440 } else if (name.equals("title")) { 3441 this.title = castToString(value); // StringType 3442 } else if (name.equals("status")) { 3443 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 3444 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3445 } else if (name.equals("experimental")) { 3446 this.experimental = castToBoolean(value); // BooleanType 3447 } else if (name.equals("date")) { 3448 this.date = castToDateTime(value); // DateTimeType 3449 } else if (name.equals("publisher")) { 3450 this.publisher = castToString(value); // StringType 3451 } else if (name.equals("contact")) { 3452 this.getContact().add(castToContactDetail(value)); 3453 } else if (name.equals("description")) { 3454 this.description = castToMarkdown(value); // MarkdownType 3455 } else if (name.equals("useContext")) { 3456 this.getUseContext().add(castToUsageContext(value)); 3457 } else if (name.equals("jurisdiction")) { 3458 this.getJurisdiction().add(castToCodeableConcept(value)); 3459 } else if (name.equals("purpose")) { 3460 this.purpose = castToMarkdown(value); // MarkdownType 3461 } else if (name.equals("copyright")) { 3462 this.copyright = castToMarkdown(value); // MarkdownType 3463 } else if (name.equals("source[x]")) { 3464 this.source = castToType(value); // Type 3465 } else if (name.equals("target[x]")) { 3466 this.target = castToType(value); // Type 3467 } else if (name.equals("group")) { 3468 this.getGroup().add((ConceptMapGroupComponent) value); 3469 } else 3470 return super.setProperty(name, value); 3471 return value; 3472 } 3473 3474 @Override 3475 public Base makeProperty(int hash, String name) throws FHIRException { 3476 switch (hash) { 3477 case 116079: return getUrlElement(); 3478 case -1618432855: return getIdentifier(); 3479 case 351608024: return getVersionElement(); 3480 case 3373707: return getNameElement(); 3481 case 110371416: return getTitleElement(); 3482 case -892481550: return getStatusElement(); 3483 case -404562712: return getExperimentalElement(); 3484 case 3076014: return getDateElement(); 3485 case 1447404028: return getPublisherElement(); 3486 case 951526432: return addContact(); 3487 case -1724546052: return getDescriptionElement(); 3488 case -669707736: return addUseContext(); 3489 case -507075711: return addJurisdiction(); 3490 case -220463842: return getPurposeElement(); 3491 case 1522889671: return getCopyrightElement(); 3492 case -1698413947: return getSource(); 3493 case -896505829: return getSource(); 3494 case -815579825: return getTarget(); 3495 case -880905839: return getTarget(); 3496 case 98629247: return addGroup(); 3497 default: return super.makeProperty(hash, name); 3498 } 3499 3500 } 3501 3502 @Override 3503 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3504 switch (hash) { 3505 case 116079: /*url*/ return new String[] {"uri"}; 3506 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3507 case 351608024: /*version*/ return new String[] {"string"}; 3508 case 3373707: /*name*/ return new String[] {"string"}; 3509 case 110371416: /*title*/ return new String[] {"string"}; 3510 case -892481550: /*status*/ return new String[] {"code"}; 3511 case -404562712: /*experimental*/ return new String[] {"boolean"}; 3512 case 3076014: /*date*/ return new String[] {"dateTime"}; 3513 case 1447404028: /*publisher*/ return new String[] {"string"}; 3514 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 3515 case -1724546052: /*description*/ return new String[] {"markdown"}; 3516 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 3517 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 3518 case -220463842: /*purpose*/ return new String[] {"markdown"}; 3519 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 3520 case -896505829: /*source*/ return new String[] {"uri", "canonical"}; 3521 case -880905839: /*target*/ return new String[] {"uri", "canonical"}; 3522 case 98629247: /*group*/ return new String[] {}; 3523 default: return super.getTypesForProperty(hash, name); 3524 } 3525 3526 } 3527 3528 @Override 3529 public Base addChild(String name) throws FHIRException { 3530 if (name.equals("url")) { 3531 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.url"); 3532 } 3533 else if (name.equals("identifier")) { 3534 this.identifier = new Identifier(); 3535 return this.identifier; 3536 } 3537 else if (name.equals("version")) { 3538 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.version"); 3539 } 3540 else if (name.equals("name")) { 3541 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.name"); 3542 } 3543 else if (name.equals("title")) { 3544 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.title"); 3545 } 3546 else if (name.equals("status")) { 3547 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.status"); 3548 } 3549 else if (name.equals("experimental")) { 3550 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.experimental"); 3551 } 3552 else if (name.equals("date")) { 3553 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.date"); 3554 } 3555 else if (name.equals("publisher")) { 3556 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.publisher"); 3557 } 3558 else if (name.equals("contact")) { 3559 return addContact(); 3560 } 3561 else if (name.equals("description")) { 3562 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.description"); 3563 } 3564 else if (name.equals("useContext")) { 3565 return addUseContext(); 3566 } 3567 else if (name.equals("jurisdiction")) { 3568 return addJurisdiction(); 3569 } 3570 else if (name.equals("purpose")) { 3571 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.purpose"); 3572 } 3573 else if (name.equals("copyright")) { 3574 throw new FHIRException("Cannot call addChild on a primitive type ConceptMap.copyright"); 3575 } 3576 else if (name.equals("sourceUri")) { 3577 this.source = new UriType(); 3578 return this.source; 3579 } 3580 else if (name.equals("sourceCanonical")) { 3581 this.source = new CanonicalType(); 3582 return this.source; 3583 } 3584 else if (name.equals("targetUri")) { 3585 this.target = new UriType(); 3586 return this.target; 3587 } 3588 else if (name.equals("targetCanonical")) { 3589 this.target = new CanonicalType(); 3590 return this.target; 3591 } 3592 else if (name.equals("group")) { 3593 return addGroup(); 3594 } 3595 else 3596 return super.addChild(name); 3597 } 3598 3599 public String fhirType() { 3600 return "ConceptMap"; 3601 3602 } 3603 3604 public ConceptMap copy() { 3605 ConceptMap dst = new ConceptMap(); 3606 copyValues(dst); 3607 dst.url = url == null ? null : url.copy(); 3608 dst.identifier = identifier == null ? null : identifier.copy(); 3609 dst.version = version == null ? null : version.copy(); 3610 dst.name = name == null ? null : name.copy(); 3611 dst.title = title == null ? null : title.copy(); 3612 dst.status = status == null ? null : status.copy(); 3613 dst.experimental = experimental == null ? null : experimental.copy(); 3614 dst.date = date == null ? null : date.copy(); 3615 dst.publisher = publisher == null ? null : publisher.copy(); 3616 if (contact != null) { 3617 dst.contact = new ArrayList<ContactDetail>(); 3618 for (ContactDetail i : contact) 3619 dst.contact.add(i.copy()); 3620 }; 3621 dst.description = description == null ? null : description.copy(); 3622 if (useContext != null) { 3623 dst.useContext = new ArrayList<UsageContext>(); 3624 for (UsageContext i : useContext) 3625 dst.useContext.add(i.copy()); 3626 }; 3627 if (jurisdiction != null) { 3628 dst.jurisdiction = new ArrayList<CodeableConcept>(); 3629 for (CodeableConcept i : jurisdiction) 3630 dst.jurisdiction.add(i.copy()); 3631 }; 3632 dst.purpose = purpose == null ? null : purpose.copy(); 3633 dst.copyright = copyright == null ? null : copyright.copy(); 3634 dst.source = source == null ? null : source.copy(); 3635 dst.target = target == null ? null : target.copy(); 3636 if (group != null) { 3637 dst.group = new ArrayList<ConceptMapGroupComponent>(); 3638 for (ConceptMapGroupComponent i : group) 3639 dst.group.add(i.copy()); 3640 }; 3641 return dst; 3642 } 3643 3644 protected ConceptMap typedCopy() { 3645 return copy(); 3646 } 3647 3648 @Override 3649 public boolean equalsDeep(Base other_) { 3650 if (!super.equalsDeep(other_)) 3651 return false; 3652 if (!(other_ instanceof ConceptMap)) 3653 return false; 3654 ConceptMap o = (ConceptMap) other_; 3655 return compareDeep(identifier, o.identifier, true) && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true) 3656 && compareDeep(source, o.source, true) && compareDeep(target, o.target, true) && compareDeep(group, o.group, true) 3657 ; 3658 } 3659 3660 @Override 3661 public boolean equalsShallow(Base other_) { 3662 if (!super.equalsShallow(other_)) 3663 return false; 3664 if (!(other_ instanceof ConceptMap)) 3665 return false; 3666 ConceptMap o = (ConceptMap) other_; 3667 return compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true); 3668 } 3669 3670 public boolean isEmpty() { 3671 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, purpose, copyright 3672 , source, target, group); 3673 } 3674 3675 @Override 3676 public ResourceType getResourceType() { 3677 return ResourceType.ConceptMap; 3678 } 3679 3680 /** 3681 * Search parameter: <b>date</b> 3682 * <p> 3683 * Description: <b>The concept map publication date</b><br> 3684 * Type: <b>date</b><br> 3685 * Path: <b>ConceptMap.date</b><br> 3686 * </p> 3687 */ 3688 @SearchParamDefinition(name="date", path="ConceptMap.date", description="The concept map publication date", type="date" ) 3689 public static final String SP_DATE = "date"; 3690 /** 3691 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3692 * <p> 3693 * Description: <b>The concept map publication date</b><br> 3694 * Type: <b>date</b><br> 3695 * Path: <b>ConceptMap.date</b><br> 3696 * </p> 3697 */ 3698 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 3699 3700 /** 3701 * Search parameter: <b>other</b> 3702 * <p> 3703 * Description: <b>canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped</b><br> 3704 * Type: <b>reference</b><br> 3705 * Path: <b>ConceptMap.group.unmapped.url</b><br> 3706 * </p> 3707 */ 3708 @SearchParamDefinition(name="other", path="ConceptMap.group.unmapped.url", description="canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped", type="reference", target={ConceptMap.class } ) 3709 public static final String SP_OTHER = "other"; 3710 /** 3711 * <b>Fluent Client</b> search parameter constant for <b>other</b> 3712 * <p> 3713 * Description: <b>canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped</b><br> 3714 * Type: <b>reference</b><br> 3715 * Path: <b>ConceptMap.group.unmapped.url</b><br> 3716 * </p> 3717 */ 3718 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam OTHER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_OTHER); 3719 3720/** 3721 * Constant for fluent queries to be used to add include statements. Specifies 3722 * the path value of "<b>ConceptMap:other</b>". 3723 */ 3724 public static final ca.uhn.fhir.model.api.Include INCLUDE_OTHER = new ca.uhn.fhir.model.api.Include("ConceptMap:other").toLocked(); 3725 3726 /** 3727 * Search parameter: <b>context-type-value</b> 3728 * <p> 3729 * Description: <b>A use context type and value assigned to the concept map</b><br> 3730 * Type: <b>composite</b><br> 3731 * Path: <b></b><br> 3732 * </p> 3733 */ 3734 @SearchParamDefinition(name="context-type-value", path="ConceptMap.useContext", description="A use context type and value assigned to the concept map", type="composite", compositeOf={"context-type", "context"} ) 3735 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 3736 /** 3737 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 3738 * <p> 3739 * Description: <b>A use context type and value assigned to the concept map</b><br> 3740 * Type: <b>composite</b><br> 3741 * Path: <b></b><br> 3742 * </p> 3743 */ 3744 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE); 3745 3746 /** 3747 * Search parameter: <b>target-system</b> 3748 * <p> 3749 * Description: <b>Target system that the concepts are to be mapped to</b><br> 3750 * Type: <b>uri</b><br> 3751 * Path: <b>ConceptMap.group.target</b><br> 3752 * </p> 3753 */ 3754 @SearchParamDefinition(name="target-system", path="ConceptMap.group.target", description="Target system that the concepts are to be mapped to", type="uri" ) 3755 public static final String SP_TARGET_SYSTEM = "target-system"; 3756 /** 3757 * <b>Fluent Client</b> search parameter constant for <b>target-system</b> 3758 * <p> 3759 * Description: <b>Target system that the concepts are to be mapped to</b><br> 3760 * Type: <b>uri</b><br> 3761 * Path: <b>ConceptMap.group.target</b><br> 3762 * </p> 3763 */ 3764 public static final ca.uhn.fhir.rest.gclient.UriClientParam TARGET_SYSTEM = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_TARGET_SYSTEM); 3765 3766 /** 3767 * Search parameter: <b>dependson</b> 3768 * <p> 3769 * Description: <b>Reference to property mapping depends on</b><br> 3770 * Type: <b>uri</b><br> 3771 * Path: <b>ConceptMap.group.element.target.dependsOn.property</b><br> 3772 * </p> 3773 */ 3774 @SearchParamDefinition(name="dependson", path="ConceptMap.group.element.target.dependsOn.property", description="Reference to property mapping depends on", type="uri" ) 3775 public static final String SP_DEPENDSON = "dependson"; 3776 /** 3777 * <b>Fluent Client</b> search parameter constant for <b>dependson</b> 3778 * <p> 3779 * Description: <b>Reference to property mapping depends on</b><br> 3780 * Type: <b>uri</b><br> 3781 * Path: <b>ConceptMap.group.element.target.dependsOn.property</b><br> 3782 * </p> 3783 */ 3784 public static final ca.uhn.fhir.rest.gclient.UriClientParam DEPENDSON = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_DEPENDSON); 3785 3786 /** 3787 * Search parameter: <b>jurisdiction</b> 3788 * <p> 3789 * Description: <b>Intended jurisdiction for the concept map</b><br> 3790 * Type: <b>token</b><br> 3791 * Path: <b>ConceptMap.jurisdiction</b><br> 3792 * </p> 3793 */ 3794 @SearchParamDefinition(name="jurisdiction", path="ConceptMap.jurisdiction", description="Intended jurisdiction for the concept map", type="token" ) 3795 public static final String SP_JURISDICTION = "jurisdiction"; 3796 /** 3797 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 3798 * <p> 3799 * Description: <b>Intended jurisdiction for the concept map</b><br> 3800 * Type: <b>token</b><br> 3801 * Path: <b>ConceptMap.jurisdiction</b><br> 3802 * </p> 3803 */ 3804 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 3805 3806 /** 3807 * Search parameter: <b>description</b> 3808 * <p> 3809 * Description: <b>The description of the concept map</b><br> 3810 * Type: <b>string</b><br> 3811 * Path: <b>ConceptMap.description</b><br> 3812 * </p> 3813 */ 3814 @SearchParamDefinition(name="description", path="ConceptMap.description", description="The description of the concept map", type="string" ) 3815 public static final String SP_DESCRIPTION = "description"; 3816 /** 3817 * <b>Fluent Client</b> search parameter constant for <b>description</b> 3818 * <p> 3819 * Description: <b>The description of the concept map</b><br> 3820 * Type: <b>string</b><br> 3821 * Path: <b>ConceptMap.description</b><br> 3822 * </p> 3823 */ 3824 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 3825 3826 /** 3827 * Search parameter: <b>context-type</b> 3828 * <p> 3829 * Description: <b>A type of use context assigned to the concept map</b><br> 3830 * Type: <b>token</b><br> 3831 * Path: <b>ConceptMap.useContext.code</b><br> 3832 * </p> 3833 */ 3834 @SearchParamDefinition(name="context-type", path="ConceptMap.useContext.code", description="A type of use context assigned to the concept map", type="token" ) 3835 public static final String SP_CONTEXT_TYPE = "context-type"; 3836 /** 3837 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 3838 * <p> 3839 * Description: <b>A type of use context assigned to the concept map</b><br> 3840 * Type: <b>token</b><br> 3841 * Path: <b>ConceptMap.useContext.code</b><br> 3842 * </p> 3843 */ 3844 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 3845 3846 /** 3847 * Search parameter: <b>source</b> 3848 * <p> 3849 * Description: <b>The source value set that contains the concepts that are being mapped</b><br> 3850 * Type: <b>reference</b><br> 3851 * Path: <b>ConceptMap.sourceCanonical</b><br> 3852 * </p> 3853 */ 3854 @SearchParamDefinition(name="source", path="(ConceptMap.source as canonical)", description="The source value set that contains the concepts that are being mapped", type="reference", target={ValueSet.class } ) 3855 public static final String SP_SOURCE = "source"; 3856 /** 3857 * <b>Fluent Client</b> search parameter constant for <b>source</b> 3858 * <p> 3859 * Description: <b>The source value set that contains the concepts that are being mapped</b><br> 3860 * Type: <b>reference</b><br> 3861 * Path: <b>ConceptMap.sourceCanonical</b><br> 3862 * </p> 3863 */ 3864 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE); 3865 3866/** 3867 * Constant for fluent queries to be used to add include statements. Specifies 3868 * the path value of "<b>ConceptMap:source</b>". 3869 */ 3870 public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE = new ca.uhn.fhir.model.api.Include("ConceptMap:source").toLocked(); 3871 3872 /** 3873 * Search parameter: <b>title</b> 3874 * <p> 3875 * Description: <b>The human-friendly name of the concept map</b><br> 3876 * Type: <b>string</b><br> 3877 * Path: <b>ConceptMap.title</b><br> 3878 * </p> 3879 */ 3880 @SearchParamDefinition(name="title", path="ConceptMap.title", description="The human-friendly name of the concept map", type="string" ) 3881 public static final String SP_TITLE = "title"; 3882 /** 3883 * <b>Fluent Client</b> search parameter constant for <b>title</b> 3884 * <p> 3885 * Description: <b>The human-friendly name of the concept map</b><br> 3886 * Type: <b>string</b><br> 3887 * Path: <b>ConceptMap.title</b><br> 3888 * </p> 3889 */ 3890 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 3891 3892 /** 3893 * Search parameter: <b>context-quantity</b> 3894 * <p> 3895 * Description: <b>A quantity- or range-valued use context assigned to the concept map</b><br> 3896 * Type: <b>quantity</b><br> 3897 * Path: <b>ConceptMap.useContext.valueQuantity, ConceptMap.useContext.valueRange</b><br> 3898 * </p> 3899 */ 3900 @SearchParamDefinition(name="context-quantity", path="(ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the concept map", type="quantity" ) 3901 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 3902 /** 3903 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 3904 * <p> 3905 * Description: <b>A quantity- or range-valued use context assigned to the concept map</b><br> 3906 * Type: <b>quantity</b><br> 3907 * Path: <b>ConceptMap.useContext.valueQuantity, ConceptMap.useContext.valueRange</b><br> 3908 * </p> 3909 */ 3910 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 3911 3912 /** 3913 * Search parameter: <b>source-uri</b> 3914 * <p> 3915 * Description: <b>The source value set that contains the concepts that are being mapped</b><br> 3916 * Type: <b>reference</b><br> 3917 * Path: <b>ConceptMap.sourceUri</b><br> 3918 * </p> 3919 */ 3920 @SearchParamDefinition(name="source-uri", path="(ConceptMap.source as uri)", description="The source value set that contains the concepts that are being mapped", type="reference", target={ValueSet.class } ) 3921 public static final String SP_SOURCE_URI = "source-uri"; 3922 /** 3923 * <b>Fluent Client</b> search parameter constant for <b>source-uri</b> 3924 * <p> 3925 * Description: <b>The source value set that contains the concepts that are being mapped</b><br> 3926 * Type: <b>reference</b><br> 3927 * Path: <b>ConceptMap.sourceUri</b><br> 3928 * </p> 3929 */ 3930 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE_URI = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE_URI); 3931 3932/** 3933 * Constant for fluent queries to be used to add include statements. Specifies 3934 * the path value of "<b>ConceptMap:source-uri</b>". 3935 */ 3936 public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE_URI = new ca.uhn.fhir.model.api.Include("ConceptMap:source-uri").toLocked(); 3937 3938 /** 3939 * Search parameter: <b>context</b> 3940 * <p> 3941 * Description: <b>A use context assigned to the concept map</b><br> 3942 * Type: <b>token</b><br> 3943 * Path: <b>ConceptMap.useContext.valueCodeableConcept</b><br> 3944 * </p> 3945 */ 3946 @SearchParamDefinition(name="context", path="(ConceptMap.useContext.value as CodeableConcept)", description="A use context assigned to the concept map", type="token" ) 3947 public static final String SP_CONTEXT = "context"; 3948 /** 3949 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3950 * <p> 3951 * Description: <b>A use context assigned to the concept map</b><br> 3952 * Type: <b>token</b><br> 3953 * Path: <b>ConceptMap.useContext.valueCodeableConcept</b><br> 3954 * </p> 3955 */ 3956 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 3957 3958 /** 3959 * Search parameter: <b>context-type-quantity</b> 3960 * <p> 3961 * Description: <b>A use context type and quantity- or range-based value assigned to the concept map</b><br> 3962 * Type: <b>composite</b><br> 3963 * Path: <b></b><br> 3964 * </p> 3965 */ 3966 @SearchParamDefinition(name="context-type-quantity", path="ConceptMap.useContext", description="A use context type and quantity- or range-based value assigned to the concept map", type="composite", compositeOf={"context-type", "context-quantity"} ) 3967 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 3968 /** 3969 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 3970 * <p> 3971 * Description: <b>A use context type and quantity- or range-based value assigned to the concept map</b><br> 3972 * Type: <b>composite</b><br> 3973 * Path: <b></b><br> 3974 * </p> 3975 */ 3976 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY); 3977 3978 /** 3979 * Search parameter: <b>source-system</b> 3980 * <p> 3981 * Description: <b>Source system where concepts to be mapped are defined</b><br> 3982 * Type: <b>uri</b><br> 3983 * Path: <b>ConceptMap.group.source</b><br> 3984 * </p> 3985 */ 3986 @SearchParamDefinition(name="source-system", path="ConceptMap.group.source", description="Source system where concepts to be mapped are defined", type="uri" ) 3987 public static final String SP_SOURCE_SYSTEM = "source-system"; 3988 /** 3989 * <b>Fluent Client</b> search parameter constant for <b>source-system</b> 3990 * <p> 3991 * Description: <b>Source system where concepts to be mapped are defined</b><br> 3992 * Type: <b>uri</b><br> 3993 * Path: <b>ConceptMap.group.source</b><br> 3994 * </p> 3995 */ 3996 public static final ca.uhn.fhir.rest.gclient.UriClientParam SOURCE_SYSTEM = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_SOURCE_SYSTEM); 3997 3998 /** 3999 * Search parameter: <b>target-code</b> 4000 * <p> 4001 * Description: <b>Code that identifies the target element</b><br> 4002 * Type: <b>token</b><br> 4003 * Path: <b>ConceptMap.group.element.target.code</b><br> 4004 * </p> 4005 */ 4006 @SearchParamDefinition(name="target-code", path="ConceptMap.group.element.target.code", description="Code that identifies the target element", type="token" ) 4007 public static final String SP_TARGET_CODE = "target-code"; 4008 /** 4009 * <b>Fluent Client</b> search parameter constant for <b>target-code</b> 4010 * <p> 4011 * Description: <b>Code that identifies the target element</b><br> 4012 * Type: <b>token</b><br> 4013 * Path: <b>ConceptMap.group.element.target.code</b><br> 4014 * </p> 4015 */ 4016 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TARGET_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TARGET_CODE); 4017 4018 /** 4019 * Search parameter: <b>target-uri</b> 4020 * <p> 4021 * Description: <b>The target value set which provides context for the mappings</b><br> 4022 * Type: <b>reference</b><br> 4023 * Path: <b>ConceptMap.targetUri</b><br> 4024 * </p> 4025 */ 4026 @SearchParamDefinition(name="target-uri", path="(ConceptMap.target as uri)", description="The target value set which provides context for the mappings", type="reference", target={ValueSet.class } ) 4027 public static final String SP_TARGET_URI = "target-uri"; 4028 /** 4029 * <b>Fluent Client</b> search parameter constant for <b>target-uri</b> 4030 * <p> 4031 * Description: <b>The target value set which provides context for the mappings</b><br> 4032 * Type: <b>reference</b><br> 4033 * Path: <b>ConceptMap.targetUri</b><br> 4034 * </p> 4035 */ 4036 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam TARGET_URI = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_TARGET_URI); 4037 4038/** 4039 * Constant for fluent queries to be used to add include statements. Specifies 4040 * the path value of "<b>ConceptMap:target-uri</b>". 4041 */ 4042 public static final ca.uhn.fhir.model.api.Include INCLUDE_TARGET_URI = new ca.uhn.fhir.model.api.Include("ConceptMap:target-uri").toLocked(); 4043 4044 /** 4045 * Search parameter: <b>identifier</b> 4046 * <p> 4047 * Description: <b>External identifier for the concept map</b><br> 4048 * Type: <b>token</b><br> 4049 * Path: <b>ConceptMap.identifier</b><br> 4050 * </p> 4051 */ 4052 @SearchParamDefinition(name="identifier", path="ConceptMap.identifier", description="External identifier for the concept map", type="token" ) 4053 public static final String SP_IDENTIFIER = "identifier"; 4054 /** 4055 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 4056 * <p> 4057 * Description: <b>External identifier for the concept map</b><br> 4058 * Type: <b>token</b><br> 4059 * Path: <b>ConceptMap.identifier</b><br> 4060 * </p> 4061 */ 4062 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 4063 4064 /** 4065 * Search parameter: <b>product</b> 4066 * <p> 4067 * Description: <b>Reference to property mapping depends on</b><br> 4068 * Type: <b>uri</b><br> 4069 * Path: <b>ConceptMap.group.element.target.product.property</b><br> 4070 * </p> 4071 */ 4072 @SearchParamDefinition(name="product", path="ConceptMap.group.element.target.product.property", description="Reference to property mapping depends on", type="uri" ) 4073 public static final String SP_PRODUCT = "product"; 4074 /** 4075 * <b>Fluent Client</b> search parameter constant for <b>product</b> 4076 * <p> 4077 * Description: <b>Reference to property mapping depends on</b><br> 4078 * Type: <b>uri</b><br> 4079 * Path: <b>ConceptMap.group.element.target.product.property</b><br> 4080 * </p> 4081 */ 4082 public static final ca.uhn.fhir.rest.gclient.UriClientParam PRODUCT = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_PRODUCT); 4083 4084 /** 4085 * Search parameter: <b>version</b> 4086 * <p> 4087 * Description: <b>The business version of the concept map</b><br> 4088 * Type: <b>token</b><br> 4089 * Path: <b>ConceptMap.version</b><br> 4090 * </p> 4091 */ 4092 @SearchParamDefinition(name="version", path="ConceptMap.version", description="The business version of the concept map", type="token" ) 4093 public static final String SP_VERSION = "version"; 4094 /** 4095 * <b>Fluent Client</b> search parameter constant for <b>version</b> 4096 * <p> 4097 * Description: <b>The business version of the concept map</b><br> 4098 * Type: <b>token</b><br> 4099 * Path: <b>ConceptMap.version</b><br> 4100 * </p> 4101 */ 4102 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 4103 4104 /** 4105 * Search parameter: <b>url</b> 4106 * <p> 4107 * Description: <b>The uri that identifies the concept map</b><br> 4108 * Type: <b>uri</b><br> 4109 * Path: <b>ConceptMap.url</b><br> 4110 * </p> 4111 */ 4112 @SearchParamDefinition(name="url", path="ConceptMap.url", description="The uri that identifies the concept map", type="uri" ) 4113 public static final String SP_URL = "url"; 4114 /** 4115 * <b>Fluent Client</b> search parameter constant for <b>url</b> 4116 * <p> 4117 * Description: <b>The uri that identifies the concept map</b><br> 4118 * Type: <b>uri</b><br> 4119 * Path: <b>ConceptMap.url</b><br> 4120 * </p> 4121 */ 4122 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 4123 4124 /** 4125 * Search parameter: <b>target</b> 4126 * <p> 4127 * Description: <b>The target value set which provides context for the mappings</b><br> 4128 * Type: <b>reference</b><br> 4129 * Path: <b>ConceptMap.targetCanonical</b><br> 4130 * </p> 4131 */ 4132 @SearchParamDefinition(name="target", path="(ConceptMap.target as canonical)", description="The target value set which provides context for the mappings", type="reference", target={ValueSet.class } ) 4133 public static final String SP_TARGET = "target"; 4134 /** 4135 * <b>Fluent Client</b> search parameter constant for <b>target</b> 4136 * <p> 4137 * Description: <b>The target value set which provides context for the mappings</b><br> 4138 * Type: <b>reference</b><br> 4139 * Path: <b>ConceptMap.targetCanonical</b><br> 4140 * </p> 4141 */ 4142 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam TARGET = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_TARGET); 4143 4144/** 4145 * Constant for fluent queries to be used to add include statements. Specifies 4146 * the path value of "<b>ConceptMap:target</b>". 4147 */ 4148 public static final ca.uhn.fhir.model.api.Include INCLUDE_TARGET = new ca.uhn.fhir.model.api.Include("ConceptMap:target").toLocked(); 4149 4150 /** 4151 * Search parameter: <b>source-code</b> 4152 * <p> 4153 * Description: <b>Identifies element being mapped</b><br> 4154 * Type: <b>token</b><br> 4155 * Path: <b>ConceptMap.group.element.code</b><br> 4156 * </p> 4157 */ 4158 @SearchParamDefinition(name="source-code", path="ConceptMap.group.element.code", description="Identifies element being mapped", type="token" ) 4159 public static final String SP_SOURCE_CODE = "source-code"; 4160 /** 4161 * <b>Fluent Client</b> search parameter constant for <b>source-code</b> 4162 * <p> 4163 * Description: <b>Identifies element being mapped</b><br> 4164 * Type: <b>token</b><br> 4165 * Path: <b>ConceptMap.group.element.code</b><br> 4166 * </p> 4167 */ 4168 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SOURCE_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SOURCE_CODE); 4169 4170 /** 4171 * Search parameter: <b>name</b> 4172 * <p> 4173 * Description: <b>Computationally friendly name of the concept map</b><br> 4174 * Type: <b>string</b><br> 4175 * Path: <b>ConceptMap.name</b><br> 4176 * </p> 4177 */ 4178 @SearchParamDefinition(name="name", path="ConceptMap.name", description="Computationally friendly name of the concept map", type="string" ) 4179 public static final String SP_NAME = "name"; 4180 /** 4181 * <b>Fluent Client</b> search parameter constant for <b>name</b> 4182 * <p> 4183 * Description: <b>Computationally friendly name of the concept map</b><br> 4184 * Type: <b>string</b><br> 4185 * Path: <b>ConceptMap.name</b><br> 4186 * </p> 4187 */ 4188 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 4189 4190 /** 4191 * Search parameter: <b>publisher</b> 4192 * <p> 4193 * Description: <b>Name of the publisher of the concept map</b><br> 4194 * Type: <b>string</b><br> 4195 * Path: <b>ConceptMap.publisher</b><br> 4196 * </p> 4197 */ 4198 @SearchParamDefinition(name="publisher", path="ConceptMap.publisher", description="Name of the publisher of the concept map", type="string" ) 4199 public static final String SP_PUBLISHER = "publisher"; 4200 /** 4201 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 4202 * <p> 4203 * Description: <b>Name of the publisher of the concept map</b><br> 4204 * Type: <b>string</b><br> 4205 * Path: <b>ConceptMap.publisher</b><br> 4206 * </p> 4207 */ 4208 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 4209 4210 /** 4211 * Search parameter: <b>status</b> 4212 * <p> 4213 * Description: <b>The current status of the concept map</b><br> 4214 * Type: <b>token</b><br> 4215 * Path: <b>ConceptMap.status</b><br> 4216 * </p> 4217 */ 4218 @SearchParamDefinition(name="status", path="ConceptMap.status", description="The current status of the concept map", type="token" ) 4219 public static final String SP_STATUS = "status"; 4220 /** 4221 * <b>Fluent Client</b> search parameter constant for <b>status</b> 4222 * <p> 4223 * Description: <b>The current status of the concept map</b><br> 4224 * Type: <b>token</b><br> 4225 * Path: <b>ConceptMap.status</b><br> 4226 * </p> 4227 */ 4228 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 4229 4230 4231} 4232