Komunikační rozhraní SEP 1.6 Petr Siblík STAPRO s.r.o., Specifikace Komunikační rozhraní SEP 1.3 strana 1
1. Úvod... 3 1.1. Nové vlastnosti v SEP 1.6... 3 1.1.1. Maximální úhrada ZP v okamžiku preskripce... 3 1.1.2. Úhrada ZP a úhrada pacientem v okamžiku výdeje... 4 1.2. Nové vlastnosti v SEP 1.5... 4 1.2.1. Předepsaný lék je v pozitivním listu... 4 1.3. Nové vlastnosti v SEP 1.4... 4 1.3.1. Předpis léčebného přípravku doporučil... 4 1.4. Nové vlastnosti v SEP 1.3... 4 1.4.1. Opakovací recepty... 4 1.4.2. Poukazy na zdravotní pomůcky (PZT)... 4 2. Popis komunikačních toků... 5 2.1. Komunikace modul medikací SEP... 5 2.1.1. Vytvoření a uložení nového receptu... 5 2.1.2. Vytvoření a uložení nového poukazu na PZT... 6 2.1.3. Zrušení receptu, poukazu... 7 2.2. Komunikace lékárna SEP... 8 2.2.1. Načtení receptu či poukazu ze SEP... 8 2.2.2. Záznam výdeje... 9 2.2.3. Zrušení výdeje... 10 Příloha A vzory XML souborů... 11 1. Žádost o přiřazení nových ID pro položky receptu... 11 2. Odeslání receptu do SEP... 11 3. Zrušení receptu v SEP... 12 4. Načtení receptu ze SEP... 12 5. Info o výdeji... 13 6. Zrušení výdeje... 13 7. Odeslání poukazu do SEP... 13 Příloha B varianty připojení klientů k systému SEP... 15 1. JMS... 15 2. HTTP... 15 Specifikace Komunikační rozhraní SEP 1.3 strana 2
1. Úvod Komunikační rozhraní SEP 1.6 zajišťuje komplexní přenos informací mezi systémem SEP (systém elektronické preskripce s centrálním úložištěm elektronických receptů a poukazů na prostředky zdravotní techniky), modulem medikací NIS (nemocniční informační systém) popřípadě ambulantního IS a IS lékárny (konkrétně modulu pokladna na kterém dochází k výdeji léků nebo prostředků zdravotní techniky). Komunikační rozhraní konkrétně podporuje následující činnosti, datové toky mezi vyjmenovanými IS: přenos receptu nebo poukazu z modulu medikací do SEP načtení receptu nebo poukazu ze SEP na základě identifikačního kódu (ID) po příchodu pacienta do lékárny (ID je vytištěn ve formě čárového kódu na papírovém receptu nebo poukazu) potvrzení výdeje z IS lékárny do SEP Komunikace probíhá na úrovni protokolu http(s). Veškerá data se přenáší ve formátu XML. Nedílnou součástí tohoto popisu rozhraní je i definiční schéma XML SEP_1_6.xsd. obr.1 - Schéma komunikací 1.1. Nové vlastnosti v SEP 1.6 1.1.1. Maximální úhrada ZP v okamžiku preskripce V receptu v bloku <polozkarptype> a v poukazu v bloku <polozkapouktype> přibyl nový element <maxuhrzp> typu decimal, který udává maximální úhradu zdravotní pojišťovnou v okamžiku preskripce. Přesná specifikace elementu je v XML schematu SEP_1_6.xsd, který je nedílnou součástí tohoto popisu rozhraní SEP. Specifikace Komunikační rozhraní SEP 1.3 strana 3
1.1.2. Úhrada ZP a úhrada pacientem v okamžiku výdeje Ve zprávě o výdeji v elementu <recept_id> přibyly nové atribyty <hradizp> a <hradipac> typu decimal, které udávají úhradu zdravotní pojišťovnou a úhradu pacientem v okamžiku výdeje na recept. Přesná specifikace elementu je v XML schematu SEP_1_6.xsd, který je nedílnou součástí tohoto popisu rozhraní SEP. 1.2. Nové vlastnosti v SEP 1.5 1.2.1. Předepsaný lék je v pozitivním listu V bloku <polozkarptype> přibyl nový element <pozitlist> typu boolean, který udává, jestli předepisovaný lék je v pozitivním listu nemocnice. Přesná specifikace elementu je v XML schematu SEP_1_5.xsd, který je nedílnou součástí tohoto popisu rozhraní SEP. 1.3. Nové vlastnosti v SEP 1.4 1.3.1. Předpis léčebného přípravku doporučil V bloku <recept> přibyl nový blok <doporucil> v souladu s vyhláškou 54/2008 odstavec 2 a datovým rozhraním VZP ČR (Doplněk č. 6 k verzi 6.2 září 2008). Přesná specifikace elementu je v XML schematu SEP_1_4.xsd, který je nedílnou součástí tohoto popisu rozhraní SEP. 1.4. Nové vlastnosti v SEP 1.3 1.4.1. Opakovací recepty SEP ve verzi 1.3 podporuje svým rozhraním i vytváření tzv. opakovacích receptů (dle zákona 378/2007 a následné vyhlášky 54/2008). Do bloku <recept> byl vložen nový element <opakování>. Tento element nepovinný, tedy pokud není, předpokládá se, že jde o klasický recept (s jedním opakováním). Hodnota elementu je číslo udávající počet opakování receptu. Element <opakování> navíc obsahuje nepovinný atribut realizovano znamenající počet provedených výdejů tohoto receptu (pokud není, předpokládá se, že nebyl realizován ani jeden výdej). 1.4.2. Poukazy na zdravotní pomůcky (PZT) Na žádost některých zákazníků byla funkcionalita SEP včetně rozhraní upravena o přenášení poukazů na zdravotní pomůcky. Popis v kapitole 2.1.2 Vytvoření a uložení nového poukazu na PZT. Vzorový XML dokument viz. příloha A.7. Specifikace Komunikační rozhraní SEP 1.3 strana 4
2. Popis komunikačních toků 2.1. Komunikace modul medikací SEP V této kapitole jsou detailně popsány veškeré komunikační toky probíhající mezi modulem medikací v NIS a systémem SEP, včetně vzorových XML souborů. 2.1.1. Vytvoření a uložení nového receptu Zde je popsán celý proces vytvoření receptu a odeslání nového receptu do systému SEP. Celý proces se skládá z jednotlivých kroků: vytvoření receptu ordinujícím lékařem žádost o přiřazení nových ID pro položky receptu/poukazu ID je vázána v SEP na položku (ne na celý recept), v rámci systému pak existuje mezi položkami receptu vazba, takže se s položkami receptu pracuje svázaně. Modul medikací musí tedy požádat o tolik ID položek, kolik je jich předepsáno. Žádost o přidělení ID položek může být i na víc jak 2 ID v rámci modulu medikací může být připravováno a následně uloženo více receptů naráz (vzorový XML dokument viz příloha A.1) uložení receptu v modulu medikací, uložení těchto ID k receptům v modulu medikací odeslání receptu do SEP (vzorový XML dokument viz příloha A.2) tisk receptu i s čárovým kódem vytiskne se pouze čárový kód jedné položky (polozka_id), pro pozdější načtení celého receptu na straně lékárenského IS stačí ID jedné položka receptu, SEP automaticky vrací celý recept (obě položky, pokud má recept 2 položky) Specifikace Komunikační rozhraní SEP 1.3 strana 5
obr. 2 - sekvenční diagram vytvoření a uložení receptu 2.1.2. Vytvoření a uložení nového poukazu na PZT Zde je popsán celý proces vytvoření poukazu a odeslání nového poukazu do systému SEP. Celý proces je v podstatě shodný s procesem vytvoření a uložení receptu a je následující: vytvoření poukazu ordinujícím lékařem žádost o přiřazení nového ID pro položku poukazu (poukaz na rozdíl od receptu může obsahovat pouze jednu položku). Systém medikací musí tedy požádat o tolik ID položek, kolik je předepsáno poukazů. Žádost o přidělení ID položek vzorový XML dokument viz. příloha A.1) uložení poukazu v modulu medikací, uložení těchto ID k poukazům v modulu medikací odeslání poukazu do SEP (vzorový XML dokument viz příloha A.7) tisk poukazu i s čárovým kódem vytiskne se čárový kód položky (polozka_id), pro pozdější načtení poukazu na straně lékárenského IS. Specifikace Komunikační rozhraní SEP 1.3 strana 6
obr. 3 - sekvenční diagram vytvoření a uložení poukazu 2.1.3. Zrušení receptu, poukazu Zde popisovaný proces řeší zrušení receptu či poukazu původním lékařem, který medikaci předepsal. Vzorová XML zpráva viz příloha A.3. Zpráva musí obsahovat tolik elementů <recept_id> s atributem delid, kolik položek se má zrušit (pomocí této zprávy tedy lze smazat pouze jednu položku receptu, všechny položky receptu, položky více receptů naráz, poukaz, více poukazů nebo dokonce kombinaci několika poukazů a položek receptů). Specifikace Komunikační rozhraní SEP 1.3 strana 7
obr. 4 sekvenční diagram zrušení receptu 2.2. Komunikace lékárna SEP 2.2.1. Načtení receptu či poukazu ze SEP V modulu pokladna na lékárně se po přečtení čárového kódu z dokladu (receptu či poukazu) toto načtené ID položky odešle na server SEP za účelem načtení odpovídajícího receptu (viz. vzorový XML dokument v příloze A.4). Server SEP načte odpovídající doklad (recept či poukaz) a vrátí ho zpět do lékárny, popřípadě pokud doklad s položkou daného ID neexistuje, pošle prázdnou odpověď. Žádost o vydání dokladu obsahuje pouze jednou ID položky receptu, SEP vrací ve zprávě vždy celý recept (tedy případně s oběma položkami) nebo poukaz. Specifikace Komunikační rozhraní SEP 1.3 strana 8
obr. 5 sekvenční diagram načtení receptu ze SEP 2.2.2. Záznam výdeje Po záznamu výdeje na elektronický recept či poukaz (nebo i více dokladů) se do SEP může odesílat potvrzení výdeje na daný doklad (příklad zprávy info o výdeji viz příloha A.5.). V této verzi lze pouze zaznamenat příznak, že doklad (jeho položka) byl vydán (+ informace o datu/času vydání a zaplacení regulačního poplatku). obr. 6 sekvenční diagram uložení výdeje Specifikace Komunikační rozhraní SEP 1.3 strana 9
2.2.3. Zrušení výdeje Zrušení výdeje je zde možno poslat jeden nebo více elementů <recept_id> s atributem novydid (no vydané id). Tím je možno zrušit: jeden řádek výdeje výdej celého receptu výdej více položek z více receptů Příklad zprávy je v příloze A.6. obr. 7 sekvenční diagram zrušení výdeje Specifikace Komunikační rozhraní SEP 1.3 strana 10
Příloha A vzory XML souborů 1. Žádost o přiřazení nových ID pro položky receptu nebo poukazu žádost o nová ID (numid) <med v="1.6"> <recept_id numid="3" /> nová ID (newid) <med v="1.6"> <recept_id newid="10871" /> <recept_id newid="10872" /> <recept_id newid="10873" /> 2. Odeslání receptu do SEP uložení receptu (recept) <med v="1.6"> <recept> <dvyst>2007-05-16</dvyst> <casvyst>10:21:00</casvyst> <ean>fm12346</ean> <mistorv></mistorv> <!-- Sériové číslo vytištěného receptu, generuje ten, kdo recept předepisuje respektive tiskne. --> <!-- Místo rezervace/výběru receptu. --> <revlek>false</revlek> <!-- Revizní lékař (boolean) --> <opakovani>5</opakovani> <!-- Počet opakování výdeje celého receptu --> <zp> <kodzp>111</kodzp> <!-- Kód zdravotní pojišťovny --> </zp> <pacient> <cp>7512255344</cp> <jmenopac>josef Vonásek</jmenopac> <adresapac>svážná 56, Kunratice 123 00</adresapac> <telefonpac>731535302</telefonpac> <alergie></alergie> <! - Případné alergie pacienta --> <tehotenstvi>false</tehotenstvi> <kojeni>false</kojeni> </pacient> <lekar> <kodlek>72931087</kodlek> <!-- Identifikační číslo lékaře (IČL) --> <jmenolek>mudr. Jaroslav Bolíto</jmenolek> <odblek>501</odblek> <! - Odbornost lékaře --> <telefonlek>541556897</telefonlek> <kodprac>3222111</kodprac> <!-- Identifikační číslo pracoviště, kde byl recept předepsán --> Specifikace Komunikační rozhraní SEP 1.3 strana 11
<pracoviste>chirurgie I. Ambulance</pracoviste> <odbprac>501</odbprac> <!-- Odbornost pracoviště --> <icz>12345678</icz> <zarizeni>nemocnice na kraji města</zarizeni> <ico>001234</ico> </lekar> <polozka_rp> <id>10871</id> <!-- ID položky receptu --> <uhrada>i</uhrada> <!-- Způsob úhrady (I,C,P) --> <kod>0013359</kod> <!-- Kód léku podle VZP --> <atc>r03cc13</atc> <! - ATC skupina --> <naz>spiropent</naz> <!-- Název léku --> <mnoz>1</mnoz> <!-- Množství léku --> <lekkon>0.02mg</lekkon> <!-- Koncentrace (síla) léku --> <lekform>tbl NOB</lekform> <!-- Forma léku (tablety, <ds>0-0-1</ds> čípky...) --> <!-- Aplikace léku - rozpis užívání 1-1-2 apod. --> <dg>p92.4</dg> <nelzenahradit>1</nelzenahradit> <! - Nelze nahradit generikem (boolean) --> <zvysenauhrada></zvysenauhrada> <prekrocmaxdav></prekrocmaxdav> <osvobozeniodregpoplatku>true</osvobozeniodregpoplatku> <duvodosvobozeniodregpoplatku></duvodosvobozeniodregpoplatku> <pozn></pozn> <stav>p</stav> <!-- Stav receptu (V = vydaný, P = přijatý) --> <pozitlist>true</pozitlist> <maxuhrzp>0</maxuhrzp> <!-- Max. úhrada ZP --> </polozka_rp> </recept> Medikační SW nečeká na odpověď. 3. Zrušení receptu v SEP zrušení receptu (delid) <med v= 1.6 > <recept_id delid="10871" /> Medikační SW nečeká na odpověď. 4. Načtení receptu ze SEP žádost o data receptu (id) <med v= 1.6 > <recept_id id="10871" /> odpověď recept Zpráva s receptem, která je poslána na SEP je stejná jako zpráva recept odesílaná medikačním SW k uložení do SEP (příloha A.2). recept nenalezen SEP vrací prázdný element med: <med v="1.6" /> Specifikace Komunikační rozhraní SEP 1.3 strana 12
5. Info o výdeji zpráva info o výdeji (vydid) <med v="1.6"> <recept_id casvyst="11:13:00" dvyst="2007-08-12" regpoplatek="true" vydid="10871" hradizp="0" hradipac="0" /> 6. Zrušení výdeje zpráva zrušení výdeje (novydid) <med v="1.6"> <recept_id novydid="10871" /> 7. Odeslání poukazu do SEP uložení poukazu <med v="1.6"> <poukaz> <dvyst>2008-07-05</dvyst> <casvyst>12:31:00</casvyst> <ean>fm12347</ean> <!-- Sériové číslo vytištěného receptu, generuje ten, kdo recept předepisuje respektive tiskne. --> <revlek>false</revlek> <!-- Revizní lékař (boolean) --> <zp> <kodzp>210</kodzp> <!-- Kód zdravotní pojišťovny --> </zp> <pacient> <cp>7005293141</cp> <jmenopac>pavel Kudlička</jmenopac> </pacient> <lekar> <kodlek>12345678</kodlek> <!-- Identifikační číslo lékaře (IČL) --> <jmenolek>mudr. Voštěp</jmenolek> <odblek>501</odblek> <! - Odbornost lékaře --> <kodprac>32221111</kodprac> <!-- Identifikační číslo pracoviště, kde byl recept předepsán --> <odbprac>501</odbprac> <!-- Odbornost pracoviště --> <icz>87654321</icz> </lekar> <polozka_pouk> <id>10972</id> <!-- ID položky receptu --> <uhrada>i</uhrada> <kod>0062950</kod> <!-- Kód pomůcky podle VZP --> <typzp>04</typzp> <!-- Typ dle číselníku VZP --> <naz>ortéza KOLENNÍ S BOČNÍMI DLAHAMI RHENA</naz> <!-- Název zdravotní pomůcky --> <doplnek>bez NASTAVENÍ FLEXE, ROZEPÍNACÍ VEL.S-XXL</doplnek> <!-- Doplněk názvu zdr. pomůcky --> <mnoz>1</mnoz> Specifikace Komunikační rozhraní SEP 1.3 strana 13
<dg>p92.4</dg> <nelzenahradit>true</nelzenahradit> <trvalapomucka>true</trvalapomucka> <uzitnadoba>24</uzitnadoba> <!-- pomůcka trvalá? (boolean) --> <!-- pokud není trvalá užitná doba v měsících --> <poznámka> text poznámky, například u některých pomůcek upřesnění rozměrů či co </poznámka> <maxuhrzp>0</maxuhrzp> <!-- Max. úhrada ZP --> </polozka_pouk> </poukaz> Specifikace Komunikační rozhraní SEP 1.3 strana 14
Příloha B varianty připojení klientů k systému SEP 1. JMS Pro komunikaci mezi klienty a serverem byl využit software SonicMQ verze 7.5, který zajišťuje messaging mezi klienty a serverem SEPu na bázi protokolu JMS verze 1.1. SonicMQ 7.5 umožňuje přenos dat po šifrovaném SSL/TLS kanálu, navíc slouží jako datová sběrnice pro SonicESB, lze jej tedy dále rozšířit o webservices založené na protokolu SOAP. Software nutný pro funkci elektronické komunikace - stanice: Progress 9.1D Client networking 2. HTTP Systém SEP ve verzi 1.6 umožňuje také výměnu XML dokumentů (dle výše uvedeného popisu) pomocí protokolu HTTP. V těle zprávy je tak odesílán XML dokument <med v="1.6"> Specifikace Komunikační rozhraní SEP 1.3 strana 15