https://github.com/datasharingframework/dsf-process-tutorial
Tutorial repository for developing process plugins for the Data Sharing Framework
https://github.com/datasharingframework/dsf-process-tutorial
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.3%) to scientific vocabulary
Repository
Tutorial repository for developing process plugins for the Data Sharing Framework
Basic Info
Statistics
- Stars: 1
- Watchers: 5
- Forks: 16
- Open Issues: 0
- Releases: 4
Metadata Files
README.md
DISCLAIMER
In its current state, the tutorial can only be done by checking out the version of the DSF that is used in the tutorial and running maven install because some dependencies are not uploaded to public repositories.
DSF Process Plugin Tutorial
This repository contains exercises to learn how to implement process plugins for the Data Sharing Framework (DSF). The main documentation for the DSF can be found under dsf.dev. The tutorial is divided into several exercises that build on each other. For each exercise, a sample solution is provided in a separate branch. You should work on solving the exercises in your local main branch and checkout the solution branches if necessary.
The first version of this tutorial was executed at the GMDS / TMF 2022 conference. A recording of the opening remarks by H. Hund and R. Wettstein can be found on YouTube. The slides of the opening remarks are available as a PDF download. Please note that the version presented was designed for DSF < 1.0.0 and that namespaces and other aspects have changed since then. The following tutorial is designed for the current version (above v1.4.x) of DSF.
Special thanks to Bastian Schaffer for his thorough feedback during development of the tutorial!
Prerequisites
In order to be able to solve the exercises described in this tutorial a software development environment with GIT, Java 17, Maven 3.8, Docker, Docker-Compose, a Java IDE like Eclipse or IntelliJ, Camunda Modeler as a BPMN Editor and a minimum of 16GB of RAM is needed. For more details see the detailed prerequisites document.
Exercise 0 - Setting Up The Project
Exercise 0 verifies that the project is set up correctly in order to start working on exercises. For more details see the exercise 0 description.
Exercise 1 - Simple Process
The first exercise focuses on setting up the testing environment used in this tutorial and shows how to implement and execute a simple BPMN process. For more details see the exercise 1 description.
Exercise 1.1 - Process Debugging
Exercise 1.1 looks at how to use the Java debugger of your IDE to remote debug the execution of a process plugin. For more details see the exercise 1.1 description.
Exercise 2 - Input Parameters
In order to configure processes that are packaged as process plugins, we will take a look at two possibilities on how to pass parameters into a process. For more details see the exercise 2 description.
Exercise 3 - DSF User Authentication and Authorization
This exercise looks at how to set authorization rules for DSF users and process plugins. For more details see the exercise 3 description.
Exercise 4 - Messaging
Communication between organizations is modeled using message flow events in BPMN processes. The third exercise shows you how a process at one organization can trigger a process at another organization. For more details see the exercise 4 description.
Exercise 5 - Exclusive Gateways
Different execution paths in a process based on the state of process variables can be achieved using exclusive gateways. In exercise 5 we will examine how this can be implemented. For more details see the exercise 5 description.
Exercise 6 - Event Based Gateways and Intermediate Events
Exercise 6 will look at message flows between three organizations as well as how to continue a waiting process, if no return message arrives. For more details see the exercise 6 description.
Exercise 7 - Exercise 7 - User Tasks and Task Output Parameters
Exercise 7 will teach you how to utilize User Tasks to provide user input to a running process and how to save data as Task Output Parameters. For more details see the exercise 7 description.
Owner
- Name: Data Sharing Framework
- Login: datasharingframework
- Kind: organization
- Location: Germany
- Repositories: 1
- Profile: https://github.com/datasharingframework
GitHub Events
Total
- Create event: 5
- Issues event: 4
- Release event: 2
- Watch event: 1
- Issue comment event: 2
- Push event: 100
- Pull request review event: 3
- Pull request event: 9
- Fork event: 2
Last Year
- Create event: 5
- Issues event: 4
- Release event: 2
- Watch event: 1
- Issue comment event: 2
- Push event: 100
- Pull request review event: 3
- Pull request event: 9
- Fork event: 2
Dependencies
- ghcr.io/datasharingframework/bpe 1.5.0
- ghcr.io/datasharingframework/fhir 1.5.0
- nginx 1.23
- postgres 15
- quay.io/keycloak/keycloak 21.0
- org.slf4j:slf4j-api 2.0.9
- junit:junit 4.13.2 test
- ca.uhn.hapi.fhir:hapi-fhir-structures-r4
- de.hs-heilbronn.mi:crypto-utils
- dev.dsf:dsf-fhir-rest-adapter
- dev.dsf:dsf-fhir-server
- dev.dsf:tutorial-process
- org.slf4j:slf4j-simple
- dev.dsf:dsf-bpe-process-api-v1 1.5.0 provided
- dev.dsf:dsf-bpe-server 1.5.0 provided
- dev.dsf:dsf-tools-documentation-generator provided
- org.slf4j:slf4j-simple
- dev.dsf:dsf-bpe-process-api-v1 1.5.0 test
- org.mockito:mockito-core test