Fix bug in backend setting.

This commit is contained in:
邱博亞 2024-08-20 23:41:42 +08:00
parent 8459e2e191
commit c049ad8050
5 changed files with 43 additions and 18 deletions

View File

@ -14,6 +14,9 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
super
@app_title = "coloncancerpredict2"
end
def yaml_load(v)
YAML.load(v)
end
def index
@tags = @module_app.tags
@categories = @module_app.categories.enabled
@ -69,7 +72,7 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
end
else
if value.length > 2
@form_to_show.form_show[num.to_s][key.to_s] = YAML.load(value)
@form_to_show.form_show[num.to_s][key.to_s] = yaml_load(value)
else
@form_to_show.form_show[num.to_s][key.to_s] = []
end
@ -92,7 +95,7 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
end
else
if sub_value.length > 2
@form_to_show.form_show[ num.to_s ][ sub_property ][params[:locale].to_s] = YAML.load(sub_value)
@form_to_show.form_show[ num.to_s ][ sub_property ][params[:locale].to_s] = yaml_load(sub_value)
else
@form_to_show.form_show[ num.to_s ][ sub_property ][params[:locale].to_s] = []
end
@ -157,7 +160,7 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
end
else
if value.length > 2
@form_to_show.form_show_in_result[num.to_s][key.to_s] = YAML.load(value)
@form_to_show.form_show_in_result[num.to_s][key.to_s] = yaml_load(value)
else
@form_to_show.form_show_in_result[num.to_s][key.to_s] = []
end
@ -180,7 +183,7 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
end
else
if sub_value.length > 2
@form_to_show.form_show_in_result[ num.to_s ][ sub_property ][params[:locale].to_s] = YAML.load(sub_value)
@form_to_show.form_show_in_result[ num.to_s ][ sub_property ][params[:locale].to_s] = yaml_load(sub_value)
else
@form_to_show.form_show_in_result[ num.to_s ][ sub_property ][params[:locale].to_s] = []
end
@ -216,7 +219,7 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
@form_to_show[item] = item_hash
elsif @form_to_show[item].class == Array
if params_cancer[item].class != Array
@form_to_show[item] = YAML.load(params_cancer[item]) rescue []
@form_to_show[item] = yaml_load(params_cancer[item]) rescue []
else
@form_to_show[item] = params_cancer[item]
end
@ -226,7 +229,7 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
end
end
@size = ['small','medium','large']
@size.each{|size| @form_to_show[size] = params["coloncancerpredictfields2s"][size]}
@size.each{|size| @form_to_show[size] = params["coloncancerpredictfields2s"][size].to_h}
@file_path = Rails.root.to_s + '/app/assets/images/predict_tool'
if !Dir.exist? @file_path
FileUtils.mkdir_p @file_path
@ -422,8 +425,8 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
else
@table_str_left += '<div class= "cancer-btn-group cancer_form_field" id="'+@field_property["variable"]+'" style="float:left;clear:right;">'
@field_property["choice_fields"].each do |create_choice|
@table_str_left += '<button class="cancer_table_btn btn btn-default btn-sm">'+create_choice.titleize+'</button>'
@table_str_left += '<input type="hidden" value="0" name="'+create_choice+'"/>'
@table_str_left += '<button class="cancer_table_btn btn btn-default btn-sm">'+create_choice.to_s.titleize+'</button>'
@table_str_left += '<input type="hidden" value="0" name="'+create_choice.to_s+'"/>'
end
@table_str_left += '</div>'
end
@ -481,8 +484,8 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
else
@table_str_right += '<div class= "cancer-btn-group cancer_form_field" id="'+@field_property["variable"]+'" style="float:left;clear:right;">'
@field_property["choice_fields"].each do |create_choice|
@table_str_right += '<button class="cancer_table_btn btn btn-default btn-sm">'+create_choice.titleize+'</button>'
@table_str_right += '<input type="hidden" value="0" name="'+create_choice+'"/>'
@table_str_right += '<button class="cancer_table_btn btn btn-default btn-sm">'+create_choice.to_s.titleize+'</button>'
@table_str_right += '<input type="hidden" value="0" name="'+create_choice.to_s+'"/>'
end
@table_str_right += '</div>'
end
@ -573,8 +576,8 @@ class Admin::Coloncancerpredict2sController < OrbitAdminController
else
@table_result_choice_fileds += '<div class= "cancer-btn-group cancer_form_field" id="'+@field_property["variable"]+'" style="float:left;clear:right;">'
@field_property["choice_fields"].each do |create_choice|
@table_result_choice_fileds += '<button class="cancer_table_btn btn btn-default btn-sm">'+create_choice.titleize+'</button>'
@table_result_choice_fileds += '<input type="hidden" value="0" name="'+create_choice+'"></input>'
@table_result_choice_fileds += '<button class="cancer_table_btn btn btn-default btn-sm">'+create_choice.to_s.titleize+'</button>'
@table_result_choice_fileds += '<input type="hidden" value="0" name="'+create_choice.to_s+'"></input>'
end
@table_result_choice_fileds += '</div>'
end

