Необходим обзор уравнения в красной шапочке

#redcap

Вопрос:

Я работаю над CRF с REDCap для мастер-проекта, однако у меня возникли проблемы с некоторым программированием.

Я пытаюсь настроить уравнение для некоторых интервалов, следующий пример-для температуры тела (в градусах Цельсия). Я пытаюсь интегрировать модель подсчета очков в один из своих инструментов. Если температура 36 38.4 она должна давать 0 очки, если она находится между 32 33.9 она даст 2 очки и т. Д. Моя проблема в том, что как очень низкое, так и очень высокое число дает 4 очки, и я не могу понять, как запрограммировать уравнение.

Вот как REDCap использует условную логику: if (CONDITION, value if condition is TRUE, value if condition is FALSE) .

Это уравнение работает, например:

 if([cpis_temp] > 35.9,if([cpis_temp] > 38.4,if([cpis_temp] >=39, 2, 1),0),2)
 

Теперь я хочу сделать еще один, но с большим количеством интервалов, но я не могу заставить уравнение работать, это интервалы:

  0 if: 36-38.4

 1 if: 34-35.9 or 38.5-38.9

 2 if: 32-33.9

 3 if: 30-31.9 or 39-40.9

 4 if: <=29.9 or >=41
 

Это то, что мне удалось сформулировать до сих пор:

 if([cpis_temp]>1,if([cpis_temp]>20,if([cpis_temp]>=30,if([cpis_temp]>=32,if([cpis_temp]>=34,if([cpis_temp]>=36,if([cpis_temp]=>38.5,if([cpis_temp]>=39,if([cpis_temp]>=41,4,0),3),1),0),1),2),3),4),0)
 

Благодарен за некоторый вклад и помощь!

Ответ №1:

Я бы предложил начать с одного конца этой непрерывной переменной и кодировать оттуда:

 if([cpis_temp] < 30, 4,
  if([cpis_temp] < 32, 3,
    if([cpis_temp] < 34, 2,
      if([cpis_temp] < 36, 1,
        if([cpis_temp] < 38.5, 0,
          if([cpis_temp] < 39, 1,
            if([cpis_temp] < 41, 3, 4)
          )
        )
      )
    )
  )
)
 

Если вы можете попросить своих локальных администраторов установить внешний модуль JavaScript-инжектора для вас, вы могли бы гораздо проще закодировать это в JS и запустить свою собственную функцию, чтобы вернуть категорию из входной температуры.

Комментарии:

1. Большое спасибо! Также оцените совет о JavaScript!