Beispiel für ProductProposal in der Sparte Kranken erstellt.

This commit is contained in:
2024-05-01 14:09:12 +02:00
parent 0455fd75a1
commit 97c9f350ff
17 changed files with 450 additions and 144 deletions

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Beispiel eines Requests für Product Proposal: Die Angaben der Kontextinfo werden
in einen oder mehrere Produktvorschläge umgewandelt.
* Kontextinfo wird VU-spezifisch definiert
-->
<ac:ProductProposalRequest
xmlns="urn:omds3CommonServiceTypes-1-1-0"
xmlns:cst="urn:omds3CommonServiceTypes-1-1-0"
xmlns:kv="urn:at.vvo.omds.types.omds3types.v1-6-0.on2antrag.kranken"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ac="urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common"
xmlns:vu="http://boa.example.com/kranken"
xmlns:omds="urn:omds20"
xsi:schemaLocation="
urn:at.vvo.omds.types.omds3types.v1-6-0.on2antrag.kranken ../../omds3_ON2_Antrag_Kranken.xsd
urn:omds3CommonServiceTypes-1-1-0 ../../omds3CommonServiceTypes.xsd
urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common ../../omds3_ON2_Antrag_Common.xsd
urn:omds20 ../../omds216-00.xsd
http://boa.example.com/kranken KrankenExtension.xsd
">
<VUNr>23</VUNr>
<ClientId>Testclient</ClientId>
<KorrelationsId>100432340010011</KorrelationsId>
<ac:Sparte>KV</ac:Sparte>
<ac:Kontextinfo xsi:type="vu:KrankenProposalContext_Type" >
<vu:Geburtsdatum>2001-10-26</vu:Geburtsdatum>
<vu:Beruf>Zimmermann</vu:Beruf>
<vu:Sozialversicherung>ÖGK</vu:Sozialversicherung>
<vu:Bundesland>Burgenland</vu:Bundesland>
<vu:TarifArt>Sonderklasse</vu:TarifArt>
</ac:Kontextinfo>
</ac:ProductProposalRequest>

View File

