Exemplo n.º 1
0
def runNet():
	#Translate input tags
	"""
		fields = (
			'idade',
			'tosse',
			'hemoptoico',
			'sudorese',
			'febre',
			'emagrecimento',
			'dispneia',
			'fuma',
			'internacaoHospitalar',
			#'sida'
			'sexo'
		)
	"""
	fields = (
		'idade',
		'sexo',
		'dorToracica',
		'hemoptoico',
		'sudorese',
		'febre',
		'dispneia',
		'emagrecimento',
		'tosse',
		'internacaoHospitalar',
		'fuma',
	)

	form = cgi.FieldStorage()
	input =[]
	for f in fields:
		try:
			value = form[f].value
			if f == 'idade':
				input.append(int(value))
			elif value == 'Masculino':
				input.append(1)
			elif value == 'Feminino':
				input.append(-1)
			elif value == 'nao':
				input.append(-1)
			elif value == 'sim' or value=='Sim':
				input.append(1)
			else:
				input.append(0)
		except:
			input.append(0)
	nn = MLP(np.array(input))
	nn.net()
	a = nn.getOutput()[0] - nn.getLimit()
	if nn.getOutput() < nn.getLimit():
		level = a/(1+nn.getLimit())
	else:
		level = a/(1-nn.getLimit())
	outcome  = u"{ 'output': %.03f," %(nn.getOutput())
	outcome += u"  'hThreshold': %.02F," %(nn.getHigherThreshold())
	outcome += u"  'lThreshold': %.02f," %(nn.getLowerThreshold())
	if level < 0:
		outcome += u"  'TB': 'no',"
	else:
		outcome += u"  'TB': 'yes',"
		if nn.getOutput() < nn.getLowerThreshold():
			outcome += u"  'probability': 'baixa',"
		elif nn.getOutput() < nn.getHigherThreshold():
			outcome += u"  'probability': 'média',"
		else:
			outcome += u"  'probability': 'alta',"
	outcome += u" 'threshold' : %.02f }"%(nn.getLimit())
	return outcome.encode('utf-8', 'replace')