Innehållsspecifikation- Meddelande

Innehållsförteckning

Table of Contents

Revisionshistorik

Version

Datum

Kommentar

Version

Datum

Kommentar

3.0.6 RC2 (2022)

2021-09-28

Specifikation uppdaterad utifrån DIGGs uppdaterade specifiktioner version 0.97.

  • Avsnitt 2.2  AS4 och XHE-profilering förtydligat gällande hantering av XHE.id

  • Avsnitt 3.2.2 MessageHeaderType gällande hantering av

    • meddelande-id

    • confidentiality

  • Avsnitt 3.2.2.3 AttentionDataType

    • AttentionPersonType, dokumentation uppdaterad för att match schema

    • Exempel uppdaterat

3.0.6 (2022)

2022-02-28

Beslutad version för Tjänsten Säker digital kommunikation.

3.0.7 (2022)

2022-08-26

Revidering: Förtydligande av specifikation

  • Avsnitt 3.2.2

    • Konversations-id (conversationId) förtydligande: Värdet kan återanvändas om samma meddelande skickas till många mottagare.

  • Avsnitt 3.2

    • Korrigerat exempel

  • Avsnitt 3.2.2.3

    • Korrigerat exempel för “/attention/subOrganization/organizationId“

3.0.8 (2022)

2022-11-08

Revidering: Förtydligande av specifikation

Avsnitt 3.2.2.3 AttentionDataType

  • Attribut “PersonId”: Förtydligane kring refererad person.

  • Attribut “referenceId“: Förtydligande kring hur referens-id (personnummer)kan användas.

Avsnitt 3.2.2 MessageHeaderType

  • Attribut “confidentiality“: Förtydligande av sekretessmarkeringen betydelse.

Avsnitt: 2.2.3 Meddelandekuvertering med XHE

  • Attribut “Payloads.Payload.HandlingServiceID” SKA innehålla mottagarens Id för att identifiera funktion/enheter.

3.1

2023-06-12

Utökat stöd för filtyper

  • Avsnitt: 3.2.3.3 ContentAsBase64

    • Filtyper som kan bifogas till meddelande ändrat.

  • Avsnitt 3.2.2

    • Förtydliga hur “omfattas av sekretess” skall hanteras av Meddelandeklient(MK)

3.1.1

2023-09-12

Förtydligande av specifikation:

Avsnitt 3.2.2

  • Förtydligande kring attribut “refToMessageId”

Avsnitt 3.2.3.1

  • Kardinalitet uppdaterad för documentID korriderad. (avspåeglade inte xml schema)

  • Förtydligande dokumentation: Ett meddelande skal innehålla textmeddelande eller en bifogad fil (vilket reflekteras i schematron validering).

  • Förtydligande gällande meddelandets stolek(inkl bifogad fil)

Avsnitt 4.4

  • Uppdaterad beskrivning av felkod vid avvisning av filtyp som ej stöds.

3.2

2023-10-25

Avsnitt 4.4: Exempel på felkoder uppdaterat.

  • Felkod “Meddelande kan ej levereras“ utgår. Meddelandeklientens avvikande tillgänglighet ska kunna generera ett “REJECT” svar.

3.2.1

2023-12-15

Avsnitt Meddelandeflöde:

  • Uppdaterat illustration

  • Korrigerat numrering i tabell.

1. Inledning

Syfte: Specifikationen SDK Innehållsspecifikation meddelande reglerar hur ett s.k. ostrukturerat SDK-meddelande skall utformas för att kunna utbytas mellan användarorganisationer som är anslutna till SDK-federationen.

Specifikationen beskriver dokumenttypen riv:infrastructure:messaging:MessageWithAttachments. Den utgör en kravspecifikation som skall fungera som ett teknikneutralt, formellt regelverk som reglerar integrationskrav för parter som avser att ansluta system för samverkan enligt denna dokumenttyp.

Kännetecknande för SDK-federationen är:

  • Utbyte av ostrukturerad information – fritext/dokument - filer

  • Utbyte mellan (många) organisationer (B2B)

  • Känslig information (personuppgifter, uppgifter som kan omfattas av sekretess)

  • Domänöverskridande (hälso- och sjukvård, socialtjänst, skola, arbetsmarknad, osv.)

  • Interoperabilitet – främst teknisk och legal

