Skip to content

Commit

Permalink
Merge pull request #116 in TELIMA/karnak from feat/MEP_20220221 to ma…
Browse files Browse the repository at this point in the history
…ster

* commit '25993e58830d703a9ae980d7c098265277c05cab': (70 commits)
  feat: - modify vesrion weasis-dicom-tools in order to fix "Go Away" exceptions - add in predestroy reset transfer in progress for destinations - handle 409 http exception in order to not rethrow exception = means file is already in the destination - set HTTP2 to HTTP1_1
  feat: implement project key history => clean secret entity, remove unused column + add unit tests
  feat: implement project key history
  feat: implement project key history
  feat: modify docker-compose.yml new docker registry
  feat: modify docker-compose.yml new docker registry
  feat: modify docker-compose.yml new docker registry
  feat: modify docker-compose.yml new docker registry
  feat: remove escape character + add sequence transfer_status + set to 150000 history monitoring
  feat: add catch clauses in order to get the IOExceptions during transfer/transferOther for the monitoring and rethrow them
  fix: unit test because of renaming fwdDescription
  feat: add export functionality for monitoring view
  feat: downgrade liquibase to 4.3.5 because of liquibase/liquibase#2448
  feat: add property in test application.yml
  feat: temporary deactivate
  feat: add automatic cleaning of monitoring history depending on a size limit
  fix forward node button save and delete destination
  feat: refresh multiple instances gateway setup
  feat: temporary deactivate
  feat: refresh multiple instances gateway setup
  ...
  • Loading branch information
jdcshug committed Feb 21, 2022
2 parents 69ab59e + 25993e5 commit 4a25b1d
Show file tree
Hide file tree
Showing 97 changed files with 5,990 additions and 3,990 deletions.
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
# Changelog

## [v0.9.9](https://github.com/OsiriX-Foundation/karnak/tree/v0.9.9) (2021-12-20)

