Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


1 Der VeKa-Abfrage-Webservice

1.1 Vorwort

Das VeKa-Center stellt ein Abfragemodul in Form eines Webservice bereit.
 
Dieses Abfragemodul beinhaltet Daten der Versicherer, die die Zustimmung zu der Abfrage gegeben haben.

Die vertraglichen Vereinbarungen sind im Lizenzvertrag und den Richtlinien vorhanden. Dieses Dokument soll vor allem die technische Sicht des Webservice wiedergeben.

Der Webservice hat eine einzige Methode „Query“. Der Inhalt des Inputparameters beinhaltet die Felder, aufgeschlüsselt in XML, die im Vertrag definiert sind. Die Methode liefert wiederum die Felder zurück, die im Vertrag als Rückgabewerte definiert sind. Dort ist auch der fachliche Beschrieb als Anhang definiert. Der eigentliche Datenaustausch wird im SOAP-Body durchgeführt. Dort werden die Daten zum VeKa-Center übermittelt und in der Antwort Struktur zurückgeliefert. Dabei werden die Anfragewerte teilweise kopiert und mit Werten aus dem VeKa-Center ergänzt.

Der Zugriff auf den Webserver wird mit SSL abgesichert. Dabei verlangt der Web-Server nach einem Clientzertifikat. Wird dieses nicht mit der Anfrage übermittelt, so kann keine Abfrage stattfinden.

Weiter verlangt der Webservice eine Benutzer-Passwort Kombination. Nur, wenn das Subject des Zertifikats mit dem Benutzer übereinstimmt und die Benutzer-Passwort Kombination korrekt ist wird die Anfrage behandelt.
Der Webservice ist im WSDL beschrieben:
https://www.versichertenkarte.ch/queryws_1_0/VeKa_Query_1_0.asmx?wsdl

Die korrekten Verbindungsparameter und das Zertifikat werden Ihnen separat mitgeteilt.

Bei der Implementierung ist darauf zu achten, dass keine Kürzel für die Namespaces im Body akzeptiert werden. Der Webservice kann die Inputparameter nicht verarbeiten und somit kommen Fehlermeldungen zurück, dass nicht alle Parameter gefüllt sind.

In der Version 1.2 hat sich geändert, dass neu das Feld basic_insurance_military_delay (Militärversicherung) entfernt wurde, da es von den Versicherern als unnötig deklariert wurde. 
Ebenfalls wurden die Stammtabellen im Kapitel 2.5, das Kapitel 2.2 und die Fehlermeldungen 
mit den Rückmeldecodes 15/16 ergänzt.

In der Version 1.3 hat sich geändert, dass offizielle Angaben der Zentralen Ausgleichsstelle ZAS zurückgeliefert werden. Dabei handelt es sich um Vornamen, Nachnamen, Geburtsdatum und Geschlecht.

Die ZAS-Attribute sind in einen eigenen Knoten verschoben worden, da die Datenquelle das ZAS ist und nicht das VeKa. Um einen Parallelbetrieb aufrecht zu erhalten werden die Attribute noch bis 31.12.2015 am alten Platz geliefert.

Weiterhin kommt in der Version 2.0 die Blacklist des Kantons hinzu. Die Quelle der Daten an dieser Stelle ist das herausgebende Kanton. Sie werden auch nur angezeigt, wenn der abfragende Leistungserbringer bei LSP der SASIS AG angemeldet ist.

Nähere Informationen finden Sie unter https://www.lsp-online.ch.

Die Blacklist wird immer zum aktuellen Stand abgefragt. Es findet keine Historisierung statt.

In der Version 2.1 wurden im Kapitel 2.4.5 die zusätzliche Felder zum erweiterten Deckungsrecord hinzugefügt und beschrieben.

1.2 Endpoint

Der VeKa-Webservice Endpoint lautet:
https://www.versichertenkarte.ch/queryws_1_0/VeKa_Query_1_0.asmx 



1.3 Graphische Darstellung

→ Für das blau eingefärbte Kreuz (siehe folgende Grafik) ist jeweils Masterdata vorhanden:

   

1.3.3 Beispiel einer kompletten SOAP Anfrage

Anfragestruktur

Rückgabestruktur


