All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cql-lm.schema.elm.clinicalexpression.xsd Maven / Gradle / Ivy

There is a newer version: 1.5.4
Show newest version


	
		
			This file defines the expression extensions that introduce clinically relevant dependencies such as clinical data access, terminology, and value set considerations.
		
	
	
	
		
			The retrieve expression defines clinical data that will be used by the artifact. This expression allows clinically relevant filtering criteria to be provided in a well-defined and computable way. This operation defines the integration boundary for artifacts. The result of a retrieve is defined to return the same data for subsequent invocations within the same evaluation request. This means in particular that patient data updates made during the evaluation request are not visible to the artifact. In effect, the patient data is a snapshot of the data as of the start of the evaluation. This ensures strict deterministic and functional behavior of the artifact, and allows the implementation engine freedom to cache intermediate results in order to improve performance.
		
		
			
				
					
						
							The codes element optionally specifies an expression that results in a List<Code> to match against. Only the clinical statements that match at least one of the specified codes will be returned.
						
					
					
						
							The dateRange element optionally specifies an expression that results in an Interval<DateTime> to match against. Only those clinical statements whose date falls within the specified date range will be returned.
						
					
					
						
							If specified, the context element references an expression that, when evaluated, provides the context for the retrieve. The expression evaluates to the instance id that will be used as the context for the retrieve.
						
					
				
				
					
						The dataType attribute specifies the type of data being requested.
					
				
				
					
						The templateId attribute specifies an optional template to be used. If specified, the retrieve is defined to return only objects that conform to the template.
					
				
				
					
						The idProperty attribute specifies which property of the model contains the Id for the clinical statement.

This property may be specified as a path, including qualifiers and constant indexers. The <simplePath> production rule in the CQL grammar provides the formal semantics for this path.
					
				
				
					
						The codeProperty attribute optionally specifies which property of the model contains the Code or Codes for the clinical statement.
						
Note that implementers could also specify this information elsewhere as part of an implementation catalog, rather than on each Retrieve expression, but allowing it to be specified in the retrieve expression gives the most flexibility. Note also that even in the case of an implementation catalog, implementations would still need to respect codeProperty values in the ELM due to the possibility of the retrieve specifying alternate code filters. From the perspective of ELM, the specification ensures that ELM can be processed without reference to the model information.

This property may be specified as a path, including qualifiers and constant indexers. The <simplePath> production rule in the CQL grammar provides the formal semantics for this path.
					
				
				
					
						The valueSetProperty attribute optionally specifies which property of the model contains a value set identifier that can be used as an alternative mechanism for matching the value set of the retrieve, in the case when no code is specified in the source data.

This attribute is intended to address the case where systems representing negation rationale for an activity not performed do so by indicating a valueset identifier rather than a code. For example, when indicating that a medication was not administered, the value set identifier for the expected medication is used, rather than indicating a specific medication that was not administered. In this case, the valueSetProperty attribute allows the retrieve to specify where to look for the value set identifier without needing to change the conceptual data model or the CQL logic describing the negated activity.

Note that implementers could also specify this information elsewhere as part of an implementation catalog, rather than on each Retrieve expression, but allowing it to be specified in the retrieve expression gives the most flexibility. From the perspective of ELM, the specification ensures that ELM can be processed without reference to the model information.

This property may be specified as a path, including qualifiers and constant indexers. The <simplePath> production rule in the CQL grammar provides the formal semantics for this path.
					
				
				
					
						The dateProperty attribute optionally specifies which property of the model contains the clinically relevant date for the clinical statement.
						
This property is expected to reference a property that is either a Date or DateTime, or an interval of Date or DateTime. In either case, the result set will only include instances where the value of the dateProperty is during the date range. For Date or DateTime values, this means the date is both the same or after the beginning of the range, and the same or before the end of the range. For Date- or DateTime-based interval values, this means that the entire interval is included in the date range.

Instances with no value for the dateProperty will not be included in the result set if a date range is specified.

