Expression.xml
  1 <?xml version="1.0" encoding="utf-8"?>
  2 <StructureDefinition xmlns="http://hl7.org/fhir">
  3   <id value="Expression" />
  4   <meta>
  5     <lastUpdated value="2019-10-31T23:29:23.356+01:00" />
  6   </meta>
  7   <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
  8     <valueCode value="trial-use" />
  9   </extension>
 10   <url value="http://hl7.org/fhir/StructureDefinition/Expression" />
 11   <version value="4.0.1" />
 12   <name value="Expression" />
 13   <status value="draft" />
 14   <date value="2019-10-31T23:29:23.0000000+01:00" />
 15   <publisher value="HL7 FHIR Standard" />
 16   <contact>
 17     <telecom>
 18       <system value="url" />
 19       <value value="http://hl7.org/fhir" />
 20     </telecom>
 21   </contact>
 22   <description value="Base StructureDefinition for Expression Type: A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used." />
 23   <fhirVersion value="4.0.1" />
 24   <mapping>
 25     <identity value="rim" />
 26     <uri value="http://hl7.org/v3" />
 27     <name value="RIM Mapping" />
 28   </mapping>
 29   <kind value="complex-type" />
 30   <abstract value="false" />
 31   <type value="Expression" />
 32   <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Element" />
 33   <derivation value="specialization" />
 34   <snapshot>
 35     <element id="Expression">
 36       <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
 37         <valueCode value="trial-use" />
 38       </extension>
 39       <path value="Expression" />
 40       <short value="An expression that can be used to generate a value" />
 41       <definition value="A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used." />
 42       <min value="0" />
 43       <max value="*" />
 44       <base>
 45         <path value="Expression" />
 46         <min value="0" />
 47         <max value="*" />
 48       </base>
 49       <condition value="ele-1" />
 50       <constraint>
 51         <key value="ele-1" />
 52         <severity value="error" />
 53         <human value="All FHIR elements must have a @value or children" />
 54         <expression value="hasValue() or (children().count() > id.count())" />
 55         <xpath value="@value|f:*|h:div" />
 56         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 57       </constraint>
 58       <constraint>
 59         <key value="exp-1" />
 60         <severity value="error" />
 61         <human value="An expression or a reference must be provided" />
 62         <expression value="expression.exists() or reference.exists()" />
 63         <xpath value="exists(f:expression) or exists(f:reference)" />
 64       </constraint>
 65       <isModifier value="false" />
 66       <mapping>
 67         <identity value="rim" />
 68         <map value="n/a" />
 69       </mapping>
 70     </element>
 71     <element id="Expression.id">
 72       <path value="Expression.id" />
 73       <representation value="xmlAttr" />
 74       <short value="Unique id for inter-element referencing" />
 75       <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
 76       <min value="0" />
 77       <max value="1" />
 78       <base>
 79         <path value="Element.id" />
 80         <min value="0" />
 81         <max value="1" />
 82       </base>
 83       <type>
 84         <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
 85           <valueUrl value="string" />
 86         </extension>
 87         <code value="http://hl7.org/fhirpath/System.String" />
 88       </type>
 89       <isModifier value="false" />
 90       <isSummary value="false" />
 91       <mapping>
 92         <identity value="rim" />
 93         <map value="n/a" />
 94       </mapping>
 95     </element>
 96     <element id="Expression.extension">
 97       <path value="Expression.extension" />
 98       <slicing>
 99         <discriminator>
