annotate Samples/MammographyDeepLearning/src/main/java/DicomToolbox.java @ 43:678bbed285a1 default tip

improved import of JNI in cmake
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 06 Sep 2024 13:53:54 +0200
parents 43923934e934
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * SPDX-FileCopyrightText: 2023-2024 Sebastien Jodogne, UCLouvain, Belgium
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 * SPDX-License-Identifier: GPL-3.0-or-later
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 **/
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 /**
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * Java plugin for Orthanc
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * Copyright (C) 2023-2024 Sebastien Jodogne, UCLouvain, Belgium
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 *
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * This program is free software: you can redistribute it and/or
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 * modify it under the terms of the GNU General Public License as
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * published by the Free Software Foundation, either version 3 of the
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * License, or (at your option) any later version.
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 *
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful, but
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * General Public License for more details.
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 *
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 **/
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 import org.json.JSONArray;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 import org.json.JSONObject;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 import java.io.IOException;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 import java.util.List;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 public class DicomToolbox {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 private static final String MAPPING_RESOURCE = "0008,0105";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 private static final String REFERENCED_SOP_CLASS_UID = "0008,1150";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 private static final String REFERENCED_SOP_INSTANCE_UID = "0008,1155";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 private static final String REFERENCED_SOP_SEQUENCE = "0008,1199";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 private static final String CONTENT_TEMPLATE_SEQUENCE = "0040,a504";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 private static final String TEMPLATE_IDENTIFIER = "0040,db00";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 private static final String RELATIONSHIP_TYPE = "0040,a010";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 private static final String CONCEPT_NAME_CODE_SEQUENCE = "0040,a043";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 private static final String VALUE_TYPE = "0040,a040";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 private static final String CONCEPT_CODE_SEQUENCE = "0040,a168";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 private static final String CONTINUITY_OF_CONTENT = "0040,a050";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 private static final String CONTENT_SEQUENCE = "0040,a730";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 private static final String TEXT_VALUE_ATTRIBUTE = "0040,a160";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 private static final String UID_ATTRIBUTE = "0040,a124";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 private static final String MEASURED_VALUE_SEQUENCE = "0040,a300";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 private static final String MEASUREMENT_UNITS_CODE_SEQUENCE = "0040,08ea";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 private static final String FLOATING_POINT_VALUE = "0040,a161";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 private static final String NUMERIC_VALUE = "0040,a30a";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 private static final String GRAPHIC_DATA = "0070,0022";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 private static final String GRAPHIC_TYPE = "0070,0023";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 static JSONObject createDicomSR(OrthancConnection client,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 String instance,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 List<Detection> detections,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 double aspectRatio) throws IOException, InterruptedException {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 final JSONObject instanceTags = client.doGetAsJsonObject("/instances/" + instance + "/tags?short");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 final String trackingUid = client.doGetAsString("/tools/generate-uid?level=instance");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 String instanceStudy = client.doGetAsJsonObject("/instances/" + instance + "/study").getString("ID");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 // https://dicom.nema.org/medical/dicom/2024a/output/chtml/part16/chapter_A.html#sect_TID_1500
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 // Sample TID 1500: https://dicom.nema.org/medical/dicom/current/output/chtml/part21/sect_a.7.2.html
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 JSONObject json = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 json.put("Parent", instanceStudy);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 JSONObject tags = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 tags.put("0008,0016", "1.2.840.10008.5.1.4.1.1.88.33"); // SOP Class UID
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 tags.put("0008,0060", "SR"); // Modality
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 tags.put("0008,0070", ""); // Manufacturer
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 tags.put("0008,1111", new JSONArray()); // Referenced Performed Procedure Step Sequence is type 2 (required but can be empty)
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 tags.put("0020,0011", "1"); // Series number
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 tags.put("0020,0013", "1"); // Instance number
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 tags.put("0040,a040", "CONTAINER"); // Value type for SR: https://dicom.nema.org/medical/dicom/2024a/output/chtml/part03/sect_C.17.3.html
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 // CID 7021 Measurement Report Document Title: https://dicom.nema.org/medical/dicom/2024a/output/chtml/part16/sect_CID_7021.html
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 tags.append("0040,a043", new DicomCode("126000", "DCM", "Imaging Measurement Report").toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 tags.put("0040,a050", "CONTINUOUS"); // Continuity of content
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 tags.put("0040,a372", new JSONArray()); // Performed procedure code sequence
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 // Current Requested Procedure Evidence: References to the StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, and SOPClassUID
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 tags.append("0040,a375", new JSONObject().
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 put("0020,000d", instanceTags.getString("0020,000d")).
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 append("0008,1115", new JSONObject().
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89 put("0020,000e", instanceTags.getString("0020,000e")).
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 append("0008,1199", new JSONObject().
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 put("0008,1150", instanceTags.getString("0008,0016")).
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 put("0008,1155", instanceTags.getString("0008,0018")))));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 tags.put("0040,a491", "PARTIAL"); // Completion flag
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 tags.put("0040,a493", "UNVERIFIED"); // Verification flag
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 tags.put("0040,a496", "PRELIMINARY"); // Preliminary flag
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 // Content template sequence, which indicates TID 1500
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 setTemplateId(tags, "1500");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 JSONArray contentSequence = new JSONArray();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 contentSequence.put(createCodeRelationship(
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 new DicomCode("121049", "DCM", "Language of Content Item and Descendants"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 new DicomCode("en-US", "RFC5646", "English (United States)")));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 // This is "procedure_reported" in "highdicom.sr.MeasurementReport()"
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 contentSequence.put(createCodeRelationship(
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 new DicomCode("121058", "DCM", "Procedure reported"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 new DicomCode("43468-8", "LN", "XR unspecified body region")));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 JSONArray measurementGroups = new JSONArray();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 for (Detection detection : detections) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114 JSONArray measurements = new JSONArray();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 measurements.put(createTextContext(
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 new DicomCode("112039", "DCM", "Tracking Identifier"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 "Orthanc Deep Learning for Mammography"));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 measurements.put(createUidReference(
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 new DicomCode("112040", "DCM", "Tracking Unique Identifier"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 trackingUid));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 measurements.put(createNumericValue(
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 new DicomCode("111047", "DCM", "Probability of cancer"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 new DicomCode("%", "UCUM", "Percent"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 detection.getScore() * 100.0));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 measurements.put(createRectangle(
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 new DicomCode("111030", "DCM", "Image Region"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 instanceTags.getString("0008,0016"), instanceTags.getString("0008,0018"),
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 detection.getRectangle(), aspectRatio));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 JSONObject measurementGroup = createContainer(new DicomCode("125007", "DCM", "Measurement Group"), measurements);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 setTemplateId(measurementGroup, "1410");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 measurementGroups.put(measurementGroup);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 JSONObject imagingMeasurements = createContainer(new DicomCode("126010", "DCM", "Imaging Measurements"), measurementGroups);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 contentSequence.put(imagingMeasurements);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 tags.put("0040,a730", contentSequence);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 json.put("Tags", tags);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 return client.doPostAsJsonObject("/tools/create-dicom", json.toString());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 static public class Point2D {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 private double x;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 private double y;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 public Point2D(double x,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 double y) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 this.x = x;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 this.y = y;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 public double getX() {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 return x;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 public double getY() {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 return y;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168 public static JSONObject setTemplateId(JSONObject target,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 String templateId) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 if (target.has(CONTENT_TEMPLATE_SEQUENCE)) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 throw new IllegalStateException();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 } else {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 target.append(CONTENT_TEMPLATE_SEQUENCE, new JSONObject().
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 put(MAPPING_RESOURCE, "DCMR").
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 put(TEMPLATE_IDENTIFIER, templateId));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 return target;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 public static JSONObject createCodeRelationship(DicomCode concept,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 DicomCode referencedCode) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 JSONObject result = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183 result.put(RELATIONSHIP_TYPE, "HAS CONCEPT MOD");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 result.append(CONCEPT_NAME_CODE_SEQUENCE, concept.toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 result.put(VALUE_TYPE, "CODE");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 result.append(CONCEPT_CODE_SEQUENCE, referencedCode.toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 return result;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 public static JSONObject createContainer(DicomCode concept,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 JSONArray content) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 JSONObject result = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193 result.put(RELATIONSHIP_TYPE, "CONTAINS");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194 result.put(VALUE_TYPE, "CONTAINER");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
195 result.append(CONCEPT_NAME_CODE_SEQUENCE, concept.toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196 result.put(CONTINUITY_OF_CONTENT, "CONTINUOUS");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
197 result.put(CONTENT_SEQUENCE, content);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 return result;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
201 public static JSONObject createTextContext(DicomCode concept,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
202 String value) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
203 JSONObject result = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
204 result.put(RELATIONSHIP_TYPE, "HAS OBS CONTEXT");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
205 result.put(VALUE_TYPE, "TEXT");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
206 result.append(CONCEPT_NAME_CODE_SEQUENCE, concept.toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
207 result.put(TEXT_VALUE_ATTRIBUTE, value);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
208 return result;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
210
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
211 public static JSONObject createUidReference(DicomCode concept,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
212 String uid) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
213 JSONObject result = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
214 result.put(RELATIONSHIP_TYPE, "HAS OBS CONTEXT");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215 result.put(VALUE_TYPE, "UIDREF");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
216 result.append(CONCEPT_NAME_CODE_SEQUENCE, concept.toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
217 result.put(UID_ATTRIBUTE, uid);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
218 return result;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
219 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
220
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
221 public static JSONObject createNumericValue(DicomCode concept,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
222 DicomCode unit,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
223 double value) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
224 String ds = String.valueOf(value);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
225 if (ds.length() > 16) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
226 ds = ds.substring(0, 16); // The DS VR must have less than 16 characters
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
227 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
228
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
229 JSONObject result = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
230 result.put(RELATIONSHIP_TYPE, "CONTAINS");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
231 result.put(VALUE_TYPE, "NUM");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
232 result.append(CONCEPT_NAME_CODE_SEQUENCE, concept.toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
233 result.append(MEASURED_VALUE_SEQUENCE, new JSONObject().
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
234 append(MEASUREMENT_UNITS_CODE_SEQUENCE, unit.toJson()).
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
235 put(FLOATING_POINT_VALUE, String.valueOf(value)).
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
236 put(NUMERIC_VALUE, ds));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
237 return result;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
238 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
239
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
240 public static JSONObject createSelectedFromImage(String sopClassUid,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
241 String sopInstanceUid) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
242 JSONObject result = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
243 result.put(RELATIONSHIP_TYPE, "SELECTED FROM");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
244 result.put(VALUE_TYPE, "IMAGE");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
245 result.append(REFERENCED_SOP_SEQUENCE, new JSONObject().
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
246 put(REFERENCED_SOP_CLASS_UID, sopClassUid).
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
247 put(REFERENCED_SOP_INSTANCE_UID, sopInstanceUid));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
248 result.append(CONCEPT_NAME_CODE_SEQUENCE, new DicomCode("111040", "DCM", "Original Source").toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
249 return result;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
250 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
251
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
252 public static JSONObject createPolyline2D(DicomCode concept,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
253 String sopClassUid,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
254 String sopInstanceUid,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
255 Point2D vertices[]) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
256 String polyline = new String();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
257 for (int i = 0; i < vertices.length; i++) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
258 if (!polyline.isEmpty()) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
259 polyline = polyline + "\\";
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
260 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
261 polyline += String.valueOf(vertices[i].getX()) + "\\" + String.valueOf(vertices[i].getY());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
262 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
263
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
264 JSONObject result = new JSONObject();
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
265 result.put(RELATIONSHIP_TYPE, "CONTAINS");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
266 result.put(VALUE_TYPE, "SCOORD");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
267 result.append(CONCEPT_NAME_CODE_SEQUENCE, concept.toJson());
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
268 result.append(CONTENT_SEQUENCE, createSelectedFromImage(sopClassUid, sopInstanceUid));
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
269 result.put(GRAPHIC_DATA, polyline); // WARNING: This necessitates Orthanc > 1.12.4: https://orthanc.uclouvain.be/hg/orthanc/rev/dedbf019a707
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
270 result.put(GRAPHIC_TYPE, "POLYLINE");
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
271 return result;
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
272 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
273
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
274 public static JSONObject createRectangle(DicomCode concept,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
275 String sopClassUid,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
276 String sopInstanceUid,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
277 Rectangle rectangle,
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
278 double aspectRatio) {
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
279 Point2D vertices[] = new Point2D[5];
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
280 vertices[0] = new Point2D(rectangle.getX1() * aspectRatio, rectangle.getY1() * aspectRatio);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
281 vertices[1] = new Point2D(rectangle.getX2() * aspectRatio, rectangle.getY1() * aspectRatio);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
282 vertices[2] = new Point2D(rectangle.getX2() * aspectRatio, rectangle.getY2() * aspectRatio);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
283 vertices[3] = new Point2D(rectangle.getX1() * aspectRatio, rectangle.getY2() * aspectRatio);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
284 vertices[4] = new Point2D(rectangle.getX1() * aspectRatio, rectangle.getY1() * aspectRatio);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
285 return createPolyline2D(concept, sopClassUid, sopInstanceUid, vertices);
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
286 }
43923934e934 added sample: deep learning for mammography
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
287 }