View File

@ -1,4 +1,13 @@
module Admin::Coloncancerpredict2sHelper
def cc2_yaml_dump(arr)
if arr.blank?
'[]'
elsif arr.class != String
'[' + arr.map{|s| (s.is_a?(String) && !(s.is_i?) && s.include?(' ')) ? "\"#{s}\"" : s}.join(', ') + ']'
else
arr
end
end
def create_pagination(page=1,fields=Coloncancerpredictrecord2.all,extra_params="")
page = 1 if page == 0
per_page_num = 10.0

View File

@ -18,7 +18,7 @@ class Coloncancerpredictfields2s
"3"=>{"variable"=>"lymph_nodes_positive", "name"=>{"zh_tw"=>"區域淋巴結侵犯數目<br/>(Regional lymph nodes positive)", "en"=>"Regional lymph nodes positive"}, "is_num"=>1, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"此變項為預測重要變數,若無此資訊預測容易失真。", "en"=>"Regional lymph nodes positive is a key predictive variable. If this information is omitted, the prediction result would be biased."}, "choice_fields"=>{"zh_tw"=>["未知"], "en"=>["unknown"]}, "range"=>[0, 90], "right"=>1, "is_float"=>0, "need_map_values"=>0, "revert_value"=>0, "map_values"=>[]},
"4"=>{"variable"=>"crm", "name"=>{"zh_tw"=>"病理環切緣<br/>(Circumferential resection margin(per 0.1 mm))", "en"=>"Circumferential resection margin (per 0.1 mm)"}, "is_num"=>1, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"", "en"=>""}, "choice_fields"=>{"zh_tw"=>[], "en"=>[]}, "range"=>[0, 980], "right"=>0, "is_float"=>1, "need_map_values"=>0, "revert_value"=>0, "map_values"=>[]},
"5"=>{"variable"=>"grade", "name"=>{"zh_tw"=>"腫瘤級數<br/>(Tumor grade)", "en"=>"Tumor grade"}, "is_num"=>0, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"腫瘤級數代表腫瘤組織與正常組織間的分化程度,若無分化級數資訊,請選擇“未知”選項,將以級數 1 進行預測。", "en"=>"The grade refers to how different the cancer cells are from normal cells. Please select “unknown” if there is no information about grade. The prediction model would use “grade 2” as the alternative variable."}, "choice_fields"=>{"zh_tw"=>["1", "2", "3", "未知"], "en"=>["1", "2", "3", "unknown"]}, "range"=>[], "right"=>1, "is_float"=>0, "need_map_values"=>0, "revert_value"=>0, "map_values"=>[]},
"6"=>{"variable"=>"pstage", "name"=>{"zh_tw"=>"病理分期<br/>(pathologic stage)", "en"=>"Pathologic stage"}, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"若無分期資訊,請選擇“未知”選項,將以病理分期第 1 期進行預測。", "en"=>"ER status describes the status of estrogen receptor. Please select “unknown” if there is no information about ER status. The prediction model would use “Positive” (the majority class) as the alternative variable."}, "choice_fields"=>{"zh_tw"=>["1", "2", "3", "4", " 未知"], "en"=>["positive", "negative", "unknown"]}, "is_num"=>0, "range"=>[], "right"=>0, "is_float"=>0, "revert_value"=>0, "map_values"=>[], "need_map_values"=>0},
"6"=>{"variable"=>"pstage", "name"=>{"zh_tw"=>"病理分期<br/>(Pathological stage)", "en"=>"Pathological stage"}, "is_num"=>0, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"若無分期資訊,請選擇“未知”選項,將以病理分期第 1 期進行預測。", "en"=>"Please select “unknown” if there is no information about “Pathological stage”. The prediction model would use “1th stage” as the alternative variable."}, "choice_fields"=>{"zh_tw"=>["1", "2", "3", "4", "未知"], "en"=>["1", "2", "3", "4", "unknown"]}, "range"=>[], "right"=>0, "is_float"=>0, "need_map_values"=>0, "revert_value"=>0, "map_values"=>[]},
"7"=>{"variable"=>"pi", "name"=>{"zh_tw"=>"神經侵襲<br/>(Perineural Invasion)", "en"=>"Perineural Invasion"}, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"若無神經侵襲資訊,請選擇“未知”選項,將以未神經侵襲進行預測。", "en"=>""}, "choice_fields"=>{"zh_tw"=>["", "", "未知"], "en"=>["Yes", "No", "unknown"]}, "is_num"=>0, "range"=>[], "right"=>1, "is_float"=>0, "revert_value"=>0, "map_values"=>[], "need_map_values"=>0},
"8"=>{"variable"=>"obstruction", "name"=>{"zh_tw"=>"腸阻塞<br/>(Obstruction)", "en"=>"Obstruction"}, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"若無腸阻塞資訊,請 選擇“未知”選項,將以無腸阻塞進行預測。", "en"=>""}, "choice_fields"=>{"zh_tw"=>["", "", "未知"], "en"=>["Yes", "No", "unknown"]}, "is_num"=>0, "range"=>[], "right"=>0, "is_float"=>0, "revert_value"=>0, "map_values"=>[], "need_map_values"=>0},
"9"=>{"variable"=>"perforation", "name"=>{"zh_tw"=>"腸穿孔<br/>(Perforation)", "en"=>"Perforation"}, "hint"=>{"zh_tw"=>"", "en"=>""}, "comment_text"=>{"zh_tw"=>"若無腸阻塞資訊,請選擇“未知”選項,將以無腸穿孔進行預測。", "en"=>""}, "choice_fields"=>{"zh_tw"=>["", "", " 未知"], "en"=>["Yes", "No", "unknown"]}, "is_num"=>0, "range"=>[], "right"=>1, "is_float"=>0, "revert_value"=>0, "map_values"=>[], "need_map_values"=>0}

