viavac CDSS - Clinical Decision Support System

Werbung
viavac Gmbh
Weihermat 22
3182 Ueberstorrf
viavac CDSS
Webservice Schnittstelle 2.0
viavac GmbH, April 2017
Tel. +41 79 411 10 28
[email protected]
www.viavac.ch
Inhaltsverzeichnis
1.Einleitung...........................................................................................................................................3
1.1Webservice-URL..........................................................................................................................3
1.2WSDL...........................................................................................................................................3
1.3Client-Zertfkat...........................................................................................................................3
2.Datenformat......................................................................................................................................4
2.1CDA Dokument...........................................................................................................................4
3.Webservices......................................................................................................................................5
3.1Technische Aspekte....................................................................................................................5
3.2Operatonen................................................................................................................................5
3.2.1Kommunkaton prüfen........................................................................................................5
3.2.2Impfempfehlung abrufen....................................................................................................7
4.eVACDOC Beispiel..............................................................................................................................8
5.Programmier Beispiel........................................................................................................................8
1. Einleitung
viavac CDSS (Clinicial Decision Support System) ist ein von der viavac GmbH entwickelter und von der
arpage AG gehosteter Webservice.
viavac CDSS implementert die Algorithmen um, basierend auf den aktuellen Patenten- und Impfdaten,
eine Impfempfehlung abzugeben (Welches sind die fehlenden Impfungen, Wann sind zukünfige Impfungen
fällig, etc.).
Als Datenaustauschformat wird das von eHealthSuisse defnierte, HL7 CDA basierte eVACDOC verwendet.
Für die technische Umsetzung des eVACDOC basiert viavac CDSS zudem auf der OpenSource Komponente
eHealthConnector.
1.1 Webservice-URL
Der viavac CDSS Webservice wird über eine gesicherte Verbindung (htps) aufgerufen. Nachfolgend sind die
entsprechenden URL's defniert. Für den Aufruf wird ein Client-Zertfkat benötgt (siehe unten).
Testsystem
CDSS
htps://test.viavac-cdss.ch/viavac-forecast-hl7/forecastService
Produktvsystem
CDSS
htps://www.viavac-cdss.ch/viavac-forecast-hl7/forecastService
1.2 WSDL
Die WSDL zur Anbindung des Webservice kann durch Anfügen von „?wsdl“ automatsch generiert werden.
1.3 Client-Zertifikat
Die Kommunikaton mit dem Webservice erfolgt über einen gesicherten htps-Kanal.
Für den Zugrif wird ein Client-Zertfkat benötgt. Dieses kann über das Kontaktormular unter
htps://www.viavac-cdss.ch/de/accounts/register/
beantragt werden.
2. Datenformat
2.1 CDA Dokument
Von eHealthSuisse wurde im Dokument Austauschformat Elektronsiches Impfdossier (Link, siehe unten)
ein CDA basiertes Format defniert, mitels dem Impfdaten standardisiert ausgetauscht werden können.
Sämtliche Spezifkatonen zum Datenformat sind diesem Dokument zu entnehmen und werden hier nicht
weiter aufgeführt.
Austauschformat Elektronisches Impfdossier
htps://www.e-healthsuisse.ch/fleadmin/user_upload/Dokumente/2015/D/151112_Austauschformat_Elektronisches_Impfdossi
er_D.pdf
Value-Set eVACDOC
htps://www.e-health-suisse.ch/fleadmin/user_upload/Dokumente/2015/D/150917_ValueSet_eVacDoc_D.xls
Als Beispiel sei hier kurz ein SOAP-Request einer solchen HL7 CDA Anfrage abgebildet:
Abbildung 1: eVACDOC im SOAP Request
3. Webservices
3.1 Technische Aspekte
Der viavac CDSS WebService wurde basierend auf JAX-WS 2.x implementert. Für die SOAP Messages wird
der "document/literal" Ansatz verwendet.
Literal-style SOAP bedeutet, dass die Nachrichten im SOAP Body als XML Dokument zwischen Client und
WebService ausgetauscht werden. Die Vereinbarung über das Format der ausgetauschten Nachrichten ist
mitels XML Schemas (XSD) defniert.
Abbildung 2: Client-Server Kommunikaton
3.2 Operationen
Wie erwähnt, ermöglicht der WebService die Abfrage des Impfstatus eines Patenten.
Folgende Methoden werden dazu angeboten:
Methode
ping
planString
Beschreibung
Dient der technischen Verbindungskontrolle
Berechnet basierend auf dem Input HL7 CDA Dokument (eVACDOC) den
aktuellen Impfzustand des Patenten
3.2.1 Kommunkation prüfen
Operaton:
ping
Beschreibung
Diese Operaton dient (analog zum tcp-ping) dem Prüfen der Verbindung. Ist die URL korrekt ? Ist das
Client-Zertfkat korrekt installiert ?
Parameter
keine
Rückgabewert
Die PingResponse liefert einige Informatonen zum Server (wie Java Version, installierte CDSS Version, etc)
an den Aufrufer zurück.
Nachstehend ein Beispiel der PingResponse.
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:pingResponse xmlns:ns2="http://ws.viavac.ch/">
<response>viavac-cdss-version=1.0;java.version=1.8.0_45;java.vendor=Oracle
Corporation;os.name=Mac OS X;os.version=10.8.5</response>
</ns2:pingResponse>
</S:Body>
</S:Envelope>
3.2.2 Impfempfehlung abrufen
Operaton:
planString
Beschreibung
Eine Impfempfehlung wird abgerufen, indem ein CDA-Dokument (eVACDOC) an den Webservice geschickt
wird. Der Service prüf und übernimmt die Daten aus dem eVACDOC, erstellt die Impfempfehlung, und
retourniert ein mit Impfplan und Kommentar secton angereichertes eVACDOC.
Parameter
eVACDOC, die Operaton übernimmt im XML-Element <stringRequest> ein CDA-Dokument
(<ClinicalDocument>):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws="http://ws.viavac.ch/">
<soapenv:Header/>
<soapenv:Body>
<ws:stringRequest>
<ClinicalDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:hl7-org:v3">
<realmCode code="CH"/>
...
</component>
</ClinicalDocument>
</ws:stringRequest>
</soapenv:Body>
</soapenv:Envelope>
Rückgabewert
eVACDOC, die Response enthält im XML-Element <stringResponse> ein CDA-Dokument
(<ClinicalDocument>) mit den zusätzlichen sectons, „Impfplan“ und „Kommentar“.
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:stringResponse xmlns:ns2="http://ws.viavac.ch/">
<ClinicalDocument:ClinicalDocument xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd"
xmlns:ClinicalDocument="urn:hl7-org:v3" xmlns="urn:hl7-org:v3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<realmCode code="CH"/>
...
<component>
<section>
<templateId extension="CDA-CH.Body.CodedRem"
root="2.16.756.5.30.1.1.1.1.1"/>
<code code="48767-8" codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC"/>
<title>Kommentar</title>
...
<component>
<section>
<templateId root="1.3.6.1.4.1.19376.1.5.3.1.1.18.3.1"/>
<code code="18776-5" codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC"/>
<title>Impfplan</title>
<text>
</component>
</ClinicalDocument:ClinicalDocument>
</ns2:stringResponse>
</S:Body>
</S:Envelope>
4. eVACDOC Beispiel
Um einen ersten Einblick in die HL7 CDA Welt zu erhalten, kann auf der Website von viavac CDSS
(www.viavac-cdss.ch/de/demo) eine Beispiel-eVACDOC Datei heruntergeladen werden.
Diese Datei kann angepasst, und mitels Upload-Funkton an den viavac CDSS Webservice übergeben
werden.
Als Antwort wird ein mit der Impfempfehlung kompletertes eVACDOC angezeigt.
Abbildung 3: eVACDOC Beispiel Datei
5. Programmier Beispiel
Nachfolgend ein kurzes Java-Snippet wie ein Aufruf des viavac CDSS aussehen könnte.
–
CdaChVacd, CdaChUtl sind Klassen aus dem eHealthConnector
–
stub.forecast ist eine WSDL basierte, generierte Wrapper-Klasse für den Aufruf des Webserivice.
private void run() {
CdaChVacd input;
try {
input = CdaChUtil.loadVacdFromFile("evacdoc-request.xml");
CdaChVacd output = stub.forecast(input);
output.saveToFile("evacdoc-response.xml");
} catch (Exception e) {
e.printStackTrace();
}
}
Herunterladen