Hantering av GUID och UUID

På denna sida beskrivs regler för hantering av UUID och GUID vid kommunikation gällande e-recept och makuleringar med tillhörande kvittenser.


1. Bakgrund

Sidan har tagits fram i ett nationellt samarbete med representanter från regionerna, Sveriges Apoteksförening och Apotekens Service (numera E-hälsomyndigheten). Förvaltningen av dokumentet ligger nu hos E-hälsomyndigheten.

Sidan beskriver regler för hantering av UUID/GUID vid kommunikation gällande e-recept och makuleringar med tillhörande kvittenser.

Att använda unika id har olika syften:

  • identifiering av receptmeddelande
  • identifiering av makuleringsmeddelande
  • hantering av tekniska dubbletter
  • loggning för support
  • referens till tjänster mot förskrivningsoriginal.

2. Beskrivning

En central fråga vid diskussion om identiteter är att det är en gemensam referens mellan olika system och verksamheter. I detta sammanhang sker en utväxling av identiteter mellan olika parter för användning i en process från förskrivning till eventuell expediering. Då användande av UUID till viss del skiljer sig mellan e-recept och makulering är beskrivningen uppdelad som en generell del kompletterad med en del för e-recept och en del för makulering.

2.1. Generellt

UUID och GUID finns på två olika nivåer i ett utväxlat meddelande, se övergripande bild nedan, 2.1.1 samt 2.1.2.

  • Meddelandehuvud (MessageRoutingAddress) som refererar till en överföring mellan tekniska system. På denna nivå används InterChangeRef som term för det unika id:t. InterchangeRef, kan om så önskas användas som identitet på själva överföringen. Om man inte har speciellt behov för denna identitet kan den sättas till samma som IdOfMessageBySender.
  • IdOfMessageBySender ska användas för att unikt identifiera själva meddelandet, det vill säga e-recept- alternativt makuleringsmeddelandet .
  • PrescriptionSetId är alltid receptsamlingens identitet oavsett meddelandetyp, det vill säga för makulering av den ursprungliga receptsamlingens id.

Matris över tillåtna värden i id

XML

e-recept

e-recept Aperak

Makulering

Makulering Aperak

Kommentar

InterchangeRef

Unikt id

Unikt id

Unikt id

Unikt id

Används vid viss typ av felsökning och spårbarhet

IdOfMessageBySender

Recept­meddelandets id

N/A

Makulering

Meddelandets id

Makulering

Meddelandets id

För e-recept kan denna identitet vara samma som PrescriptionSetId

PrescriptionSetId

Recept­samlingsid

Recept­samlingsid

Recept­samlingsid

Recept­samlingsid

Används vid felsökning och spårbarhet, framför allt hos E-hälsomyndig­heten


När NEF skapades använde många ett EDI-liknande kommunikationssätt (X400). Nuvarande implementering är endast gjord med hjälp av webservices. Detta har gjort regelverket för användning av InterchangeRef överflödig varför vi tonat ner betydelsen av identiteten i detta dokument. Standarden sätter inte heller några regler till hur den identiteten ska användas.

2.1.1. e-recept

 

Figur 1. E-receptmeddelande.

Receptmeddelande (NewPrescriptionMessage) som refererar till en receptsamling som utfärdats vid ett visst tillfälle av en förskrivare till en djurägare som underlag för expedition på ett apotek.

På denna nivå finns det två unika identiteter: IdOfMessageBySender och PrescriptionSetId.

IdOfMessageBySender är en identitet på övergripande nivå för NewPrescriptionMessage och kan ha samma värde som PrescriptionSetId.

PrescriptionSetId är identiteten på receptsamlingen. Den ska användas som referens i vårdsystem och Receptdepå human samt är den identitet som refereras i Aperaken.

2.1.2. Makulering

 

Figur 2. Makuleringsmeddelande.

Makuleringsmeddelande (PrescriptionCancellationMessage) refererar till ett förskrivningsoriginal som ska makuleras.

IdOfMessageBySender är identiteten på makuleringsbegäran och den identitet som returneras och identifierar svarsAperaken.

PrescriptionSetId är i detta fall tillsammans med radid identifikationen på det recept som ska makuleras.


3. Regelverk för tillämpning av UUID/GUID i NEF

Nedan följer regelverk för tillämpning av UUID/GUID i NEF med beaktande av de olika syftena för respektive id:nivå.

3.1. Verksamhetsnivå - referens till tjänster mot förskrivningsoriginal

KRAV Att minst logga PrescriptionSetId i samtliga inblandade system för support och spårbarhet.

För makulering är det IdOfMessageBySender som används som referens till en makuleringsbegäran.

    • Support
    • Spårning
    • Felsökning

3.2. Teknisk nivå - dubbletthantering

En dubblett på PrecriptionSetId för ett e-recept accepteras inte av mottagande system utan avvisas oavsett innehåll.


4. Unika id:n för XML-meddelanden (UUID/GUID)

KRAV

För e-recept ska en unik identifikation på receptsamlingsnivå användas. Detta unika id får aldrig återanvändas vid till exempel förnyelse, förlängning och så vidare.

Som ID är det beslutat att UUID och GUID ska användas enligt standard RFC 4122.

Standarden säger till exempel att formatet ska vara hexadecimala gemener i formatet xxxxxxxx-xxxx- Mxxx-Nxxx-xxxxxxxxxxxx, där N måste vara 8, 9, a, eller b, och M anger vilken version av UUID som används och kan vara 1-5.

För spårbarhetens skull är det en stark rekommendation att använda version 1, dvs M=1, som anger att UUID baseras på tid och MAC-adress.

RFC4122 kan bland annat hämtas från:http://www.faqs.org/rfcs/rfc4122.html

För e-recept gäller att alla dessa IDn kan vara inbördes unika eller vara samma om det är ett 1:1:1 förhållande mellan MessageRoutingAddress, GeneralPrescriptionMessageInformation och PrescriptionSet.



Versionshistorik

Version

Datum

Kommentar

1.02021-11-27Ny handbok vård- och apotekstjänster