Expand
titleZum Ausklappen hier klicken...

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:veka="http://www.vekacenter.ch/veka_query/">

                <soap:Header/>

                <soap:Body>

                <veka:VeKa_Request>


                <veka:requestDate>2013-08-13T00:00:00</veka:requestDate>

                   <veka:questioners>

                                <veka:questioners>Abfragedienst-Name</veka:questioners>

                                <veka:user>User-Name</veka:user>

                                <veka:password>********</veka:password>

                                <veka:language>D</veka:language>

                   </veka:questioners>


                <veka:provider>

                                <veka:ZSR>T000001</veka:ZSR>

                </veka:provider>


                <veka:insurance/>   


                <veka:patient>

                                <veka:card_id>80756012340000000527</veka:card_id>


                <!--Behandlungsdatum (Schadensdatum):-->

                                <veka:treatment_date>2013-08-13</veka:treatment_date>


                </veka:patient>

                </veka:VeKa_Request>

  </soap:Body>

</soap:Envelope>



Expand
titleZum Ausklappen hier klicken...

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <soap:Body>

      <VeKa_Response xmlns="http://www.vekacenter.ch/veka_query/">

         <returnCode>0</returnCode>

         <returnMessage/>

         <requestDate>2013-08-13T17:19:48.5267901+02:00</requestDate>

         <request_ID>109783678</request_ID>

         <version>

            <version_no>1.3.0.2</version_no>

            <version_date>2013-03-26T18:15:00+01:00</version_date>

         </version>

         <biller/>

         <provider>

            <ZSR>T000001</ZSR>

         </provider>

         <patient>

            <validFrom>2009-01-01T00:00:00</validFrom>

            <validUntil>2014-06-30T00:00:00</validUntil>

            <cardValidFrom>2009-01-01T00:00:00</cardValidFrom>

            <cardValidUntil>2014-06-30T00:00:00</cardValidUntil>

            <language>D</language>

            <insurance>

               <ean_party>7600000000000</ean_party>

               <BAG_insurance_id>1234</BAG_insurance_id>

               <name>sanacur (Testversicherer)</name>

               <description>Servicecenter</description>

               <phone>012 345 67 89</phone>

               <e_mail>info@sanacur.ch</e_mail>

               <name1>Irgendeine Versicherung</name1>

               <name2/>

               <address>

                  <street>Strasse 1</street>

                  <postbox>Postfach. 1234</postbox>

                  <zip>8099</zip>

                  <city>Zürich</city>

                  <countrycode>CH</countrycode>

               </address>

               <dateofimport>2010-03-03T18:29:59.783</dateofimport>

            </insurance>

            <basicData>

               <card_id>80756012340000000527</card_id>

               <assured_id>52</assured_id>

               <unique_id>7569999999472</unique_id>

               <familyname>Devon</familyname>

               <givenname>Ann</givenname>

               <birthdate>1987-02-14T00:00:00</birthdate>

               <gender>female</gender>

               <address>

                  <street>Sonnenpark 20b</street>

                  <postbox/>

                  <zip>8051</zip>

                  <city>Zürich</city>

                  <countrycode>CH</countrycode>

               </address>

            </basicData>

            <KVG>

               <basic_insurance>

                  <Code>1</Code>

                  <Text>Deckung OKP gems KVG</Text>

               </basic_insurance>

               <basic_insurance_model>

                  <Code>1</Code>

                  <Text>Standard-Modell gemäss KVG</Text>

               </basic_insurance_model>

               <basic_insurance_description/>

               <basic_insurance_region>ZH</basic_insurance_region>

               <basic_insurance_accident>

                  <Code>0</Code>

                  <Text>Keine Unfalldeckung gemäss KVG</Text>

               </basic_insurance_accident>

               <basic_insurance_data_locked_insured>false

               </basic_insurance_data_locked_insured>

               <basic_insurance_benefit_delay>false</basic_insurance_benefit_delay>

               <basic_insurance_product>

                  <Code>1</Code>

                  <Text>Testprodukt OKP 1</Text>

               </basic_insurance_product>

            </KVG>

            <drugs>

               <drugs_Hors_Liste>

                  <Code>0</Code>

                  <Text>Keine Deckung für Medikamente gemäss Hors Liste</Text>

               </drugs_Hors_Liste>

               <drugs_Hors_Liste_accident>

                  <Code>1</Code>

                  <Text>Unfalldeckung für Medikamente gemäss Hors Liste</Text>

               </drugs_Hors_Liste_accident>

               <drugs_complementary>

                  <Code>0</Code>

                  <Text>Keine Deckung für Medikamente Komplementärmedizin</Text>

               </drugs_complementary>

               <drugs_complementary_accident>

                  <Code>0</Code>

                  <Text>Keine Unfalldeckung für Medikamente Komplementärmedizin</Text>

               </drugs_complementary_accident>

               <drugs_benefit_delay>false</drugs_benefit_delay>

            </drugs>

            <hospital>

               <hospital_unit>

                  <Code>3</Code>

                  <Text>Private Spitalabteilung VVG</Text>

               </hospital_unit>

               <hospital_model>

                  <Code>30</Code>

                  <Text>Einzelzimmer mit freier Arztwahl</Text>

               </hospital_model>

               <hospital_accident>

                  <Code>0</Code>

                  <Text>Keine Unfalldeckung für Spitalversicherung gemäss VVG</Text>

               </hospital_accident>

               <hospital_benefit_delay>false</hospital_benefit_delay>

            </hospital>

            <vvg_product>

               <Code>1</Code>

               <Text>Prod VVG 1</Text>

            </vvg_product>

            <treatment_date>2013-08-13T00:00:00</treatment_date>

         </patient>

         <ZAS>

                      <official_familynames>Devon-Miller</official_familynames>

            <official_givennames>Annemaria</official_givennames >

            <official_birthdate>1987-02-14T00:00:00</official_birthdate>

            <official_gender>female</official_gender>

         </ZAS>

         <canton>

            <isZsrInBlacklistActive>true</isZsrInBlacklistActive>

            <blacklist>

               <canton_name>SH</canton_name>

               <validFrom>2014-01-01T00:00:00</validFrom>

               <validUntil>2014-01-20T00:00:00</validUntil>

            </blacklist >

            <blacklist>

               <canton_name>TI</canton_name>

               <validFrom>2014-01-05T00:00:00</validFrom>

            </blacklist >

         </canton>

      </VeKa_Response>

   </soap:Body>

