Changes between Version 1 and Version 2 of NinthQuery


Ignore:
Timestamp:
12/05/06 11:03:21 (11 years ago)
Author:
detwiler
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NinthQuery

    v1 v2  
    22 
    33{{{ 
     4let $patients_phono_not_sem := 
     5dxq:csm(" 
     6let $include_codes := ('2') 
     7let $exclude_codes := ('8') 
     8let $inverse :=  for $p in $root/patient 
     9 return   
     10 <patient> 
     11 {$p/pnum} 
     12 {$p/viq} 
     13 {$p/sex} 
     14 <age>{$p/age_at_registration/text()}</age>  
     15 { 
     16  for $s in $p/surgery 
     17  return  
     18  <surgery> 
     19  { 
     20   for $site in $s/stimsite 
     21   let $oid := $site/_oid 
     22   return 
     23   <stimsite> 
     24   { $site/surgery} 
     25   { $site/type} 
     26          {$site/site_label} 
     27          {  
     28            for $sitemap_elt in $p/surgery/sitetoanatomymap[preference='1']/sitetoanatomymapelement[stimsite/_oid = $oid] 
     29            return     
     30              <magnet_coordinates> 
     31                <ant_coord>{$sitemap_elt/ant_coord/text()}</ant_coord> 
     32                <sup_coord>{$sitemap_elt/sup_coord/text()}</sup_coord> 
     33                <right_coord>{$sitemap_elt/right_coord/text()}</right_coord> 
     34              </magnet_coordinates> 
     35          }     
     36          {  
     37            for $anat_elt in $p/surgery/anatomytonamemap[preference='1']/anatomytonamemapelement[stimsite/_oid = $oid] 
     38            return     
     39              <anatomical_name>{$anat_elt/term/fullname/text()}</anatomical_name> 
     40          }     
    441 
     42   { 
     43    for $trial in $p//trial[stimsite1/_oid = $oid] 
     44    return 
     45    <trial> 
     46    { 
     47     $trial/node()[name() != 'stimsite1'] 
     48    } 
     49    </trial> 
     50   } 
     51   </stimsite> 
     52  } 
     53  </surgery> 
     54 } 
     55 </patient> 
     56 
     57return 
     58<result> 
     59{ 
     60for $p in $inverse 
     61let $anatomical_regions := 
     62    for $anatomical_name in distinct-values($p/surgery/stimsite/anatomical_name) 
     63    let $sites_with_name := $p/surgery/stimsite[anatomical_name=$anatomical_name] 
     64    let $codes_for_sites := $sites_with_name/trial/trialcode/term[type='CSM error code']/abbrev/text() 
     65    return 
     66    if($codes_for_sites=$include_codes and not($codes_for_sites=$exclude_codes)) 
     67    then 
     68    <region> 
     69        <anatomical_name>{$anatomical_name}</anatomical_name> 
     70        <stimsites> 
     71           { 
     72             for $site in $sites_with_name 
     73             return 
     74             <stimsite>{$site/site_label}{$site/magnet_coordinates}</stimsite> 
     75           } 
     76        </stimsites> 
     77        <codes> 
     78        { 
     79                    for $code in distinct-values($sites_with_name/trial/trialcode/term[type='CSM error code']/abbrev/text()) 
     80                    return 
     81                        <code>{$code}</code> 
     82        } 
     83        </codes> 
     84     </region> 
     85    else() 
     86  
     87where exists($anatomical_regions) 
     88return 
     89<patient> 
     90 {$p/pnum} 
     91 { 
     92 for $region in $anatomical_regions 
     93 return 
     94 $region 
     95 } 
     96</patient> 
     97} 
     98</result> 
     99") 
     100 
     101return 
     102<results> 
     103   {$patients_phono_not_sem/result/patient} 
     104</results> 
    5105}}}