Indhold

Introduktion

Formål

Dette dokument er en vejledning til anvendelse af den Nationale Adviseringsservice (NAS). På baggrund af dokumentet er det muligt at udvikle adviseringskildesystemer og adviseringsmodtagersystemer.

Formålet med dette dokument er at vejlede udviklere, der skal udvikle eller vedligeholde systemer, som anvender snitflader på National Adviseringsservice.

Læsevejledning

Dette dokument er rettet mod udviklere, der skal udvikle eller teste services, der har grænseflader mod National Adviseringsservice.

Læseren forudsættes at være bekendt med de involverede teknologier, som f.eks. SOAP og DGWS.

Dokument historik

DatoAnsvarligBeskrivelse


Initiel version

Definitioner og referencer

RerenceBeskrivelse
DGWSDen Gode WebService
NotifikationBroker

Den snitflade som et afsender system kalder for at afsende adviseringer.

PullPointDen snitflade som et modtager system kalder for at hente adviseringer og nedlægge et pull point.
PullPointFactoryDen snitflade som et modtager system kalder for at oprette et pull point
IDListDen snitflade som et modtager system kalder for at vedligeholde id lister. 
SubscriptonManagerDen snitflade som et modtager system kalder for at oprette og nedlægge abonnementer. 
WS-NotificationDen standard som der implementeres i NAS. For standard snitflader etc. se https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn

Introduktion til National Adviseringsservice

National Adviseringsservice er en service på NSP'en, der hjælper med at distribuere adviseringer fra et afsendersystem til et eller flere modtagersystemer via en standardiseret snitflade. 

Et afsendersystem sender adviseringer på et givent topic. En advisering består af et topic, et eller flere ID'er, der kan filteres på og så selve adviseringen. Afsendelse af adviseringer sker via NotificationBroker-snitfladen. Før et system kan afsende adviseringer skal topic være oprettet i systemet. 

Ønsker man hente adviseringer, sker det ved at modtagersystemet først opretter en evt. IDliste, et pullpoint og til sidst et abonnement på et emne og en evt. IDListe. Herefter er anvendersystemet klar til at hente adviseringer via det pullpoint der blev oprettet. 

I snitfladebeskrivelsen er der, udover beskrivelse af selve snitfladen, en beskrivelse af et konkret brugsscenarie samt tilhørende eksempler på request og response. 

Snitfladebeskrivelse

Generelt

Overordnet set er det WS-notication standarden, der implementeres og der henvises til disse snitflader. Ved hver af nedenstående operationer henvises der til, hvilken operation der er tale om i WS-notification standarden. De steder hvor der er specielle forhold til WS-notification standarden er disse også dokumenteret. Det er typisk hvilke krav der er til "any" elementerne.

Endpoints

Nedenstående er en tabel over endpoints for de forskellige services. 

ServiceEndpoint
Pull point factory/nas2/pullpointfactory
ID list/nas2/idlist
Subscription manager/nas2/subscriptionmanager
Notification broker/notificationbroker/service
Pull point factory/nas2/pullpointfactory

Topics

Inden der kan leveres adviseringer til et Topic skal dette eksplicit oprettes. Dette sker gennem en supporthenvendelse oprettet på nspop.dk.

Bemærk: Der skal indgås 'Tilslutningsaftale: - Specifikke vilkår for oprettelse af NAS 2.0 Topics, med opfyldelse navnestandard m.v. Venligst kontakt af NSP-Operatør på nsp.op@nsi.dk

Navnet på alle Topics der ønskes oprettet skal følge denne skabelon:

http://ejer.dk/projekt/år/måned/dag:hændelse

Afsendersnitflade

Afsender snitfladen er ikke beskyttet af DGWS og sikkerhed sker udelukkende på baggrund af IP whitelisting og det faktum at topic skal være oprettet i systemet for at det er muligt at afsende adviseringer.

Scenarie for afsender

Det Fælles Medicin kort udsender en advisering på emnet TESTNAS-TOPIC1, omhandlende et specifikt cpr-nummer.

