cqframework / cql-engine

Clinical Quality Language Evaluation Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

String equivalence should be case- and locale-insensitive

brynrhodes opened this issue · comments

String equivalence does not appear to be case- and locale-insensitive

define T2: 'Abel' ~ 'abel' // true

@brynrhodes - Please clarify your requirements: "String equivalence should be case- and locale-insensitive"

  1. Are you saying that Equivalent(String,String) should be case-sensitive ('Abel' ~ 'abel' is false) or case-insensitive ('Abel' ~ 'abel' is true)?

  2. Are you saying that Equivalent(String,String) should behave identically for all users (locale-insensitive) or that its behaviour should change depending on what the current user's system locale settings are (locale sensitive)?

For some context: The CQL spec definitions of the Lower() and Upper() operators state: "Note that the definition of [lower/upper]case for a given character is a locale-dependent determination, and is not specified by CQL." Also, the definitions of Matches() and ReplaceMatches() state: "Regular expressions should function consistently, regardless of any culture- and locale-specific settings in the environment, should be case-sensitive, use single line mode, and allow Unicode characters."

The CQL spec generally doesn't seem to say anything about locale besides with the above operators.

Resolved in release 1.2.20