Created
January 31, 2021 19:14
-
-
Save MarceloRab/022abb0d211b538de1d483e9838a0044 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void main() { | |
print('No Adulto: \n' + ModelPosologia.posologiaAdulto(DIPIRONA)); | |
print('------------'); | |
print('Em Pediatria: \n' + posologiaPed(DIPIRONA)); | |
} | |
/* | |
No Adulto: | |
• 01 cp de 6/6hs | |
------------ | |
Em Pediatria: | |
• Até 05 anos: 10 gts de 6/6hs. | |
• 05 até 10 anos 20 gts de 6/6hs | |
• >10 30 gts de 6/6hs | |
*/ | |
const PED_INIT = '<ped>'; | |
const PED_FIN = '</ped>'; | |
const ADULT_INIT = '<adult>'; | |
const ADULT_FIN = '</adult>'; | |
const DIPIRONA = 'Dipirona'; | |
const PARACETAMOL = 'Paracetamol'; | |
const Map<String, String> mapTeste = { | |
'Dipirona': '''$ADULT_INIT• 01 cp de 6/6hs$ADULT_FIN | |
$PED_INIT• Até 05 anos: 10 gts de 6/6hs. | |
• 05 até 10 anos 20 gts de 6/6hs | |
• >10 30 gts de 6/6hs$PED_FIN | |
''', | |
'Paracetamol': '01 cp de 6/6hs' | |
}; | |
class ModelPosologia { | |
static const ERRO_SELECT_TEXTO = 'Erro ao separar texto indicado.'; | |
static const SEM_NOME_CHAVE = 'Erro ao encontrar algo.'; | |
static String posologiaAdulto(String name) { | |
final body = mapTeste[name]; | |
if (body == null) { | |
print(SEM_NOME_CHAVE); | |
throw TextError(SEM_NOME_CHAVE); | |
} | |
try { | |
return body | |
.substring(body.indexOf(ADULT_INIT) + ADULT_INIT.length, | |
body.indexOf(ADULT_FIN)) | |
.trim(); | |
} catch (e) { | |
print(ERRO_SELECT_TEXTO); | |
//return ERRO_SELECT_TEXTO; | |
throw TextError(ERRO_SELECT_TEXTO); | |
} | |
} | |
static String posologiaPed(String name) { | |
final body = mapTeste[name]; | |
if (body == null) { | |
print(SEM_NOME_CHAVE); | |
throw TextError(SEM_NOME_CHAVE); | |
} | |
try { | |
return body | |
.substring( | |
body.indexOf(PED_INIT) + PED_INIT.length, body.indexOf(PED_FIN)) | |
.trim(); | |
} catch (e) { | |
print(ERRO_SELECT_TEXTO); | |
throw TextError(ERRO_SELECT_TEXTO); | |
//return ERRO_SELECT_TEXTO; | |
} | |
} | |
} | |
const ERRO_SELECT_TEXTO = 'Erro ao separar texto indicado.'; | |
const SEM_NOME_CHAVE = 'Erro ao encontrar algo.'; | |
String posologiaAdulto(String name) { | |
final body = mapTeste[name]; | |
if (body == null) { | |
print(SEM_NOME_CHAVE); | |
throw TextError(SEM_NOME_CHAVE); | |
} | |
try { | |
return body | |
.substring(body.indexOf(ADULT_INIT) + ADULT_INIT.length, | |
body.indexOf(ADULT_FIN)) | |
.trim(); | |
} catch (e) { | |
print(ERRO_SELECT_TEXTO); | |
return ERRO_SELECT_TEXTO; | |
} | |
} | |
String posologiaPed(String name) { | |
final body = mapTeste[name]; | |
if (body == null) { | |
print(SEM_NOME_CHAVE); | |
throw TextError(SEM_NOME_CHAVE); | |
} | |
try { | |
return body | |
.substring( | |
body.indexOf(PED_INIT) + PED_INIT.length, body.indexOf(PED_FIN)) | |
.trim(); | |
} catch (e) { | |
print(ERRO_SELECT_TEXTO); | |
return ERRO_SELECT_TEXTO; | |
} | |
} | |
class TextError implements Exception { | |
final String error; | |
TextError(this.error); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment