Versions Compared

Key

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

...

Code Block
languagejfx
titleIndkommende NAP beskeder
private void handleBridgeCallBacks(NAPMessage napMessage) {
        System.out.println("Bridge got type NAPMessageType" + napMessage.getEvent().getNAPEventType());
        switch (napMessage.getEvent().getNAPEventType()) {
            case WebAppOpenPatientOpen:
                try {
                    WebApp webApp = this.getWebAppById(
                            Configuration.getInstance().getNapAdminUrl(this.environment),
                            FHIRResoureValueGetter.getWebAppId(napMessage),
                            this.base64EncodedSAMLToken
                    sendCurrentPatient(txfCPR.getText(), napMessage.getDate(), napMessage.getId());
                    if (webApp != null) {break;
            // ONLY Sent by NAP Lobby and Nap     Platform.runLater(() -> this.webAppPane.openURL(webApp.getManifest().getUrl()));Test WEB
                    }case WebAppSelected:
                } catch (ConnectException e) {
                    System.err.println("Kunne ikke oprette forbindelse til serveren"handleWebAppSelected(napMessage);
                }// catchONLY (ExceptionSent e)by {
NAP Lobby and Nap                 e.printStackTrace();Test WEB
                }
                break;
            case PatientOpenProjectsRetrieved:
                sendCurrentPatient(txfCPR.getText(), napMessage.getDate(), napMessage.getId())filterProjectsRetrievedAndSendMessage(napMessage);
                break;
            case SessionOpenSessionClose:
                sendTokenhandleSessionClose(napMessage);
                break;
            case SessionCloseSessionError:
                sendSessionClosedhandleSessionError(napMessage);
                break;
            case SessionErrordefault:
                sendSessionError(napMessageSystem.err.println("Unexpected event type: " + napMessage.getEvent().getNAPEventType());
        }
    }
}


Når der skal sendes en NAP besked, kan der så gøres brug af bridgen. Call() tager imod en string, som angiver hvilken metode man vil kalde, her "handle", da det er den variable som SDK'et lytter på. Metoden sender en string, hvori indholdet repræsentere en JSON struktur med indholdet af en NAPMessage.

Code Block
languagejfx
titleBrug af Nap Bridge
 if(napBridge.bridge != null) {
     this.napBridge.bridge.call("handle", eventRawJSONString);
 }

NAP Lobby Web

Når kommunikationen er opsat med SDK'erne, eller initialt blot implementering af NapSessionOpen (NAP SDK - Guide til anvendere#Guidetilanvendere-Session-open/Session-close), er det nu klart til at vise alle de projekter der er tildelt.

...

...


NAP

...

Dette gøres ved at få WebView'et til at indlæse en af nedenstående URL'er til nap-lobby-web.

Test1: INDSÆT URL

Test2: INDSÆT URL

Produktion: INDSÆT URL

NAP Test Web

Projektet har til hensigt at teste, at der kan sendes og modtages beskender igennem NAP SDK'erne.

...

Dette afprøvningsprojekt ligger både på test1 og test2 og kan åbnes fra lobbyen i det givne miljø.

Når et projekt i lobbyen klikkes sendes et WebAppOpen event:

Code Block
languagejs
 /**
   * Send and open-webapp event to over the host bridge
   * @param webAppId the wep app id open
   */
  public instructHostToOpenWebApp(webAppId: string): void {
    const napMsg: NAPMessage = {
      date: new Date().toISOString(),
      id: UUID(),
      event: {
        type: NAPEventCatalogue.v1.WebAppOpen,
        context: [
          {
            resource: {
              resourceType: FHIRValueSetter.FHIRResourceType.Basic,
              code: {
                coding: [
                  {
                    code: NAPEventCatalogue.v1.WebAppOpen,
                    system: FHIRValueSetter.FHIRSystem.NAP,
                  },
                ],
              },
              identifier: [
                { system: FHIRValueSetter.FHIRSystem.NAP, value: webAppId },
              ],
            },
          },
        ],
      },
    };
    this.napSDK.sendMessage(napMsg);
  }

Et eksempel kunne være: 

Code Block
languagejs
{
 "date":"2020-06-22T10:40:50.079Z",
 "id":"43f642ed-b7ca-4c5b-91fc-e7fdf6e8ee4c",
 "event":{
	"type":"nap-open-webApp",
	"context":[{
		"resource":{
			"resourceType":"Basic",
			"code":{
				"coding":[{
					"code":"nap-open-webApp",
					"system":"nap"
				}]
			},
			"identifier":[{
				"system":"nap",
				"value":"11eaac74-505d-9772-ac11-0242c0a87002"
			}]
		}
 	}]
 }
}

Webappen med det givne id, kan så efterfølgende hentes på adminurl/webapp/id på hosten og åbnes i den indlejrede browser.

Test1: INDSÆT URL

Test2: INDSÆT URL

Produktion: INDSÆT URL

NAP Lobby Web

Når kommunikationen er opsat med SDK'erne, er det nu klart til at vise alle de projekter der er tildelt.

De forskellige typer events kan læses på NAP SDK - Guide til anvendere.

For at se de projekter der er tilgængelige, skal NAP Lobby Web åbnes i det nuværende system.

Dette gøres ved at få WebView'et til at indlæse en af nedenstående URL'er til nap-lobby-web.

Test1: INDSÆT URL

Test2: INDSÆT URL

...