[PATCH] Fix EMRTimline

Bruno Maire <[email protected]> Sat, 28 Sep 2024 16:57:55 +0200
Newsgroups gmane.comp.gnu.medical.devel
Message-ID <2342784.ElGaqSPkdT@bm2>
Hi,
I tried to fix the EMR Timeline Plugin.
It seems to run so far but I am not sure if I broke something. eg. the 
functionality in gnumed/gnumed/client/wxpython/gmAuthWidgets.py
 is just commented out.

Best regards,
Bruno
0001-Fix-EMRTimline.patch (text/x-patch, 3.6 KB)
From 995894906925de02f1bf623888ad4a0827ab73d7 Mon Sep 17 00:00:00 2001
From: Bruno Maire <[email protected]>
Date: Sat, 28 Sep 2024 16:44:27 +0200
Subject: [PATCH] Fix EMRTimline

gnumed/gnumed/client/exporters/gmTimelineExporter.py
intake.format (...
returns list -> convert to string to be able to strip()

gnumed/gnumed/client/timelinelib/canvas/drawing/drawers/default.py
wx.Point(...
Expects int and not float -> convert to int with round()

gnumed/gnumed/client/wxpython/gmAuthWidgets.py
from Gnumed.timelinelib.features.experimental import experimentalfeatures
leads to ImportError: cannot import name 'ExperimentalFeatureContainerSize' from partially initialized module 'timelinelib.features.experimental.experimentalfeaturecontainersize' (most likely due to a circular import) (/home/gnumed/gnumed/gnumed/gnumed/client/timelinelib/features/experimental/experimentalfeaturecontainersize.py
-> put in remark
---
 gnumed/gnumed/client/exporters/gmTimelineExporter.py        | 4 ++--
 .../client/timelinelib/canvas/drawing/drawers/default.py    | 2 +-
 gnumed/gnumed/client/wxpython/gmEMRTimelineWidgets.py       | 6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/gnumed/gnumed/client/exporters/gmTimelineExporter.py b/gnumed/gnumed/client/exporters/gmTimelineExporter.py
index ee00bce0d..bb140ea06 100644
--- a/gnumed/gnumed/client/exporters/gmTimelineExporter.py
+++ b/gnumed/gnumed/client/exporters/gmTimelineExporter.py
@@ -431,9 +431,9 @@ def __format_intake_as_timeline_xml(intake):
 		format_pydt(end),
 		gmTools.xml_escape_string(intake['substance']),
 		_('Substances'),
-		gmTools.xml_escape_string(intake.format (
+		gmTools.xml_escape_string(''.join(intake.format (
 			single_line = False
-		).strip().strip('\n').strip())
+		)).strip().strip('\n').strip())
 	)
 
 #------------------------------------------------------------
diff --git a/gnumed/gnumed/client/timelinelib/canvas/drawing/drawers/default.py b/gnumed/gnumed/client/timelinelib/canvas/drawing/drawers/default.py
index f4a6116e3..1b0e025ac 100644
--- a/gnumed/gnumed/client/timelinelib/canvas/drawing/drawers/default.py
+++ b/gnumed/gnumed/client/timelinelib/canvas/drawing/drawers/default.py
@@ -683,7 +683,7 @@ class DefaultDrawingAlgorithm(Drawer):
         p0 = wx.Point(tipx, tipy)
         path.MoveToPoint(p0.x, p0.y)
         # Next point is the left base of the arrow
-        p1 = wx.Point(p0.x + H_ARROW * math.tan(math.radians(AA)),
+        p1 = wx.Point(round(p0.x + H_ARROW * math.tan(math.radians(AA))),
                       p0.y - H_ARROW)
         path.AddLineToPoint(p1.x, p1.y)
         # Start of lower left rounded corner
diff --git a/gnumed/gnumed/client/wxpython/gmEMRTimelineWidgets.py b/gnumed/gnumed/client/wxpython/gmEMRTimelineWidgets.py
index 43cf132ed..5b92eb436 100644
--- a/gnumed/gnumed/client/wxpython/gmEMRTimelineWidgets.py
+++ b/gnumed/gnumed/client/wxpython/gmEMRTimelineWidgets.py
@@ -39,9 +39,9 @@ _log = logging.getLogger('gm.ui.tl')
 #from Gnumed.timelinelib.canvas.data import TimePeriod
 
 # activate experimental container features
-from Gnumed.timelinelib.features.experimental import experimentalfeatures
-experimentalfeatures.EXTENDED_CONTAINER_HEIGHT.set_active(True)
-experimentalfeatures.EXTENDED_CONTAINER_STRATEGY.set_active(True)
+#from Gnumed.timelinelib.features.experimental import experimentalfeatures
+#experimentalfeatures.EXTENDED_CONTAINER_HEIGHT.set_active(True)
+#experimentalfeatures.EXTENDED_CONTAINER_STRATEGY.set_active(True)
 
 from Gnumed.timelinelib.canvas.data.timeperiod import TimePeriod
 from Gnumed.timelinelib.calendar.gregorian.gregorian import GregorianDateTime
-- 
2.39.5