Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Eksempel på endpoint i testmiljøerne (cNSP i TEST2-miljøet):
http://test2-cnsp.ekstern-test.nspop.dk:8080/brs-nsp/service/brs

...

Forespørgsel til BRS

...

Body er defineret som et element af typen treatmentRelationRequestBody, der er en complexType indeholdende en række felter, er specificeret i
"common/src/main/resources/xsd/"
Frem for at læse disse foreslås det at studere eksemplet på en korrekt forespørgsel i
"doc/brs/bilag/requests-and-responses/"
En korrekt forespørgsel skal indeholde informationer om følgende:. Betydningen og anvendelsen af felterne er opsummeret i tabellen nedenfor.

treatmentRelationRequestBody

Elementer

Beskrivelse

OrganisationIdentifier

Organisationen inden for hvilken relationen skal findes. Feltet

treatmentRelationRequestBody

Elementer

Beskrivelse

OrganisationIdentifier

Organisationen inden for hvilken relationen skal findes. Feltet er struktureret og kan indeholde et sks, ydernummer, sor kode eller EAN-nummer.

PatientCpr

Patientens cpr-nummer.

HealthProfessionalCpr

Behandlers cpr-nummer.

RelationLookupTimeInterval

Tidsinterval inden for hvilket behandleren har foretaget opslaget. Kan f.eks. være validetsperioden for behandlerens ID-kort.

TimeLimit

Udløbstidspunkt for opfølgningen efter hvilket der skal oprettes en notifikation, hvis de angivne kriterier ikke er opfyldt (se AcceptableRelations nedenfor).

ExternalReferenceId

Ikke obligatorisk. Et id der vil blive brugt ved returnering af en eventuel notifikation.
Hvis ikke feltet udfyldes, genererer BRS automatisk en værdi i svaret (se tabellen nedenfor).
Formålet med feltet er at give det kaldende system mulighed for at lave egne referencer til eventuelle afklaringer af hændelsesforløb på et senere tidspunkt.

QueryableCvr

CVR nummer der skal have adgang til en eventuel efterfølgende notifikation.
Kan være det samme som den kaldende service, men det behøver det ikke være.
Eventuelle notifikationer kan alene hentes af organisationer, hvor det angivne CVR nummer i dette felt matcher CVR nummeret i den anvendte digitale signatur.

AcceptableRelations

En liste af acceptable relationer (f.eks. "A+, A, B").
Hvis den fundne kategori for en given behandlingsrelation ikke optræder i listen, bestiller BRS en opfølgning afhængigt af værdien i FollowupRelations (se næste række).

FollowupRelations

En liste af relationer der, i tilfælde af at ingen acceptable relationer forefindes (se ovenfor), vil give anledning til en opfølgning, f.eks. "D, E". Ønskes der opfølgning på alle kategorier udover dem der er angivet i AcceptableRelations sættes værdien til "ALL".

AuthorisationIdentifier

Autorisationskode for den behandleren.

ServiceProvider

Tekststreng indeholdende navnet på serviceudbyderen (f.eks. FMK). Bruges til logformål.

...

Operationen "treatmentRelation" returnerer et treatmentRelationResponse, der opfylder DGWS. Det vil sige, at det har en wsse og en medcom header. Selve svaret er defineret som et treatmentRelationResponseBody som defineret i "common/src/main/resources/xsd/"

Svaret indeholder information om:

...

treatmentRelationResponse

...

Elementer

...

Beskrivelse

...

SufficientRelation

...

Om der var tilstrækkelig relation til at foretage opslaget ("beslutningen" foretages af BRS på basis af værdien i AcceptableRelations angivet i kaldet).

...

ActualRelations

...

Hvad de faktiske relationer er (på baggrund af kendt data fra eksterne registre).

...

FollowupOrdered

...

Om en opfølgning er bestilt eller ej.

...

UniqueReferenceId

...

Et unikt referenceid, der kan bruges til at koble forespørgslen sammen med en eventuel senere notifikation.
Indholdet af dette felt styres af BRS.

...

ExternalReferenceId

...

Værdien af feltet ExternalReferenceId fra forespørgslen. Hvis et sådant ikke var specificeret returneres et nyt generet id, forskelligt fra UniqueReferenceId.

...

Hvis der i kaldet til behandlingsrelationsservicen er angivet at der skal bestilles opfølgninger i opfølgningsservicen, vil der komme alarm-notifikationer, hvis de angivne kriterier ikke er opfyldt indenfor det i kaldet angivne tidsrum.

Disse notifikationer kan hentes med notifikationsservicen i det decentrale NSP-miljø.