Note that if the dateProperty is specified, the dateLowProperty and dateHighProperty attributes must not be present. And conversely, if the dateLowProperty and dateHighProperty attributes are specified, the dateProperty must not be present. If specified, the dateLowProperty and dateHighProperty values will be used to construct an interval with inclusive boundaries for the date range.

This property may be specified as a path, including qualifiers and constant indexers. The <simplePath> production rule in the CQL grammar provides the formal semantics for this path.
					
				
				
					
						The dateLowProperty attribute optionally specifies which property of the model contains the low component of the clinically relevant date for the clinical statement.
						
Note that if the dateProperty is specified, the dateLowProperty and dateHighProperty attributes must not be present. And conversely, if the dateLowProperty and dateHighProperty attributes are specified, the dateProperty must not be present.

This property may be specified as a path, including qualifiers and constant indexers. The <simplePath> production rule in the CQL grammar provides the formal semantics for this path.
					
				
				
					
						The dateHighProperty attribute optionally specifies which property of the model contains the high component of the clinically relevant date for the clinical statement.

Note that if the dateProperty is specified, the dateLowProperty and dateHighProperty attributes must not be present. And conversely, if the dateLowProperty and dateHighProperty attributes are specified, the dateProperty must not be present.

This property may be specified as a path, including qualifiers and constant indexers. The <simplePath> production rule in the CQL grammar provides the formal semantics for this path.
					
				
			
		
	
	
		
			The CodeSystemDef type defines a code system identifier that can then be used to identify code systems involved in value set definitions.
		
		
			
				
					
						The name of the code system used for reference.
					
				
				
					
						The unique identifier of the code system.
					
				
				
					
						The version of the code system to be used. If no version is specified, the most current published version of the code system is assumed.
					
				
				
			
		
	
	
		
			The ValueSetDef type defines a value set identifier that can be referenced by name anywhere within an expression.

The id specifies the globally unique identifier for the value set. This may be an HL7 OID, a FHIR URL, or a CTS2 value set URL.

If version is specified, it will be used to resolve the version of the value set definition to be used. Otherwise, the most current published version of the value set is assumed. 

If codeSystems are specified, they will be used to resolve the code systems used within the value set definition to construct the expansion set.
Note that the recommended approach to statically binding to an expansion set is to use a value set definition that specifies the version of each code system used. The codeSystemVersions attribute is provided only to ensure static binding can be achieved when the value set definition does not specify code system versions as part of the definition header.			
		
		
			
				
					
						
							The code system that should be used to construct the expansion set. Note that the recommended approach to statically binding to an expansion set is to use a value set definition that specifies the version of each code system used. The codeSystem elements are provided only to ensure static binding can be achieved when the value set definition does not specify code system versions as part of the definition header.
						
					
				
				
				
					
						The unique identifier of the value set to be retrieved.
					
				
				
					
						The version of the value set to be retrieved. If no version is provided, the most current published version of the value set is assumed.
					
				
				
			
		
	
	
		
			The CodeDef type defines a code identifier that can then be used to reference single codes anywhere within an expression.
		
		
			
				
					
						
							The code system that contains the code being referenced.
						
					
				
				
					
						The name of the code used for reference.
					
				
				
					
						The unique identifier of the code.
					
				
				
					
						An optional display string used to describe the code.
					
				
				
			
		
	
	
		
			The ConceptDef type defines a concept identifier that can then be used to reference single concepts anywhere within an expression.
		
		
			
				
					
						
							A code that makes up the concept. All codes within a given concept must be synonyms.
						
					
				
				
					
						The name of the concept used for reference.
					
				
				
					
						An optional display string used to describe the concept.
					
				
				
			
		
	
	
		
			The CodeSystemRef expression allows a previously defined named code system to be referenced within an expression. Conceptually, referencing a code system returns the set of codes in the code system. Note that this operation should almost never be performed in practice. Code system references are allowed in order to allow for testing of code membership in a particular code system.
		
		
			
				
				
			
		
	
	
		
			The ValueSetRef expression allows a previously defined named value set to be referenced within an expression. Conceptually, referencing a value set returns the expansion set for the value set as a list of codes.
		
		
			
				
				
			
		
	
	
		
			The CodeRef expression allows a previously defined code to be referenced within an expression.
		
		
			
				
				
			
		
	
	
		
			The ConceptRef expression allows a previously defined concept to be referenced within an expression.
		
		
			
				
				
			
		
	
	
		
			The Code type represents a literal code selector.
		
		
			
				
					
				
				
				
			
		
	
	
		
			The Concept type represents a literal concept selector.
		
		
			
				
					
				
				
			
		
	
	
		
			The InCodeSystem operator returns true if the given code is in the given code system.

