Bladeren bron

Adding orthancQR

Andrej 1 maand geleden
bovenliggende
commit
eae615c463
1 gewijzigde bestanden met toevoegingen van 49 en 0 verwijderingen
  1. 49 0
      orthancQR.py

+ 49 - 0
orthancQR.py

@@ -0,0 +1,49 @@
+import json
+import orthancInterface
+import orthancDatabaseBrowser
+import os
+
+
+class orthancQR:
+   
+   def __init__(self,server):
+      self.net=orthancInterface.orthancInterface()
+      fconfig=os.path.join(os.path.expanduser('~'),'.labey',f'{server}.json')
+      self.net.init(fconfig)
+
+   def addModality(self,name,aet,host,port):
+      apiURL='/'.join([self.net.getCoreURL(),'modalities',name])
+      v={"AET":aet,"Host":host,"Port":port}
+      response=self.net.put(apiURL,json.dumps(v),'json')
+
+   def removeModality(self,name):
+      apiURL='/'.join([self.net.getCoreURL(),'modalities',name])
+      response=self.net.delete(apiURL)
+
+   def cEcho(self,name):
+      apiURL='/'.join([self.net.getCoreURL(),'modalities',name,'echo'])
+      v={}
+      response=self.net.get(apiURL)
+      #OK if empty,JSON if fail
+      return orthancDatabaseBrowser.extractJSON(response.data)
+
+   def sendCFind(self,name,query):
+      v={"Level":"Study","Query":query}
+      apiURL='/'.join([self.net.getCoreURL(),'modalities',name,'query'])
+      response=self.net.post(apiURL,json.dumps(v),'json')
+      #pair of ID/Path json object
+      return orthancDatabaseBrowser.extractJSON(response.data)
+
+   def getCFindAnswers(self,queryId):
+      apiURL='/'.join([self.net.getCoreURL(),'queries',queryId,'answers'])
+      response=self.net.get(apiURL)
+      #list of answers
+      return orthancDatabaseBrowser.extractJSON(response.data)
+
+   def getCFindAnswerContent(self,queryId,answerId):
+      apiURL='/'.join([self.net.getCoreURL(),'queries',queryId,'answers',answerId,'content'])
+      response=self.net.get(apiURL)
+      #content of answer, object with DICOM codes (IDs etc)
+      return orthancDatabaseBrowser.extractJSON(response.data)
+
+