Scenariet omfatter:

  1. FMK sender advisering på CPR-nummer

Afsender sender advisering med CPR-nummer   

NAS-NB-1: Aflevering af advisering

Som et eksternt system ønsker jeg at aflevere en advisering til NAS2, så denne kan distribueres videre til abonnenter på det angivne topic


Følgende er et eksempel på advisering med id-filtrerbart indhold.  

Snitflade

Dette er operationen Notify på NotificationBroker der kaldes. I WS-notification hedder operationen Notify. 

Request består af nedenstående. 

Notify
ElementKrævetAnvendtBeskrivelse
NotificationMessageJaJaEt eller flere NotificationMessage elementer.
anyNejNejAnvendes ikke
NotificationMessage
ElementKrævetAnvendtBeskrivelse
SubscriptionReferenceJaJaEt eller flere NotificationMessage elementer.
TopicJaJaElement af typen TopicExpressionType
ProducerReferenceNejNejAnvendes ikke.
Message

Selve adviseringen der skal bestå af et NotifyContent element
TopicExpressionType
ElementKrævetAnvendtBeskrivelse
Dialect (attribute)JaJaSkal have værdien http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple. Bemærk at dette er en attribute.
ContentJaJaTopic der sendes adviseringer til.
NotifyContent
ElementKrævetAnvendtBeskrivelse
Id (attribute)JaJaID adviseringen vedrører. 
idType (attribute)JaJa

ID type adviseringen vedrører.

anyJaJaIndhold af adviseringen.


Response består af nedenstående. Er et tome element.

NotifyResponse
ElementKrævetAnvendtBeskrivelse


Request

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns6="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns5="http://docs.oasis-open.org/wsn/b-2" xmlns:ns8="http://docs.oasis-open.org/wsn/t-1" xmlns:ns7="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns9="http://nsi.dk/advis/v10" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header/>
  <ns2:Body>
    <ns5:Notify>
      <ns5:NotificationMessage>
        <ns5:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">TESTNAS-TOPIC1</ns5:Topic>
        <ns5:Message>
          <ns9:NotifyContent id="2512484916" idType="http://nsi.dk/advis/v10/CPR" isSystemNotification="false">
            <ns9:NotifyContent id="12345" idType="mintype-abc">
              <test>&lt;noget&gt;xml&lt;/noget&gt;</test>
            </ns9:NotifyContent>
          </ns9:NotifyContent>
        </ns5:Message>
      </ns5:NotificationMessage>
    </ns5:Notify>
  </ns2:Body>
</ns2:Envelope>

Response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" xmlns:ns10="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns12="http://docs.oasis-open.org/wsn/t-1" xmlns:ns13="http://nsi.dk/advis/v10">
  <ns2:Header/>
  <ns2:Body>
    <ns9:NotifyResponse/>
  </ns2:Body>
</ns2:Envelope>



Abonnementsnitflade

Abonnementsnitfladen er beskyttet af DGWS og det er derfor krævet at man har optaget et token i STS'en inden man kalder nedenstående snitflader. 

Nedenstående beskrivelse af hvordan et anvendersystem kan benytte adviseringsservicens abonnent-snitflade tager udgangspunkt i et scenarie, der kort beskrives her.

Scenarie for abonnement

Et elektronisk omsorgsjournal-system (EOJ-system) ønsker at modtage adviseringer udsendt fra Det Fælles Medicinkort (FMK).

Efter kontakt med FMK har EOJ-organisationen erfaret, at det er FMK’s emne TESTNAS-TOPIC1, der anvender CPR-nummer-baseret id-filtrering, der ønskes abonnement på.

Adviseringer på dette emne udsendes allerede, de fleste vedrørende borgere uden for EOJ-systemets interesseområde. EOJ-system planlægger derfor at abonnere ved brug af en id-liste over borgere inden for interesseområdet; en id-liste, der navngives "en-cpr-id-liste".

EOJ-systemet udstiller ikke NotificationConsumer-snitfladen fra standarden WS-NOTIFICATION og ønsker derfor at gøre brug af et pullpoint.

