Сервис для получения медицинских данных из различных источников
«ЛАНИТ-ТЕРКОМ» разработан сервис для получения медицинских данных из различных источников и их отображения в едином формате для дальнейшего использования в исследованиях. Заказчик разработки - израильская компания, предоставляющая услуги интеграции и управления данными для организаций, занимающихся медицинскими исследованиями.
Основные задачи проекта:
- Разработка удобного интерфейса для добавления в систему множества источников данных, имеющих различную структуру и не поддерживающих единый протокол передачи данных, без необходимости изменения кода системы.
- Поддержка высокой производительности системы, поскольку госпиталь может хранить большое количество данных (до нескольких терабайт).
- Обеспечение абстракции и анонимизации данных системой, так как медицинская информация не может быть передана исследователям в необработанном виде по причине запрета на раскрытие персональных данных пациентов.
- Реализация управления бизнес-процессами, такими как добавление нового исследователя или запрос на доступ к данным.
- Проведение разработки на открытых технологиях, не требующих платы за коммерческое использование.
Компоненты решения:
- Система ETL (извлечение, преобразование, загрузка) для извлечения данных из различных источников, преобразования и загрузки в базу данных;
- Редактор для работы с соединениями с источниками данных и разработки правил ETL;
- База данных для хранения необходимой информации;
- Балансировщик нагрузки;
- Пользовательский интерфейс в виде веб-страниц;
- Фреймворк Activiti для управления бизнес-процессами.
Технологии:
Бизнес-логика реализована на языке Java, с использованием фреймворков Spring и Hibernate. В качестве базы данных используется PostgreSQL, для реализации пользовательского интерфейса – HTML5/CSS3/AngularJS/Bootstrap. Поддерживаются источники данных в СУБД PostgreSQL и Apache Impala. Решение развёрнуто в облаке Amazon Web Services.