Разработка системы медицинских справочников на базе стандарта HL7 FHIR
Команда SimbirSoft разработала систему медицинских справочников для крупной сети медицинских лабораторий по проведению исследований для физических лиц.
Клиент
Крупная российская сеть медицинских лабораторий по проведению исследований для физических лиц.
Задача
Какие задачи перед нами стояли:
Бизнес-задачи:
- Упростить взаимодействие с B2B-клиентами через единый API.
- Повысить лояльность за соответствие международным стандартам.
Технические задачи:
- Реализовать поддержку HL7 FHIR для совместимости с зарубежными системами.
- Обеспечить отказоустойчивость и высокую нагрузку (до 80 RPS).
Решение
Планировали сделать поддержку HL7 FHIR Terminology Service.
В ходе проектирования проверяли возможность хранения данных сразу в формате HL7 FHIR и выбрали в процессе аналитики «преобразование на лету».
Был внедрен гибридный подход: данные хранятся в объектной NoSQL форме, и передаются как в проприетарном формате, так и преобразовываются на лету в HL7 FHIR. Это было необходимо для поддержки существующих B2B клиентов.
Проект выполнен за 4,5 месяца:
- 1,5 месяца — аналитика,
- 3 месяца — разработка.
Проведено нагрузочное тестирование для определения максимальной нагрузки на 1 контейнер.
Результат
- Готовый масштабируемый сервис с поддержкой HL7 FHIR.
- Пропускная способность — 80 RPS на один контейнер.
- Возможность работы как с новыми, так и с legacy-клиентами.
Технологии
Net 6-8, HL7 Fhir, OpenAPI, Design API First, Roslyn Codegen, NSwag Codegen, Swagger, Doc As Code, PostgreSQL, Redis, Docker, Kubernetes, Grafana, OpenSearch, Gitlab, CI/CD, Mongo, Identity, ApiGateway
Трудности
- Сложность проведения аналитики в условиях legacy-стека и недостаточной документации.
- Сжатые сроки для релиза рабочей версии сервиса.