</soap:Envelope>




1.4 Rückmeldungen (ReturnValue) des Webservice

Im Moment werden folgende Rückmeldungen generiert. Diese Meldungen sind nicht fix und werden bei Bedarf ausgebaut.

Ok = 0

Abfrage konnte korrekt durchgeführt werden

NoMatch = 1

Keine Treffer

ToMuchMatches = 2

Zuviele Treffer (evtl. auch Fehllieferungen der Versicherer)

NoEnoughInformationForQuery = 4

Die Abfragestruktur wurde nicht korrekt gefüllt (Mussfelder sind leer, Felder nicht korrekt gefüllt)

UserDoesntMatchCertificate = 5

Der User passt nicht zum Zertifikat

UserPasswordNotFound = 6

User/Passwort-Kombination falsch

NoCertificate = 7

Der Zugriff erfolgt ohne gültiges Zertifikat (Wird schon vom Internetserver abgefangen)

UserLocked = 8

Der User ist gesperrt

ZSRNotForProvider = 9

Die Anfragende Zahlstelle wurde für das Zertifikat nicht freigeschaltet

BAGNrLocked = 10

Es konnte ein Treffer gelandet werden, die ZSR oder der Provider hat jedoch keine Freischaltung des Versicherers

NoFurtherRightsForQuery= 11

Es wurde mit den eingestellten Rechten kein Treffer gelandet

WrongCity= 12

Es konnte ein Treffer gelandet werden, der übergebene Ort stimmt jedoch nicht mit dem Ort im VeKa-Center überein

ZSRNotForUser = 13

Die übergebene ZSR-Nummer (Provider) ist nicht für den übergebenen User freigeschaltet

CardNotValid = 14

Die übergebene Kartennummer konnte zwar gefunden werden, jedoch ist die Karte nicht mehr gültig (wg. Neuer Karte, Sperrung, Austritt)

NewCardInInsurance = 15

Die mitgelieferte Kartenummer ist nicht mehr aktiv, es wurde  eine aktive Kartennummer innerhalb des gleichen Versicherers gefundent.

OtherInsurance = 16

Die mitgelieferte Kartenummer ist nicht mehr aktiv, es wurde  eine aktive Kartennummer innerhalb eines anderen Versicherers gefundent.

UnknownError = 999

Unbekannter Fehler, ReturnMessage beachten (Normalerweise ein Programmfehler)



2 Detaillierte Beschreibung der Knoten

2.1 Einleitung