Målet är att ge kunskap om hur SDK-komponenter som meddelandetjänst och meddelandeklient/verksamhetssystem skall anpassas för att kunna hantera SDK-meddelanden.

 

1.1 Referenser

I följande avsnitt anges länkar till ytterligare relevant dokumentation och en sammanställning av samtliga referenser som förekommer i dokumentet.

1.1.1. Stödjande externa dokument

Ref

Dokument-id

Dokumentlänk

Ref

Dokument-id

Dokumentlänk

R1

Inera, RIV Tekniska Anvisningar

http://rivta.se/documents

R2

Connecting Europe Facility (CEF)

https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL

R3

CEF eDelivery

https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eDelivery

R4

OASIS AS4 transportprotokoll

http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/profiles/AS4-profile/v1.0/os/AS4-profile-v1.0-os.pdf

R6

CEF eDelivery AS4

R7

Meddelandespecifikation: Meddelandekvittens

DIGGs informationspaket kan erhållas genom en förfrågan till DIGG via info@digg.se

R8

Kuverteringsprofil XHE

DIGGs informationspaket kan erhållas genom en förfrågan till DIGG via info@digg.se

R9

Transportprofil AS4

DIGGs informationspaket kan erhållas genom en förfrågan till DIGG via info@digg.se

R10

Certifikatspublicering - REST-bindning till SMP

DIGGs informationspaket kan erhållas genom en förfrågan till DIGG via info@digg.se

R11

Transportinfrastruktur– Kodlistor – Tekniska specifikationer

DIGGs informationspaket kan erhållas genom en förfrågan till DIGG via info@digg.se

 

1.1.2. Stödjande SDK-dokument

Ref

Dokument-id

Dokumentlänk

Ref

Dokument-id

Dokumentlänk

B1

SAD Säker digital kommunikation

SAD Säker digital kommunikation

B2

SDK Specifikation Validering, felhantering och kvittens

SDK Specifikation Validering, felhantering och kvittens

 

2. Övergripande arkitektur för informationsöverföring inom SDK

Detta kapitel refererar till flöden som är relevanta för informationsöverföring inom SDK.

 

Bilden illustrerar var i arkitekturen som SDK Innehållsspecifikation används. SDK-meddelandet paketeras i "nyttolast" och består av två element; XHE och MessageType (SDK Nyttolast).

Div | style = page-break-before: always

 

2.1. Övergripande flöden

 

Ett meddelande skapas i meddelandetjänsten (t.ex. ärendehanteringssystem eller meddelandeapplikation).

 

Steg

Aktör

Beskrivning

Kommentar

Steg

Aktör

Beskrivning

Kommentar

1.Skapa meddelande

Organisation A

  • Meddelandetjänst (verksamhets- och meddelandelager)

I meddelandetjänsten skapas en meddelandestruktur enligt schema (XHE, MessageType) och paketeras i AS4.

  • AS4

    • MessagePayload (MessagePayloadType)

      • XHE

      • Message (MessageType)

Meddelandet skapas i en meddelandetjänst.

Steg 1 och steg 2 (steg 3) kan ske samtidigt.

2.Adressera

Organisation A

  • Meddelandetjänst

Användare(avsändaren) inom organisationen med tillgång till en SDK funktionsadress söker i en adressbok för att hitta anslutna organisationer och dess funktionsadresser.

Meddelandetjänsten kompletterar meddelandet med adressuppgifter (organisations-id, funktions-id).

Transportadressering:

  • AS4

    • originalSender (organisations-id)

    • finalRecipient (organisations-id)

Verksamhetsadressering:

  • MessageType

    • Recipient (organisations-id)

      • Attention.Function (funktions-id)

      • Attention.Person (Endast referens: person-id)

    • Sender (organisations-id)

      • Attention.Function (funktion-id)

      • Attention.Person (Endast referens: person-id)

  • XHE

    • Receiver (organisations-id)

    • Sender (organisations-id)

    • HandlingServiceID (funktions-id)

Användaren söker i en adressbok för att hitta anslutna organisationer och dess funktionsadresser. Detta kan ske antingen genom integration mot SDK Adressboks Sök-API eller genom en lokal läskopia.

Specifikationer:

  • Kuverteringsprofil XHE (Se R8)

3.Kryptera och signera

Organisation A

  • Meddelandetjänst

