Версия 0.0.1

Версията

Днес публикувах версия 0.0.1 на Аренал сървъра. Базовия URL на услугите е http://arenal.skyware-group.com:8080/Arenal/api. В тази версия е напълно завършена функционалността, свързана с публикуване на НМДД. Реализираните операциите са както следва:

  1. Регистрация на лекар-издател (с токен на софтуерен доставчик);
  2. Преглед на регистрация на лекар-издател (с неговия собствен токен);
  3. Обновяване на информацията за лекар-издател (с неговия собствен токен);
  4. Прекратяване на регистрацията на лекар-издател (с неговия собствен токен);
  5. Регистриране на направление (с токена на лекаря-издател);
  6. Преглед на направление (с токена на направлението);
  7. Обновяване на направление (с токена на направлението);
  8. Анулиране (изтриване) на направление (с токена на направлението);

Както е видно, горните операции са всъщност CRUD операции върху обектите Publisher и Card.

В допълнение към горните има и редица публични данни от типа на списък със специалности, пакети и изследвания и др. Тъй като тези функции работят без автентикация, можете да ги виждате свободно. Ето един пример: Списък с валидни специалности. ВАЖНО: Във финалната версия публичните функции може да отпаднат, тъй като те нямат отношение към функционирането на системата.

Промени в базата данни.

В базата данни направих много промени свързани с денормализацията на модела, както и с прецизирането на “номенклатурните” данни. Изключение от това е номенклатурата МКБ, която за момента “виси” и най-вероятно няма да участва във валидацията на данните, поне докато не уеднаквим базите си.

Тестове с реални данни.

Направих тестове с реални данни с хиляди направления (взети от реални XML отчети на различни лаборатории) и за мое щастие, нищо прието от НЗОК не беше отхвърлено, което означава че валидациите на този етап са ОК и са готови за продукционна работа. При тестване успявам да постигна над 150 транзакции в минута, което за тестови сървър (Core 2 Duo, 4GB RAM, single SATA disk, Ubuntu 14.04 LTS) е повече от добре. И то с еднонишков клиент.

Документация.

Започнатото преди wiki е остаряло както като подход на документиране, така и като съдържание. Днес го обнових като софтуер и малко по малко ще обновя съдържанието му. Моля желаещите да получат достъп да ми пишат чрез тази форма.

Клиентска библиотека.

Успоредно с писането на сървъра пиша и клиентска библиотека. Тя е реализирана на .NET 4.0 Client Profile и е написана на VB.NET. Всъщност с нея правя и тестовете. Библиотеката съдържа обектния модел, неговата XML сериалиазция, прихващане на грешки и съвсем опростено извикване на функциите. Ето един съвсем прост пример:

Както е видно от примера по горе, рутинната работа по регистрация на НМДД е изключително проста и се свежда до:

Забележка: УИН и имената на лекаря в примера са от регистъра на БЛС и не са лични данни. Лечебното заведение е реално и е от регистъра на РЗИ – София. Пациента е измислен и ЕГН-то е заменено с тирета в примера.

Състояние на проекта.

В момента проекта е в състояние, което позволява на разработчиците на ОПЛ и СИМП софтуер да започнат вграждането на функционалност, свързана с регистрация на направления. Има още да се работи по валидация на данните, както и върху API функциите за приемане на НМДД от изпълнителите. Всичко това обаче (почти) няма да окаже влияние на процеса на публикуване. Поради тази причина призовавам да се започне работа по публикуване на НМДД колкото се може по бързо. Смятам за реалистично от 01 януари 2015 да пуснем продукционна версия на сървъра, която да осигурява трансфера на НМДД от ОПЛ и СИМП към лабораториите. За втори етап ще остане и втората част – трансфера на резултатите от лаборатории към поръчители.

Технология.

В технологичен план проекта е мигриран към Maven, ползва Java 8 и работи на Tomcat 8. За REST се ползва както и досега библиотеката Jersey вер. 2.6. ORM е и си остава Hibernate, но с по-новата версия 4.3.6. Разбира се, базата данни е PostgreSQL вер. 9.1. Както и досега, сървъра се разработва с Eclipse, а кода се хоства в Google Code.