Pokročilé funkce v EnsemblePříklady nasazení Ensemble
ve zdravotnictví
Agenda
• Jak je Ensemble používán ve zdravotnictvíJak je Ensemble používán ve zdravotnictví??– Používaná rozhraníPoužívaná rozhraní
• UkázkaUkázka
Příběh 1. Metropolitan Health
• V provozu od února V provozu od února 2005 2005
• 25+ 25+ kkliniclinickýchkých a a administrativadministrativníchních syst systémůémů
• 65+ HL7v2 65+ HL7v2 rozhranírozhraní
• 2 mili2 milióónnyy zprávzpráv za měsícza měsíc
• ŠpičkyŠpičky: 125,000 : 125,000 za denza den
Total licensed inpatient beds 238
Total patient days 41,671
Births 1,646
Surgeries (inpatient) 2,709
Surgeries (outpatient) 10,342
Hospital discharges 8,242
Outpatient visits 482,062
Ambulatory care clinic visits 27,422
Emergency department visits 37,413
Laboratory tests 680,682
Radiology procedures 104,022
Dietary patient meals served 123,826
Full time employees (including nursing staff) 1,530
Medical staff 441
Medical education (residents, interns, students) 86
• Hrubá čísla k rokuHrubá čísla k roku 2005: 2005:
Správa dokumentů
HL7v2HL7v2 X12X12 XMLXML Strukturované soubory
Strukturované soubory
EnsembleEnsemble
Metadata dokumentuMetadata dokumentu
Prohledávání tabulek
Prohledávání tabulek
Prohlížení obsahu zpráv
Prohlížení obsahu zpráv
TransformaceTransformace Pravidla směrováníPravidla
směrování ParsováníParsováníValidaceValidace
Virtuální dokument
Co je…Co je…Co je…Co je…• Zjednodušená datová abstrakce EDI dokumentuZjednodušená datová abstrakce EDI dokumentu• Obecně dostupné API pro tvorbu a procházení obsahemObecně dostupné API pro tvorbu a procházení obsahem• Validace založená na struktuře (modifikovatelná)Validace založená na struktuře (modifikovatelná)• V současnosti k dispozici pro formáty X12 a HL7v2V současnosti k dispozici pro formáty X12 a HL7v2
Jak na to…Jak na to… • Syntaxe virtuálního dokumentuSyntaxe virtuálního dokumentu (BPL, DTL, Rules) (BPL, DTL, Rules)<assign … value=“HL7.
{PID:PrimaryLanguage.text}”/><assign property=“…” value=“HL7.
{PID:15.2}”/><assign property=“HL7.{PID:15.2}” value =
“…”}/>
• PříméPřímé API ( API (použitelné kdekolivpoužitelné kdekoliv))Set val =
HL7.GetValueAt(“PID:PrimaryLanguage.text”)Set val = HL7.GetValueAt(“PID:15.2”)Set status = HL7.SetValueAt(“English”,
“PID:15.2”)
Virtuální dokument versus klasická zpráva
Klasická zpráva Virtuální dokument
Práce s virtuálními dokumenty
• Ensemble obsahuje Ensemble obsahuje formuláře pro práci s formuláře pro práci s virtuálními dokumenty na virtuálními dokumenty na základě jejich schématuzákladě jejich schématu
• Ensemble nabízí API pro Ensemble nabízí API pro tvorbu vlastních formulářů k tvorbu vlastních formulářů k vlastním schématůmvlastním schématům
• Data NEMUSÍ být ve Data NEMUSÍ být ve formátu XMLformátu XML
Objekt
Co je…Co je…Co je…Co je…• Bohatá datová abstrakce, doplněná aplikační logikouBohatá datová abstrakce, doplněná aplikační logikou• Obecně dostupné API pro práciObecně dostupné API pro práci• Validace založená na datových typech a omezujících Validace založená na datových typech a omezujících
podmínkáchpodmínkách• Vhodné pro komplexní struktury jako např. Vhodné pro komplexní struktury jako např. HL7v3 HL7v3
Jak na to…Jak na to… • DTL, BPL, RulesDTL, BPL, Rules<assign property=“HL7v3.id.root”
value=“…”/>
• PříméPřímé API ( API (použitelné kdekolivpoužitelné kdekoliv))Set HL7v3 = ##class(QUPAIN101103).
%OpenId(1)Set val = HL7v3.id.root
XML Proudy Dat
K čemu slouží…K čemu slouží…K čemu slouží…K čemu slouží…• Výběr způsobu přístupu Výběr způsobu přístupu • ObousměrnáObousměrná korelace mezikorelace mezi XML a Obje XML a Objektykty
– StruStrukturaktura– ObsahObsah
• Mnoho způsobů přenosuMnoho způsobů přenosu• Vhodné pro komplexní struktury jako např. Vhodné pro komplexní struktury jako např. HL7v3 HL7v3
Jak na ně…Jak na ně… • StruStrukturyktury: DTD a Schema: DTD a Schema• AnalýzaAnalýza: SAX: SAX• DotazováníDotazování: XPATH: XPATH• TransformTransformaceace: XSLT: XSLT• PřenosPřenos: HTTP, SOAP, TCP, : HTTP, SOAP, TCP, SouborySoubory, …, …
Směrování zpráv
Pravidla (Filtry)Pravidla (Filtry)
ZdrojZdroj TřídaTřída TypeType StrukturaStruktura PodmínkaPodmínka
AkceAkce
PošliPošli Transformuj a odešliTransformuj a odešli VymažVymaž JinéJiné
Vstupní rozhraníVstupní rozhraní
Vstupní rozhraníVstupní rozhraní
Vstupní rozhraníVstupní rozhraní
Výstupní rozhraníVýstupní rozhraní
Výstupní rozhraníVýstupní rozhraní
Výstupní rozhraníVýstupní rozhraní
• Protokoly rozhraní mohou být založeny naProtokoly rozhraní mohou být založeny na TCP, TCP, SouborSoubor, FTP, HTTP, SOAP…, FTP, HTTP, SOAP…
• Dva způsoby definování routeruDva způsoby definování routeru– DDynamicynamický routerký router “ “černá skříňkačerná skříňka” ” založený na pravidlechzaložený na pravidlech– Podnikový proces definovaný pomocí BPLPodnikový proces definovaný pomocí BPL
Pravidla
Sada pravidelSada pravidelSada pravidelSada pravidel
AkceAkceAkceAkcePodmínkaPodmínkaPodmínkaPodmínka
AkceAkceAkceAkcePodmínkaPodmínkaPodmínkaPodmínka
• Sada pravidel obsahuje jedno nebo více pravidel, každé s jedinečnou podmínkouSada pravidel obsahuje jedno nebo více pravidel, každé s jedinečnou podmínkou
• Pravidla jsou vyhodnocována sekvenčně, vyhodnocování se zastaví jakmile pravidlo Pravidla jsou vyhodnocována sekvenčně, vyhodnocování se zastaví jakmile pravidlo splní s ním spojenou podmínkusplní s ním spojenou podmínku
• Uživatelé mohou definovat pravidlo, které se spustí, pokud není splněna žádná Uživatelé mohou definovat pravidlo, které se spustí, pokud není splněna žádná podmínkapodmínka
AkceAkceAkceAkceVýchozíVýchozíVýchozíVýchozí
Návratová hodnotaNávratová hodnotaNávratová hodnotaNávratová hodnota
Návratová hodnotaNávratová hodnotaNávratová hodnotaNávratová hodnota
Návratová hodnotaNávratová hodnotaNávratová hodnotaNávratová hodnota
Transformace
• Transformace převádějí výchozí objekt na objekt cílovýTransformace převádějí výchozí objekt na objekt cílový
• Transformace se definují použitím:Transformace se definují použitím:– GUI prostředí pro virtuální dokumenty a objektyGUI prostředí pro virtuální dokumenty a objekty– Uživatelsky implementovanou třídou pro přímé psaní kódu (včetně XPATH Uživatelsky implementovanou třídou pro přímé psaní kódu (včetně XPATH
a XSLT)a XSLT)
TransformaceTransformace
VlastnostVlastnost
VlastnostVlastnost
VlastnostVlastnost
VlastnostVlastnost
VlastnostVlastnost
VlastnostVlastnost
Agenda
• Jak je Ensemble používán ve zdravotnictvíJak je Ensemble používán ve zdravotnictví??– Používaná rozhraníPoužívaná rozhraní– Datové sklady v reálném časeDatové sklady v reálném čase
• UkázkaUkázka
Příběh 2. NYC Health & Hospitals Corporation
• Několik celopodnikových Několik celopodnikových aplikací, včetně Misys, aplikací, včetně Misys, Siemens a 3MSiemens a 3M
• 35,000 HL7v2 35,000 HL7v2 zpráv zpráv průměrně denně z každé průměrně denně z každé nemocnice nemocnice (735,000 (735,000 v rámci v rámci celé korporacecelé korporace))
• Bohatý datový model pro Bohatý datový model pro předdefinované a adhoc předdefinované a adhoc dotazydotazy
• Dotazy založené na Dotazy založené na CSPCSPa SOAPa SOAP
Acute care hospitals 11
Diagnostic and treatment centers 6
Long-term care facilities 4
Community health clinics 80+
Out-patient and community-based visits 5,000,000
In-patients 210,000
Primary care visits 1,841,417
Average length of patient stay (in days) 5.1
Births 21,000
Ambulatory surgery visits 52,082
Revenue $4.2 Billion
• Hrubá čísla k rokuHrubá čísla k roku 2003: 2003:
• Řídká pole poskytují maximální efektivituŘídká pole poskytují maximální efektivitu
• Podpora tradičních a bitmapových indexůPodpora tradičních a bitmapových indexů
• Osvědčená technologie pro jednoho i tisíce uživatelOsvědčená technologie pro jednoho i tisíce uživatel
• Mnoho způsobů přístupů z „vnějšího světa“Mnoho způsobů přístupů z „vnějšího světa“
• CSP pro výkonné webové stránkyCSP pro výkonné webové stránky
Příběh Caché
Vícerozměrný datový strojVícerozměrný datový stroj
SQLSQL
ODBCODBC JDBCJDBC
WebWeb
CSPCSP ……
ObjektyObjekty
.NET.NET JavaJava C++C++ XMLXML ……
Prohledávání tabulek
EnsLib.HL7.SearchTableEnsLib.HL7.SearchTable
DocIdDocId PropIdPropId PropValuePropValue
Vstupní rozhraníVstupní rozhraní
Vstupní rozhraníVstupní rozhraní
Vstupní rozhraníVstupní rozhraní
Výstupní rozhraníVýstupní rozhraní
Výstupní rozhraníVýstupní rozhraní
Výstupní rozhraníVýstupní rozhraní
• Funguje jako obecný indexovací stroj pro virtuální dokumentyFunguje jako obecný indexovací stroj pro virtuální dokumenty**
• Volitelně pro každé rozhraní, vstupní i výstupníVolitelně pro každé rozhraní, vstupní i výstupní * * K dispozici odK dispozici od HL7v2 HL7v2
Uživatelsky definovaná podtřídaUživatelsky definovaná podtřída
XData SearchSpec {}XData SearchSpec {}
Prohledávání tabulek - pokračování
XData SearchSpec { <Items> <Item DocType=“” PropName=“” PropType=“”>Match Criteria</Item> … </Items>}
XData SearchSpec { <Items> <Item DocType=“” PropName=“” PropType=“”>Match Criteria</Item> … </Items>}
• DocType (DocType (volitelnévolitelné): ): slouží k rozpoznání pojmenovaných entit a k filtrování slouží k rozpoznání pojmenovaných entit a k filtrování – DocType=“2.3.1:ORU_R01”DocType=“2.3.1:ORU_R01”
• PropName (PropName (povinnépovinné): ): volný text – jméno reprezentující párovanou vlastnostvolný text – jméno reprezentující párovanou vlastnost– PropName=“NK1LastName”PropName=“NK1LastName”
• PropType (PropType (volitelné)volitelné): : datový typ a způsob hledánídatový typ a způsob hledání– PropName=“String:CaseSensitive”PropName=“String:CaseSensitive”
• Match Criteria (Match Criteria (povinnépovinné): ): umístění (adresa) v dokumentu pro extrahování a indexaci umístění (adresa) v dokumentu pro extrahování a indexaci – {PID:5}{PID:5} // { } // { } indikuje povolenýindikuje povolený GetValueAt() GetValueAt() výrazvýraz– [NTE:7][NTE:7] // [ ] // [ ] indikuje hledaný segment kdekoliv v dokumentuindikuje hledaný segment kdekoliv v dokumentu
Agenda
• Jak je Ensemble používán ve zdravotnictvíJak je Ensemble používán ve zdravotnictví??– Používaná rozhraníPoužívaná rozhraní– Datové sklady v reálném časeDatové sklady v reálném čase– Řešení pro monitorování podnikových aktivitŘešení pro monitorování podnikových aktivit
• UkázkaUkázka
• Manažerský dozorovací Manažerský dozorovací systémsystém
• V provozu od únoraV provozu od února 2005 2005
• 9 9 samostatných aplikacísamostatných aplikací
• 30 30 klíčových výkonnostních klíčových výkonnostních indikátorůindikátorů
Daily patient visits 1,500
Physician staff 270
Medical specialties 41
• HrubHrubá číslaá čísla k roku k roku 2005:2005:
Příběh 3. GWU Medical Faculty Associates
Metriky
• Metriky sbírají uživatelsky definované statistiky v uživatelsky konfigurovaných Metriky sbírají uživatelsky definované statistiky v uživatelsky konfigurovaných intervalechintervalech
• Statistiky mohou být zaznamenáványStatistiky mohou být zaznamenávány::– Historicky nebo pro daný časový okamžikHistoricky nebo pro daný časový okamžik– Pro oddělené instance sdílející společné metrikyPro oddělené instance sdílející společné metriky
• Nasbírané statistiky jsou často používány k plnění grafických kontrolních panelůNasbírané statistiky jsou často používány k plnění grafických kontrolních panelů
• Lze vyvolávat libovolné akceLze vyvolávat libovolné akce ( (včetně varování nebo aplikačních funkcívčetně varování nebo aplikačních funkcí))
MetrikaMetrikaVlastnostVlastnost
VlastnostVlastnost
Řídící panely
• Řídící panely sestávají z jednoho nebo více měřičůŘídící panely sestávají z jednoho nebo více měřičů
• Měřiče jsou spojeny s vlastnostmi třídy implementující metrikuMěřiče jsou spojeny s vlastnostmi třídy implementující metriku
• Rámce menu mohou volitelně rozlišovat mezi instancemiRámce menu mohou volitelně rozlišovat mezi instancemi
MetrikyMetrikyVlastnostVlastnost
VlastnostVlastnost
Řídící panelŘídící panelMěřičMěřič
MěřičMěřič
Lidská interakce
Zpracování úkolůZpracování úkolůZpracování úkolůZpracování úkolů
Workflow RoleWorkflow RoleWorkflow RoleWorkflow Role
Workflow PortWorkflow PortáállWorkflow PortWorkflow Portááll
Podnikový procesPodnikový procesPodnikový procesPodnikový proces
Operace „Workflow“Operace „Workflow“Operace „Workflow“Operace „Workflow“
• Podnikový proces spustí zpracování úkolů pomocí speciální operacePodnikový proces spustí zpracování úkolů pomocí speciální operace
• Roli/uživateli definovanému v systému úkolů je zaslán požadavekRoli/uživateli definovanému v systému úkolů je zaslán požadavek
• Uživatelé přistupují k úkolům prostřednictvím portáluUživatelé přistupují k úkolům prostřednictvím portálu
• Podnikový proces čeká (po konfigurovatelnou dobu) na operátora, Podnikový proces čeká (po konfigurovatelnou dobu) na operátora, až úkol vykonáaž úkol vykoná
Agenda
• Jak je Ensemble používán ve zdravotnictvíJak je Ensemble používán ve zdravotnictví??– Používaná rozhraníPoužívaná rozhraní– Datové sklady v reálném časeDatové sklady v reálném čase– Řešení pro monitorování podnikových aktivitŘešení pro monitorování podnikových aktivit– Kompozitní aplikaceKompozitní aplikace
• UkázkaUkázka
NICTIZ
Electronic Health Record Solutions
EHR FrameworkEHR Framework
2. EHR se dotazuje pro pacientská data do různých systémů od různých dodavatelů
1. EMR systémy obsahují detaily pacientských záznamů uvnitř dodavatelských systémů
Dodavatelská firmaDodavatelská firma
EMR SystémEMR Systém Dodavatelská firmaDodavatelská firma
EMR SystémEMR Systém
Dodavatelská firmaDodavatelská firma
EMR SystémEMR Systém
RozhraníRozhraní
3. Technické výzvy
a. Jaké formáty zpráv a protokoly jsou použity?
Master Patient Index
Master Patient Index
b. Jak unikátně identifikovat pacienty v různých systémech?
Úložiště klinických dat
Úložiště klinických dat
c. Je úložiště klinických dat centrální nebo distribuované?
PlatformaPlatformaPlatformaPlatforma
d. Může vybraná platforma podporovat požadovaný výkon, škálovatelnost a spolehlivost?
Architektura použitá v HIE
Dodavatel 1Dodavatel 1
Služby aplikaceSlužby aplikace
Klinický systém 1Klinický
systém 1 SběrniceSběrnice
Služba indexování pacientůSlužba indexování pacientů
Služby sběrniceSlužby sběrnice
CMPICMPIEHR
Systémový Registr
EHR Systémový
Registr
Dodavatel 2Dodavatel 2
Služby aplikaceSlužby aplikace
Klinický Systém 2Klinický
Systém 2Klinický
Systém 3Klinický
Systém 3
Dodavatel 3Dodavatel 3
Služby aplikaceSlužby aplikace
Klinický Systém 4Klinický
Systém 4Klinický
Systém 5Klinický
Systém 5
KlientKlient
*
*
1. Klinické systémy zveřejňují pacientské záznamy sběrnici2. CMPI je aktualizován demografickými údaji3. Systémový Registr EHR je aktualizován klinickými systémy
*
*
Architektura použitá v HIE
Dodavatel 1Dodavatel 1
Služby aplikaceSlužby aplikace
Klinickýsystém 1Klinický
systém 1 SběrniceSběrnice
Služba indexování pacientůSlužba indexování pacientů
Služby sběrniceSlužby sběrnice
CMPICMPIEHR
Systémový Registr
EHR Systémový
Registr
Dodavatel 2Dodavatel 2
Služby aplikaceSlužby aplikace
Klinickýsystém 2Klinický
systém 2Klinický
systém 3Klinický
systém 3
Dodavatel 3Dodavatel 3
Služby aplikaceSlužby aplikace
Klinickýsystém 4Klinický
systém 4Klinický
systém 5Klinický
systém 5
KlientKlient
1. Pracovník nebo systém si vyžádá záznamy HIE vyvoláním služby aplikace
2. HIE brána předá dotaz Sběrnici3. Služba indexování pacientů vrátí seznam odpovídajících pacientů
spolu s informací ve které aplikaci se nacházejí jejich data
*
* *
Architektura použitá v HIE
Dodavatel 1Dodavatel 1
Služby aplikaceSlužby aplikace
Klinický systém 1Klinický
systém 1 SběrniceSběrnice
Služba indexování pacientůSlužba indexování pacientů
Rozhraní SběrniceRozhraní Sběrnice
CMPICMPIEHR
Systémový Registr
EHR Systémový
Registr
Dodavatel 2Dodavatel 2
Služby aplikaceSlužby aplikace
Klinický systém 2Klinický
systém 2Klinický
systém 3Klinický
systém 3
Dodavatel 3Dodavatel 3
Služby aplikaceSlužby aplikace
Klinický systém 4Klinický
systém 4Klinický
systém 5Klinický
systém 5
KlientKlient
1. Klient si vybere záznamy jež jej zajímají HIE2. Rozhraní sběrnice předá dotazy dodavatelským aplikacím3. Klient obdrží klinické záznamy z různých klinických systémů
*
**
*
Služba indexování pacientůSlužba indexování pacientů
PřidejPřidej
Community Master Patient IndexCommunity Master Patient Index
SlučSluč AnulujAnuluj ZměnZměn HledejHledej
Zdroj klinických datZdroj klinických dat
Aktualizuje záznamy indexů v databázi sběrnice
Praktický lékařPraktický lékař
Vyhledává
• Udržuje CMPI (Community Master Patient Index)• Přijímá aktualizace indexu pacienta (umístění záznamu) ze zdrojových klinických systémů• Odpovídá na vyhledávací dotazy formou seznamu umístění pacientských záznamů
Indexovací služby HIE
EHR SystémEHR Systém
Automatické SystémyAutomatické Systémy
Interaktivní SystémyInteraktivní Systémy
EHR SystémEHR Systém
Automatické SystémyAutomatické Systémy Brána služebBrána služeb
Interaktivní SystémyInteraktivní Systémy
Rozhraní služeb
Rozhraní služeb
• Brána služeb: prostředky, jimiž interaktivní a automatické systémy konzumují externí služby v rámci daného (síť) prostředíRozhraní služeb: Obálka (vrstva), jenž umožňuje původním aplikacím odpovídat na dotazy ze sítě
Služby sběrnice HIE
Agenda
• Jak je Ensemble používán ve zdravotnictvíJak je Ensemble používán ve zdravotnictví??
• UkázkaUkázka– HL7v2HL7v2– HL7v3HL7v3
Další protokoly…
• ZdravotnictvíZdravotnictví– DASTA (ČR)DASTA (ČR)– DICOMDICOM
• FinanceFinance– SWIFTSWIFT– IFX (FIX)IFX (FIX)– FXPFXP– OFXOFX
• DopravaDoprava– TranXMLTranXML