SlideIO 2.0.0
Open-source library for reading of medical images
Loading...
Searching...
No Matches
dcmslide.hpp
1// This file is part of slideio project.
2// It is subject to the license terms in the LICENSE file found in the top-level directory
3// of this distribution and at http://slideio.com/license.html.
4#pragma once
5
6#include "slideio/drivers/dcm/dcm_api_def.hpp"
7#include "slideio/core/cvslide.hpp"
8#include "slideio/drivers/dcm/dcmscene.hpp"
9#include <fstream>
10
11#if defined(_MSC_VER)
12#pragma warning( push )
13#pragma warning(disable: 4251)
14#endif
15
16namespace slideio
17{
18 class SLIDEIO_DCM_EXPORTS DCMSlide : public CVSlide
19 {
20 friend class DCMImageDriver;
21 protected:
22 DCMSlide(const std::string& filePath, const std::string& driverId);
23 public:
24 int getNumScenes() const override;
25 std::string getFilePath() const override;
26 std::shared_ptr<CVScene> getScene(int index) const override;
27 void initFromFile();
28 void processRegularSeries(std::vector<std::shared_ptr<DCMFile>>& files, bool keepOrder);
29
30 private:
31 void processWSISeries(std::vector<std::shared_ptr<DCMFile>>& dcmFiles);
32 void processSeries(std::vector<std::shared_ptr<DCMFile>>& files, bool keepOrder=false);
33 void initFromDir();
34 void initFromDicomDirFile();
35 void init();
36 void initFromWSIFile();
37 void initFromRegularDicomFile();
38 private:
39 std::vector<std::shared_ptr<CVScene>> m_scenes;
40 std::string m_srcPath;
41 };
42}
43
44#if defined(_MSC_VER)
45#pragma warning( pop )
46#endif
Definition: exceptions.hpp:15