Hvis der derimod indenfor det angivne tidsrum opnås tilstrækkelig evidens, så de angivne kriterier er opfyldt, bliver der ikke genereret notifikationer.

...

Notifikationsservicen udstilles på NSP'erne under adressen

*\[miljøurl\]gos/service/notification*

hvor den sætter operationen "notificationQuery" til rådighed.

...

Bemærk: NSP miljøernes loadbalancer router trafikken fra ovennævnte endpoint til brs-nsp/service/notification, idet dette er adressen i BRS2.

...

Man kan hente notifikationer der er "udstedt" til ens eget CVR nummer – altså notifikationer, hvis QueryableCvr matcher CVR nummeret i headeren ved kaldet til Notifikationsservicen.

Bemærk at CVR nummeret ikke indgår som en eksplicit parameter, da det er indeholdt i SOSI idkortet, der optræder i SOAP headeren.

Denne operation tager en SOAP besked som input, indeholdende en header og en body. Headeren indeholder en WSSE header samt en Medcom header, som specificeret i Den Gode Webservice (DGWS) version 1.0.1. SOSI idkortet i headeren skal være på niveau 3.

...

Body er defineret som et element af typen notificationQueryRequestBody, der er en complexType indeholdende en række felter, der er specificeret i
"common/src/main/resources/xsd/notification/"
Frem for at læse denne foreslås det at studere eksemplet på en korrekt forespørgsel i
"doc/bilag/requests-and-responses/"
En korrekt forespørgsel skal indeholde informationer om følgende:

...

notificationQueryRequestBody

...

Elementer

...

Beskrivelse

...

Type

...

Typen af notifikationen. For en behandlingsrelation vil værdien være "BRS".

...

SerialNumber

...

Et notifikationserienummer der bruges som afsæt i databasen. Kun notifikationer med et serienummer større end eller lig dette returneres.

...

Operationen "notificationQuery" returnerer et notificationQueryResponse der opfylder DGWS. Det vil bl.a. sige, at det har en wsse og en medcom header. Selve svaret er defineret som et notificationQueryResponseBody som defineret i
"common/src/main/resources/xsd/notification/"
Svaret indeholder de første 100 notifikationer med serienummer højere end eller lig det der er angivet i forespørgslen. Notifikationerne returneres i sorteret rækkefølge. Hver notifikation indeholder følgende informationer:

...

notificationQueryResponse

...

Elementer

...

Beskrivelse

...

Type

...

Typen af notifikationen. Fra BRS version 2.0.1 vil dette altid være "BRS".

...

SerialNumber

...

Serienummer for notifikationen.

...

ExternalReferenceId

...

Det eksterne reference id. Værdien af dette felt hentes fra det oprindelige kald til opsamlingsservicen.

...

QueryableCvr

...

CVR-nummer på den instans der kan læse notifikationen. Matcher det fundet i headeren for notifikationsforespørgslen.

...

Payload

...

Et element der indeholder data for notifikationen. Fra BRS version 2.0.1 vil dette altid være en behandlingsrelation, dvs. typen treatmentRelationAlarm.

...

Hvis der i kaldet til behandlingsrelationsservicen er angivet at der skal bestilles opfølgninger i opfølgningsservicen, vil der komme alarm-notifikationer, hvis de angivne kriterier ikke er opfyldt indenfor det i kaldet angivne tidsrum.

Disse notifikationer kan hentes med notifikationsservicen i det decentrale NSP-miljø.

Hvis der derimod indenfor det angivne tidsrum opnås tilstrækkelig evidens, så de angivne kriterier er opfyldt, bliver der ikke genereret notifikationer.

Eksempel

Følgende er et eksempel på et request til BRS:

Code Block
languagexml
titleBRS Request
collapsetrue
<treatmentRelationRequestBody xmlns="http://nsi.dk/fmki20110601/brs">
  <OrganisationIdentifier>
    <DoctorOrganisationIdentifier>132435</DoctorOrganisationIdentifier>
  </OrganisationIdentifier>
  <PatientCpr>0101601951</PatientCpr>
  <HealthProfessionalCpr>0101601803</HealthProfessionalCpr>
  <RelationLookupTimeInterval>
    <start>2013-09-30T00:00:00+02:00</start>
    <end>2013-10-25T23:59:00+02:00</end>
  </RelationLookupTimeInterval>
  <TimeLimit>2013-09-30T11:04:37+02:00</TimeLimit>
  <QueryableCvr>31908574</QueryableCvr>
  <AcceptableRelations>
    <Relation>A</Relation>
    <Relation>B</Relation>
  </AcceptableRelations>
  <FollowupRelations>
    <All>All</All>
  </FollowupRelations>
  <AuthorisationIdentifier>DM712</AuthorisationIdentifier>
  <ServiceProvider>
    <Name>SJ</Name>
    <Version>0.1</Version>
    <Vendor>Sundhed.dk</Vendor>
  </ServiceProvider>