Scenariet omfatter:

  1. EOJ-system opretter CPR-nummer-baseret id-liste
  2. EOJ-system opretter et pullpoint
  3. EOJ-system opretter abonnement på emne og id-liste
  4. EOJ-system indhenter adviseringer fra pullpoint

Adviseringsservicens abonnent-snitflade anvender fødereret sikkerhed og kræver Den Gode Webservice 1.0.1-ID-kort på minimum niveau 3. Derfor skal EOJ-systemet indhente et ID-kort signereret af STS’en, der kan anvendes i kald af abonnent-snitfladens operationer. Denne del er ikke med i nedenstående beskrivelser og eksempler da det antages at anvender har kendskab til DGWS. 

Anvendersystem opretter en id-liste

NAS-IM-1: Opret id liste

Som et eksternt system ønsker jeg at oprette en liste med positive id'er til filtrering af adviseringer.

Der oprettes en CPR-nummer-baseret id-liste.

I anvendelse af id-listen herunder er det navnet (Name elementet) på id-listen, der indgår som kald-parameter.

Snitflade

Dette er ikke en del af WS-notification og derfor er hele snitfladen dokumenteret nedenfor. Det er CreateIDList operationen i IDList servicen der kaldes. 

Oprettelse af ID liste sker ved hjælp af CreateIDListRequest elementet.

CreateIDListRequest
ElementKrævetAnvendtBeskrivelse
NameJaJaNavnet på den ID liste der ønskes oprettet. Hvis ID listen skal oprettes må navnet ikke findes i forvejen. Hvis det drejer sig om opdatering af en ID liste er det navnet på den liste der ønskes opdateret. 
DescriptionJaJaTekstuel beskrivelse af ID listen. 
IDTypeJaJaID typen
IdJaJaListe af positive ID'er til ID listen.

Response

CreateIDListResponse
ElementKrævetAnvendtBeskrivelse
ExistingListUpdatesJaJaBoolean indikator om der er oprettet en ID liste eller opdateret en eksisterende ID liste. 


Request

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreateIDListRequest>
      <ns8:Name>en-cpr-id-liste</ns8:Name>
      <ns8:Description>This is a description</ns8:Description>
      <ns8:IDType>http://nsi.dk/advis/v10/CPR</ns8:IDType>
      <ns8:Id>CPR1</ns8:Id>
      <ns8:Id>CPR2</ns8:Id>
    </ns8:CreateIDListRequest>
  </ns2:Body>
</ns2:Envelope>


Response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist">
  <ns2:Header>
  <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreateIDListResponse>
      <ns8:ExistingListUpdated>false</ns8:ExistingListUpdated>
    </ns8:CreateIDListResponse>
  </ns2:Body>
</ns2:Envelope>

Anvendersystem opretter et pullpoint

NAS-PPF-1: Oprette et pullpoint

Som et eksternt system ønsker jeg at oprette et pullpoint.

For at et anvendersystem kan indhente adviseringer skal der orpettes et pull point. Et pull point er en adresse hvor fra der kan afhentes adviseringer. I svaret returneres der en reference der skal anvendes når GetMessages skal kaldes. 

Snitflade

Dette er operationen CreatePullPoint på PullPointFactory der kaldes. I WS-notification hedder operationen CeratePullPoint. 

Create pull point består udelukkende af et tomt CreatePullPoint element. Se nedenstående request for eksempel. 

CreatePullPoint
ElementKrævetAnvendtBeskrivelse
anyNejNej"Fritekst" element der ikke anvendes.

Svaret består af nedenstående element.

CreatePullPointResponse
ElementKrævetAnvendtBeskrivelse
PullPointJaJaPull point reference. Sidste del af path skal anevndes når GetMessages kaldes.
anyNejNej"Fritekst" felt der ikke anvendes


Request

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns8="http://docs.oasis-open.org/wsn/b-2" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns9="http://www.w3.org/2005/08/addressing" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreatePullPoint/>
  </ns2:Body>
</ns2:Envelope>

