RIV Tekniska Anvisningar Översikt

Relevanta dokument
SHS Version 2.0 SOAP-based Protocol Översikt

RIV Tekniska Anvisningar Översikt Utgåva E

RIV Tekniska Anvisningar Översikt

RIV TA Basic Profile 2.1 med intygspropagering RIV Tekniska Anvisningar

RIV Tekniska Anvisningar Översikt Utgåva PD

Tjänsteplattform. Tekniska krav. ARK_0034 Version 1.0.1

RIV TA Basic Profile 2.1 RIV Tekniska Anvisningar

RIV TA Domänschema 2.1

RIV TA Basic Profile 2.1

Lä s mer om SLL:s Regionälä Tjä nsteplättform (RTP)

RIV Tekniska Anvisningar 2.1

RIV TA Domänschema 2.1

Läs mer om SLL:s Regionala Tjänsteplattform (RTP)

RIV Tekniska Anvisningar Release notes

Policy för öppen källkod RIV Tekniska Anvisningar

RIVTA Basic Profile 2.1

Tjänsteplattform. Tekniska krav. ARK_0034 Version 1.3

RIV Tekniska Anvisningar Basic Profile Valfria tillägg

Serverat och kommunal arkitektur

Basic Profile. SHS Version 2.0 SOAP-based Protocol. Utgåva PA SHS Version 2.0 SOAPbased Protocol Basic Profile 1 (10)

Beslutsunderlag. Rekommendation för beslut om lösning för hantering av invånarens tidbokning gällande mottagningar som använder flera tidböcker

LAT Lathund anslutning och test

Underlag för godkännande av tjänsteproducent

Sammanfattning och specifikationer för POT

Vägledning för innovativ applikations- och tjänsteutveckling

Villkor för anslutning till Nationella tjänsteplattformen

Tjänstespecifik teststrategi. För anslutning till tjänsteplattform för vård- och omsorgsutbud

Långsiktig teknisk målbild Socialtjänsten

Version: 2.0 NBS / / AS

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 1.0

Avtal om Kundens användning av

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

Formulärflöden (utkast)

Vad gör en åsna i vården? Mats Ekhammar

Version: 2.0 NBS / / AS

Introduktion till VITS-bokens tekniska arkitektur

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 3.0

Tjänsteplattformen nationell integration

RIV Tekniska Anvisningar Tjänsteschema

Teknisk guide för brevlådeoperatörer. Annika Melin Version: 1.1

Tjänsteavtal för ehälsotjänst

<Skriv in datum> <Skriv in ditt namn> <Skriv in ort>

RIV TA Tjänsteschema 2.1 RIV Tekniska Anvisningar

RIV Tekniska Anvisningar Tjänsteschema

Beställningsstöd för anslutning till NTJP

Konfigurationsstyrning tjänstedomäner ARK_0007. Version

Arkitekturella beslut Infektionsverktyget. Beslut som påverkar arkitekturens utformning

Avtal 1 om Agentens. användning av Ineras Tjänster

Mobilt Efos och ny metod för stark autentisering

Nationell Informationsstruktur 2015:1. Bilaga 7: Arkitektur och metodbeskrivning

Bilaga 2 Sammanställning av rekommendationer (ur Svenskt ramverk för digital samverkan)

Tjänstespecifik Teststrategi Utomlänsfakturering

Arkitektur för ansökan/anmälan (utkast)

RIV TA Konfigurationsstyrning 1.0 RIV Tekniska Anvisningar

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Avtal om Kundens användning av Journal via nätet Bilaga 1 - Specifikation av tjänsten Journal via nätet (Enskilds direktåtkomst)

Tjänsteavtal för ehälsotjänst

Referensarkitektur: T-boken, RIV-TA och tjänstekontrakt Referensimplementationen av T-boken: SKLTP

Nationell Tjänsteplattform och säkerhetsarkitektur. Per Brantberg, område arkitektur/infrastruktur

Anvisning Tjänsteplattformen Driftsättning av Virtualiseringsplattformen

Avisering av förändringar i tjänstekontrakt för Mina Meddelanden

Leverans-API för nedladdning av geodata v1.0 - teknisk beskrivning

Avtal om Kundens mottagande av intyg från Mina intyg Bilaga 1 - Specifikation av tjänsten mottagande av intyg från Mina Intyg

Webbtjänster med API er

Innehåll. Nationell IT-strategi och målbild Nationell infrastruktur Nationell Patient Översikt - NPÖ

Bilaga 6 - Analys av GetMedicationHistory. Stöd till säker läkemedelsprocess

Federerad åtkomst Information om åtkomst till Apotekens Services tjänster inom ramen för en identitetsfederation.

Teknisk guide för myndigheter

Anvisningar vid utformning av adaptrar till NPÖ.

Beställning D Etablera samverkan

Webbtjänster med API er

Apotekens Service. federationsmodell

Arkitektur och metodbeskrivning. Nationell informationsstruktur

Tjänstekontraktsbeskrivning - Terminologitjänsten

Avtal om Kundens användning av Svevac Bilaga 1 - Specifikation av tjänsten Svevac

Nationell informationsstruktur 2016:1. Bilaga 7: Arkitektur och metodbeskrivning

Anslutningsvägledning. Nationell patientöversikt 2.0

Hantera informationspaket i system för bevarande

Handledning Konfigurationsstyrning tjänstedomäner

Användarhandbok Test. NKRR Utgåva 0.4 Sida: 1 (19) NKRR

Instruktion för att kunna använda Säkerhetstjänsternas administrationsgränssnitt

Instruktion för integration mot CAS

AL T granskning NeR Version 1.0

Utkast/Version (8) Användarhandledning - inrapportering maskin-till-maskin

Elektronisk remiss. Beskrivning och tjänstespecifika villkor

RAPPORT GEODATARÅDETS HANDLINGSPLAN Del av fokusområde 3 gällande standardisering av grunddata i geodatarådets

Teknisk guide för brevlådeoperatörer

ICC Västra Götalandsregionen Tillämpningsriktlinjer integration

HSA Tjänsteanslutningsprocess. Kriterier och anslutningsinstruktioner för tjänster som vill nyttja informationen i HSA

MVK SSO 2.0 Mina vårdkontakter

Beställning av samverkan över flera tjänsteplattformar

Anvisning för Svensk Livfaktura

Avtal om Kundens användning av tjänsten Video- och distansmöte

Strukturerad omvärldsbevakning. Version

JHS 179 Planering och utveckling av en övergripande arkitektur Bilaga 9. Virtualisering och molntjänster i planering av teknologiarkitektur

Handledning. Konfigurationsstyrning tjänstedomäner. Version ARK_

Handledning. Konfigurationsstyrning tjänstedomäner. Version ARK_

Transkript:

RIV Tekniska Anvisningar Översikt Version 2.0.2 ARK_0001

Innehåll 1 Inledning... 6 1.1 Målgrupp... 6 1.2 Syfte... 6 1.3 Avgränsningar... 6 1.4 Tillgänglighet... 6 1.5 Referenser... 6 2 Anvisningarna i sitt sammanhang... 8 3 Styrande principer... 9 4 Tillämpade strategier... 10 5 Terminologi... 12 5.1 Termer och symboler för utbyte av meddelande... 12 5.1.1 Meddelande... 12 5.1.2 Avsändare... 13 5.1.3 Mottagare... 13 5.2 Termer och symboler för tjänsteinteraktioner... 13 5.2.1 InUt-operation... 13 5.2.2 In-operation... 13 5.2.3 Tjänsteinteraktion... 14 5.2.4 Övriga termer... 15 5.3 Terminologi för säkerhet... 21 5.3.1 HCC Funktion för autentisering och kryptering... 22 6 Anvisningarnas uppdelning... 22 7 Relation till T-bokens referensarkitektur... 22 7.1.1 Tjänsteinteraktionstyp Fråga-svar... 23 7.1.2 Tjänsteinteraktionstyp Informationsspridning... 24 7.1.3 Tjänsteinteraktionstyp Uppdrag-resultat... 26 8 Övergripande krav på informationsutbyte... 28 8.1 Interoperabilitet... 28 8.1.1 Leverantörsspecifika avvikelser och konventioner... 28 2/45

8.2 Framåt/Bakåtkompatibilitet... 28 8.2.1 Definitioner... 29 8.2.2 Bakåt och framåtkompatibilitet... 30 8.2.3 Teknisk realisation av framåt och bakåtkompatibilitet... 31 8.2.4 Icke kompatibla ändringar... 32 8.2.5 Versionering och tjänsteinteraktionstyper... 33 8.2.6 Bakåt och framåtkompatibilitet för tjänsteinteraktionstypen Fråga-svar... 33 8.2.7 Införande av ny version av RIVTA... 35 8.3 Stöd för referensarkitekturens adresseringsmodell... 35 8.3.1 Verksamhetsbaserad adressering... 36 8.3.2 Adressering av källsystem... 38 8.3.3 Konsekvenser av adresseringsmetoderna... 39 8.3.4 Val av adresseringsmetod... 40 8.4 Adressering av multipla tjänsteplattformar... 41 8.5 Anropsbehörighet... 42 8.6 Namnstandards... 44 8.7 Publicering av övervaknings-tjänst... 44 9 Förvaltning... 45 3/45

