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.
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 ************************************************************* |