summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Cerutti <gahr@FreeBSD.org>2010-07-31 10:07:19 +0000
committerPietro Cerutti <gahr@FreeBSD.org>2010-07-31 10:07:19 +0000
commite87274f2f7ecac39933c36157ba167aee5b066f5 (patch)
treeb3cd9971d15e99b16004afed6dbdbc2184e2bc84
parentUpdate to 1.369 (diff)
- New port: graphics/aeskulap
Aeskulap is a medical image viewer. It is able to load a series of special images stored in the DICOM format for review. Additionally Aeskulap is able to query and fetch DICOM images from archive nodes (also called PACS) over the network.
Notes
Notes: svn path=/head/; revision=258523
-rw-r--r--graphics/Makefile1
-rw-r--r--graphics/aeskulap/Makefile37
-rw-r--r--graphics/aeskulap/distinfo3
-rw-r--r--graphics/aeskulap/files/patch-Makefile.am27
-rw-r--r--graphics/aeskulap/files/patch-Makefile.in29
-rw-r--r--graphics/aeskulap/files/patch-configuration_aconfiguration.cpp10
-rw-r--r--graphics/aeskulap/files/patch-configure33
-rw-r--r--graphics/aeskulap/files/patch-configure.in32
-rw-r--r--graphics/aeskulap/files/patch-imagepool_fileloader.cpp56
-rw-r--r--graphics/aeskulap/files/patch-imagepool_netquery.cpp70
-rw-r--r--graphics/aeskulap/files/patch-imagepool_poolinstance.cpp130
-rw-r--r--graphics/aeskulap/files/patch-imagepool_poolmoveassociation.cpp28
-rw-r--r--graphics/aeskulap/files/patch-imagepool_poolnetwork.cpp18
-rw-r--r--graphics/aeskulap/files/patch-imagepool_poolservers.cpp11
-rw-r--r--graphics/aeskulap/files/patch-src_main.cpp11
-rw-r--r--graphics/aeskulap/files/patch-widgets_awindowleveltoolbutton.cpp11
-rw-r--r--graphics/aeskulap/files/patch-widgets_seriesview.cpp11
-rw-r--r--graphics/aeskulap/pkg-descr7
-rw-r--r--graphics/aeskulap/pkg-plist36
19 files changed, 561 insertions, 0 deletions
diff --git a/graphics/Makefile b/graphics/Makefile
index 362bd1934db6..713c69cfbcad 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -20,6 +20,7 @@
SUBDIR += aalib
SUBDIR += aaphoto
SUBDIR += acidwarp
+ SUBDIR += aeskulap
SUBDIR += agave
SUBDIR += agg
SUBDIR += albumshaper
diff --git a/graphics/aeskulap/Makefile b/graphics/aeskulap/Makefile
new file mode 100644
index 000000000000..dbaad39638c8
--- /dev/null
+++ b/graphics/aeskulap/Makefile
@@ -0,0 +1,37 @@
+# New ports collection Makefile for: aeskulap
+# Date created: 21 July 2010
+# Whom: gahr
+#
+# $FreeBSD$
+#
+
+PORTNAME= aeskulap
+PORTVERSION= 0.2.1
+CATEGORIES= graphics
+MASTER_SITES= http://www.bms-austria.com/%7Epipelka/${PORTNAME}/
+
+MAINTAINER= gahr@FreeBSD.org
+COMMENT= A medical image viewer
+
+LIB_DEPENDS= gtkmm-2.4:${PORTSDIR}/x11-toolkits/gtkmm24 \
+ glademm-2.4:${PORTSDIR}/devel/libglademm24 \
+ gconfmm-2.6:${PORTSDIR}/devel/gconfmm26 \
+ dcmdata.3:${PORTSDIR}/devel/dcmtk
+
+USE_GETTEXT= yes
+USE_GNOME= gconf2
+GCONF_SCHEMAS= aeskulap.schemas
+USE_LDCONFIG= ${PREFIX}/lib/aeskulap
+
+CXXFLAGS+= -I${LOCALBASE}/include/dcmtk \
+ -I${LOCALBASE}/include/dcmtk/config \
+ -I${LOCALBASE}/include/dcmtk/ofstd \
+ -I${LOCALBASE}/include/dcmtk/dcmdata \
+ -I${LOCALBASE}/include/dcmtk/dcmnet \
+ -I${LOCALBASE}/include/dcmtk/dcmjpeg \
+ -I${LOCALBASE}/include/dcmtk/dcmimage \
+ -I${LOCALBASE}/include/dcmtk/dcmimgle \
+ -I${LOCALBASE}/include
+GNU_CONFIGURE= yes
+
+.include <bsd.port.mk>
diff --git a/graphics/aeskulap/distinfo b/graphics/aeskulap/distinfo
new file mode 100644
index 000000000000..25f977c83c11
--- /dev/null
+++ b/graphics/aeskulap/distinfo
@@ -0,0 +1,3 @@
+MD5 (aeskulap-0.2.1.tar.gz) = 2936dc88e588bc6ca8a1d5d8d98fe9cc
+SHA256 (aeskulap-0.2.1.tar.gz) = 6bbf1a26466ba190b1807e06f3d682575439668d6f11d7a5fa6b3fb1049fab50
+SIZE (aeskulap-0.2.1.tar.gz) = 4272339
diff --git a/graphics/aeskulap/files/patch-Makefile.am b/graphics/aeskulap/files/patch-Makefile.am
new file mode 100644
index 000000000000..41593c823680
--- /dev/null
+++ b/graphics/aeskulap/files/patch-Makefile.am
@@ -0,0 +1,27 @@
+--- Makefile.am.orig 2010-07-26 18:23:45.000000000 +0000
++++ Makefile.am 2010-07-26 18:24:07.000000000 +0000
+@@ -1,6 +1,5 @@
+ SUBDIRS = \
+ po \
+- dcmtk \
+ configuration \
+ imagepool \
+ widgets \
+@@ -33,17 +32,6 @@
+
+ @INTLTOOL_DESKTOP_RULE@
+
+-dist-hook:
+- mkdir -p $(distdir)/dcmtk
+- cp -Rf $(top_srcdir)/dcmtk/* $(distdir)/dcmtk
+- cd $(distdir)/dcmtk && make distclean
+- list=`find $(distdir)/dcmtk -name "CVS"` && rm -Rf $$list
+- list=`find $(distdir)/dcmtk -name ".cvsignore"` && rm -f $$list
+- list=`find $(distdir)/dcmtk -name ".#*"` && rm -f $$list
+- list=`find $(distdir)/dcmtk -name "*.a"` && rm -f $$list
+- list=`find $(distdir)/dcmtk -name "*.so"` && rm -f $$list
+-
+ distclean: distclean-recursive
+- cd $(top_builddir)/dcmtk && make distclean
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
diff --git a/graphics/aeskulap/files/patch-Makefile.in b/graphics/aeskulap/files/patch-Makefile.in
new file mode 100644
index 000000000000..ab7f21074846
--- /dev/null
+++ b/graphics/aeskulap/files/patch-Makefile.in
@@ -0,0 +1,29 @@
+--- Makefile.in.orig 2010-07-26 18:25:22.000000000 +0000
++++ Makefile.in 2010-07-26 18:25:37.000000000 +0000
+@@ -237,7 +237,6 @@
+ target_alias = @target_alias@
+ SUBDIRS = \
+ po \
+- dcmtk \
+ configuration \
+ imagepool \
+ widgets \
+@@ -709,18 +708,7 @@
+
+ @INTLTOOL_DESKTOP_RULE@
+
+-dist-hook:
+- mkdir -p $(distdir)/dcmtk
+- cp -Rf $(top_srcdir)/dcmtk/* $(distdir)/dcmtk
+- cd $(distdir)/dcmtk && make distclean
+- list=`find $(distdir)/dcmtk -name "CVS"` && rm -Rf $$list
+- list=`find $(distdir)/dcmtk -name ".cvsignore"` && rm -f $$list
+- list=`find $(distdir)/dcmtk -name ".#*"` && rm -f $$list
+- list=`find $(distdir)/dcmtk -name "*.a"` && rm -f $$list
+- list=`find $(distdir)/dcmtk -name "*.so"` && rm -f $$list
+-
+ distclean: distclean-recursive
+- cd $(top_builddir)/dcmtk && make distclean
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/graphics/aeskulap/files/patch-configuration_aconfiguration.cpp b/graphics/aeskulap/files/patch-configuration_aconfiguration.cpp
new file mode 100644
index 000000000000..8391c4ca7662
--- /dev/null
+++ b/graphics/aeskulap/files/patch-configuration_aconfiguration.cpp
@@ -0,0 +1,10 @@
+--- configuration/aconfiguration.cpp.orig 2010-07-26 18:34:00.000000000 +0000
++++ configuration/aconfiguration.cpp 2010-07-26 18:34:14.000000000 +0000
+@@ -27,6 +27,7 @@
+ */
+
+ #include "aconfiguration.h"
++#include <libintl.h>
+
+ namespace Aeskulap {
+
diff --git a/graphics/aeskulap/files/patch-configure b/graphics/aeskulap/files/patch-configure
new file mode 100644
index 000000000000..9885c129608a
--- /dev/null
+++ b/graphics/aeskulap/files/patch-configure
@@ -0,0 +1,33 @@
+--- configure.orig 2010-07-26 19:30:23.000000000 +0000
++++ configure 2010-07-26 19:30:02.000000000 +0000
+@@ -23827,17 +23827,11 @@
+
+
+
+-DCMJPEG_LIBS="-L../dcmtk/dcmjpeg/libijg8 -L../dcmtk/dcmjpeg/libijg12 -L../dcmtk/dcmjpeg/libijg16 -lijg8 -lijg12 -lijg16"
++DCMJPEG_LIBS="-lijg8 -lijg12 -lijg16"
+
+
+-DCMTK_CFLAGS="-DHAVE_CONFIG_H -I\$(top_srcdir)/dcmtk/config/include -I\$(top_srcdir)/dcmtk/ofstd/include -I\$(top_srcdir)/dcmtk/dcmdata/include -I\$(top_srcdir)/dcmtk/dcmnet/include -I\$(top_srcdir)/dcmtk/dcmimage/include -I\$(top_srcdir)/dcmtk/dcmimgle/include -I\$(top_srcdir)/dcmtk/dcmjpeg/include"
+-DCMTK_LIBS="-L../dcmtk/ofstd/libsrc \
+--L../dcmtk/dcmdata/libsrc \
+--L../dcmtk/dcmnet/libsrc \
+--L../dcmtk/dcmjpeg/libsrc \
+--L../dcmtk/dcmimage/libsrc \
+--L../dcmtk/dcmimgle/libsrc \
+--ldcmjpeg \$(DCMJPEG_LIBS) -ldcmimage -ldcmimgle -ldcmnet -ldcmdata -lofstd -lrt -lpthread"
++DCMTK_CFLAGS=""
++DCMTK_LIBS="-ldcmjpeg \$(DCMJPEG_LIBS) -ldcmimage -ldcmimgle -ldcmnet -ldcmdata -lofstd -lrt -lpthread"
+
+
+
+@@ -25432,9 +25426,3 @@
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+ fi
+-
+-
+-cd $srcdir/dcmtk
+-export CFLAGS="$CFLAGS"
+-export CXXFLAGS="$CXXFLAGS"
+-sh ./configure --without-openssl --without-zlib --without-libwrap --prefix=${prefix} --libdir=${prefix}/lib/aeskulap
diff --git a/graphics/aeskulap/files/patch-configure.in b/graphics/aeskulap/files/patch-configure.in
new file mode 100644
index 000000000000..fb418a5e1dfd
--- /dev/null
+++ b/graphics/aeskulap/files/patch-configure.in
@@ -0,0 +1,32 @@
+--- configure.in.orig 2010-07-26 19:28:08.000000000 +0000
++++ configure.in 2010-07-26 19:28:57.000000000 +0000
+@@ -77,17 +77,11 @@
+
+ dnl AC_CONFIG_SUBDIRS(dcmtk)
+
+-DCMJPEG_LIBS="-L../dcmtk/dcmjpeg/libijg8 -L../dcmtk/dcmjpeg/libijg12 -L../dcmtk/dcmjpeg/libijg16 -lijg8 -lijg12 -lijg16"
++DCMJPEG_LIBS="-lijg8 -lijg12 -lijg16"
+ AC_SUBST(DCMJPEG_LIBS)
+
+-DCMTK_CFLAGS="-DHAVE_CONFIG_H -I\$(top_srcdir)/dcmtk/config/include -I\$(top_srcdir)/dcmtk/ofstd/include -I\$(top_srcdir)/dcmtk/dcmdata/include -I\$(top_srcdir)/dcmtk/dcmnet/include -I\$(top_srcdir)/dcmtk/dcmimage/include -I\$(top_srcdir)/dcmtk/dcmimgle/include -I\$(top_srcdir)/dcmtk/dcmjpeg/include"
+-DCMTK_LIBS="-L../dcmtk/ofstd/libsrc \
+--L../dcmtk/dcmdata/libsrc \
+--L../dcmtk/dcmnet/libsrc \
+--L../dcmtk/dcmjpeg/libsrc \
+--L../dcmtk/dcmimage/libsrc \
+--L../dcmtk/dcmimgle/libsrc \
+--ldcmjpeg \$(DCMJPEG_LIBS) -ldcmimage -ldcmimgle -ldcmnet -ldcmdata -lofstd -lrt -lpthread"
++DCMTK_CFLAGS=""
++DCMTK_LIBS="-ldcmjpeg \$(DCMJPEG_LIBS) -ldcmimage -ldcmimgle -ldcmnet -ldcmdata -lofstd -lrt -lpthread"
+
+ AC_SUBST(DCMTK_CFLAGS)
+ AC_SUBST(DCMTK_LIBS)
+@@ -111,8 +105,3 @@
+ widgets/Makefile
+ pixmaps/Makefile
+ ])
+-
+-cd $srcdir/dcmtk
+-export CFLAGS="$CFLAGS"
+-export CXXFLAGS="$CXXFLAGS"
+-sh ./configure --without-openssl --without-zlib --without-libwrap --prefix=${prefix} --libdir=${prefix}/lib/aeskulap
diff --git a/graphics/aeskulap/files/patch-imagepool_fileloader.cpp b/graphics/aeskulap/files/patch-imagepool_fileloader.cpp
new file mode 100644
index 000000000000..579b66728d7d
--- /dev/null
+++ b/graphics/aeskulap/files/patch-imagepool_fileloader.cpp
@@ -0,0 +1,56 @@
+--- imagepool/fileloader.cpp.orig 2010-07-26 21:27:54.000000000 +0000
++++ imagepool/fileloader.cpp 2010-07-26 21:41:27.000000000 +0000
+@@ -56,7 +56,8 @@
+ }
+
+ void FileLoader::prescan_files(std::list< Glib::ustring >* filelist) {
+- std::string studyinstanceuid;
++ OFString studyinstanceuid;
++ const char *studyinstanceuid_str;
+ std::list< Glib::ustring >::iterator i = filelist->begin();
+ unsigned int curr = 0;
+ unsigned int max = filelist->size();
+@@ -70,16 +71,18 @@
+ (*i).c_str(),
+ EXS_Unknown,
+ EGL_noChange,
+- DCM_MaxReadLength,
+- false);
++ DCM_MaxReadLength);
+
+ if(cond.good() && dfile.getDataset()->findAndGetOFString(DCM_StudyInstanceUID, studyinstanceuid).good()) {
+- std::string seriesinstanceuid;
++ studyinstanceuid_str = studyinstanceuid.c_str();
++ OFString seriesinstanceuid;
++ const char *seriesinstanceuid_str;
+ dfile.getDataset()->findAndGetOFString(DCM_SeriesInstanceUID, seriesinstanceuid);
++ seriesinstanceuid_str = seriesinstanceuid.c_str();
+
+- m_cache[studyinstanceuid].m_instancecount++;
+- m_cache[studyinstanceuid].m_seriesuid.insert(seriesinstanceuid);
+- m_cache[studyinstanceuid].m_seriescount = m_cache[studyinstanceuid].m_seriesuid.size();
++ m_cache[studyinstanceuid_str].m_instancecount++;
++ m_cache[studyinstanceuid_str].m_seriesuid.insert(seriesinstanceuid_str);
++ m_cache[studyinstanceuid_str].m_seriescount = m_cache[studyinstanceuid_str].m_seriesuid.size();
+ }
+ }
+ }
+@@ -87,7 +90,7 @@
+ bool FileLoader::run() {
+ std::list< Glib::ustring >* filelist = m_filelist;
+ std::list< Glib::ustring >::iterator i = filelist->begin();
+- std::string studyinstanceuid;
++ OFString studyinstanceuid;
+
+ for(; i != filelist->end(); i++) {
+ DcmFileFormat dfile;
+@@ -96,8 +99,7 @@
+ (*i).c_str(),
+ EXS_Unknown,
+ EGL_noChange,
+- DCM_MaxReadLength,
+- false);
++ DCM_MaxReadLength);
+
+ if(!cond.good()) {
+ std::cout << "unable to open file !!!" << std::endl;
diff --git a/graphics/aeskulap/files/patch-imagepool_netquery.cpp b/graphics/aeskulap/files/patch-imagepool_netquery.cpp
new file mode 100644
index 000000000000..5b8dec5fc694
--- /dev/null
+++ b/graphics/aeskulap/files/patch-imagepool_netquery.cpp
@@ -0,0 +1,70 @@
+--- imagepool/netquery.cpp.orig 2010-07-26 21:45:52.000000000 +0000
++++ imagepool/netquery.cpp 2010-07-26 21:53:57.000000000 +0000
+@@ -31,10 +31,11 @@
+ #include "dcdeftag.h"
+ #include "poolfindassociation.h"
+ #include "netclient.h"
+-#include "gettext.h"
+
+ #include <iostream>
+
++#include <libintl.h>
++
+ namespace ImagePool {
+
+ static void fix_date(std::string& date) {
+@@ -50,7 +51,7 @@
+ }
+
+ static void fix_time(std::string& time) {
+- unsigned int i = time.find(".");
++ size_t i = time.find(".");
+ if(i != std::string::npos) {
+ time = time.substr(0, i);
+ }
+@@ -88,28 +89,35 @@
+
+ Glib::RefPtr< ImagePool::Series > create_query_series(DcmDataset* dset) {
+ Glib::RefPtr< ImagePool::Series > result = Glib::RefPtr< ImagePool::Series >(new Series);
++ OFString res;
+
+- dset->findAndGetOFString(DCM_SeriesInstanceUID, result->m_seriesinstanceuid);
+- dset->findAndGetOFString(DCM_SeriesDescription, result->m_description);
++ dset->findAndGetOFString(DCM_SeriesInstanceUID, res);
++ result->m_seriesinstanceuid = res.c_str();
++ dset->findAndGetOFString(DCM_SeriesDescription, res);
++ result->m_description = res.c_str();
+ if(result->m_description.empty()) {
+- dset->findAndGetOFString(DCM_StudyDescription, result->m_description);
++ dset->findAndGetOFString(DCM_StudyDescription, res);
++ result->m_description = res.c_str();
+ }
+ if(result->m_description.empty()) {
+ result->m_description = gettext("no description");
+ }
+
+- dset->findAndGetOFString(DCM_Modality, result->m_modality);
++ dset->findAndGetOFString(DCM_Modality, res);
++ result->m_modality = res.c_str();
+
+- dset->findAndGetOFString(DCM_SeriesTime, result->m_seriestime);
++ dset->findAndGetOFString(DCM_SeriesTime, res);
++ result->m_seriestime = res.c_str();
+ if(result->m_seriestime.empty()) {
+- dset->findAndGetOFString(DCM_StudyTime, result->m_seriestime);
++ dset->findAndGetOFString(DCM_StudyTime, res);
++ result->m_seriestime = res.c_str();
+ }
+
+- dset->findAndGetOFString(DCM_StationName, result->m_stationname);
++ dset->findAndGetOFString(DCM_StationName, res);
++ result->m_stationname = res.c_str();
+
+- std::string buffer;
+- dset->findAndGetOFString(DCM_NumberOfSeriesRelatedInstances, buffer);
+- int i = atoi(buffer.c_str());
++ dset->findAndGetOFString(DCM_NumberOfSeriesRelatedInstances, res);
++ int i = atoi(res.c_str());
+ if(i != 0) {
+ result->m_instancecount = i;
+ }
diff --git a/graphics/aeskulap/files/patch-imagepool_poolinstance.cpp b/graphics/aeskulap/files/patch-imagepool_poolinstance.cpp
new file mode 100644
index 000000000000..0f7d21000548
--- /dev/null
+++ b/graphics/aeskulap/files/patch-imagepool_poolinstance.cpp
@@ -0,0 +1,130 @@
+--- imagepool/poolinstance.cpp.orig 2010-07-26 21:55:22.000000000 +0000
++++ imagepool/poolinstance.cpp 2010-07-27 14:33:34.000000000 +0000
+@@ -37,6 +37,8 @@
+
+ #include <iostream>
+
++#include <libintl.h>
++
+ namespace ImagePool {
+
+ Instance::Instance(const std::string& sopinstanceuid) :
+@@ -279,35 +281,35 @@
+
+ // get SOPInstanceUID
+
+- std::string sop;
++ OFString sop;
+ dset->findAndGetOFString(DCM_SOPInstanceUID, sop).bad();
+
+ // wrap in smartpointer
+- Glib::RefPtr<ImagePool::Instance> r = Glib::RefPtr<ImagePool::Instance>(new ImagePool::Instance(sop));
++ Glib::RefPtr<ImagePool::Instance> r = Glib::RefPtr<ImagePool::Instance>(new ImagePool::Instance(sop.c_str()));
+
+ // set encoding
+- std::string enc[2];
++ OFString enc[2];
+ dset->findAndGetOFString(DCM_SpecificCharacterSet, enc[0], 0);
+ dset->findAndGetOFString(DCM_SpecificCharacterSet, enc[1], 1);
+- r->set_encoding(enc[0], enc[1]);
++ r->set_encoding(enc[0].c_str(), enc[1].c_str());
+
+ // set dicom uid's
+- r->m_sopinstanceuid = sop;
++ r->m_sopinstanceuid = sop.c_str();
+
+- std::string seriesuid;
++ OFString seriesuid;
+ if(dset->findAndGetOFString(DCM_SeriesInstanceUID, seriesuid).good()) {
+- r->m_seriesinstanceuid = seriesuid;
++ r->m_seriesinstanceuid = seriesuid.c_str();
+ }
+
+- std::string studyuid;
++ OFString studyuid;
+ if(dset->findAndGetOFString(DCM_StudyInstanceUID, studyuid).good()) {
+- r->m_studyinstanceuid = studyuid;
++ r->m_studyinstanceuid = studyuid.c_str();
+ }
+
+ r->m_default_windowcenter = 0;
+ r->m_default_windowwidth = 0;
+
+- std::string value;
++ OFString value;
+
+ // get instancenumber
+ if(dset->findAndGetOFString(DCM_InstanceNumber, value).good()) {
+@@ -438,29 +440,29 @@
+
+ // set date
+ if(dset->findAndGetOFString(DCM_AcquisitionDate, value).good()) {
+- r->m_date = value;
++ r->m_date = value.c_str();
+ }
+ else if(dset->findAndGetOFString(DCM_SeriesDate, value).good()) {
+- r->m_date = value;
++ r->m_date = value.c_str();
+ }
+ else if(dset->findAndGetOFString(DCM_StudyDate, value).good()) {
+- r->m_date = value;
++ r->m_date = value.c_str();
+ }
+
+ // set time
+ if(dset->findAndGetOFString(DCM_AcquisitionTime, value).good()) {
+- r->m_time = value;
++ r->m_time = value.c_str();
+ }
+ else if(dset->findAndGetOFString(DCM_SeriesTime, value).good()) {
+- r->m_time = value;
++ r->m_time = value.c_str();
+ }
+ else if(dset->findAndGetOFString(DCM_StudyTime, value).good()) {
+- r->m_time = value;
++ r->m_time = value.c_str();
+ }
+
+ // set ManufacturersModelName
+ if(dset->findAndGetOFString(DCM_ManufacturersModelName, value).good()) {
+- r->m_model = value;
++ r->m_model = value.c_str();
+ }
+
+ // set pixelspacing
+@@ -512,8 +514,10 @@
+ if(dset->findAndGetOFString(DCM_PatientsName, value).good()) {
+ r->m_patientsname = r->convert_string(value.c_str());
+ }
+- dset->findAndGetOFString(DCM_PatientsBirthDate, r->m_patientsbirthdate);
+- dset->findAndGetOFString(DCM_PatientsSex, r->m_patientssex);
++ dset->findAndGetOFString(DCM_PatientsBirthDate, value);
++ r->m_patientsbirthdate = value.c_str();
++ dset->findAndGetOFString(DCM_PatientsSex, value);
++ r->m_patientssex = value.c_str();
+ if(dset->findAndGetOFString(DCM_StudyDescription, value).good()) {
+ r->m_studydescription = r->convert_string(value.c_str());
+ }
+@@ -528,8 +532,10 @@
+ r->m_studydescription = gettext("no description");
+ }
+
+- dset->findAndGetOFString(DCM_StudyDate, r->m_studydate);
+- dset->findAndGetOFString(DCM_StudyTime, r->m_studytime);
++ dset->findAndGetOFString(DCM_StudyDate, value);
++ r->m_studydate = value.c_str();
++ dset->findAndGetOFString(DCM_StudyTime, value);
++ r->m_studytime = value.c_str();
+
+ // series params
+ if(dset->findAndGetOFString(DCM_InstitutionName, value).good()) {
+@@ -549,7 +555,8 @@
+ r->m_seriesdescription = gettext("no description");
+ }
+
+- dset->findAndGetOFString(DCM_Modality, r->m_modality);
++ dset->findAndGetOFString(DCM_Modality, value);
++ r->m_modality = value.c_str();
+
+ Glib::RefPtr<ImagePool::Study> new_study = get_study(r->m_studyinstanceuid);
+ if(new_study->size() == 0) {
diff --git a/graphics/aeskulap/files/patch-imagepool_poolmoveassociation.cpp b/graphics/aeskulap/files/patch-imagepool_poolmoveassociation.cpp
new file mode 100644
index 000000000000..3d8631bf70eb
--- /dev/null
+++ b/graphics/aeskulap/files/patch-imagepool_poolmoveassociation.cpp
@@ -0,0 +1,28 @@
+--- imagepool/poolmoveassociation.cpp.orig 2010-07-27 14:42:55.000000000 +0000
++++ imagepool/poolmoveassociation.cpp 2010-07-27 14:53:04.000000000 +0000
+@@ -33,7 +33,6 @@
+ #include "djencode.h"
+ #include "djrplol.h"
+
+-
+ MoveAssociation::MoveAssociation() {
+ m_abstractSyntax = UID_MOVEStudyRootQueryRetrieveInformationModel;
+ m_maxReceivePDULength = ASC_DEFAULTMAXPDU;
+@@ -175,6 +174,9 @@
+ knownAbstractSyntaxes, DIM_OF(knownAbstractSyntaxes),
+ transferSyntaxes, DIM_OF(transferSyntaxes));
+
++ /* FIXME
++ * dcmStorageSOPClassUIDs and numberOfDcmStorageSOPClassUIDs
++ * are not defined anymore
+ if (cond.good()) {
+ // the array of Storage SOP Class UIDs comes from dcuid.h
+ cond = ASC_acceptContextsWithPreferredTransferSyntaxes(
+@@ -182,6 +184,7 @@
+ dcmStorageSOPClassUIDs, numberOfDcmStorageSOPClassUIDs,
+ transferSyntaxes, DIM_OF(transferSyntaxes));
+ }
++ */
+ }
+
+ if (cond.good()) {
diff --git a/graphics/aeskulap/files/patch-imagepool_poolnetwork.cpp b/graphics/aeskulap/files/patch-imagepool_poolnetwork.cpp
new file mode 100644
index 000000000000..b94f3bc50bfe
--- /dev/null
+++ b/graphics/aeskulap/files/patch-imagepool_poolnetwork.cpp
@@ -0,0 +1,18 @@
+--- imagepool/poolnetwork.cpp.orig 2010-07-27 14:53:57.000000000 +0000
++++ imagepool/poolnetwork.cpp 2010-07-27 14:55:07.000000000 +0000
+@@ -227,10 +227,14 @@
+ }
+
+ /* the array of Storage SOP Class UIDs comes from dcuid.h */
++ /* FIXME
++ * dcmStorageSOPClassUIDs and numberOfDcmStorageSOPClassUIDs
++ * are not defined anymore
+ for (i=0; i<numberOfDcmStorageSOPClassUIDs && SUCCESS(cond); i++) {
+ cond = ASC_addPresentationContext(params, pid, dcmStorageSOPClassUIDs[i], transferSyntaxes, transferSyntaxes_count);
+- pid += 2; /* only odd presentation context id's */
++ pid += 2;
+ }
++ */
+
+ return cond;
+ }
diff --git a/graphics/aeskulap/files/patch-imagepool_poolservers.cpp b/graphics/aeskulap/files/patch-imagepool_poolservers.cpp
new file mode 100644
index 000000000000..bb3bc6360606
--- /dev/null
+++ b/graphics/aeskulap/files/patch-imagepool_poolservers.cpp
@@ -0,0 +1,11 @@
+--- imagepool/poolservers.cpp.orig 2010-07-26 18:39:13.000000000 +0000
++++ imagepool/poolservers.cpp 2010-07-26 18:39:33.000000000 +0000
+@@ -29,6 +29,8 @@
+ #include "imagepool.h"
+ #include "poolassociation.h"
+
++#include <libintl.h>
++
+ namespace ImagePool {
+
+ extern Network net;
diff --git a/graphics/aeskulap/files/patch-src_main.cpp b/graphics/aeskulap/files/patch-src_main.cpp
new file mode 100644
index 000000000000..36c4351f418c
--- /dev/null
+++ b/graphics/aeskulap/files/patch-src_main.cpp
@@ -0,0 +1,11 @@
+--- src/main.cpp.orig 2010-07-27 15:12:57.000000000 +0000
++++ src/main.cpp 2010-07-27 15:13:13.000000000 +0000
+@@ -43,6 +43,8 @@
+
+ #include <iostream>
+
++#include <libintl.h>
++
+ int main(int argc, char* argv[]) {
+
+ br_init(NULL);
diff --git a/graphics/aeskulap/files/patch-widgets_awindowleveltoolbutton.cpp b/graphics/aeskulap/files/patch-widgets_awindowleveltoolbutton.cpp
new file mode 100644
index 000000000000..5c816c362171
--- /dev/null
+++ b/graphics/aeskulap/files/patch-widgets_awindowleveltoolbutton.cpp
@@ -0,0 +1,11 @@
+--- widgets/awindowleveltoolbutton.cpp.orig 2010-07-27 14:58:36.000000000 +0000
++++ widgets/awindowleveltoolbutton.cpp 2010-07-27 14:58:44.000000000 +0000
+@@ -2,6 +2,8 @@
+ #include "aiconfactory.h"
+ #include <iostream>
+
++#include <libintl.h>
++
+ namespace Aeskulap {
+
+ std::set<WindowLevelToolButton*> WindowLevelToolButton::m_widgetlist;
diff --git a/graphics/aeskulap/files/patch-widgets_seriesview.cpp b/graphics/aeskulap/files/patch-widgets_seriesview.cpp
new file mode 100644
index 000000000000..cff78089da0d
--- /dev/null
+++ b/graphics/aeskulap/files/patch-widgets_seriesview.cpp
@@ -0,0 +1,11 @@
+--- widgets/seriesview.cpp.orig 2010-07-27 15:03:43.000000000 +0000
++++ widgets/seriesview.cpp 2010-07-27 15:03:57.000000000 +0000
+@@ -36,6 +36,8 @@
+
+ #include <iostream>
+
++#include <libintl.h>
++
+ SeriesView::SeriesView(const Glib::RefPtr<ImagePool::Series>& series) :
+ Aeskulap::Tiler<Aeskulap::Display>(1, 1),
+ m_selected(false),
diff --git a/graphics/aeskulap/pkg-descr b/graphics/aeskulap/pkg-descr
new file mode 100644
index 000000000000..b10737ba784c
--- /dev/null
+++ b/graphics/aeskulap/pkg-descr
@@ -0,0 +1,7 @@
+Aeskulap is a medical image viewer. It is able to load a series of special
+images stored in the DICOM format for review. Additionally Aeskulap is able
+to query and fetch DICOM images from archive nodes (also called PACS) over
+the network. The goal of this project is to create a full open source
+replacement for commercially available DICOM viewers.
+
+WWW: http://aeskulap.nongnu.org/
diff --git a/graphics/aeskulap/pkg-plist b/graphics/aeskulap/pkg-plist
new file mode 100644
index 000000000000..ba54d40df5b2
--- /dev/null
+++ b/graphics/aeskulap/pkg-plist
@@ -0,0 +1,36 @@
+bin/aeskulap
+lib/aeskulap/libconfiguration.a
+lib/aeskulap/libconfiguration.la
+lib/aeskulap/libconfiguration.so.0.0
+lib/aeskulap/libimagepool.a
+lib/aeskulap/libimagepool.la
+lib/aeskulap/libimagepool.so.0.0
+share/applications/aeskulap.desktop
+%%DATADIR%%/glade/aeskulap.glade
+%%DATADIR%%/images/aeskulap.png
+%%DATADIR%%/images/cursor_pan.png
+%%DATADIR%%/images/cursor_windowlevel.png
+%%DATADIR%%/images/cursor_zoom.png
+%%DATADIR%%/images/filmholes-big-left.png
+%%DATADIR%%/images/filmholes-big-right.png
+%%DATADIR%%/images/grid-1.png
+%%DATADIR%%/images/grid-16.png
+%%DATADIR%%/images/grid-2h.png
+%%DATADIR%%/images/grid-2v.png
+%%DATADIR%%/images/grid-4.png
+%%DATADIR%%/images/series-1x1.png
+%%DATADIR%%/images/series-2x1.png
+%%DATADIR%%/images/series-2x2.png
+%%DATADIR%%/images/series-3x2.png
+%%DATADIR%%/images/series-3x3.png
+%%DATADIR%%/images/series-4x4.png
+%%DATADIR%%/images/start-here.png
+%%DATADIR%%/images/stock-layers-24.png
+%%DATADIR%%/images/stock-tool-eraser-22.png
+%%DATADIR%%/images/stock-tool-measure-22.png
+%%DATADIR%%/images/stock-tool-scale-22.png
+@dirrm %%DATADIR%%/images
+@dirrm %%DATADIR%%/glade
+@dirrm %%DATADIR%%
+@dirrm lib/aeskulap
+@dirrmtry share/applications