Mumps Class 4

 Using username "sw-dev". sw-dev@172.16.16.108's password: Linux swdev 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686

To access official Ubuntu documentation, please visit: http://help.ubuntu.com/

213 packages can be updated. 174 updates are security updates.

Last login: Sun Jan 16 09:28:21 2011 from hebalafi-laptop.local sw-dev@swdev:/var/worldvista/sw/dev$ gtm

sw-dev> D ^%RD

Routine directory Routine: KJO* KJO8CIRC KJOXCIRM Total of 2 routines.

Routine:

sw-dev> ZED "KJOXCIRM"

sw-dev> ZP ^KJOXCIRM CIRM ; N X,RA,P S X=0,R=0,P=3.14 ; MENU W !,!,! W "SELECT AN OPTION:-",! W "1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5)",! W "2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE",! W "3.QUIT",! R X,! IF X>3 W "ENTER A VALIED OPTION NUMBER",! GOTO MENU IF X=3 Q IF X=1 W !,"THE CIRM FOR THE CIRCLE IS:- ",2*12.5*P,! GOTO MENU IF X=2 W "PLEASE ENTER THE CIRLCE RADUIS:- " R RA IF RA<0 S RA=0 W !,"THE CIRM FOR THE CIRCLE IS:- ",2*RA*P,! GOTO MENU

sw-dev> D ^KJOXCIRM

SELECT AN OPTION:- 1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5) 2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE 3.QUIT -1 %GTM-E-UNDEF, Undefined local variable: RA               At M source location MENU+11^KJOXCIRM

sw-dev> ZG

sw-dev> D ^KJOXCIRM

SELECT AN OPTION:- 1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5) 2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE 3.QUIT 0 %GTM-E-UNDEF, Undefined local variable: RA               At M source location MENU+11^KJOXCIRM

sw-dev> ZG

sw-dev> D ^KJOXCIRM

SELECT AN OPTION:- 1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5) 2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE 3.QUIT 4 ENTER A VALIED OPTION NUMBER

SELECT AN OPTION:- 1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5) 2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE 3.QUIT 1

THE CIRM FOR THE CIRCLE IS:- 78.5

SELECT AN OPTION:- 1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5) 2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE 3.QUIT 2 PLEASE ENTER THE CIRLCE RADUIS:- 66 THE CIRM FOR THE CIRCLE IS:- 414.48

SELECT AN OPTION:- 1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5) 2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE 3.QUIT 2 PLEASE ENTER THE CIRLCE RADUIS:- -8 THE CIRM FOR THE CIRCLE IS:- 0

SELECT AN OPTION:- 1.CALCULATE A CIRCUMFERENCE FOR A CIRCLE WITH A RADUIS OF (12.5) 2.ENTER A RADUIS TO CALCULATE THE CIRCUMFERENCE FOR THE CIRCLE 3.QUIT 3

sw-dev> ZED

sw-dev> D ^%RD

Routine directory Routine: KJO* KJO8CIRC KJOXCIRM Total of 2 routines.

Routine:

sw-dev>

sw-dev> ZP ^KJO8CIRC KJO8CIRC ; ; S PI=(22/7) W !,"Circumference of a circle of radius (12.5) is: " S Circim=2*PI*12.5 W Circim,! ; W !,"Enter a new radius for another circle: " R RAD S Circim=2*PI*RAD W !,"Circumference of a circle of radius ("_RAD_") is: " I Circim<0 W "0",! E W Circim,! W "See you next time, bye" ;

sw-dev> ZED "KJO8CIRC"

sw-dev> ZED "KJOXCIRM"

sw-dev> ZED "KJO8CIRC"

sw-dev> D ^KJO8CIRC

Circumference of a circle of radius (12.5) is: 78.5714285714285712

Enter a new radius for another circle: 33 Circumference of a circle of radius (33) is: 207.428571428571428 See you next time, bye sw-dev> D ^KJO8CIRC

Circumference of a circle of radius (12.5) is: 78.5714285714285712

Enter a new radius for another circle: -12 Circumference of a circle of radius (-12) is: 0 See you next time, bye sw-dev> h sw-dev@swdev:/var/worldvista/sw/dev$ gtm

sw-dev> ; Strings, and String Operators

sw-dev> ; To store a string, use quotes

sw-dev> ; otherwise Mumps will try to interpret it as a number,

sw-dev> ; then store the number as a string.