@@ -0,0 +1,174 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Beispiel eines Responses für Product Proposal:
* Kontextinfo wird VU-spezifisch definiert
-->
<ac:ProductProposalResponse
xmlns="urn:omds3CommonServiceTypes-1-1-0"
xmlns:cst="urn:omds3CommonServiceTypes-1-1-0"
xmlns:kv="urn:at.vvo.omds.types.omds3types.v1-6-0.on2antrag.kranken"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ac="urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common"
xmlns:vu="http://boa.example.com/kranken"
xmlns:omds="urn:omds20"
xsi:schemaLocation="
urn:at.vvo.omds.types.omds3types.v1-6-0.on2antrag.kranken ../../omds3_ON2_Antrag_Kranken.xsd
urn:omds3CommonServiceTypes-1-1-0 ../../omds3CommonServiceTypes.xsd
urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common ../../omds3_ON2_Antrag_Common.xsd
urn:omds20 ../../omds216-00.xsd
http://boa.example.com/kranken KrankenExtension.xsd
">
<cst:Status>
<KorrelationsId>100432340010011</KorrelationsId>
<Ergebnis>OK</Ergebnis>
</cst:Status>
<!--
Es folgt der Vorschlag für den Kunden. Der Vorschlag muss als Calculate-Request gültig sein.
Er kann Prämien enthalten.
-->
<ac:Verkaufsprodukt xsi:type="kv:VerkaufsproduktKranken_Type">
<TarifId xsi:type="vu:TarifIdVerkaufsprodukt" vu:text="001"/>
<Bezeichnung>Gesund in Wien (Produktbezeichnung)</Bezeichnung>
<VtgBeg>2024-05-01</VtgBeg>
<Zahlweg>02</Zahlweg><!-- Lastschrift -->
<Zahlrhythmus>1</Zahlrhythmus><!-- jährlich -->
<Hauptfaelligkeit>--05-01</Hauptfaelligkeit>
<Vermittlernr>3424324324</Vermittlernr>
<omds:EL-Rahmenvereinbarung RahmenVebnr="234324324"/>
<Eingeschlossen>true</Eingeschlossen>
<!-- Deckung Person 1 -->
<kv:Krankenprodukte xsi:type="kv:ProduktKranken_Type">
<TarifId xsi:type="vu:TarifIdVersichertePerson" vu:text="stationaer"/>
<Bezeichnung>Deckungen für Person 1</Bezeichnung>
<Eingeschlossen>true</Eingeschlossen>
<VersPersonenRefLfnr>1</VersPersonenRefLfnr><!-- Bezug zum Risikoobjekt unten -->
<kv:Elementarprodukte xsi:type="kv:ElementarproduktKranken_Type">
<TarifId xsi:type="vu:TarifIdElementarprodukt" vu:text="SonderkWien2024" />
<Bezeichnung>Sonderklasse</Bezeichnung>
<Eingeschlossen>true</Eingeschlossen>
<EinschlussAenderbar>false</EinschlussAenderbar><!-- wenn Sonderklasse fixer Baustein wäre -->
</kv:Elementarprodukte>
<kv:Elementarprodukte xsi:type="kv:ElementarproduktKranken_Type">
<TarifId xsi:type="vu:TarifIdElementarprodukt" vu:text="WahlarztWien2024" />
<Bezeichnung>Wahlarzt</Bezeichnung>
<Eingeschlossen>true</Eingeschlossen>
<EinschlussAenderbar>true</EinschlussAenderbar><!-- wenn z.B. der Baustein Wahlarzt in dem Tarif ausschließbar wäre -->
</kv:Elementarprodukte>
<kv:Elementarprodukte xsi:type="kv:ElementarproduktKranken_Type">
<Id>2839438624329856325832</Id>
<TarifId xsi:type="vu:TarifIdElementarprodukt" vu:text="MuUndKind" />
<Bezeichnung>Mutter und Kind</Bezeichnung>
<Eingeschlossen>false</Eingeschlossen><!-- Baustein wird optional angeboten -->
<EinschlussAenderbar>true</EinschlussAenderbar>
</kv:Elementarprodukte>
</kv:Krankenprodukte>
<!-- Deckung Person 2 -->
<kv:Krankenprodukte xsi:type="kv:ProduktKranken_Type">
<TarifId xsi:type="vu:TarifIdVersichertePerson" vu:text="stationaer"/>
<Bezeichnung>Deckungen für Person 2</Bezeichnung>
<Eingeschlossen>true</Eingeschlossen>
<VersPersonenRefLfnr>1</VersPersonenRefLfnr><!-- Bezug zum Risikoobjekt unten -->
<kv:Elementarprodukte xsi:type="kv:ElementarproduktKranken_Type">
<Id>52748327403274326432</Id><!-- optional individuelle Id dieses Bausteins, in Phase Calculate wahrscheinlich nie, vielleicht aber im Angebot -->
<TarifId xsi:type="vu:TarifIdElementarprodukt" vu:text="SonderkWien2024" />
<Bezeichnung>Sonderklasse</Bezeichnung>
<Eingeschlossen>true</Eingeschlossen>
<EinschlussAenderbar>false</EinschlussAenderbar><!-- wenn Sonderklasse fixer Baustein wäre -->
</kv:Elementarprodukte>
<kv:Elementarprodukte xsi:type="kv:ElementarproduktKranken_Type">
<Id>232783264328649832</Id>
<TarifId xsi:type="vu:TarifIdElementarprodukt" vu:text="WahlarztWien2024" />
<Bezeichnung>Wahlarzt</Bezeichnung>
<Eingeschlossen>true</Eingeschlossen>
<EinschlussAenderbar>true</EinschlussAenderbar><!-- wenn z.B. der Baustein Wahlarzt in dem Tarif ausschließbar wäre -->
</kv:Elementarprodukte>
<kv:Elementarprodukte xsi:type="kv:ElementarproduktKranken_Type">
<Id>2839438624329856325832</Id>
<TarifId xsi:type="vu:TarifIdElementarprodukt" vu:text="MuUndKind" />
<Bezeichnung>Mutter und Kind</Bezeichnung>
<Eingeschlossen>false</Eingeschlossen><!-- Baustein wird optional angeboten -->
<EinschlussAenderbar>true</EinschlussAenderbar>
</kv:Elementarprodukte>
</kv:Krankenprodukte>
<!-- Es folgen Risikoinformationen zu den versicherten Personen.
In Phase Calculate noch nicht mit Personendaten
wie Vorname, Nachname, Geburtsdatum verknüpft -->
<kv:VersichertePersonen cst:Lfnr="1">
<RisikoNatPerson>
<Gewicht><Value>105</Value></Gewicht>
<Groesse><Value>155</Value></Groesse>
<Sozialversicherungsanstalt><!-- Beispiel Auswahlliste zur Laufzeit -->
<Aenderbar>true</Aenderbar>
<Bezeichnung>Sozialversicherungsanstalt</Bezeichnung>
<BeschreibungTxt>Die Sozialversicherungsanstalt, bei der die Person versichert ist.</BeschreibungTxt>
<Values>
<Text>Sozialversicherung der Selbständigen</Text>
<Schluessel>SVS</Schluessel>
</Values>
<Values>
<Text>Wiener Gebietskrankenkasse</Text>
<Schluessel>WGKK</Schluessel>
</Values>
<MinAnz>1</MinAnz>
</Sozialversicherungsanstalt>
<Beruf ><!-- Beispiel String mit Auswahlliste als Wertebereich zur Laufzeit -->
<Value>Angestellter</Value><!-- aktueller Wert -->
<Default>Angestellter</Default> <!-- Defaultwert -->
<!-- Auswahlliste moeglicher Berufe -->
<Values>Angestellter</Values>
<Values>Arzt</Values>
<Values>Apotheker</Values>
<Values>Fischer</Values>
<Values>Fleischer</Values>
<Values>Zimmermann</Values>
</Beruf>
</RisikoNatPerson>
</kv:VersichertePersonen>
<kv:VersichertePersonen cst:Lfnr="2">
<RisikoNatPerson>
<Gewicht><Value>73</Value></Gewicht>
<Groesse><Value>190</Value></Groesse>
<Sozialversicherungsanstalt><!-- Beispiel Auswahlliste zur Laufzeit -->
<Aenderbar>true</Aenderbar>
<Bezeichnung>Sozialversicherungsanstalt</Bezeichnung>
<BeschreibungTxt>Die Sozialversicherungsanstalt, bei der die Person versichert ist.</BeschreibungTxt>
<Values>
<Text>Sozialversicherung der Selbständigen</Text>
<Schluessel>SVS</Schluessel>
</Values>
<Values>
<Text>Wiener Gebietskrankenkasse</Text>
<Schluessel>WGKK</Schluessel>
</Values>
<MinAnz>1</MinAnz>
</Sozialversicherungsanstalt>
<Beruf ><!-- Beispiel String mit Auswahlliste als Wertebereich zur Laufzeit -->
<Value>Angestellter</Value><!-- aktueller Wert -->
<Default>Angestellter</Default> <!-- Defaultwert -->
<!-- Auswahlliste moeglicher Berufe -->
<Values>Angestellter</Values>
<Values>Arzt</Values>
<Values>Apotheker</Values>
<Values>Fischer</Values>
<Values>Fleischer</Values>
<Values>Zimmermann</Values>
</Beruf>
</RisikoNatPerson>
</kv:VersichertePersonen>
<kv:Gruppe>Austria Tabak in Wien</kv:Gruppe>
</ac:Verkaufsprodukt>
</ac:ProductProposalResponse>