Response

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://docs.oasis-open.org/wsn/b-2" xmlns:ns9="http://www.w3.org/2005/08/addressing" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreatePullPointResponse>
      <ns8:PullPoint>
        <ns9:Address>http://localhost:8081/pullpoint/service/e4b99ea9-b2dd-4de3-89f5-a38b86b402fd</ns9:Address>
      </ns8:PullPoint>
    </ns8:CreatePullPointResponse>
  </ns2:Body>
</ns2:Envelope>

Anvendersystem opretter et abonnement på emne og id-liste

NAS-SM-1: Opret abonnement

Som et eksternt system ønsker jeg at oprette en liste med positive id'er til filtrering af adviseringer.

Ved oprettelse af abonnement knyttes et pullpoint sammen med et topic. Dermed bliver der oprettet et abonnement på et givent topic til et givent pull point. Dette abonnement kan indeholde enten navnet på en eksisterende id liste, en liste af id'er eller ingen af disse to. Ved angivelse af enten en id liste eller en liste af ider filtreres adviseringer på det angivne topic i forhold til de id'er der er i listen. Hvis der hverken er angivet ID'er eller navnet på en ID liste så modtages alle adviseringer på det topic der oprettes abonnement på. 

I svaret returneres der en endpoint reference der skal bruges når et abonnement skal nedlægges. 

Snitflade

Dette er operationen Subscribe på SubscriptionManager der kaldes. I WS-notification hedder operationen Subscribe. 

Request består af nedenstående

Subscribe
ElementKrævetAnvendtBeskrivelse
ConsumerReferenceJaJaReference til det pull point der er oprettet tidligere. Skal være komplet URL som returneret fra CreatePullPoint.
FilterJaJaElement af typen FilterType.
InitialTerminationTimeNejNejAnvendes ikke.
SubscriptionPolicyNejNejAnvendes ikke.
anyNejNejAnvendes ikke.
FilterTypeBemærk at dette er samme snitflade som oprettelse af ID liste. Name elementet skal blot referere til en eksisterende ID liste. 
ElementKrævetAnvendtBeskrivelse
anyJaJa

Liste af elementer. Skal indeholde et eller to elementer. 

  1. Et element af typen TopicExpressionType med attributten Dialect = http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple
  2. Evt. et element af typen MessageContent med attributten Dialect = http://nsi.dk/advis/v10/IDMCP_Dialect. MessageContent indeholder et IDFilter element.
TopicExpressionType
ElementKrævetAnvendtBeskrivelse

JaJaVærdien i TopicExpressionType elementet indeholder det topic der oprettes abonnement på. 
IDFilter
ElementKrævetAnvendtBeskrivelse
IDListNejJaElement af typen IDList.
SingleIDNejJaListe af typen SingleID.
XPathFilterNejNejAnvendes ikke
IDList
AttributeKrævetAnvendtBeskrivelse
nameJaJaNavnet på en eksisterende id liste. Bemærk at dette er en attribute på IDList typen.



Det er GetMessages operationen der kaldes. SingleID
AttributeKrævetAnvendtBeskrivelse
idJaJaID værdien. Bemærk at dette er en attribute på SingleID typen. 
idTypeJaJaID typen. Bemærk at dette er en attribute på SinBemærk at dette er samme snitflade som oprettelse af ID liste. Name elementet skal blot referere til en eksisterende ID liste. gleID typen. Alle idType værdier skal være ens for hele listen af SingleID elementer. 

Response består af nedenstående

SubscribeResponse
ElementKrævetAnvendtBeskrivelse
SubscriptionReferenceJaJaReference til netop oprettet subscription.
CurrentTimeNejNejAnvendes ikke.
TerminationTimeNejNejAnvendes ikke.
anyNejNejAnvendes ikke.