sw-dev> W "03" 03 sw-dev> W 03 3 sw-dev> ; String functions: $ASCII, $CHAR, $TRANSLATE, $LENGTH, $PIECE

sw-dev> ; $EXTRACT, $FIND

sw-dev> WRITE $ASCII( %GTM-E-EXPR, Expression expected but not found       WRITE $ASCII( ^-

sw-dev> WRITE $ASCII("A") 65 sw-dev> WRITE $ASCII("a") 97 sw-dev> WRITE $ASCII("ا") 199 sw-dev> S X="A"

sw-dev> WRITE $ASCII(X) 65 sw-dev> S X="Apple"

sw-dev> WRITE $ASCII(X) 65 sw-dev> ; $ASCII TAKES first character by default

sw-dev> ; there is a 2 argument $ASCII

sw-dev> WRITE $ASCII(X,2) 112 sw-dev> WRITE $ASCII(X,3) 112 sw-dev> ; 2 argument $ASCII gives you the character at a specific position

sw-dev> ; Opposite of $ASCII is $Character

sw-dev> W $CHARACTER(65) %GTM-E-INVFCN, Invalid function name

sw-dev> W $CHAR(65) A sw-dev> W $CHAR(27)

w-dev>

sw-dev> W $CHAR(27),"c"

sw-dev> W $CHAR(27),"[31m"

sw-dev> W $CHAR(27),"c"

sw-dev> WRITE $CHAR(10)

sw-dev> WRITE $CHAR(10,13)

sw-dev> ; 10 is new line

sw-dev> ; 13 is carriage return

sw-dev> ; Linux line endings are just $C(10)

sw-dev> ; Windows line endings are $C(13,10)

sw-dev> ; $Character is abbreviated as $C

sw-dev> ; $C can take any number of arguments

sw-dev> WRITE $CHAR(65,66,67,68,69,70) ABCDEF sw-dev> ; $TRANSLATE

sw-dev> ; $Translate has two uses: change characters or remove characters

sw-dev> ; Most common use of $Translate is to change case.

sw-dev> S X="Apple"

sw-dev> W $TRANSLATE("Apple","p","P") APPle sw-dev> W $TRANSLATE("Apple","abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTU VWXYZ") APPLE sw-dev> ; This function is in XLFSTR in VISTA.

sw-dev> ZP UP^XLFSTR:UP+3 UP(X) Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") ; LOW(X) Q $TR(X,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz") ;

sw-dev> ; To use this function:

sw-dev> WRITE $$UP^XLFSTR("Hello") HELLO sw-dev> WRITE $$LOW^XLFSTR("HELLO") hello sw-dev> WRITE $$LOW^XLFSTR("HEL3243234LO") hel3243234lo sw-dev> ; Other use is to remove characters

sw-dev> ; E.g. remove spaces

sw-dev> WRITE $TR("Mary had a little lamb."," ","") Maryhadalittlelamb. sw-dev> ; $Translate has a 2 argument form; the 3rd argument is assumed to be an empty string.

sw-dev> ; $Translate has a 2 argument form; the 3rd argument is assumed to be an sw-dev> WRITE $TR("Mary had a little lamb."," ") Maryhadalittlelamb. sw-dev> ; 2 argument form of $Translate removes everything in the second argumen t from the string.

sw-dev> WRITE $TR("hELO2982374O","1234567890") hELOO sw-dev> ; $Length / $L

sw-dev> WRITE $L("apple") 5 sw-dev> ; $Length as a 2 argument form.

sw-dev> ; This counts the pieces if the second argument is considered to be a de limiter

sw-dev> WRITE $L("apple,pear",",") 2 sw-dev> ; This is typically used with $Piece

sw-dev> ; $Piece / $P

sw-dev> ; Given a delimiter, what's the piece of of the string at a specific pos ition?

sw-dev> zwrite ^DPT(1:3,0) ^DPT(1,0)="ييي,مريض ثلاثة^F^2450124^^2^^NOE^^000003322^^LAS VEGAS^32^^^68^306051         1^^^^1" ^DPT(2,0)="ييي,مريض اربعة-عشر^M^2571225^^15^^SAILOR^29^123456789^Test patient on         ly, please use to test, train^BOSTON^25^^^112^3100530^^^^1" ^DPT(3,0)="ييي,مريض عشرة^M^3090115^^15^^UNEMPLOYED^^769011509P^^MIAMI^12^^^112^3         100223^^^^1"

sw-dev> ; Vista's delimiter is usually the "^"

sw-dev> S X="ONE^TWO^THREE^FOUR^FIVE"

sw-dev> WRITE $PIECE(X,"^",1) ONE sw-dev> WRITE $PIECE(X,"^",2) TWO sw-dev> WRITE $PIECE(X,"^",4) FOUR sw-dev> WRITE $PIECE(X,"^",5) FIVE sw-dev> WRITE $PIECE(X,"^",6)

sw-dev> ; Empty string

sw-dev> WRITE $PIECE(X,"^",6)="" 1 sw-dev> ; Mumps confirms that it is an empty string

sw-dev> ; $Piece has 2 argument and 4 argument forms, in addition to the most co mmon 3 argument form.

sw-dev> WRITE $PIECE(X,"^") ONE sw-dev> ; 2 argument gives you the first piece.

sw-dev> ; 4 argument

sw-dev> WRITE $PIECE(X,"^",1,2) ONE^TWO sw-dev> WRITE $PIECE(X,"^",1,3) ONE^TWO^THREE sw-dev> WRITE $PIECE(X,"^",1,4) ONE^TWO^THREE^FOUR sw-dev> WRITE $PIECE(X,"^",1,5) ONE^TWO^THREE^FOUR^FIVE sw-dev> WRITE $PIECE(X,"^",1,6) ONE^TWO^THREE^FOUR^FIVE sw-dev> WRITE $PIECE(X,"^",1,6)=$PIECE(X,"^",1,5) 1 sw-dev> ; 4 argument $Piece gives you a portion of the delimited string, as you desire.

sw-dev> W ^DPT(1,0) ييي,مريض ثلاثة^F^2450124^^2^^NOE^^000003322^^LAS VEGAS^32^^^68^3060511^^^^1 sw-dev> W $P(^DPT(1,0),"^",2) F sw-dev> W $P(^DPT(1,0),"^",3) 2450124 sw-dev> S X=$P(^DPT(1,0),"^",3)

sw-dev> W X 2450124 sw-dev> W $$FMTE^XLFDT(X) Jan 24, 1945 sw-dev> ; $Extract

sw-dev> ; $E

sw-dev> ; Gets a piece of a string by character

sw-dev> S X="HELLO MARY"

sw-dev> W $EXTRACT(X,1,3) HEL sw-dev> W $EXTRACT(X,1,4) HELL sw-dev> W $EXTRACT(X,0,4) HELL sw-dev> W $EXTRACT(X,0,4)=$EXTRACT(X,1,4) 1 sw-dev> ; $EXTRACT most commonly is a 3 argument form

sw-dev> ; 1st argument: String

sw-dev> ; 2nd : Staring position

sw-dev> ; 3rd : Ending position

sw-dev> ; Also has 1 and 2 argument forms

sw-dev> W $E(X) H sw-dev> ; 1 arg form gets you the first character

sw-dev> W $E(X,1) H sw-dev> W $E(X,2) E sw-dev> W $E(X,3) L sw-dev> W $E(X,4) L sw-dev> W $E(X,5) O sw-dev> ; 2 argument form gets the specific character

sw-dev> W $E(X,-1)

sw-dev> W $E(X,-2)

sw-dev> W $E(X,-3)

sw-dev> W $E(X,-3)="" 1 sw-dev> ; $FIND / $F

sw-dev> ; compare with [ "contains"

sw-dev> W "ABCD"["C" 1 sw-dev> W $FIND("ABCD","C") 4 sw-dev> ; Returns to you the position AFTER the found string

sw-dev> ; -1 to get the actual position

sw-dev> W $FIND("ABCD","C")-1 3 sw-dev> W $FIND("Hello Mary Mary Mary","Mary") 11 sw-dev> ; Oooops... it gets the character AFTER the string

sw-dev> ; to get the actual position

sw-dev> W $FIND("Hello Mary Mary Mary","Mary")-$LENGTH("Mary") 7 sw-dev> ; 3 arg form of $FIND makes $Find start searching at a specific position

sw-dev> W $FIND("Hello Mary Mary Mary","Mary",8) 16 sw-dev> W $FIND("Hello Mary Mary Mary","Mary",7) 11 sw-dev> W $FIND("Hello Mary Mary Mary","Mary",8)-$Length("Mary") 12 sw-dev> W $EXTRACT("Hello Mary Mary Mary",12) M sw-dev>