annotate Resources/Graveyard/Hello.cpp @ 217:20bc074ec19a

Viewer can display DICOM pyramids whose tile sizes vary across levels
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 12 Jan 2021 14:24:18 +0100
parents d529d9ce3c7e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
63
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 #include <stdint.h>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 #include <boost/noncopyable.hpp>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 #include <string>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 #include <vector>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 #include <json/reader.h>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 #include <json/value.h>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 #include <boost/thread/mutex.hpp>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 #include "../../Framework/Inputs/DicomPyramid.h"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 #include "../../Applications/ApplicationToolbox.h"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 #include "../../Resources/Orthanc/Plugins/Samples/Common/OrthancHttpConnection.h"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 #include "../../Resources/Orthanc/Plugins/Samples/Common/DicomDatasetReader.h"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 #include "../../Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.h"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 #include "../../Resources/Orthanc/Plugins/Samples/Common/SimplifiedOrthancDataset.h"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 #include <stdio.h>
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 namespace OrthancPlugins
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 void Run()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 OrthancHttpConnection orthanc;
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 #if 0
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 //DicomDatasetReader reader(new SimplifiedOrthancDataset(orthanc, "/instances/2791b060-6ff103b3-8078bed0-5abbd75a-a5c675f7/tags?simplify"));
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 DicomDatasetReader reader(new FullOrthancDataset(orthanc, "/instances/2791b060-6ff103b3-8078bed0-5abbd75a-a5c675f7/tags"));
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 std::cout << reader.GetIntegerValue(DICOM_TAG_TOTAL_PIXEL_MATRIX_COLUMNS) << "x"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 << reader.GetIntegerValue(DICOM_TAG_TOTAL_PIXEL_MATRIX_ROWS) << std::endl;
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 std::string s;
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 printf("%d ", reader.GetDataset().GetStringValue(s, DICOM_TAG_SOP_CLASS_UID));
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 printf("[%s]\n", s.c_str());
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 size_t c;
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 DicomPath p(DICOM_TAG_PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE);
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 printf("%d ", reader.GetDataset().GetSequenceSize(c, p));
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 printf("%d\n", c);
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 for (size_t i = 0; i < c; i++)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 /*DicomPath p(DICOM_TAG_COLUMN_POSITION_IN_TOTAL_IMAGE_PIXEL_MATRIX);
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 p.AddToPrefix(DICOM_TAG_PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE, i);
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 p.AddToPrefix(DICOM_TAG_PLANE_POSITION_SLIDE_SEQUENCE, 0);
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 std::string x, y;
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 printf("%d %d ", i, reader.GetDataset().GetStringValue(x, p));
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 p.SetFinalTag(DICOM_TAG_ROW_POSITION_IN_TOTAL_IMAGE_PIXEL_MATRIX);
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 printf("%d ", reader.GetDataset().GetStringValue(y, p));
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 printf("[%s,%s]\n", x.c_str(), y.c_str());*/
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 std::cout << i << ": ["
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 << reader.GetMandatoryStringValue(
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 DicomPath(DICOM_TAG_PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE, i,
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 DICOM_TAG_PLANE_POSITION_SLIDE_SEQUENCE, 0,
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 DICOM_TAG_COLUMN_POSITION_IN_TOTAL_IMAGE_PIXEL_MATRIX)) << ","
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 << reader.GetMandatoryStringValue(
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 DicomPath(DICOM_TAG_PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE, i,
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 DICOM_TAG_PLANE_POSITION_SLIDE_SEQUENCE, 0,
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 DICOM_TAG_ROW_POSITION_IN_TOTAL_IMAGE_PIXEL_MATRIX))
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 << "]" << std::endl;
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 #else
69
d529d9ce3c7e cache for DicomPyramidInstance
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 63
diff changeset
69 OrthancWSI::DicomPyramid pyramid(orthanc, "09d0cca4-a8f0cd78-5480c690-ed14eb3b-a6614d14", true);
63
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 //OrthancWSI::DicomPyramid pyramid(orthanc, "4fdff9b9-8b81bc8f-04a3f903-4d44bd57-cc3bf42c");
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 #endif
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 int main()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 OrthancWSI::ApplicationToolbox::GlobalInitialize();
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 OrthancPlugins::Run();
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 OrthancWSI::ApplicationToolbox::GlobalFinalize();
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 return 0;
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 }