aboutsummaryrefslogtreecommitdiffstats
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
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.
-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