31 May

Sinatra və Ruby.

Ruby on Rail möhtəşəm bir Web Frameworkdır. O Ruby programlaşdırma dilinin güclü və effektiv tərəflərini isitfade edib gısa bir zamanda web saytları hazırlamag imkan verir. Lakin Ruby ilə ancag o yox, başka bir Frameworkda işləyir. Söhbət indi Sinatra gedəcək. Qısa, lakonik web applikeyşnları yaratmag üçün ideal bir instrumentdir. Desəm ki Ruby nin en güclü GUİ lərdən biridir – yanılmaram. Bəli, web GUİ. İndiki zaman web aplikeyşnlar digər GUİləri sıxışdırır. Programı yükləyib install eləmə vaxtları keçib gedəcək. Lazım olan şeylər isə ancag Brouser və İnternetdir. Bunlar isə indi hamıda var.

Sinatra barədə bir dəfə blogumda yazmışdım. Məsələn bu saytı əskərlikdən əvvəl yazmışdım – “Небольшое веб приложение”. Yada bu programı – Sinatra ilə brauserdən Arduinonu idarə etməsi.

Bir neçə gün Procam Hesablama Cədvəli ilə tanış oldum. Bu hesablama cədvəli Tibbdə istifadə olunur və bir neçə bədən faktorları cəmləyib İnfarktın gələcəkdə yaranması barədə məlumat verir. Bir neçə parametr daxildir, lakin hər dəfə onlarin hesablaması vaxt aparır. Ona görə gərara gəldim ki bir web program yazım bunu hesablasın. Sinatra bunun üçün əla yaraşır. Esas kod belə alındı – rb file :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
require 'sinatra' # Sinatra gemi daxil edirik
require 'sinatra/param' # Bu gem parametrləri yoxlayır

#Standart Sintra Route - bunlar esas prinsipdir və ətraflı Sinatra saytında oxumag olar.

get '/' do
  erb :index
end

not_found do
  erb :notfound, :layout => false #Buna standart layoutu göstermesin.
end


get '/procam' do
  erb :procam
end


