Я настраиваю автоматические приглашения для опроса на 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, заключается в том, как вы используете аргументы в функции, а также в формате даты, который может не совпадать с ожидаемым. Давайте разберем вашу ситуацию и предложим решение.
-
Проверка формата даты: Убедитесь, что поле
[survey-date-completed:form-1:value]
содержит значения в правильном формате даты. Если там есть данные в неверном формате или если поле пустое, то это может привести к ошибке при вычислении разницы дат. -
Использование
today
: В вашей функции вы использовали'today'
, что может быть некорректным. Вместо этого используйте текущую дату без кавычек. В REDCap нужно использовать встроенную функцию для получения текущей даты. Например, используйтеdate()
для получения текущей даты. - Правильное значение в выражении: Убедитесь, что вы правильно сравниваете результат.
Попробуйте модифицировать ваше выражение следующим образом:
datediff(date(), [survey-date-completed:form-1:value], 'd', true) >= 7
-
Логика проверки: После внесения изменений проверьте логику вашего проекта. Убедитесь, что в тестовой записи действительно есть дата завершения для формы 1 и что эта дата действительно предшествует текущей дате на более чем 7 дней.
- Тестирование: Запустите тесты для различных записей, чтобы убедиться, что ваша логика работает корректно. Обратите внимание на записи, где форма 1 была завершена менее чем 7 дней назад, и убедитесь, что они корректно обрабатываются.
Если вы выполните эти рекомендации, ваша функция datediff
должна начать правильно выполнять расчет разницы между датами и возвращать ожидаемые результаты. Если фиксируемые проблемы все еще возникают, рассмотрите возможность получения помощи от технической поддержки REDCap.