Гравицапа

igorbossenko 376 views 26 slides Dec 03, 2018
Slide 1
Slide 1 of 26
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26

About This Presentation

Доклад рассказывает об поиске фантастическое устройства гравицапы, с помощью которого можно было бы перемещать данные между модулями больничной системы. И как гр�...


Slide Content

01.12.2018
Гравицапа
Игорь Босенко

Ester3
(система здравоохранения Эстонии)
✤Проект министерства
социальных дел
✤1994 - …
✤Visual Basic 3+
✤Oracle, Sybase ASE/SA,
Microsoft SQL
✤Java (2003 - …)
✤Tomcat

eHL
(электронная история болезни)
✤Проект Тартуской УК
✤2004 - ..
✤Java
✤Aranea Web Framework
✤Hibernate -> JDBC
✤BEA/Oracle Weblogic
✤Oracle DB
✤Oracle BI

В поиске
гравицапы
✤Литовская NHS
✤2014/2016
✤Абу-Даби e-Prescription
✤2018

@ 2018
✤1994 - ..
✤После 25 лет эксплуатации

HEDA
(Healthcare Enterprise Data & Applications)
✤Micro-services
✤Java
✤Micronaut
✤PostgreSQL
✤Angular
✤FHIR
✤Open-source

RULE ENGINE
✤Можно создавать правила не меняя
программы
✤Можно тестировать независимо от
приложения
✤Гибкость

WORKFLOW & BUSINESS PROCESS MANAGEMENT ENGINE

Сапоги сапожнику!

Модульность
✤Бизнес-модули
✤База данных
✤Веб
✤Взаимодействие
модулей

Модульность базы данных (1)
select * from invoice i, customer c
where i.customer_id = c.id
Database: crm
Table: customer
Database: accounting
Table: invoice
Цель: список счёт с информацией по пользователю

Модульность базы данных (2)
JSONB как решение многих проблем
select customer ->> 'code' as code, customer -> 'name' ->> 'en' as name, amount from invoice
where (customer ->> ‘code') = ‘777'
code |name |amount |
-------|-----------|-----------|
777 |Kodality |19.50 |
777 |Kodality |19.50 |
777 |Kodality |37.65 |
777 |Kodality |9.00 |
777 |Kodality |9.00 |
777 |Kodality |16.50 |
777 |Kodality |16.50 |
select customer, amount from invoice
customer |amount|
-------------------------------------------------------------------------------------------------------------------------------|----------|
{"code": "000", "names": {"en": “Private person”, "ru": “Частное лицо”}} |11.40 |
{"code": "777", "names": {“en":“Kodality"}, "contact": “[email protected]”} |19.50 |
{"code": “666", "names": {"en": “Nortal"}} |3.00 |

Модульность веба
✤js библиотека (npm) со
стилями и общими
компонентами
✤маленькие Ангуляр
приложения в докере
✤Меню-сервис

Взаимодействие модулей на примере модуля
учета финансов
Accounting
Claims
Outpatient
Payer
InvoicesPaymentsLedger
Inpatient ED Radiology Laboratory
ClaimClaim, invoice Claim, invoiceClaimClaim, invoice
cash, POS, cheque
Insurer
insurance,
limits
Budget execution

FHIR server vs
FHIR endpoints
✤FHIR server - против
✤single point of failure
✤проблема
синхронности данных
✤дублирование
данных регистров
✤задержка

FHIR server vs
FHIR endpoints
✤FHIR server - ЗА
✤Поддерживает модульность и
независимую разработку модулей
✤Позволяет downtime модулей
✤Возможность поддерживать несколько
версий (*)
✤Избавляет от надобности хранить
подмножество данных модуля А в
модуле Б
✤Позволяет делать операции на
множествах данных из разных
модулей
✤ETL из legacy систем

Каким трюкам мы научились
✤FHIR endpoint-ы для
legacy систем
упрощают процесс
перехода на новую
систему.

Каким трюкам
мы научились (2)
✤Общение с
министерствами
✤Изменять
мышление и
процессы

Спасибо за внимание!
Tags