Monday, September 29, 2014

Русские сообщения в правилах.

Правила в OpenClinica загружаются из XML файлов, которые должны быть сохранены в ANSI. Тут возникает проблема, как загрузить сообщение на русском языке, особенно если у нас на компьютере не русская локаль.
Делается это просто, но придется непосредственно залезть в базу данных.
Вносим в наше правило какое-нибудь уникально сообщение, например:

<Message>RULE 1 MESSAGE</Message>

Сохраняем файл и загружаем его в ОпК.
Теперь запускаем pgAdmin, подключаемся к базе данных openclinica и открываем Query.
Убираем все из окна и вводим следующий SQL оператор:

update rule_action set message = 'Сообщение правила 1'
where message = 'RULE 1 MESSAGE';

нажимаем F5 и убеждаемся что все выполнено без ошибок.
Теперь при срабатывании правила будет появляться новое сообщение на русском языке.

Sunday, September 28, 2014

Новая версия. OpenClinica 3.3

Между тем новая версия уже доступна для загрузки.


Проблема при экспорте данных

Неприятный баг обнаружился при экспорте данных.


При попытке экспортировать некоторые датасеты появляется сообщение об ошибке:
The extract data job failed with the message:
For input string: "19,7"
More information may be available in the log files.   

Ошибка как-то связана с неанглийскими данными (в интернете ссылки на эту ошибку у других неаглосаксов здесь и здесь) но носит какой-то несистематический характер - в сообщении об ошибке появляются разные цифры ("20,2","20,8","4,8", "1,1" ...), иногда удавалось экспортировать в ODM, иногда - нет.
Пытался найти данные которые вызывают ошибку - не получается. Например, в одной из форм единственное поле, которое вызывает ошибку - это дата. При этом никаких особенно странных дат там нет, к тому же если экспортировать по отдельности подписаные и неподписаные формы то все проходит.
В другой форме убрал из датасета все даты - все равно ошибка.

Как предположение можно рассматривать несоответствие форматов дат в ОпК и на сервере, проверить.

Сообщение об ошибке не переведено на русский, значит его нет в файлах properties. Видимо часть относительно нового кода.

Вот тут исходник с функцией, которая выдает ошибку, но она просто пингует сервер на предмет окончания работы, дальше уже надо разбираться в коде.