60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
def cal_score(data1):
|
|
#data = {'name':'张三','sex':'M','age':37,'item':'StepExperiment','result':46}
|
|
person = dict1['person']
|
|
criteria = dict1['criteria']
|
|
if data1['age'] >59:
|
|
data1['age'] = 59
|
|
if data1['age'] <20:
|
|
data1['age'] = 20
|
|
info = data1['sex']+str(data1['age'])
|
|
bz = person[info]
|
|
mx = criteria[bz][data1['item']]
|
|
result = data1['result']
|
|
if data1['item'] == 'reaction':
|
|
for bz1 in mx:
|
|
if result > bz1:
|
|
#print(bz1)
|
|
score = mx.index(bz1,0)
|
|
break
|
|
else:
|
|
score = 5
|
|
else:
|
|
for bz1 in mx:
|
|
if result < bz1:
|
|
#print(bz1)
|
|
score = mx.index(bz1,0)
|
|
break
|
|
else:
|
|
score = 5
|
|
return(score)
|
|
|
|
def cal_bmi(data1):
|
|
# data = {'name':'张三','sex':'M','age':37,'item':'HeightWeight','result':'177.7,97.0'}
|
|
person = dict4['person']
|
|
criteria = dict4['criteria']
|
|
if data1['age'] > 59:
|
|
data1['age'] = 59
|
|
if data1['age'] <20:
|
|
data1['age'] = 20
|
|
info = data1['sex']+str(data1['age'])
|
|
bz = person[info]
|
|
#print(bz)
|
|
result = data1['result']
|
|
#print(data1['code'],result)
|
|
height = int(float(result.split(',')[0]))
|
|
weight = float(result.split(',')[1])
|
|
if str(height) not in criteria[bz]:
|
|
score = 1
|
|
else:
|
|
mx = criteria[bz][str(height)]
|
|
if weight < mx[0]:
|
|
score = 1
|
|
elif weight < mx[1]:
|
|
score = 3
|
|
elif weight < mx[2]:
|
|
score = 5
|
|
elif weight <= mx[3]:
|
|
score = 3
|
|
elif weight > mx[3]:
|
|
score = 1
|
|
return score |