Request

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns13="http://nsi.dk/advis/v10" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns9:Subscribe>
      <ns9:ConsumerReference>
        <ns8:Address>http://localhost:8081/pullpoint/service/e4b99ea9-b2dd-4de3-89f5-a38b86b402fd</ns8:Address>
      </ns9:ConsumerReference>
      <ns9:Filter>
        <ns9:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">TESTNAS-TOPIC1</ns9:TopicExpression>
        <ns9:MessageContent Dialect="http://nsi.dk/advis/v10/IDMCP_Dialect">
          <ns13:IDFilter>
            <ns13:IDList name="en-cpr-id-liste"/>
          </ns13:IDFilter>
        </ns9:MessageContent>
      </ns9:Filter> 
    </ns9:Subscribe>
  </ns2:Body>
</ns2:Envelope>


Response

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns13="http://nsi.dk/advis/v10">
  <ns2:Header>
    <!-- DWGS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns9:SubscribeResponse>Bemærk at dette er samme snitflade som oprettelse af ID liste. Name elementet skal blot referere til en eksisterende ID liste. 
      <ns9:SubscriptionReference>
        <ns8:Address>http://localhost:8083/subscriptionmanager/service/ab48bed1-408b-49ff-a867-cd5253758c2c</ns8:Address>
      </ns9:SubscriptionReference>
      <ns9:TerminationTime xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
    </ns9:SubscribeResponse>
  </ns2:Body>
</ns2:Envelope>


Anvendersystem indhenter adviseringer

NAS-PP-1: Afhenting af adviseringer

Som et eksternt system ønsker jeg at hente nye adviseringer fra NAS på et givent pullpoint

Nedenstående viser eksempel på hvordan operationen GetMessages i PullPoint kaldes. Bemærk at anvendersystemet skal bruge den del af pull point referencen der indentificerer et givent pull point når GetMessages kaldes. Denne reference blev returneret da CreatePullPoint blev kaldt i PullPointFactory. Se under punktet "anvendersystem opretter et pullpoint" for hvilken del af pull point referencen der identificerer et givent pull point. 

Snitflade

Dette er operationen GetMessages på PullPoint der kaldes. I WS-notification hedder operationen GetMessages. 

Request består af nedenstående. 

GetMessages
ElementKrævetAnvendtBeskrivelse
MaximumNumberJaJaMaksimalt antal adviseringer der ønskes returenret. 

Response består af nedenstående. 

GetMessagesResponse
ElementKrævetAnvendtBeskrivelse
NotificationMessageNejJaListe af NotifikationMessage. Format er beskrevet under Notify operationen.  

Request

Endpoint: http://NAS20/pullpoint/e4b99ea9-b2dd-4de3-89f5-a38b86b402fd

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns6="http://docs.oasis-open.org/wsn/t-1" xmlns:ns5="http://www.w3.org/2005/08/addressing" xmlns:ns8="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns7="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns13="http://nsi.dk/advis/v10" xmlns:ns9="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns12="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns11="http://www.w3.org/2000/09/xmldsig#" xmlns:ns10="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wsn/b-2" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
	<!-- DGWS HEADERS -->
  </ns2:Header>
  <ns2:Body>
    <ns4:GetMessages>
      <ns4:MaximumNumber>1000</ns4:MaximumNumber>
    </ns4:GetMessages>
  </ns2:Body>
</ns2:Envelope>


Response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://docs.oasis-open.org/wsn/b-2" xmlns:ns9="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://www.w3.org/2005/08/addressing" xmlns:ns11="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns12="http://docs.oasis-open.org/wsn/t-1">
  <ns2:Header>
	<!-- DGWS HEADERS -->
  </ns2:Header>
  <ns2:Body>
    <ns8:GetMessagesResponse>
      <ns8:NotificationMessage>
        <ns8:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">TESTNAS-TOPIC1</ns8:Topic>
        <ns8:Message>
          <ns13:NotifyContent xmlns:ns13="http://nsi.dk/advis/v10" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" id="12345" idType="mintype-abc">
            <test xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns5="http://docs.oasis-open.org/wsn/b-2" xmlns:ns6="http://docs.oasis-open.org/wsn/t-1" xmlns:ns7="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns8="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns9="http://nsi.dk/advis/v10"><noget>xml</noget></test>
          </ns13:NotifyContent>
        </ns8:Message>
      </ns8:NotificationMessage>
      <ns8:NotificationMessage>
        <ns8:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">TESTNAS-TOPIC1</ns8:Topic>
        <ns8:Message>
          <ns13:NotifyContent xmlns:ns13="http://nsi.dk/advis/v10" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" id="361c09bb-4bdd-495d-b8c4-87b3cce3755c" idType="mintype-abc">
            <testElement xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns5="http://docs.oasis-open.org/wsn/b-2" xmlns:ns6="http://docs.oasis-open.org/wsn/t-1" xmlns:ns7="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns8="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns9="http://nsi.dk/advis/v10">
              <tekst>xml tekst</tekst>
            </testElement>
          </ns13:NotifyContent>
        </ns8:Message>
      </ns8:NotificationMessage>
    </ns8:GetMessagesResponse>
  </ns2:Body>