post '/result' do
    #Parametrlərin yoxlanılması
    param :niko,    String, required: true
    param :sugar,   String, required: true
    param :fam,     String, required: true
   
    param :age,     Integer, min: 20, max: 65
    param :sys,     Integer, min: 60, max: 260
    param :try,     Integer, min: 0, max: 999
    param :hdl,     Integer, min: 0, max: 999
    param :ldl,     Integer, min: 0, max: 999
    #Bir az Ruby Kod
    @age = params[:age].to_i
    @sys = params[:sys].to_i
    @niko = params[:niko]
    @fam = params[:fam]
    @sugar = params[:sugar]
    @try = params[:try].to_i
    @hdl = params[:hdl].to_i
    @ldl = params[:ldl].to_i
   
    @punkt = 0
    @line = ""
    @line2 = ""
    #Cədvəldən götürülən məlumat
    if @age >= 40 and @age <= 44
        @punkt = @punkt + 6
    elsif  @age >= 45 and @age <= 49
        @punkt = @punkt + 11
    elsif @age >= 50 and @age <= 54
        @punkt = @punkt + 16
    elsif @age >= 55 and @age <= 59
        @punkt = @punkt + 21
    elsif @age >= 60 and @age <= 65
        @punkt = @punkt + 26
    end
   
    if @sys >= 120 and @sys <= 129
        @punkt = @punkt + 2
    elsif @sys >= 130 and @sys <=139
        @punkt = @punkt + 3
    elsif @sys >= 140 and @sys <= 159
        @punkt = @punkt + 5
    elsif @sys >=160
        @punkt = @punkt + 8
    end
   
    if @niko === "Yes"
        @punkt = @punkt + 8
    end

    if @sugar === "Yes"
        @punkt = @punkt + 6
    end

    if @fam === "Yes"
        @punkt = @punkt + 4
    end
   
    if @try > 100 and  @try <= 149
        @punkt = @punkt + 2
    elsif @try >= 150 and @try <= 199
        @punkt = @punkt + 3
    elsif @try >=200
        @punkt = @punkt + 4
    end

    if @hdl < 35
        @punkt = @punkt + 11
    elsif @hdl >= 35 and @hdl <= 44
        @punkt = @punkt + 8
    elsif @hdl >= 45 and @hdl <= 54
        @punkt = @punkt + 5
    end


    if @ldl >= 100 and @ldl <= 129
        @punkt = @punkt + 5
    elsif @ldl >= 130 and @ldl <= 159
        @punkt = @punkt + 10
    elsif @ldl >= 160 and @ldl <= 189
        @punkt = @punkt + 14
    elsif @ldl >= 190
        @punkt = @punkt + 20
    end
    #Cədvəldən götürülən məlumat
    if @punkt <= 20
        @line = "You Infarkt Risiko is < 1% "
    elsif @punkt == 21
        @line = "You Infarkt Risiko is 1.1% "
    elsif @punkt == 22
        @line = "You Infarkt Risiko is 1.2% "
    elsif @punkt == 23
        @line = "You Infarkt Risiko is 1.3% "
    elsif @punkt == 24
        @line = "You Infarkt Risiko is 1.4% "
    elsif @punkt == 25
        @line = "You Infarkt Risiko is 1.6% "
    elsif @punkt == 26
        @line = "You Infarkt Risiko is 1.7% "
    elsif @punkt == 27
        @line = "You Infarkt Risiko is 1.8% "
    elsif @punkt == 28
        @line = "You Infarkt Risiko is 1.9% "
    elsif @punkt == 29
        @line = "You Infarkt Risiko is 2.3% "
    elsif @punkt == 30
        @line = "You Infarkt Risiko is 2.4% "
    elsif @punkt == 31
        @line = "You Infarkt Risiko is 2.8% "
    elsif @punkt == 32
        @line = "You Infarkt Risiko is 2.9% "
    elsif @punkt == 33
        @line = "You Infarkt Risiko is 3.3% "
    elsif @punkt == 34
        @line = "You Infarkt Risiko is 3.5% "
    elsif @punkt == 35
        @line = "You Infarkt Risiko is 4.0% "
    elsif @punkt == 36
        @line = "You Infarkt Risiko is 4.2% "
    elsif @punkt == 37
        @line = "You Infarkt Risiko is 4.8% "
    elsif @punkt == 38
        @line = "You Infarkt Risiko is 5.1% "
    elsif @punkt == 39
        @line = "You Infarkt Risiko is 5.7% "
    elsif @punkt == 40
        @line = "You Infarkt Risiko is 6.1% "
    elsif @punkt == 41
        @line = "You Infarkt Risiko is 7.0% "
    elsif @punkt == 42
        @line = "You Infarkt Risiko is 7.4% "
    elsif @punkt == 43
        @line = "You Infarkt Risiko is 8.0% "
    elsif @punkt == 44
        @line = "You Infarkt Risiko is 8.8% "
    elsif @punkt == 45
        @line = "You Infarkt Risiko is 10.2% "
    elsif @punkt == 46
        @line = "You Infarkt Risiko is 10.5% "
    elsif @punkt == 47
        @line = "You Infarkt Risiko is 10.7% "
    elsif @punkt == 48
        @line = "You Infarkt Risiko is 12.8% "
    elsif @punkt == 49
        @line = "You Infarkt Risiko is 13.2% "
    elsif @punkt == 50
        @line = "You Infarkt Risiko is 15.5% "
    elsif @punkt == 51
        @line = "You Infarkt Risiko is 16.8% "
    elsif @punkt == 52
        @line = "You Infarkt Risiko is 17.5% "
    elsif @punkt == 53
        @line = "You Infarkt Risiko is 19.6% "
    elsif @punkt == 54
        @line = "You Infarkt Risiko is 21.7% "
    elsif @punkt == 55
        @line = "You Infarkt Risiko is 22.2% "
    elsif @punkt == 56
        @line = "You Infarkt Risiko is 23.8% "
    elsif @punkt == 57
        @line = "You Infarkt Risiko is 25.1% "
    elsif @punkt == 58
        @line = "You Infarkt Risiko is 28.0% "
    elsif @punkt == 59
        @line = "You Infarkt Risiko is 29.4% "
    elsif @punkt >= 60
        @line = "You Infarkt Risiko is >30.0% "
    end

    if @sys >= 130 and @sys <= 139
        if @punkt < 54
            @line2 = "No Medicaments, but You need preventive Healthcare."
        elsif @punkt >= 54
            @line2 = "You need medicamentose Hypolipidemic Therapy"
        end
    elsif @sys >= 140
        @line2 = "You need Medicamentose Therapy for your Arterial Pressuer and Hyperlipidemie."
    end
    #Nəticənin elan olunması və result.erb faylın gaytarılması
    erb :result
end

Bu programa məlumatı daxil edəndən sonra o nəticəni cədvəl ilə mügayisə edir və nəticəni gaytarır. Tam program kodu Github seyifemde, hazır Web Sayt isə Heroku da – procsin.herokuapp.com baxmag olar.
Dizayn əlavə olunandan sonra, tərcümə üzərində işləməyə planlarım var. Ola bilər ki digər cədvəllər də əlavə olunsun.

PS: 404 Error seyife – Windows Crash Style :)

Tweet about this on TwitterShare on FacebookShare on Google+Share on RedditShare on VK