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