Avsändande användarorganisation krypterar och signerar meddelandet.

  • Mottagande användarorganisationens krypteringsnyckel hämtas från SMP (CertPub)

  • Meddelandetjänsten Base64-kodar det färdiga meddelandet och överför det till Accesspunkten.

    • Hur ett meddelande överförs till accesspunkten är en produktspecifik fråga; olika ev. APIer kan erbjudas beroende på produkt.

Specifikationer:

  • Kuverteringsprofil XHE (Se R8)

  • Certifikatspublicering - REST-bindning till SMP (Se R10)

4.Skicka meddelande

Organisation A

  • Accesspunkt (AP)

Avsändande Accesspunkt skickar meddelande enligt eDelivery-protokoll.

  • DNS ger transportadress till SMP

  • SMP ger transportadress AP

 

 

Organisation B

  • Accesspunkt (AP)

Mottagande Accesspunkt tar emot meddelande för vidare leverans.

Intern routing skall baseras på:

  • Organisations-id

  • Funktions-id

 

5.Status

Organisation B

  • Accesspunkt (AP)

Transportkvittering: Mottagande Accesspunkt bekräftar överföring synkront enligt eDelivery-protokoll.

  • SignalMessage innehåller bl.a. MessageId

 

6.Validering och kvittering

 

Organisation B

  • Meddelandetjänst

Meddelandekvittering: Mottagande organisations meddelandetjänst validerar meddelande samt kvitterar meddelande.

  1. Ursprungskontroll: Validerar sändarens signatur enligt XHE specifikation.

  2. Dekrypterar meddelande

    • Ursprungskontroll meddelande: Genom kontroll mot SMP(CertPub) kan mottagaren kontrollera att sändarens identitet är korrekt (Organisations-id)

  3. Kvittering sker när meddelandet är validerat (Se B2) och har nått mottagande organisations meddelandetjänst.

    • Kvitteringsmeddelanden skall endast signeras (ej krypteras)

  4. Kvittering sker genom att meddelandetjänsten skickar ett kvitteringsmeddelande meddelande till avsändaren.

Observera att kvittensmeddelande skall skapas enligt DIGGs specifikation Meddelandekvittens (R7).

Överföring till mottagande organisations meddelandetjänst är nu garanterad.

Specifikationer:

  • Meddelandespecifikation: Meddelandekvittens (Se R7)

    • för utformning av meddelandekvittens

  • Certifikatspublicering - REST-bindning till SMP (Se R10)

  • SDK Specifikation Validering, felhantering och kvittens (Se B2)

    • för tillämpning av SDKs regelverk

7.Meddelandestatus

Organisation A

Meddelandekvittens mottages

 

 

Div | style = page-break-before: always

 

 

2.2  AS4 och XHE-profilering

Avsnittet beskriver vilken information som skall anges i AS4 och XHE för denna meddelandetyp (dokumenttyp).

  • Överföring av meddelanden sker enligt Transportprofil AS4 (Se R9).

  • Meddelanden paketeras enligt Kuverteringsprofil XHE (R8) och Kodlistor (R11)

Följande anpassning skall göras för SDK Meddelande

2.2.1   Transportprofilering med AS4

Konfigurering

AS4

Konfigurering

AS4

Dokumenttyp

 

Messaging

  • UserMessage

    • CollaborationInfo.action

Värde: busdox-docid-qns::urn:riv:infrastructure:messaging:MessageWithAttachments:3::messagePayload##3.0::tm-base-ext-sigenc

<Action>busdox-docid-qns::urn:riv:infrastructure:messaging:MessageWithAttachments:3::messagePayload##3.0::tm-base-ext-sigenc</Action>

Service (Process)

Messaging

  • UserMessage

    • CollaborationInfo.service

Type = urn:fdc:digg.se:edelivery:process

Värde = bdx:noprocess

<Service type="urn:fdc:digg.se:edelivery:process">bdx:noprocess</Service>

 

2.2.3 Meddelandekuvertering med XHE

SDK Meddelanden skall kuverteras i enlighet med DIGGs XHE specifikation

Konfigurering

XHE

Konfigurering

XHE

  • Unik identifierare

    • ID

  • Datum

    • CreationDateTime