Figurförteckning Figur 1 Anvisningarna i sitt sammanhang... 9 Figur 2 Avsändare och mottagare... 12 Figur 3 Strukturen i ett meddelande... 13 Figur 4 Tjänstekontrakt och virtuella tjänster... 19 Figur 5 Komponenter i en tjänsteplattform... 20 Figur 6 Regionala och gemensamma tjänstekomponenter i samverkan... 21 Figur 7 Anvisningarnas uppdelning... 22 Figur 8 Fråga-svar struktur... 23 Figur 9 Fråga-svar sekvensdiagram... 24 Figur 10 Informationsspridning struktur... 25 Figur 11 Informationsspridning sekvensdiagram... 26 Figur 12 Uppdrag-resultat struktur... 27 Figur 13 Uppdrag-resultat sekvensdiagram... 28 Figur 14 Verksamhetsbaserad adressering... 36 Figur 15 Adressering av aggregerande tjänst... 37 Figur 16 Adressering av källsystem... 38 Figur 17 Anropsbehörighet... 44 4/45

Utgåvehistorik Utgåva A Revision Datum Beskrivning Ändringarna gjorda av Definitiv revision fastställd av 2009-10-06 Revision A fastställd av magnus.larsson@callistaent Arkitekturledningens Arkitekturledningens tekniska erprise.se tekniska expertgrupp expertgrupp. johan.eltes@callistaenterpris e.se PB1 2011-04-27 Utkast för RIVTA 2.1. Omfattar följande ändringsbegäran från tracker på Osor: - 15114 marcus.krantz@callistaenter prise.se PB2 2011-10-18 Korrektur B 2011-10-19 Fastställd revision Arkitekturledningens tekniska expertgrupp PC1 2011-12-14 Uppdaterat dokumentet i och med byte av projektplats från Osor till Google code. hans.thunberg@callistaenter prise.se C 2012-01-03 Fastställd revision Arkitekturledningens tekniska expertgrupp D 2013-05-27 Uppdateringar Arkitekturledningens tekniska expertgrupp D1 D2 E 2013-11-08 Utvidgad och förändrad skrivning om adresseringsmodell (avsnitt 8.3) 2013-11-11 Uppdaterat enligt granskningskommentarer från CeHis 2014-04-03 Beskrivning av källsystemsbaserad adressering samt ändrad hantering av anropsbehörighet. Se även 1.1 Inledning till utgåva E johan@eltesconsulting.se johan@eltesconsulting.se lars.erik.rojeras@inera.se 2.0.1 2014-12-08 Flyttade till Inera-mall lars.erik.rojeras@inera.se 2.0.2 Tagit bort stycket Inledning Mattias Nordvall, Inera till utgåva E. 5/45

