Webpack, OpenMRS и Redux

Hi,

На этой неделе я продолжил работу над DINT-77, который включает в себя работу по улучшению виджета, предоставляемого модулем целостности данных. Этот виджет называется Виджет качества данных, который показывает список правил, нарушенных данными пациента. Например, если дата смерти пациента указана завтра — это неверная информация. Нам нужно пометить это.

Мне потребовалось много времени, чтобы настроить среду для этой проблемы. Из-за некоторых недавних изменений в связанном проекте я не смог просмотреть виджет качества данных. Здесь немного предыстории — определение виджета было предоставлено модулем целостности данных, который интегрируется с эталонным приложением OpenMRS. Виджет загружает свои представления из файлов, предоставленных модулем OpenMRS CoreApps. Таким образом, задействовано несколько проектов, что затрудняет фактическое выявление проблемы. После многих попыток, наблюдения и помощи моего наставника я смог выяснить настоящую проблему.

Таким образом, любой типичный виджет панели мониторинга пациента работает именно так — он содержит в своем определении конфигурацию, определяющую вид, который он будет использовать. Все эти представления включают в себя различные библиотеки, такие как AngularJS, bootstrap и т. д. Все эти библиотеки должны быть доступны для просмотра, когда пользователь просматривает страницу, на которой загружено представление. Это делается с помощью webpack — сборщика модулей. Он компилирует все необходимые библиотеки и исходный файл в один большой файл, который очень легко использовать. Проблема, с которой я столкнулся, заключалась в том, что веб-пакет сохранял скомпилированный файл в неправильном месте, и как только я это понял, проблему было довольно легко исправить.

Из этого опыта я узнал о хорошем инструменте под названием webpack, и во время его изучения я наткнулся на еще одну интересную концепцию — Redux. Это очень аккуратное и мощное решение для одностраничных приложений. Я призываю вас попробовать, этому трудно научиться, но оно того стоит.

Спасибо!

Полезные ссылки