Unikt identifierare av meddelandet/nyttolast.

  • ID: Unik identifierare. Ska vara samma som för nyttolasten

  • CreationDateTime: Datum när XHE skapadess. Kan vara samma som för nyttolasten.

 

<XHEVersionID>1.0</XHEVersionID> <xha:Header> <ID>862693f7-53d4-4d96-b35c-470055710092</ID> <CreationDateTime>2019-08-15T17:52:58.1Z</CreationDateTime> .. <xha:Header>

invariant | In $path, Timestamp should match pattern "YYYY-MM-DD'T'hh:mm:ss.s'Z'" but was <value-of select="."/>.

  • Avsändare

    • FromParty

  • Mottagare

    • ToParty

FromParty.PartyIdentification

  • Sändande användaroganisation (Organisations-id)

    • SKA vara samma som AS4 originalSender

    • SKA vara samma som MessageType.MessageHeaderType.SenderType

ToParty.PartyIdentification

  • Mottagande användarroganisation (Organisations-id)

    • SKA vara samma som AS4 finalRecipient

    • SKA vara samma som MessageType.MessageHeaderType.RecipientType

 

Meddelandets struktur

Payloads.Payload.DocumentTypeCode

  • SKA motsvara rotelementet dvs “Q{urn:riv:infrastructure:messaging:MessageWithAttachments:3}messagePayload”

Payloads.Payload.ContentTypeCode

  • SKA sättas till “application/xml“

Funktionsadress (egen identifierare)

Payloads.Payload.HandlingServiceID

Nyttolastens funktionsadress, kan används för att underlätta meddelandehantering i meddelandetjänst/meddelandeväxel.

SDK Meddelande och Meddelandekvittens (OBS! Meddelandekvittens är ett separat meddelande som har en egen specifikation. Se R7 Meddelandespecifikation: Meddelandekvittensavser):

  • Mottagarens Id för att identifiera funktion/enheter.

    • SKA vara samma som attention.subOrganization.organizationId.extension

  • SKA även sättas i XHE kuvert på kvittensmeddelandet för detta meddelande.

Meddelanden kvitteras enligt DIGGs specifikation meddelandekvittens. Se R7.

Kvittenskod: REJECTED

Orsakskod: BV

Detaljkod: not-found

Detaljtext: Wrong or unknown xha:HandlingServiceID

 

3       Meddelandemodeller

3.1       Övergripande beskrivning

SDK Innehållsspecifikation definierar metadata samt innehållet (nyttolast) för SDK-meddelanden som skickas mellan anslutna användarorganisationer.

Div | style = page-break-before: always

 

 

Lucidchart Diagrams

 

Div | style = page-break-before: always

 

3.2       Meddelandestruktur - MessageType

Samtliga fält skall hanteras och valideras av komponenterna Meddelandetjänst (MT) och Meddelandeklient/Verksamhetssystem (MK).

Bilden illustrerar hur SDK Innehållsspecifikation är strukturerad.

 

SDK meddelande exempel:


3.2  MessagePayloadType

MessagePayloadType utgör meddelandets container.

3.2.1  MessageType

MessageType utgör meddelandet. Typen innehåller metadata samt meddelande och dess bilagor.

Attribut

typ

Beskrivning

Kardinalitet

Attribut

typ

Beskrivning

Kardinalitet

../message

(MessageType)

MessageType

 

 

messageHeader

MessageHeaderType

Bärare av metadata

1..1

messageBody

MessageBodyType

Bärare av innehåll (text, bilaga)

1..1

3.2.2 MessageHeaderType

Används för meddelande-id och adresseringsinformation

Struktur

  • MessageType

    • MessageHeaderType 1..1

Exempel:

 

Attribut

Typ

Beskrivning

Kardina-litet

Attribut

Typ

Beskrivning

Kardina-litet

../messageHeader

(MessageHeaderType)

 

 

 

creationDateTime

dateTime

Tidsstämpel för när meddelandet skapades. Tidszon UTC skall användas.

T.ex. 2018-09-12T15:06:00Z

1..1

messageId

String

Unik identifierare (UUID) av meddelande.

  • Meddelande-id (messageid) SKA vara samma som XHE.ID

Ska följa RFC4122. Se ​

1..1

conversationId

String

Skapas av sändande system. Unik identifierare (UUID).

Notera att även AS4 eb:CollaborationInfo.ConversationId SKA sättas till samma värde som ConversationId.

