Функция Datediff с датой сегодня и датой завершения опроса постоянно возвращает ложное значение

Вопросы и ответы

Я настраиваю автоматические приглашения для опроса на REDCap, где форма-2 должна быть отправлена через 7 дней после того, как участник заполнил форму-1. Проблема в том, что есть участники, которые уже заполнили форму-1 некоторое время назад, поэтому я не могу выбрать “Отправить приглашение через 7 дней после…” на этапе 3 автоматизации приглашений, так как приглашение будет отправлено участникам, которые должны получить его раньше.

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

datediff('today',[survey-date-completed:form-1:value],'d',true) >= 7

Однако, когда я протестировал это с записью, в которой форма-1 была завершена более 7 дней назад, логика возвращает false, и я не уверен, почему.

Я был бы очень признателен за любую помощь!

Ответ

Причина, по которой ваша функция datediff возвращает false, заключается в том, как вы используете аргументы в функции, а также в формате даты, который может не совпадать с ожидаемым. Давайте разберем вашу ситуацию и предложим решение.

  1. Проверка формата даты: Убедитесь, что поле [survey-date-completed:form-1:value] содержит значения в правильном формате даты. Если там есть данные в неверном формате или если поле пустое, то это может привести к ошибке при вычислении разницы дат.

  2. Использование today: В вашей функции вы использовали 'today', что может быть некорректным. Вместо этого используйте текущую дату без кавычек. В REDCap нужно использовать встроенную функцию для получения текущей даты. Например, используйте date() для получения текущей даты.

  3. Правильное значение в выражении: Убедитесь, что вы правильно сравниваете результат.

Попробуйте модифицировать ваше выражение следующим образом:

datediff(date(), [survey-date-completed:form-1:value], 'd', true) >= 7
  1. Логика проверки: После внесения изменений проверьте логику вашего проекта. Убедитесь, что в тестовой записи действительно есть дата завершения для формы 1 и что эта дата действительно предшествует текущей дате на более чем 7 дней.

  2. Тестирование: Запустите тесты для различных записей, чтобы убедиться, что ваша логика работает корректно. Обратите внимание на записи, где форма 1 была завершена менее чем 7 дней назад, и убедитесь, что они корректно обрабатываются.

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

Оцените материал
Добавить комментарий

Капча загружается...