Mercurial > hg > orthanc-java
annotate Samples/MammographyDeepLearning/src/main/java/DicomToolbox.java @ 28:43923934e934
added sample: deep learning for mammography
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 12 Jun 2024 13:58:29 +0200 |
parents | |
children |
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 } |