</ns2:Envelope>

Anvendersystem opdaterer id-liste

NAS-IM-2: Opdater id liste

Som et eksternt system ønsker jeg at opdatere, en tidligere oprettet, liste med positive id'er til filtrering af adviseringer.

Anvendersystemet kan opdatere sin id-liste løbende. Identifikation af ID listen er det navn som der er anvendt da listen blev oprettet. Er id-listen (som her) anvendt i et abonnement, betyder det, når adviseringer efterfølgende afhentes er det den nye id liste der evalueres op mod. Opdatering sker ved at alle eksisterende ID'er slettes og de nye indsættes. 

Opdatering sker med samme kald som ved oprettelse, men returnerer en indikation af, om listen eksisterede.

Snitflade

Bemærk at dette er samme snitflade som oprettelse af ID liste. Name elementet skal blot referere til en eksisterende ID liste. Derfor henvises der til opret ID liste for snitflade dokumentation.

Request

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreateIDListRequest>
      <ns8:Name>en-cpr-id-liste</ns8:Name>
      <ns8:Description>This is a description</ns8:Description>
      <ns8:IDType>http://nsi.dk/advis/v10/CPR</ns8:IDType>
      <ns8:Id>CPR2</ns8:Id>
      <ns8:Id>CPR3</ns8:Id>
    </ns8:CreateIDListRequest>
  </ns2:Body>
</ns2:Envelope>


Response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist">
  <ns2:Header>
  <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreateIDListResponse>
      <ns8:ExistingListUpdated>true</ns8:ExistingListUpdated>
    </ns8:CreateIDListResponse>
  </ns2:Body>
</ns2:Envelope>

Anvendersystem nedlægger abonnement

endpointNAS-SM-2: Nedlæg abonnement

Som et eksternt system ønsker jeg at nedlægge et tidligere oprettet abonnement.

Når et abonnement skal nedlægges, skal den subscription endpoint reference, der blev returneret ved oprettelsen anvendes.

Bemærk, at anvendersystemet skal kalde en service-port, der peger på en URL bestående af en adresse, som anvendersystemet tilgår SubscriptionManager-servicen med, samt identifikation af det specifikke abonnements subscription endpoint.

Snitflade

Dette er operationen Unsubscribe på SubscriptionManager der kaldes. I WS-notification hedder operationen Unsubscribe. 

Request består af nedenstående.  Bemærk at den subscription der ønskes nedlagt refereres via sidste del ag URL'en.

Unsubscribe
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Response består af nedenstående. 

UnsubscribeResponse
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Request

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns13="http://nsi.dk/advis/v10" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns9:Unsubscribe/>
  </ns2:Body>
</ns2:Envelope>


Response

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns13="http://nsi.dk/advis/v10">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns9:UnsubscribeResponse/>
  </ns2:Body>
</ns2:Envelope>


Anvendersystem nedlægger PullPoint

NAS-PP-2: Slette et pullpoint

Som et eksternt system ønsker jeg at slette et pullpoint.

Når et anvendersystem ikke længere anvender et pullpoint kan det nedlægges med DestroyPullPoint operationen. Bemærk at pull point id anvendes som en del af endpoint når servicen den kaldes. 

