From baea028f69b768d3c5cf1913171b81e446a9b573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Santanch=C3=A8?= Date: Mon, 23 Oct 2023 20:50:16 -0300 Subject: [PATCH] refactor (heart): change in the order --- .../player/js/heart/blockly-oid-custom.js | 20 +++---- .../player/js/heart/lively-talk-oid-custom.js | 60 +++++++++++++------ 2 files changed, 53 insertions(+), 27 deletions(-) diff --git a/src/adonisjs/public/player/js/heart/blockly-oid-custom.js b/src/adonisjs/public/player/js/heart/blockly-oid-custom.js index 09e2f215..2ace5eab 100644 --- a/src/adonisjs/public/player/js/heart/blockly-oid-custom.js +++ b/src/adonisjs/public/player/js/heart/blockly-oid-custom.js @@ -57,10 +57,10 @@ blocks: 'type': 'field_dropdown', 'name': 'estrutura', 'options': [ - ['Sino atrial', 'ondaP'], - ['Nó atrio ventricular', 'segmentoPR'], ['Sistema His-Purkinje', 'ondaQRS'], - ['Ventrículo', 'segmentoST/OndaT'] + ['Sino atrial', 'ondaP'], + ['Ventrículo', 'segmentoST/ondaT'], + ['Nó atrio ventricular', 'segmentoPR'] ] } ], @@ -70,10 +70,10 @@ blocks: 'type': 'field_dropdown', 'name': 'efeito', 'options': [ - ['Estímulo disparando a despolarização atrial', 'ondaP'], ['Tempo de retardo entre a ativação auricular e ventricular', 'segmentoPR'], ['Condução rápida dos estímulos elétricos nos ventrículos', 'ondaQRS'], ['Intervalo entre o fim da despolarização e o início da repolarização ventricular', 'segmentoST'], + ['Estímulo disparando a despolarização atrial', 'ondaP'], ['Repolarização ventricular', 'ondaT'] ] } @@ -91,9 +91,9 @@ blocks: 'type': 'field_dropdown', 'name': 'image', 'options': [ + [{src: '/player/case/images/heart/images/3movimento.png', width: 200, height: 200, alt: 'heart_mov 3'}, 'ondaQRS'], [{src: '/player/case/images/heart/images/1movimento.png', width: 200, height: 200, alt: 'heart_mov 1'}, 'ondaP'], [{src: '/player/case/images/heart/images/2movimento.png', width: 200, height: 200, alt: 'heart_mov 2'}, 'segmentoPR/segmentoST'], - [{src: '/player/case/images/heart/images/3movimento.png', width: 200, height: 200, alt: 'heart_mov 3'}, 'ondaQRS'], [{src: '/player/case/images/heart/images/5movimento.png', width: 200, height: 200, alt: 'heart_mov 4'}, 'ondaT'] ] } @@ -104,9 +104,9 @@ blocks: 'type': 'field_dropdown', 'name': 'estrutura', 'options': [ - ['Átrio', 'ondaP'], ['Nó AV', 'segmentoPR'], - ['Ventrículo', 'ondaQRS/segmentoST/OndaT'] + ['Átrio', 'ondaP'], + ['Ventrículo', 'ondaQRS/segmentoST/ondaT'] ] } ], @@ -116,10 +116,10 @@ blocks: 'type': 'field_dropdown', 'name': 'efeitoMec', 'options': [ - ['Contração atrial', 'ondaP'], + ['Não existe atividade mecânica', 'segmentoST'], ['Convergência dos estímulos atriais + retardo da condução do estímulo elétrico', 'segmentoPR'], + ['Contração atrial', 'ondaP'], ['Contração ventricular', 'ondaQRS'], - ['Não existe atividade mecânica', 'segmentoST'], ['Relaxamento Ventricular', 'ondaT'] ] } @@ -131,7 +131,7 @@ blocks: 'name': 'efeitoFis', 'options': [ ['Envio de sangue sob pressão do átrio para ventrículos', 'ondaP'], - ['Retadrdo de condução para contração atrial antes da contração ventricular', 'segmentoPR'], + ['Retardo de condução para contração atrial antes da contração ventricular', 'segmentoPR'], ['Envio do sangue para o sistema arterial pulmonar e sistêmico', 'ondaQRS'], ['Representa o início da repolarização ventricular', 'segmentoST'], ['Enchimento dos ventrículos', 'ondaT'] diff --git a/src/adonisjs/public/player/js/heart/lively-talk-oid-custom.js b/src/adonisjs/public/player/js/heart/lively-talk-oid-custom.js index be2dce5f..6994a391 100644 --- a/src/adonisjs/public/player/js/heart/lively-talk-oid-custom.js +++ b/src/adonisjs/public/player/js/heart/lively-talk-oid-custom.js @@ -13,28 +13,39 @@ Oid.customize('foid:lively-talk', { process: function(oid, parameters) { if (parameters) { if (parameters.value == 'simular') { + let erro = 0 oid.know = '' console.log('=== simular') console.log(oid.statements) - if (oid.statements == null || oid.statements.length == 0) + if (oid.statements == null || oid.statements.length == 0){ oid.handleSend('display', {value: '-> Nada a ser processado'}) + erro++ + } else { - if (oid.statements.length > 1 || !Array.isArray(oid.statements[0])) + if (oid.statements.length > 1 || !Array.isArray(oid.statements[0])){ oid.handleSend('display', {value: '-> Ainda há instruções soltas, não posso processar'}) - else { + erro++ + } + else{ let feedback = '' const vstm = oid.statements[0] - if (vstm.length < 5) + if (vstm.length < 5){ feedback += '-> Estão faltando ciclos no meu pobre coração\n' - else if (vstm.length > 5) + erro++ + } + else if (vstm.length > 5){ feedback += '-> Há muitos ciclos no meu coração, ele está fora de controle\n' + erro++ + } let empty = false for (const stm of vstm) { if (stm.onda == null || stm.atvEle == null || stm.atvMec == null) empty = true } - if (empty) feedback += '-> Há uma ou mais instruções incompletas\n' - + if (empty) { + feedback += '-> Há uma ou mais instruções incompletas\n' + erro++ + } // analisando consistencia entre texto e imagem de cada célula let pEle = 0 for (const stm of vstm) { @@ -47,6 +58,7 @@ Oid.customize('foid:lively-talk', { if (pEle > 0) { feedback += `-> O texto que você escolheu em uma das imagens em algum dos blocos não descreve adequadamente a atividade ilustrada. (detalhes em Saiba mais)\n` oid.know += `-> Associação entre textos e imagens inconsistente em ${pEle} blocos na atividade elétrica\n` + erro++ } // analisando consistencia entre texto e imagem atividade mecanica let pMec = 0 @@ -59,10 +71,11 @@ Oid.customize('foid:lively-talk', { if (pMec > 0) { feedback += `-> O texto que você escolheu em uma das imagens em algum dos blocos não descreve adequadamente a atividade ilustrada. (detalhes em Saiba mais)\n` oid.know += `-> Associação entre textos e imagens inconsistente em ${pMec} blocos na atividade mecânica\n` + erro++ } // analisando a ordem das células atividade elétrica - const ordemEle = ['ondaP', 'segmentoPR', 'ondaQRS', 'segmentoST', 'OndaT'] + const ordemEle = ['ondaP', 'segmentoPR', 'ondaQRS', 'segmentoST', 'ondaT'] const max = (vstm.length < 5) ? vstm.length : 5 let iEle = false for (let i = 0; i < max; i++) { @@ -71,8 +84,9 @@ Oid.customize('foid:lively-talk', { iEle = true } if (iEle) { - feedback += `-> Alguma coisa está fora de ordem.\n` + //feedback += `-> Alguma coisa está fora de ordem. (detalhes em Saiba mais)\n` oid.know += `-> Revise a ordem em que o pulso elétrico segue. Do jeito que está, o impulso não segue uma sequência contínua.\n` + erro++ } // analisando a ordem das Ondas ECG let iOnda = false @@ -80,21 +94,27 @@ Oid.customize('foid:lively-talk', { const onda = vstm[i].onda if (onda != null && onda.image != ordemEle[i]) iOnda = true - } + } + if (iOnda){ - feedback += `-> Alguma coisa está fora de ordem.\n` + //feedback += `-> Alguma coisa está fora de ordem. (detalhes em Saiba mais)\n` oid.know += `-> Revise a ordem da onda do ECG. Do jeito que está a onda não segue uma sequência contínua.\n` + erro++ } // analisando a ordem da atividade mecanica + let iMec = false for (let i = 0; i < max; i++) { const onda = vstm[i].atvMec if (onda != null && onda.efeitoFis != ordemEle[i]) - iOnda = true + iMec = true } - if (iOnda){ - feedback += `-> Alguma coisa está fora de ordem.\n` - oid.know += `-> Revise a ordem da atividade mecânica. Do jeito que está, o movimento não permite bombear sangue na sequência correta.\n` + if (iMec){ + //feedback += `-> Alguma coisa está fora de ordem. (detalhes em Saiba mais)\n` + oid.know += `-> Revise a ordem da atividade mecânica. Do jeito que está, o movimento não permite bombear sangue na sequência correta.\n` + erro++ } + if(iMec || iEle || iOnda) + feedback += `-> Alguma coisa está fora de ordem. (detalhes em Saiba mais)\n` // verifica compatibilidade entre as células das três colunas let incompat = false for (let i = 0; i < max; i++) { @@ -108,9 +128,15 @@ Oid.customize('foid:lively-talk', { vstm[i].atvEle.image != vstm[i].atvMec.efeitoFis) incompat = true } - if (incompat) feedback += '-> Há incompatibilidade entre as colunas\n' - + if (incompat){ + feedback += '-> Há incompatibilidade entre as colunas\n' + erro++ + } + if(erro==0){ + feedback = '-> Parabéns! Meu coração esta funcionando!\n' + } oid.handleSend('display', {value: feedback}) + } } }