</treatmentRelationRequestBody>

Svar fra BRS

Operationen "treatmentRelation" returnerer et treatmentRelationResponse, der opfylder DGWS. Det vil sige, at det har en wsse og en medcom header. Selve svaret er defineret som et treatmentRelationResponseBody.  Betydningen af felterne er opsummeret i tabellen nedenfor:

treatmentRelationResponse

Elementer

Beskrivelse

SufficientRelation

Om der var tilstrækkelig relation til at foretage opslaget ("beslutningen" foretages af BRS på basis af værdien i AcceptableRelations angivet i kaldet).

ActualRelations

Hvad de faktiske relationer er (på baggrund af kendt data fra eksterne registre).

FollowupOrdered

Om en opfølgning er bestilt eller ej.

UniqueReferenceId

Et unikt referenceid, der kan bruges til at koble forespørgslen sammen med en eventuel senere notifikation.
Indholdet af dette felt styres af BRS.

ExternalReferenceId

Værdien af feltet ExternalReferenceId fra forespørgslen. Hvis et sådant ikke var specificeret returneres et nyt generet id, forskelligt fra UniqueReferenceId.

Eksempel

Følgende er et eksempel på et response fra BRS:

Code Block
languagexml
titleResponse fra BRS
collapsetrue
<?xml version='1.0' encoding='UTF-8'?>
<ns6:treatmentRelationResponseBody xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns6="http://nsi.dk/fmki20110601/brs" xmlns:ns7="http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/" xmlns:ns8="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/">
  <ns6:SufficientRelation>false</ns6:SufficientRelation>
  <ns6:ActualRelations>
    <ns6:Relation>C</ns6:Relation>
  </ns6:ActualRelations>
  <ns6:FollowupOrdered>true</ns6:FollowupOrdered>
  <ns6:UniqueReferenceId>0044ba5a-8378-4d33-b128-03522ed26e85</ns6:UniqueReferenceId>
  <ns6:ExternalReferenceId>e4a4ab3f-3f7f-4e5d-a311-5942c14856b8</ns6:ExternalReferenceId>
</ns6:treatmentRelationResponseBody>


Anchor
_Toc265831725
_Toc265831725
Anchor
_Toc477258569
_Toc477258569
Notifikationsservice

Anchor
_Toc265831726
_Toc265831726
Anchor
_Toc477258570
_Toc477258570
Endpoint

Notifikationsservicen udstilles på NSP'erne under adressen

*\[miljøurl\]gos/service/notification*

hvor den sætter operationen "notificationQuery" til rådighed.


Eksempel på endpoint i testmiljøerne (cNSP i TEST2-miljøet):
http://test2-cnsp.ekstern-test.nspop.dk:8080/gos/service/notification

Bemærk: NSP miljøernes loadbalancer router trafikken fra ovennævnte endpoint til brs-nsp/service/notification, idet dette er adressen i BRS2.

Forespørgsel til Notifikationsservice

Body er defineret som et element af typen notificationQueryRequestBody, der er en complexType indeholdende en række felter.  Betydningen af felterne er opsummeret i tabellen nedenfor:

notificationQueryRequestBody

Elementer

Beskrivelse

Type

Typen af notifikationen. For en behandlingsrelation vil værdien være "BRS".

SerialNumber

Et notifikationserienummer der bruges som afsæt i databasen. Kun notifikationer med et serienummer større end eller lig dette returneres.

Man kan hente notifikationer der er "udstedt" til ens eget CVR nummer – altså notifikationer, hvis QueryableCvr matcher CVR nummeret i headeren ved kaldet til Notifikationsservicen.

Bemærk at CVR nummeret ikke indgår som en eksplicit parameter, da det er indeholdt i SOSI idkortet, der optræder i SOAP headeren.

Denne operation tager en SOAP besked som input, indeholdende en header og en body. Headeren indeholder en WSSE header samt en Medcom header, som specificeret i Den Gode Webservice (DGWS) version 1.0.1. SOSI idkortet i headeren skal være på niveau 3.

Eksempel

Følgende er et eksempel på et request til Notifikationsservice:

Code Block
languagexml
titleRequest til Notifikationsservice
collapsetrue
<NotificationQueryRequestBody xmlns="http://nsi.dk/fmki20110601/notification">
  <Type>BRS</Type>
  <SerialNumber>1027</SerialNumber>
