Skip to content

Commit dcdbf0f

Browse files
committed
Process uploader requests without file count
1 parent b5289cd commit dcdbf0f

6 files changed

Lines changed: 110 additions & 8 deletions

File tree

pom.xml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<maven.compiler.target>11</maven.compiler.target>
2323
<maven.compiler.source>11</maven.compiler.source>
2424
<junit.version>5.10.0</junit.version>
25+
<org.springframework.version>5.2.8.RELEASE</org.springframework.version>
2526
</properties>
2627

2728
<dependencies>
@@ -41,6 +42,13 @@
4142
<artifactId>jersey-media-json-jackson</artifactId>
4243
<version>3.1.3</version>
4344
</dependency>
45+
<!-- Source: https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-multipart -->
46+
<dependency>
47+
<groupId>org.glassfish.jersey.media</groupId>
48+
<artifactId>jersey-media-multipart</artifactId>
49+
<version>3.1.3</version>
50+
<scope>compile</scope>
51+
</dependency>
4452
<dependency>
4553
<groupId>org.glassfish.jersey.inject</groupId>
4654
<artifactId>jersey-cdi2-se</artifactId>
@@ -98,6 +106,34 @@
98106
<artifactId>jakarta.mail-api</artifactId>
99107
<version>2.2.0-M1</version>
100108
</dependency>
109+
110+
<dependency>
111+
<groupId>org.springframework</groupId>
112+
<artifactId>spring-context</artifactId>
113+
<version>${org.springframework.version}</version>
114+
<scope>runtime</scope>
115+
</dependency>
116+
<dependency>
117+
<groupId>org.springframework</groupId>
118+
<artifactId>spring-orm</artifactId>
119+
<version>${org.springframework.version}</version>
120+
</dependency>
121+
<dependency>
122+
<groupId>org.springframework</groupId>
123+
<artifactId>spring-web</artifactId>
124+
<version>${org.springframework.version}</version>
125+
</dependency>
126+
<dependency>
127+
<groupId>org.springframework</groupId>
128+
<artifactId>spring-webmvc</artifactId>
129+
<version>${org.springframework.version}</version>
130+
</dependency>
131+
<dependency>
132+
<groupId>org.springframework</groupId>
133+
<artifactId>spring-webflux</artifactId>
134+
<version>${org.springframework.version}</version>
135+
</dependency>
136+
101137
</dependencies>
102138

103139
<build>

src/main/java/de/dktk/dd/rpb/uploaderbasicwebservices/DicomwebResource.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,37 @@
11
package de.dktk.dd.rpb.uploaderbasicwebservices;
22

3-
import jakarta.servlet.annotation.MultipartConfig;
3+
import de.dktk.dd.rpb.uploaderbasicwebservices.util.Counter;
4+
import de.dktk.dd.rpb.uploaderbasicwebservices.util.ICounter;
5+
import jakarta.enterprise.context.RequestScoped;
6+
import jakarta.inject.Inject;
47
import jakarta.ws.rs.*;
58
import jakarta.ws.rs.core.Context;
69
import jakarta.ws.rs.core.HttpHeaders;
7-
import jakarta.ws.rs.core.MediaType;
810
import jakarta.ws.rs.core.Response;
911

10-
import jakarta.mail.internet.MimeMultipart;
12+
import org.glassfish.jersey.media.multipart.BodyPart;
13+
import org.glassfish.jersey.media.multipart.MultiPart;
1114

1215
import java.io.IOException;
16+
import java.util.List;
1317

1418
@Path("/api/v1/dicomweb")
1519
public class DicomwebResource {
1620

21+
//@Inject private Counter counter;
22+
private Counter counter = new Counter();
23+
1724
@POST
1825
@Path("/studies/{dicomStudyIdentifier}")
19-
@Consumes("multipart/related")
26+
@Consumes({"multipart/mixed","multipart/related", "multipart/*"})
2027
public Response storeDicomStudy(@Context HttpHeaders headers,
2128
@PathParam("dicomStudyIdentifier") String dicomStudyIdentifier,
22-
MimeMultipart multi){
29+
MultiPart multipart) throws IOException {
30+
31+
32+
List<BodyPart> parts = multipart.getBodyParts();
33+
this.counter.setCount(this.counter.getCount() + parts.size());
34+
System.out.println("count: " + this.counter.getCount());
2335

2436
return Response.status(200).build();
2537
}

src/main/java/de/dktk/dd/rpb/uploaderbasicwebservices/GenerateUIDResource.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
@Path("/api/v1/pacs/generateuids")
2020
public class GenerateUIDResource {
21+
2122
@GET
2223
@Produces(MediaType.APPLICATION_JSON)
2324
public Response generateDicomUids(@Context HttpHeaders headers,
Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package de.dktk.dd.rpb.uploaderbasicwebservices;
22

3+
import de.dktk.dd.rpb.uploaderbasicwebservices.util.Counter;
4+
import jakarta.inject.Inject;
35
import jakarta.ws.rs.GET;
46
import jakarta.ws.rs.Path;
57
import jakarta.ws.rs.PathParam;
@@ -8,19 +10,47 @@
810
import jakarta.ws.rs.core.HttpHeaders;
911
import jakarta.ws.rs.core.MediaType;
1012
import jakarta.ws.rs.core.Response;
13+
import org.json.JSONObject;
1114

12-
@Path("/v1/pacs")
15+
import java.util.ArrayList;
16+
import java.util.HashMap;
17+
import java.util.List;
18+
import java.util.Map;
19+
20+
@Path("/api/v1/pacs")
1321
public class PacsSubjectResource {
1422

23+
//private final Counter counter;
24+
25+
//@Inject
26+
//public PacsSubjectResource(Counter counter) {
27+
// this.counter = counter;
28+
//}
29+
1530
@GET
1631
@Path("/subjects/{subjectid}/studies/{study}/series/{series}")
1732
@Produces(MediaType.APPLICATION_JSON)
1833
public Response getDicomSeriesData(@Context HttpHeaders headers,
1934
@PathParam("subjectid") String dicomPatientId,
2035
@PathParam("study") String studyInstanceUid,
2136
@PathParam("series") String seriesInstanceUid){
22-
//return Response.ok().build();
23-
return jakarta.ws.rs.core.Response.status(200).entity("28").build();
37+
38+
int count = 34;
39+
List<String> imageArray = new ArrayList<>();
40+
for (int i=0; i<count; i++){
41+
imageArray.add("0");
42+
}
43+
44+
Map<String,List> seriesImages = new HashMap<>();
45+
seriesImages.put("Images",imageArray);
46+
47+
List<Map> seriesData = new ArrayList<>();
48+
seriesData.add(seriesImages);
49+
50+
JSONObject jsonObject = new JSONObject();
51+
jsonObject.put("Series", seriesData);
52+
53+
return Response.status(200).entity(jsonObject.toString()).build();
2454
}
2555

2656
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package de.dktk.dd.rpb.uploaderbasicwebservices.util;
2+
3+
import jakarta.enterprise.context.RequestScoped;
4+
import jakarta.inject.Singleton;
5+
6+
@Singleton
7+
public class Counter implements ICounter {
8+
private int count =0;
9+
10+
public int getCount() {
11+
return count;
12+
}
13+
public void setCount(int count) {
14+
this.count = count;
15+
}
16+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package de.dktk.dd.rpb.uploaderbasicwebservices.util;
2+
3+
public interface ICounter {
4+
public int getCount();
5+
public void setCount(int count);
6+
7+
}

0 commit comments

Comments
 (0)