View File

@ -16,6 +16,7 @@
<%else%>
<% @disp_value = @value %>
<%end%>
<% @disp_value = cc2_yaml_dump(@disp_value) if value_type == 'Array' %>
<% field_type = ((value_type == 'String' || value_type == 'Array' || value_type == 'Float') ? "text_field" : value_type) %>
<% if value_type == 'Fixnum' %>
<% if @value == 1%>

View File

@ -277,15 +277,27 @@
<div><%= form.check_box "form_result_is_right",{:checked=>false,:class=>"checkbox",:style=>"float: left;position: relative;left: 0;transform: none!important;margin-left: 1em;",:id=>"form_result_is_right"}%></div>
<%end%>
<div style="clear:both;"></div>
<% @create_items = ['years','table_above_texts','text_above_texts','surgery_only_texts','extra_texts','extra_therapy_texts','danger_texts','texts_between_Result_and_result_block'] %>
<% @create_items.each do |item|%>
<% @create_items = ['years','table_above_texts','text_above_texts','surgery_only_texts','extra_texts','extra_therapy_texts','danger_texts','texts_between_Result_and_result_block']
array_indices = [0]
%>
<% @create_items.each_with_index do |item, i|%>
<label for="<%=item%>" style="float: left;margin-right:1em;width:11em;"><%= t('coloncancerpredict2.'+item)+':' %></label>
<% if @form_to_show[item].class == BSON::Document || @form_to_show[item].class == Hash %>
<%= form.fields_for item do |locale_fields|%>
<%= locale_fields.text_field I18n.locale.to_s,{:value=>@form_to_show[item][I18n.locale.to_s] ,:id=> item,:style=>'width:calc(100% - 16em)'} %>
<% value = @form_to_show[item][I18n.locale.to_s]
if array_indices.include?(i)
value = cc2_yaml_dump(value)
end
%>
<%= locale_fields.text_field I18n.locale.to_s,{:value=> value,:id=> item,:style=>'width:calc(100% - 16em)'} %>
<% end %>
<% else %>
<%= form.text_field item,{:value=>@form_to_show[item],:id=> item,:style=>'width:calc(100% - 16em)'} %>
<% value = @form_to_show[item]
if array_indices.include?(i)
value = cc2_yaml_dump(value)
end
%>
<%= form.text_field item,{:value=> value,:id=> item,:style=>'width:calc(100% - 16em)'} %>
<% end %>
<div style="clear:both;"></div>
<% end %>