“ConversationId” används för att koppla meddelanden i en konversation. Ett “ConversationId“ kan återanvändas i meddelandeutbyte mellan olika mottagare. T.ex. om sändaren vill skicka samma meddelande till flera mottagare.

Vid ny konversation/nytt meddelande:

  • Samma värde används som för messageId eller ett nytt id skapas

Besvara meddelade:

  • ConversationId sätts till samma värde som i meddelandet som besvaras (ConversationId återanvänds).

Komplettera meddelande

  • ConversationId sätts till samma värde som i meddelandet som kompletteras (ConversationId återanvänds).

Meddelandeklient(MK) skall hantera värdet.

1..1

refToMessageId

String

Används inte för meddelanden som inte är svar på annat meddelande.

RefToMessageId sätts av sändande system när ett meddelande besvaras. RefToMessageId ska sättas till messageId för meddelandet som besvaras/kompletteras.

Ger stöd för att se ordningsföljd i konversationstrådar, samt att koppla samman meddelandekvittenser med meddelandet.

  • Om ett värde skickas skall det valideras och hanteras i klient.

  • Meddelandeklient(MK) skall hantera ordningsföljd mellan meddelanden baserat på värdet.

0..1

label

String

Meddelandets rubrik. Max 256 tecken.

  • Meddelandeklient(MK) skall hantera meddelandets rubrik

1..1

confidentiality

 

Boolean

Kommunicerar sändande organisations sekretessbedömning. Syftet med markeringen är att upplysa mottagande organisation om att meddelandet innehåller sekretessbelagd information och/eller känsliga personuppgifter.

Meddelandeklient(MK) skall hantera och synliggöra fältet.

  • True - omfattas av sekretess

  • False - omfattas ej av sekretess

1..1

generatingSystem

IIType

Identifierare för systemet som skapade/genererade meddelandet. Id kan användas för felsökning/support.

Regelverk IIType:

  • root = kodverk för identifierare

    • Identifierare är oreglerad

  • extension = id.

0..1

recipient

recipientType

Bärare av metadata för mottagande organisation

1..1

sender

senderType

Bärare av metadata för sändande organisation

1..1

3.2.2.1 RecipientType

Innehåller innehåller information om mottagande organisation.

Struktur

  • MessageType

    • MessageHeaderType 1..

      • RecipientType 1..1

Exempel:

 

Attribut

Typ

Beskrivning

Kardina-litet

Attribut

Typ

Beskrivning

Kardina-litet

../recipient

(RecipientType)

 

 

 

recipientId

IIType

Mottagande organisation (organisations-id).

Tillämpas enligt specifikation.

  • Identifierare av organisation SKA vara samma värde som

    • AS4 header:

      • Messaging

        • UserMessage

          • MessageProperties

            • finalRecipient

    • XHE:

      • ToParty.PartyIdentification

Regelverk IIType:

  • root = kodverk för identifierare

    • Använd: iso6523-actorid-upis

  • extension = “0203:” + organisations-id i form av domännamn.

    • Ex: 0203:​

  • Värdet i extension SKALL valideras programmatiskt i meddelandetjänst för att säkerställa korrekt adressering. Täcks inte av schema/schematron. 

1..1

label

String

Tillämpas enligt specifikation. Organisationens namn. Max 256 tecken.

  • Mappas mot adressbokens attribut för organisationsnamn (organizations "name")

  • Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

0..1

attention

attentionDataType

Bärare av metadata för funktionsadress och refererad person. Se avsnitt "3.3.2.3 AttentionDataType" för detaljerad information.

1..1

3.2.2.2 SenderType

Innehåller information om sändande organisation.

Struktur

  • MessageType

    • MessageHeaderType 1..1
      SenderType 1..1

Exempel:

 

Attribut

Typ

Beskrivning

Kardi-nalitet

Attribut

Typ

Beskrivning

Kardi-nalitet

../sender

(SenderType)

 

 

 

senderId

IIType

Sändande organisation.

Tillämpas enligt specifikation.

  • Identifierare av organisation SKA vara samma värde som

    • AS4 header:

      • Messaging

        • UserMessage

          • MessageProperties

            • originalSender

    • XHE

      • FromParty.PartyIdentification

  • Kontroll av avsändare (gäller vid tillämpning av organisatonsidentifierare iso6523:0203)

    • SKALL vara samma toppdomän i “PartyInfo.From.PartyId” och “MessageProperties Property name="originalSender

    • SKALL kontrollera mot SMP att originalSender är registrerad i federationen (ParticipantIdentifier)

