Thuis
Contacten

    Hoofdpagina


Inhoudsopgave 1 Inleiding 7

Dovnload 5.47 Mb.

Inhoudsopgave 1 Inleiding 7



Pagina4/36
Datum25.10.2017
Grootte5.47 Mb.

Dovnload 5.47 Mb.
1   2   3   4   5   6   7   8   9   ...   36

HL7v3-communicatie – adresseren en routeren


Op de AORTA vormt de ZIM de spil voor alle communicatie. De ZIM biedt daarvoor verschillende interfaces aan. Zie [AORTA Arch] voor het overzicht. De ontwerpdocumenten [Ontw STU] en [Ontw OPV] beschrijven respectievelijk het versturen en het opvragen van patiëntgegevens.
      1. Routeren van berichten


De transmission wrapper bevat gegevens die de zendende en ontvangende applicatie identificeren. Een ontvangende applicatie (ZIM of XIS) dient altijd te controleren of een ontvangen bericht voor die applicatie bestemd was. De ZIM is de enige applicatie die geacht wordt om berichten naar andere applicaties te kunnen routeren. Een XIS wordt niet geacht om berichten te routeren, omdat het alleen berichten ontvangt die werkelijk voor de betreffende applicatie zijn bestemd.



  • Noot: Zie het Abstract Transport Specification, onderdeel van de HL7 versie 3 standaard voor een algemene beschrijving van architecturen die gebruik maken van applicaties zoals Bridges en Gateways.

Indien de transmission wrapper een identificatie van een andere applicatie bevat dan de applicatie die het bericht ontvangt, dan dient de ontvangende applicatie het bericht (indien mogelijk) te routeren aan of de uiteindelijke ontvanger, of een andere routerende applicatie.

Figuur 2 Het routeren van berichten en accept acknowledgements



Een voorbeeldscenario: Applicatie B ontvangt een bericht waarin als ontvanger de applicatie C is opgenomen. Een mogelijke reden is dat direct transport van A naar C om technische of andere redenen niet mogelijk of toegestaan is. Applicatie B detecteert dat het bericht voor C bedoeld is, en verwerkt de inhoud van het bericht niet zelf. Er zijn nu twee mogelijkheden:

  1. B kan het bericht naar C routeren. In dit geval stuurt applicatie B het oorspronkelijke bericht naar C. Indien C het bericht ontvangt, detecteert het dat het bericht voor zichzelf bedoeld is, en verwerkt het bericht.

  2. B kent het systeem C niet; of kan het bericht niet naar C routeren. In dit geval stuurt applicatie B een accept acknowledgement (ERROR) naar A om aan te geven dat het bericht niet gerouteerd kon worden.
    Het accept acknowledgement bericht bevat de volgende attribuutwaarden: Acknowledgement.typeCode = ‘CE’ (Error), AcknowledgementDetail.typeCode = ‘E’ (Error), AcknowledgementDetail.code = ‘RTUDEST’ (Routing error, unknown routing destination).





  • Noot: In bovenstaand scenario zijn bijvoorbeeld de volgende foutmeldingen mogelijkheden: (1) B kent systeem C niet (2) B kan de berichtsyntax niet verwerken en de bestemming van het bericht niet bepalen, en (3) C kan het bericht syntactisch niet verwerken, of het bericht is van een niet ondersteund interactietype. Een accept acknowledgement dient altijd teruggerouteerd te worden naar de oorspronkelijke afzender van het bericht.

Bij het routeren van berichten mag de inhoud daarvan niet gewijzigd worden door de routerende partij.
      1. Bundelen en routeren van antwoordberichten


Wanneer via de ZIM patiëntgegevens worden opgevraagd, dan wordt deze vraag aan nul of meer systemen gerouteerd ter beantwoording (zie het document [AORTA Arch] voor details).

De ZIM is het (virtuele) beantwoordende systeem en komt om deze reden voor als zendende applicatie in de HL7 Transmission Wrapper van zowel de batch als alle daarin opgenomen antwoordberichten.

Indien queryByParameter/responseModalityCode in het opvraagbericht de waarde “B” bevat, dan dient de ZIM de antwoordberichten te bundelen en als batch naar het vragende systeem te verzenden. Het algemene mechanisme ten aanzien van het bundelen van antwoordberichten wordt beschreven in hoofdstuk 11.