The first argument is expected to be a String, Code, or Concept.

Note that this operator explicitly requires a CodeSystemRef as its codesystem argument. This allows for both static analysis of the code system references within an artifact, as well as the implementation of code system membership by the target environment as a service call to a terminology server, if desired.
		
		
			
				
					
					
				
			
		
	
	
		
			The AnyInCodeSystem operator returns true if any of the given codes are in the given code system.

The first argument is expected to be a list of String, Code, or Concept.

Note that this operator explicitly requires a CodeSystemRef as its codesystem argument. This allows for both static analysis of the code system references within an artifact, as well as the implementation of code system membership by the target environment as a service call to a terminology server, if desired.
		
		
			
				
					
					
				
			
		
	
	
		
			The InValueSet operator returns true if the given code is in the given value set.

The first argument is expected to be a String, Code, or Concept.

Note that this operator explicitly requires a ValueSetRef as its valueset argument. This allows for both static analysis of the value set references within an artifact, as well as the implementation of valueset membership by the target environment as a service call to a terminology server, if desired.
		
		
			
				
					
					
				
			
		
	
	
		
			The AnyInValueSet operator returns true if any of the given codes are in the given value set.

The first argument is expected to be a list of String, Code, or Concept.

Note that this operator explicitly requires a ValueSetRef as its valueset argument. This allows for both static analysis of the value set references within an artifact, as well as the implementation of valueset membership by the target environment as a service call to a terminology server, if desired.
		
		
			
				
					
					
				
			
		
	
	
		
			The Subsumes operator returns true if the given codes are equivalent, or if the first code subsumes the second (i.e. the first code is an ancestor of the second in a subsumption hierarchy), and false otherwise. 

For the Concept overload, this operator returns true if any code in the first concept subsumes any code in the second.
				
If either or both arguments are null, the result is null.
		
		
			
		
	
	
		
			The SubsumedBy operator returns true if the given codes are equivalent, or if the first code is subsumed by the second code (i.e. the first code is a descendent of the second code in a subsumption hierarchy), and false otherwise. 

For the Concept overload, this operator returns true if any code in the first concept is subsumed by any code in the second.
				
If either or both arguments are null, the result is null.
		
		
			
		
	
	
		
			The Quantity type defines a clinical quantity. For example, the quantity 10 days or 30 mmHg. The value is a decimal, while the unit is expected to be a valid UCUM unit.
		
		
			
				
				
			
		
	
	
		
			The Ratio type defines a ratio between two quantities. For example, the titre 1:128, or the concentration ratio 5 mg/10 mL. The numerator and denominator are both quantities.
		
		
			
				
					
					
				
			
		
	
	
		
			Calculates the age in the specified precision of a person born on the given date.

The CalculateAge operator is defined for Date and DateTime.

For the Date overload, the calculation is performed using Today(), the precision must be one of year, month, week, or day, and the result is the number of whole calendar periods that have elapsed between the given date and today.

For the DateTime overload, the calculation is performed using Now(), and the result is the number of whole calendar periods that have elapsed between the given datetime and now.
		
		
			
				
			
		
	
	
		
			Calculates the age in the specified precision of a person born on a given date, as of another given date.

The CalculateAgeAt operator has two signatures:
  (Date, Date)
  (DateTime, DateTime)
      
For the Date overload, precision must be one of year, month, week, or day, and the result is the number of whole calendar periods that have elapsed between the first date and the second date.
      
For the DateTime overload, the result is the number of whole calendar periods that have elapsed between the first datetime and the second datetime.
		
		
			
				
			
		
	





© 2015 - 2024 Weber Informatics LLC | Privacy Policy