Da jeder Versicherer selbst über seine Daten bestimmt ist es möglich, dass bestimmte Informationen bei bestimmten Leistungserbringern nicht freigeschaltet sind oder dass die Versicherung die Daten nicht liefert. Dies kann dazu führen, dass einzelne Knoten ausgeblendet werden und als Serverrückmeldung eine entsprechende Meldung kommt.

2.2 Allgemeine Datentypen


Expand
titletypeGLN


Beschreibung

Einschränkung

Beinhaltet die eine EAN-Nummer.

String: (20[0-9]{11}|76[0-9]{11})



Expand
titletypeBAG_id


Beschreibung

Einschränkung

Beinhaltet die eine BAG-Nummer.

Integer von 1 bis 9999



Expand
titletypeCard_id


Beschreibung

Einschränkung

Beinhaltet die eine Karten-Nummer.

String, (80756[0-9]{15}|80438[0-9]{15})



Expand
titletypeString2


Beschreibung

Einschränkung

Beinhaltet eine Zeichenkette.

String maximale Länge 2 Zeichen



Expand
titletypeString20


Beschreibung

Einschränkung

Beinhaltet eine Zeichenkette.

String maximale Länge 20 Zeichen



Expand
titletypeString40


Beschreibung

Einschränkung

Beinhaltet eine Zeichenkette.

String maximale Länge 40 Zeichen



Expand
titletypeString100


Beschreibung

Einschränkung

Beinhaltet eine Zeichenkette.

String maximale Länge 100 Zeichen



Expand
titletypeUnique_id (Sozialversicherungsnummer)


Beschreibung

Einschränkung

Beinhaltet eine Sozialversicherungsnummer.

String, (756[0-9]{10})



Expand
titletypeZSR


Beschreibung

Einschränkung

Beinhaltet eine Zahlstellenregister Nummer.

String, ([A-Z][0-9]{6})



Expand
titletypeLanguage


Beschreibung

Einschränkung

Beinhaltet die Abfragesprache.

String(1), (D/F/I)



Expand
titletypeGender


Beschreibung

Einschränkung

Beinhaltet das Geschlecht.

String, Enumeration (male/female)



2. 3 Abfrage beim VeKa (Request)

2.3.1 Abfragestruktur «VeKa Request»

Beschreibung

Element

Beschreibung

requestDate

In diesem Tag wird das Abfragedatum des Clients übergeben.

questioners

Siehe "Das Element «questioners» (typeQRY_questioners)"

biller

Siehe "Das Element «biller» (typeQRY_biller)"

provider

Siehe "Das Element «provider» (typeQRY_provider)"

insurance

Siehe "Das Element «insurance» (typeQRY_insurance)"

patient

Siehe "Das Element «patient» (typeQRY_patient)"



Expand
titleDas Element «questioners» (typeQRY_questioners)

Das Element «questioners» (typeQRY_questioners)

Beschreibung

Element

Beschreibung

questioners

Abfragestelle: Wird vom VeKa-Center vergeben

user

User: Wird vom VeKa-Center vergeben

password

Passwort: Wird vom VeKa-Center vergeben

language

Sprache der Antwort (D, F, I)



Expand
titleDas Element «biller» (typeQRY_biller)

Das Element «biller» (typeQRY_biller)

Beschreibung

Element

Beschreibung

ean_party

EAN

ZSR

ZSR

invoice_id

RechnungsNr

invoice_date

RechnungsDatum



Expand
titleDas Element «provider» (typeQRY_provider)

Das Element «provider» (typeQRY_provider)

Beschreibung

Element

Beschreibung

ean_party

EAN

ZSR

ZSR



Expand
titleDas Element «insurance» (typeQRY_insurance)

Das Element «insurance» (typeQRY_insurance)

Beschreibung

Element

Beschreibung

ean_party

EAN

BAG_insurance_id

BAGNr

name

Bezeichnung



Expand
titleDas Element «patient» (typeQRY_patient)

Das Element «patient» (typeQRY_patient)

Image Modified

Beschreibung

Element

Beschreibung

card_id

Kartennummer von VeKa-Center

assured_id

VersichertenNummer

unique_id

Sozialversicherungsnummer

familyname

Hauptname

givenname

Vorname

birthdate

Geburtsdatum

gender

Geschlecht

zip

Postleitzahl des Wohnorts des Patienten

treatment_date

Behandlungsbeginn