Skip to content

Instantly share code, notes, and snippets.

@MarceloRab
Created January 31, 2021 19:14
Show Gist options
  • Save MarceloRab/022abb0d211b538de1d483e9838a0044 to your computer and use it in GitHub Desktop.
Save MarceloRab/022abb0d211b538de1d483e9838a0044 to your computer and use it in GitHub Desktop.
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