1 Inledning Detta dokument är en övergripande beskrivning för RIV Tekniska Anvisningar. Det beskriver principerna som styr utveckling av de tekniska anvisningar, vilka strategier som valts för att tillmötesgå principerna, samt övriga krav på innehållet i enskilda anvisningar. 1.1 Målgrupp Dokumentet riktar sig till förvaltare av RIV tekniska anvisningar, tekniska arkitekter och systemutvecklare som vill få en grundlig förståelse för motiven bakom RIV Tekniska anvisningar och därigenom vad som kan förväntas av de tekniska profiler som utarbetas. Detta dokument innehåller inga regelverk. Dessa finns i de enskilda anvisningarna. Det är ett uttalat syfte att anvisningar för enskilda profiler ska kunna tillämpas utan att översikten har lästs. 1.2 Syfte RIV Tekniska Anvisningar (RIV TA) syftar till att beskriva hur man realiserar utbytet av information mellan två parter med hjälp av web services. RIV TA bygger på ett antal befintliga standarder, specifikationer och rekommendationer från erkända standardiseringsorgan/motsvarande som exempelvis IETF (Internet Engineering Task Force), W3C (World Wide Web Consortium) och OASIS (Organization for the Advancement of Structured Information Standards). För att försäkra sig om att olika standarder fungerar tillsammans förlitar sig RIV TA på de profiler som getts ut av WS-I (Web Services Interoperability Organization). 1.3 Avgränsningar Översikten beskriver inte processen för utveckling och förvaltning av nationella tjänstekontrakt. Det beskrivs istället av anvisning för konfigurationsstyrning [R13]. 1.4 Tillgänglighet RIV Tekniska Anvisningar är publicerade under licensen Creative Commons CC-BY-SA (http://creativecommons.org/licenses/by-sa/2.5/se/). Det betyder att du fritt får kopiera, distribuera och skapa bearbetningar av anvisningarna, under förutsättning att upphovsmannen (Sveriges Kommuner och Landsting) anges (men inte på ett sätt som antyder att de godkänt eller rekommenderar din användning av verket). RIV Tekniska Anvisningar verifieras genom exempelapplikationer. Källkoden för dessa distribueras under öppenkällkodslicensen Apache License, Version 2.0 (http://www.apache.org/licenses/license-2.0) 1.5 Referenser 6/45

Ref Dokument Beskrivning och ev. webbadress Ansvarig [R1] RIVTA Sammanställning av det regelverk som är utgångspunkten för de nationella IT-lösningarna för vård och omsorg i Sverige. http://www.rivta.se [R2] T-Boken Styrande tekniska principer och teknisk referensarkitektur för den nationella arkitekturen: Webblänk till PDF för REV B: http://rivta.se/documents/ark_0019 Arkitektur och regelverk, Inera Arkitektur och regelverk, Inera [R3] Gemensam Beskriver den aktuella realisering av T-bokens referensarkitektur. Inera tjänsteplattform Webblänk till plattformens applikations hemsida: http://www.skltp.se Webblänk till plattformens förvaltning: http:///tjansteplattform [R4] WS-I Hemsida The OASIS Web Services Interoperability (WS-I) Member Section advances Best Practices for Web services standards across platforms, operating systems, and programming languages. Webblänk till organisationens hemsida: http://www.oasis-ws-i.org/ [R5] HCC spec. SITHS HCC: Certifikat för svensk vård och omsorg. Webblänk till PDF för REV 2.35: http:///siths OASIS WS-I Inera [R6] SOAP 1.1 spec Definierar ett XML-baserat protokoll för utbyte av information. Är grunden för den standardisering som går under benämningen web services. W3C Webblänk till specifikationens hemsida: http://www.w3.org/tr/2000/note-soap-20000508/ [R7] WSDL 1.1 spec Beskrivningsspråk för web-services. Syftar till att stödja utvecklingsverktyg i design-time och web-service-konsumenter i runtime. Webbänk till specifikationens hemsida: http://www.w3.org/tr/wsdl W3C [R8] [R9] [R10] RIV TA hemsida Projektplats för RIV Tekniska Anvisningar, dess referensapplikationer och tillämpningar (tjänstekontrakt). Arkitektur och regelverk, Inera 7/45

Ref Dokument Beskrivning och ev. webbadress Ansvarig http://www.rivta.se [R11] W3C-rapport om utökningsbara XML-scheman Beskriver problemställningar och strategier för design av meddelanden som ger bra stöd för versionshantering. Versioneringsstrategin som beskrivs i denna översikt och som tillämpas i RIV Teknisk Anvisning Tjänsteschema är baserad på strategi nr 2.5 i denna rapport. W3C Webblänk till rapportens hemsida: http://www.w3.org/2001/tag/doc/versioning-xml [R12] Unique Particle Attribution (XML Schema) hemsida Detta avsnitt i specifikationen för XML Schema Language 1.0 beskriver en regel som har inverkan på (komplicerar) den strategi för versionshantering som valts för RIV Tekniska Anvisningar 2.0. Referens R11 beskriver konsekvenserna. W3C Webblänk till avsnittet i specifikationen: http://www.w3.org/wiki/uniqueparticleattribution [R13] Anvisning Konfigurationsstyrning av Anvisning för utveckling, förvaltning och konfigurationsstyrning av tjänstekontrakt med fokus på praktiska aktiviteter inom projektplatsen http://rivta.se/documents/ark_0007 Arkitektur och regelverk, Inera tjänstekontrakt [R14] ARIVTA Basic AProfile Valfria Anvisning som beskriver regler för hantering av aggregerande tjänster samt hantering av information om ursprunglig tjänstekonsument. Arkitektur och regelverk, Inera n tillägg 2.1 http://rivta.se/documents/ark_0028 2 Anvisningarna i sitt sammanhang Följande figur visar RIV Tekniska Anvisningars plats i den nationella arkitekturen: 8/45

Figur 1 Anvisningarna i sitt sammanhang För information om relaterade regelverk och anvisningar, se referenslistan. 3 Styrande principer Det är viktigt att anvisningarna har goda förutsättningar att förvaltas. En av förutsättningarna är att principerna som styrt framtagningen finns redovisade. Det ger möjlighet att hålla en linje i anvisningarnas utveckling över tiden. Följande principer gäller vid utveckling och förvaltning av RIV Tekniska Anvisningar: 1. Terminologi Anvisningarna ska bygga på för vården etablerad terminologibas inom teknisk interoperabilitet. 2. Kvalitetssäkring Anvisningar ska vara tekniskt kvalitetssäkrade. 3. Enkelhet Anvisningarna ska vara enkla att använda för tänkt målgrupp. 4. Lättviktighet Anvisningarna ska hållas så lättviktiga som möjligt genom att bygga på / referera befintliga (externa) profileringsarbeten som bedöms vederhäftiga, kvalitativa, ändamålsenliga och under en förtroendefull förvaltningsprocess (t.ex. Web-Service-profiler från WS-I, Web Service Interoperability Organization) 5. Breda lösningar Anvisningarna ska bygga på tekniker med bred förankring och tillämpning i utvecklingsverktyg och bland användare i ett internationellt perspektiv 9/45

6. Målgruppsanpassning Anvisningarna ska målgruppsanpassas. Detta kan t.ex. ske med grund i WS-I:s profiler och det arbete som gjorts inom Danska OIO. Syfte är att en användare ska kunna kliva in på rätt nivå. Denna princip relaterar till Enkelhet. 7. Återanvändning Anvisningarna ska vara uppdelade med tanke på återanvändning. Det är t.ex. viktigt att kuverteringsstandards kan utvecklas parallellt med standards som relaterar till innehåll och att anvisningar för målgrupp med höga krav kan bygga på anvisningar för målgrupp med lägre krav. Anvisningarna ska hjälpa till att styra så att bindning mellan innehåll och kommunikationsteknik i run-time minimeras. Som ett exempel bör alla regler som avser tekniska aspekter på innehåll vara tillämpbara fristående från SOAP eller annan kuverteringsteknik. 8. Spårbarhet Anvisningarna ska redovisa syfte och krav för varje regel. Det ska finnas spårbarhet kring varje regel, så att en framtida revision kan utföras utan deltagande av författare till tidigare revision. 9. Öppenhet Anvisningarna ska förvaltas på ett sätt som prioriterar transparens, öppenhet, tillgänglighet och delaktighet av såväl förvaltningsorganisation, intressenter samt nationella och internationella remissinstanser. 10. Konsolidering Innehåll och förvaltningsprocesser ska utgå från att en gradvis konsolidering av tekniska anvisningar för interoperabilitet kommer att ske såväl nationellt som på EU-nivå. 4 Tillämpade strategier För att kunna utveckla anvisningar som följer de styrande principerna, har ett antal strategier utarbetats. Syftet med strategierna är att ge konkreta tillsvidare -riktlinjer som leder till resultat i linje med principerna. 1. Terminologi Anvisningarna baseras på terminologi från T-boken. 2. Kvalitetssäkring Varje version åtföljs av automatiserade testfall som verifierar att anvisningen kan följas. Testfallen beskriver tester för verifiering av specifikationen som sådan. De utgör därmed förvaltningens tolkning av hur specifikationen ska tillämpas. Automatiseringen av testfallen syftar till att verifiera specifikationens tekniska riktighet med avseende på konsistens samt krav rörande interoperabilitet, versionering och följsamhet mot t- bokens referensarkitektur. Dessa automatiserade tester är inte avsedda att verifiera tjänsters följsamhet mot anvisningen, utan att verifiera anvisningen som sådan. Detta är en förutsättning för ge specifikationen färdigstatus. Tester som syftar till att verifiera tjänsters följsamhet mot den färdiga anvisningen, faller under rubriken Enkelhet. 3. Enkelhet Varje version åtföljs av exempelkod för aktuella plattformar, samt ev. andra hjälpmedel för att underlätta användningen. Idéer finns om verktyg för generering av korrekt WSDL, samt om valideringsverktyg. 10/45

Utbildningsmaterial (kurs i RIV Tekniska Anvisningar). 4. Lättviktighet Anvisningarna byggs som tillägg till WS-I-profiler. De hålls kortfattade och fria från beskrivningar av allmänna sammanhang så som WS-I, SOA, tjänsteplattform, T-bok. 5. Breda lösningar Genom att basera anvisningarna på WS-I-profiler och profilering gjord hos andra länder minskas risker och vi kan då också återanvända annat arbete. För att tillmötesgå krav på kontrollerad vidareutveckling av tjänstekontrakt behöver en vedertagen strategi för bevarande av framåt- och bakåtkompatibilitet integreras i anvisningarna. Här används W3C:s arbete som utgångspunkt. Motiv och krav för stöd för denna form av versionshantering beskrivs utförligt i separat avsnitt i detta dokument. Exempel: Danska IT&Telestyrelsens riktlinjer för användande av Web Services: Standarder for webservices OWSA Model T - sikker direkte transport 6. Målgruppsanpassning Genom att dela upp profilerna efter WS-I:s uppdelning (Basic, Basic Security, Reliable Conversation etc) får vi en uppställning som är anpassad efter olika målgruppers behov av funktionalitet. 7. Återanvändning Vi delar upp anvisningarna enligt vad som beskrivs för målgruppsanpassning. Dessa fokuserar på teknisk kuverteringen och transportprotokoll. Regler rörande tekniska aspekter på innehåll läggs i separat anvisning (versionering, namnrymdsättning, namnstandards m.m.) för Tjänstekontrakt. Tekniska anvisningar för profiler byggs upp stegvis med bas i WS I Basic Profile. Påbyggnadsprofil följer, baserat på WS-I Basic Security Profile och i efterföljande steg på WS-I Secure Reliable Conversation Profile. Vidare definieras tekniskt regelverk som gäller generellt för innehåll i en separat anvisning som gäller oberoende av profil. Denna anvisning kallas RIVTA - Tjänsteschema. 8. Spårbarhet För varje regel i en anvisning dokumenteras bakomliggande krav. 9. Öppenhet Förvaltningsprocessen bedrivs på publik infrastruktur för öppen källkod som tillhandahålls av Google [R10]. Följande möjligheter finns för alla intressenter. Intressenter kan tillgängliggöra sig dessa möjligheter utan administrativ börda på förvaltningsorganisationen för RIV Tekniska Anvisningar: - Läsa fastställda releaseplaner - Lämna förslag på förändringar - Läsa inkomna förändringar och deras status i beslutsprocessen - Läsa mötesplanen för den grupp som beslutar om förändringar (påverkar status på inkomna förslag) 11/45

- Läsa eller hämta anvisningar - Hämta och / eller interaktivt använda hjälpmedel i form av exempelapplikationer, generatorer m.m. 10. Konsolidering Genom att ha så få vårdspecifika detaljer i RIV Tekniska anvisningar som möjligt, understöds en framtida övergång till en förvaltningsövergripande interoperabilitetsstandard. Genom strategin som föreslagits för principen om breda lösningar, skapas förutsättningar för såväl kanonisering av RIV TA som för att ersätta RIV TA med en externt utvecklad motsvarighet. 5 Terminologi Detta avsnitt beskriver termer som används genomgående i RIV Tekniska Anvisningar. 5.1 Termer och symboler för utbyte av meddelande Följande termer används för att beskriva grundläggande utbyte av meddelanden: <Envelope>... Avsändare Mottagare Figur 2 Avsändare och mottagare 5.1.1 Meddelande Informationsmängd som förpackats av en avsändare i syfte att överföra strukturerad information till en mottagare. Meddelandets tekniska inramning benämns meddelandekuvert. Kuvertet omsluter ett meddelandehuvud och ett meddelandeinnehåll. Inom ramen för RIV tekniska anvisningar tillämpas standarden SOAP 1.1, vars motsvarande begrepp är Envelope, Header och Body. I anvisningen används de svenska termerna och motsvarande termer ur SOAP-standarden växelvis beroende på sammanhang. Följande figur illustrerar den generella uppbyggnaden av ett meddelande: 12/45

Meddelande Kuvert / Envelope Huvud / Header Innehåll / Body Figur 3 Strukturen i ett meddelande 5.1.2 Avsändare Tjänstekomponent som sänder ett meddelande till en mottagare 5.1.3 Mottagare Tjänstekomponent som tar emot ett meddelande från en avsändare 5.2 Termer och symboler för tjänsteinteraktioner Följande termer definierar tjänsteinteraktioner och deras byggstenar: 5.2.1 InUt-operation Ett synkront anrop med ett inmeddelande som resulterar i ett svarsmeddelande eller ett av tjänsteimplementationen producerat felmeddelande. En InUt-operation visualiseras med en heldragen pil: 5.2.2 In-operation Ett asynkront meddelande med robust leverans. Operationen har ett inmeddelande men inget returmeddelande. En In-operation visualiseras med en streckad pil.: 13/45

Not: I UML ligger skillnaden i notation mellan synkron och asynkron operation i huruvida pilhuvudet är fyllt eller inte. Vi har här valt att avvika från UML för ökad tydlighet. I de UML-diagram som förekommer i dokumentet används UML:s representation. 5.2.3 Tjänsteinteraktion Samverkan mellan två parter enligt någon av interaktionstyperna Fråga-Svar, Informationsspridning och Uppdrag- Resultat. Parterna är abstrakta och benämns generellt "Initiativtagare" och "Utförare" (jmfr WS-BPEL "Initiator", "Responder"). En tjänsteinteraktion beskriver de tjänstekontrakt som uttrycker meddelandeutbytet mellan parterna. För interaktionstyperna Fråga-Svar och Informationsspridning beskrivs meddelandeutbytet av det tjänstekontrakt som realiseras av Utföraren. Interaktionstypen Uppdrag-Resultat definierar ett bilateralt utbyte mellan parterna. Initiavitagaren ger utföraren ett uppdrag genom att anropa operationer i dess tjänstekontrakt. Utföraren avslutar interaktionen genom att anropa operation i initiativtagarens tjänstekontrakt i syfte att delge resultatet. I tjänsteinteraktioner av denna typ definierar initiativtagare och utförare bara en operation var. Tekniskt sett beskrivs en tjänsteinteraktion som en WSDL med beroende till ett eller ett par tjänstescheman (beroende på typ). Följande uppställning beskriver hur de olika tjänsteinteraktionstyperna visualiseras i anvisningarna: Fråga-Svar Request <Envelope>... Initiativtagare <Envelope>... Utförare Response 14/45

Informationsspridning <Envelope>... Initiativtagare Utförare Uppdrag-Resultat <Envelope>... Initiativtagare <Envelope>... Utförare 5.2.4 Övriga termer Tabell 1 Termer Term Tjänstekontrakt Förkortning Beskrivning Kontrakt som beskriver ett nationellt standardiserat gränssnitt som förekommer mellan tjänstekomponenter i en tjänsteorienterad arkitektur. Tjänstekontraktet är oberoende av transport och kuvertering. Tekniskt sett realiseras detta i form av ett tjänsteschema samt en porttyp i en WSDL. Ett tjänstekontrakt beskriver en Utförare (Responder) eller en Initiativtagare (Initiator) i en Tjänsteinteraktion. Ex: Tjänstekontraktet för utförar- 15/45

Tjänsteschema Tjänstedomän Tjänstekomponent Initiativtagare Utförare rollen i tjänsteinteraktionen GetCareContacts heter "GetCareContactsResponder ". Ett XML-Schema (tjänsteschema) med element för tjänstekontraktets in- och ut meddelanden. Ett tjänstekontrakt identifieras i runtime av tjänsteschemats namnrymd, dvs schemats target namespace. T.ex. "urn:riv: clinicalprocess:logistics:logistics:getcarecontacts :1". En övergripande, verksamhetsbaserad indelningsgrund för nationellt standardiserade tjänsteinteraktioner. I Riv Tekniska Anvisningar ingår tjänstedomän som en del i uppbyggnaden av namnrymder. Arkitektur och regelverk förvaltar en domänstruktur som baseras på VIFO-kartan. Avgränsad mängd programvara som kan utvecklas, integreras, testas, driftsättas och förvaltas fristående. Tjänstekomponenter kan vara såväl tjänstekonsumenter som tjänsteproducenter. Tjänstekomponent som initierar en tjänsteinteraktion. Om tjänsteinteraktionen är av typen Uppdrag-Resultat exponerar initiativtagaren ett tjänstekontrakt för att möjliggöra mottagandet av resultat som sänds av Utföraren i tjänsteinteraktionen. Tjänstekomponent som en initiativtagare interagerar med i en tjänsteinteraktion Tjänstekonsument TjK Informationssystem där aktörens agerande leder till automatiskt informationsutbyte med andra system (tjänsteproducenter). En tjänstekonsument kan t ex vara en etjänst, ett verksamhetssystem, en partneringång eller en tjänsteplattform. Tjänstekonsumenten agerar som initiativtagare i en interaktion. Ursprunglig tjänstekonsument Den tjänstekonsument som är den ursprungliga initiativtagaren till en interaktion. Distinktionen är betydelsefull t ex när flera tjänsteplattformar är involverade i ett meddelandeutbyte. Information om vilket system som är ursprunglig tjänstekonsument tillhandahålls i http-headern xrivta-original-serviceconsumer-hsaid, se referens [R14] 16/45

Tjänsteproducent TjP Tjänsteproducenter uppvisar ett tekniskt gränssnitt som möjliggör för tjänstekonsumenter att genom frågemeddelanden förändra eller begära information. En tjänsteproducent kan t ex vara ett verksamhetssystem, partnerutgång, en tjänsteplattform, en aggregerande tjänst eller en stödtjänst. Tjänsteproducenten agerar som utförare i en interaktion gentemot tjänstekonsumenten. Den kan i sin tur skicka meddelanden vidare till andra utförare. Tjänsteplattform Gemensam instans Regional instans Stödtjänst TP NTP RTP Tjänsteplattform är ett samlingsnamn för de komponenter som utgör plattform för tjänstebaserad integration över huvudmannagränser. Tjänsteplattformen finns i en nationell gemensam instans (NTP), och i ett flertal regionala (sk regional tjänsteplattform, RTP). Stödtjänster är tjänsteproducenter som tillhör den tekniska domänen, eller hanterar information som inte är bunden till någon specifik verksamhetsprocess. Virtualiseringsplattform VP Komponent inom en tjänsteplattform som ansvarar för att exekvera virtuella tjänster. Tjänsteadresseringskatalog TAK Tjänsteadresseringskatalogen är en stödtjänst som erbjuder administration och åtkomst av information som ligger till grund för den adressering och behörighetskontroll som utförs i en virtualiseringsplattform. Det finns i normalfallet en instans av en TAK inom ramen för varje tjänsteplattform. Källsystem (KS) Det verksamhetssystem där originalinformationen skapas (t.ex. en driftsinstans av ett journalsystem). Agerar adressat för viss typ av logisk adressering. Aggregerande tjänst AgT En aggregerande tjänst är en integrationstjänst som för en viss individ/patient sammanställer en nationell eller regional vy av informationen av den typ som är aktuell för tjänsten i fråga. Principerna för aggregerande tjänster är beskrivet i T- boken ([R2]). För information om realisering av en aggregerande tjänst på en specifik tjänsteplattform hänvisas till respektive tjänsteplattformsförvaltning. 17/45

Aggregeringsplattform AgP Komponent inom en tjänsteplattform som ansvarar för att exekvera aggregerande tjänster. Engagemangsindex EI En stödtjänst där det finns uppdaterade nationella index över vilka informationsägare som har information av vilket slag kring en viss invånare/patient. På så sätt erhåller aggregerande tjänster information om vilka verksamheter eller källsystem som behöver adresseras för att samla in information. Engagemangsindex har även en tjänstedomän som innehåller de tjänstekontrakt som används för att nå informationen. Engagemangsindex är utförligt beskrivet i T-boken ([R2]). För detaljer, se även aktuell Tjänstekontraktsbeskrivning för EI. Virtuell tjänst Integrationstjänst i en tjänsteplattform som är i en nationell ställföreträdare för alla lokala tjänsteproducenter som uppfyller ett tjänstekontrakt. Den uppträder som om det fanns en gemensam tjänsteproducent, men dirigerar vidare frågemeddelanden till respektive informationsägares tjänsteproducent och förmedlar svarsmeddelandet i retur. Det sker med hjälp av en logisk adress som tjänstekonsumenten bifogar frågemeddelandet. Logisk adress LA Adresseringsbegrepp i RIV-TA. Genom en indirekt adressering åstadkoms lös koppling mellan tjänstekonsumenter och tjänsteproducenter. Verksamhetsbaserad logisk adress Källsystemsbaserad logisk adress Logisk adress som baseras på verksamhet eller organisation. Vanligen används verksamhetens HSA-id som adress. Logisk adress som baseras på IT-system (källsystem). Det aktuella systemets HSA-id används som adress. Figurerna nedan visar begreppen i sammanhang. 18/45

Figur 4 Tjänstekontrakt och virtuella tjänster Tjänstekontrakt i en tjänstedomän realiseras i form av virtuella tjänster i en tjänsteplattform, och i form av tjänster i en tjänsteproducent. Källsystem syftar alltid på källan som ansvarar för originalinformationen, oavsett om information i praktiken hämtas från annan plats vid utväxlingsögonblicket (t.ex. via mellanlager eller regionala tjänsteplattformar). 19/45

Figur 5 Komponenter i en tjänsteplattform Aggregerande tjänster exekveras inom ramen för aggregeringsplattformen inom en TP. De använder sig av Engagemangsindex för att få information om vilka adresser som skall anropas. 20/45

Figur 6 Regionala och gemensamma tjänstekomponenter i samverkan Tjänsteplattformar kan kopplas samman i serie. De kommer då att i vissa lägen att agera tjänstekonsumenter respektive tjänsteproducenter visavi varandra. Observera att den första tjänstekonsumenten i en kedja benämns ursprunglig. 5.3 Terminologi för säkerhet 21/45

Följande termer definierar vård-specifika termer som är centrala för att uttrycka regler relaterade till säkerhet. 5.3.1 HCC Funktion för autentisering och kryptering Certifikatstyp för autentisering av tjänstekomponenter och för kryptering i syfte att åstadkomma insynsskydd vid meddelandeöverföring mellan tjänsteproducent och tjänstekonsument. Används t.ex. för autentisering och kryptering i samband med HTTPS mutual authentication. Se HCC v2.34 för referens. 6 Anvisningarnas uppdelning Regler rörande tekniska aspekter på XML-schema som beskriver innehåll (för SOAP Body i fallet Basic Profile) läggs i separat anvisning för Tjänstekontrakt (versionering, namnrymdsättning, namnstandards m.m.). Följande figur visar strukturen med en anvisning för tjänstescheman och en anvisning per teknisk profil. De tekniska profilerna bygger på varandra med bas i RIV TA Basic Profile. Varje teknisk profil syftar till att tillmötesgå specifika kvalitetskrav på informationsöverföring. Basic Profile uppfyller grundläggande krav på insynsskydd och interoperabilitet. Figur 7 Anvisningarnas uppdelning 7 Relation till T-bokens referensarkitektur Anvisningen i T-boken beskriver en referensarkitektur för samverkan mellan vårdens IT-system. Merparten av de termer och begrepp som används i RIV Tekniska Anvisningar har där sin bakgrund och motivation. Strukturen i RIV Tekniska anvisningar speglar referensarkitekturen. Nedan illustreras hur dessa begrepp förhåller sig till tekniska artefakter och vilka anvisningar som styr utformningen av dem. Sambanden redovisas för varje enskild typ av tjänsteinteraktion som definieras av T-bokens referensarkitektur: Frågasvar, Informationsspridning och Uppdrag-resultat. För varje typ av tjänsteinteraktion används ett exempel baserat på 22/45

EN13606-standarden. Tjänsteinteraktionerna återges i form av ett UML klassdiagram och visualiseras m.h.a. UML sekvensdiagram. Tjänsteinteraktionen EHR.ExtractionInteraction är hämtad ur verkligheten. Enligt referensarkitekturen ska tjänsteinteraktioner klassificeras i tjänstedomäner. För detaljer om regler för namnsättning hänvisas till RIV Tekniska Anvisningar för tjänsteschema och för profiler - framför allt anvisningen RIV TA Basic Profile. 7.1.1 Tjänsteinteraktionstyp Fråga-svar Exemplet är baserat på fråga-svar vid utbyte av journalinformation. Tjänsteinteraktionen beskrivs av följande UML klassdiagram: Figur 8 Fråga-svar struktur Interaktionen mellan parterna beskrivs av följande UML sekvensdiagram där initiativtagaren gör ett synkront anrop med en fråga till utföraren som returnerar ett svar: 23/45

Initiator «interface» ResponderInterface::EhrExtractionResponderInterface getehrextract(getehrextract) :GetEhrExtractResponse Figur 9 Fråga-svar sekvensdiagram Anm.: En fylld pil i ett UML sekvensdiagram betyder ett synkront anrop 7.1.2 Tjänsteinteraktionstyp Informationsspridning Exemplet är baserat på informationsspridning för uppdatering av information om en patient. Tjänsteinteraktionen beskrivs av följande UML klassdiagram: 24/45

Figur 10 Informationsspridning struktur Interaktionen mellan parterna beskrivs av följande UML sekvensdiagram där initiativtagaren (dvs informationsspridaren) gör ett asynkront anrop till utföraren (mottagaren av informationen): 25/45

Initiator «interface» ResponderInterface::EhrExtractionResponderInterface receiveehrextract(receiveehrextract) Figur 11 Informationsspridning sekvensdiagram Anm.: En ofylld pil i ett UML sekvensdiagram betyder ett asynkront anrop 7.1.3 Tjänsteinteraktionstyp Uppdrag-resultat Exemplet är baserat på en generisk begäran om bearbetning av patientinformation och önskan om ett resultatmeddelande när bearbetningen är klar. Notera att interaktionstypen uppdrag-resultat består av två tjänstekontrakt och därmed också två tjänstescheman. Initiativtagaren ger ett uppdrag till utföraren genom att anropa operation i utförarens tjänstekontrakt. Utföraren återvänder vid ett senare tillfälle till initiativtagaren för att leverera resultatet. Det sker genom att utföraren anropar operationen i initiativtagarens tjänstekontrakt. Tjänsteinteraktionen beskrivs av följande UML klassdiagram: 26/45

Figur 12 Uppdrag-resultat struktur Interaktionen mellan parterna beskrivs av följande UML sekvensdiagram där initiativtagaren (dvs beställaren) gör ett asynkront anrop till utföraren och utföraren så småningom återkommer genom att göra ett asynkront anrop till initiativtagaren (beställaren) : 27/45

«interface» InitiatorInterface::EhrExtractionInitiatorInterface «interface» ResponderInterface::EhrExtractionResponderInterface processehrextract(processehrextract) acknowledgeehrextract(acknowledgeehrextract) Figur 13 Uppdrag-resultat sekvensdiagram Anm.: En ofylld pil i ett UML sekvensdiagram betyder ett asynkront anrop 8 Övergripande krav på informationsutbyte Här redovisas de övergripande kraven som gäller oavsett profil. De enskilda profilerna är i sin tur framtagna med utgångspunkt i specifika krav avseende säkerhet, robusthet och andra kvalitetsaspekter kring informationsutbyte. 8.1 Interoperabilitet RIV Tekniska anvisningar konstrueras som tilläggsprofiler till de interoperabilitetsprofiler för web-services som definieras av Web Services Interoperability Organization (WS-I). RIV TA-profilerna bygger på varandra. RIV TA Basic Profile med Intygspropagering är baserad på RIV TA Basic Profile. För mer information om WS-I profiler och deras ingående specifikationer hänvisas till http://www.wsi.org/deliverables/matrix.aspx 8.1.1 Leverantörsspecifika avvikelser och konventioner Anvisningen ska ta rimlig hänsyn till leverantörsspecifika konventioner och ev. brister i följsamhet mot WS-I:s profiler för att uppnå praktisk interoperabilitet. Detta gäller framför allt aktuella versioner av Microsoft Windows Communication Foundation och Java-plattformens motsvarighet JAX-WS. 8.2 Framåt/Bakåtkompatibilitet 28/45

Anvisning för Tjänsteschema definierar regler för uppbyggnad av meddelanden för tjänsternas operationer med syfte att styra in mot utbyggbarhet och interoperabilitet. Detta innebär design och namnrymdshantering för att klara krav på framåt- och bakåtkompatibilitet med utgångspunkt i hur XML hanteras i moderna utvecklingsverktyg (Java och.net). Namnrymder ska också tydliggöra när ett nytt schema definierar en ny version (utan bakåtkompatibilitet) i förhållande till en tidigare version. Utgångspunkten är att det behövs strategier för att minska behovet av nya versioner (genom bakåt/framåt-kompatibilitet), men samtidigt tydliggöra regler för uttag av nya versioner då det inte är möjligt eller ändamålsenligt med bevarad kompatibilitet Principlösningen är anpassad för att fungera med moderna utvecklingsverktyg för Microsoft (.Net WCF) och Java (JAX WS och JAXB) med ansatsen att generera källkod (C# eller Java) utgående från tjänstekontrakt beskrivna m.h.a. WSDL och XML Scheman. Den valda strategin för versionshantering är baserad på ett arbete av W3C som beskriver och värderar en uppsättning strategier. Den strategi som tillämpas i RIV Tekniska Anvisningar beskrivs här: http://www.w3.org/2001/tag/doc/versioning-xml#versionid25. Konsekvensen av strategin är en uppsättning detaljerade krav. Dessa beskrivs nedan. 8.2.1 Definitioner Versionsnummer sätts på ett tjänstekontrakt enligt formatet: major.minor För nya kompatibla versioner av ett tjänstekontrakt behålls major-siffran medan minor-siffran stegas upp ett steg, t ex från 1.0 till 1.1. För nya icke kompatibla versioner stegas major-siffran upp och minor-siffran sätts tillbaka till 0, t ex från 1.1 till 2.0. För att beskriva att ett meddelande innehåller element från en viss version av ett tjänstekontrakt (v1.0 i exemplet nedan) används följande notation: <Envelope>... e1.0 Avsändare (v1.0) Mottagare (v1.1) Anm. "e1.0" anger element från v1.0 av tjänsteschemat För att beskriva att ett meddelande som innehåller element från flera olika versioner av ett tjänstekontrakt (v1.0 och v1.1 i exemplet nedan) används följande notation: 29/45

<Envelope>... e1.0 e1.1 Mottagare (v1.0) Anm. I bilden förstärks att element från v1.1 av tjänstekontraktet har tillförts meddelandet En initiativtagare byggd för v1.0 av ett tjänstekontrakt visualiseras enligt: Initiativtagare (v1.0) Avsändare (v1.1) En utförare byggd för v1.0 av ett tjänsteschema visualiseras enligt: Utförare (v1.0) 8.2.2 Bakåt och framåtkompatibilitet Bakåtkompatibilitet innebär att en avsändare kan skicka meddelande till en mottagare där meddelandet följer en äldre version av tjänstekontraktet än vad mottagare är baserad på. Detta kräver att mottagaren kan behandla meddelanden av den äldre versionen trots att dessa saknar de nya elementen. Bakåtkompatibilitet illustreras med hjälp av följande bild: <Envelope>... e1.0 Avsändare (v1.0) Mottagare (v1.1) 30/45

Framåtkompatibilitet innebär att en avsändare kan skicka meddelande till en mottagare där meddelandet följer en nyare version av tjänstekontraktet än vad mottagaren är baserad på. Detta kräver att mottagaren kan bortse från informationen som tillförts i den nyare versionen av meddelandet. <Envelope>... e1.0 e1.1 Avsändare (v1.1) Mottagare (v1.0) 8.2.3 Teknisk realisation av framåt och bakåtkompatibilitet I praktiken finns det i huvudsak en typ av förändring som uppfyller såväl bakåt- som framåtkompatibilitet: tillägg av nya, icke-obligatoriska element. Tekniskt sett handlar det om att säkerställa att ett meddelande alltid kan valideras mot den version av XML Schemat som befintliga avsändare och mottagare byggdes för. T ex genereras C#/Javakällkod för att tolka tjänstekontraktets in- och ut meddelanden. Över tiden kommer olika avsändare och mottagare ha källkod som är genererad utgående från olika minor-versioner av tjänstekontraktet. En försvårande omständighet är i detta sammanhang att många verktyg för tolkning och validering av XML tagit fasta på ett krav i specifikationen för XML Schema som benämns "Unique Particle Attribution". Den av W3C beskrivna strategin för versionering tar delvis hänsyn till denna restriktion. Det är en erfarenhetsmässigt påvisad metod för att tekniskt realisera krav på bakåt- och framåtkompatibilitet som bl.a. tillämpas inom OASIS (WS-Policy, WS-Topic m.fl). Valet av strategi medför följande krav på tjänstescheman: Versionsdeklaration: Target-namespace skall innehålla major-versionen. Namespaces behöver anges för element i instans-dokument: Schema-attributet elementformdefault skall vara satt till 'qualified' i alla scheman. Platshållare för framåtkompatibilitet: Ett xsd:any-element ska finnas som "platshållare" för framtida, ickeobligatoriska element: <xsd:any processcontents="lax" minoccurs="0" maxoccurs="unbounded" namespace="##other"/>. Element som introduceras i en ny minor-version läggs i ett separat XML Schema med target-namespace som skiljer sig från major-versionens. Detta är en konsekvens av any-elements deklaration enligt ovan, som tvingar att dessa element ska vara i annan namnrymd. Utöka nya framåt och bakåtkompatibla versioner av XML Schemat endast med frivilliga element, d.v.s. element som har minoccurs satt till "0". Se RIV Teknisk anvisning - Tjänsteschema för detaljerade riktlinjer. Se RIV Teknisk anvisning: Referensapplikation för exempel på tjänsteschema som realiserar beskriven strategi för versionshantering. 31/45

8.2.4 Icke kompatibla ändringar När det inte är möjligt eller ändamålsenligt för en ny version av ett tjänstekontrakt att vara kompatibelt med befintlig version måste mottagaren tillhandahålla ändpunkter för såväl den befintliga versionen som den nya icke kompatibla versionen av tjänstekontraktet. Den gamla versionen av tjänstekontraktet måste stödjas under en rimlig tidsrymd så att befintliga avsändare som använder den kan uppgraderas till att använda den nya versionen. Först då kan mottagaren ta bort ändpunkten för den gamla versionen. Anm. Vad som är en rimlig tidsperiod för avsändare att gå över till en ny icke bakåtkompatibel version av en tjänst är något som inblandade avsändare och mottagare måste komma överens om per fall, alternativt följa riktlinjer i gällande kontrakt. Följande bild illustrerar behov av två ändpunkter hos mottagaren vid införande av en ny icke kompatibel version, v2.0, av ett tjänstekontrakt: Avsändare A (v1.0) Avsändare B (v2.0) <Envelope>... e1.0 <Envelope>... e2.0 Mottagare v1.0 v2.0 Avsändare A använder initialt den gamla versionen, v1.0, och avsändare B använder den nya versionen, v2.0. När avsändare A uppdaterat till den nya versionen kan mottagaren ta bort ändpunkten för den gamla versionen. Slutresultatet ser då ut enligt följande: 32/45

Avsändare A (v2.0) Avsändare B (v2.0) <Envelope>... e2.0 Mottagare v2.0 8.2.5 Versionering och tjänsteinteraktionstyper När det gäller tjänsteinteraktionstyperna informationsspridning och uppdrag-resultat är det generella resonemanget ovan gångbart, då dessa är baserade på enkelriktade in-operationer. För tjänsteinteraktionstypen informationsspridning kan man i samtliga resonemang ovan ersätta avsändare med initiativtagare och mottagare med utförare samt ersätta anropspilen med en in-operation, t ex för bakåtkompatibilitet: Initiativtagare (v1.0) <Envelope>... e1.0 Utförare (v1.1) För tjänsteinteraktionstypen uppdrag-resultat byter initiativtagare och utförare roll då resultatsmeddelandet skickas men i övrigt är resonemanget samma som ovanstående. För tjänsteinteraktionstypen fråga-svar blir det dock lite mer komplext extersom tjänsteinteraktionstypen är baserad på en inut-operation, dvs utföraren skickar ett svarsmeddelande (synkront) tillbaka till mottagaren. 8.2.6 Bakåt och framåtkompatibilitet för tjänsteinteraktionstypen Fråga-svar För tjänsteinteraktionstypen Fråga-svar uppträder en initiativtagare som avsändare för request-meddelandet och som mottagare för response-meddelandet och vise versa för en utförare. Framåt- och bakåtkompatibilitet gäller med andra ord både in- och ut-meddelanden. 33/45

Följande bild illustrerar behov av bakåt och framåtkompatiblitet i fallet med en gammal initiativtagare och en ny utförare: Request <Envelope>... e1.0 Initiativtagare (v1.0) <Envelope>... e1.0 e1.1 Utförare (v1.1) Response I detta exempel måste utföraren (v1.1) kunna behandla request-meddelanden av den äldre versionen (v1.0) trots att dessa saknar de nya elementen samt initiativtagaren (v1.0) måste ignorera nya element som kommer i v1.1-responsemeddelanden. Följande bild illustrerar behov av bakåt och framåtkompatiblitet i fallet med en ny initiativtagare och en gammal utförare: Request <Envelope>... e1.0 e1.1 Initiativtagare (v1.1) <Envelope>... e1.0 Utförare (v1.0) Response I detta exempel måste utföraren (v1.0) ignorera nya element som kommer i v1.1-request-meddelanden samt initiativtagaren (v1.1) måste kunna behandla response-meddelanden av den äldre versionen (v1.0) trots att dessa saknar de nya elementen. 34/45

andla response-meddelanden av den äldre versionen (v1.0) trots att dessa saknar de nya elementen. 8.2.7 Införande av ny version av RIVTA Koppling via tjänsteplattformen möjliggör också utrullning av nya versioner av RIVTA utan att alla parter som samverkar behöver uppgradera samtidigt. Virtuella tjänster översätter mellan RIVTA-versioner. Det handlar oftast om förändrade namn på headrar, byte av protokoll eller växling mellen säkerhetsmodeller, då något av dessa troligen förändras mellan RIVTA-versioner även om tjänsteschemat är oförändrat 8.3 Stöd för referensarkitekturens adresseringsmodell T-boken beskriver en abstrakt modell för adressering där tjänstekonsumenten i ett meddelandeutbyte ska adressera en tjänsteproducent med en logisk adress (LA). När begäran från konsumenten når en virtuell tjänst i tjänsteplattformen tar tjänsteplattformen hjälp av tjänsteadresseringskatalogen för att validera att aktuell tjänstekonsument har rätt att anropa den virtuella tjänsten erhålla den tekniska adressen (URL) till mottagande tjänsteproducent Detta gäller i alla led - alltså även vid federerade arkitekturer där en virtuell tjänst i tjänsteplattformen dirigerar en tjänstebegäran till en tjänsteproducent som i själva verket visar sig vara en virtuell tjänst i en regional tjänsteplattform, se Error! Reference source not found. Figur 6 på sidan 21. Adresseringen i en tjänsteplattform riktas alltid till nästa system nedströms, dvs tjänsteproducenten ur tjänsteplattformens perspektiv. Anvisningen för basprofilen detaljerar reglerna för hur den logiska adressen ska deklareras i en tjänsteinteraktion. I RIVTA Basic Profile 2.1 deklareras logisk adress i tjänsteinteraktionens WSDL i form av SOAP-header. Det görs på ett sätt som får header-elementet att uppträda som en parameter i den metodsignatur som utvecklingsverktyg (Java, - Net) genererar från WSDL-filen. T-bokens adresseringsmodell är kärnan i den nationella referensarkitekturen. Det är därför viktigt att ha grundlig förståelse för dess ändamål. Den är designad med utgångspunkt i att systemstrukturen inom vård och omsorg är distribuerad, med federativt ägarskap. Det betyder att det finns många likheter med s.k. business-to-business, där många organisationer länkas samman med varandra. Inom vård- och omsorg finns en uppsättning typfall. I samtliga fall är adresseringsmodellens syfte att ge lös koppling mellan tjänstekonsument och tjänsteproducent. Här har förstås också den gemensamma tjänsteplattformen en viktig uppgift att fylla i dess roll som gemensam anslutningspunkt. Lös koppling på semantisk nivå skapas genom att alla parter är överens om ett tjänstekontrakt för informationsutbyte. På teknisk nivå sker det genom att alla parter enats om ett tekniskt protokoll, en adresseringsmodell samt att meddelandeutbytet sker via tjänsteplattformen. Det tekniska protokollet säkerställer att olika parter är överens om hur kommunikationen ska upprättas och skyddas. Adresseringsmodellen säkerställer tillsammans med tjänsteplattformen att alla parter i arkitekturen kan uttrycka vem som är mottagare av ett meddelande utan beroende till hur mottagaren organiserar sitt IT-stöd. 35/45

Den logiska adressen pekar ut en tjänsteproducents URL via information i TAK. På detta sätt döljs system- och ipadresser från tjänstekonsumenten. En verksamhet kan därför förändra sin systemstruktur utan att påverka logiska adresser och tjänstekonsumenter. Det enda som behöver uppdateras är adresseringsinformationen i TAK. Den logiska adressen representerar ett av två olika koncept: Verksamhet/organisation Ett källsystem 8.3.1 Verksamhetsbaserad adressering Vid verksamhetsbaserad adressering representerar den logiska adressen en organisation eller verksamhet. Det är vanligen en vårdgivare eller vårdenhet, men även andra, som t ex myndigheter, förekommer. Varje tjänstedomän definierar vilka värden för logisk adress som kan användas tillsammans med domänens tjänstekontrakt. Typiskt används organisationens HSA-id som adress. Figur 14 Verksamhetsbaserad adressering I figuren ovan används HSA-id till vårdenheten VE11 som logisk adress. Baserat på information i TAK översätter VP den logiska adressen till en URL. Denna pekar ut den tjänsteproducent, TjP1, som hanterar information associerad medve11 i enlighet med ett visst tjänstekontrakt. 36/45

Även aggregerande tjänster adresseras via logiska adresser som representerar en organisation eller verksamhet. Ur tjänstekonsumentens perspektiv uppträder en AgT som en tjänsteproducent. Den exekverar på komponenten Aggregeringsplattform inom ramen för en tjänsteplattform. Principerna för aggregerande tjänster beskriv T-boken ([R2]). Figur 15 Adressering av aggregerande tjänst Det kan inte finnas mer än en instans av en aggregerande tjänst per tjänstekontrakt och tjänsteplattform. Adresseringen kan därför förenklas enligt: En AgT som finns på den gemensamma tjänsteplattformen adresseras med Ineras HSA-id som LA. Den logiska adressen till en AgT som driftsatts på en regional plattform är regionens HSA-id som LA. Observera att i figuren ovan framgår att den logiska adressen enbart pekar ut den aggregerande tjänsten (inringad i rött). Den aggregerande tjänsten kommer dock i sin tur att, baserat på EI, anropa ett antal system (symboliserat med en streckad cirkel). 37/45

8.3.2 Adressering av källsystem Den logiska adressen representerar ett källsystem. I detta fall används systemets HSA-id som logisk adress. Observera att det alltså är källsystemet som pekas ut i den logiska adressen, inte nödvändigtvis tjänsteproducenten (även om det kan vara samma system). På detta sätt uppnås en högre grad av lös koppling än om LA skulle vara en URL eller ipadress. Källsystemet kan också vara representerat av ett mellanlager som de facto är komponenten som besvarar förfrågan från tjänstekonsumenten. Ett källsystem innehåller i normalfallet information som härrör från många verksamheter. Denna adresseringsmodell ger därför möjlighet att hämta information som härrör från flera verksamheter i en interaktion. Figur 16 Adressering av källsystem Figuren visar hur en aggregerande tjänst agerar tjänstekonsument och skickar ett meddelande adresserat till ett källsystem. Källsystemets HSA-id används som LA. VP översätter LA till URL till den tjänsteproducent som kan tillhandahålla information enligt aktuellt kontrakt och med ursprung i angivet. Denna adresseringsmekanism innebär, en icke önskvärd, hårdare koppling mellan initiativtagare och utförare än vid verksamhetsbaserad adressering. Denna nackdel motverkas av att Tjänstkonsumenter inte skall spara dessa adresser. 38/45

I stället lagras och underhålls dessa i EI av källsystemen själva. Tabellen nedan visar när källsystembaserad adressering skall användas, samt hur tjänstekonsumenten erhåller den logiska adressen. Tabell 2 Användningsfall för källsystemsbaserad adressering Tjänstekonsument Användningsfall Förmedling av logisk adress Aggregerande tjänst Engagemangsindex 1 Engagemangsindex Prenumerant Tjänstekonsument (av aggregerande tjänst) Det vanliga adresseringsförfarandet när AgT anropar Tjänsteproducenter EI anropar källsystem för att hämta uppdateringar till index (mha GetUpdates()). EI skickar notifieringar om uppdaterat index till sina prenumeranter (mha ProcessNotification()). Anrop av källsystem för att hämta uppdateringar som följd av en notifiering. Anrop av källsystem för att hämta kompletterande information Hämtas från EI Hämtas från EI Hämtas från EI Prenumeranten erhåller den logiska adressen via ProcessNotification() meddelandet. Tjänstekonsumenten erhåller LA via svaret på ett tidigare anrop till en aggregerande tjänst Denna adresseringsmodell har införts som ett sätt att avlasta källsystem och integrationsinfrastrukturen. 8.3.3 Konsekvenser av adresseringsmetoderna Samma tjänstekontrakt kan adresseras på olika sätt vid olika tillfällen. Ett kontrakt som realiseras som en aggregerande tjänst (och då adresseras via en verksamhetsbaserad logisk adress) kan i nästa steg vara realiserat i producenter som anropas via källsystemsadresser. 8.3.3.1 Konsekvenser för tjänstekontrakten Om ett tjänstekontrakt som anropas källsystemsadresserat behöver göra utsökning eller filtrering baserat på verksamhet måste det ingå som en parameter i request-meddelandet (eftersom den inte går att utläsa ur den logiska adressen). Tjänstekontrakt som realiseras i form av aggregerande tjänster måste definiera ett svarsmeddelande i form av en lista; 0..n. 1 Detaljer kring informationsinnehåll och tjänstekontrakt i Engagemangsindex återfinns i dess Tjänstekontraktsbeskrivning. 39/45

8.3.3.2 Konsekvenser för tjänstekonsumenter Vid verksamhetsbaserad adressering känner tjänstekonsumenten till vilken verksamhet som skall adresseras och använder t ex organisationens HSA-id som logisk adress i anropet. Tjänstekonsumenter skall aldrig själva lagra logiska adresser som refererar till källsystem. Dessa skall erhållas via notifiering från EI eller via svar från en aggregerande tjänst. Aggregerande tjänster (när de agerar som tjänstekonsument) hämtar adressen från EI. 8.3.3.3 Konsekvenser för tjänsteplattformar Tjänsteplattformen, inklusive dess VP och TAK, är omedveten om vilket adresseringskoncept som används. Den använder den logiska adressen som nyckel i TAK för att hämta ut URL till tjänsteproducenten. Det sker på samma sätt oberoende av vad adressetiketten betyder. 8.3.3.4 Konsekvenser för tjänsteproducenter En och samma tjänst (tjänstekontrakt) i en tjänsteproducent kan teoretiskt adresseras både via verksamhets- och källssystemsadresser. Om logiken i tjänsteproducenten är beroende av adresseringsmekanism, t ex för att göra filtrering eller behörighetskontroll, måste den själv analysera den aktuella adressen för att se om det är en av den själv känd källsystemsadress. Den skall vid behov genomföra en kontroll av att ursprunglig tjänstekonsument har behörighet att anropa den logiska adressen. Den skickar vid behov meddelandet vidare till det källsystem som innehåller adresserad information. 8.3.3.5 Konsekvenser för källsystem När ett källsystem adresseras direkt (dvs källsystemsbaserad adressering) kan det behöva genomföra en filtrering av information baserat på verksamhet. Om ett mellanlager används för att försörja en källsystemadresserad tjänsteproducent med journalinformation måste posterna i mellanlagret ha spårbarhet till källsystemets HSA-id. I annat fall har inte tjänsteproducenten möjlighet att avgränsa sökresultatet till information som härrör från adresserat källsystem. 8.3.4 Val av adresseringsmetod Den som ansvarar för utvecklingen av en tjänstedomän behöver fundera över vad som är det mest lämpade adresseringsbegreppet vid olika situationer. 40/45

Rekommendationer: Tjänster som anropas av aggregerande tjänster samt de övriga användningsfallen i Tabell 2 bör vara källsystemsadresserade 2. Motiv: 1) Administrationen i TAK minskar eftersom adresseringsinformation enbart registreras per källsystem och tjänstekontrakt i stället för att registreras per vårdenhet (om vårdenhet är verksamhetsbegreppet) och tjänstekontrakt. 2) Belastningen på tjänsteproducenten minskar eftersom aggregerande tjänster bara behöver göra ett anrop per källsystem istället för ett anrop per vårdenhet. För en kroniker kan det över en 10-årsperiod finnas information på 20-30 olika vårdenheter, varav många kan hanteras i samma system. Det blir då 1-2 anrop per informationsmängd istället för 20-30. 3) Om man skulle ha verksamhetsbaserad adressering för journalinformation innebär det att varje index-post i EI är märkt med vårdenhet. Kopplingen mellan vårdenhet och organisationsenhet ändras löpande i journalsystemen. Vid varje sådan ändring påverkas ett stort antal befintliga patienter, i det att deras journaluppgifter byter vårdenhet. En konsekvens av det är att alla indexposter i EI som refererar patienter/infomängder som mappats om behöver uppdateras i en stor batch. Det är något som är komplext och prestandamässigt svårt att hantera för journalsystemens EI-anslutningar. 4) Antalet poster i minskar EI eftersom det endast blir en post per källsystem, patient och informationstyp i stället för en post per enhet, patient och informationstyp. Övriga integrationer, som inte är relaterade till aggregering av information, bör använda verksamhetsbaserad adressering 2. Motiv: Styrande princip IT4: Lös koppling i T-boken ([R2]). Verksamhetsbaserade logiska adresser innebär en lösare koppling mellan tjänstekomponenterna. Tjänstekonsumenten får inget beroende till systemstrukturen hos anropad verksamhet. 8.4 Adressering av multipla tjänsteplattformar När meddelanden skickas mellan tjänsteplattformar tar dessa rollen som tjänstekonsument och/eller tjänsteproducent gentemot varandra och övriga tjänstekonsumenter. Se Figur 6 Regionala och gemensamma tjänstekomponenter i samverkan på sidan 21 som exempel. 2 Behov av undantag från detta skall framgå av Tjänstekontraktsbeskrivning och motiveras i form av ett Arkitekturellt beslut. 41/45

