1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
/// GeEpiHandler.cpp
/**
*/
#include <wx/filename.h>
#include <wx/stdpaths.h>
#include <algorithm>
#include <set>
#include <math.h>
#include "Dictionary.h"
#include "DicomFile.h"
#include "StringConvert.h"
#include "Volume.h"
#include "SeriesHandler.h"
#include "GeEpiHandler.h"
using namespace jcs;
///
/**
*/
GeEpiHandler::GeEpiHandler(const std::string& seriesUid)
: SeriesHandler(seriesUid)
{
}
///
/**
*/
SeriesHandler::VolListType
GeEpiHandler::ReadVolIds(DicomFile& file)
{
VolListType v = SeriesHandler::ReadVolIds(file);
int image_number, number_of_slices;
if (!file.Find("InstanceNumber", image_number)) {
wxLogError(_("Instance number not found"));
}
Dictionary* Excite = Excite_Dictionary::Instance();
if (!file.Find(Excite->Lookup("Locations_in_acquisition"), number_of_slices)) {
wxLogError(_("Locations_in_acquisition not found"));
}
int vol_no = static_cast<int>(floor(static_cast<double>((image_number - 1))
/number_of_slices) + 1);
v.front().ids.push_back(itos(vol_no, 3));
return v;
}
|