Changeset 847

Show
Ignore:
Timestamp:
02/03/11 17:16:48 (2 years ago)
Author:
rafael.soares
Message:

Implementeded support icd10, refs #216

Location:
trunk/opentrials
Files:
10 added
11 modified

Legend:

Unmodified
Added
Removed
  • trunk/opentrials/custom/ecgovbr/static/css/style.css

    r777 r847  
    856856    display: block; 
    857857} 
     858 
     859/* AJAX ICD10 Tools */ 
     860td div.icd10tool { 
     861    display: none; 
     862} 
     863 
     864/*td select,*/ 
     865td div.icd10tool input { 
     866    width: 46%; 
     867} 
     868 
     869td.showicd10 div.icd10tool { 
     870    display: block; 
     871} 
     872 
    858873 
    859874.issue{ 
  • trunk/opentrials/custom/ecgovbr/static/js/submission.utils.js

    r596 r847  
    6161    window.decsdata = {}; 
    6262} 
    63  
     63if( window.icd10data == undefined ){ 
     64    window.icd10data = {}; 
     65} 
    6466/** 
    6567 * A utility to name and create form elements 
     
    8385    return function(data){ 
    8486        var lang = decs.lang.substring(0,2); 
    85         for(var i=0; i<data.length;i++){ 
     87        for(var i=0; i < data.length; i++){ 
    8688            var option = $("<option>").attr("value",data[i].fields.label) 
    8789                .html(data[i].fields.description[lang]) 
     
    9597                .attr("value",this.value) 
    9698                .attr("readonly","readonly"); 
    97             $("input[name="+decs.set+"-text]") 
    98                 .attr("value",window.decsdata[this.value].en) 
    99                 .attr("readonly","readonly"); 
    100             $("input[name="+decs.set+"-text|es]") 
    101                 .attr("value",window.decsdata[this.value].es) 
    102                 .attr("readonly","readonly"); 
    103             $("input[name="+decs.set+"-text|pt-br]") 
    104                 .attr("value",window.decsdata[this.value].pt) 
    105                 .attr("readonly","readonly"); 
     99            if (typeof window.decsdata[this.value] != "undefined"){ 
     100                $("input[name="+decs.set+"-text]") 
     101                    .attr("value",window.decsdata[this.value].en) 
     102                    .attr("readonly","readonly"); 
     103                $("input[name="+decs.set+"-text|es]") 
     104                    .attr("value",window.decsdata[this.value].es) 
     105                    .attr("readonly","readonly"); 
     106                $("input[name="+decs.set+"-text|pt-br]") 
     107                    .attr("value",window.decsdata[this.value].pt) 
     108                    .attr("readonly","readonly"); 
     109            } 
    106110        }); 
    107111 
     
    122126 
    123127/** 
    124  * Extend the django form and insert decs elements 
    125  */ 
    126 function getterm_event(decsclient_url,lang) { 
     128 * Extend the django form to insert decs and icd10 elements 
     129 */ 
     130function getterm_event(clients,lang) { 
    127131    return function(){ 
    128132        this.parentNode.className = ""; 
    129         if(this.value === 'DeCS'){ 
     133        if (this.value === 'DeCS') { 
     134            client_url = clients['decs_url']; 
    130135            this.parentNode.className = "showdecs"; 
    131136            var decs = make_decs_for(this,lang); 
    132137            $(this).parents('table').find(":input[type=text]").attr("readonly","readonly"); 
    133             if($('#'+decs.id('select')).length === 0){ 
     138            if ($('#'+decs.id('select')).length === 0) { 
    134139                decs.create('div') 
    135140                    .attr('class','decstool') 
     
    137142                    .append(decs.create('select')); 
    138143 
    139                 $.get(decsclient_url,'', 
     144                $.get(client_url,'', 
    140145                    make_decstool_callback(decs),"json"); 
    141146            } 
    142147            $(this.parentNode).find('.decstool :input[type=text]').removeAttr("readonly"); 
    143         }else{ 
     148         
     149        } else if (this.value === 'ICD-10') { 
     150            client_url = clients['icd10_url']; 
     151            this.parentNode.className = "showicd10"; 
     152            var icd10 = make_icd10_for(this,lang); 
     153            $(this).parents('table').find(":input[type=text]").attr("readonly","readonly"); 
     154            if ($('#'+icd10.id('select')).length === 0) { 
     155                icd10.create('div') 
     156                    .attr('class','icd10tool') 
     157                    .appendTo(this.parentNode) 
     158                    .append(icd10.create('select')); 
     159 
     160                $.get(client_url,'', 
     161                    make_icd10tool_callback(icd10),"json"); 
     162            } 
     163            $(this.parentNode).find('.icd10tool :input[type=text]').removeAttr("readonly"); 
     164         
     165        } else { 
    144166            $(this).parents('table').find(":input[type=text]").removeAttr("readonly"); 
    145167        } 
     
    148170 
    149171/** 
    150  * Extend the django form and insert decs elements 
    151  */ 
    152 function search_event(decsclient_url,label,lang) { 
     172 * Extend the django form to insert decs and icd10 elements 
     173 */ 
     174function search_event(clients,label,lang) { 
    153175    return function(){ 
    154176        this.parentNode.className = ""; 
    155177        if(this.value === 'DeCS'){ 
     178            client_url = clients['decs_url']; 
     179            client_decs_url = clients['decs_url']; 
     180            client_icd10_url = clients['icd10_url']; 
     181             
    156182            this.parentNode.className = "showdecs"; 
    157183            var decs = make_decs_for(this,lang); 
     
    180206                        $('#'+decs.id('select')).html(''); 
    181207 
    182                         $.get(decsclient_url+$('#'+decs.id('input')).val(),'', 
     208                        if($(this).parent().siblings().val() === 'DeCS'){ 
     209                            client_url = client_decs_url; 
     210                        } else if($(this).parent().siblings().val() === 'ICD-10'){ 
     211                            client_url = client_icd10_url; 
     212                        } 
     213                        $.get(client_url+$('#'+decs.id('input')).val(),'', 
    183214                            make_decstool_callback(decs), 
    184215                            'json'); 
     
    187218            } 
    188219            $(this.parentNode).find('.decstool :input[type=text]').removeAttr("readonly"); 
     220        } 
     221        else if(this.value === 'ICD-10'){ 
     222            client_url = clients['icd10_url']; 
     223            client_icd10_url = clients['icd10_url']; 
     224            client_decs_url = clients['decs_url']; 
     225             
     226            this.parentNode.className = "showicd10"; 
     227            var icd10 = make_icd10_for(this, lang); 
     228 
     229            $(this).parents('table').find(":input[type=text]").attr("readonly","readonly"); 
     230 
     231            if($(this.parentNode).find('.icd10tool').length === 0){ 
     232                icd10.create('div') 
     233                   .attr('class','icd10tool') 
     234                   .appendTo(this.parentNode) 
     235                   .append(icd10.create('input').bind("keypress", function(e) { 
     236                            if(e.keyCode === 13){ 
     237                                $('#'+icd10.id('button')).click(); 
     238                                return false; 
     239                            } 
     240                        })) 
     241                   .append(icd10.create('button').html(label)); 
     242 
     243                $('#'+icd10.id('button')) 
     244                    .click(function(evt){ 
     245                        var icd10 = make_icd10_for(evt.target,lang); 
     246                        if($('#'+icd10.id('select')).length === 0){ 
     247                            icd10.create('select') 
     248                                .insertAfter(this); 
     249                        } 
     250                        $('#'+icd10.id('select')).html(''); 
     251 
     252                        if($(this).parent().siblings().val() === 'DeCS'){ 
     253                            client_url = client_decs_url; 
     254                        } else if($(this).parent().siblings().val() === 'ICD-10'){ 
     255                            client_url = client_icd10_url; 
     256                        } 
     257                         
     258                        $.get(client_url+$('#'+icd10.id('input')).val(),'', 
     259                            make_icd10tool_callback(icd10), 
     260                            'json'); 
     261                        return false; 
     262                    }); 
     263            } 
     264            $(this.parentNode).find('.icd10tool :input[type=text]').removeAttr("readonly"); 
     265             
    189266        }else{ 
    190267            $(this).parents('table').find(":input[type=text]").removeAttr("readonly"); 
     
    206283        } 
    207284    }); 
    208 } 
    209  
     285}; 
     286 
     287 
     288/** 
     289 * This is the callback for icd10client app 
     290 */ 
     291function make_icd10tool_callback(icd10){ 
     292    return function(data) { 
     293        var lang = icd10.lang.substring(0,2); 
     294        for (var i=0; i < data.length; i++) { 
     295            var option = $("<option>").attr("value", data[i].fields.label) 
     296                .html(data[i].fields.description[lang]) 
     297                .appendTo('#'+icd10.id('select')); 
     298            window.icd10data[ data[i].fields.label ] = data[i].fields.description; 
     299        } 
     300 
     301        $('#'+icd10.id('select')).change(function(evt) { 
     302            icd10 = make_icd10_for(evt.target, icd10.lang); 
     303            $("input#id_"+icd10.set+"-code") 
     304                .attr("value",this.value) 
     305                .attr("readonly","readonly"); 
     306            if (typeof window.icd10data[this.value] != "undefined"){ 
     307                if (typeof window.icd10data[this.value].en != "undefined") { 
     308                    $("input[name="+icd10.set+"-text]") 
     309                        .attr("value",window.icd10data[this.value].en) 
     310                        .attr("readonly","readonly"); 
     311                } else { 
     312                    $("input[name="+icd10.set+"-text]") 
     313                        .attr("value", '') 
     314                        .removeAttr("readonly"); 
     315                } 
     316                if (typeof window.icd10data[this.value].es != "undefined") { 
     317                    $("input[name="+icd10.set+"-text|es]") 
     318                        .attr("value",window.icd10data[this.value].es) 
     319                        .attr("readonly","readonly"); 
     320                } else { 
     321                    $("input[name="+icd10.set+"-text|es]") 
     322                        .attr("value", '') 
     323                        .removeAttr("readonly"); 
     324                } 
     325                if (typeof window.icd10data[this.value].pt != "undefined") { 
     326                    $("input[name="+icd10.set+"-text|pt-br]") 
     327                        .attr("value",window.icd10data[this.value].pt) 
     328                        .attr("readonly","readonly"); 
     329                } else { 
     330                    $("input[name="+icd10.set+"-text|pt-br]") 
     331                        .attr("value", '') 
     332                        .removeAttr("readonly"); 
     333                } 
     334            } 
     335        }); 
     336 
     337        if( data.length === 1){ 
     338            $('#'+icd10.id('select') + " option").attr("selected", "selected"); 
     339        } 
     340 
     341        if($("input#id_"+icd10.set+"-code").val()){ 
     342            var code=$("input#id_"+icd10.set+"-code").val(); 
     343            $('#'+icd10.id('select')) 
     344                .find('option[value='+code+']') 
     345                .attr('selected', 'selected'); 
     346        } else { 
     347            $('#'+icd10.id('select')).change(); 
     348        } 
     349    } 
     350} 
     351 
     352/** 
     353 * A utility to name and create form elements (ICD10) 
     354 */ 
     355function make_icd10_for(node, lang){ 
     356    var set = node.id.match(/[a-z]+-\d+/)[0]; // get django formset prefix 
     357    return {'lang':lang, 
     358            'select':set+"-comboicd10", 
     359            'div':set+'-icd10tools', 
     360            'input':set+'-icd10searchfield', 
     361            'button':set+'-icd10searchbutton', 
     362            'id':function(e){return 'id_'+ this[e];}, 
     363            'create':function(e){return $('<'+e+'>').attr('id',this.id(e)).attr('name',this[e]);}, 
     364            'set':set}; 
     365} 
     366 
  • trunk/opentrials/decsclient/tests.py

    r623 r847  
    2323                         "The dict above is also a dict with 'description' key") 
    2424         
    25         self.assertTrue('en' and 'es' and 'pt' in json[0]['fields']['description'], 
    26                                       "The dict contains labels in 3 languages") 
     25        self.assertTrue('en' in json[0]['fields']['description'], 
     26                        "The dict must contain a label in the language en") 
     27         
     28        self.assertTrue('es' in json[0]['fields']['description'], 
     29                        "The dict must contain a label in the language es") 
     30                                       
     31        self.assertTrue('pt' in json[0]['fields']['description'], 
     32                        "The dict must contain a label in the language pt") 
    2733 
    2834    def test_search(self): 
     
    4046                         "The dict above is also a dict with 'description' key") 
    4147 
    42         self.assertTrue('en' and 'es' and 'pt' in json[0]['fields']['description'], 
    43                                       "The dict contains labels in 3 languages") 
     48        self.assertTrue('en' in json[0]['fields']['description'], 
     49                        "The dict must contain a label in the language en") 
     50         
     51        self.assertTrue('es' in json[0]['fields']['description'], 
     52                        "The dict must contain a label in the language es") 
     53                                       
     54        self.assertTrue('pt' in json[0]['fields']['description'], 
     55                        "The dict must contain a label in the language pt") 
    4456 
    4557        self.assertTrue('Q50.040.020' in (f['fields']['label'] for f in json ), 
  • trunk/opentrials/decsclient/views.py

    r494 r847  
    3636    params = {} 
    3737    results = {} 
     38     
     39    language = request.LANGUAGE_CODE.lower() 
     40    if language == 'pt-br': 
     41        language = 'pt' 
    3842 
    3943    for lang in DECS_LANGS: 
     
    5761    json = '[%s]' % ','.join((JSON_MULTILINGUAL_TERM % (id,desc) for desc,id in results.items())) 
    5862    json_response = json_loads(json) 
    59     json_response.sort(key=lambda x: x['fields']['description'][lang]) 
     63    json_response.sort(key=lambda x: x['fields']['description'][language]) 
    6064         
    6165    return HttpResponse(json_dumps(json_response), mimetype='application/json') 
     
    100104 
    101105def test_search(request): 
    102     return render_to_response("test_search.html", request) 
     106    return render_to_response("decsclient/test_search.html", request) 
  • trunk/opentrials/repository/choices.py

    r464 r847  
    6565    ('DeCS', _('DeCS: Health Sciences Descriptors')), 
    6666    ('ICD-10', _('ICD-10: International Classification of Diseases (10th. rev.)')), 
    67     ('CAS', _('Chemical Abstracts Service')), 
     67    #('CAS', _('Chemical Abstracts Service')), 
    6868] 
  • trunk/opentrials/repository/templates/repository/step_3.html

    r819 r847  
    77        $(document).ready(function() { 
    88            $("div.g select") 
    9                 .change(getterm_event('{% url decs.getdescendants code="C" %}','{{LANGUAGE_CODE}}')) 
     9                .change(getterm_event( 
     10                        {'decs_url': '{% url decs.getdescendants code="C" %}', 
     11                        'icd10_url': '{% url icd10.get_chapters %}'},  
     12                        '{{ LANGUAGE_CODE }}')) 
    1013                .each(function(){$(this).change();}); 
    1114 
    1215            $("div.s select") 
    1316                .change(search_event( 
    14                         '{% url decs.search lang=LANGUAGE_CODE,term="" %}', 
     17                        {'decs_url': '{% url decs.search lang=LANGUAGE_CODE, term="" %}', 
     18                        'icd10_url': '{% url icd10.search lang=LANGUAGE_CODE, term="" %}'}, 
    1519                        '{% trans "Search terms" %}', 
    16                         '{{LANGUAGE_CODE}}')) 
     20                        '{{ LANGUAGE_CODE }}')) 
    1721                .each(function(){$(this).change();}); 
    1822        }); 
  • trunk/opentrials/repository/templates/repository/step_4.html

    r819 r847  
    88            $("div.form select") 
    99                .change(search_event( 
    10                         '{% url decs.search lang=LANGUAGE_CODE,term="" %}', 
     10                        {'decs_url': '{% url decs.search lang=LANGUAGE_CODE, term="" %}', 
     11                        'icd10_url': '{% url icd10.search lang=LANGUAGE_CODE, term="" %}'}, 
    1112                        '{% trans "Search terms" %}', 
    12                         '{{LANGUAGE_CODE}}')) 
     13                        '{{ LANGUAGE_CODE }}')) 
    1314                .each(function(){$(this).change();}); 
    1415        }); 
  • trunk/opentrials/settings.py

    r844 r847  
    122122    'assistance', 
    123123    'decsclient', 
    124 #    'icd10client', 
     124    'icd10client', 
    125125    'diagnostic', 
    126126    'polyglot', 
  • trunk/opentrials/static/css/style.css

    r774 r847  
    787787 
    788788td.showdecs div.decstool { 
     789    display: block; 
     790} 
     791 
     792/* AJAX ICD10 Tools */ 
     793td div.icd10tool { 
     794    display: none; 
     795} 
     796 
     797/*td select,*/ 
     798td div.icd10tool input { 
     799    width: 46%; 
     800} 
     801 
     802td.showicd10 div.icd10tool { 
    789803    display: block; 
    790804} 
  • trunk/opentrials/static/js/submission.utils.js

    r596 r847  
    6161    window.decsdata = {}; 
    6262} 
    63  
     63if( window.icd10data == undefined ){ 
     64    window.icd10data = {}; 
     65} 
    6466/** 
    6567 * A utility to name and create form elements 
     
    8385    return function(data){ 
    8486        var lang = decs.lang.substring(0,2); 
    85         for(var i=0; i<data.length;i++){ 
     87        for(var i=0; i < data.length; i++){ 
    8688            var option = $("<option>").attr("value",data[i].fields.label) 
    8789                .html(data[i].fields.description[lang]) 
     
    9597                .attr("value",this.value) 
    9698                .attr("readonly","readonly"); 
    97             $("input[name="+decs.set+"-text]") 
    98                 .attr("value",window.decsdata[this.value].en) 
    99                 .attr("readonly","readonly"); 
    100             $("input[name="+decs.set+"-text|es]") 
    101                 .attr("value",window.decsdata[this.value].es) 
    102                 .attr("readonly","readonly"); 
    103             $("input[name="+decs.set+"-text|pt-br]") 
    104                 .attr("value",window.decsdata[this.value].pt) 
    105                 .attr("readonly","readonly"); 
     99            if (typeof window.decsdata[this.value] != "undefined"){ 
     100                $("input[name="+decs.set+"-text]") 
     101                    .attr("value",window.decsdata[this.value].en) 
     102                    .attr("readonly","readonly"); 
     103                $("input[name="+decs.set+"-text|es]") 
     104                    .attr("value",window.decsdata[this.value].es) 
     105                    .attr("readonly","readonly"); 
     106                $("input[name="+decs.set+"-text|pt-br]") 
     107                    .attr("value",window.decsdata[this.value].pt) 
     108                    .attr("readonly","readonly"); 
     109            } 
    106110        }); 
    107111 
     
    122126 
    123127/** 
    124  * Extend the django form and insert decs elements 
    125  */ 
    126 function getterm_event(decsclient_url,lang) { 
     128 * Extend the django form to insert decs and icd10 elements 
     129 */ 
     130function getterm_event(clients,lang) { 
    127131    return function(){ 
    128132        this.parentNode.className = ""; 
    129         if(this.value === 'DeCS'){ 
     133        if (this.value === 'DeCS') { 
     134            client_url = clients['decs_url']; 
    130135            this.parentNode.className = "showdecs"; 
    131136            var decs = make_decs_for(this,lang); 
    132137            $(this).parents('table').find(":input[type=text]").attr("readonly","readonly"); 
    133             if($('#'+decs.id('select')).length === 0){ 
     138            if ($('#'+decs.id('select')).length === 0) { 
    134139                decs.create('div') 
    135140                    .attr('class','decstool') 
     
    137142                    .append(decs.create('select')); 
    138143 
    139                 $.get(decsclient_url,'', 
     144                $.get(client_url,'', 
    140145                    make_decstool_callback(decs),"json"); 
    141146            } 
    142147            $(this.parentNode).find('.decstool :input[type=text]').removeAttr("readonly"); 
    143         }else{ 
     148         
     149        } else if (this.value === 'ICD-10') { 
     150            client_url = clients['icd10_url']; 
     151            this.parentNode.className = "showicd10"; 
     152            var icd10 = make_icd10_for(this,lang); 
     153            $(this).parents('table').find(":input[type=text]").attr("readonly","readonly"); 
     154            if ($('#'+icd10.id('select')).length === 0) { 
     155                icd10.create('div') 
     156                    .attr('class','icd10tool') 
     157                    .appendTo(this.parentNode) 
     158                    .append(icd10.create('select')); 
     159 
     160                $.get(client_url,'', 
     161                    make_icd10tool_callback(icd10),"json"); 
     162            } 
     163            $(this.parentNode).find('.icd10tool :input[type=text]').removeAttr("readonly"); 
     164         
     165        } else { 
    144166            $(this).parents('table').find(":input[type=text]").removeAttr("readonly"); 
    145167        } 
     
    148170 
    149171/** 
    150  * Extend the django form and insert decs elements 
    151  */ 
    152 function search_event(decsclient_url,label,lang) { 
     172 * Extend the django form to insert decs and icd10 elements 
     173 */ 
     174function search_event(clients,label,lang) { 
    153175    return function(){ 
    154176        this.parentNode.className = ""; 
    155177        if(this.value === 'DeCS'){ 
     178            client_url = clients['decs_url']; 
     179            client_decs_url = clients['decs_url']; 
     180            client_icd10_url = clients['icd10_url']; 
     181             
    156182            this.parentNode.className = "showdecs"; 
    157183            var decs = make_decs_for(this,lang); 
     
    180206                        $('#'+decs.id('select')).html(''); 
    181207 
    182                         $.get(decsclient_url+$('#'+decs.id('input')).val(),'', 
     208                        if($(this).parent().siblings().val() === 'DeCS'){ 
     209                            client_url = client_decs_url; 
     210                        } else if($(this).parent().siblings().val() === 'ICD-10'){ 
     211                            client_url = client_icd10_url; 
     212                        } 
     213                        $.get(client_url+$('#'+decs.id('input')).val(),'', 
    183214                            make_decstool_callback(decs), 
    184215                            'json'); 
     
    187218            } 
    188219            $(this.parentNode).find('.decstool :input[type=text]').removeAttr("readonly"); 
     220        } 
     221        else if(this.value === 'ICD-10'){ 
     222            client_url = clients['icd10_url']; 
     223            client_icd10_url = clients['icd10_url']; 
     224            client_decs_url = clients['decs_url']; 
     225             
     226            this.parentNode.className = "showicd10"; 
     227            var icd10 = make_icd10_for(this, lang); 
     228 
     229            $(this).parents('table').find(":input[type=text]").attr("readonly","readonly"); 
     230 
     231            if($(this.parentNode).find('.icd10tool').length === 0){ 
     232                icd10.create('div') 
     233                   .attr('class','icd10tool') 
     234                   .appendTo(this.parentNode) 
     235                   .append(icd10.create('input').bind("keypress", function(e) { 
     236                            if(e.keyCode === 13){ 
     237                                $('#'+icd10.id('button')).click(); 
     238                                return false; 
     239                            } 
     240                        })) 
     241                   .append(icd10.create('button').html(label)); 
     242 
     243                $('#'+icd10.id('button')) 
     244                    .click(function(evt){ 
     245                        var icd10 = make_icd10_for(evt.target,lang); 
     246                        if($('#'+icd10.id('select')).length === 0){ 
     247                            icd10.create('select') 
     248                                .insertAfter(this); 
     249                        } 
     250                        $('#'+icd10.id('select')).html(''); 
     251 
     252                        if($(this).parent().siblings().val() === 'DeCS'){ 
     253                            client_url = client_decs_url; 
     254                        } else if($(this).parent().siblings().val() === 'ICD-10'){ 
     255                            client_url = client_icd10_url; 
     256                        } 
     257                         
     258                        $.get(client_url+$('#'+icd10.id('input')).val(),'', 
     259                            make_icd10tool_callback(icd10), 
     260                            'json'); 
     261                        return false; 
     262                    }); 
     263            } 
     264            $(this.parentNode).find('.icd10tool :input[type=text]').removeAttr("readonly"); 
     265             
    189266        }else{ 
    190267            $(this).parents('table').find(":input[type=text]").removeAttr("readonly"); 
     
    206283        } 
    207284    }); 
    208 } 
    209  
     285}; 
     286 
     287 
     288/** 
     289 * This is the callback for icd10client app 
     290 */ 
     291function make_icd10tool_callback(icd10){ 
     292    return function(data) { 
     293        var lang = icd10.lang.substring(0,2); 
     294        for (var i=0; i < data.length; i++) { 
     295            var option = $("<option>").attr("value", data[i].fields.label) 
     296                .html(data[i].fields.description[lang]) 
     297                .appendTo('#'+icd10.id('select')); 
     298            window.icd10data[ data[i].fields.label ] = data[i].fields.description; 
     299        } 
     300 
     301        $('#'+icd10.id('select')).change(function(evt) { 
     302            icd10 = make_icd10_for(evt.target, icd10.lang); 
     303            $("input#id_"+icd10.set+"-code") 
     304                .attr("value",this.value) 
     305                .attr("readonly","readonly"); 
     306            if (typeof window.icd10data[this.value] != "undefined"){ 
     307                if (typeof window.icd10data[this.value].en != "undefined") { 
     308                    $("input[name="+icd10.set+"-text]") 
     309                        .attr("value",window.icd10data[this.value].en) 
     310                        .attr("readonly","readonly"); 
     311                } else { 
     312                    $("input[name="+icd10.set+"-text]") 
     313                        .attr("value", '') 
     314                        .removeAttr("readonly"); 
     315                } 
     316                if (typeof window.icd10data[this.value].es != "undefined") { 
     317                    $("input[name="+icd10.set+"-text|es]") 
     318                        .attr("value",window.icd10data[this.value].es) 
     319                        .attr("readonly","readonly"); 
     320                } else { 
     321                    $("input[name="+icd10.set+"-text|es]") 
     322                        .attr("value", '') 
     323                        .removeAttr("readonly"); 
     324                } 
     325                if (typeof window.icd10data[this.value].pt != "undefined") { 
     326                    $("input[name="+icd10.set+"-text|pt-br]") 
     327                        .attr("value",window.icd10data[this.value].pt) 
     328                        .attr("readonly","readonly"); 
     329                } else { 
     330                    $("input[name="+icd10.set+"-text|pt-br]") 
     331                        .attr("value", '') 
     332                        .removeAttr("readonly"); 
     333                } 
     334            } 
     335        }); 
     336 
     337        if( data.length === 1){ 
     338            $('#'+icd10.id('select') + " option").attr("selected", "selected"); 
     339        } 
     340 
     341        if($("input#id_"+icd10.set+"-code").val()){ 
     342            var code=$("input#id_"+icd10.set+"-code").val(); 
     343            $('#'+icd10.id('select')) 
     344                .find('option[value='+code+']') 
     345                .attr('selected', 'selected'); 
     346        } else { 
     347            $('#'+icd10.id('select')).change(); 
     348        } 
     349    } 
     350} 
     351 
     352/** 
     353 * A utility to name and create form elements (ICD10) 
     354 */ 
     355function make_icd10_for(node, lang){ 
     356    var set = node.id.match(/[a-z]+-\d+/)[0]; // get django formset prefix 
     357    return {'lang':lang, 
     358            'select':set+"-comboicd10", 
     359            'div':set+'-icd10tools', 
     360            'input':set+'-icd10searchfield', 
     361            'button':set+'-icd10searchbutton', 
     362            'id':function(e){return 'id_'+ this[e];}, 
     363            'create':function(e){return $('<'+e+'>').attr('id',this.id(e)).attr('name',this[e]);}, 
     364            'set':set}; 
     365} 
     366 
  • trunk/opentrials/urls.py

    r829 r847  
    4646    url(r'^decs/', include('opentrials.decsclient.urls')), 
    4747     
     48    url(r'^icd10/', include('opentrials.icd10client.urls')), 
     49     
    4850    # setting django-registration to use unique email form 
    4951    url(r'^accounts/register/$', 'registration.views.register',