1. Aktuellt tjänstekontrakt måste vara realiserat som virtuell tjänst i samtliga tjänsteplattformar som deltar i informationsflödet. 2. Den ursprungliga tjänstekonsumenten anropar sin lokala plattform, RTP-1 på vanligt sätt. Den logiska adressen är HSA-id för en verksamhet som finns i vårdsystem (verksamhetsbaserad adressering), eller HSAid till vårdsystemet självt (källsystemsbaserad adressering). 3. TAK i RTP-1 pekar ut NTP som tjänsteproducent för aktuell LA. 4. TAK i NTP definierar RTP-1 som tjänstekonsument. 5. TAK i NTjP pekar RTP-2 som tjänsteproducent för aktuell LA. 6. TAK i RTP-2 definierar NTP som tjänstekonsument. 7. TAK i RTP-2 definierar Tjänsteproducent som tjänsteproducent för aktuell LA. Den ursprungliga tjänstekonsumenten behöver på detta sätt enbart känna till sin lokala tjänsteplattform samt en logisk adress till vårdsystemet, även om det finns inom en annan organisation. 8.5 Anropsbehörighet I T-boken rev B [R2] beskrivs att en Tjänsteplattform skall utföra behörighetskontroll baserat på information i TAK. Behörighetskontrollen är baserad på en kombination av tre entiteter: 1. Tjänstekonsument 2. TjänstekontraktLogisk adress På detta sätt kan en informationsägare på en verksamhet (som representeras av en logisk adress) styra vilka tjänstekonsumenter som skall få adressera deras tjänster. Det är en stor administrativ börda att hantera informationsunderlaget för behörighetskontrollen. Kontrollen blir i praktiken verkningslös i kombination med källsystemsadressering, eftersom en LA då representerar ett helt källsystem. Den genomförs dessutom ofta redan hos tjänsteproducenterna, vilket i praktiken innebär en dubbel administration. Det har därför beslutats att central behörighetskontroll blir frivillig för tjänsteproducenterna. De kan nu tillåta att alla tjänstekonsumenter (som har behörighet till tjänstekontraktet) får anropa den logiska adressen. Tjänsteproducenten, egentligen ägare av en logisk adress, behöver göra följande val: 1. Kontroll av anropsbehörighet skall ske i tjänsteplattformen för varje tjänstekonsument (dagens situation). 2. Tillåta att alla tjänstekonsumenter som har behörighet till tjänstekontraktet får anropa den logiska adressen. Observera att 1 ovan i praktiken är verkningslös vid källsystemsbaserad adressering, samt vid användning av aggregerande tjänster över flera tjänsteplattformar. 42/45

