e-saatelehtede saatmine mediposti...6 medipost liidestusjuhend 3. andmevahetusfailide struktuur...
TRANSCRIPT
-
E-arvete saatmine Mediposti Liidestusjuhend
AS Medisoft
Tartu 2017
-
2
Medipost Liidestusjuhend
Sisukord 1. ARHITEKTUUR ............................................................................................................................................................... 3
2. FUNKTSIONAALSUS ...................................................................................................................................................... 3
2.1. AUTENTIMINE ................................................................................................................................................................ 3 2.2. SUHTLUS MEDIPOSTI SERVERIGA .................................................................................................................................. 3
2.2.1. HTTPS päringu esitamine ..................................................................................................................................... 4 2.2.1.1. Privaatsed sõnumid ............................................................................................................................................................ 4
2.2.2. HTTPS vastus ........................................................................................................................................................ 4 2.2.2.1. XML 1 ............................................................................................................................................................................... 5
3. ANDMEVAHETUSFAILIDE STRUKTUUR ................................................................................................................. 6
3.1. PRIVAATSÕNUM ............................................................................................................................................................. 6 3.1.1. SendPrivateMessage ............................................................................................................................................. 6
3.1.1.1. E-arve sõnumile esitatavad nõuded .................................................................................................................................... 6
4. NÄIDISSÕNUMID ............................................................................................................................................................ 7
4.1. PRIVAATSÕNUMI PLOKK ................................................................................................................................................ 7
Muudatuste ajalugu
Versioon Koostaja /
muutja
Muutmise
kuupäev
Muudatus
1.0 Maria Virsa 06.11.2017 Algversioon
1.1 Ott Eenlo 08.05.2018 P4 Lisatud privaatsõnumi näide
-
3
Medipost Liidestusjuhend
1. Arhitektuur E-arved edastatakse ostja raviasutusele Medipost keskserveri vahendusel. Müüja saadab e-arved Mediposti
keskserverisse. Ostja raviasutus laeb sealt alla temale määratud e-arved. Peale e-arve õnnestunud salvestamist
ostja raviasutuse infosüsteemi kustutab ostja raviasutus e-arve Medipost serverist.
Infovahetuseks kasutatakse HTTPS protokolli.
Joonis 1 Hankija ja apteegi infosüsteemi andmevahetus läbi Mediposti serveri.
Medipostiga andmeid vahetav klientprogramm võib olla suvalisel platvormil realiseeritud. Mediposti server ja
selle klientprogramm tegelevad ainult sõnumite vahendamisega.
2. Funktsionaalsus
2.1. Autentimine Kasutame HTTPS päringutes parameetritena kasutajanime ja parooli, vastavalt siis parameetrid User ja
Password. Parooli esmakordsel andmisel kasutajale või muutmisel salvestatakse parooli räsi kasutajanimega
seotult. Parooli kontrollimisel arvutatakse räsi ja võrreldakse salvestatud räsiga.
Autentimiseks ei jagata igale isikust kasutajale oma kasutajanime ja parooli vaid igale Medipostiga ühinenud
kliendile (asutusele või selle osadele) antakse välja oma kasutajanimi ja parool. Üks asutus võib vajada mitut
kasutajanime, kui ta soovib, et asutuse partnerid suhtleksid asutuse osadega eraldi.
2.2. Suhtlus Mediposti serveriga Mediposti serveriga suhtlemiseks kasutatakse Mediposti dokumentatsioonis HTTPS päringuid. Klientprogramm
peab töötlema ka võimalikud HTTPS vead.
-
4
Medipost Liidestusjuhend
2.2.1. HTTPS päringu esitamine Parameeter „Action” kirjeldab tegevust, ülejäänud parameetrid tuleb seada vastavalt tegevusele. Parameetrid
„User” ja „Password” tähistavad Mediposti serveri kasutajanime ja parooli. Kui päring sisaldab sõnumifaili,
tuleb faili saatmiseks kasutada rfc1867 kirjeldatud HTTPS POST multipart/form-data meetodit.
2.2.1.1. Privaatsed sõnumid
Privaatsed sõnumid on ühelt Mediposti kliendilt teisele saadetavad sõnumid. Kõik privaatsete sõnumitega
teostatavateks toiminguteks tuleb klient autentida ja kontrollida, kas kaasa antud parameetritega toiming on
lubatud. E-arve edastatakse Medipost keskserverisse privaatse sõnumiga.
2.2.1.1.1. Privaatsete sõnumite saatmine
HTTPS POST/multipart-form-data päring.
Tabel 1 Parameetrid privaatsõnumi üleslaadimiseks.
Parameetri nimi Parameetri väärtus Parameetri kohustuslikkus
Väärtus
Action SendPrivateMessage Jah
User Sõnumi saatja kasutajanimi
Jah
Password Saatja parool Jah
Receiver Sõnumi saaja Jah
MessageType Sõnumi tüüp Jah Esaateleht
Message XML sõnumi sisu Jah
Operatsiooni õnnestumisest või ebaõnnestumisest teavitatakse klienti XML-faili kujul vastusega.
sd Sõnumiv ahetus hankija ja Mediposti v ahel
Hankija
klientprogramm
Medipost
Privaatsõnum HTTPS POST:Action="SendPrivateMessage" MessageType=Earve()
Saatmine õnnestus - HTTPS vastus "ANSWER":='0'()
Saatmine ebaõnnetus - HTTPS vastus "ANSWER":=veakood()
Joonis 2 Privaatsõnumi saatmine Mediposti.
2.2.2. HTTPS vastus E-arve sõnumi vastuvõtmisele vastab Mediposti server vastussõnumiga vastuvõtmise õnnestumise või
ebaõnnestumise kohta. Vastussõnum on kirjeldatud punktis 2.2.2.1 XML 1. Tabelis 2 on kirjeldatud võimalikud
vastussõnumi veakoodid ja veatekstid. Mediposti poolt sõnumi edukal vastuvõtmisel vastatakse koodiga 0 ja
tekstiga OK.
http://www.ietf.org/rfc/rfc1867.txt
-
5
Medipost Liidestusjuhend
2.2.2.1. XML 1
0
OK
Tabel 2 Mediposti serveri vastuses XML esinevate vigade koodid
Kood Tekst
0 OK
1 Vale kasutajanimi või parool
2 Parameeter [parameetri nimi] on kohustuslik. Parameeter [parameetri nimi] puudub
3 Pole funktsiooni [funktsiooni nimi]
4 Parameeter [parameetri nimi] on kohustuslik. Parameetri väärtus puudub
5 [üldine viga]
6 Tundmatu parameeter nimega [parameetri nimetus]
7 Tundmatu [parameetri nimetus] parameetri väärtus
8 Lubamatu [parameetri nimetus] parameetri väärtus
11 [parameetri nimi] on liiga pikk
12 [parameetri nimi] peab olema täisarv
13 [parameetri nimi] kuupäeva formaat on vale
20 Baasi ühendus ebaõnnestus
21 Baasi transaktsiooni alustamine ebaõnnestus
22 Baasi päringu käivitamine ebaõnnestus
23 Baasi transaktsiooni lõpetamine ebaõnnestus
24 Pole sõnumit ID-ga [MessageID]
25 XML sõnumi import ebaõnnestus
26 Sõnumifaili lugemine ebaõnnestus
27 Sõnumifaili baasist kustutamine ebaõnnestus
28 Pole sõnumeid
29 Sõnumifaili baasi kirjutamine ebaõnnestus
30 Ei saa sõnumit [lugeda, muuta, kustutada], vale omanik
31 Pole sõnumit ID-ga [MessageID]
32 Ei saa sõnumit [lugeda, kustutada], pole avalik sõnum
33 Ei saa sõnumit [lugeda, kustutada], pole privaatsõnum
-
6
Medipost Liidestusjuhend
3. Andmevahetusfailide struktuur Privaatsõnumi koosseisu kuuluva e-arve XML formaadi kirjeldus on toodud dokumendis:
„e-Arve_formaat_apteegi_kaupadele.doc“
3.1. Privaatsõnum
3.1.1. SendPrivateMessage See meetod võimaldab edastada e-arve andmed Mediposti.
3.1.1.1. E-arve sõnumile esitatavad nõuded
Sõnumites ja failides kasutatavaks kodeeringuks on UTF-8, ilma BOM-ita (byte-mark-order). Muud
kodeeringud ei ole lubatud!
XML sektsiooni CDATA kasutamine ei ole lubatud!
-
4. Näidissõnumid
4.1. Privaatsõnumi plokk
POST https://localhost:9090/Medipost/MedipostServlet HTTP/1.1
Accept-Encoding: gzip,deflate
User-Agent: SoapUI 5.0.0
Content-Type: multipart/form-data; boundary="----=_Part_0_24494423.1525767779440"
MIME-Version: 1.0
------=_Part_0_24494423.1525767779440
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: form-data; name="Action"
SendPrivateMessage
------=_Part_0_24494423.1525767779440
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: form-data; name="User"
kasutajanimi
------=_Part_0_24494423.1525767779440
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: form-data; name="Password"
kasutajaparool
------=_Part_0_24494423.1525767779440
-
8
Medipost Liidestusjuhend
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: form-data; name="Receiver"
saajaasutuse mediposti kasutajanimi
------=_Part_0_24494423.1525767779440
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: form-data; name="MessageType"
Esaateleht
------=_Part_0_24494423.1525767779440
Content-Type: text/xml; charset=UTF-8; name=TLH_test_earve.xml
Content-Transfer-Encoding: binary
Content-Disposition: form-data; name="message"; filename="TLH_test_earve.xml"
------=_Part_0_24494423.1525767779440—
Saadetav sõnumi (e-arve XML) kirjeldus on toodud dokumendis:
e-Arve_formaat_apteegi_kaupadele.doc
HTTPS vastus
0
OK