De ZIM is het (virtuele) beantwoordende systeem en hoewel het antwoorden afkomstig van meerdere applicaties bundelt dient het in haar communicatie met een opvragend GBX alle kenmerken van een normale vraag/antwoordsessie (zoals beschreven in hoofdstuk 11) na te bootsen.


      1. Tellers in opleverberichten


De volledige beschrijving van een vraag/antwoordsessie staat beschreven in hoofdstuk 11. De vraag/antwoordsessie is afgelopen zodra queryAck/resultRemainingQuantity de waarde “0” bevat.

De ZIM is het (virtuele) beantwoordende systeem en dient in haar communicatie met een opvragend GBX de tellers in queryAck/resultRemainingQuantity (resterend), queryAck/resultTotalQuantity (totaal) en queryAck/resultCurrentQuantity (huidig) in de gebundelde antwoordberichten te voorzien van waarden die het een opvragende GBX mogelijk maken te bepalen welke hoeveelheden zoekresultaten er in een antwoordbericht opgeleverd worden, dan wel hoeveel zoekresultaten naar verwachting in latere antwoordberichten opgeleverd zullen worden.

Wat dus betekent dat een door de ZIM opgeleverde batch met 5 berichten, ongeacht de waarden van deze attributen in de communicatie tussen de ZIM en de bevraagde systemen, bijvoorbeeld het volgende kan bevatten:


  • bericht 1, met 2 antwoorden, totaal 22, resterend 20

  • bericht 2, met 3 antwoorden, totaal 22, resterend 17

  • bericht 3, met 8 antwoorden, totaal 22, resterend 9

  • bericht 4, met 7 antwoorden, totaal 22, resterend 2

  • bericht 5, met 2 antwoorden, totaal 22, resterend 0

Indien één of meer door de ZIM bevraagde systemen de gerouteerde vraag niet beantwoorden, of beantwoorden met een foutmelding, dan is de de ZIM in haar rol als (virtueel) beantwoordende systeem niet in staat een numerieke waarde te bepalen voor queryAck/resultRemainingQuantity en queryAck/resultTotalQuantity. In dat geval dient de ZIM deze elementen te voorzien van @nullFlavor “UNK”.

Dit betekent dat een door de ZIM opgeleverde batch met 5 berichten, ongeacht de waarden van deze attributen in de communicatie tussen de ZIM en de bevraagde systemen, het volgende kan bevatten:



  • bericht 1, met 2 antwoorden, totaal “UNK”, resterend “UNK”

  • bericht 2, met 3 antwoorden, totaal “UNK”, resterend “UNK”

  • bericht 3, met 8 antwoorden, totaal “UNK”, resterend “UNK”

  • bericht 4, met 7 antwoorden, totaal “UNK”, resterend “UNK”

  • bericht 5 (een foutbericht), met 2 antwoorden, totaal “UNK”, resterend “0”
      1. Adresseren van berichten


Het zendende en ontvangende systeem worden in de Transmission Wrapper geïdentificeerd.

  1. Bij het routeren van berichten (Paragraaf 2.2.1) zijn de gegevens in de Transmission Wrapper onveranderlijk.

  2. Bij het doorsturen van aan de ZIM gerichte opvraagberichten en bij het doorzenden van bijbehorende antwoorden dient de identificatie van het zendende en het ontvangende systeem in de transmission wrapper te worden aangepast.

De auteur van een bericht wordt in de TECA geïdentificeerd

  • Bij het routeren van berichten (Paragraaf 2.2.1) zijn de gegevens in de TECA onveranderlijk.

  • Bij het doorsturen van aan de ZIM gerichte queries en bij het doorzenden van bijbehorende antwoorden wordt de ZIM (als applicatie) als author opgenomen in de Trigger Event Control Act. De in de TECA Wrapper opgenomen overseer blijft onveranderlijk.
1   2   3   4   5   6   7   8   9   ...   36

  • Routeren van berichten
  • Bundelen en routeren van antwoordberichten
  • Tellers in opleverberichten
  • Adresseren van berichten

  • Dovnload 5.47 Mb.