Mumps Class 8
From VistApedia
Using username "worldvistaEHR".
Authenticating with public key "rsa-key-20101206"
Linux cassandra 2.6.26-1-686 #1 SMP Fri Mar 13 18:08:45 UTC 2009 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jan 25 04:24:57 2011 from 192.168.56.1
worldvistaEHR@cassandra:~$ gtm
GTM>D ^%T
4:49 AM
GTM>D ^%D
25-JAN-11
GTM>ZED "KBANFOR"
GTM>zl
GTM>zp ^KBANFOR
KBANFOR ; Routine to show For loops ; 1/25/11 4:53am
;;
FOR1
; Simplest For Loop
; from 1 to 10 step 1
FOR I=1:1:10 WRITE I,!
; from 1 to 10 step 2
WRITE !
FOR I=1:2:10 WRITE I,!
; from 10 to 1 step -1
WRITE !
FOR I=10:-1:1 WRITE I,!
GTM>D FOR1^KBANFOR
1
2
3
4
5
6
7
8
9
10
1
3
5
7
9
10
9
8
7
6
5
4
3
2
1
GTM>ZED
GTM>zp FOR2:FOR2+5
GTM>zp FOR2^KBANFOR:FOR2+5
%GTM-E-ZPRTLABNOTFND, Label not found in routine
GTM>ZL
GTM>zp FOR2^KBANFOR:FOR2+5
FOR2
; For over a list of items
SET A=1,B=3,C=5
FOR X=A,B,C WRITE X
QUIT
GTM>D FOR2^KBANFOR
135
GTM>ZED
GTM>zl
GTM>zp FOR3^KBANFOR:FOR3+10
FOR3
; For with a Do command
SET LTRNUM=0 ; Letter Number
FOR X="A","B","C","D","E","F","G","H" DO
. WRITE "X is: ",X
. WRITE !
. SET LTRNUM=LTRNUM+1
. WRITE "Letter Number is: ",LTRNUM
QUIT
GTM>D FOR3^KBANFOR
X is: A
Letter Number is: 1X is: B
Letter Number is: 2X is: C
Letter Number is: 3X is: D
Letter Number is: 4X is: E
Letter Number is: 5X is: F
Letter Number is: 6X is: G
Letter Number is: 7X is: H
Letter Number is: 8
GTM>ZED
GTM>zl
GTM>zp FOR3^KBANFOR:FOR3+10
FOR3
; For with a Do command
SET LTRNUM=0 ; Letter Number
FOR X="A","B","C","D","E","F","G","H" DO
. WRITE "X is: ",X
. WRITE ?20
. SET LTRNUM=LTRNUM+1
. WRITE "Letter Number is: ",LTRNUM,!
QUIT
GTM>D FOR3^KBANFOR
X is: A Letter Number is: 1
X is: B Letter Number is: 2
X is: C Letter Number is: 3
X is: D Letter Number is: 4
X is: E Letter Number is: 5
X is: F Letter Number is: 6
X is: G Letter Number is: 7
X is: H Letter Number is: 8
GTM>zed
GTM>zl
GTM>zp FOR4^KBANFOR:FOR4+10
FOR4
; For with a Quit inside the for loop
SET LTRNUM=0 ; Letter Number
FOR X="A","B","C","D","E","F","G","H" DO
. SET LTRNUM=LTRNUM+1
. IF LTRNUM#2 QUIT ;We don't like odd numbers, so we stop.
. WRITE "X is: ",X
. WRITE ?20
. WRITE "Letter Number is: ",LTRNUM,!
QUIT
GTM>D FOR4^KBANFOR
X is: B Letter Number is: 2
X is: D Letter Number is: 4
X is: F Letter Number is: 6
X is: H Letter Number is: 8
GTM>; The quit inside the for loop acts as a continue.
GTM>; There is NO, NO, NO break command to get out of a loop
GTM>zed
GTM>zl
GTM>D FOR5^KBANFOR
X is: B Letter Number is: 2
X is: D Letter Number is: 4
X is: F Letter Number is: 6
GTM>zl
GTM>zp FOR5^KBANFOR:FOR5+5
FOR5
; For with a Quit inside the for loop
SET LTRNUM=0 ; Letter Number
FOR X="A","B","C","D","E","F","G","H" DO QUIT:LTRNUM>6
. SET LTRNUM=LTRNUM+1
. IF LTRNUM#2 QUIT ;We don't like odd numbers, so we stop.
GTM>zp FOR5^KBANFOR:FOR5+10
FOR5
; For with a Quit inside the for loop
SET LTRNUM=0 ; Letter Number
FOR X="A","B","C","D","E","F","G","H" DO QUIT:LTRNUM>6
. SET LTRNUM=LTRNUM+1
. IF LTRNUM#2 QUIT ;We don't like odd numbers, so we stop.
. WRITE "X is: ",X
. WRITE ?20
. WRITE "Letter Number is: ",LTRNUM,!
QUIT
GTM>D FOR5^KBANFOR
X is: B Letter Number is: 2
X is: D Letter Number is: 4
X is: F Letter Number is: 6
GTM>; Quit on a For line terminates the for loop
GTM>zed
GTM>zl
%GTM-E-LABELMISSING, Label referenced but not defined: QUIT
%GTM-I-SRCNAM, in source module /opt/worldvista/EHR/p/KBANFOR.m
GTM>zed
GTM>zl
GTM>zed
GTM>zl
FOR I=1:1 QUIT:NUM>5 DO ; I is 1 step 1, no end
^-----
At column 23, line 51, source module /opt/worldvista/EHR/p/KBANFOR.m
%GTM-E-QUITARGUSE, Quit cannot take an argument in this context
GTM>; Quit needs to get 2 spaces
GTM>zed
GTM>zl
GTM>ZED
GTM>zl
GTM>zp FOR6^KBANFOR:FOR6+10
FOR6
; For; Quit command location
SET NUM=1
FOR I=1:1 QUIT:NUM>5 DO ; I is 1 step 1, no end
. SET NUM=NUM*2
. WRITE "NUM is: ",NUM,!
QUIT
GTM>D FOR6^KBANFOR
NUM is: 2
NUM is: 4
NUM is: 8
GTM>; How come it printed 8??
GTM>; Because the Quit happens after the multiplication takes place
GTM>zed
GTM>zl
GTM>zp FOR7^KBANFOR:FOR7+10
FOR7
; For and quit, try 2
SET NUM=1
FOR I=1:1 QUIT:NUM>5 DO
. WRITE "Num is: ",NUM,!
. SET NUM=NUM*2
QUIT
GTM>D FOR7^KBANFOR
Num is: 1
Num is: 2
Num is: 4
GTM>ZED
GTM>zl
GTM>zp FOR8^KBANFOR:FOR8+10
FOR8
; For; Quit command location; prints 2, 4, 8
SET NUM=1
FOR I=1:1 DO QUIT:NUM>5 ; I is 1 step 1, no end
. SET NUM=NUM*2
. QUIT:NUM>5
. WRITE "NUM is: ",NUM,!
QUIT
GTM>D FOR8^KBANFOR
NUM is: 2
NUM is: 4
GTM>; Quit before the Do in a for loop acts like a while loop in C
GTM>; Quit after the Do in a for loop acts like a do/while loop in C
GTM>zed
GTM>zl
GTM>zp FOR9^KBANFOR:FOR9+10
FOR9
; For, infinite loops
FOR WRITE "HELLO" ; for with no arguments is an infinite loop
FOR I=0:0 WRITE "HELLO" ; Step is zero, but no end.
FOR I=1:1 WRITE "HELLO" ; Step is 1, but no end either.
QUIT
GTM>zed
GTM>zl
GTM>zp FOR10^KBANFOR:FOR10+15
FOR10
; A use for infinite loops
S DONE=0
FOR DO QUIT:DONE
. WRITE "Pick a menu option, or type ""Q"" to quit",!
. WRITE !
. WRITE "1. Option 1"
. WRITE "2. Option 2"
. WRITE "3. Option 3"
. WRITE !
. READ "Enter Option: ",X
. IF X="Q" SET DONE=1 QUIT
. WRITE "Doing something with what the user picked",!
. WRITE # ; Form feed; clears the screen
QUIT
GTM>D FOR10^KBANFOR
Pick a menu option, or type "Q" to quit
1. Option 12. Option 23. Option 3
Enter Option:
%GTM-I-CTRLC, CTRL_C encountered
GTM>ZG
GTM>zed
GTM>zl
GTM>zp FOR10^KBANFOR:FOR10+15
FOR10
; A use for infinite loops
S DONE=0
FOR DO QUIT:DONE
. WRITE "Pick a menu option, or type ""Q"" to quit",!
. WRITE !
. WRITE "1. Option 1",!
. WRITE "2. Option 2",!
. WRITE "3. Option 3",!
. WRITE !
. READ "Enter Option: ",X
. IF X="Q" SET DONE=1 QUIT
. WRITE "Doing something with what the user picked",!
. WRITE # ; Form feed; clears the screen
QUIT
GTM>D FOR10^KBANFOR
Pick a menu option, or type "Q" to quit
1. Option 1
2. Option 2
3. Option 3
Enter Option: 1Doing something with what the user picked
Pick a menu option, or type "Q" to quit
1. Option 1
2. Option 2
3. Option 3
Enter Option: 2Doing something with what the user picked
Pick a menu option, or type "Q" to quit
1. Option 1
2. Option 2
3. Option 3
Enter Option: Q
GTM>; HW: Explain what a significant chunk of a routine does!!!!!!!!
GTM>zed "_DT"
GTM>zed "XMS"
GTM>; XMS -> Abu AbuRuzz
GTM>zed "ORKPS"
GTM>; GLCREAT^ORKPS -> Murat
GTM>zed "XUSRB"
GTM>; VALIDAV^XUSRB -> Abu Dayyeh
GTM>zed "ORB3TIM1"
GTM>; NPO^ORB3TIM1 -> Ayman
GTM>zed "ORB3TIM2"
GTM>; EXPIR^ORB3TIM2 -> Hiba (Poor Hiba)
GTM>zed "XMRPOP"
GTM>; ENTRY^XMRPOP -> Rami
GTM>; Here is what to do for your homework.
GTM>; Copy the routine to a decent place
GTM>; And start commenting the routine explaining what each line does.
GTM>