001package org.hl7.fhir.dstu2016may.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030*/
031
032// Generated on Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0
033import java.util.ArrayList;
034import java.util.List;
035
036import org.hl7.fhir.exceptions.FHIRException;
037import org.hl7.fhir.utilities.Utilities;
038
039import ca.uhn.fhir.model.api.annotation.Child;
040import ca.uhn.fhir.model.api.annotation.Description;
041import ca.uhn.fhir.model.api.annotation.ResourceDef;
042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
043/**
044 * This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.
045 */
046@ResourceDef(name="DecisionSupportRule", profile="http://hl7.org/fhir/Profile/DecisionSupportRule")
047public class DecisionSupportRule extends DomainResource {
048
049    /**
050     * The metadata for the decision support rule, including publishing, life-cycle, version, documentation, and supporting evidence.
051     */
052    @Child(name = "moduleMetadata", type = {ModuleMetadata.class}, order=0, min=0, max=1, modifier=false, summary=true)
053    @Description(shortDefinition="Module information for the rule", formalDefinition="The metadata for the decision support rule, including publishing, life-cycle, version, documentation, and supporting evidence." )
054    protected ModuleMetadata moduleMetadata;
055
056    /**
057     * A reference to a Library containing the formal logic used by the rule.
058     */
059    @Child(name = "library", type = {Library.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
060    @Description(shortDefinition="Logic used within the rule", formalDefinition="A reference to a Library containing the formal logic used by the rule." )
061    protected List<Reference> library;
062    /**
063     * The actual objects that are the target of the reference (A reference to a Library containing the formal logic used by the rule.)
064     */
065    protected List<Library> libraryTarget;
066
067
068    /**
069     * The trigger element defines when the rule should be invoked. This information is used by consumers of the rule to determine how to integrate the rule into a specific workflow.
070     */
071    @Child(name = "trigger", type = {TriggerDefinition.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
072    @Description(shortDefinition="\"when\" the rule should be invoked", formalDefinition="The trigger element defines when the rule should be invoked. This information is used by consumers of the rule to determine how to integrate the rule into a specific workflow." )
073    protected List<TriggerDefinition> trigger;
074
075    /**
076     * The condition element describes he "if" portion of the rule that determines whether or not the rule "fires". The condition must be the name of an expression in a referenced library.
077     */
078    @Child(name = "condition", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
079    @Description(shortDefinition="\"if\" some condition is true", formalDefinition="The condition element describes he \"if\" portion of the rule that determines whether or not the rule \"fires\". The condition must be the name of an expression in a referenced library." )
080    protected StringType condition;
081
082    /**
083     * The action element defines the "when" portion of the rule that determines what actions should be performed if the condition evaluates to true.
084     */
085    @Child(name = "action", type = {ActionDefinition.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
086    @Description(shortDefinition="\"then\" perform these actions", formalDefinition="The action element defines the \"when\" portion of the rule that determines what actions should be performed if the condition evaluates to true." )
087    protected List<ActionDefinition> action;
088
089    private static final long serialVersionUID = -810482843L;
090
091  /**
092   * Constructor
093   */
094    public DecisionSupportRule() {
095      super();
096    }
097
098    /**
099     * @return {@link #moduleMetadata} (The metadata for the decision support rule, including publishing, life-cycle, version, documentation, and supporting evidence.)
100     */
101    public ModuleMetadata getModuleMetadata() { 
102      if (this.moduleMetadata == null)
103        if (Configuration.errorOnAutoCreate())
104          throw new Error("Attempt to auto-create DecisionSupportRule.moduleMetadata");
105        else if (Configuration.doAutoCreate())
106          this.moduleMetadata = new ModuleMetadata(); // cc
107      return this.moduleMetadata;
108    }
109
110    public boolean hasModuleMetadata() { 
111      return this.moduleMetadata != null && !this.moduleMetadata.isEmpty();
112    }
113
114    /**
115     * @param value {@link #moduleMetadata} (The metadata for the decision support rule, including publishing, life-cycle, version, documentation, and supporting evidence.)
116     */
117    public DecisionSupportRule setModuleMetadata(ModuleMetadata value) { 
118      this.moduleMetadata = value;
119      return this;
120    }
121
122    /**
123     * @return {@link #library} (A reference to a Library containing the formal logic used by the rule.)
124     */
125    public List<Reference> getLibrary() { 
126      if (this.library == null)
127        this.library = new ArrayList<Reference>();
128      return this.library;
129    }
130
131    public boolean hasLibrary() { 
132      if (this.library == null)
133        return false;
134      for (Reference item : this.library)
135        if (!item.isEmpty())
136          return true;
137      return false;
138    }
139
140    /**
141     * @return {@link #library} (A reference to a Library containing the formal logic used by the rule.)
142     */
143    // syntactic sugar
144    public Reference addLibrary() { //3
145      Reference t = new Reference();
146      if (this.library == null)
147        this.library = new ArrayList<Reference>();
148      this.library.add(t);
149      return t;
150    }
151
152    // syntactic sugar
153    public DecisionSupportRule addLibrary(Reference t) { //3
154      if (t == null)
155        return this;
156      if (this.library == null)
157        this.library = new ArrayList<Reference>();
158      this.library.add(t);
159      return this;
160    }
161
162    /**
163     * @return {@link #library} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A reference to a Library containing the formal logic used by the rule.)
164     */
165    public List<Library> getLibraryTarget() { 
166      if (this.libraryTarget == null)
167        this.libraryTarget = new ArrayList<Library>();
168      return this.libraryTarget;
169    }
170
171    // syntactic sugar
172    /**
173     * @return {@link #library} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A reference to a Library containing the formal logic used by the rule.)
174     */
175    public Library addLibraryTarget() { 
176      Library r = new Library();
177      if (this.libraryTarget == null)
178        this.libraryTarget = new ArrayList<Library>();
179      this.libraryTarget.add(r);
180      return r;
181    }
182
183    /**
184     * @return {@link #trigger} (The trigger element defines when the rule should be invoked. This information is used by consumers of the rule to determine how to integrate the rule into a specific workflow.)
185     */
186    public List<TriggerDefinition> getTrigger() { 
187      if (this.trigger == null)
188        this.trigger = new ArrayList<TriggerDefinition>();
189      return this.trigger;
190    }
191
192    public boolean hasTrigger() { 
193      if (this.trigger == null)
194        return false;
195      for (TriggerDefinition item : this.trigger)
196        if (!item.isEmpty())
197          return true;
198      return false;
199    }
200
201    /**
202     * @return {@link #trigger} (The trigger element defines when the rule should be invoked. This information is used by consumers of the rule to determine how to integrate the rule into a specific workflow.)
203     */
204    // syntactic sugar
205    public TriggerDefinition addTrigger() { //3
206      TriggerDefinition t = new TriggerDefinition();
207      if (this.trigger == null)
208        this.trigger = new ArrayList<TriggerDefinition>();
209      this.trigger.add(t);
210      return t;
211    }
212
213    // syntactic sugar
214    public DecisionSupportRule addTrigger(TriggerDefinition t) { //3
215      if (t == null)
216        return this;
217      if (this.trigger == null)
218        this.trigger = new ArrayList<TriggerDefinition>();
219      this.trigger.add(t);
220      return this;
221    }
222
223    /**
224     * @return {@link #condition} (The condition element describes he "if" portion of the rule that determines whether or not the rule "fires". The condition must be the name of an expression in a referenced library.). This is the underlying object with id, value and extensions. The accessor "getCondition" gives direct access to the value
225     */
226    public StringType getConditionElement() { 
227      if (this.condition == null)
228        if (Configuration.errorOnAutoCreate())
229          throw new Error("Attempt to auto-create DecisionSupportRule.condition");
230        else if (Configuration.doAutoCreate())
231          this.condition = new StringType(); // bb
232      return this.condition;
233    }
234
235    public boolean hasConditionElement() { 
236      return this.condition != null && !this.condition.isEmpty();
237    }
238
239    public boolean hasCondition() { 
240      return this.condition != null && !this.condition.isEmpty();
241    }
242
243    /**
244     * @param value {@link #condition} (The condition element describes he "if" portion of the rule that determines whether or not the rule "fires". The condition must be the name of an expression in a referenced library.). This is the underlying object with id, value and extensions. The accessor "getCondition" gives direct access to the value
245     */
246    public DecisionSupportRule setConditionElement(StringType value) { 
247      this.condition = value;
248      return this;
249    }
250
251    /**
252     * @return The condition element describes he "if" portion of the rule that determines whether or not the rule "fires". The condition must be the name of an expression in a referenced library.
253     */
254    public String getCondition() { 
255      return this.condition == null ? null : this.condition.getValue();
256    }
257
258    /**
259     * @param value The condition element describes he "if" portion of the rule that determines whether or not the rule "fires". The condition must be the name of an expression in a referenced library.
260     */
261    public DecisionSupportRule setCondition(String value) { 
262      if (Utilities.noString(value))
263        this.condition = null;
264      else {
265        if (this.condition == null)
266          this.condition = new StringType();
267        this.condition.setValue(value);
268      }
269      return this;
270    }
271
272    /**
273     * @return {@link #action} (The action element defines the "when" portion of the rule that determines what actions should be performed if the condition evaluates to true.)
274     */
275    public List<ActionDefinition> getAction() { 
276      if (this.action == null)
277        this.action = new ArrayList<ActionDefinition>();
278      return this.action;
279    }
280
281    public boolean hasAction() { 
282      if (this.action == null)
283        return false;
284      for (ActionDefinition item : this.action)
285        if (!item.isEmpty())
286          return true;
287      return false;
288    }
289
290    /**
291     * @return {@link #action} (The action element defines the "when" portion of the rule that determines what actions should be performed if the condition evaluates to true.)
292     */
293    // syntactic sugar
294    public ActionDefinition addAction() { //3
295      ActionDefinition t = new ActionDefinition();
296      if (this.action == null)
297        this.action = new ArrayList<ActionDefinition>();
298      this.action.add(t);
299      return t;
300    }
301
302    // syntactic sugar
303    public DecisionSupportRule addAction(ActionDefinition t) { //3
304      if (t == null)
305        return this;
306      if (this.action == null)
307        this.action = new ArrayList<ActionDefinition>();
308      this.action.add(t);
309      return this;
310    }
311
312      protected void listChildren(List<Property> childrenList) {
313        super.listChildren(childrenList);
314        childrenList.add(new Property("moduleMetadata", "ModuleMetadata", "The metadata for the decision support rule, including publishing, life-cycle, version, documentation, and supporting evidence.", 0, java.lang.Integer.MAX_VALUE, moduleMetadata));
315        childrenList.add(new Property("library", "Reference(Library)", "A reference to a Library containing the formal logic used by the rule.", 0, java.lang.Integer.MAX_VALUE, library));
316        childrenList.add(new Property("trigger", "TriggerDefinition", "The trigger element defines when the rule should be invoked. This information is used by consumers of the rule to determine how to integrate the rule into a specific workflow.", 0, java.lang.Integer.MAX_VALUE, trigger));
317        childrenList.add(new Property("condition", "string", "The condition element describes he \"if\" portion of the rule that determines whether or not the rule \"fires\". The condition must be the name of an expression in a referenced library.", 0, java.lang.Integer.MAX_VALUE, condition));
318        childrenList.add(new Property("action", "ActionDefinition", "The action element defines the \"when\" portion of the rule that determines what actions should be performed if the condition evaluates to true.", 0, java.lang.Integer.MAX_VALUE, action));
319      }
320
321      @Override
322      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
323        switch (hash) {
324        case 455891387: /*moduleMetadata*/ return this.moduleMetadata == null ? new Base[0] : new Base[] {this.moduleMetadata}; // ModuleMetadata
325        case 166208699: /*library*/ return this.library == null ? new Base[0] : this.library.toArray(new Base[this.library.size()]); // Reference
326        case -1059891784: /*trigger*/ return this.trigger == null ? new Base[0] : this.trigger.toArray(new Base[this.trigger.size()]); // TriggerDefinition
327        case -861311717: /*condition*/ return this.condition == null ? new Base[0] : new Base[] {this.condition}; // StringType
328        case -1422950858: /*action*/ return this.action == null ? new Base[0] : this.action.toArray(new Base[this.action.size()]); // ActionDefinition
329        default: return super.getProperty(hash, name, checkValid);
330        }
331
332      }
333
334      @Override
335      public void setProperty(int hash, String name, Base value) throws FHIRException {
336        switch (hash) {
337        case 455891387: // moduleMetadata
338          this.moduleMetadata = castToModuleMetadata(value); // ModuleMetadata
339          break;
340        case 166208699: // library
341          this.getLibrary().add(castToReference(value)); // Reference
342          break;
343        case -1059891784: // trigger
344          this.getTrigger().add(castToTriggerDefinition(value)); // TriggerDefinition
345          break;
346        case -861311717: // condition
347          this.condition = castToString(value); // StringType
348          break;
349        case -1422950858: // action
350          this.getAction().add(castToActionDefinition(value)); // ActionDefinition
351          break;
352        default: super.setProperty(hash, name, value);
353        }
354
355      }
356
357      @Override
358      public void setProperty(String name, Base value) throws FHIRException {
359        if (name.equals("moduleMetadata"))
360          this.moduleMetadata = castToModuleMetadata(value); // ModuleMetadata
361        else if (name.equals("library"))
362          this.getLibrary().add(castToReference(value));
363        else if (name.equals("trigger"))
364          this.getTrigger().add(castToTriggerDefinition(value));
365        else if (name.equals("condition"))
366          this.condition = castToString(value); // StringType
367        else if (name.equals("action"))
368          this.getAction().add(castToActionDefinition(value));
369        else
370          super.setProperty(name, value);
371      }
372
373      @Override
374      public Base makeProperty(int hash, String name) throws FHIRException {
375        switch (hash) {
376        case 455891387:  return getModuleMetadata(); // ModuleMetadata
377        case 166208699:  return addLibrary(); // Reference
378        case -1059891784:  return addTrigger(); // TriggerDefinition
379        case -861311717: throw new FHIRException("Cannot make property condition as it is not a complex type"); // StringType
380        case -1422950858:  return addAction(); // ActionDefinition
381        default: return super.makeProperty(hash, name);
382        }
383
384      }
385
386      @Override
387      public Base addChild(String name) throws FHIRException {
388        if (name.equals("moduleMetadata")) {
389          this.moduleMetadata = new ModuleMetadata();
390          return this.moduleMetadata;
391        }
392        else if (name.equals("library")) {
393          return addLibrary();
394        }
395        else if (name.equals("trigger")) {
396          return addTrigger();
397        }
398        else if (name.equals("condition")) {
399          throw new FHIRException("Cannot call addChild on a primitive type DecisionSupportRule.condition");
400        }
401        else if (name.equals("action")) {
402          return addAction();
403        }
404        else
405          return super.addChild(name);
406      }
407
408  public String fhirType() {
409    return "DecisionSupportRule";
410
411  }
412
413      public DecisionSupportRule copy() {
414        DecisionSupportRule dst = new DecisionSupportRule();
415        copyValues(dst);
416        dst.moduleMetadata = moduleMetadata == null ? null : moduleMetadata.copy();
417        if (library != null) {
418          dst.library = new ArrayList<Reference>();
419          for (Reference i : library)
420            dst.library.add(i.copy());
421        };
422        if (trigger != null) {
423          dst.trigger = new ArrayList<TriggerDefinition>();
424          for (TriggerDefinition i : trigger)
425            dst.trigger.add(i.copy());
426        };
427        dst.condition = condition == null ? null : condition.copy();
428        if (action != null) {
429          dst.action = new ArrayList<ActionDefinition>();
430          for (ActionDefinition i : action)
431            dst.action.add(i.copy());
432        };
433        return dst;
434      }
435
436      protected DecisionSupportRule typedCopy() {
437        return copy();
438      }
439
440      @Override
441      public boolean equalsDeep(Base other) {
442        if (!super.equalsDeep(other))
443          return false;
444        if (!(other instanceof DecisionSupportRule))
445          return false;
446        DecisionSupportRule o = (DecisionSupportRule) other;
447        return compareDeep(moduleMetadata, o.moduleMetadata, true) && compareDeep(library, o.library, true)
448           && compareDeep(trigger, o.trigger, true) && compareDeep(condition, o.condition, true) && compareDeep(action, o.action, true)
449          ;
450      }
451
452      @Override
453      public boolean equalsShallow(Base other) {
454        if (!super.equalsShallow(other))
455          return false;
456        if (!(other instanceof DecisionSupportRule))
457          return false;
458        DecisionSupportRule o = (DecisionSupportRule) other;
459        return compareValues(condition, o.condition, true);
460      }
461
462      public boolean isEmpty() {
463        return super.isEmpty() && (moduleMetadata == null || moduleMetadata.isEmpty()) && (library == null || library.isEmpty())
464           && (trigger == null || trigger.isEmpty()) && (condition == null || condition.isEmpty()) && (action == null || action.isEmpty())
465          ;
466      }
467
468  @Override
469  public ResourceType getResourceType() {
470    return ResourceType.DecisionSupportRule;
471   }
472
473 /**
474   * Search parameter: <b>topic</b>
475   * <p>
476   * Description: <b>Topics associated with the module</b><br>
477   * Type: <b>token</b><br>
478   * Path: <b>DecisionSupportRule.moduleMetadata.topic</b><br>
479   * </p>
480   */
481  @SearchParamDefinition(name="topic", path="DecisionSupportRule.moduleMetadata.topic", description="Topics associated with the module", type="token" )
482  public static final String SP_TOPIC = "topic";
483 /**
484   * <b>Fluent Client</b> search parameter constant for <b>topic</b>
485   * <p>
486   * Description: <b>Topics associated with the module</b><br>
487   * Type: <b>token</b><br>
488   * Path: <b>DecisionSupportRule.moduleMetadata.topic</b><br>
489   * </p>
490   */
491  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC);
492
493 /**
494   * Search parameter: <b>title</b>
495   * <p>
496   * Description: <b>Text search against the title</b><br>
497   * Type: <b>string</b><br>
498   * Path: <b>DecisionSupportRule.moduleMetadata.title</b><br>
499   * </p>
500   */
501  @SearchParamDefinition(name="title", path="DecisionSupportRule.moduleMetadata.title", description="Text search against the title", type="string" )
502  public static final String SP_TITLE = "title";
503 /**
504   * <b>Fluent Client</b> search parameter constant for <b>title</b>
505   * <p>
506   * Description: <b>Text search against the title</b><br>
507   * Type: <b>string</b><br>
508   * Path: <b>DecisionSupportRule.moduleMetadata.title</b><br>
509   * </p>
510   */
511  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
512
513 /**
514   * Search parameter: <b>status</b>
515   * <p>
516   * Description: <b>Status of the module</b><br>
517   * Type: <b>token</b><br>
518   * Path: <b>DecisionSupportRule.moduleMetadata.status</b><br>
519   * </p>
520   */
521  @SearchParamDefinition(name="status", path="DecisionSupportRule.moduleMetadata.status", description="Status of the module", type="token" )
522  public static final String SP_STATUS = "status";
523 /**
524   * <b>Fluent Client</b> search parameter constant for <b>status</b>
525   * <p>
526   * Description: <b>Status of the module</b><br>
527   * Type: <b>token</b><br>
528   * Path: <b>DecisionSupportRule.moduleMetadata.status</b><br>
529   * </p>
530   */
531  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
532
533 /**
534   * Search parameter: <b>description</b>
535   * <p>
536   * Description: <b>Text search against the description</b><br>
537   * Type: <b>string</b><br>
538   * Path: <b>DecisionSupportRule.moduleMetadata.description</b><br>
539   * </p>
540   */
541  @SearchParamDefinition(name="description", path="DecisionSupportRule.moduleMetadata.description", description="Text search against the description", type="string" )
542  public static final String SP_DESCRIPTION = "description";
543 /**
544   * <b>Fluent Client</b> search parameter constant for <b>description</b>
545   * <p>
546   * Description: <b>Text search against the description</b><br>
547   * Type: <b>string</b><br>
548   * Path: <b>DecisionSupportRule.moduleMetadata.description</b><br>
549   * </p>
550   */
551  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
552
553 /**
554   * Search parameter: <b>identifier</b>
555   * <p>
556   * Description: <b>Logical identifier for the module (e.g. CMS-143)</b><br>
557   * Type: <b>token</b><br>
558   * Path: <b>DecisionSupportRule.moduleMetadata.identifier</b><br>
559   * </p>
560   */
561  @SearchParamDefinition(name="identifier", path="DecisionSupportRule.moduleMetadata.identifier", description="Logical identifier for the module (e.g. CMS-143)", type="token" )
562  public static final String SP_IDENTIFIER = "identifier";
563 /**
564   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
565   * <p>
566   * Description: <b>Logical identifier for the module (e.g. CMS-143)</b><br>
567   * Type: <b>token</b><br>
568   * Path: <b>DecisionSupportRule.moduleMetadata.identifier</b><br>
569   * </p>
570   */
571  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
572
573 /**
574   * Search parameter: <b>version</b>
575   * <p>
576   * Description: <b>Version of the module (e.g. 1.0.0)</b><br>
577   * Type: <b>string</b><br>
578   * Path: <b>DecisionSupportRule.moduleMetadata.version</b><br>
579   * </p>
580   */
581  @SearchParamDefinition(name="version", path="DecisionSupportRule.moduleMetadata.version", description="Version of the module (e.g. 1.0.0)", type="string" )
582  public static final String SP_VERSION = "version";
583 /**
584   * <b>Fluent Client</b> search parameter constant for <b>version</b>
585   * <p>
586   * Description: <b>Version of the module (e.g. 1.0.0)</b><br>
587   * Type: <b>string</b><br>
588   * Path: <b>DecisionSupportRule.moduleMetadata.version</b><br>
589   * </p>
590   */
591  public static final ca.uhn.fhir.rest.gclient.StringClientParam VERSION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_VERSION);
592
593
594}
595