Regelverk IIType:

  • root = kodverk för identifierare

    • Använd: iso6523-actorid-upis

  • extension = “0203:” + organisations-id i form av domännamn.

    • Ex: 0203:​

Validering:

  • Värdet i extension SKA valideras programmatiskt i meddelandetjänst för att säkerställa korrekt adressering. Täcks inte av schema/schematron. 

  • Meddelandets XHE signatur SKA valideras mot DIGGs SMP (CertPub) tjänst.

    • Signaturen SKA motsvara Organisations-id registrerad i Certifikatspubliceringstjänst (CertPub) tjänst.

 

1..1

label

String

Tillämpas enligt specifikation. Max 256 tecken

  • Mappas mot adressbokens attribut för organisationsnamn (t.ex.organizationalUnitName)

  • Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

0..1

attention

attentionDataType

Bärare av metadata för funktionsadress och refererad person. Se avsnitt "3.3.2.3 AttentionDataType" för detaljerad information.

1..1

3.2.2.3 AttentionDataType

Används för att adressera funktion/enhet och referera person (Sändare/mottagare).

Struktur

  • MessageType

    • MessageHeaderType 1..1

      • SenderType/RecipientType 1..1

        • AttentionType 0..1

Exempel:

 

Attribut

Typ

Beskrivning

Kardi-nalitet

Attribut

Typ

Beskrivning

Kardi-nalitet

../attention (AttentionDataType)

 

 

 

../attention/person/PersonId (AttentionPersonType)

AttentionPersonType

identifierare för refererad person (sender eller recipient). Attributet utelämnas om det saknas en unik identifierare.

Regelverk IIType:

  • root = kodverk för identifierare (användarorganisationens identifierare)

    • Exempel:.

      • Personnummer: 1.2.752.129.2.1.3.1 

      • Hsa-id person: 1.2.752.29.6.2.1

      • E-post: 0.9.2342.19200300.100.1.3

      • Övrig "slask" oid: 1.2.752.129.2.1.2.1

  • extension = personal-id.

    • Ex: SE2321000016-nnnnn

Övrigt

  • Det finns idag inga krav på att endast mottagande PersonId får ta del av meddelandet. Adressering får endast ske på funktionsnivå.

    • PersonId ingår ej i gemensam adressbok

  • Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

0..*

../attention/person/label

String

Refererad personen fullständiga namn (fullname). Max 256 tecken

T.ex. Karin Svensson

  • Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

0..1

../attention/subOrganization

(SubOrganizationType)

SubOrganizationType

Funktion/Enhet

1..1

../attention/subOrganization/organizationId

IIType

Id för att identifiera funktion/enheter.

  • Hämtas från SDK adressbok "identifier"

Regelverk IIType:

  • root = urn:riv:infrastructure:messaging:functionalAddress

  • extension = Identifierare för funktionsbrevlåda 

    • Ex(hämtas från adressboken): SE2321000016-nnnnn

1..1

../attention/subOrganization/label

String

Funktion/enhetens namn. Max 256 tecken

T.ex. Socialtjänsten i Håbo

  • Hämtas från SDK adressbok

Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

 

0..1

../attention/reference

(ReferenceType)

 

 

0..*

../attention/reference/referenceId

IIType

Referens-id. T.ex. ärende-id eller diarienummer eller personnummer. Referens-id underlättar för sändare och mottagare att koppla meddelandet till lokala ärenden/handlingar eller en specifik invånare/patient. Max 256 tecken.

Regelverk IIType:

  • root = kodverk för identifierare (organisationens interna eller gemensam identifierare)

    • T.ex.

      • Diarienummer: dnr

      • GLN: 1.3.88

      • Svenskt personnummer(PNR): 1.2.752.129.2.1.3.1

      • Samordningsnummer(SNR): 1.2.752.129.2.1.3.3

      • Nationell reservidentitet(NRID): 1.2.752.74.9.1

      • Övriga/okänd: unregistred

  • extension = id

    • Ex: 7362220000318