</NotificationQueryRequestBody>

Svar fra Notifikationsservice

Operationen "notificationQuery" returnerer et notificationQueryResponse der opfylder DGWS. Det vil bl.a. sige, at det har en wsse og en medcom header.  Svaret indeholder de første 100 notifikationer med serienummer højere end eller lig det der er angivet i forespørgslen.

Notifikationerne returneres i sorteret rækkefølge. Hver notifikation indeholder følgende informationer:

notificationQueryResponse

Elementer

Beskrivelse

Type

Typen af notifikationen. Fra BRS version 2.0.1 vil dette altid være "BRS".

SerialNumber

Serienummer for notifikationen.

ExternalReferenceId

Det eksterne reference id. Værdien af dette felt hentes fra det oprindelige kald til opsamlingsservicen.

QueryableCvr

CVR-nummer på den instans der kan læse notifikationen. Matcher det fundet i headeren for notifikationsforespørgslen.

Payload

Et element der indeholder data for notifikationen. Fra BRS version 2.0.1 vil dette altid være en behandlingsrelation, dvs. typen treatmentRelationAlarm.


Notifikationers "payload" er af typen TreatmentRelationAlarm. Dette indeholder følgende elementer:

treatmentRelationAlarm

Elementer

Beskrivelse

ActualRelations

De faktiske relationer fundet for den pågældende behandler og patient.

TreatmentRelationFollowup

Opfølgningen der gav anledning til notifikationen.


TreatmentRelationFollowup-elementet indeholder felterne:

treatmentRelationFollowup

Elementer

Beskrivelse

TreatmentRelationFollowupSerialNumber

Serienummeret for den pågældende opfølgning.

TreatmentRelationRelayerData

Datastruktur med de nødvendige data for at udtrække gældende relationer, se tabellen nedenfor.

TimeLimit

Tidsgrænse for en relations opståelse. En eventuel notifikation oprettes hvis der efter denne tidsgrænse ikke er opstået en gyldig relation.

RequestSource

Det komplette kald (treatmentRelationRequestBody) der blev sendt til BRS da opfølgningen blev bestilt.

ExternalReferenceId

Samme værdi som i det oprindelige svar fra BRS.

UniqueId

Samme værdi som i det oprindelige svar fra BRS.

QueryableCvr

CVR-nummer på instansen der har ret til at læse eventuelle notifikationer.

AcceptableRelations

Relationer der skal være til stede for at opfølgningen slettes uden at give anledning til en notifikation.


Elementet TreatmentRelationRelayerData indeholder følgende data, der er nok til at identificere de kendte relationer mellem en behandler og en patient:

TreatmentRelationRelayerData

Elementer

Beskrivelse

OrganisationIdentifier

Organisationen inden for hvilken relationen skal findes. Feltet er struktureret og kan indeholde et sks, ydernummer, sor kode eller EAN-nummer.

PatientCpr

Patientents CPR-nummer.

HealthProfessionalCpr

Den sundhedsfagliges CPR-nummer.

RelationLookupTimeInterval

Intervallet inden for hvilket relationen skal forefindes. Vil i første omgang være trukket ud fra id-kortet i den oprindelige treatmentRelationRequest (Intervallet sættes til id-kortets gyldighedsperiode).


Eksempel