For at det er muligt at nedlægge et pull point må der IKKE være nogle subscriptions tilknyttet. Hvis der er dette returneres der en fejl til kalder. 

Snitflade

Dette er operationen DestroyPullPoint på PullPoint der kaldes. I WS-notification hedder operationen DestroyPullPoint. 

Request består af nedenstående. Bemærk at det pull point der ønskes nedlagt refereres via sidste del af URL'en. 

DestroyPullPoint
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Response består af nedenstående. Det er blot et tomt element.

DestroyPullPointResponse
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Request

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns8="http://docs.oasis-open.org/wsn/b-2" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns9="http://www.w3.org/2005/08/addressing" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:DestroyPullPoint/>
  </ns2:Body>
</ns2:Envelope>


Response

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://docs.oasis-open.org/wsn/b-2" xmlns:ns9="http://www.w3.org/2005/08/addressing" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns13="http://nsi.dk/advis/v10">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:DestroyPullPointResponse/>
  </ns2:Body>
</ns2:Envelope>


Anvendersystem nedlægger id-liste

NAS-IM-3: Slet id liste

Som et eksternt system ønsker jeg at slette, en tidligere oprettet, liste med positive id'er til filtrering af adviseringer.

Når en ID liste ikke længere er tilknyttet en eller flere subscriptions kan det slettes med nedenstående kald. I svaret er der en indikation af om ID listen den fandtes eller ej.

Snitflade

Dette er operationen DestroyIDList på IDList der kaldes. Dette er ikke en del af WS-Notification.

Request består af nedenstående. 

DestroyIDListRequest
ElementKrævetAnvendtBeskrivelse
NameJaJaAngiver navnet på den ID liste der ønskes slettet.

Response består af nedenstående. 

DestroyIDListResponse
ElementKrævetAnvendtBeskrivelse
NoSuchListJaJaBoolean værdi for om ID listen fandtes eller ej.

Request

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
  <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:DestroyIDListRequest>
      <ns8:Name>en-cpr-id-liste</ns8:Name>
    </ns8:DestroyIDListRequest>
  </ns2:Body>
</ns2:Envelope>


Response

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist">
  <ns2:Header>
  <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:DestroyIDListResponse>
      <ns8:NoSuchList>false</ns8:NoSuchList>
    </ns8:DestroyIDListResponse>
  </ns2:Body>
</ns2:Envelope>

Systemadviseringer

Systemadviseringer ved slettet data fra PullPoint

Hvis der ligger adviser på et pull point og disse ikke afhentes i tide genereres der en systemadvisering. Denne systemadvisering er tilgængelig på pull point indtil den er afhentet. Der leveres ikke nye adviser til pull point før systemadvisering er afhentet. Nedenstående er eksempel på sådan en systemadvisering.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:nasns999="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:nasns998="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:nasns997="http://www.w3.org/2000/09/xmldsig#"
    xmlns:nasns996="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd"
    xmlns:ns5="http://docs.oasis-open.org/wsn/b-2"
    xmlns:ns4="http://www.w3.org/2005/08/addressing"
    xmlns:ns6="http://docs.oasis-open.org/wsrf/bf-2"
    xmlns:ns7="http://docs.oasis-open.org/wsrf/rp-2"
    xmlns:ns8="http://docs.oasis-open.org/wsn/t-1"
    xmlns:ns9="http://nsi.dk/advis/v10">
    <ns2:Header>
        <!-- DGWS headers -->
    </ns2:Header>
    <ns2:Body>
        <ns5:GetMessagesResponse>
            <ns5:NotificationMessage>
                <ns5:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">pullpointUnusedTopic</ns5:Topic>
                <ns5:Message>
                    <ns9:NotifyContent isSystemNotification="true">
                        <text>Advarsel: Pullpoint har ikke været anvendt i længere tid og beskederne er blevet fjernet. Pullpoint er markeret som aktiv igen og vil igen begynde at modtage beskeder.</text>
                    </ns9:NotifyContent>
                </ns5:Message>
            </ns5:NotificationMessage>
        </ns5:GetMessagesResponse>
    </ns2:Body>
</ns2:Envelope>