Om referens-id används för Sender

  • Sändaren bifogar sitt referens-id t.ex. diarienummer.

    • Mottagaren skall returnera sändarens referens-id vid svar.

Om referens-id används för recipient

  • Mottagarens referens-id anges. Detta id kan hämtas från föregående meddelande dvs det meddelandet som besvaras.

Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

1..1

../attention/reference/label

String

Namn/etikett på internt referens-id.

Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

0..1

3.2.3 MessageBodyType

Innehåller nyttolasten i form av meddelandetext och bilagor.

Struktur

  • MessageType

    • MessageBodyType 1..1

Exempel:

 

Attribut

Typ

Beskrivning

Kardi-nalitet

Attribut

Typ

Beskrivning

Kardi-nalitet

../messageBody

(MessageBodyType)

 

 

 

./Documents

DigitalDocumentType

Bärare av textmeddelande och bilaga.

1..*

3.2.3.1 DigitalDocumentType

Innehåller en eller flera dokument (fritext eller bilaga).

Struktur

  • MessageType

    • MessageBodyType 1..1

      • DigitalDocumentType 1..*

Exempel:

 

Attribut

Typ

Beskrivning

Kardi-nalitet

Attribut

Typ

Beskrivning

Kardi-nalitet

../documents

(DigitalDocumentType)

 

Ett meddelande (documents) SKA innehålla minst ett textmeddelande (contentext) och eller en bifogad fil(contentFiles).

 

documentID

String

Identifierare av dokument. Skapas av sändaren.

1..1

documentName

String

Dokumentets namn.

Om ett värde skickas skall det hanteras i klient.

0..1

Index

String

Sorteringsordning. Om flera documents(DigitalDocumentType) skickas skall sorteringsordning sättas. Detta för att underlätta informationsutbyte då presentationsordning. Siffror skall användas. 1 representerar den första.

0..1

../contentFiles

contentAsBase64Type

Bärare av filer

0..*

../contentText

contentAsTextType

Bärare av textmeddelande

0..*

3.2.3.2 ContentAsTextType

Fritextmeddelande.

Struktur

  • MessageType

    • MessageBodyType 1..1

      • DigitalDocumentType 1..*

        • contentAsTextType 0..*

Exempel:

 

Attribut

Typ

Beskrivning

Kardi-nalitet

Attribut

Typ

Beskrivning

Kardi-nalitet

../contentText

(ContentAsText)

 

 

 

characterSequence

1..1

Fritext (UTF-8).

Text kan formateras med följande MarkDown koder enligt RFC 7763.

Headers:

Grafiskt gränssnitt i meddelandeklient (verksamhetssystem) tjänst skall rendera ovanstående MarkDown-koder.

Om ett värde skickas skall Meddelandeklient(MK) hantera värdet.

Meddelandet inklusive bifogade filer får ej överstiga 30 MB.

1..1

3.2.3.3 ContentAsBase64

Base64-kodad bilaga.

Struktur

  • MessageType

    • MessageBodyType 1..1

      • DigitalDocumentType 0..*

        • contentAsBase64Type 0..*

Exempel:

 

Attribut

Typ

Beskrivning

Kardi-nalitet

Attribut

Typ

Beskrivning

Kardi-nalitet

../ContentFiles (ContentAsBase64Type)

 

Bifogas flera element skall dessa hanteras enligt valfri sortering.

 

fileName

String

Bilagans filnamn. Filnamnet bör visas i meddelandetjänsten.

1..1

contentType

String

Typ av bilaga som överförs/bifogas. MIME-typ för bifogad fil skall anges.

  • Alla användarorganisationer ska stödja filtypen PDF.

    • Rekommendation för arkivbeständig PDF-format är

      • PDF-A1

      • PDF-A2

  • Utöver PDF ansvarar användarorganisationen själv för vilka ytterligare filtyper som ska kunna skickas och tas emot.

Filtyper som inte stöds av mottagaren skall kvitteras(REJECTED) enligt följande.

1..1

content

String

Base64-kodad bilaga (UTF-8). Den binära informationen skall kodas med base64 enligt RFC 4648.

Meddelandet inklusive bifogade filer får ej överstiga 30 MB.

1..1

 

4 Innehållsvalidering