Valet 2 ovan innebär att kontroll av anropsbehörighet kan behöva ske i tjänsteproducenterna. För att möjliggöra detta har stöd införts i Tjänsteplattformarna för att förmedla ursprunglig tjänstekonsuments HSA-id hela vägen till slutlig tjänsteproducent i form av http-headern x-rivta-original-serviceconsumer-hsaid, se RIVTA Basic Profile Valfria tillägg ([R14]). Tjänsteproducenten ansvarar för att information endast lämnas ut till de tjänstekonsumenter som informationsägaren godkänt. Om informationsägaren (vårdenhet) har behov av att reglera åtkomst per tjänstekonsument, ska tjänsteproducenten erbjuda denna möjlighet och filtrera svaret enligt informationsägarens önskemål. Observera att det kan vara regionala policyer snarare än lagar och förordningar som styr i vilken grad tjänsteproducenten ska begränsa åtkomst för en viss tjänstekonsument. Kunskapen om tjänstekonsumentens (tjänstens) identitet (d.v.s. ursprunglig tjänstekonsument i anropskedjan) får bara användas för teknisk åtkomstbegränsning på så sätt att svaret på begäran blir som om de vårdenheter vars verksamhetschef inte godkänner aktuell tjänstekonsument varit exkluderade i begäran. Den kan inte användas för att filtrera svaret inom vårdenhet olika för olika tjänstekonsumenter. 43/45

Figur 17 Anropsbehörighet I figuren ovan har man valt att låta tjänsteproducenten TjP1 genomföra kontrollen för de logiska adresserna KS1, VE10 och VE11. Det innebär att tjänsteplattformen har öppnat upp för alla tjänstedomänens tjänstekonsumenter att fritt få adressera dessa adresser (det gäller även TjK3 vilket inte framgår av bilden). För TjP2 låter man istället TP ansvara för kontrollen. Där har behörighetsinformation lagts in i TAK för att tillåta att TjK2 och TjK3 kan adressera VE20 och VE21. Anrop från TjK1 och den aggregerande tjänsten kommer inte att släppas fram till tjänsteproducent TjP2. 8.6 Namnstandards RIV Tekniska anvisningar ska underlätta utveckling och tolkning av WSDL och tjänstescheman genom att föreslå en namnstandard. Namnstandarden ska bäras av de begrepp som ligger till grund för denna anvisning. Namnstandarden ska uttryckas som regler i de enskilda anvisningarna. I och med att profilerna bygger på varandra, finns de flesta namngivningsregler för WSDL i bas-profilen. Även anvisningen för tjänsteschema definierar namngivningsregler. 8.7 Publicering av övervaknings-tjänst 44/45