-
Notifications
You must be signed in to change notification settings - Fork 1
/
XindexCallerGraph.py.in
82 lines (79 loc) · 2.71 KB
/
XindexCallerGraph.py.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#---------------------------------------------------------------------------
# Copyright 2011 The Open Source Electronic Health Record Agent
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#---------------------------------------------------------------------------
import sys
sys.path.append('${VISTA_SOURCE_DIR}/lib/vista')
from OSEHRAHelper import ConnectToMUMPS,PROMPT
def runXindexForRoutine(connection, routineName):
VistA.write('K ^XUTL("XQ",$J)')
connection.write("D ^XINDEX")
while True:
index = connection.multiwait(["All Routines?",
"Routine"])
if index == 0:
connection.write("NO")
continue
else:
connection.write(routineName)
break
connection.wait("Routine")
connection.write("")
selectionList = ['Select BUILD NAME:',
'Select INSTALL NAME:',
'Select PACKAGE NAME:']
while True:
index = VistA.multiwait(selectionList)
VistA.write('')
if index == len(selectionList) - 1:
break
connection.wait("Print more than compiled errors and warnings?")
connection.write("YES")
connection.wait("Print summary only?")
connection.write("NO")
connection.wait("Print routines?")
connection.write("NO")
connection.wait("Print errors and warnings with each routine?")
connection.write("YES")
connection.wait("Index all called routines?")
connection.write("NO")
connection.wait("DEVICE")
connection.write(";132;99999")
while True:
try:
index = connection.multiwait(["Press return to continue:",
"--- END ---"])
if index == 0:
connection.write("")
continue
else:
break
except IndexError, error:
print ("Caught IndexError %s" % error)
continue
VistA=ConnectToMUMPS("${logfile}","${INSTANCE}","${NAMESPACE}")
if ('${USERNAME}' and '${PASSWORD}'):
VistA.login('${USERNAME}','${PASSWORD}')
if VistA.type=='cache':
try:
VistA.ZN('${NAMESPACE}')
except IndexError,no_namechange:
pass
AllRoutines = []
${AllRoutines} # this is the line that will replace by cmake config file
VistA.wait(PROMPT)
for routineName in AllRoutines:
runXindexForRoutine(VistA, routineName)
VistA.wait(PROMPT)
VistA.write("halt")