diff Plugins/Worklists/Run.py @ 174:d468cbe1b161

added tests for IncomingWorklistRequestFilter
author am@osimis.io
date Thu, 20 Sep 2018 11:51:34 +0200
parents 50cd127e5330
children af8e034f4262
line wrap: on
line diff
--- a/Plugins/Worklists/Run.py	Wed Sep 19 15:26:17 2018 +0200
+++ b/Plugins/Worklists/Run.py	Thu Sep 20 11:51:34 2018 +0200
@@ -185,6 +185,7 @@
             warnings.simplefilter("ignore", ResourceWarning)
 
         ClearDatabase()
+        DoPost(ORTHANC, '/tools/execute-script', 'function IncomingWorklistRequestFilter(query, origin) return query end', 'application/lua')
 
 
     def test_single(self):
@@ -241,6 +242,30 @@
 
         self.assertEqual(1, len(RunQuery('Sequences/Queries/7814.without.station.aet.dump', [])))
 
+    def test_filter_issuer_aet_from_lua(self):
+        AddToDatabase('Sequences/STATION_AET/orig.7814.dump')  # targeted at STATION_AET
+        AddToDatabase('Sequences/STATION_AET/orig.7814.other.station.dump') # targeted at ORTHANC_TEST
+
+        self.assertEqual(2, len(RunQuery('Sequences/Queries/7814.without.station.aet.dump', []))) # query is not targeting any station -> match all
+        InstallLuaScript(ORTHANC, "\
+            function IncomingWorklistRequestFilter(query, origin)\
+                query['0040,0100'][1]['0040,0001'] = origin['RemoteAet']\
+                return query\
+            end");
+
+        self.assertEqual(1, len(RunQuery('Sequences/Queries/7814.without.station.aet.dump', []))) # now, query is targeting ORTHANCTEST -> match one
+
+
+    def test_remove_aet_from_query(self):
+        AddToDatabase('Sequences/NO_STATION_AET/orig.7814.other.station.dump')  # targeted at ORTHANCTEST
+
+        self.assertEqual(0, len(RunQuery('Sequences/Queries/orig.7814.dump', []))) # query is targeting STATION_AET -> will not match
+        InstallLuaScript(ORTHANC, "\
+            function IncomingWorklistRequestFilter(query, origin)\
+                query['0040,0100'][1]['0040,0001'] = nil\
+                return query\
+            end");
+        self.assertEqual(1, len(RunQuery('Sequences/Queries/orig.7814.dump', []))) # query is targeting STATION_AET but, since we have removed this field, we should get 2 queries
 
     def test_encodings(self):
         # Check out ../../Database/Worklists/Encodings/database.dump