Aplikace pro Národní onkologický registr na KSRZIS
Koordinační středisko pro resortní zdravotnické informační systémy
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky Uživatelská - technická příručka Stav k : 21.2.2008
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 2 z 13
Verze 1.2
AUTORIZACE DOKUMENTU
NÁZEV DOKUMENTU POČET VÝTISKŮ DATUM TISKU DALŠÍ OZNAČENÍ ČÍSLO DOKUMENTU
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky 0 Interní/Externí
VERZE
20080221
21/12/2008
JMÉNO
PODPIS
DATUM 29.04.2008 DATUM
AUTOR SCHVÁLIL PŘEVZAL
Omezující podmínky pro zveřejnění: Tento dokument obsahuje informace důvěrného charakteru a je určen výhradně pověřeným pracovníkům, jako takový nesmí být bez předchozího souhlasu autora kopírován nebo předán třetí fyzické nebo právnické osobě.
Upozornění Všechny známky a názvy produktů uvedené v tomto materiálu jsou nebo mohou být registrované obchodní značky, obchodní značky nebo ochranné známky jejich vlastníků. © 2008 KSRZIS, všechna práva vyhrazena.
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 3 z 13
Verze 1.2
Obsah : 1. 2. 3. 4. 5. 6. 7. 8. 9.
Legislativní podklady ..................................................................................................................... 4 Metodické podklady ....................................................................................................................... 4 Fungování NORu ............................................................................................................................ 4 Popis webových služeb pro import dat do centrální DB NOR................................................... 4 Instalace a prostředí ...................................................................................................................... 7 Definice rozhraní WSDL (NorWS.wsdl) ........................................................................................ 7 Příklad nastaveni NorWS.properties .......................................................................................... 10 Příklad použití webové služby NorWS pro odeslání nové dávky - metoda uploadData ....... 11 Příklad použití webové služby NorWS pro získání zpětné dávky - metoda getBackBatch .. 12
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 4 z 13
Verze 1.2
1. Legislativní podklady Přehled platné legislativy a platných metodických pokynů, které se přímo dotýkají informačního systému: • Zákon č. 20/1966 Sb., o péči o zdraví lidu, ve znění zákona č. 156/2004 Sb. • Vyhláška č. 552/2004 Sb., o předávání osobních a dalších údajů do Národního zdravotnického informačního systému pro potřeby vedení národních zdravotních registrů. • Zákon č. 101/2000 Sb., o ochraně osobních údajů a o změně některých zákonů, ve znění pozdějších předpisů, • Závazné pokyny NZIS – Národní onkologický registr - 051-20060101/2 – Pokyny k obsahu datové struktury
2. Metodické podklady • • • •
Nový formulář „Incidence a léčba zhoubného novotvaru“ (dále Hlášení ZN), Metodika NOR „Závazné pokyny NZIS - Národní onkologický registr 1/2006, ÚZIS ČR“, Datové rozhraní NOR - viz. Datový standard Ministerstva zdravotnictví ČR Zdravotnické klasifikace : o MKN – 10 o MKN – O – 3 o TNM - 6.revize
3. Fungování NORu Přesný popis fungování NORu je uveden – v metodice NOR - „Závazné pokyny NZIS - Národní onkologický registr 1/2006, ÚZIS ČR“. Původní fungování bylo založeno na předávání stanovených podkladů v papírové formě na příslušná územní pracoviště NOR podle trvalého bydliště pacienta. Pověření pracovníci NOR podle podkladů údaje na formuláři NOR verifikovali a tyto údaje vkládali do centrální DB NOR. Záměrem správce dat NOR – ÚZIS ČR je, aby byla zdravotnická zařízení, která mají povinnost hlásit, přímo předávala data v elektronické formě do centrální databáze NOR. K uložení dat do centrální DB NOR dojde jen v případě ověření uživatele, provedení všech kontrol bez chyb a v případě, že je možné automaticky rozhodnout o uložení těchto dat. K tomuto účelu bylo vytvořeno datové rozhraní NORu pro předávání dat NOR a vlastní import dat je možné realizovat pomocí technologie webových služeb.
4. Popis webových služeb pro import dat do centrální DB NOR Pro webovou službu je použita technologie SOAP – Apache Tomcat 5.5 – Axis2. Axis2 podporuje SOAP ve verzích 1.1. a 1.2.
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 5 z 13
Obr. 1 – Architektura řešení
Obr. 2 – Schéma komunikace klienta s webovou službou Pro řešení je použita 1 webová služba se 2 metodami : 1.metoda : • zajistí autentizaci vůči LDAP KSRZIS • pošle dávku na validaci, ke kontrolám dávky a detailním kontrolám • pošle zpět výsledek validace a kontrol 2.metoda : • zajistí autentizaci vůči LDAP KSRZIS • stáhne zpětnou dávku • informaci o stažení zapíše do tabulek centrální DB
Verze 1.2
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 6 z 13
Verze 1.2
Komunikace probíhá prostřednictvím protokolu SOAP. K datům ve formátu XML musí být doplněna SOAP hlavička, která obsahuje informaci o tom, která konkrétní akce se má na serveru provést. Podrobný popis rozhraní je uveden v kapitole č.6 tohoto dokumentu.
Přehled akcí: Činnost (akce) Použitá WS Nahrání nové dávky do databáze
NorWS
Načtení zpětné NorWS dávky z databáze
Použitá metoda WS uploadData
Vstupní Vstup parametr
Návratové hodnoty
Ps_data
Dávka NOR ve formátu XML
Textová zpráva s popisem výsledku operace (popř. popisem chyby)
Identifikátor dávky
Zpětná dávka ve formátu XML nebo textová zpráva s popisem chyby
getBackBatch Ps_data
Popis činnosti WS pro jednotlivé akce : Nahrání nové dávky provede webová služba „NorWS“ metoda „uploadData“ s parametrem „Ps_data“ . Pro přístup na webový server je nutno autorizovat uživatele. Je zobrazena výzva k zadání uživatelského jména a hesla. Následně je provedena autorizace proti LDAP serveru. Zadané uživatelské jméno (login) je rozhodující pro přístup do databáze. Dojde k načtení rolí uživatele a následně i k identifikaci jednotlivých ZZ, k jejichž dávkám má uživatel přístup. Není-li v databázi nalezen odpovídající záznam, veškerá činnost WS končí a jako návratová hodnota je předána chybová zpráva. Vlastní zpracování dávky tedy začíná provedením kontrol správnosti obsahu dávky – validace vzhledem k datovému standardu DASTA. Validní dávka je zapsána do databáze a je zařazena do fronty ke zpracování. Po skončení procesu zpracování dávky je vrácena textová zpráva s popisem výsledku operace popř. popisem chyby. Současně je po ukončení zpracování dávky odeslán informativní mail na adresu uživatele, který dávku nahrál. Obecně jsou nové dávky řazeny do fronty a jsou zpracovávány automatickým mechanizmem v pevně daném časovém intervalu. Pokud tedy ke zpracování dávky nedojde ihned po nahrání (tzv. individuální zpracování), zůstává ve frontě a je zpracována společně s ostatními dávkami. Stejně tak, pokud dojde během zpracování dávky k neočekávanému problému (na straně serveru), bude dávka zařazena k novému zpracování v následujícím cyklu. Informativní mail o výsledku zpracování tedy může být doručen později. Načtení zpětné dávky provede webová služba „NorWs“ metoda „getBackBatch“ s parametrem „Ps_data“ – obahuje identifikátor dávky. V případě neexistence dávky, odepření přístupu k dávce nebo stavu, kdy dávka dosud nebyla zpracována je návratová hodnota nastavena touto informací. V opačném případě je vrácena textová hodnota, obsahující xml strukturu zpětné dávky. URL pro uvedené WS : • testovací prostředí https://snzr.ksrzis.cz/ntsnzr/nor/axis2/services/NorWS.
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 7 z 13
Verze 1.2
5. Instalace a prostředí •
Apache Tomcat 5.5 Nainstalovat webový aplikační server Apache Tomcat 5.5. Popis instalace aplikačního serveru není předmětem této příručky. Podrobnosti lze nalézt na adrese http://tomcat.apache.org/. Umístění aplikačního serveru určuje nastavení proměnné prostředí TOMCAT_HOME. Uživatelům, kteří budou mít právo správce Tomcat, je nutné přidělit uživatelskou roli NOR_TOMCAT_ADMIN.
•
Axis2 Do kontejneru aplikací nainstalovat Apache Axis2. Podrobný popis instalace Axis2 není předmětem této příručky. Podrobnosti lze nalézt na adrese http://ws.apache.org/axis2/1_3/installationguide.html.
•
NorWS Provést deploy archívu NorWS.aar do kontejneru webových služeb.
•
xsd Vytvořit adresář $TOMCAT_HOME\webapps\xsd a umístit do něj soubory použité pro validaci zasílaných dat podle DASTA. Jedná se o tyto soubory: ds_cisidu-1.0.xsd ds_cistype-1.0.xsd ds_dasta-1.0.xsd ds_idu-1.0.xsd ds_type-1.0.xsd nulltr.xsl
•
NorWS.properties Do adresáře $TOMCAT_HOME\webapps umístit soubory NorWS.properties. V tomto souboru upravit nastavení všech hodnot. Příklad pro testovací prostředí ntsnzr je uveden v kapitole č.7 tohoto dokumentu.
6. Definice rozhraní WSDL (NorWS.wsdl) <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:axis2="http://cz.i.nor.ws/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ns0="http://cz.i.nor.ws/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://cz.i.nor.ws/"> <wsdl:types> <xs:schema xmlns:ns="http://cz.i.nor.ws/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://cz.i.nor.ws/xsd"> <xs:element name="getBackBatch"> <xs:complexType> <xs:sequence>
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 8 z 13
Verze 1.2
<xs:element minOccurs="0" name="Ps_data" nillable="true" type="xs:string"/> <xs:element name="getBackBatchResponse"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/> <xs:element name="uploadData"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="Ps_data" nillable="true" type="xs:string"/> <xs:element name="uploadDataResponse"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/> <wsdl:message name="uploadDataRequest"> <wsdl:part name="parameters" element="ns0:uploadData"/> <wsdl:message name="uploadDataResponse"> <wsdl:part name="parameters" element="ns0:uploadDataResponse"/> <wsdl:message name="getBackBatchRequest"> <wsdl:part name="parameters" element="ns0:getBackBatch"/> <wsdl:message name="getBackBatchResponse"> <wsdl:part name="parameters" element="ns0:getBackBatchResponse"/> <wsdl:portType name="NorWSPortType"> <wsdl:operation name="uploadData"> <wsdl:input message="axis2:uploadDataRequest" wsaw:Action="urn:uploadData"/> <wsdl:output message="axis2:uploadDataResponse" wsaw:Action="urn:uploadDataResponse"/> <wsdl:operation name="getBackBatch"> <wsdl:input message="axis2:getBackBatchRequest" wsaw:Action="urn:getBackBatch"/> <wsdl:output message="axis2:getBackBatchResponse" wsaw:Action="urn:getBackBatchResponse"/>
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 9 z 13
Verze 1.2
<wsdl:binding name="NorWSSOAP11Binding" type="axis2:NorWSPortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <wsdl:operation name="uploadData"> <soap:operation soapAction="urn:uploadData" style="document"/> <wsdl:input> <soap:body use="literal"/> <wsdl:output> <soap:body use="literal"/> <wsdl:operation name="getBackBatch"> <soap:operation soapAction="urn:getBackBatch" style="document"/> <wsdl:input> <soap:body use="literal"/> <wsdl:output> <soap:body use="literal"/> <wsdl:binding name="NorWSSOAP12Binding" type="axis2:NorWSPortType"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <wsdl:operation name="uploadData"> <soap12:operation soapAction="urn:uploadData" style="document"/> <wsdl:input> <soap12:body use="literal"/> <wsdl:output> <soap12:body use="literal"/> <wsdl:operation name="getBackBatch"> <soap12:operation soapAction="urn:getBackBatch" style="document"/> <wsdl:input> <soap12:body use="literal"/> <wsdl:output> <soap12:body use="literal"/> <wsdl:binding name="NorWSHttpBinding" type="axis2:NorWSPortType">
<wsdl:operation name="uploadData">
<wsdl:input> <mime:content type="text/xml" part="uploadData"/> <wsdl:output> <mime:content type="text/xml" part="uploadData"/>
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 10 z 13
Verze 1.2
<wsdl:operation name="getBackBatch">
<wsdl:input> <mime:content type="text/xml" part="getBackBatch"/> <wsdl:output> <mime:content type="text/xml" part="getBackBatch"/> <wsdl:service name="NorWS"> <wsdl:port name="NorWSSOAP11port_http" binding="axis2:NorWSSOAP11Binding"> <soap:address location="http://localhost:8080/axis2/services/NorWS"/> <wsdl:port name="NorWSSOAP12port_http" binding="axis2:NorWSSOAP12Binding"> <soap12:address location="http://localhost:8080/axis2/services/NorWS"/> <wsdl:port name="NorWSHttpport" binding="axis2:NorWSHttpBinding">
7. Příklad nastaveni NorWS.properties INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory PROVIDER_URL=ldap://ldap.ksrzis.cz:389/dc=snzr,dc=cz SECURITY_CREDENTIALS=******** SECURITY_AUTHENTICATION=simple SECURITY_PRINCIPAL=cn=Directory Manager ROLE_SUFFIX=!ou=*,dc=snzr,dc=cz CONNECTION_URL=jdbc:oracle:thin:@tsnzr.ksrzis.cz:1526:TSNZ CONNECTION_USER=nox CONNECTION_PASSWORD=****** ROOT_LOGGER_LEVEL= ALL DEBUG=false NorWS_HOME=/opt/icz/apache-tomcat-5.5.20/webapps/ntsnzr/nor/axis2/WEB-INF/services/ XSD_HOME=../xsd/ AXIS_HOME=/opt/icz/apache-tomcat-5.5.20/webapps/ntsnzr/nor/axis2 CATALINA_HOME=/opt/icz/apache-tomcat-5.5.20 TOMCAT_HOME=/opt/icz/apache-tomcat-5.5.20 NorWS_VERSION=1.00
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 11 z 13
Verze 1.2
8. Příklad použití webové služby NorWS pro odeslání nové dávky - metoda uploadData Obsah SOAP komunikace pro případ odeslání nové dávky na server. Dávka má identifikaci Batch2008/02/20_01. Request: POST /axis2/services/NorWS HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: "urn:uploadData" User-Agent: Axis2 Authorization: Basic bGlib3I6dG9tY2F0 Host: localhost:8080 Transfer-Encoding: chunked 8c8 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body>
NZISUSTAV ZDRAVOTNICKYCH INFORMACI A STATISTIKY CRNZIS Praha000111NemocniceHusova 123xxx11111 Brno000 Response:
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 12 z 13
Verze 1.2
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: text/xml;charset=UTF-8 Transfer-Encoding: chunked Date: Wed, 20 Feb 2008 12:26:07 GMT 143 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <ns:uploadDataResponse xmlns:ns="http://cz.i.nor.ws/xsd"> <ns:return>V[0xc3][0xbd]sledek individu[0xc3][0xa1]ln[0xc3][0xad]ho zpracov[0xc3][0xa1]n[0xc3][0xad] d[0xc3][0xa1]vky: Bez chyby
9. Příklad použití webové služby NorWS pro získání zpětné dávky - metoda getBackBatch Obsah SOAP komunikace pro případ stažení zpětné dávky s identifikátorem Batch-2008/02/20_01. Request: POST /axis2/services/NorWS HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: "urn:getBackBatch" User-Agent: Axis2 Authorization: Basic bGlib3I6dG9tY2F0 Host: localhost:8080 Transfer-Encoding: chunked 123 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body>
Batch-2008/02/20_01 0 Response: HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: text/xml;charset=UTF-8 Transfer-Encoding: chunked
Národní onkologický registr – webová služba pro posílání dávek dat do DB NOR a stažení zpětné dávky
Stránka 13 z 13
Date: Wed, 20 Feb 2008 12:28:17 GMT 634 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <ns:getBackBatchResponse xmlns:ns="http://cz.i.nor.ws/xsd"> <ns:return>
NOR.NOX
NOR.NOX
0
Verze 1.2