View File

@@ -33,7 +33,7 @@
">
<VUNr>23</VUNr>
<KorrelationsId>1000010011</KorrelationsId>
<ac:RequestUpselling>false</ac:RequestUpselling>
<!-- <ac:RequestUpselling>false</ac:RequestUpselling> nicht mehr verpflichtend -->
<ac:Produktmetadaten>false</ac:Produktmetadaten>
<kv:Berechnungsanfrage>

View File

@@ -1,6 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://boa.example.com/kranken" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cst="urn:omds3CommonServiceTypes-1-1-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://boa.example.com/kranken" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.11.0" xsi:schemaLocation="urn:omds3CommonServiceTypes-1-1-0 ../../omds3CommonServiceTypes.xsd">
<xsd:schema xmlns="http://boa.example.com/kranken"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:cst="urn:omds3CommonServiceTypes-1-1-0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ac="urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common"
targetNamespace="http://boa.example.com/kranken"
elementFormDefault="qualified" attributeFormDefault="qualified" version="1.11.0"
xsi:schemaLocation="
urn:omds3CommonServiceTypes-1-1-0 ../../omds3CommonServiceTypes.xsd
urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common ../../omds3_ON2_Antrag_Common.xsd
">
<xsd:import namespace="urn:omds3CommonServiceTypes-1-1-0" schemaLocation="../../omds3CommonServiceTypes.xsd"/>
<xsd:import namespace="urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.common" schemaLocation="../../omds3_ON2_Antrag_Common.xsd"/>
<!--
Beispiele für die Nutzung von TarifId_Type für die Kennzeichnung der Produktbausteine. Daneben können
auch andere Wege bestritten werden, z.B. Ableitung eigener Produktbausteine von den Standardbausteinen mittels
@@ -8,34 +19,25 @@
-->
<xsd:complexType name="TarifIdVerkaufsprodukt">
<xsd:annotation>
<xsd:documentation>Einfache Standardimplementierung für Ordnungsbegriffe als String</xsd:documentation>
<xsd:documentation>
Einfache Standardimplementierung für Ordnungsbegriffe als String ohne Enumeration dahinter.
Auf diese Weise kann die TarifId zur Laufzeit auf Gültigkeit geprüft werden, es gibt aber keine .
Prüfung zur Design-Zeit der Schnittstelle.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="cst:TarifId_Type" >
<xsd:attribute name="text" type="ListeVerkaufprodukte"/>
<xsd:attribute name="text" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="ListeVerkaufprodukte">
<xsd:annotation>
<xsd:documentation>Liste der Verkaufsprodukte</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="001">
<xsd:annotation>
<xsd:documentation>Global und Sicher 2023</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="002">
<xsd:annotation>
<xsd:documentation>Global und Sicher 2024</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="TarifIdVersichertePerson">
<xsd:annotation>
<xsd:documentation>Einfache Standardimplementierung für Ordnungsbegriffe als String</xsd:documentation>
<xsd:documentation>
Einfache Standardimplementierung für Ordnungsbegriffe als String mit Enumeration.
Die Liste der Werte liegt zur Design-Zeit fest und kann nicht zur Laufzeit geändert werden.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="cst:TarifId_Type">
@@ -97,4 +99,85 @@
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<!-- fuer ProductProposal -->
<xsd:complexType name="KrankenProposalContext_Type" >
<xsd:annotation>
<xsd:documentation>Ableitung des Kontext für ProductProposal Krankenversicherung</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ac:ProposalContext_Type">
<xsd:sequence>
<xsd:element name="Geburtsdatum" type="xsd:date" />
<xsd:element name="Beruf" type="Beruf_Type" />
<xsd:element name="Sozialversicherung" type="Sozialversicherung_Type"/>
<xsd:element name="Bundesland" type="Bundesland_Type" />
<xsd:element name="TarifArt" type="KvTarifArt_Type" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="Sozialversicherung_Type">
<xsd:annotation>
<xsd:documentation>Liste der Baustein auf Ebene Elementarprodukt</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ÖGK">
<xsd:annotation>
<xsd:documentation>Österreichische Gesundheitskasse (ÖGK)</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="BVAEB">
<xsd:annotation>
<xsd:documentation>Versicherungsanstalt öffentlicher Bediensteter, Eisenbahn und Bergbau (BVAEB)</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="SVS">
<xsd:annotation>
<xsd:documentation>Sozialversicherung der Selbständigen (SVS)</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Bundesland_Type">
<xsd:annotation>
<xsd:documentation>Liste Bundeslaender</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Burgenland"/>
<xsd:enumeration value="Kärnten"/>
<xsd:enumeration value="Wien"/>
<xsd:enumeration value="Salzburg"/>
<xsd:enumeration value="Oberösterreich"/>
<xsd:enumeration value="Niederösterreich"/>
<xsd:enumeration value="Tirol"/>
<xsd:enumeration value="Vorarlberg"/>
<xsd:enumeration value="Steiermark"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Beispiel für eine zur Design-Zeit festgelegte Berufeliste (nur durch Release der Schnittstelle änderbar) -->
<xsd:simpleType name="Beruf_Type">
<xsd:annotation>
<xsd:documentation>Liste Berufe</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Angestellter"/>
<xsd:enumeration value="Arzt"/>
<xsd:enumeration value="Apotheker"/>
<xsd:enumeration value="Bestatter"/>
<xsd:enumeration value="Fischer"/>
<xsd:enumeration value="Fleischer"/>
<xsd:enumeration value="Zimmermann"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="KvTarifArt_Type">
<xsd:annotation>
<xsd:documentation>Liste Tarifarten</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Sonderklasse"/>
<xsd:enumeration value="Privatarzt"/>
<xsd:enumeration value="Novum"/>
<xsd:enumeration value="MyAssist"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>

View File

@@ -256,9 +256,9 @@
<xsd:complexContent>
<xsd:extension base="cst:CommonResponse_Type">
<xsd:sequence>
<xsd:element name="Verkaufsprodukt" type="cst:Verkaufsprodukt_Type">
<xsd:element name="Verkaufsprodukt" type="cst:Verkaufsprodukt_Type" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Vorschlag Verkaufsprodukt</xsd:documentation>
<xsd:documentation>Vorschlaege Verkaufsprodukt, müssen mit Calculate berechenbar sein, dürfen Prämien enthalten.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
@@ -808,4 +808,4 @@
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</xsd:schema>