100           <type value="value" />
101           <path value="url" />
102         </discriminator>
103         <description value="Extensions are always sliced by (at least) url" />
104         <rules value="open" />
105       </slicing>
106       <short value="Additional content defined by implementations" />
107       <definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
108       <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
109       <alias value="extensions" />
110       <alias value="user content" />
111       <min value="0" />
112       <max value="*" />
113       <base>
114         <path value="Element.extension" />
115         <min value="0" />
116         <max value="*" />
117       </base>
118       <type>
119         <code value="Extension" />
120       </type>
121       <constraint>
122         <key value="ele-1" />
123         <severity value="error" />
124         <human value="All FHIR elements must have a @value or children" />
125         <expression value="hasValue() or (children().count() > id.count())" />
126         <xpath value="@value|f:*|h:div" />
127         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
128       </constraint>
129       <constraint>
130         <key value="ext-1" />
131         <severity value="error" />
132         <human value="Must have either extensions or value[x], not both" />
133         <expression value="extension.exists() != value.exists()" />
134         <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" />
135         <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
136       </constraint>
137       <isModifier value="false" />
138       <isSummary value="false" />
139       <mapping>
140         <identity value="rim" />
141         <map value="n/a" />
142       </mapping>
143     </element>
144     <element id="Expression.description">
145       <path value="Expression.description" />
146       <short value="Natural language description of the condition" />
147       <definition value="A brief, natural language description of the condition that effectively communicates the intended semantics." />
148       <min value="0" />
149       <max value="1" />
150       <base>
151         <path value="Expression.description" />
152         <min value="0" />
153         <max value="1" />
154       </base>
155       <type>
156         <code value="string" />
157       </type>
158       <constraint>
159         <key value="ele-1" />
160         <severity value="error" />
161         <human value="All FHIR elements must have a @value or children" />
162         <expression value="hasValue() or (children().count() > id.count())" />
163         <xpath value="@value|f:*|h:div" />
164         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
165       </constraint>
166       <isModifier value="false" />
167       <isSummary value="true" />
168     </element>
169     <element id="Expression.name">
170       <path value="Expression.name" />
171       <short value="Short name assigned to expression for reuse" />
172       <definition value="A short name assigned to the expression to allow for multiple reuse of the expression in the context where it is defined." />
173       <min value="0" />
174       <max value="1" />
175       <base>
176         <path value="Expression.name" />
177         <min value="0" />
178         <max value="1" />
179       </base>
180       <type>
181         <code value="id" />
182       </type>
183       <constraint>
184         <key value="ele-1" />
185         <severity value="error" />
186         <human value="All FHIR elements must have a @value or children" />
187         <expression value="hasValue() or (children().count() > id.count())" />
188         <xpath value="@value|f:*|h:div" />
189         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
190       </constraint>
191       <isModifier value="false" />
192       <isSummary value="true" />
193     </element>
194     <element id="Expression.language">
195       <path value="Expression.language" />
196       <short value="text/cql | text/fhirpath | application/x-fhir-query | etc." />
197       <definition value="The media type of the language for the expression." />
198       <min value="1" />
199       <max value="1" />
200       <base>
201         <path value="Expression.language" />
202         <min value="1" />
203         <max value="1" />
204       </base>
205       <type>
206         <code value="code" />
207       </type>
208       <constraint>
209         <key value="ele-1" />
210         <severity value="error" />
211         <human value="All FHIR elements must have a @value or children" />
212         <expression value="hasValue() or (children().count() > id.count())" />
213         <xpath value="@value|f:*|h:div" />
214         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
215       </constraint>
216       <isModifier value="false" />
217       <isSummary value="true" />
218       <binding>
219         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet">
220           <valueCanonical value="http://www.rfc-editor.org/bcp/bcp13.txt" />
221         </extension>
222         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
223           <valueString value="ExpressionLanguage" />
224         </extension>
225         <strength value="extensible" />
226         <description value="The media type of the expression language." />
227         <valueSet value="http://hl7.org/fhir/ValueSet/expression-language" />
228       </binding>
229     </element>
230     <element id="Expression.expression">
231       <path value="Expression.expression" />
232       <short value="Expression in specified language" />
233       <definition value="An expression in the specified language that returns a value." />
234       <min value="0" />
235       <max value="1" />
236       <base>
237         <path value="Expression.expression" />
238         <min value="0" />
239         <max value="1" />
240       </base>
241       <type>
242         <code value="string" />
243       </type>
244       <constraint>
245         <key value="ele-1" />
246         <severity value="error" />
247         <human value="All FHIR elements must have a @value or children" />
248         <expression value="hasValue() or (children().count() > id.count())" />
249         <xpath value="@value|f:*|h:div" />
250         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
251       </constraint>
252       <isModifier value="false" />
253       <isSummary value="true" />
254     </element>
255     <element id="Expression.reference">
256       <path value="Expression.reference" />
257       <short value="Where the expression is found" />
258       <definition value="A URI that defines where the expression is found." />
259       <comment value="If both a reference and an expression is found, the reference SHALL point to the same expression." />
260       <min value="0" />
261       <max value="1" />
262       <base>
263         <path value="Expression.reference" />
264         <min value="0" />
265         <max value="1" />
266       </base>
267       <type>
268         <code value="uri" />
269       </type>
270       <constraint>
271         <key value="ele-1" />
272         <severity value="error" />
273         <human value="All FHIR elements must have a @value or children" />
274         <expression value="hasValue() or (children().count() > id.count())" />
275         <xpath value="@value|f:*|h:div" />
276         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
277       </constraint>
278       <isModifier value="false" />
279       <isSummary value="true" />
280     </element>
281   </snapshot>
282   <differential>
283     <element id="Expression">
284       <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
285         <valueCode value="trial-use" />
286       </extension>
287       <path value="Expression" />
288       <short value="An expression that can be used to generate a value" />
289       <definition value="A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used." />
290       <min value="0" />
291       <max value="*" />
292       <constraint>
293         <key value="exp-1" />
294         <severity value="error" />
295         <human value="An expression or a reference must be provided" />
296         <expression value="expression.exists() or reference.exists()" />
297         <xpath value="exists(f:expression) or exists(f:reference)" />
298       </constraint>
299     </element>
300     <element id="Expression.description">
301       <path value="Expression.description" />
302       <short value="Natural language description of the condition" />
303       <definition value="A brief, natural language description of the condition that effectively communicates the intended semantics." />
304       <min value="0" />
305       <max value="1" />
306       <type>
307         <code value="string" />
308       </type>
309       <isSummary value="true" />
310     </element>
311     <element id="Expression.name">
312       <path value="Expression.name" />
313       <short value="Short name assigned to expression for reuse" />
314       <definition value="A short name assigned to the expression to allow for multiple reuse of the expression in the context where it is defined." />
315       <min value="0" />
316       <max value="1" />
317       <type>
318         <code value="id" />
319       </type>
320       <isSummary value="true" />
321     </element>
322     <element id="Expression.language">
323       <path value="Expression.language" />
324       <short value="text/cql | text/fhirpath | application/x-fhir-query | etc." />
325       <definition value="The media type of the language for the expression." />
326       <min value="1" />
327       <max value="1" />
328       <type>
329         <code value="code" />
330       </type>
331       <isSummary value="true" />
332       <binding>
333         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet">
334           <valueCanonical value="http://www.rfc-editor.org/bcp/bcp13.txt" />
335         </extension>
336         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
337           <valueString value="ExpressionLanguage" />
338         </extension>
339         <strength value="extensible" />
340         <description value="The media type of the expression language." />
341         <valueSet value="http://hl7.org/fhir/ValueSet/expression-language" />
342       </binding>
343     </element>
344     <element id="Expression.expression">
345       <path value="Expression.expression" />
346       <short value="Expression in specified language" />
347       <definition value="An expression in the specified language that returns a value." />
348       <min value="0" />
349       <max value="1" />
350       <type>
351         <code value="string" />
352       </type>
353       <isSummary value="true" />
354     </element>
355     <element id="Expression.reference">
356       <path value="Expression.reference" />
357       <short value="Where the expression is found" />
358       <definition value="A URI that defines where the expression is found." />
359       <comment value="If both a reference and an expression is found, the reference SHALL point to the same expression." />
360       <min value="0" />
361       <max value="1" />
362       <type>
363         <code value="uri" />
364       </type>
365       <isSummary value="true" />
366     </element>
367   </differential>
368 </StructureDefinition>