Verifiera med statustjänst
VP exponerar en statustjänst vars port är konfigurerad i application-custom.properties.
Anropa den med t.ex. Curl:
curl --data "username=uname&password=pw" http://<serveradress>:8080/status
Exempel på svar:
{ "Name": "vp-services-camel", "Version": "4.0.0", "BuildTime": "2019-09-11T09:15:30.887Z", "ServiceStatus": "Started", "Uptime": "20 minutes", "ManagementName": "vp-services", "JavaVersion": "1.8.0_161", "CamelVersion": "2.24.0", "TakCacheInitialized": "true", "TakCacheResetInfo": "Date:2019-09-12T15:41 Status:REFRESH_OK vagval:566 behorigheter:1034", "HsaCacheInitialized": "true", "HsaCacheResetInfo": "Date:2019-09-12T15:41 Status:true oldNum:0 newNum:31465", "JvmTotalMemory": "885 mB", "JvmFreeMemory": "817 mB", "JvmUsedMemory": "67 mB", "JvmMaxMemory": "1365 mB", "Endpoints": [ "https://0.0.0.0:20000/vp", "http://0.0.0.0:8080/vp", "http://0.0.0.0:8080/status", "http://0.0.0.0:24000/resethsacache", "http://0.0.0.0:23000/resetcache" ] }
SoapUI anrop genom plattformen
Installera först SoapUI: https://www.soapui.org/downloads/latest-release/
Ladda ner ett SoapUI-projekt för något av de tjänstekontrakt som du vill använda. De finns med i releasepaketet och kan laddas ner här: https://rivta.se/interaction_index.html
Det går också att skapa ett SoapUI-projekt utifrån en wsdl-fil, se https://www.soapui.org/docs/soap-and-wsdl/För att kunna anropa webtjänsten så måste man använda ett SITHS certifikat. Finns inget kan det beställas från Ineras Identifieringstjänst.
I SoapUI väljer du sedan File > Preferences och sedan fliken SSL Settings. Som KeyStore väljer du det SITHS certifikat du har beställt och anger lösenordet som du fått i samband med beställningen.
Notera att det är certifikatet för autentisering som skall användas, inte signering.Se till att adress till applikationen är korrekt, annars editera. I exemplet ovan är det
https://<serveradress>:20000/vp
som skall användas.Exekvera anrop genom att först dubbelklicka på önskat test och sedan klicka på den gröna pilen.
Ett resultat kommer nu att dyka upp i fönstret till höger i SoapUI (th på bilden nedan). Se exempel-svar nedan och dess betydelse.
1: OK, ett exempel på svar vid ett lyckat anrop. I detta fall hade patienten inga engagemang (se bilden ovan hur det ser ut i SoapUI).
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:riv:interoperability:headers:1" xmlns:urn1="urn:riv:itintegration:registry:1"> <soapenv:Header> <ProcessingStatus xmlns="urn:riv:interoperability:headers:1"/> </soapenv:Header> <soapenv:Body> <ns3:GetLaboratoryOrderOutcomeResponse xmlns:ns3="urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponder:3" xmlns="urn:riv:clinicalprocess:healthcond:actoutcome:3" xmlns:ns2="urn:riv:clinicalprocess:healthcond:actoutcome:3.1" xmlns:ns4="urn:riv:interoperability:headers:1"> <ns3:result> <resultCode>INFO</resultCode> <logId>NA</logId> </ns3:result> </ns3:GetLaboratoryOrderOutcomeResponse> </soapenv:Body> </soapenv:Envelope> |
2: Felkod VP004, ingen logisk adress (verksamhet/system) upplagd som matchar angiven logisk adress i anropet. Orsak, en logisk adress (Test) saknas i Tjänstekatalogen. Åtgärd, registrera logisk adress i Tjänstekatalogen.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>VP004 No Logical Adress found for serviceNamespace:urn:riv:itinfra:tp:Ping:1:rivtabp20, receiverId:Test (se.skl.tp.vp.exceptions.VpSemanticException). Message payload is of type: ReversibleXMLStreamReader</faultstring> </soap:Fault> </soap:Body> </soap:Envelope> |
3: Felkod VP007, ingen behörighet finns för konsumenten (HSA ID från certifikatet) att anropa angiven logisk adress (verksamhet/system). Orsak, behörighet saknas i Tjänstekatalogen. Åtgärd, registrera behörighet för konsumenten i Tjänstekatalogen.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>VP007 Authorization missing for serviceNamespace: urn:riv:itinfra:tp:Ping:1:rivtabp20, receiverId: Test, senderId: HSAID-XYZ (se.skl.tp.vp.exceptions.VpSemanticException). Message payload is of type: ReversibleXMLStreamReader</faultstring> </soap:Fault> </soap:Body> </soap:Envelope> |
Nedan är ett exempel på hur loggen registrerar en request, liknande den ovan. Loggen hittas i /var/log/camel
eller där ni konfigurerat att loggarna ska sparas.
** logEvent-debug.start *********************************************************** LogMessage=req-in ServiceImpl=vp-http-route Host=server-namn (xx.xx.xx.xx ip-address) ComponentId=vp-services Endpoint=http://0.0.0.0:8080/vp/clinicalprocess/healthcond/actoutcome/GetLaboratoryOrderOutcomeResponse/3/rivtabp21 MessageId=aMessageId BusinessCorrelationId=b7929d30-d104-4679-be50-e8f3ce49af39 ExtraInfo= -servicecontract_namespace=urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2 -Headers={SOAPAction="urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2:GetLaboratoryOrderOutcomeResponse", x-rivta-original-serviceconsumer-hsaid=aTestHsaId, x-skltp-correlation-id=aTestCorrelationId, x-vp-instance-id=testVpInstanceId, x-vp-sender-id=aTestSenderId} -routerVagvalTrace=5339574230 -time.elapsed=1 -originalServiceconsumerHsaid=testHsaId -source=se.skl.tp.vp.logging.MessageInfoLogger -routerBehorighetTrace=8877665544 -senderIpAdress=xx.xx.xx.xx -senderid=testSenderId -receiverid=testReceiverId -endpoint_url=http://testServer:port/GetLaboratoryOrderOutcomeResponse/service/v2 -wsdl_namespace=urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2:rivtabp21 -rivversion=rivtabp21 Payload=<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:riv:itintegration:registry:1" xmlns:urn1="urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2" xmlns:urn2="urn:riv:clinicalprocess:healthcond:actoutcome:2"> <soapenv:Header> <urn:LogicalAddress>testLogicalAddress</urn:LogicalAddress> </soapenv:Header> <soapenv:Body> <urn1:GetLaboratoryOrderOutcomeResponse> <urn1:patientId> <urn2:id>testPatientId</urn2:id> <urn2:type>1.2.752.744.2.1.3.1</urn2:type> </urn1:patientId> </urn1:GetLaboratoryOrderOutcomeResponse> </soapenv:Body> </soapenv:Envelope> ** logEvent-debug.end ************************************************************* |