[Full Changelog](https://github.com/OsiriX-Foundation/karnak/compare/v0.9.8...v0.9.9)

**Implemented enhancements:**

- Update weasis-dicom-tools to 5.24.2 \(native lib to 4.5.3\) [\#177](https://github.com/OsiriX-Foundation/karnak/issues/177)
- DeIdentification front: refactoring + behaviour activate/deactivate deidentification [\#174](https://github.com/OsiriX-Foundation/karnak/issues/174)
- Notification Front: default values [\#172](https://github.com/OsiriX-Foundation/karnak/issues/172)
- Karnak email address [\#159](https://github.com/OsiriX-Foundation/karnak/issues/159)
- Change configuration when sending [\#31](https://github.com/OsiriX-Foundation/karnak/issues/31)

## [v0.9.8](https://github.com/OsiriX-Foundation/karnak/tree/v0.9.8) (2021-08-26)

[Full Changelog](https://github.com/OsiriX-Foundation/karnak/compare/v0.9.7...v0.9.8)

**Implemented enhancements:**

- Adjust clickable zone checkbox [\#169](https://github.com/OsiriX-Foundation/karnak/issues/169)
- Add profile version in projects views [\#167](https://github.com/OsiriX-Foundation/karnak/issues/167)
- Springboot/junit/liquibase versions upgrade [\#165](https://github.com/OsiriX-Foundation/karnak/issues/165)
- Enable/disable destination buttons \(save/delete\) when transfer is in progress [\#163](https://github.com/OsiriX-Foundation/karnak/issues/163)
- Destinations: loading spinner transfer activity [\#161](https://github.com/OsiriX-Foundation/karnak/issues/161)
- Image transcoding with a specific transfer syntax [\#139](https://github.com/OsiriX-Foundation/karnak/issues/139)
- Inject an external id provider [\#88](https://github.com/OsiriX-Foundation/karnak/issues/88)
- Check that the expression does not corrupt the DICOM [\#74](https://github.com/OsiriX-Foundation/karnak/issues/74)
- Improve the notification module UI [\#42](https://github.com/OsiriX-Foundation/karnak/issues/42)

**Fixed bugs:**

- Switching in the KHEOPS album cannot be applied with the KEEP action on the study UID and / or the serial UID [\#156](https://github.com/OsiriX-Foundation/karnak/issues/156)

## [v0.9.7](https://github.com/OsiriX-Foundation/karnak/tree/v0.9.7) (2021-06-11)

[Full Changelog](https://github.com/OsiriX-Foundation/karnak/compare/v0.9.6...v0.9.7)
Expand Down
25 changes: 7 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ output.
For more information, see the
online [Karnak user guide](https://osirix-foundation.github.io/karnak-documentation/)

:warning: **Security**: Karnak is using Logback and is not affected by CVE-2021-44228. [CVE-2021-42550 has been fixed](https://github.com/OsiriX-Foundation/karnak/issues/180) since v0.9.9

# Application Features

## Gateway

- Allows to build mapping between a source and one or more destinations
- Allows building mapping between a source and one or more destinations
- Each destination can be DICOM or DICOMWeb
- Filter the images providers by AETitle and/or hostname (ot ensure the authenticity of the source)

Expand Down Expand Up @@ -51,7 +53,7 @@ see [karnak-docker](https://github.com/OsiriX-Foundation/karnak-docker).
- Enable Spring and Spring Boot for the project
- Create a Spring Boot launcher from main of StartApplication.java
- Working Directory must be the mvc directory
- In VM Options, add `-Djava.library.path="/tmp/dicom-opencv"`
- In VM Options, add `-Djava.library.path="/tmp/dicom-opencv"`. Note: the tmp folder must be adapted according to your system and `dicom-opencv` is mandatory as the last folder.
- In Environment variables, add the following values. The following values work with our default
configuration define with docker used for the development (see: "Configure locally
Mainzelliste and Postgres database with docker-compose") :
Expand All @@ -78,20 +80,7 @@ see [karnak-docker](https://github.com/OsiriX-Foundation/karnak-docker).
- `OIDC_CLIENT_ID=undefined`
- `OIDC_CLIENT_SECRET=undefined`
- `OIDC_ISSUER_URI=undefined`

Note: the tmp folder must be adapted according to your system and the dicom-opencv must the last folder.

<!--
## Debug in Eclipse - obsolete
- Configure locally mainzelliste and Postgres database (see below)
- From Eclipse Marketplace: install the latest Spring Tools
- Create a Spring Boot App launcher from main of SartApplication.java
- Copy the KARNAK environment variables in docker/.env and paste into the Environment tab of the launcher
- In the Arguments tab of the launcher, add in VM arguments: `-Djava.library.path="/tmp/dicom-opencv"`
Note: the tmp folder must be adapted according to your system and the dicom-opencv must the last folder.
-->


## Configure locally Mainzelliste and Postgres database with docker-compose

Minimum docker-compose version: **1.22**
Expand All @@ -117,15 +106,15 @@ Go on the root folder and launch the following command:
* Full independent build: `docker build -t local/karnak:latest -f Dockerfile .`
* Build from compile package:
* `mvn clean install -P production`
* `docker build -t local/karnak:latest -f mvc/src/main/docker/Dockerfile .`
* `docker build -t local/karnak:latest -f src/main/docker/Dockerfile .`

## Run image from Docker Hub

See [karnak-docker](https://github.com/OsiriX-Foundation/karnak-docker)

## Docker environment variables

See [environment variables](https://github.com/OsiriX-Foundation/karnak-docker#environment-variables)
See [all the environment variables](https://github.com/OsiriX-Foundation/karnak-docker#environment-variables)

# Architecture

Expand Down
Empty file added frontend/styles/empty.css
Empty file.
123 changes: 97 additions & 26 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,30 +23,35 @@

<!-- Properties -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<enforcer.jdk-version>[${java.version},)</enforcer.jdk-version>
<enforcer.maven-version>[3.2.0,)</enforcer.maven-version>
<java.version>14</java.version>
<java.version>15</java.version>
<springframework.version>2.6.1</springframework.version>
<javax.el.version>3.0.0</javax.el.version>
<javax.mail.version>1.6.2</javax.mail.version>
<vaadin.version>21.0.9</vaadin.version>
<weasis-dicom-tools.version>5.25.1.1-IMG-RELEASE</weasis-dicom-tools.version>
<weasis.opencv.native.version>4.5.5-dcm</weasis.opencv.native.version>
<springdoc.version>1.6.0</springdoc.version>
<mockito.version>4.2.0</mockito.version>
<h2.version>1.4.200</h2.version>
<hug.springcloud.version>2.3.11-HSR11-1.0</hug.springcloud.version>
<jacoco-maven-plugin.version>0.8.7</jacoco-maven-plugin.version>
<junit.jupiter.version>5.8.2</junit.jupiter.version>
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<springframework.version>2.4.9</springframework.version>
<vaadin.version>19.0.6</vaadin.version>
<weasis-dicom-tools.version>5.23.3-IMG-RELEASE</weasis-dicom-tools.version>
<weasis.opencv.native.version>4.5.1-dcm</weasis.opencv.native.version>
<jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>
<sonar-maven-plugin.version>3.8.0.2131</sonar-maven-plugin.version>
<sonar.java.source>${java.version}</sonar.java.source>
<sonar.java.target>${java.version}</sonar.java.target>
<sonar.projectKey>karnak</sonar.projectKey>
<sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<h2.version>1.4.200</h2.version>
<junit.jupiter.version>5.7.2</junit.jupiter.version>
<mockito.version>3.9.0</mockito.version>
<springdoc.version>1.5.6</springdoc.version>
<hug.springcloud.version>2.3.11-HSR11-1.0</hug.springcloud.version>
<org.json.version>20211205</org.json.version>
<logback.version>1.2.9</logback.version>
<hazelcast.version>5.0.2</hazelcast.version>
<liquibase.version>4.3.5</liquibase.version>
<opencsv.version>5.5.2</opencsv.version>
</properties>

<!-- Distribution management for releases/snapshots -->
Expand Down Expand Up @@ -116,16 +121,16 @@
</execution>
</executions>
<groupId>org.apache.maven.plugins</groupId>
<version>3.0.0-M3</version>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
<groupId>org.apache.maven.plugins</groupId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
Expand Down Expand Up @@ -187,6 +192,46 @@
<type>so</type>
<version>${weasis.opencv.native.version}</version>
</artifactItem>
<artifactItem>
<artifactId>libopencv_java</artifactId>
<classifier>linux-aarch64</classifier>
<destFileName>libopencv_java.so</destFileName>
<groupId>org.weasis.thirdparty.org.opencv</groupId>
<outputDirectory>${project.build.directory}/native-lib/lib/linux-aarch64
</outputDirectory>
<type>so</type>
<version>${weasis.opencv.native.version}</version>
</artifactItem>
<artifactItem>
<artifactId>libopencv_java</artifactId>
<classifier>linux-armv7a</classifier>
<destFileName>libopencv_java.so</destFileName>
<groupId>org.weasis.thirdparty.org.opencv</groupId>
<outputDirectory>${project.build.directory}/native-lib/lib/linux-armv7a
</outputDirectory>
<type>so</type>
<version>${weasis.opencv.native.version}</version>
</artifactItem>
<artifactItem>
<artifactId>libopencv_java</artifactId>
<classifier>macosx-x86-64</classifier>
<destFileName>libopencv_java.dylib</destFileName>
<groupId>org.weasis.thirdparty.org.opencv</groupId>
<outputDirectory>${project.build.directory}/native-lib/lib/macosx-x86-64
</outputDirectory>
<type>dylib</type>
<version>${weasis.opencv.native.version}</version>
</artifactItem>
<artifactItem>
<artifactId>opencv_java</artifactId>
<classifier>windows-x86-64</classifier>
<destFileName>opencv_java.dll</destFileName>
<groupId>org.weasis.thirdparty.org.opencv</groupId>
<outputDirectory>${project.build.directory}/native-lib/lib/windows-x86-64
</outputDirectory>
<type>dll</type>
<version>${weasis.opencv.native.version}</version>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
Expand All @@ -200,7 +245,7 @@
</execution>
</executions>
<groupId>org.apache.maven.plugins</groupId>
<version>3.1.1</version>
<version>3.2.0</version>
</plugin>
<plugin>
<artifactId>spring-boot-maven-plugin</artifactId>
Expand Down Expand Up @@ -242,7 +287,7 @@
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>2.6.1</version>
<version>2.17.7</version>
<configuration>
<!-- define a language-specific format -->
<java>
Expand Down Expand Up @@ -320,6 +365,14 @@
<artifactId>spring-boot-starter-web</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<dependency>
<artifactId>cache-api</artifactId>
Expand All @@ -328,21 +381,27 @@
</dependency>

<dependency>
<artifactId>hazelcast</artifactId>
<artifactId>hazelcast-spring</artifactId>
<groupId>com.hazelcast</groupId>
<version>4.1</version>
<version>${hazelcast.version}</version>
</dependency>

<!-- <dependency>-->
<!-- <artifactId>hazelcast</artifactId>-->
<!-- <groupId>com.hazelcast</groupId>-->
<!-- <version>4.1</version>-->
<!-- </dependency>-->

<dependency>
<artifactId>liquibase-maven-plugin</artifactId>
<groupId>org.liquibase</groupId>
<version>4.3.3</version>
<version>${liquibase.version}</version>
</dependency>

<dependency>
<artifactId>json</artifactId>
<groupId>org.json</groupId>
<version>20180813</version>
<version>${org.json.version}</version>
</dependency>

<dependency>
Expand All @@ -351,6 +410,12 @@
<version>2.8.6</version>
</dependency>

<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>${opencsv.version}</version>
</dependency>

<dependency>
<artifactId>weasis-dicom-tools</artifactId>
<exclusions>
Expand All @@ -369,7 +434,6 @@
</exclusions>
<groupId>org.weasis</groupId>
<version>${weasis-dicom-tools.version}</version>

</dependency>
<dependency>
<artifactId>javax.mail</artifactId>
Expand All @@ -383,7 +447,6 @@
<groupId>org.springframework.boot</groupId>
</dependency>


<!-- Vaadin Spring -->
<dependency>
<artifactId>vaadin-spring-boot-starter</artifactId>
Expand Down Expand Up @@ -490,12 +553,12 @@
<dependency>
<artifactId>vaadin-checkbox-flow</artifactId>
<groupId>com.vaadin</groupId>
<version>3.1.0</version>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<artifactId>togglebutton</artifactId>
<groupId>com.vaadin.componentfactory</groupId>
<version>1.0.0</version>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.vaadin.klaudeta</groupId>
Expand All @@ -507,6 +570,7 @@
<artifactId>validation-api</artifactId>
<groupId>javax.validation</groupId>
</dependency>

<dependency>
<artifactId>jul-to-slf4j</artifactId>
<groupId>org.slf4j</groupId>
Expand All @@ -515,6 +579,7 @@
<dependency>
<artifactId>logback-classic</artifactId>
<groupId>ch.qos.logback</groupId>
<version>${logback.version}</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -584,6 +649,12 @@
<artifactId>springdoc-openapi-ui</artifactId>
<version>${springdoc.version}</version>
</dependency>

<dependency>
<groupId>org.vaadin.artur</groupId>
<artifactId>spring-data-provider</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>

<!-- Dependency Management -->
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/karnak/StartApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class)
@EntityScan("org.karnak.backend.data.entity")
@EnableJpaRepositories("org.karnak.backend.data.repo")
@EnableVaadin(value = "org.karnak")
@EnableScheduling
@EnableAsync
public class StartApplication implements CommandLineRunner {

private static final Logger log = LoggerFactory.getLogger(StartApplication.class);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/karnak/backend/api/KheopsApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class KheopsApi {
public KheopsApi() {
httpClient =
HttpClient.newBuilder() // one instance, reuse
.version(HttpClient.Version.HTTP_2)
.version(HttpClient.Version.HTTP_1_1)
.build();
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/karnak/backend/api/PseudonymApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public class PseudonymApi {

private final HttpClient httpClient =
HttpClient.newBuilder() // one instance, reuse
.version(HttpClient.Version.HTTP_2)
.version(HttpClient.Version.HTTP_1_1)
.build();

private String sessionId;
Expand Down
Loading

0 comments on commit 4a25b1d

Please sign in to comment.