Difference between revisions of "RPMS PortInstallation to GTM"

From VistApedia
Jump to: navigation, search
(IV. Initialize Kernel and Fileman)
 
(37 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Document written by Sam Habiel on Feb 1, 2010 in Hurgada, Egypt.
+
Document written by Sam Habiel on Feb 1, 2011 in Hurghada, Egypt.
  
I -- Exporting from Cache
+
Note: if you don't want to do all of this, a ready RPMS GT.M containing all the work I did plus all the modified routines is here:
Export Routines from Cache to GT.M.
+
http://sourceforge.net/projects/worldvista/files/IHS-FOIA-Release-11-30-2010/rpms_samsGTMport.tgz/download
  
<code>
+
The starting point is this FOIA release, containing the CACHE.DAT plus all the software: http://sourceforge.net/projects/worldvista/files/IHS-FOIA-Release-11-30-2010/IHS_RPMS_FOIA_GOLDB_20101130.zip/download
 +
 
 +
If you see any references below to modified routines, look for them in this download in the p directory.
 +
 
 +
You still have to follow this document and perform pertinent steps.
 +
* GT.M set-up
 +
* CIA & BMX xinetd listeners and scripts
 +
 
 +
=== I -- Exporting from Cache ===
 +
Export Routines from Cache to GT.M. Export Only * routines; not % routines.
 +
 
 +
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
  RPMS> d ^%RO
 
  RPMS> d ^%RO
</code>
+
</pre>
  
Export Globals in ZWRITE format using Maury Pepper's routine <reference?>
+
Export Globals in ZWRITE format using Maury Pepper's routine (https://sourceforge.net/tracker/download.php?group_id=11026&atid=311026&file_id=254876&aid=534145)
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
  RPMS> d ^ZWR1
 
  RPMS> d ^ZWR1
</code>
+
</pre>
  
OR --> Grab the globals and routines off sourceforge (reference?)
+
OR --> Grab the globals and routines off sourceforge (http://sourceforge.net/projects/worldvista/files/IHS-FOIA-Release-11-30-2010/rpmsGlobalsRoutines20101130.zip/download)
  
II -- Set-up GT.M environment
+
=== II -- Set-up GT.M environment ===
  
 
IMPORTANT: for practicality, I work of the current working directory. I assume you will know what you are doing.
 
IMPORTANT: for practicality, I work of the current working directory. I assume you will know what you are doing.
  
 
Create the empty routine directories plus journal directory plus globals directory
 
Create the empty routine directories plus journal directory plus globals directory
<code>
+
 
 +
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
mkdir o r j g
 
mkdir o r j g
</code>
+
</pre>
  
Create rpms.env with the following code:
+
Create <code>rpms.env</code> with the following code:
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
  #!/bin/bash
 
  #!/bin/bash
 
  unset gtm_chset  # remove UTF-8 if set
 
  unset gtm_chset  # remove UTF-8 if set
Line 33: Line 45:
 
  export gtmroutines="o(r) $gtm_dist"    # tell GT.M where its routines are
 
  export gtmroutines="o(r) $gtm_dist"    # tell GT.M where its routines are
 
  export PATH=$PATH:$gtm_dist            # add to PATH for my happiness
 
  export PATH=$PATH:$gtm_dist            # add to PATH for my happiness
</code>
+
</pre>
  
 
Change Kernel Shared Memory allowance (shmmax) in order to allow the 32 kb global nodes on GT.M. VISTA does not require that; however, RPMS does since it has long global nodes:
 
Change Kernel Shared Memory allowance (shmmax) in order to allow the 32 kb global nodes on GT.M. VISTA does not require that; however, RPMS does since it has long global nodes:
  
<code>
+
(need to be root to edit the file)
 +
 
 +
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
echo "kernel.shmmax = 67108864" >> /etc/sysctl.conf
 
echo "kernel.shmmax = 67108864" >> /etc/sysctl.conf
</code>
+
</pre>
  
 
Now you need to restart the kernel. I only know of one way to do that: restarting the computer.
 
Now you need to restart the kernel. I only know of one way to do that: restarting the computer.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sudo reboot
 
sudo reboot
</code>
+
</pre>
  
Now, create the database. Source the env file, and GDE.
+
Now, create the database. Source the env file, and use GDE.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sakura@icarus:~/rpms201011$ . env.rpms
 
sakura@icarus:~/rpms201011$ . env.rpms
</code>
+
</pre>
  
 
Create a GDE file called gde.rpms containing the following:
 
Create a GDE file called gde.rpms containing the following:
  
<code>         
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">>         
CHANGE -SEGMENT DEFAULT -ACCESS_METHOD=BG -BLOCK_SIZE=33792 -ALLOCATION=1024 -EXTENSION_COUNT=1024 -GLOBAL_BUFFER_COUNT=4096 -LOCK_SPACE=400 -FILE=g/default.dat
+
CHANGE -SEGMENT DEFAULT -ACCESS_METHOD=BG -BLOCK_SIZE=33792 -ALLOCATION=1024 -EXTENSION_COUNT=1024 -GLOBAL_BUFFER_COUNT=4096 -LOCK_SPACE=400 -FILE=g/default.dat
CHANGE -REGION DEFAULT -RECORD_SIZE=32767 -KEY_SIZE=255 -JOURNAL=(BEFORE_IMAGE,FILE_NAME="j/default.mjl,BUFFER_SIZE=132") -DYNAMIC_SEGMENT=DEFAULT
+
CHANGE -REGION DEFAULT -[[RECORD~|Record]]_SIZE=32767 -KEY_SIZE=255 -JOURNAL=(BEFORE_IMAGE,FILE_NAME="j/default.mjl,BUFFER_SIZE=132") -DYNAMIC_SEGMENT=DEFAULT
TEMPLATE -SEGMENT -ACCESS_METHOD=BG -BLOCK_SIZE=4096 -ALLOCATION=1024 -EXTENSION_COUNT=1024 -GLOBAL_BUFFER_COUNT=4096 -LOCK_SPACE=400
+
TEMPLATE -SEGMENT -ACCESS_METHOD=BG -BLOCK_SIZE=4096 -ALLOCATION=1024 -EXTENSION_COUNT=1024 -GLOBAL_BUFFER_COUNT=4096 -LOCK_SPACE=400
TEMPLATE -REGION -RECORD_SIZE=4080 -KEY_SIZE=255 -NOJOURNAL
+
TEMPLATE -REGION -[[RECORD~|Record]]_SIZE=4080 -KEY_SIZE=255 -NOJOURNAL
ADD -SEGMENT SCRATCH -FILE=g/scratch.dat
+
ADD -SEGMENT SCRATCH -FILE=g/scratch.dat
ADD -REGION SCRATCH -DYNAMIC_SEGMENT=SCRATCH
+
ADD -REGION SCRATCH -DYNAMIC_SEGMENT=SCRATCH
ADD -NAME TMP -REGION=SCRATCH
+
ADD -NAME TMP -REGION=SCRATCH
ADD -NAME TEMP -REGION=SCRATCH
+
ADD -NAME TEMP -REGION=SCRATCH
ADD -NAME UTILITY -REGION=SCRATCH
+
ADD -NAME UTILITY -REGION=SCRATCH
TEMPLATE -REGION -RECORD_SIZE=4080 -KEY_SIZE=255 -JOURNAL=BEFORE_IMAGE
+
TEMPLATE -REGION -[[RECORD~|Record]]_SIZE=4080 -KEY_SIZE=255 -JOURNAL=BEFORE_IMAGE
EXIT
+
EXIT
</code>
+
</pre>
  
 
Now time to load it.
 
Now time to load it.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
sakura@icarus:~/rpms201011$ mumps -r GDE
+
sakura@icarus:~/rpms201011$ mumps -r GDE
%GDE-I-GDUSEDEFS, Using defaults for Global Directory  
+
%GDE-I-GDUSEDEFS, Using defaults for Global Directory  
 
     /home/sakura/rpms201011/mumps.gld
 
     /home/sakura/rpms201011/mumps.gld
  
GDE> @gde.rpms
+
GDE> @gde.rpms
%GDE-I-EXECOM, Executing command file /home/sakura/rpms201011/gde.rpms
+
%GDE-I-EXECOM, Executing command file /home/sakura/rpms201011/gde.rpms
  
%GDE-I-VERIFY, Verification OK
+
%GDE-I-VERIFY, [[Verification~|Verification]] OK
  
%GDE-I-GDCREATE, Creating Global Directory file  
+
%GDE-I-GDCREATE, Creating Global Directory file  
 
     /home/sakura/rpms201011/mumps.gld
 
     /home/sakura/rpms201011/mumps.gld
</code>
+
</pre>
  
 
IMPORTANT: This does not seem to be working. I get the error: shmmget has invalid parameters. So I used a simplified one below:
 
IMPORTANT: This does not seem to be working. I get the error: shmmget has invalid parameters. So I used a simplified one below:
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
sakura@icarus:~/rpms201011$ mumps -r ^GDE
+
sakura@icarus:~/rpms201011$ mumps -r ^GDE
%GDE-I-GDUSEDEFS, Using defaults for Global Directory  
+
%GDE-I-GDUSEDEFS, Using defaults for Global Directory  
 
     /home/sakura/rpms201011/mumps.gld
 
     /home/sakura/rpms201011/mumps.gld
  
GDE> CH -S DEFAULT -BLOCK_SIZE=34816 -L=1000
+
GDE> CH -S DEFAULT -BLOCK_SIZE=34816 -L=1000
GDE> CH -R DEFAULT -R=32767 -K=255
+
GDE> CH -R DEFAULT -R=32767 -K=255
GDE> EXIT
+
GDE> EXIT
%GDE-I-VERIFY, Verification OK
+
%GDE-I-VERIFY, [[Verification~|Verification]] OK
 
+
</pre>
  
 
Now create the database.
 
Now create the database.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
sakura@icarus:~/rpms201011$ mupip create
+
sakura@icarus:~/rpms201011$ mupip create
%GTM-W-MUNOSTRMBKUP, Database /home/sakura/rpms201011/g/default.dat has a block size larger than 32256 and thus cannot use stream (incremental) backup
+
%GTM-W-MUNOSTRMBKUP, Database /home/sakura/rpms201011/g/default.dat has a block size larger than 32256 and thus cannot use stream (incremental) backup
Created file /home/sakura/rpms201011/mumps.dat
+
Created file /home/sakura/rpms201011/mumps.dat
</code>
+
</pre>
  
 
Now test the database for sanity
 
Now test the database for sanity
  
<code>
+
<pre>
 
sakura@icarus:~/rpms201011$ gtm
 
sakura@icarus:~/rpms201011$ gtm
  
Line 120: Line 134:
  
 
Global ^
 
Global ^
</code>
+
</pre>
  
III. Import GT.M routines and Globals
+
=== III. Import GT.M routines and Globals ===
  
Importing routines is a staight forward affair.
+
Importing routines is a straight forward affair.
  
 
sakura@icarus:~/rpms201011$ gtm
 
sakura@icarus:~/rpms201011$ gtm
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
GTM>d ^%RI
+
GTM>d ^%RI
  
Routine Input Utility - Converts RO file to *.m files.
+
Routine Input Utility - Converts RO file to *.m files.
  
Formfeed delimited <No>?  
+
Formfeed delimited <No>?  
Input device: <terminal>: raw/routines/routines_20101130.ro
+
Input device: <terminal>: raw/routines/routines_20101130.ro
  
Cache for Windows^INT^RPMS Routines 2010-11-30^~Format=Cache.S~
+
Cache for Windows^INT^RPMS Routines 2010-11-30^~Format=Cache.S~
%RO on 22 Jan 2011  1:41 PM
+
%RO on 22 Jan 2011  1:41 PM
  
  
Output directory : r/
+
Output directory : r/
</code>
+
</pre>
  
 
and you will see 33000 routines (!) roll through.
 
and you will see 33000 routines (!) roll through.
  
 
To import the globals (1754), do something like the following:
 
To import the globals (1754), do something like the following:
<code>
+
 
 +
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
for glob in raw/globals/*; do echo $glob >> mupip.load ; mupip load -format=zwr $glob >> mupip.load 2>&1; done
 
for glob in raw/globals/*; do echo $glob >> mupip.load ; mupip load -format=zwr $glob >> mupip.load 2>&1; done
</code>
+
</pre>
  
 
Check the log to check that all files loaded correctly.
 
Check the log to check that all files loaded correctly.
  
IV. Initialize Kernel and Fileman
+
=== IV. Initialize Kernel and Fileman ===
  
 
First, run ^ZTMGRSET. This will initialize ^%ZOSF and create the % routines.
 
First, run ^ZTMGRSET. This will initialize ^%ZOSF and create the % routines.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>K ^%ZOSF
 
GTM>K ^%ZOSF
  
Line 343: Line 358:
 
Now, I will check your % globals...........
 
Now, I will check your % globals...........
 
ALL DONE
 
ALL DONE
</code>
+
</pre>
  
 
Several routines are broken and don't have versions that work for GT.M.
 
Several routines are broken and don't have versions that work for GT.M.
 
Copy them from a WV instance:
 
Copy them from a WV instance:
 +
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
%ZISF
 
%ZISF
 
%ZIS
 
%ZIS
Line 353: Line 369:
 
%RCR
 
%RCR
 
%ZOSV
 
%ZOSV
 +
</pre>
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_RCR.m r/
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_RCR.m r/
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZTMOVE.m r/
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZTMOVE.m r/
Line 360: Line 377:
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZIS.m r/
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZIS.m r/
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZISTCPS.m r/
 
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZISTCPS.m r/
</code>
+
</pre>
  
 
Now initialize Fileman:
 
Now initialize Fileman:
<code>
+
(Note: if you are running a recent version of RPMS, you need to remove transactions from Taskman routine ZTLOAD1 and re-execute ZTMGRSET to rename it to the % version.)
 +
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>d ^DINIT
 
GTM>d ^DINIT
  
Line 470: Line 488:
 
   BMC UPDATE FACILITY ADDRESS    (#9)
 
   BMC UPDATE FACILITY ADDRESS    (#9)
 
   BMC MODIFY DATES (INPT)        (#10)
 
   BMC MODIFY DATES (INPT)        (#10)
   AMH ADD RECORD 1                (#11)
+
   AMH ADD [[RECORD~|Record]] 1                (#11)
 
   AMH EDIT TX PLAN                (#12)
 
   AMH EDIT TX PLAN                (#12)
 
   XUSITEPARM                      (#13)
 
   XUSITEPARM                      (#13)
Line 503: Line 521:
 
   BW PROC-FORM-3-CDC-MAM          (#42)
 
   BW PROC-FORM-3-CDC-MAM          (#42)
 
   BCH ENTER PATIENT DATA          (#43)
 
   BCH ENTER PATIENT DATA          (#43)
   BCH EDIT RECORD DATA            (#44)
+
   BCH EDIT [[RECORD~|Record]] DATA            (#44)
 
   BCH ENTER CHRIS II DATA        (#45)
 
   BCH ENTER CHRIS II DATA        (#45)
 
   BCH ENTER MEASUREMENTS/TESTS    (#46)
 
   BCH ENTER MEASUREMENTS/TESTS    (#46)
Line 516: Line 534:
 
   XPD EDIT MP                    (#55)
 
   XPD EDIT MP                    (#55)
 
   XPD EDIT GP                    (#56)
 
   XPD EDIT GP                    (#56)
   AMH ADD RECORD                  (#57)
+
   AMH ADD [[RECORD~|Record]]                 (#57)
   AMH EDIT RECORD                (#58)
+
   AMH EDIT [[RECORD~|Record]]                 (#58)
   AMH ADD NON-PAT RECORD          (#59)
+
   AMH ADD NON-PAT [[RECORD~|Record]]         (#59)
 
   AMH UPDATE SITE PARAMETERS      (#60)
 
   AMH UPDATE SITE PARAMETERS      (#60)
 
   AMH UPDATE CASE                (#61)
 
   AMH UPDATE CASE                (#61)
Line 555: Line 573:
 
   AMH ENTER/EDIT STAGING TOOL    (#94)
 
   AMH ENTER/EDIT STAGING TOOL    (#94)
 
   AMH ADD CASE TRACKING REC      (#95)
 
   AMH ADD CASE TRACKING REC      (#95)
   AMHVT ADD RECORD                (#96)
+
   AMHVT ADD [[RECORD~|Record]]               (#96)
 
   APCD SITE PARAMETER ENTRY      (#97)
 
   APCD SITE PARAMETER ENTRY      (#97)
 
   APCD PROBLEM ENTRY ADD/EDIT    (#98)
 
   APCD PROBLEM ENTRY ADD/EDIT    (#98)
Line 571: Line 589:
 
   APCD DM UPDATE                  (#110)
 
   APCD DM UPDATE                  (#110)
 
   BAR PROCESS VARIABLE EDIT      (#111)
 
   BAR PROCESS VARIABLE EDIT      (#111)
   BAR EDIT DATA TYPES            (#112)
+
   BAR EDIT [[DATA TYPES~|Data Types]]             (#112)
 
   BAR EDIT SEGMENTS OF TRANSPORT  (#113)
 
   BAR EDIT SEGMENTS OF TRANSPORT  (#113)
 
   BAR ELEMENTS EDIT              (#114)
 
   BAR ELEMENTS EDIT              (#114)
Line 638: Line 656:
 
   ACHS AREA DIRECTOR              (#177)
 
   ACHS AREA DIRECTOR              (#177)
 
   ACHS SUD                        (#178)
 
   ACHS SUD                        (#178)
   AMHB ADD RECORD                (#179)
+
   AMHB ADD [[RECORD~|Record]]                 (#179)
 
   AMH SUICIDE FORM UPDATE        (#180)
 
   AMH SUICIDE FORM UPDATE        (#180)
   AMHASA ADD RECORD              (#181)
+
   AMHASA ADD [[RECORD~|Record]]               (#181)
 
   AUT LOCATION                    (#182)
 
   AUT LOCATION                    (#182)
 
   AUT TRIBE                      (#183)
 
   AUT TRIBE                      (#183)
Line 712: Line 730:
 
   BKMV EDIT LAB TAXONOMY          (#253)
 
   BKMV EDIT LAB TAXONOMY          (#253)
 
   APCD UPDATE REPROD FACTORS      (#254)
 
   APCD UPDATE REPROD FACTORS      (#254)
   BCHB EDIT RECORD DATA          (#255)
+
   BCHB EDIT [[RECORD~|Record]] DATA          (#255)
 
   BCH ENTER/EDIT SUBJ/OBJ        (#256)
 
   BCH ENTER/EDIT SUBJ/OBJ        (#256)
 
   BCH ENTER LAB/REPROD            (#257)
 
   BCH ENTER LAB/REPROD            (#257)
Line 719: Line 737:
 
   BCH GROUP ENTRY                (#260)
 
   BCH GROUP ENTRY                (#260)
 
   AMH UPDATE USER                (#261)
 
   AMH UPDATE USER                (#261)
   BNIA UPDATE ACTIVITY RECORD    (#262)
+
   BNIA UPDATE ACTIVITY [[RECORD~|Record]]     (#262)
 
   BNI GROUP ENTRY                (#263)
 
   BNI GROUP ENTRY                (#263)
   BNI UPDATE ACTIVITY RECORD      (#264)
+
   BNI UPDATE ACTIVITY [[RECORD~|Record]]     (#264)
 
   BNIA GROUP ENTRY                (#265)
 
   BNIA GROUP ENTRY                (#265)
 
   BNI EDIT SITE PARAMETERS        (#266)
 
   BNI EDIT SITE PARAMETERS        (#266)
 
   APCH UPDATE SITE PARAMETERS    (#267)
 
   APCH UPDATE SITE PARAMETERS    (#267)
 
   BUD 07 SITE PARAMETER          (#268)
 
   BUD 07 SITE PARAMETER          (#268)
   AMH EHR EDIT RECORD            (#269)
+
   AMH EHR EDIT [[RECORD~|Record]]             (#269)
   APCD EDIT TREATMENT PLAN        (#270)
+
   APCD EDIT [[TREATMENT~|Treatment]] PLAN        (#270)
   AMHSV EDIT RECORD              (#271)
+
   AMHSV EDIT [[RECORD~|Record]]               (#271)
 
   BUD 08 SITE PARAMETER          (#272)
 
   BUD 08 SITE PARAMETER          (#272)
 
   ACR REQUISITION                (#273)
 
   ACR REQUISITION                (#273)
Line 737: Line 755:
 
   ACR TRAINING EVALUATION        (#278)
 
   ACR TRAINING EVALUATION        (#278)
 
   ACR TRAVEL ORDER                (#279)
 
   ACR TRAVEL ORDER                (#279)
   ACR TRAINING AUTHORIZATION      (#280)
+
   ACR TRAINING [[AUTHORIZATION~|Authorization]]     (#280)
 
   ACR TRAINING OTHER DATA        (#281)
 
   ACR TRAINING OTHER DATA        (#281)
 
   ACR TRAINING NEED              (#282)
 
   ACR TRAINING NEED              (#282)
Line 786: Line 804:
 
   ACR REJECTION/CANCELLATION      (#327)
 
   ACR REJECTION/CANCELLATION      (#327)
 
   ACR REASON FOR CHANGE          (#328)
 
   ACR REASON FOR CHANGE          (#328)
   ACR CONTRACT ACTION-1449        (#329)
+
   ACR CONTRACT [[ACTION~|Action]]-1449        (#329)
   ACR CONTRACT ACTION-26          (#330)
+
   ACR CONTRACT [[ACTION~|Action]]-26          (#330)
 
   ACR CONTRACT CONTENTS          (#331)
 
   ACR CONTRACT CONTENTS          (#331)
   ACR CONTRACT ACTION-33          (#332)
+
   ACR CONTRACT [[ACTION~|Action]]-33          (#332)
 
   ACR SUPPLY/SERVICES-CONTRACT    (#333)
 
   ACR SUPPLY/SERVICES-CONTRACT    (#333)
 
   ACR REVIEW PAYMENT-T            (#334)
 
   ACR REVIEW PAYMENT-T            (#334)
Line 830: Line 848:
  
 
INITIALIZATION COMPLETED IN 7 SECONDS.
 
INITIALIZATION COMPLETED IN 7 SECONDS.
</code>
+
</pre>
  
 
Now, initialize ZU:
 
Now, initialize ZU:
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>d ^ZUSET
 
GTM>d ^ZUSET
  
Line 842: Line 860:
 
   
 
   
 
Routine ZUGTM was renamed to ZU
 
Routine ZUGTM was renamed to ZU
</code>
+
</pre>
  
 
Now, go into the device file and fix the Telnet, Console, Null, and HFS devices.
 
Now, go into the device file and fix the Telnet, Console, Null, and HFS devices.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
VA FileMan 22.0
 
VA FileMan 22.0
  
Line 932: Line 950:
 
CLOSE PARAMETERS:  
 
CLOSE PARAMETERS:  
 
USE PARAMETERS: ^
 
USE PARAMETERS: ^
</code>
+
</pre>
  
 
Now you have to test that this actually works. You need to try to use fileman print option to print something. This opens the devices; so you can check that they are actually working. Log into a tty device, then a pts device, and print on HOME device. Also try to print to the Null device and HFS device.
 
Now you have to test that this actually works. You need to try to use fileman print option to print something. This opens the devices; so you can check that they are actually working. Log into a tty device, then a pts device, and print on HOME device. Also try to print to the Null device and HFS device.
Line 938: Line 956:
 
Now time to fix the volume in various files. Find out the correct volume from GETENV^%ZOSV and file it. In this case it's RPMS.
 
Now time to fix the volume in various files. Find out the correct volume from GETENV^%ZOSV and file it. In this case it's RPMS.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>D GETENV^%ZOSV W Y
 
GTM>D GETENV^%ZOSV W Y
 
RPMS^RPMS^icarus^RPMS:icarus
 
RPMS^RPMS^icarus^RPMS:icarus
Line 1,033: Line 1,051:
 
Select VOLUME SET:  
 
Select VOLUME SET:  
 
DEFAULT DIRECTORY FOR HFS: C:\TEMP// /tmp/
 
DEFAULT DIRECTORY FOR HFS: C:\TEMP// /tmp/
</code>
+
</pre>
  
 
Then fix mailman filer:
 
Then fix mailman filer:
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
Select OPTION: enter OR EDIT FILE ENTRIES   
 
Select OPTION: enter OR EDIT FILE ENTRIES   
  
Line 1,055: Line 1,073:
  
 
CPU (UCI,VOL) FOR FILER TO RUN: GOLDB,GOLDB// RPMS,RPMS
 
CPU (UCI,VOL) FOR FILER TO RUN: GOLDB,GOLDB// RPMS,RPMS
</code>
+
</pre>
  
 
Then, if the volume fields of Option Scheduling or Device File reference the wrong volume, you can delete them.
 
Then, if the volume fields of Option Scheduling or Device File reference the wrong volume, you can delete them.
Line 1,061: Line 1,079:
 
Now, correct Taskman entries. Kill off ^%ZTSK and ^%ZTSCH and then re-index the Option Scheduling file (all indexes). You need to add at least one entry in order for the re-indexing to work.
 
Now, correct Taskman entries. Kill off ^%ZTSK and ^%ZTSCH and then re-index the Option Scheduling file (all indexes). You need to add at least one entry in order for the re-indexing to work.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>D P^DI
 
GTM>D P^DI
  
Line 1,138: Line 1,156:
 
GTM>ZWRITE ^%ZTSCH
 
GTM>ZWRITE ^%ZTSCH
 
^%ZTSCH(5367576240,1002)=""
 
^%ZTSCH(5367576240,1002)=""
</code>
+
</pre>
  
 
Fix the RPMS Site File. Set the OS to Unix.
 
Fix the RPMS Site File. Set the OS to Unix.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>D P^DI
 
GTM>D P^DI
  
Line 1,171: Line 1,189:
 
       2        DOS
 
       2        DOS
 
OPERATING SYSTEM: DOS// 1  UNIX
 
OPERATING SYSTEM: DOS// 1  UNIX
</code>
+
</pre>
  
 
Now try to start Taskman. Run ^ZTMCHK first, then run ^ZTMON to see that it is stopped. Now, run ^ZTMB to start it. After 30 seconds, check ^ZTMON. You should see that Taskman is running. I had a start-up hang first, but it changed to a run.
 
Now try to start Taskman. Run ^ZTMCHK first, then run ^ZTMON to see that it is stopped. Now, run ^ZTMB to start it. After 30 seconds, check ^ZTMON. You should see that Taskman is running. I had a start-up hang first, but it changed to a run.
Line 1,177: Line 1,195:
 
Now, log in using ^ZU.
 
Now, log in using ^ZU.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>ZWRITE ^VA(200,4,0:.1)
 
GTM>ZWRITE ^VA(200,4,0:.1)
 
^VA(200,4,0)="MANAGER,SYSTEM^SM^SYSTEM.01^@^^^^^^^^^^^^3"
 
^VA(200,4,0)="MANAGER,SYSTEM^SM^SYSTEM.01^@^^^^^^^^^^^^3"
Line 1,224: Line 1,242:
  
 
Select IHS Kernel Option:  
 
Select IHS Kernel Option:  
</code>
+
</pre>
  
 
Now, I back up the database.
 
Now, I back up the database.
  
IV. Making BMX work
+
=== IV. Making BMX work ===
 
This required some coding, as the BMX broker does not support GT.M by default. Thankfully, I did this a year and a half ago; and I applied all my changes that were only specific to GT.M, but not to VISTA.
 
This required some coding, as the BMX broker does not support GT.M by default. Thankfully, I did this a year and a half ago; and I applied all my changes that were only specific to GT.M, but not to VISTA.
  
Line 1,236: Line 1,254:
 
1st, create a xinetd service pointing to a shell script to execute upon connection. As an example, here is mine:
 
1st, create a xinetd service pointing to a shell script to execute upon connection. As an example, here is mine:
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sakura@icarus:~/rpms201011$ cat /etc/xinetd.d/rpms_9101  
 
sakura@icarus:~/rpms201011$ cat /etc/xinetd.d/rpms_9101  
 
service rpms_9101_BMX
 
service rpms_9101_BMX
Line 1,250: Line 1,268:
 
         groups = yes
 
         groups = yes
 
         }
 
         }
</code>
+
</pre>
  
 
Then the shell script to open the connection with the database. Here is mine:
 
Then the shell script to open the connection with the database. Here is mine:
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sakura@icarus:~/rpms201011$ cat /home/sakura/rpms201011/xinetd-BMX.sh  
 
sakura@icarus:~/rpms201011$ cat /home/sakura/rpms201011/xinetd-BMX.sh  
 
#!/bin/bash
 
#!/bin/bash
Line 1,264: Line 1,282:
 
logger -t 'RPMS-BMX' 'Exit from xinetd'
 
logger -t 'RPMS-BMX' 'Exit from xinetd'
 
exit 0
 
exit 0
</code>
+
</pre>
  
 
Good sense dictates testing before throwing the real stuff at it.
 
Good sense dictates testing before throwing the real stuff at it.
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sudo service xinetd stop
 
sudo service xinetd stop
 
sudo xinetd -d
 
sudo xinetd -d
Line 1,276: Line 1,294:
 
(from yet another window)
 
(from yet another window)
 
telnet localhost 9101
 
telnet localhost 9101
</code>
+
</pre>
  
 
Here is the output that I got:
 
Here is the output that I got:
  
 
Telnet:
 
Telnet:
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
Trying ::1...
 
Trying ::1...
 
Trying 127.0.0.1...
 
Trying 127.0.0.1...
Line 1,294: Line 1,312:
 
         At column 30, line 164, source module /home/sakura/rpms201011/p/BMXMON.m
 
         At column 30, line 164, source module /home/sakura/rpms201011/p/BMXMON.m
 
%GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found
 
%GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found
</code>
+
</pre>
  
 
Syslog
 
Syslog
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
Feb 19 14:30:49 icarus RPMS-BMX: Entry from xinetd
 
Feb 19 14:30:49 icarus RPMS-BMX: Entry from xinetd
 
(later)
 
(later)
 
Feb 19 14:30:59 icarus RPMS-BMX: Exit from xinetd
 
Feb 19 14:30:59 icarus RPMS-BMX: Exit from xinetd
</code>
+
</pre>
  
 
Xinetd
 
Xinetd
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
11/2/19@14:30:49: DEBUG: 3280 {server_start} Starting service rpms_9101_BMX
 
11/2/19@14:30:49: DEBUG: 3280 {server_start} Starting service rpms_9101_BMX
 
11/2/19@14:30:49: DEBUG: 3280 {main_loop} active_services = 5
 
11/2/19@14:30:49: DEBUG: 3280 {main_loop} active_services = 5
Line 1,316: Line 1,334:
 
11/2/19@14:30:59: DEBUG: 3280 {child_exit} waitpid returned = -1
 
11/2/19@14:30:59: DEBUG: 3280 {child_exit} waitpid returned = -1
 
11/2/19@14:30:59: DEBUG: 3280 {main_loop} active_services = 5
 
11/2/19@14:30:59: DEBUG: 3280 {main_loop} active_services = 5
</code>
+
</pre>
  
You can also use my BMXCmdTester that I authored in C#. <reminder: add link later> Just remember to compile it with the RPMS flag b/c one of the tests differs b/n VISTA and RPMS. I made some changes to it but I don't think I uploaded it. <Sam: Please remember>.
+
You can also use my BMXCmdTester that I authored in C#. <https://trac.opensourcevista.net/svn/BMXNET_RPMS_dotNET_UTILITIES-BMX/trunk/cs/bmx_0200scr/BMX2/BMXCmdTester/bmxTesterForVista_0200.cs>. Just remember to compile it with the RPMS flag b/c one of the tests differs b/n VISTA and RPMS.
  
 
+
=== V. Making CIA work ===
V. Making CIA work
 
  
 
I had to make changes to a couple of routines to get CIA to work with GT.M: CIANBACT, and CIANBLIS. They will be in the p folder. I also introduced logging using XWBDLOG.
 
I had to make changes to a couple of routines to get CIA to work with GT.M: CIANBACT, and CIANBLIS. They will be in the p folder. I also introduced logging using XWBDLOG.
Line 1,327: Line 1,344:
 
First, make sure that you configured the UCI correctly in the CIA Broker Settings as it is rather very picky about getting that right.
 
First, make sure that you configured the UCI correctly in the CIA Broker Settings as it is rather very picky about getting that right.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
GTM>S DUZ=4 D ^XUP
 
GTM>S DUZ=4 D ^XUP
  
Line 1,420: Line 1,437:
 
------------------------------------------------------------------------------
 
------------------------------------------------------------------------------
 
Enter RETURN to continue or '^' to exit:  
 
Enter RETURN to continue or '^' to exit:  
</code>
+
</pre>
  
 
Like BMX, you need the xinetd server and the shell script.
 
Like BMX, you need the xinetd server and the shell script.
  
 
Here's the server:
 
Here's the server:
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sakura@icarus:~$ cat /etc/xinetd.d/rpms_9100
 
sakura@icarus:~$ cat /etc/xinetd.d/rpms_9100
 
service rpms_CIA_client
 
service rpms_CIA_client
Line 1,439: Line 1,456:
 
         groups = yes
 
         groups = yes
 
         }
 
         }
</code>
+
</pre>
  
 
Here's the script:
 
Here's the script:
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
sakura@icarus:~$ cat /home/sakura/rpms201011/xinetd-CIA.sh
 
sakura@icarus:~$ cat /home/sakura/rpms201011/xinetd-CIA.sh
 
#!/bin/bash
 
#!/bin/bash
Line 1,452: Line 1,469:
 
logger -t 'RPMS-CIA' 'Exit from xinetd'
 
logger -t 'RPMS-CIA' 'Exit from xinetd'
 
exit 0
 
exit 0
</code>
+
</pre>
 
where 9100 is the port number. I haven't figured out an automatic way to get the port number yet.
 
where 9100 is the port number. I haven't figured out an automatic way to get the port number yet.
  
Now you can do the tests. Have fun. Also, there is a python script (which I again modified... Sam send the changes to Conor) that can communicate with the CIA Broker. <Attach link later>
+
Now you can do the tests. Have fun. Also, there is a python script (which I again modified... by the time you read this Conor should have made the changes) that can communicate with the CIA Broker (http://repository.caregraf.org/fmql/raw-file/3e64e4d744c3/Python/brokerRPC.py)
  
VI. Setting the Agency Code correctly for VueCentric
+
=== VI. Setting the Agency Code correctly for VueCentric ===
 
Due to a line in BEHOPTCX that is new with EHR patch 6, it looks for the agency and based on that decides whether to get the HRN or MRN. The routine for MRN is missing. So you have to make sure that the DUZ("AG") is always going to be "I". In the Kernel, this is already the case; so ^XUP will get you the right agency. That is not the case though with the Insitution which ^XUS looks for; so you need to change the institution on the only institution in the system.
 
Due to a line in BEHOPTCX that is new with EHR patch 6, it looks for the agency and based on that decides whether to get the HRN or MRN. The routine for MRN is missing. So you have to make sure that the DUZ("AG") is always going to be "I". In the Kernel, this is already the case; so ^XUP will get you the right agency. That is not the case though with the Insitution which ^XUS looks for; so you need to change the institution on the only institution in the system.
  
<code>
+
<pre style="padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em">
 
NAME: DEMO IHS CLINIC                  STATE: ILLINOIS
 
NAME: DEMO IHS CLINIC                  STATE: ILLINOIS
 
  STATUS: Local                        STREET ADDR. 1: 123 ELM STREET
 
  STATUS: Local                        STREET ADDR. 1: 123 ELM STREET
Line 1,488: Line 1,505:
 
Select INSTITUTION NAME: DEMO IHS CLINIC                    12    IL    8904   
 
Select INSTITUTION NAME: DEMO IHS CLINIC                    12    IL    8904   
 
AGENCY CODE: OTHER// IHS  IHS
 
AGENCY CODE: OTHER// IHS  IHS
</code>
+
</pre>
  
VII. BEHOCACV
+
=== VII. BEHOCACV ===
 
Routine BEHOCACV had a bug in it, and apparently Cache didn't care. Also in the p directory, you will find a modified version that fixes the tiny bug.
 
Routine BEHOCACV had a bug in it, and apparently Cache didn't care. Also in the p directory, you will find a modified version that fixes the tiny bug.
  
Conclusion:
+
 
 +
=== VIII: Conclusion ===
  
 
With all of these changes VueCentric should work okay; however, there are a lot of stuff that has either been stripped out (like the Lexicon, so you can't really do any coded documentation) or Immunization Forecasting, which so far is written only for Cache. Conceivable, the .so or .dll files should work under Linux, but the BIX routines are written for Cache only, and I haven't touched them yet.
 
With all of these changes VueCentric should work okay; however, there are a lot of stuff that has either been stripped out (like the Lexicon, so you can't really do any coded documentation) or Immunization Forecasting, which so far is written only for Cache. Conceivable, the .so or .dll files should work under Linux, but the BIX routines are written for Cache only, and I haven't touched them yet.
Line 1,499: Line 1,517:
 
IHS uses yet another Broker for the legacy IHS Patient Chart. This is still used in IHS in Psychiatry. I haven't ported that.
 
IHS uses yet another Broker for the legacy IHS Patient Chart. This is still used in IHS in Psychiatry. I haven't ported that.
  
Sam
+
=== IV: Screenshots ===
 +
Logging into VueCentric running on Linux using wine.
 +
[[Image:VueCentricLoginOnLinux.png]]
 +
 
 +
But on Linux, VueCentric complains that you don't have a valid license.
 +
[[Image:VueCentric_no_valid_license_on_Linux.png]]
 +
 
 +
VueCentric Manager running on Linux using wine. It works, almost fine, except for the tabs.
 +
[[Image:VueCentricManagerOnLinux.png]]
 +
 
 +
IM on VueCentric. VueCentric is running on Windows against an RPMS GT.M Database.
 +
[[Image:VueCentricIM.png]]

Latest revision as of 00:04, 30 September 2012

Document written by Sam Habiel on Feb 1, 2011 in Hurghada, Egypt.

Note: if you don't want to do all of this, a ready RPMS GT.M containing all the work I did plus all the modified routines is here: http://sourceforge.net/projects/worldvista/files/IHS-FOIA-Release-11-30-2010/rpms_samsGTMport.tgz/download

The starting point is this FOIA release, containing the CACHE.DAT plus all the software: http://sourceforge.net/projects/worldvista/files/IHS-FOIA-Release-11-30-2010/IHS_RPMS_FOIA_GOLDB_20101130.zip/download

If you see any references below to modified routines, look for them in this download in the p directory.

You still have to follow this document and perform pertinent steps.

  • GT.M set-up
  • CIA & BMX xinetd listeners and scripts

I -- Exporting from Cache

Export Routines from Cache to GT.M. Export Only * routines; not % routines.

 RPMS> d ^%RO

Export Globals in ZWRITE format using Maury Pepper's routine (https://sourceforge.net/tracker/download.php?group_id=11026&atid=311026&file_id=254876&aid=534145)

 RPMS> d ^ZWR1

OR --> Grab the globals and routines off sourceforge (http://sourceforge.net/projects/worldvista/files/IHS-FOIA-Release-11-30-2010/rpmsGlobalsRoutines20101130.zip/download)

II -- Set-up GT.M environment

IMPORTANT: for practicality, I work of the current working directory. I assume you will know what you are doing.

Create the empty routine directories plus journal directory plus globals directory

mkdir o r j g

Create rpms.env with the following code:

 #!/bin/bash
 unset gtm_chset  # remove UTF-8 if set
 export gtmgbldir=mumps.gld              # tell GT.M to use this file for db inf
 export gtm_dist=/opt/fis-gtm/gtm/       # tell GT.M where GT.M is
 export gtmroutines="o(r) $gtm_dist"     # tell GT.M where its routines are
 export PATH=$PATH:$gtm_dist             # add to PATH for my happiness

Change Kernel Shared Memory allowance (shmmax) in order to allow the 32 kb global nodes on GT.M. VISTA does not require that; however, RPMS does since it has long global nodes:

(need to be root to edit the file)

echo "kernel.shmmax = 67108864" >> /etc/sysctl.conf

Now you need to restart the kernel. I only know of one way to do that: restarting the computer.

sudo reboot

Now, create the database. Source the env file, and use GDE.

sakura@icarus:~/rpms201011$ . env.rpms

Create a GDE file called gde.rpms containing the following:

>        
 CHANGE -SEGMENT DEFAULT -ACCESS_METHOD=BG -BLOCK_SIZE=33792 -ALLOCATION=1024 -EXTENSION_COUNT=1024 -GLOBAL_BUFFER_COUNT=4096 -LOCK_SPACE=400 -FILE=g/default.dat
 CHANGE -REGION DEFAULT -[[RECORD~|Record]]_SIZE=32767 -KEY_SIZE=255 -JOURNAL=(BEFORE_IMAGE,FILE_NAME="j/default.mjl,BUFFER_SIZE=132") -DYNAMIC_SEGMENT=DEFAULT
 TEMPLATE -SEGMENT -ACCESS_METHOD=BG -BLOCK_SIZE=4096 -ALLOCATION=1024 -EXTENSION_COUNT=1024 -GLOBAL_BUFFER_COUNT=4096 -LOCK_SPACE=400
 TEMPLATE -REGION -[[RECORD~|Record]]_SIZE=4080 -KEY_SIZE=255 -NOJOURNAL
 ADD -SEGMENT SCRATCH -FILE=g/scratch.dat
 ADD -REGION SCRATCH -DYNAMIC_SEGMENT=SCRATCH
 ADD -NAME TMP -REGION=SCRATCH
 ADD -NAME TEMP -REGION=SCRATCH
 ADD -NAME UTILITY -REGION=SCRATCH
 TEMPLATE -REGION -[[RECORD~|Record]]_SIZE=4080 -KEY_SIZE=255 -JOURNAL=BEFORE_IMAGE
 EXIT

Now time to load it.

 sakura@icarus:~/rpms201011$ mumps -r GDE
 %GDE-I-GDUSEDEFS, Using defaults for Global Directory 
    /home/sakura/rpms201011/mumps.gld

 GDE> @gde.rpms
 %GDE-I-EXECOM, Executing command file /home/sakura/rpms201011/gde.rpms

 %GDE-I-VERIFY, [[Verification~|Verification]] OK

 %GDE-I-GDCREATE, Creating Global Directory file 
    /home/sakura/rpms201011/mumps.gld

IMPORTANT: This does not seem to be working. I get the error: shmmget has invalid parameters. So I used a simplified one below:

 sakura@icarus:~/rpms201011$ mumps -r ^GDE
 %GDE-I-GDUSEDEFS, Using defaults for Global Directory 
    /home/sakura/rpms201011/mumps.gld

 GDE> CH -S DEFAULT -BLOCK_SIZE=34816 -L=1000
 GDE> CH -R DEFAULT -R=32767 -K=255
 GDE> EXIT
 %GDE-I-VERIFY, [[Verification~|Verification]] OK

Now create the database.

 sakura@icarus:~/rpms201011$ mupip create
 %GTM-W-MUNOSTRMBKUP, Database /home/sakura/rpms201011/g/default.dat has a block size larger than 32256 and thus cannot use stream (incremental) backup
 Created file /home/sakura/rpms201011/mumps.dat

Now test the database for sanity

sakura@icarus:~/rpms201011$ gtm

GTM>d ^%GD

Global Directory

Global ^*

Total of 0 globals.

Global ^

III. Import GT.M routines and Globals

Importing routines is a straight forward affair.

sakura@icarus:~/rpms201011$ gtm

 GTM>d ^%RI

 Routine Input Utility - Converts RO file to *.m files.

 Formfeed delimited <No>? 
 Input device: <terminal>: raw/routines/routines_20101130.ro

 Cache for Windows^INT^RPMS Routines 2010-11-30^~Format=Cache.S~
 %RO on 22 Jan 2011   1:41 PM


 Output directory : r/

and you will see 33000 routines (!) roll through.

To import the globals (1754), do something like the following:

for glob in raw/globals/*; do echo $glob >> mupip.load ; mupip load -format=zwr $glob >> mupip.load 2>&1; done

Check the log to check that all files loaded correctly.

IV. Initialize Kernel and Fileman

First, run ^ZTMGRSET. This will initialize ^%ZOSF and create the % routines.

GTM>K ^%ZOSF

GTM>D ^ZTMGRSET


ZTMGRSET Version 8.0 **34,36,69,94,121,127,136,191,275**
HELLO! I exist to assist you in correctly initializing the current account.
Which MUMPS system should I install?

1 = VAX DSM(V6), VAX DSM(V7)
2 = MSM-PC/PLUS, MSM for NT or UNIX
3 = OpenM for NT, Cache/NT, Cache/VMS
4 = Datatree, DTM-PC, DT-MAX
5 = MVX,ISM VAX
6 = ISM (UNIX, Open VMS)
7 = GT.M (VMS)
8 = GT.M (Unix)
System: 8

I will now rename a group of routines specific to your operating system.
Routine: ZOSVGUX      Loaded, Saved as %ZOSV
Routine: ZTBKCGUX     Missing
Routine: ZIS4GTM     . S (%,%1)=$ZGETDVI($I,"TT_ACCPORNAM")
                 ^-----
        At column 14, line 44, source module /home/sakura/rpms201011/r/ZIS4GTM.m
%GTM-E-FNOTONSYS, Function or special variable is not supported by this operating system
      Loaded, Saved as %ZIS4
Routine: ZISFGUX      Missing
Routine: ZISHGUX      Loaded, Saved as %ZISH
Routine: XUCIGTM      Loaded, Saved as %XUCI
Routine: ZISETGUX     Missing
Routine: ZOSV2GTM     Loaded, Saved as %ZOSV2
Routine: ZISTCPS     O NIO:(:SOCK:"AT"::512:512:10):30 Q:'$T  S POP=0 U NIO
            ^-----
        At column 9, line 25, source module /home/sakura/rpms201011/r/ZISTCPS.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     J CHILDONT^%ZISTCPS(NIO,RTN):(:16::):10 S %ZA=$ZA
                                   ^-----
        At column 32, line 30, source module /home/sakura/rpms201011/r/ZISTCPS.m
%GTM-E-JOBPARUNK, Job parameter unknown
     S $ETRAP="D ^%ZTER L  HALT",IO=$ZU(53)
                                     ^-----
        At column 34, line 35, source module /home/sakura/rpms201011/r/ZISTCPS.m
%GTM-E-INVFCN, Invalid function name
     U IO:(::"-M") ;Work like DSM
           ^-----
        At column 8, line 36, source module /home/sakura/rpms201011/r/ZISTCPS.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
      Loaded, Saved as %ZISTCPS

NAME OF MANAGER'S UCI,VOLUME SET: VAH,ROU// RPMS,RPMS
The value of PRODUCTION will be used in the GETENV api.
PRODUCTION (SIGN-ON) UCI,VOLUME SET: VAH,ROU// RPMS,RPMS
The VOLUME name must match the one in PRODUCTION.
NAME OF VOLUME SET: RPMS//
The temp directory for the system: '/tmp/'//
^%ZOSF setup


Now to load routines common to all systems.
Routine: ZTLOAD       Loaded, Saved as %ZTLOAD
Routine: ZTLOAD1      Loaded, Saved as %ZTLOAD1
Routine: ZTLOAD2      Loaded, Saved as %ZTLOAD2
Routine: ZTLOAD3      Loaded, Saved as %ZTLOAD3
Routine: ZTLOAD4      Loaded, Saved as %ZTLOAD4
Routine: ZTLOAD5      Loaded, Saved as %ZTLOAD5
Routine: ZTLOAD6      Loaded, Saved as %ZTLOAD6
Routine: ZTLOAD7      Loaded, Saved as %ZTLOAD7
Routine: ZTM          Loaded, Saved as %ZTM
Routine: ZTM0         Loaded, Saved as %ZTM0
Routine: ZTM1         Loaded, Saved as %ZTM1
Routine: ZTM2         Loaded, Saved as %ZTM2
Routine: ZTM3         Loaded, Saved as %ZTM3
Routine: ZTM4         Loaded, Saved as %ZTM4
Routine: ZTM5         Loaded, Saved as %ZTM5
Routine: ZTM6    S ZTNAME=$ZC(%GETJPI,ZTPID,"PRCNAM") Q:ZTNAME["Sub"
               ^-----
        At column 12, line 76, source module /home/sakura/rpms201011/r/ZTM6.m
%GTM-E-FNOTONSYS, Function or special variable is not supported by this operating system
     S ZTSTATE=$ZC(%GETJPI,ZTPID,"STATE")
                ^-----
        At column 13, line 77, source module /home/sakura/rpms201011/r/ZTM6.m
%GTM-E-FNOTONSYS, Function or special variable is not supported by this operating system
         Loaded, Saved as %ZTM6
Routine: ZTMS         Loaded, Saved as %ZTMS
Routine: ZTMS0        Loaded, Saved as %ZTMS0
Routine: ZTMS1        Loaded, Saved as %ZTMS1
Routine: ZTMS2        Loaded, Saved as %ZTMS2
Routine: ZTMS3        Loaded, Saved as %ZTMS3
Routine: ZTMS4        Loaded, Saved as %ZTMS4
Routine: ZTMS5        Loaded, Saved as %ZTMS5
Routine: ZTMS7        Loaded, Saved as %ZTMS7
Routine: ZTMSH        Missing
Routine: ZTER    I ^%ZOSF("OS")["OpenM" D SAVE("$ZU(56,2)",$ZU(56,2))
                                                ^-----
        At column 45, line 29, source module /home/sakura/rpms201011/r/ZTER.m
%GTM-E-INVFCN, Invalid function name
         Loaded, Saved as %ZTER
Routine: ZTER1   S @%ZTERRT@("J")=$J_"^"_$ZC(%GETJPI,0,"PRCNAM")_"^"_$ZC(%GETJPI,0,"USERNAME")_"^"_%ZTER11I_"^"_$ZC(%SYSFAO,"!XL",$J),@%ZTERRT@("I")=$IO_"^"_$ZA_"^"_$ZB_"^"_$ZIO K %ZTER11I
                              ^-----
        At column 27, line 4, source module /home/sakura/rpms201011/r/ZTER1.m
%GTM-E-FNOTONSYS, Function or special variable is not supported by this operating system
     S @%ZTERRT@("J")=$J_"^"_$ZC(%GETJPI,0,"PRCNAM")_"^"_$ZC(%GETJPI,0,"USERNAME")_"^"_%ZTER11I_"^"_$ZC(%SYSFAO,"!XL",$J),@%ZTERRT@("I")=$IO_"^"_$ZA_"^"_$ZB_"^"_$ZIO K %ZTER11I
                                                          ^-----
        At column 55, line 4, source module /home/sakura/rpms201011/r/ZTER1.m
%GTM-E-FNOTONSYS, Function or special variable is not supported by this operating system
     S @%ZTERRT@("J")=$J_"^"_$ZC(%GETJPI,0,"PRCNAM")_"^"_$ZC(%GETJPI,0,"USERNAME")_"^"_%ZTER11I_"^"_$ZC(%SYSFAO,"!XL",$J),@%ZTERRT@("I")=$IO_"^"_$ZA_"^"_$ZB_"^"_$ZIO K %ZTER11I
                                                                                                     ^-----
        At column 98, line 4, source module /home/sakura/rpms201011/r/ZTER1.m
%GTM-E-FNOTONSYS, Function or special variable is not supported by this operating system
     S @%ZTERRT@("ZH")=$TR($ZH,",","^")
                            ^-----
        At column 25, line 5, source module /home/sakura/rpms201011/r/ZTER1.m
%GTM-E-INVSVN, Invalid special variable name
     S %ZTER111="%" F  D  S %ZTER111=$ZSORT(@%ZTER111) Q:%ZTER111=""  ;Code from DEC
                                      ^-----
        At column 35, line 6, source module /home/sakura/rpms201011/r/ZTER1.m
%GTM-E-INVFCN, Invalid function name
        Loaded, Saved as %ZTER1
Routine: ZIS          Loaded, Saved as %ZIS
Routine: ZIS1         Loaded, Saved as %ZIS1
Routine: ZIS2         Loaded, Saved as %ZIS2
Routine: ZIS3         Loaded, Saved as %ZIS3
Routine: ZIS5         Loaded, Saved as %ZIS5
Routine: ZIS6         Loaded, Saved as %ZIS6
Routine: ZIS7         Loaded, Saved as %ZIS7
Routine: ZISC         Loaded, Saved as %ZISC
Routine: ZISP         Loaded, Saved as %ZISP
Routine: ZISS         Loaded, Saved as %ZISS
Routine: ZISS1        Loaded, Saved as %ZISS1
Routine: ZISS2        Loaded, Saved as %ZISS2
Routine: ZISTCP  O NIO:(TCPCHAN,ADDRESS=IP):TO G:'$T NOOPN
            ^-----
        At column 9, line 19, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     U NIO::"TCP" W /SOCKET(IP,SOCK) I $KEY="" C NIO G NOOPN
           ^-----
        At column 8, line 24, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     I $$VERSION^%ZOSV'<5 S %A=$ZUTIL(68,55,1)
                                ^-----
        At column 29, line 28, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-INVFCN, Invalid function name
     O NIO:(IP:SOCK:"S"::512:512):TO G:'$T NOOPN ;Make work like DSM
            ^-----
        At column 9, line 31, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     I %ZISOS["DSM",%ZISV'<7 S NIO="SYS$NET" O NIO:(TCPDEV):5 D:$T VAR(NIO)
                                                    ^-----
        At column 49, line 65, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     U NIO::"TCP" W /SOCKET("",SOCK)
           ^-----
        At column 8, line 104, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     O NIO:(:SOCK:"AT"::512:512:3):30 Q:'$T  S POP=0
            ^-----
        At column 9, line 112, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     U NIO:(::"S") ;Work like DSM
            ^-----
        At column 9, line 119, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     S NIO=SOCK O NIO:(TCPCHAN):30 Q:'$T  S POP=0
                       ^-----
        At column 20, line 124, source module /home/sakura/rpms201011/r/ZISTCP.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
       Loaded, Saved as %ZISTCP
Routine: ZISUTL       Loaded, Saved as %ZISUTL
Routine: ZTPP         Loaded, Saved as %ZTPP
Routine: ZTP1         Loaded, Saved as %ZTP1
Routine: ZTPTCH       Loaded, Saved as %ZTPTCH
Routine: ZTRDEL       Loaded, Saved as %ZTRDEL
Routine: ZTMOVE       Missing
Want to rename the FileMan routines: No//Y
Routine: DIDT         Loaded, Saved as %DT
Routine: DIDTC        Loaded, Saved as %DTC
Routine: DIRCR   S %D="" F  S %D=$O(%RCR(%D)) Q:%D=""  ZNEW @%D
                                           ^-----
        At column 40, line 12, source module /home/sakura/rpms201011/r/DIRCR.m
%GTM-E-INVCMD, Invalid command keyword encountered
        Loaded, Saved as %RCR
Setting ^%ZIS('C')

Now, I will check your % globals...........
ALL DONE

Several routines are broken and don't have versions that work for GT.M. Copy them from a WV instance:

%ZISF
%ZIS
%ZISTCPS
%ZTMOVE
%RCR
%ZOSV
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_RCR.m r/
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZTMOVE.m r/
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZISF.m r/
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZIS.m r/
sakura@icarus:~/rpms201011$ cp /opt/worldvista/EHR/routines/_ZISTCPS.m r/

Now initialize Fileman: (Note: if you are running a recent version of RPMS, you need to remove transactions from Taskman routine ZTLOAD1 and re-execute ZTMGRSET to rename it to the % version.)

GTM>d ^DINIT


VA FileMan V.22.0


Initialize VA FileMan now?  NO//y

SITE NAME: DEMO SITE// 

SITE NUMBER: 8904// ..........................

Now loading MUMPS Operating System File....

Now loading DIALOG and LANGUAGE Files...........................................
...............


TYPE OF MUMPS SYSTEM YOU ARE USING: CACHE/OpenM// GT.M
     1   GT.M(UNIX)  
     2   GT.M(VAX)  
CHOOSE 1-2: 1  GT.M(UNIX)

Now loading other FileMan files--please wait....................................
................................................................................
................................................................................
................................
..........

The following files have been installed:
   .11     INDEX
   .2      DESTINATION
   .31     KEY
   .4      PRINT TEMPLATE
   .401    SORT TEMPLATE
   .402    INPUT TEMPLATE
   .403    FORM
   .404    BLOCK
   .44     FOREIGN FORMAT
   .46     IMPORT TEMPLATE
   .5      FUNCTION
   .6      DD AUDIT
   .7      MUMPS OPERATING SYSTEM
   .81     DATA TYPE
   .83     COMPILED ROUTINE
   .84     DIALOG
   .85     LANGUAGE
  1        FILE
  1.1      AUDIT
  1.11     ARCHIVAL ACTIVITY
  1.12     FILEGRAM HISTORY
  1.13     FILEGRAM ERROR LOG
  1.2      ALTERNATE EDITOR
  1.521    SQLI_SCHEMA
  1.52101  SQLI_KEY_WORD
  1.5211   SQLI_DATA_TYPE
  1.5212   SQLI_DOMAIN
  1.5213   SQLI_KEY_FORMAT
  1.5214   SQLI_OUTPUT_FORMAT
  1.5215   SQLI_TABLE
  1.5216   SQLI_TABLE_ELEMENT
  1.5217   SQLI_COLUMN
  1.5218   SQLI_PRIMARY_KEY
  1.5219   SQLI_FOREIGN_KEY
  1.52191  SQLI_ERROR_TEXT
  1.52192  SQLI_ERROR_LOG


Re-indexing entries in the DIALOG file.....................

Compiling all forms ...

   DICATT                          (#.001)
   DIPTED                          (#.1001)
   DIKC EDIT                       (#.1101)
   DIKC EDIT UI                    (#.1102)
   DIKK EDIT                       (#.3101)
   DIBTED                          (#.40001)
   DIETED                          (#.40101)
   DIEDIT                          (#.40201)
   DDGF BLOCK EDIT                 (#.40301)
   DDGF PAGE ADD                   (#.40302)
   DDGF PAGE EDIT                  (#.40303)
   DDGF PAGE SELECT                (#.40304)
   DDGF FORM EDIT                  (#.40305)
   DDGF HEADER BLOCK EDIT          (#.40306)
   DDGF FIELD ADD                  (#.40401)
   DDGF FIELD CAPTION ONLY         (#.40402)
   DDGF FIELD DD                   (#.40403)
   DDGF FIELD FORM ONLY            (#.40404)
   DDGF FIELD COMPUTED             (#.40405)
   DDGF BLOCK ADD                  (#.40406)
   DDGF BLOCK DELETE               (#.40407)
   DDGF HEADER BLOCK SELECT        (#.40408)
   DDXP FF FORM1                   (#.441)
   DDMP SPECIFY IMPORT             (#.461)
   XUEDIT CHARACTERISTICS          (#1)
   XUEXISTING USER                 (#2)
   BMC REFERRAL ADD                (#3)
   BMC REFERRAL MOD                (#4)
   BMCX REFERRAL ADD               (#5)
   BMC DIAGNOSIS ADD               (#6)
   BMC UPDATE SITE PARAMETERS      (#7)
   BMC ADD/EDIT ROUTINE REF DEF    (#8)
   BMC UPDATE FACILITY ADDRESS     (#9)
   BMC MODIFY DATES (INPT)         (#10)
   AMH ADD [[RECORD~|Record]] 1                (#11)
   AMH EDIT TX PLAN                (#12)
   XUSITEPARM                      (#13)
   XUDEVICE MT                     (#14)
   XUDEVICE SDP                    (#15)
   XUDEVICE SPL                    (#16)
   XUDEVICE HFS                    (#17)
   XUDEVICE SYNC                   (#18)
   XU-ZTMSCHEDULE                  (#19)
   XUDEVICE CHAN                   (#20)
   BMC MODIFY DATES (OUPT)         (#21)
   BMC MODIFY COST INFORMATION     (#22)
   BMC MODIFY STATUS FIELDS        (#23)
   BMC MODIFY MEDICAL INFO         (#24)
   BMC DISPLAY SITE PARAMETERS     (#25)
   BMC CHS ADD                     (#26)
   BMC ADDITIONAL DOC              (#27)
   AMH PATIENT RELATED DATA        (#28)
   BAR COLLECTION POINT EDIT       (#29)
   BAR BILL FORM1                  (#30)
   BAR COLLECTION ID EDIT          (#31)
   BAR 3P MANUAL BILL ENTRY        (#32)
   BW PROC-FORM-1                  (#33)
   BW NOTIF-FORM-1                 (#34)
   BW PATIENT-FORM-1               (#35)
   BW NOTIF-FORM-2                 (#36)
   BW PROC-FORM-2-COLP             (#37)
   BW PROC-FORM-LAB                (#38)
   BW NOTIFPURPOSE-FORM-1          (#39)
   BW SITE PARAMS-FORM-1           (#40)
   BW PROC-FORM-3-CDC-PAP          (#41)
   BW PROC-FORM-3-CDC-MAM          (#42)
   BCH ENTER PATIENT DATA          (#43)
   BCH EDIT [[RECORD~|Record]] DATA            (#44)
   BCH ENTER CHRIS II DATA         (#45)
   BCH ENTER MEASUREMENTS/TESTS    (#46)
   XPD EDIT BUILD                  (#47)
   XU OPTION SCHEDULE              (#48)
   XUSERDEACT                      (#49)
   XUTM UCI ASSOC                  (#50)
   XUAUDIT                         (#51)
   XUREACT USER                    (#52)
   XU-PERSON CLASS                 (#53)
   XUNEW USER                      (#54)
   XPD EDIT MP                     (#55)
   XPD EDIT GP                     (#56)
   AMH ADD [[RECORD~|Record]]                  (#57)
   AMH EDIT [[RECORD~|Record]]                 (#58)
   AMH ADD NON-PAT [[RECORD~|Record]]          (#59)
   AMH UPDATE SITE PARAMETERS      (#60)
   AMH UPDATE CASE                 (#61)
   ASUJIB ISSUE                    (#62)
   ASUJ1DUR                        (#63)
   ASUF1DUE                        (#64)
   ASUOLI ISSUE                    (#65)
   ASUJ1DUE                        (#66)
   ASUJ2RCS                        (#67)
   ASUJ2RCT                        (#68)
   ASUJ2RCR                        (#69)
   ASUJ3ISS                        (#70)
   ASUJ3ISR                        (#71)
   ASUJ3ITF                        (#72)
   ASUJ3ITR                        (#73)
   ASUJ3INI                        (#74)
   ASUJ3INR                        (#75)
   ASUJ5STB                        (#76)
   ASUJ7DIS                        (#77)
   ASUJ7DIR                        (#78)
   ASUJ7DIT                        (#79)
   ASUJ6ADJ                        (#80)
   ASUJ6AJR                        (#81)
   ASUJ4IXD                        (#82)
   ASUJ4IXC                        (#83)
   ASUJ5STA                        (#84)
   ASUJ5STC                        (#85)
   ASUJ5STD                        (#86)
   ASUJ4IXA                        (#87)
   APCP EDIT SITE FILE             (#88)
   ANSTST1                         (#89)
   ANSTAFED                        (#90)
   ASUJ3CBO                        (#91)
   BMC CHS ADD2                    (#92)
   AMHNS ADD RECORD                (#93)
   AMH ENTER/EDIT STAGING TOOL     (#94)
   AMH ADD CASE TRACKING REC       (#95)
   AMHVT ADD [[RECORD~|Record]]                (#96)
   APCD SITE PARAMETER ENTRY       (#97)
   APCD PROBLEM ENTRY ADD/EDIT     (#98)
   XQEDTOPT                        (#99)
   XU-INST-EDIT                    (#100)
   XUTMKE ADD                      (#101)
   BMC REFERRAL MINI ADD           (#102)
   BMCXX REFERRAL ADD              (#103)
   LREPI                           (#104)
   APCL EDIT TAXONOMY              (#105)
   APCL EDIT LAB TAXONOMY          (#106)
   APCL FLOW SHEET COMPONENT       (#107)
   BW PROC-FORM-P2                 (#108)
   ASU                             (#109)
   APCD DM UPDATE                  (#110)
   BAR PROCESS VARIABLE EDIT       (#111)
   BAR EDIT [[DATA TYPES~|Data Types]]             (#112)
   BAR EDIT SEGMENTS OF TRANSPORT  (#113)
   BAR ELEMENTS EDIT               (#114)
   BAR EDI TABLE ID EDIT           (#115)
   BAR CLAIM LEVEL CODES EDIT      (#116)
   BAR LINE LEVEL CODES EDIT       (#117)
   BAR PROVIDER LEVEL CODES EDIT   (#118)
   BAR EDIT POSTING ELEMENTS       (#119)
   BAR EDIT CLAIM POSTING          (#120)
   BAR REPORT GENERATOR            (#121)
   BAR ITEMS EDIT                  (#122)
   BDM CMS REGISTER                (#123)
   BDM COMPLICATIONS               (#124)
   BDM COMMENTS                    (#125)
   APCD LINKAGE UPDATE             (#126)
   XU-CLINICAL TRAINEE             (#127)
   XUSSPKI                         (#128)
   XUDEVICE LPD                    (#129)
   APSQ NF REQUEST                 (#130)
   APSQ NF PHARMACIST              (#131)
   APSQ NF PT                      (#132)
   INHSG SEGMENT                   (#133)
   INHO MESSAGE LIST               (#134)
   INHO QSIZ                       (#135)
   INHO VS                         (#136)
   INHO TOP                        (#137)
   INH QUEUE LIST                  (#138)
   INHSG FIELD                     (#139)
   INHSG MESSAGE                   (#140)
   INHSG DATA TYPE                 (#141)
   INH BACKGROUND PROCESS          (#142)
   INH DESTINATION ENTRY AND EDIT  (#143)
   INH SECURITY CONTROL            (#144)
   INH MESSAGE REP ENTER EDIT      (#145)
   INH OPERATING SYSTEM            (#146)
   INH SITE PARAMETERS             (#147)
   INHO BPM                        (#148)
   INH TRANSACTION TYPE            (#149)
   INH TRANSACTION SEARCH EDIT     (#150)
   INH ERROR SEARCH EDIT           (#151)
   INH ERROR SUMMARY               (#152)
   INH MESSAGE EDIT                (#153)
   INH MESSAGE SEARCH              (#154)
   INH SCRIPT EDIT                 (#155)
   INH TEST UTILITY CRITERIA       (#156)
   INHSG X12 MESSAGE               (#157)
   INH ERROR SEARCH                (#158)
   BMC CHS ELIGIBILITY             (#159)
   AUT EDIT AUTTACF                (#160)
   AUT EDIT AUTTACE                (#161)
   AUT EDIT RPMS SITE              (#162)
   AVA CERTIFICATIONS              (#163)
   AVA CERTS                       (#164)
   AUT VENDOR EDIT-BILL            (#165)
   AUT VENDOR EDIT-MAIL            (#166)
   AUT VENDOR EDIT-REMIT           (#167)
   AUT VENDOR EDIT-1099            (#168)
   AUT VENDOR EDIT-ARMS/CIS        (#169)
   AG ELIGIBILITY MATCH EDIT       (#170)
   ACHS LABEL SPACING              (#171)
   ACHS MAILING ADDRESS            (#172)
   ACHS REGISTER NAMES             (#173)
   ACHS PO SIGNATURES              (#174)
   ACHS PO OBLIGA LIMITS           (#175)
   ACHS PO OVERPAY                 (#176)
   ACHS AREA DIRECTOR              (#177)
   ACHS SUD                        (#178)
   AMHB ADD [[RECORD~|Record]]                 (#179)
   AMH SUICIDE FORM UPDATE         (#180)
   AMHASA ADD [[RECORD~|Record]]               (#181)
   AUT LOCATION                    (#182)
   AUT TRIBE                       (#183)
   XDR RESFILE FORM                (#184)
   HL SITE PARAMETERS              (#185)
   HL7 APP                         (#186)
   HL7 LOGICAL LINK                (#187)
   HL7 INTERFACE                   (#188)
   BW CVD PAGE 1                   (#189)
   AMH ADD NAV REFERRAL            (#190)
   BW MP MAIN                      (#191)
   BW PROC-FORM-1-CBE              (#192)
   XUDEVICE TRM                    (#193)
   ABSP EOB TO BATCH               (#194)
   BDM DIAGNOSIS                   (#195)
   ABSP ABSPOSPW                   (#196)
   BMC SECONDARY REF ADD           (#197)
   ABSP INPUT 1                    (#198)
   BDG CHART DEF EDIT              (#199)
   BDG IC PARAMETERS               (#200)
   BDG IC EDIT                     (#201)
   BSD SET UP CLINIC               (#202)
   BDG SECURITY PARAMETERS         (#203)
   BDG SECURITY MAIL GROUP EDIT    (#204)
   BSD PARAM                       (#205)
   BDG INCOMPLETE EDIT             (#206)
   BDG SCHED ADMIT                 (#207)
   BDG SCHED DAY SURGERY           (#208)
   BDG SCHED OUTPATIENT            (#209)
   BDG PARAM                       (#210)
   BDG 45.7 SETUP                  (#211)
   BDG 49 SETUP                    (#212)
   BDG 9009016.5 SETUP             (#213)
   BDG 405.4 SETUP                 (#214)
   BSD PC TEAM EDIT                (#215)
   BSD PCP EDIT MALE               (#216)
   BDG DAY SURGERY EDIT            (#217)
   LREPIPROT                       (#218)
   NURA-I-SERVICE                  (#219)
   PSB PRN EFFECTIVENESS           (#220)
   PSB MED LOG EDIT                (#221)
   PSBO DL                         (#222)
   PSBO WA                         (#223)
   PSBO ML                         (#224)
   PSBO MM                         (#225)
   PSBO PE                         (#226)
   PSB MISSING DOSE REQUEST        (#227)
   PSBO MH                         (#228)
   PSBO MV                         (#229)
   PSB MISSING DOSE FOLLOWUP       (#230)
   PSBO BL                         (#231)
   PSBO MD                         (#232)
   PSB NEW UD ENTRY                (#233)
   PSB NEW IV ENTRY                (#234)
   PSB MED LOG EDIT IV             (#235)
   INSTITUTION EDIT                (#236)
   BUD 04 SITE PARAMETER           (#237)
   BUD SITE PARAMETER              (#238)
   AMH GROUP ADD/EDIT              (#239)
   ABMDTMS SUPPLY EDIT             (#240)
   APCD SUICIDE FORM UPDATE        (#241)
   APCD PCC MASTER CONTROL UPDATE  (#242)
   BUD 05 SITE PARAMETER           (#243)
   BMC SEC REF ADD                 (#244)
   BMC REF ADD CALL-IN             (#245)
   BMC SEC REF ADD CI              (#246)
   BDG 9009016.5 SETUP 2           (#247)
   BW PROC-FORM-1-HPV              (#248)
   BPM RESFILE FORM                (#249)
   BKMV EDIT TAXONOMY              (#252)
   BKMV EDIT LAB TAXONOMY          (#253)
   APCD UPDATE REPROD FACTORS      (#254)
   BCHB EDIT [[RECORD~|Record]] DATA           (#255)
   BCH ENTER/EDIT SUBJ/OBJ         (#256)
   BCH ENTER LAB/REPROD            (#257)
   BCHB ENTER CHRIS II DATA        (#258)
   BCHB ENTER MEASUREMENTS/TESTS   (#259)
   BCH GROUP ENTRY                 (#260)
   AMH UPDATE USER                 (#261)
   BNIA UPDATE ACTIVITY [[RECORD~|Record]]     (#262)
   BNI GROUP ENTRY                 (#263)
   BNI UPDATE ACTIVITY [[RECORD~|Record]]      (#264)
   BNIA GROUP ENTRY                (#265)
   BNI EDIT SITE PARAMETERS        (#266)
   APCH UPDATE SITE PARAMETERS     (#267)
   BUD 07 SITE PARAMETER           (#268)
   AMH EHR EDIT [[RECORD~|Record]]             (#269)
   APCD EDIT [[TREATMENT~|Treatment]] PLAN        (#270)
   AMHSV EDIT [[RECORD~|Record]]               (#271)
   BUD 08 SITE PARAMETER           (#272)
   ACR REQUISITION                 (#273)
   ACR FEDSTRIP ORDER              (#274)
   ACR TMP VENDOR DATA             (#275)
   ACR REQUEST INFO                (#276)
   ACR SUPPLY/SERVICES INFO-2      (#277)
   ACR TRAINING EVALUATION         (#278)
   ACR TRAVEL ORDER                (#279)
   ACR TRAINING [[AUTHORIZATION~|Authorization]]      (#280)
   ACR TRAINING OTHER DATA         (#281)
   ACR TRAINING NEED               (#282)
   ACR TRAVEL DAY-2                (#283)
   ACR TRAVEL DESTINATION          (#284)
   ACR AIRLINE INFO                (#285)
   ACR PURCHASE ORDER              (#286)
   ACR SMALL PURCHASE DATA         (#287)
   ACR NEW EQUIPMENT               (#288)
   ACR RECEIVING REPORT            (#289)
   ACR HOTEL                       (#290)
   ACR OBJECT CODE                 (#291)
   ACR BUDGET ACTIVITY             (#292)
   ACR ALLOWANCE NUMBER            (#293)
   ACR FEDERAL SUPPLY CLASSES      (#294)
   ACR PER DIEM                    (#295)
   ACR AIRLINE COMPANY             (#296)
   ACR FEDSTRIP LOCATION           (#297)
   ACR LOCATION CODE               (#298)
   ACR RENTAL CAR INFORMATION      (#299)
   ACR SYSTEMS DEF                 (#300)
   ACR SYSTEMS DEF-2               (#301)
   ACR SYSTEMS DHR SETUP           (#302)
   ACR PERSON                      (#303)
   ACR ARMS USER                   (#304)
   ACR APPROVAL ALTERNATE          (#305)
   ACR PURCHASING OFFICE           (#306)
   ACR PO PRINTER CONTROL          (#307)
   ACR PURCHASING AGENT            (#308)
   ACR PROGRAM                     (#309)
   ACR CAN REQUISITION DEFAULTS    (#310)
   ACR CAN PO DEFAULTS             (#311)
   ACR CAN TRAVEL DEFAULTS         (#312)
   ACR CAN TRAINING DEFAULTS       (#313)
   ACR DEPARTMENT ACCT INFO        (#314)
   ACR DEPARTMENT ACCT PURPOSE     (#315)
   ACR DEPARTMENT ACCT ACCESS      (#316)
   ACR APPROPRIATION INFO          (#317)
   ACR ALLOWANCE INFO              (#318)
   ACR ALLOWANCE PURPOSE           (#319)
   ACR SUB-ALLOWANCE INFO          (#320)
   ACR SUB-ALLOWANCE PURPOSE       (#321)
   ACR CAPITALIZED EQUIPMENT       (#322)
   ACR BPA CALL LIMIT              (#323)
   ACR RESPONSE                    (#324)
   ACR RESPONSE COMPLETED          (#325)
   ACR CREDIT CARD ITEM            (#326)
   ACR REJECTION/CANCELLATION      (#327)
   ACR REASON FOR CHANGE           (#328)
   ACR CONTRACT [[ACTION~|Action]]-1449        (#329)
   ACR CONTRACT [[ACTION~|Action]]-26          (#330)
   ACR CONTRACT CONTENTS           (#331)
   ACR CONTRACT [[ACTION~|Action]]-33          (#332)
   ACR SUPPLY/SERVICES-CONTRACT    (#333)
   ACR REVIEW PAYMENT-T            (#334)
   ACR BATCH                       (#335)
   ACR REVIEW PAYMENT              (#336)
   ACR REVIEW PAYMENT-ALL          (#337)
   ACR DHR                         (#338)
   ACR BANK INFORMATION USER       (#339)
   ACR ACH INFO                    (#340)
   ACR PERSONNEL INFO              (#341)
   ACR MY PROFILE                  (#342)
   ACR TRAVEL INFO                 (#343)
   ACR DHR ENTRY 3                 (#344)
   ACR DHR ENTRY 2                 (#345)
   ACR BANK INFORMATION VENDOR     (#346)
   ACR BANK INFORMATION            (#347)
   ACR MY PERSON PROFILE           (#348)
   ACR VENDOR REMIT TO ADDRESS     (#349)
   ACR VENDOR EDIT-SPIS            (#350)
   ACR VENDOR EDIT-MAIL            (#351)
   ACR VENDOR EDIT-CIS             (#352)
   ACR VENDOR EDIT-BILL            (#353)
   ACR VENDOR EDIT-PAY             (#354)
   ACR VENDOR EDIT-REMIT           (#355)
   ACR VENDOR EDIT                 (#356)
   ACR VENDOR DISPLAY              (#357)
   ACR VENDOR DISPLAY-INACTIVE     (#358)
   ACR VENDOR DISPLAY-AUTHORITY    (#359)
   ACR VENDOR EDIT-ACT/INACT       (#360)
   ACR VENDOR-NOT SPECIFIED        (#361)
   ACR BANK INFORMATION            (#362)
   BI FORM-VACCINE EDIT            (#363)
   BI FORM-LOT NUMBER EDIT         (#364)
   BI FORM-IMM VISIT ADD/EDIT      (#365)
   BI FORM-SKIN VISIT ADD/EDIT     (#366)
   BI FORM-CASE DATA EDIT          (#367)
   BI FORM-CONTRAINDICATION ADD    (#368)
   BI FORM-CONTRAIND ADD/EDIT      (#369)


INITIALIZATION COMPLETED IN 7 SECONDS.

Now, initialize ZU:

GTM>d ^ZUSET

This routine will rename the correct routine to ZU for you.

Rename ZUGTM to ZU, OK? No//y
 
Routine ZUGTM was renamed to ZU

Now, go into the device file and fix the Telnet, Console, Null, and HFS devices.

VA FileMan 22.0

Your Identity(DUZ) is 0(zero).
Please identify yourself.

Access Code: 

Your Identity(DUZ) is still 0(zero).
You need to identify yourself!

New Person?: 4  MANAGER,SYSTEM     SM       
         ...OK? Yes//   (Yes)


Select OPTION: enter OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: EXAM// 3.5  DEVICE    (31 entries)
EDIT WHICH FIELD: ALL//   


Select DEVICE NAME: TELNET LOGIN      Virtual     |TNT|     
NAME: TELNET LOGIN// DEV/PTS
LOCATION OF TERMINAL: Virtual// 
Select MNEMONIC: 
LOCAL SYNONYM: 
$I: |TNT|// /dev/pts
VOLUME SET(CPU): 
SIGN-ON/SYSTEM DEVICE: ^


Select DEVICE NAME: WINDOWS CONSOLE      CONSOLE     |TRM|     
NAME: WINDOWS CONSOLE// DEV/TTY
LOCATION OF TERMINAL: CONSOLE// 
Select MNEMONIC: 
LOCAL SYNONYM: 
$I: |TRM|// /dev/tty
VOLUME SET(CPU): 
SIGN-ON/SYSTEM DEVICE: YES// ^


Select DEVICE NAME: NULL DEVICE      NULL DEVICE     //./nul     
NAME: NULL DEVICE// 
LOCATION OF TERMINAL: NULL DEVICE// GT.M Bit Bucket
Select MNEMONIC: 46// @
   SURE YOU WANT TO DELETE? y  (Yes)
Select MNEMONIC: 
LOCAL SYNONYM: 
$I: //./nul// /dev/null
VOLUME SET(CPU): ^


Select DEVICE NAME: hfs      HOST FILE SERVER     C:\TMP\TMP.HFS     
NAME: HFS// 
LOCATION OF TERMINAL: HOST FILE SERVER// 
Select MNEMONIC: 
LOCAL SYNONYM: 
$I: C:\TMP\TMP.HFS// /tmp/hfs.dat
VOLUME SET(CPU): 
SIGN-ON/SYSTEM DEVICE: NO// 
TYPE: HOST FILE SERVER// 
SUBTYPE: P-OTHER// 
ASK DEVICE: YES// 
ASK PARAMETERS: YES// 
ASK HOST FILE: YES// 
ASK HFS I/O OPERATION: YES// 
QUEUING: 
OUT-OF-SERVICE DATE: 
NEAREST PHONE: 
KEY OPERATOR: 
MARGIN WIDTH: 132// 
PAGE LENGTH: 64// 
SUPPRESS FORM FEED AT CLOSE: 
SECURITY: 
CLOSEST PRINTER: 
FORM CURRENTLY MOUNTED: 
OPEN PARAMETERS: "WNS"// 
CLOSE PARAMETERS: ^open
     1   OPEN PARAMETERS  
     2   OPEN TIMEOUT  
CHOOSE 1-2: 1  OPEN PARAMETERS
OPEN PARAMETERS: "WNS"// (newversion)
CLOSE PARAMETERS: 
USE PARAMETERS: ^

Now you have to test that this actually works. You need to try to use fileman print option to print something. This opens the devices; so you can check that they are actually working. Log into a tty device, then a pts device, and print on HOME device. Also try to print to the Null device and HFS device.

Now time to fix the volume in various files. Find out the correct volume from GETENV^%ZOSV and file it. In this case it's RPMS.

GTM>D GETENV^%ZOSV W Y
RPMS^RPMS^icarus^RPMS:icarus
GTM>D P^DI


VA FileMan 22.0


Select OPTION: ENTER OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: DEVICE// VOLUME SET    (1 entry)
EDIT WHICH FIELD: ALL// 


Select VOLUME SET: `1  GOLDB
VOLUME SET: GOLDB// RPMS
TYPE: GENERAL PURPOSE VOLUME SET// 
INHIBIT LOGONS?: NO// 
LINK ACCESS?: YES// 
OUT OF SERVICE?: NO// 
REQUIRED VOLUME SET?: NO// 
TASKMAN FILES UCI: GOLDB// RPMS
TASKMAN FILES VOLUME SET: RPMS// 
REPLACEMENT VOLUME SET: 
DAYS TO KEEP OLD TASKS: 4// 
SIGNON/PRODUCTION VOLUME SET: Yes// 


Select VOLUME SET: 




Select OPTION: ENTER OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: VOLUME SET// TASK
     1   TASK SYNC FLAG                   (0 entries)
     2   TASKMAN SITE PARAMETERS          (1 entry)
     3   TASKS                            (0 entries)
CHOOSE 1-3: 2  TASKMAN SITE PARAMETERS    (1 entry)
EDIT WHICH FIELD: ALL// 


Select TASKMAN SITE PARAMETERS BOX-VOLUME PAIR: `1  GOLDB:CACHEWEB
BOX-VOLUME PAIR: GOLDB:CACHEWEB// ?
     Answer must be 3-30 characters in length.

The value for the current account is RPMS:icarus
BOX-VOLUME PAIR: GOLDB:CACHEWEB// RPMS:icarus
RESERVED: NO// 
LOG TASKS?: NO// 
DEFAULT TASK PRIORITY: 7// 
TASK PARTITION SIZE: 125// 
SUBMANAGER RETENTION TIME: 20// 
TASKMAN JOB LIMIT: 300// 
TASKMAN HANG BETWEEN NEW JOBS: 5// 
MODE OF TASKMAN: GENERAL PROCESSOR// 
VAX DSM ENVIROMENT FOR DCL: ^

Select OPTION: ENTER OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: TASKMAN SITE PARAMETERS// KERNEL SITE ??

INPUT TO WHAT FILE: TASKMAN SITE PARAMETERS// KERNEL SYSTEM PARAMETERS  
                                          (1 entry)
EDIT WHICH FIELD: ALL// volumE SET    (multiple)
   EDIT WHICH VOLUME SET SUB-FIELD: ALL// 
THEN EDIT FIELD: DEFAULT
     1   DEFAULT # OF ATTEMPTS  
     2   DEFAULT AUTO SIGN-ON  
     3   DEFAULT AUTO-MENU  
     4   DEFAULT DIRECTORY FOR HFS  
     5   DEFAULT INSTITUTION  
Press <RETURN> to see more, '^' to exit this list, OR
CHOOSE 1-5: 4  DEFAULT DIRECTORY FOR HFS
THEN EDIT FIELD: 


Select KERNEL SYSTEM PARAMETERS DOMAIN NAME: `1  DEMO.IHS.GOV
Select VOLUME SET: GOLDB// RPMS
  Are you adding 'RPMS' as a new VOLUME SET (the 2ND for this KERNEL SYSTEM PAR
AMETERS)? No//   (No) ??
Select VOLUME SET: GOLDB// 
  VOLUME SET: GOLDB// RPMS
  MAX SIGNON ALLOWED: 300// 
  LOG SYSTEM RT?: NO// 
Select VOLUME SET: 
DEFAULT DIRECTORY FOR HFS: C:\TEMP// /tmp/

Then fix mailman filer:

Select OPTION: enter OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: KERNEL SYSTEM PARAMETERS// mailman
     1   MAILMAN OUTSTANDING FTP TRANSACTIONS    (0 entries)
     2   MAILMAN SITE PARAMETERS          (1 entry)
     3   MAILMAN TIME ZONE                (18 entries)
CHOOSE 1-3: 2  MAILMAN SITE PARAMETERS    (1 entry)
EDIT WHICH FIELD: ALL// cpu (UCI,VOL) FOR FILER TO RUN  
THEN EDIT FIELD: 


Select MAILMAN SITE PARAMETERS DOMAIN NAME: DEMO.IHS.GOV  
         ...OK? Yes//   (Yes)

CPU (UCI,VOL) FOR FILER TO RUN: GOLDB,GOLDB// RPMS,RPMS

Then, if the volume fields of Option Scheduling or Device File reference the wrong volume, you can delete them.

Now, correct Taskman entries. Kill off ^%ZTSK and ^%ZTSCH and then re-index the Option Scheduling file (all indexes). You need to add at least one entry in order for the re-indexing to work.

GTM>D P^DI


VA FileMan 22.0


Select OPTION: enter OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: OPTION SCHEDULING//    
EDIT WHICH FIELD: ALL// 


Select OPTION SCHEDULING NAME: xus,cntXUS PROCESS COUNT CLEANUP  XU PROC CNT CLU
P     XUS Process count cleanup
  Are you adding 'XU PROC CNT CLUP' as 
    a new OPTION SCHEDULING (the 1ST)? No// y  (Yes)
QUEUED TO RUN AT WHAT TIME: N+30'  (FEB 02, 2011@17:24)
DEVICE FOR QUEUED JOB OUTPUT: 
OTHER DEVICE PARAMETERS: 
QUEUED TO RUN ON VOLUME SET: 
RESCHEDULING FREQUENCY: 180M??
     FOR AUTOMATIC RE-QUEUING, ANSWER WITH INCREMENT OF HOURS, DAYS, OR MONTHS

Examples:
 120S = job will be re-run every two minutes
   1H = job will be rerun every hour
   7D = job will be re-run every week
   3M = job will be run once a quarter
RESCHEDULING FREQUENCY: 3H
SPECIAL QUEUEING: 
Select VARIABLE NAME: 
TASK ID: 1001// 
TASK PARAMETERS:  


Select OPTION SCHEDULING NAME: 




Select UTILITY OPTION:    RE-INDEX FILE

MODIFY WHAT FILE: OPTION SCHEDULING// 

THERE ARE 6 INDICES WITHIN THIS FILE
DO YOU WISH TO RE-CROSS-REFERENCE ONE PARTICULAR INDEX? No//   (No)
OK, ARE YOU SURE YOU WANT TO KILL OFF THE EXISTING 6 INDICES? No// Y  (Yes)
DO YOU THEN WANT TO 'RE-CROSS-REFERENCE'? Yes//   (Yes)
...EXCUSE ME, LET ME PUT YOU ON 'HOLD' FOR A SECOND...
FILE WILL NOW BE 'RE-CROSS-REFERENCED'........


Select UTILITY OPTION: 


Select OPTION: 
GTM>ZWRITE ^%ZTSK 
^%ZTSK(-1)=1002
^%ZTSK(1002,0)="ZTSK^XQ1^4^^62124,60949^62124,62640^O^11159^XU PROC CNT CLUP^MAN
          AGER,SYSTEM^RPMS^RPMS^ZTDESC^^"
^%ZTSK(1002,.03)="XU PROC CNT CLUP - XUS Process count cleanup"
^%ZTSK(1002,.04)=5367576240
^%ZTSK(1002,.1)="1^62124,60949^^^^^^"
^%ZTSK(1002,.2)="^^^^Q^"
^%ZTSK(1002,.3,"DUZ(",0)="@"
^%ZTSK(1002,.3,"DUZ(",1)=""
^%ZTSK(1002,.3,"DUZ(",2)=7819
^%ZTSK(1002,.3,"DUZ(","AG")="I"
^%ZTSK(1002,.3,"DUZ(","LANG")=""
^%ZTSK(1002,.3,"XQSCH")=1
^%ZTSK(1002,.3,"XQY")=11159

GTM>ZWRITE ^%ZTSCH
^%ZTSCH(5367576240,1002)=""

Fix the RPMS Site File. Set the OS to Unix.

GTM>D P^DI


VA FileMan 22.0


Select OPTION: ENTER OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: OPTION SCHEDULING// RPMS
     1   RPMS APPLICATION PARAMETERS      (0 entries)
     2   RPMS PCC DATA ENTRY CONTROL      (205 entries)
     3   RPMS RESERVATION                 (0 entries)
     4   RPMS SITE                        (1 entry)
CHOOSE 1-4: 4  RPMS SITE                  (1 entry)
EDIT WHICH FIELD: ALL// OS??
EDIT WHICH FIELD: ALL// OPERATING SYSTEM  
THEN EDIT FIELD: 


Select RPMS SITE LOCATION NAME: `1  DEMO IHS CLINIC
OPERATING SYSTEM: DOS// ?
     Enter the Host Operating System i.e. 1 for Unix, 2 for DOS
     Choose from: 
       1        UNIX
       2        DOS
OPERATING SYSTEM: DOS// 1  UNIX

Now try to start Taskman. Run ^ZTMCHK first, then run ^ZTMON to see that it is stopped. Now, run ^ZTMB to start it. After 30 seconds, check ^ZTMON. You should see that Taskman is running. I had a start-up hang first, but it changed to a run.

Now, log in using ^ZU.

GTM>ZWRITE ^VA(200,4,0:.1)
^VA(200,4,0)="MANAGER,SYSTEM^SM^SYSTEM.01^@^^^^^^^^^^^^3"
^VA(200,4,.1)="61697,42636^USER.002"

GTM>D ^ZU
 
                             ** RPMS Starter Database **



Volume set: RPMS:icarus  UCI: RPMS  Device: /dev/pts/0

ACCESS CODE: *********
VERIFY CODE: ********

Good evening MANAGER,SYSTEM
     You last signed on Jan 27, 2010 at 07:54
Site set to DEMO IHS CLINIC

You must change your VERIFY CODE at this time.

Please enter your CURRENT verify code: ********
Enter a new VERIFY CODE: ********

Please re-type the new code to show that I have it right: ********

OK, Verify code has been changed!

Select TERMINAL TYPE NAME: C-VT100//     
          Digital Equipment Corporation VT-100 video


   1      IHS Core ...
   2      Device Management ...
   3      Manage Mailman ...
   4      Menu Management ...
   5      Programmer Options ...
   6      Operations Management ...
   7      Spool Management ...
   8      Information Security Officer Menu ...
   9      Taskman Management ...
   10     User Management ...
   11     VA FileMan ...
   AVA    IHS Provider/Person Add/Edit ...

Select IHS Kernel Option: 

Now, I back up the database.

IV. Making BMX work

This required some coding, as the BMX broker does not support GT.M by default. Thankfully, I did this a year and a half ago; and I applied all my changes that were only specific to GT.M, but not to VISTA.

Changes were required in 3 routines: BMXMON, BMXMSEC, BMXSQL6, and I brought in the logging routine XWBDLOG from VISTA. You will find these in the p directory.

1st, create a xinetd service pointing to a shell script to execute upon connection. As an example, here is mine:

sakura@icarus:~/rpms201011$ cat /etc/xinetd.d/rpms_9101 
service rpms_9101_BMX
        {
        port = 9101
        socket_type = stream
        protocol = tcp
        user = sakura
        server = /home/sakura/rpms201011/xinetd-BMX.sh
        type = UNLISTED
        wait = no
        disable = no
        groups = yes
        }

Then the shell script to open the connection with the database. Here is mine:

sakura@icarus:~/rpms201011$ cat /home/sakura/rpms201011/xinetd-BMX.sh 
#!/bin/bash

cd `dirname $0`
. env.rpms
logger -t 'RPMS-BMX' 'Entry from xinetd'
mumps -run XINETD^BMXMON
logger -t 'RPMS-BMX' 'Exit from xinetd'
exit 0

Good sense dictates testing before throwing the real stuff at it.

sudo service xinetd stop
sudo xinetd -d

(from another window)
tail -f /var/log/syslog

(from yet another window)
telnet localhost 9101

Here is the output that I got:

Telnet:

Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
     O BMXDEV:(:BMXPORT:"S"):5 I '$T Q  ;IHS/OIT/HMW SAC Exemption Applied For
               ^-----
        At column 12, line 145, source module /home/sakura/rpms201011/p/BMXMON.m
%GTM-E-DEVPARUNK, Deviceparameter unknown
     . . J SESSION^BMXMON(BMXWIN)[BMXNSJ]:(:5:BMXDEV:BMXDEV):5 ;IHS/OIT/HMW SAC Exemption Applied For
                                 ^-----
        At column 30, line 164, source module /home/sakura/rpms201011/p/BMXMON.m
%GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found

Syslog

Feb 19 14:30:49 icarus RPMS-BMX: Entry from xinetd
(later)
Feb 19 14:30:59 icarus RPMS-BMX: Exit from xinetd

Xinetd

11/2/19@14:30:49: DEBUG: 3280 {server_start} Starting service rpms_9101_BMX
11/2/19@14:30:49: DEBUG: 3280 {main_loop} active_services = 5
11/2/19@14:30:49: DEBUG: 3360 {exec_server} duping 11
11/2/19@14:30:59: DEBUG: 3280 {main_loop} active_services = 5
11/2/19@14:30:59: DEBUG: 3280 {main_loop} select returned 1
11/2/19@14:30:59: DEBUG: 3280 {check_pipe} Got signal 17 (Child exited)
11/2/19@14:30:59: DEBUG: 3280 {child_exit} waitpid returned = 3360
11/2/19@14:30:59: DEBUG: 3280 {server_end} rpms_9101_BMX server 3360 exited
11/2/19@14:30:59: INFO: 3280 {conn_free} freeing connection
11/2/19@14:30:59: DEBUG: 3280 {child_exit} waitpid returned = -1
11/2/19@14:30:59: DEBUG: 3280 {main_loop} active_services = 5

You can also use my BMXCmdTester that I authored in C#. <https://trac.opensourcevista.net/svn/BMXNET_RPMS_dotNET_UTILITIES-BMX/trunk/cs/bmx_0200scr/BMX2/BMXCmdTester/bmxTesterForVista_0200.cs>. Just remember to compile it with the RPMS flag b/c one of the tests differs b/n VISTA and RPMS.

V. Making CIA work

I had to make changes to a couple of routines to get CIA to work with GT.M: CIANBACT, and CIANBLIS. They will be in the p folder. I also introduced logging using XWBDLOG.

First, make sure that you configured the UCI correctly in the CIA Broker Settings as it is rather very picky about getting that right.

GTM>S DUZ=4 D ^XUP

Setting up programmer environment
This is a TEST account.

Terminal Type set to: C-VT100

Select OPTION NAME: CIANB (choose 5)
     1   CIANB MAIN MENU       CIA Broker Main Menu
     2   CIANB NIGHTLY TASK       Submit Cleanup Task
     3   CIANB PURGE EVENT LOG       Purge Event Log
     4   CIANB REGISTERED LISTENERS       Edit Registered Listeners
     5   CIANB SITE PARAMETERS       Edit CIA Broker Package Parameters

                       Edit CIA Broker Package Parameters


CIA RPC Broker Site Parameters for System: DEMO.IHS.GOV
------------------------------------------------------------------------------
Host polling interval                             5
Maximum number of resource devices                4
Number of resource slots to allocate              4
Authentication method         GOLDB               Normal
------------------------------------------------------------------------------

---------- Setting Host polling interval  for System: DEMO.IHS.GOV ----------
Host Polling Interval: 5// 

---- Setting Maximum number of resource devices  for System: DEMO.IHS.GOV ----
Resource Device Count: 4// 

--- Setting Number of resource slots to allocate  for System: DEMO.IHS.GOV ---
Resource Device Slots: 4// 

---------- Setting Authentication method  for System: DEMO.IHS.GOV ----------
Select UCI: ?


UCI    Value
---    -----
GOLDB  Normal

(here I delete GOLDB).

DEMO IHS CLINIC   CIA NETWORK COMPONENTS                  Version 1.1

                       Edit CIA Broker Package Parameters


CIA RPC Broker Site Parameters for System: DEMO.IHS.GOV
------------------------------------------------------------------------------
Host polling interval                             5
Maximum number of resource devices                4
Number of resource slots to allocate              4
Authentication method
------------------------------------------------------------------------------

---------- Setting Host polling interval  for System: DEMO.IHS.GOV ----------
Host Polling Interval: 5// 

---- Setting Maximum number of resource devices  for System: DEMO.IHS.GOV ----
Resource Device Count: 4// 

--- Setting Number of resource slots to allocate  for System: DEMO.IHS.GOV ---
Resource Device Slots: 4// 

---------- Setting Authentication method  for System: DEMO.IHS.GOV ----------
Select UCI: RPMS
Are you adding RPMS as a new UCI? Yes//   YES

UCI: RPMS//    RPMS
Authentication method: ?

Enter a code from the list.

     Select one of the following:

          0         Normal
          1         Client Cached
          2         Server Cached

Authentication method: 2  Server Cached
Select UCI: 

CIA RPC Broker Site Parameters for System: DEMO.IHS.GOV is now:
------------------------------------------------------------------------------
Host polling interval                             5
Maximum number of resource devices                4
Number of resource slots to allocate              4
Authentication method         RPMS                Server Cached
------------------------------------------------------------------------------
Enter RETURN to continue or '^' to exit: 

Like BMX, you need the xinetd server and the shell script.

Here's the server:

sakura@icarus:~$ cat /etc/xinetd.d/rpms_9100
service rpms_CIA_client
        {
        port = 9100
        socket_type = stream
        protocol = tcp
        user = sakura
        server = /home/sakura/rpms201011/xinetd-CIA.sh
        type = UNLISTED
        wait = no
        disable = no
        groups = yes
        }

Here's the script:

sakura@icarus:~$ cat /home/sakura/rpms201011/xinetd-CIA.sh
#!/bin/bash

cd `dirname $0`
. env.rpms
logger -t 'RPMS-CIA' 'Entry from xinetd'
mumps -run %XCMD 'D EN^CIANBLIS(9100,$ZTRNLNM("REMOTE_HOST"),2)'
logger -t 'RPMS-CIA' 'Exit from xinetd'
exit 0

where 9100 is the port number. I haven't figured out an automatic way to get the port number yet.

Now you can do the tests. Have fun. Also, there is a python script (which I again modified... by the time you read this Conor should have made the changes) that can communicate with the CIA Broker (http://repository.caregraf.org/fmql/raw-file/3e64e4d744c3/Python/brokerRPC.py)

VI. Setting the Agency Code correctly for VueCentric

Due to a line in BEHOPTCX that is new with EHR patch 6, it looks for the agency and based on that decides whether to get the HRN or MRN. The routine for MRN is missing. So you have to make sure that the DUZ("AG") is always going to be "I". In the Kernel, this is already the case; so ^XUP will get you the right agency. That is not the case though with the Insitution which ^XUS looks for; so you need to change the institution on the only institution in the system.

NAME: DEMO IHS CLINIC                   STATE: ILLINOIS
 STATUS: Local                         STREET ADDR. 1: 123 ELM STREET
 CITY: ANYWHERE                        ZIP: 99999
 STATION NUMBER: 8904                  AGENCY CODE: OTHER
 POINTER TO AGENCY: OTHER
 CODING SYSTEM: VASTANUM                 ID: 10001
EFFECTIVE DATE/TIME: NOV 08, 2009     STATUS: ACTIVE
 MULTI-DIVISION FACILITY: NO

GTM>D P^DI


VA FileMan 22.0


Select OPTION: ENTER OR EDIT FILE ENTRIES  



INPUT TO WHAT FILE: INSTITUTION// 
EDIT WHICH FIELD: ALL// AGENCY CODE  
THEN EDIT FIELD: 


Select INSTITUTION NAME: `1 ??
Select INSTITUTION NAME: DEMO IHS CLINIC                     12    IL    8904  
AGENCY CODE: OTHER// IHS  IHS

VII. BEHOCACV

Routine BEHOCACV had a bug in it, and apparently Cache didn't care. Also in the p directory, you will find a modified version that fixes the tiny bug.


VIII: Conclusion

With all of these changes VueCentric should work okay; however, there are a lot of stuff that has either been stripped out (like the Lexicon, so you can't really do any coded documentation) or Immunization Forecasting, which so far is written only for Cache. Conceivable, the .so or .dll files should work under Linux, but the BIX routines are written for Cache only, and I haven't touched them yet.

IHS uses yet another Broker for the legacy IHS Patient Chart. This is still used in IHS in Psychiatry. I haven't ported that.

IV: Screenshots

Logging into VueCentric running on Linux using wine. VueCentricLoginOnLinux.png

But on Linux, VueCentric complains that you don't have a valid license. VueCentric no valid license on Linux.png

VueCentric Manager running on Linux using wine. It works, almost fine, except for the tabs. VueCentricManagerOnLinux.png

IM on VueCentric. VueCentric is running on Windows against an RPMS GT.M Database. VueCentricIM.png