NEF - Specifikation för XML-meddelande applikationskvittens makuleringsbegäran human
Inledning
Syfte
Syftet med denna sida är att beskriva den struktur och det format informationen ska hålla för att mottagaren ska kunna tolka information i ett XML-meddelande på ett korrekt sätt.
Målgrupp
Målgrupp för denna sida är vårdgivare med IT-system som nyttjar E-hälsomyndighetens tjänster samt systemleverantör som utvecklar eller förvaltar dessa IT-system.
Informationsnivå
Teknisk nivå.
Bakgrund
Detta dokument har tagits fram i ett nationellt samarbete med representanter från regioner, Sveriges Apoteksförening, Distriktsveterinärerna och Apotekens Service (numera E-hälsomyndigheten). Förvaltningen av dokumentet ligger hos E-hälsomyndigheten.
Övergripande struktur
Förklaringar
I denna specifikation förekommer ett antal förkortningar och koder för att beskriva förekomst och datatyper för element och attribut i XML-meddelandet.
Förkortningar
Förekomst = antal gånger ett element eller attribut ska/får förekomma enligt nedan:
[1] = Måste förekomma 1 gång (Obligatoriskt element eller attribut)
[0..1] = Förekommer ingen eller högst 1 gång (Frivilligt element eller attribut)
[0..*] = Förekommer ingen eller många gånger (Frivilligt element eller attribut)
[1..*] = Repeteras valfritt antal gånger. Måste dock förekomma minst 1 gång (Obligatoriskt element eller attribut)
{a,b,..} = Uppräkning av giltiga värden i ett datafält av uppräkningsbar typ.
Typ = typ av element eller attribut
A anger att det är ett attribut som avses och inte ett element.
Class motsvaras i ett XML-schema av en complexType.
Nedanstående typer motsvarar i ett XML-schema av simpleType.
S = String = Alfanumerisk teckensträng (bokstäver och siffror tillåtna)
V = Code Value = Kodat värde (numerisk), där betydelsen av varje kod ska framgå av tabell. (Exempel: 1 = Förskrivning)
I = Integer = Heltal
E = Enumerated = Uppräkningsbar typ (alfanumerisk), där tabell ska ange tillåtna värden med förklaringar. (Exempel: VEN)
Generella regler för meddelandestruktur
Om ett komplext element inte innehåller några obligatoriska element ska det komplexa elementet inte vara obligatoriskt. Denna regel tillämpas i specifikationen.
Om ett element inte är obligatorisk och inte innehåller data ska det inte finnas med i meddelandet. Denna regel är nödvändig att följa för att det ska vara möjligt att kontrollera innehållet i ett meddelande. För att kunna göra detta måste det vara möjligt att avgöra om information är avsedd att finnas i ett visst elementfält.
Obligatoriska element får inte lämnas tomma. Detta kontrolleras vid mottagning.
Tillåtna tecken i element- och attributfält
XML-meddelanden skall följa XML 1.0 .
Endast kodning enligt UTF-8 tillåts. Detta ska anges i en XML-deklaration.
Tillåtna tecken i attribut och elementfält är en delmängd av UTF-8 och specificeras i Tillåtna tecken i element och attributdata.
XML-reserverade tecken
XML-reserverade tecken ska ersättas enligt Extensible Markup Language (XML) 1.0 (Fourth Edition) 2.4 Character Data and Markup"(Se www.w3c.org). XML-reserverade tecken finns listade i Tillåtna tecken i element och attributdata.
CDATA sektioner tillåts inte.
Ändringslogg
Äldre relevanta kommentarer i ändringsloggen är gråmarkerade.
XML-Schema definitioner
XML-specifikationer och koppling till respektive XML-schema finns specificerade i NEF Implementationsguide. XML-specifikationer kan uppdateras separat utan att ett nytt XML-schema tas fram.
1 Interchange -Rootelement
Interchange |
Rootelement |
Class |
1 |
|
|
|
-MessageVersion |
Version på meddelandet |
S |
1 |
Char(4) |
Exempel <MessageVersion>v1.0</ MessageVersion> |
|
-MessageRoutingAddress |
Meddelandehuvud, transportinformation. |
Class |
1 |
|
Se nedan under rubriken
MessageRoutingAddress |
|
-ApplicationAcknowledgeMessage |
Aperakmeddelande |
Class |
1 |
|
Se nedan under rubriken
ApplicationAcknowledgeMessage |
|
2 MessageRoutingAddress - Transportinformation
Tillämpning av MessageRoutingAdress enligt följande:
MessageRoutingAddress |
Meddelandehuvud, transportinformation |
Class |
1 |
|
Används som meddelandehuvud för makulering och applikationskvittenser för makulering. |
|
- Recipient |
Organisationsnummer alternativt EAN/GLN-kod, för mottagande system |
S |
1 |
Char(35) |
|
2013-09-26: förtydligat att det är mottagande system som avses. GLN tillagt. |
- RecipientQualifier |
Kodkvalificerare för mottagare |
E |
1 |
Char(4)
{14, 30, ZZZ} |
Kvalificerare för mottagare.
14 = EAN/GLN
30 = Organisationsnummer
ZZZ = Avtalad struktur mellan parterna. |
2013-09-26: förtydligat att det är mottagande system som avses. GLN tillagt. |
- SubRecipient |
Systemidentitet för mottagande system |
S |
1 |
Char(20) |
|
2013-09-26: förtydligat att det är mottagande system som avses. |
- SubRecipientInfo |
Ytterligare information om systemet som mottager meddelandet |
Class |
1 |
|
|
2013-09-26: förtydligat att det är mottagande system som avses. |
-- SystemName |
Namn på system |
S |
1 |
Char(20) |
|
|
-- SystemVersion |
Version på system |
S |
1 |
Char(20) |
|
|
-- ModuleVersion |
Version på eventuell använd modul i system |
S |
0..1 |
Char(20) |
Används för att identifiera eventuell modul som används. |
|
-- SystemInfo |
Information från system |
S |
0..1 |
Char(100) |
Kan användas för att skicka godtycklig information som återfinns i aperaken. Det kan till exempel handla om ytterligare routinginformation |
|
- InterchangeDate |
Utväxlingsdatum |
S |
1 |
Char(10) |
ccyy-mm-dd
Datum då meddelandet skickas till mottagare. |
|
- InterchangeTime |
Utväxlingstidpunkt |
S |
1 |
Char(8) |
hh:mm:ss
Tidpunkt då meddelandet skickas till mottagare. |
|
- InterchangeRef |
Överföringsreferens. Unik referens för överföringen given av avsändaren |
S |
1 |
Char(41) |
Idtyp anges i attributet idtype. |
|
-- idtype |
Typ av id. |
A,E |
1 |
Char(14) {GUID, UUID} |
Exempel: <InterchangeRef idtype="UUID"> 0af25f00-387d-11d3-9d31-00a0cc39621a </InterchangeRef> |
2014-09-29: Exemplet har uppdaterats. |
3 ApplicationAcknowledgeMessage -Aperakmeddelande
ApplicationAcknowledgeMessage |
Aperakmeddelande |
Class |
1 |
|
|
|
- ReferedObjectInfo |
Information om refererat meddelandeobjekt i kvittensen. Klass som innehåller referens till vilket makuleringsbegäransId som svaret avser. |
Class |
1 |
|
Se under rubrik 3.1 |
|
- StatusInformation |
StatusInformation |
Class |
1 |
|
Se under rubrik 3.2 |
|
- MessageStatus |
Övergripande status på meddelandet.
0 = Accepterat utan upptäckta fel
1 = Accepterat med varningar
2 = Förkastat, kan ej hanteras av mottagaren. |
V |
1 |
|
Se under rubrik 3.3 |
|
- StatusSetInformation |
Status Information per makuleringssamling |
Class |
1 |
|
Se under rubrik 3.4 |
|
3.1 ReferedObjectInfo
ReferedObjectInfo |
Information om refererat meddelandeobjekt i kvittensen. Klass som innehåller referens till vilket makuleringsbegäransId som svaret avser. |
Class |
1 |
|
Här kan inkluderas information som det är relevant att eka tillbaka från det ursprungliga meddelandet (innanför kuvertet MessageRoutingAddress) |
|
-IdOfMessageBySender |
Makuleringsid på refererad objekt angivet av ursprunglig sändare av meddelandet. |
S |
1 |
Char(41) |
Idtyp anges i attributet idtype. |
|
-- idtype |
Typ av id. |
A,E |
1 |
Char(14) {GUID, UUID} |
Exempel : <IdOfMessageBySender idtype="UUID"> 0af25f00-387d-11d3-9d31-00a0cc39621a </IdOfMessageBySender> |
2014-09-29: Exemplet har uppdaterats. |
- IssueDateAndTimeOfMessage |
Tidpunkt för skapande av makuleringsmeddelande. |
S |
1 |
Char(20) |
ccyy-mm-ddThh:mm:ss. |
|
3.2 StatusInformation
StatusInformation |
StatusInformation |
Class |
1 |
|
|
|
- StatusCode |
Informationskod
Prefix på statuskoden.
01 nnn - XML validering,
02 nnn - validering av verksamhetsregler
Där nnn börjar på 001. |
V |
1 |
Char(5) |
Används för att identifiera Statusinformation för behandling, mm. För exempelvis support, drift. För att ange vilken typ av validering som fallerat läggs ett prefix på statuskoden. |
|
- Description |
Beskrivnings av kodens innebörd. |
S |
1 |
Char(254) |
|
|
3.3 MessageStatus
MessageStatus |
Övergripande status på meddelandet.
0 = Accepterat utan upptäckta fel
1 = Accepterat med varningar
2 = Förkastat, kan ej hanteras av mottagaren. |
V |
1 |
Char(1)
{0,1,2} |
1= Varningar förekommer inte i makuleringstjänsten. |
|
3.4 StatusSetInformation
StatusSetInformation |
Status Information per makuleringssamling |
Class |
1 |
|
|
|
-Cancellation |
Element som innehåller makulerings id och identitet per artikel samt svarskoder |
Class |
1 |
|
|
|
-- PrescriptionSetId |
Id på förskriven receptsamling som avses att makuleras / delmakuleras, dvs PrescriptionSetId
Identifierar en receptsamling som är en samling av förskrivna varor (kan innefatta mer än läkemedel - recept används i detta sammanhang för enkelhetens skull även för dessa förskrivna varor) till en patient vid ett visst tillfälle för ett visst syfte. |
S |
1 |
Char(41) |
Idtyp anges i attributet idtype. |
|
--- idtype |
Typ av id. Prescription id på refererat objekt angivet av ursprunglig sändare av meddelandet. |
A,E |
1 |
Char(14) {UUID, GUID} |
Exempel : <PrescriptionSetId idtype="GUID"> 0af25f00-387d-11d3-9d31-00a0cc39621a </PrescriptionSetId> |
2014-09-29: Exemplet har uppdaterats. |
-- PrescriptionItemDetails |
Receptinformation |
Class |
0..99 |
|
Se under rubrik 3.4.1 |
|
3.4.1 PrescriptionItemDetails
PrescriptionItemDetails |
|
Class |
0..99 |
|
Maximalt 99 receptrader. Kan makuleras i ett makuleringsmeddelande.
Vid schemavalideringsfel returneras inte denna klass. |
|
- PrescriptionItemId |
ReceptradId |
S |
1 |
Char(4) |
Identifierar en receptrad inom ett recept.
Exempel : om det tredje receptet innehåller två typer av förpackningar skrivs dessa som två PrescriptionItemDetailsrader : PrescriptionItemId=3-1. och den andra
PrescriptionItemId=3-2 |
2016-04-19:
Tagit bort: OBS makuleringstjänsten returnerar alltid ReceptradId på formatet (*-*). |
-Item |
Elementklass som definierar recept artikel samt responskoder från Receptdepå human |
Class |
1 |
|
Se under rubrik 3.4.1.1 |
2013-09-26: förtydligat Receptdepå human |
3.4.1.1 Item
Item |
Elementklass som definierar recept artikel samt responskoder från Receptdepå human |
Class |
1 |
|
Maximalt 99 för att 99 receptrader kan förskrivas i en receptsamling. |
2013-09-26: förtydligat Receptdepå human |
-ResponseCode |
Exempel på svarskoder med text:
1. Informationsrutan ej ifylld. Samtycke saknas
2. Förpackningsenhet avviker från receptets förpackningsenhet (flerval)
3. Makulering utförd - kvarstående uttag makulerade
4. Makulering ej utförd - pga omvandlat till pappersrecept eller slutexpedierat etc
5. Makulering ej utförd - e-receptet är redan makulerat
6. Makulering ej utförd - e-receptets giltighetstid är utgången
7. Makulering ej utförd - tekniskt fel försök igen
8. Makulering ej utförd - ogiltig receptstatus
9. Makulering utförd |
S |
1 |
Char(4)
{1-9} |
|
2011-09-19: Byte av datatyp till char (4)
Förtydligat värdemängd
Byte av Typ till S |
- CauseCode |
Makuleringsorsak
Orsaken rapporteras per läkemedel
Orsak 1=01
Orsak 2=02
Orsak 3=03
Orsak 4=04 |
E |
0..1 |
Char(2)
{01,02,03,04} |
Vårdsystem använder sig av följande orsakskoder då e-recept ska makuleras
1: Fel patient. 2: Fel läkemedel/vara/ styrka/dosering/ändamål. Patienten informerad 3: Utsatt läkemedel/Inaktuell medicinering. Patienten informerad 4: Annan orsak. Patienten informerad |
2011-09-19: Byte av datatyp till Char(2)
2013-09-26: Dosering tillagd i orsakskod 2 |
- RequestedBy |
På begäran av
01=Patienten
02=Förskrivaren |
E |
0..1 |
Char(2)
{01,02} |
|
2011-09-19: Byte av datatyp till Char(2) |
-Time |
Tidpunkt i Receptdepå human när makuleringen utfördes på artikeln |
T |
0..1 |
Char(20) |
ccyy-mm-ddTtt:mm.ss |
2013-09-26: Förtydligat Receptdepå human |
- Response |
Informationstext till ResponseCode |
S |
1 |
Char(254) |
|
|
-Cause |
Fritextfält för orsak |
S |
0..1 |
Char(80) |
Om orsak 4 är vald, CauseCode="04" är "Cause " obligatorisk |
|
-CancellatorOfItem |
Vem som utfört makuleringen |
Class |
0..1 |
|
Se under rubrik 3.4.1.2 |
|
3.4.1.2 CancellatorOfItem
CancellatorOfItem |
Vem som utfört makuleringen |
Class |
0..1 |
|
|
|
-Idscheme |
Kodtyp arbetsplatskod eller apotekets GLN -kod |
A |
1 |
{VEN, EAN} |
|
|
-Value |
Kodvärde för vårdande enhet |
S |
1 |
Char(17) |
|
|
-Name |
Arbetsplatsnamn returneras i klartext. Om farmaceut makulerat är det apoteksnamn som returneras. |
S |
0..1 |
Char(40) |
|
2015-09-15 Förtydligande av beskrivningen. |
-City |
Arpetsplatsort retunrneras i klartext. Om farmaceut makulerat är det apoteksort som returneras. |
S |
0..1 |
Char(40) |
|
2015-09-15 Förtydligande av beskrivningen.
|
-Cancellator |
Namn på makulerare, förskrivare eller farmaceuts Signum |
S |
1 |
Char(35) |
|
|
Versionshistorik
2.0 |
2013-09-25
|
Monica Rosén
|
Specifikationen inlagd i ny mall och har lyfts upp till version 2.0 för att anpassas till nytt dokumenthanteringssystem. Översyn av layout och små textuella justeringar är gjorda.
Samverkansgruppen NEF med representanter från landstingen, Sveriges Apoteksförening, Distriktsveterinärerna och Apotekens Service har upphört. Apotekens Service uppdaterar och fastställer dokumentet.
Rubriken Ändringstyper har tagits bort, ändringar beskrivs i historiken sam t i ändringsloggen.
Koppling mellan XML-scheman och XSD-filer finns från och med nu i dokumentet NEF- Implementationsguide.
Äldre ändringar i ändringsloggen gråmarkeras och nya ändringar dateras från och med nu.
2, Förtydligat att kapitlet beskriver tillämpningen av MessageRoutingAdress och att det är mottagande system som avses. Recipient och RecipientQualifier: GLN tillagt
3.4.1 och 3.4.1.1: ersatt RR med Receptdepå human.
3.4.1.1, CauseCode, (rättar beskrivning av orsakskod 2) dosering tillagt. |
3.0 |
2014-09-30
|
Monica Rosén
|
Specifikationen har bytt namn till NEF - Specifikation XML-makuleringssvar (Aperak).
Apotekens Service har bytts ut mot eHälsomyndigheten i text och logga.
Tagit bort versionshistorik som är äldre än 3 år gammal.
2, 3.1 och 3.4, Idtype, Exempel har uppdaterats. |
|
|