Subscription Adapter Implementation Guide
0.1.0 - ci-build

Publish Box goes here

Getting Started

Getting Started

This prototype runs both adapter roles and a mock source system in one Kotlin process. That makes it possible to see the full interaction without deploying multiple services.

Run the prototype from the repository root:

GRADLE_USER_HOME=$PWD/.gradle ./gradlew run --args="--port=8080"

Open:

  • UI: http://127.0.0.1:8080/
  • Source adapter FHIR base: http://127.0.0.1:8080/source-adapter/fhir
  • Mock source-system FHIR base: http://127.0.0.1:8080/source-system/fhir
  • Subscriber webhook: http://127.0.0.1:8080/subscriber/hooks/fhir

Typical Demo Flow

  1. Select a patient chip on the subscriber side.
  2. Click Vraag subscription aan.
  3. The subscriber adapter role posts a FHIR R4 Subscription to the source adapter role.
  4. The source adapter role stores the subscription and sends a REST-hook handshake notification.
  5. Select the same patient chip on the source side.
  6. Click Genereer bron-event.
  7. The mock source system creates heart-failure data and sends a simple event signal to the source adapter.
  8. The source adapter matches the event to active subscriptions for the topic and patient.
  9. The source adapter sends a minimal event notification with a related pull query.
  10. The subscriber adapter receives the notification and pulls the event-specific FHIR resources.

If you select a different patient for the source event than the subscribed patient, no event notification is delivered to that subscriber.

What To Inspect In The UI

The left panel represents the subscriber side:

  • active patient selection for subscription requests;
  • received notifications;
  • pulled resource count;
  • full notification and pull result details.

The right panel represents the source side:

  • active subscriptions;
  • source event generation;
  • generated source events;
  • patient chips for each subscription and event.

The lower traffic log shows the protocol-level interaction between the roles.

Build The IG

Generate the published HTML IG from the repository root:

cd ig
./_preview.sh

When the demo server is running, the generated IG is available at:

http://127.0.0.1:8080/ig/