| Literature DB >> 29065644 |
Yinsheng Zhang1, Guoming Zhang2, Qian Shang3.
Abstract
Reusing the data from healthcare information systems can effectively facilitate clinical trials (CTs). How to select candidate patients eligible for CT recruitment criteria is a central task. Related work either depends on DBA (database administrator) to convert the recruitment criteria to native SQL queries or involves the data mapping between a standard ontology/information model and individual data source schema. This paper proposes an alternative computer-aided CT recruitment paradigm, based on syntax translation between different DSLs (domain-specific languages). In this paradigm, the CT recruitment criteria are first formally represented as production rules. The referenced rule variables are all from the underlying database schema. Then the production rule is translated to an intermediate query-oriented DSL (e.g., LINQ). Finally, the intermediate DSL is directly mapped to native database queries (e.g., SQL) automated by ORM (object-relational mapping).Entities:
Mesh:
Year: 2017 PMID: 29065644 PMCID: PMC5396472 DOI: 10.1155/2017/7862672
Source DB: PubMed Journal: J Healthc Eng ISSN: 2040-2295 Impact factor: 2.682
Figure 1Comparison of the patient query paradigms used in clinical trial recruitment (demonstrated in the case of relational database). Paradigm A depends on clinical engineers or DBA to translate clinical researchers' natural language representation of recruitment criteria into database-specific query language, for example, SQL. Paradigm B uses SDE tools to author formally represented criteria based on a sharable model. The criteria are then translated to SQL by the underlying mapping between the sharable model and individual database. Paradigm C uses SDE to author recruitment criteria in the form of the production rule, which is then translated into LINQ syntax. LINQ to SQL conversion is naturally supported by ORM-like technologies. DBA = database administrator; SDE = structured data entry; DSL = domain-specific language; LINQ = language-integrated query; SQL = structured query language; ORM = object-relational mapping.
Figure 2SDE for authoring CT recruitment criteria. The left panel is a list of data fields that can be used as rule variables in the search patterns. These data fields come from the database schema of the central data repository. The right panel is a graphical rule editor. It supports conditional predicates (composed of rule variables and comparison operators, e.g., [BirthWeight] <= 1.5), logical operators (AND, OR, and NOT), and parentheses (specify precedence). For each rule variable, the available comparison operators are strictly confined based on its data type. If the variable is numeric or date type, allowed comparison operators will be “>=, <=, >, <, =, !=”. If the variable is string type, the allowed comparison operator will be “=,” and the rhs (right-hand side) constant can be a string literal with wild cards (“%”). The sequence of rule components can be adjusted by drag and drop. Furthermore, the graphical editor can generate a rule expression into the textual editor. The textual editor also allows the user to directly edit rule expression with autocomplete (IntelliSense) utilities.
Figure 3Example of converting production rule to native database query. (1) First, the production rule is translated to an intermediate DSL, such as LINQ. (2) Then, the LINQ DSL is translated to native database query automated by the ORM module.
Language primitives of the production rule DSL.
| Primitives | Type | Description |
|---|---|---|
| && | Logical operator | Logical AND |
| || | Logical operator | Logical OR |
| ! | Logical operator | Logical NOT |
| > | Comparison operator | Greater than |
| >= | Comparison operator | Greater than or equal |
| < | Comparison operator | Less than |
| <= | Comparison operator | Less than or equal |
| == | Comparison operator | Equal |
| != | Comparison operator | Not equal |
| ( | Operator precedence | Left parenthesis |
| ) | Operator precedence | Right parenthesis |
| [ | Variable identifier | Text between “[” and “]” is interpreted as a variable name |
| ] | Variable identifier | |
| Boolean | Data type | For example, true/false |
| Numeric | Data type | For example, 1.0 |
| Date | Data type | For example, “2016-12-25” |
| String | Data type | For example, “Stage 3 ROP in zone I” |
| % | Wild card | Wild card for string comparison |
Query performance result of the computer-aided CT recruitment system.
| CT Recruitment rules in different complexity | Rule description | Rule validation | DSL translation | SQL query | Client processing | Total time |
|---|---|---|---|---|---|---|
| [BirthWeight] <= 1.0 && [GestationalAgeWeek] < 29 | Find patients whose birth weight <= 1 kg and gestational age < 29 weeks | <1 ms | <1 ms | 151 ms | 285 ms | 436 ms |
| [BirthWeight] <= 1.5 && [GestationalAgeWeek] <= 30 && [Birthday] >= 2014-01-01 && ([MostSevereDiagnosisOD] == %retin% || [MostSevereDiagnosisOS] == %retin% ) | Find patients born after 2014 and whose birth weight <= 1.5 kg and gestational age <= 30 weeks and who have retina-related diseases | <1 ms | <1 ms | 157 ms | 289 ms | 446 ms |
| [BirthWeight] <= 1.5 && [GestationalAgeWeek]<= 30 && [Birthday] >= 2014-01-01 && ( [NumberOfFetus] >= 2 || [Homozygotic] == true || [MotherAge] >= 35 || [OxygenMethod] == %oxygen% || [SystemicDiseaseHistory] == %Apnea% || ( [PregnancyStatus] == %HTN% || [PregnancyStatus] == %DM% || [PregnancyStatus] == %PIH%) || [PregnancyMedication] == %Corticosteroids% || ( [MostSevereDiagnosisOD] == %ROP% || [MostSevereDiagnosisOS] == %ROP% || [MostSevereDiagnosisOD] == %retin% || [MostSevereDiagnosisOS] == %retin% ) || ( [FamilyDiseaseHistory] == %retin% || [FamilyDiseaseHistory] == %fundus%) ) | Find patients born after 2014 and whose birth weight <= 1.5 kg and gestational age <= 30 weeks and who meet one of the following conditions: homozygotic multiple birth, mother age >=35, oxygen therapy history, OSAS, having at least one of HTN, DM, or PIH during pregnancy, using corticosteroids during pregnancy, having retina-related diseases, or having family disease history of retina or fundus-related diseases | 1 ms | <1 ms | 159 ms | 283 ms | 443 ms |
The results are averaged on 10 tests. Detailed result can be downloaded from http://ropd.brahma.pub/pages/20170130.xls.
| [Aim of CT] |
| Assess the anti-neovascularization activity of intravitreal bevacizumab, as determined by regression of neovascular vessels of retinopathy of prematurity (ROP), in neonates with acute stage 3 ROP in zone I or posterior zone II with plus disease. |
| [Recruitment criteria] |
| Birth weight ≤ 1500 grams |
| Gestational age ≤ 30 weeks |
| Diagnosis = stage 3 ROP in zone I or posterior zone II |
| Drug use = bevacizumab (Avastin®) |
|
|
|
|
| [Aim of CT] | |
| Assess Pan-VEGF (vascular endothelial growth factor) blockade for the treatment of retinopathy of prematurity. | |
| [Recruitment criteria] | |
| Gestational age ≤ 30 weeks | |
| Gestational age ≤ 36 1/7 weeks | |
| Diagnosis = type 1 pre-threshold ROP | |
| No prior treatment | |
|
| |
|
|