Gå till slutet av bannern
Gå till början av bannern

SKLTP VP - Installation

Hoppa till slutet på meta-data
Gå till början av metadata

Du visar en gammal version av den här sidan. Visa nuvarande version.

Jämför med nuvarande Visa sidhistorik

« Föregående Version 37 Nästa »


VP Camel fungerar som en distributör av meddelanden från en konsument av information till en eller flera producenter av information, samt levererar svar från dessa. För att detta ska fungera ska VP installeras, samt ha tillgång till vägvals-data (adresseringar) samt behörigheter via en installerad TAK-databas. För underhåll finns en applikation StatusProbe som kontrollerar att VP fungerar som den ska. Denna är inte nödvändig för normal funktion, men rekommenderas.

Äldre versioner

SKLTP VP - Installation av äldre versioner

Förutsättningar

Följande förutsätts vara installerat innan VP installeras:

  1. SKLTP TAK 2.4.0 eller senare installerad, se installationsanvisning (redigera länk). Konfiguration enligt installationsanvisning förutsätts också.

  2. Certifikat installerat, se installationsmanual (redigera länk). Om de inte finns kan de beställas från Ineras Identifieringstjänst.

Från och med VP Camel så kommer nedanstående kontrakt att distribueras via en ny applikation, KAT.
Om dessa ska användas så behöver man installera KAT. Kontrakten som berörs är

  1. GetSupportedServiceContracts/v1

  2. GetSupportedServiceContracts/v2

  3. GetLogicalAddresseesByServiceContract/v2

För att installera och konfigurera KAT, se anvisningar under KAT

Det finns även en applikation StatusProbe som kan användas för att kontrollera status för VP Camel (och andra applikationer). Hur man installerar och använder den kan läsas på sidan Status-probe.

Ny installation av VP

1. Ladda ner applikationen

Hämta senaste version, t.ex. denna från IneraNexus (ersätt 1.0.0-RC1 med senaste version) :
https://nexus.inera.se/#browse/browse:maven-public:se%2Fskltp%2Fvp%2Fvp-services-camel%2F1.0.0-RC1%2Fvp-services-camel-1.0.0-RC1.jar

Källkod och Javadoc finns på samma ställle.

Pomfil för projektet finns intill, på adress:
https://nexus.inera.se/#browse/browse:maven-public:se%2Fskltp%2Fvp%2Fvp-parent-camel%2F1.0.0-RC1%2Fvp-parent-camel-1.0.0-RC1.pom

2. Konfigurera VP applikation

Notera att om det finns en redan installerad version av VP så är detta steget redan genomfört och endast ev förändringar kring nya eller borttagna properties behövs hanteras. Se release notes för VP på Release Note - Virtualiseringsplatformen för att hämta information om eventuella förändringar mellan releaser.


VP har konfigurationsfiler för att konfigurera olika parametrar som styr applikationens funktioner. Hur dessa parametrar konfigureras och deras betydelse beskrivs i detalj på VP Camel Konfigurering
Om man vill överlagra dessa inställningar (ändra) så ska nya filer skapas, enligt instruktion på samma sida.
När detta är klart så:

  1. Säkerställ att application-custom.properties och application-security-custom.properties finns under <vp-camel-intall-dir>/conf/ (annars behöver de skapas/kopieras) för att kunna överlagra default parametrar.

  2. Med ledning av konfigurations-anvisningarna, sätt de parametrar som eventuellt behöver ändras.

  3. För att “Trädklättring” ska fungera (se förklaring här: UppdateraHSACache - Bakgrund, arkitektur och implementation) så ska en fil med hsa information finnas i den mapp som pekas ut i application-custom.properties. Observera att denna funktionalitet kommer att försvinna i framtida versioner av VP Camel.

    1. Ladda ner en HSA fil med endast SE nod som kompletterar den riktiga HSA filen. Placera till exempel i config-katalogen.

      wget http://skl-tp.atlassian.net/wiki/download/attachments/5308496/hsacachecomplementary.xml
      mv hsacachecomplementary.xml /usr/local/<vp-camel-intall-dir>/conf/hsacachecomplementary.xml


    2. Uppdatera värdet i parametern hsa.files i application-custom.properties, så att den pekar på katalogen där du lagt filen hsacachecomplementary.xml för att läsa in SE noden

      vi /usr/local/<vp-camel-intall-dir>/conf/vp-config-override.properties
       
      hsa.files=/usr/local/<vp-camel-intall-dir>/conf/hsacachecomplementary.xml

    3. Finns det behov av att hämta en fil från HSA med ett komplett organisationsträd, läs följande instruktion.

  4. Säkerställ att korrekta certifikatsfiler finns. Dessa ligger default i <vp-camel-install-dir>/certs men kan också ligga i en egen-konfigurerad mapp som pekas ut i application-security-custom.properties. Se också till att (om en egen konfiguration gjorts) application-security-custom.properties listar rätt namn på certifikatsfilerna samt deras password.

    1. Saknas mappen <vp-camel-intall-dir>/certs/, skapa den och lägg era certifikatsfiler i katalogen.

      mkdir /usr/local/<vp-camel-intall-dir>/certs/
       
      cp my-cert.p12 <vp-camel-intall-dir>/certs/
      cp my-trustsore.jks <vp-camel-intall-dir>/certs/
      cp my-client.jks <vp-camel-intall-dir>/certs/


    2. Se SKLTP VP - Konfiguration, hur konfiguration i application-security-custom.properties skall göras för att peka ut certifikatsfiler.

    3. Vid behov , se Installationsmanual Certifikat för hur en truststore hanteras.

3. Starta, stoppa och kontrollera status på VP Camel

# Som ine-app
[ine-app@server]$ service vp start|stop|restart|status

# Som användare med sudo rättighet
[someuser@server]$ sudo service vp start|stop|restart|status

4. Verifiera installationen av VP Camel

Notera att virtuella tjänster, teststubbar och schemas läggs på efter en deploy, se SKLTP VP - Installation av virtuella tjänster

  1. Med integrerad statustjänst:
    VP Camel exponerar en statustjänst vars port kan konfigureras i application-custom.properties.
    Man kan anropa den med t.ex. Curl:

    curl --data "username=uname&password=pw" http://<serveradress>:8080/status

    och få ett svar:

    {
      "Name": "vp-services-camel",
      "Version": "1.0.0-RC1",
      "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"
      ]
    }


  2. Med SoapUI:
    a. Installera först SoapUI ( https://www.soapui.org/downloads/soapui/source-forge.html )
    b. Skapa ett SoapUI-projekt som kör request’s mot VP Camel. Tutorials finns på denna adress:
    https://www.soapui.org/learn/tutorials/web-service-example-projects.html
    c. För att kunna köra webtjänsten så måste man installera 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.
    e. Se till att adress till applikationen är korrekt, annars editera.
    f. Exekvera anrop genom att först dubbelklicka på önskat test och sedan klicka på den gröna pilen.
    g. 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 *************************************************************


  • Inga etiketter