Code Block
languagexml
titleResponse fra Notifikationsservice
collapsetrue
<?xml version='1.0' encoding='UTF-8'?>
<ns5:NotificationQueryResponseBody xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns4="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="http://nsi.dk/fmki20110601/notification" xmlns:ns6="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns5:Notifications>
    <ns5:Type>BRS</ns5:Type>
    <ns5:SerialNumber>1027</ns5:SerialNumber>
    <ns5:ExternalReferenceId>e4a4ab3f-3f7f-4e5d-a311-5942c14856b8</ns5:ExternalReferenceId>
    <ns5:QueryableCvr>31908574</ns5:QueryableCvr>
    <TreatmentRelationAlarmType:TreatmentRelationAlarmType xmlns:TreatmentRelationAlarmType="http://nsi.dk/fmki20110601/brs" xmlns="http://nsi.dk/fmki20110601/brs">
      <TreatmentRelationFollowup>
        <TreatmentRelationRelayerData>
          <OrganisationIdentifier>
            <DoctorOrganisationIdentifier>132435</DoctorOrganisationIdentifier>
          </OrganisationIdentifier>
          <PatientCpr>0101601951</PatientCpr>
          <HealthProfessionalCpr>0101601803</HealthProfessionalCpr>
          <RelationLookupTimeInterval>
            <start>2013-09-30T00:00:00+02:00</start>
            <end>2013-10-25T23:59:00+02:00</end>
          </RelationLookupTimeInterval>
        </TreatmentRelationRelayerData>
        <TimeLimit>2013-09-30T11:04:37+02:00</TimeLimit>
        <ExternalReferenceId>e4a4ab3f-3f7f-4e5d-a311-5942c14856b8</ExternalReferenceId>
        <QueryableCvr>31908574</QueryableCvr>
        <AcceptableRelations>
          <Relation>A</Relation>
          <Relation>B</Relation>
        </AcceptableRelations>
        <RequestSource>
          <TreatmentRelationRequestBody>
            <OrganisationIdentifier>
              <DoctorOrganisationIdentifier>132435</DoctorOrganisationIdentifier>
            </OrganisationIdentifier>
            <PatientCpr>0101601951</PatientCpr>
            <HealthProfessionalCpr>0101601803</HealthProfessionalCpr>
            <RelationLookupTimeInterval>
              <start>2013-09-30T00:00:00+02:00</start>
              <end>2013-10-25T23:59:00+02:00</end>
            </RelationLookupTimeInterval>
            <TimeLimit>2013-09-30T11:04:37+02:00</TimeLimit>
            <QueryableCvr>31908574</QueryableCvr>
            <AcceptableRelations>
              <Relation>A</Relation>
              <Relation>B</Relation>
            </AcceptableRelations>
            <FollowupRelations>
              <All>All</All>
            </FollowupRelations>
            <AuthorisationIdentifier>DM712</AuthorisationIdentifier>
            <ServiceProvider>
              <Name>SJ</Name>
              <Version>0.1</Version>
              <Vendor>Sundhed.dk</Vendor>
            </ServiceProvider>
          </TreatmentRelationRequestBody>
        </RequestSource>
        <TreatmentRelationFollowupSerialNumber>1123</TreatmentRelationFollowupSerialNumber>
        <UniqueId>0044ba5a-8378-4d33-b128-03522ed26e85</UniqueId>
      </TreatmentRelationFollowup>
      <ActualRelations>
        <Relation>C</Relation>
      </ActualRelations>
    </TreatmentRelationAlarmType:TreatmentRelationAlarmType>
  </ns5:Notifications>
</ns5:NotificationQueryResponseBody>

...

treatmentRelationAlarm

...

Elementer

...

Beskrivelse

...

ActualRelations

...

De faktiske relationer fundet for den pågældende behandler og patient.

...

TreatmentRelationFollowup

...

Opfølgningen der gav anledning til notifikationen.

...

TreatmentRelationFollowup-elementet er af typen beskrevet i
"common/src/main/resources/xsd/brs/treatmentRelationFollowup.xsd"
Denne indeholder felterne:

...

treatmentRelationFollowup

...

Elementer

...

Beskrivelse

...

TreatmentRelationFollowupSerialNumber

...

Serienummeret for den pågældende opfølgning.

...

TreatmentRelationRelayerData

...

Datastruktur med de nødvendige data for at udtrække gældende relationer, se tabellen nedenfor.

...

TimeLimit

...

Tidsgrænse for en relations opståelse. En eventuel notifikation oprettes hvis der efter denne tidsgrænse ikke er opstået en gyldig relation.

...

RequestSource

...

Det komplette kald (treatmentRelationRequestBody) der blev sendt til BRS da opfølgningen blev bestilt.

...

ExternalReferenceId

...

Samme værdi som i det oprindelige svar fra BRS.

...

UniqueId

...

Samme værdi som i det oprindelige svar fra BRS.

...

QueryableCvr

...

CVR-nummer på instansen der har ret til at læse eventuelle notifikationer.

...

AcceptableRelations

...

Relationer der skal være til stede for at opfølgningen slettes uden at give anledning til en notifikation.

...

Elementet TreatmentRelationRelayerData indeholder følgende data, der er nok til at identificere de kendte relationer mellem en behandler og en patient.

...

TreatmentRelationRelayerData

...

Elementer

...

Beskrivelse

...

OrganisationIdentifier

...

Organisationen inden for hvilken relationen skal findes. Feltet er struktureret og kan indeholde et sks, ydernummer, sor kode eller EAN-nummer.

...

PatientCpr

...

Patientents CPR-nummer.

...

HealthProfessionalCpr

...

Den sundhedsfagliges CPR-nummer.

...

RelationLookupTimeInterval

...

Anchor
_Toc477258577
_Toc477258577
Format for tidsstempler

...