aboutsummaryrefslogtreecommitdiffstats
path: root/graphics/aeskulap
diff options
context:
space:
mode:
authorgahr <gahr@FreeBSD.org>2010-07-31 18:07:19 +0800
committergahr <gahr@FreeBSD.org>2010-07-31 18:07:19 +0800
commit265a871842623457f3e82c9273f0d634c6629b9d (patch)
treec93637aa52d008f289beb1e4eee1eb12e68e27ee /graphics/aeskulap
parent40738110f7b5ac7eaa83446cde3e1cad28a0188e (diff)
downloadfreebsd-ports-gnome-265a871842623457f3e82c9273f0d634c6629b9d.tar.gz
freebsd-ports-gnome-265a871842623457f3e82c9273f0d634c6629b9d.tar.zst
freebsd-ports-gnome-265a871842623457f3e82c9273f0d634c6629b9d.zip
- 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.
Diffstat (limited to 'graphics/aeskulap')
-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
18 files changed, 560 insertions, 0 deletions
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