Innehållsvalidering finns för att i så stor mån som möjligt säkerställa problemfri kommunikation mellan samtliga parter i SDK federationen. Schema och Schematron bilagorna till detta dokument realiserar dom gemensamma valideringsregler som finns. Valideringsreglerna är framtagna utifrån dom regler som är specificerat i meddelandemodeller.

För att säkerställa transporten av SDK-meddelande skall Meddelandetjänst validera meddelande.

  • SDK-Meddelande skall valideras med bifogade schema och schematron filer.

  • SDK-Meddelande skall valideras på utgående försändelse.

  • SDK-Meddelande skall valideras på inkommande meddelanden.

    • Avsändaren SKA valideras

4.1 Schematronregler

Schematron är ett regelbaserat valideringsspråk för att göra påståenden om förekomsten eller frånvaron av mönster i XML-träd. Schematron reglerna är en utökning av schemat och validerar meddelandeinnehållet utifrån innehållsspecifikation.

4.3 Felhantering och kvittens

Vid inkommande meddelande skall meddelandetjänst hantera valideringsfel genom att i retur skicka ett kvittensmeddelande enligt DIGGs specifikation DIGG eDelivery – Meddelandespecifikation: Meddelandekvittens (Se R7).

4.4 Exempel på valideringskoder - Meddelandetjänst (Validering av mottaget meddelande)

Tabellen avser exempel på händelser som primärt behöver hanteras av meddelandetjänst (meddelandelagret).

  • Aktör skapar kvittensmeddelandet och felhanteringsmeddelandet enligt DIGG eDelivery – Meddelandespecifikation: Meddelandekvittens (R7).

1

2

3

4

5

6

7

8

9

10

11

12

Händelse (exempel)

Kvittenskod

Orsakskod

Detaljkod

Kommentar

Händelse (exempel)

Kvittenskod

Orsakskod

Detaljkod

Kommentar

1

Meddelandet mottaget och validerat utan avvikelser

ACCEPTED

-

-

Meddelandet mottaget, kvitterat och validerat utan avvikelser.

2

Meddelandekuvertets struktur och i förekommande fall innehåll kodverksregler etc.

REJECTED

SV

structure

Meddelandet är strukturellt (xsd) felaktigt eller är korrupt.

  • Felaktig datatyper etc

3

Kontroll mot skadlig kod i nyttolast.

REJECTED

BV

forbidden

Felkod REJECTED skall genereras av mottagaren i de fall det är möjligt. En incident behöver skapas om skadlig kod upptäcks.

Skalskydd i form av antivirussystem kan förhindra filhantering genom t.ex. att sätta meddelande i "karantän".

4

Storleksvalidering (storlek)

REJECTED

BV

too-long

Storleksöverträdelse över fastställd storlek (f.n. > 30mb för hela meddelandet) skall generera ett stoppande fel (REJECTED)

5

Logisk schema validering (schematron)

REJECTED

BV

invariant

Logiska regler eller kodverk följs ej (schematron)

  • T.ex. typning är felaktig eller saknas.

6

MessageId är ej unikt

REJECTED

BV

duplicate

multiple-matches

 

7

refToMessageId finns ej

ACCEPTED

-

-

 Meddelandet kvitteras med ACCEPTED.

8

Filtyp (SDK Innehållsspecifikation - contentAsBase64)

REJECTED

BV

Not-supported

 

Meddelandet skall ej kvitteras, felkod REJECTED. Filtyp stödjs ej.

9

Funktionsadress finns ej

REJECTED

BV

Not-found

Funktionsadress finns ej eller är felaktigt

10

referens till meddelande (refToMessageId) som är markerat som REJECTED.

REJECTED

BV

not-supported

Meddelandet kan ej levereras och kvitteras pga att meddelandet är marketat som felaktigt (t.ex. pga sändarens time-out).

11

Felaktig avsändare - Sändarens XHE signatur

REJECTED

SIG

security

Avsändarinformation (organisations-id) är felaktig eller matchar ej XHE-signatur.

12

Felaktig avsändare - Angiven avsändare felaktig

REJECTED

BV

security

Avsändarinformation är felaktig eller matchar ej.

  • Kvittens returneras med detaljer om originalSender inte matchar med avsändande accesspunkts konfiguration.

  • Vid scenariot att avsändande organisation inte finns registrerad i SMP bör inte kvittens skickas eftersom kvittensen inte kommer levereras msspunkt.