KIDS Distribution saved on Mar 31, 2010@21:17:38 TMG1*1.0*7 **KIDS**:TMG1*1.0*7^ **INSTALL NAME** TMG1*1.0*7 "BLD",7632,0) TMG1*1.0*7^^0^3100331^n "BLD",7632,1,0) ^^3^3^3100331^^ "BLD",7632,1,1,0) This patch supplies RPC's to move TMG-CPRS "BLD",7632,1,2,0) settings onto the server. They had been "BLD",7632,1,3,0) stored in an .ini file on the client previously. "BLD",7632,4,0) ^9.64PA^22710^1 "BLD",7632,4,22710,0) 22710 "BLD",7632,4,22710,222) y^y^f^^y^^y^a^n "BLD",7632,4,"B",22710,22710) "BLD",7632,6.3) 1 "BLD",7632,"KRN",0) ^9.67PA^8989.52^19 "BLD",7632,"KRN",.4,0) .4 "BLD",7632,"KRN",.401,0) .401 "BLD",7632,"KRN",.402,0) .402 "BLD",7632,"KRN",.403,0) .403 "BLD",7632,"KRN",.5,0) .5 "BLD",7632,"KRN",.84,0) .84 "BLD",7632,"KRN",3.6,0) 3.6 "BLD",7632,"KRN",3.8,0) 3.8 "BLD",7632,"KRN",9.2,0) 9.2 "BLD",7632,"KRN",9.8,0) 9.8 "BLD",7632,"KRN",9.8,"NM",0) ^9.68A^1^1 "BLD",7632,"KRN",9.8,"NM",1,0) TMGRPC1A^^0^B23521637 "BLD",7632,"KRN",9.8,"NM","B","TMGRPC1A",1) "BLD",7632,"KRN",19,0) 19 "BLD",7632,"KRN",19.1,0) 19.1 "BLD",7632,"KRN",101,0) 101 "BLD",7632,"KRN",409.61,0) 409.61 "BLD",7632,"KRN",771,0) 771 "BLD",7632,"KRN",870,0) 870 "BLD",7632,"KRN",8989.51,0) 8989.51 "BLD",7632,"KRN",8989.52,0) 8989.52 "BLD",7632,"KRN",8994,0) 8994 "BLD",7632,"KRN",8994,"NM",0) ^9.68A^2^2 "BLD",7632,"KRN",8994,"NM",1,0) TMG INIFILE GET^^0 "BLD",7632,"KRN",8994,"NM",2,0) TMG INIFILE SET^^0 "BLD",7632,"KRN",8994,"NM","B","TMG INIFILE GET",1) "BLD",7632,"KRN",8994,"NM","B","TMG INIFILE SET",2) "BLD",7632,"KRN","B",.4,.4) "BLD",7632,"KRN","B",.401,.401) "BLD",7632,"KRN","B",.402,.402) "BLD",7632,"KRN","B",.403,.403) "BLD",7632,"KRN","B",.5,.5) "BLD",7632,"KRN","B",.84,.84) "BLD",7632,"KRN","B",3.6,3.6) "BLD",7632,"KRN","B",3.8,3.8) "BLD",7632,"KRN","B",9.2,9.2) "BLD",7632,"KRN","B",9.8,9.8) "BLD",7632,"KRN","B",19,19) "BLD",7632,"KRN","B",19.1,19.1) "BLD",7632,"KRN","B",101,101) "BLD",7632,"KRN","B",409.61,409.61) "BLD",7632,"KRN","B",771,771) "BLD",7632,"KRN","B",870,870) "BLD",7632,"KRN","B",8989.51,8989.51) "BLD",7632,"KRN","B",8989.52,8989.52) "BLD",7632,"KRN","B",8994,8994) "DATA",22710,4,0) TOPPENBERG,KEVIN S "DATA",22710,4,1,0) ^22710.01^8^8 "DATA",22710,4,1,1,0) Tab Location "DATA",22710,4,1,1,1) 0 "DATA",22710,4,1,2,0) Pol Directory "DATA",22710,4,1,2,1) c:\ "DATA",22710,4,1,3,0) Pol Interval (milliseconds) "DATA",22710,4,1,3,1) 60000 "DATA",22710,4,1,4,0) Use dropbox directory for transfers "DATA",22710,4,1,4,1) 1 "DATA",22710,4,1,5,0) Dropbox directory "DATA",22710,4,1,5,1) v:\dropbox\ "DATA",22710,4,1,6,0) Load Skin At Startup "DATA",22710,4,1,6,1) 0 "DATA",22710,4,1,7,0) Scan Enabled "DATA",22710,4,1,7,1) 0 "DATA",22710,4,1,8,0) EnableImages "DATA",22710,4,1,8,1) 1 "DATA",22710,5,0) DEFAULT "DATA",22710,5,1,0) ^22710.01^8^8 "DATA",22710,5,1,1,0) Tab Location "DATA",22710,5,1,1,1) 0 "DATA",22710,5,1,2,0) Pol Directory "DATA",22710,5,1,2,1) c:\ "DATA",22710,5,1,3,0) Pol Interval (milliseconds) "DATA",22710,5,1,3,1) 60000 "DATA",22710,5,1,4,0) Use dropbox directory for transfers "DATA",22710,5,1,4,1) 1 "DATA",22710,5,1,5,0) Dropbox directory "DATA",22710,5,1,5,1) v:\dropbox\ "DATA",22710,5,1,6,0) EnableImages "DATA",22710,5,1,6,1) 1 "DATA",22710,5,1,7,0) TAB COLORS ENABLE "DATA",22710,5,1,7,1) 1 "DATA",22710,5,1,8,0) Language "DATA",22710,5,1,8,1) 1033 "FIA",22710) TMG APPLICATION PARAMETERS "FIA",22710,0) ^TMG(22710, "FIA",22710,0,0) 22710 "FIA",22710,0,1) y^y^f^^y^^y^a^n "FIA",22710,0,10) "FIA",22710,0,11) "FIA",22710,0,"RLRO") "FIA",22710,22710) 0 "FIA",22710,22710.01) 0 "KRN",8994,2497,-1) 0^2 "KRN",8994,2497,0) TMG INIFILE SET^SETINIVL^TMGRPC1A^1^P^^^1^1 "KRN",8994,2497,1,0) ^8994.01^17^17^3100211^^ "KRN",8994,2497,1,1,0) "KRN",8994,2497,1,2,0) This will allow server-side storage is client options, "KRN",8994,2497,1,3,0) similar to .ini files on Microsoft Windows programs. "KRN",8994,2497,1,4,0) "KRN",8994,2497,1,5,0) Purpose: To provide an entry point for a RPC call from a client. The client "KRN",8994,2497,1,6,0) will use this instead of TIniFile object in Delphi. "KRN",8994,2497,1,7,0) Note: Since all data are of type string in Mumps, this will work only with strings. "KRN",8994,2497,1,8,0) and type casting will have to take place in client. "KRN",8994,2497,1,9,0) Input: RESULT -- an OUT PARAMETER. See output below. "KRN",8994,2497,1,10,0) SECTION -- String of 'Section' to store setting in (corresponds to section in TIniFile) "KRN",8994,2497,1,11,0) KEY -- String of Key value. (corresponds to Ident/Key in TIniFile) "KRN",8994,2497,1,12,0) VALUE -- String of Value to set "KRN",8994,2497,1,13,0) Note: Data will be stored in: ^TMG("INIDATA",Section,Key,Vaue) "KRN",8994,2497,1,14,0) And because this is a shared resource, it is expected that the client will use "KRN",8994,2497,1,15,0) User.Name as the Section value. "KRN",8994,2497,1,16,0) Also, any prior value will be overwritten. "KRN",8994,2497,1,17,0) Output: Will return RESULT="1^Success", or -1^Error Message" "KRN",8994,2497,2,0) ^8994.02A^3^3 "KRN",8994,2497,2,1,0) SECTION^1^32^1^1 "KRN",8994,2497,2,1,1,0) ^^2^2^3100211^^ "KRN",8994,2497,2,1,1,1,0) String of 'Section' to store setting in "KRN",8994,2497,2,1,1,2,0) (corresponds to 'Section' in TIniFile) "KRN",8994,2497,2,2,0) KEY^1^32^1^2 "KRN",8994,2497,2,2,1,0) ^^1^1^3100211^^ "KRN",8994,2497,2,2,1,1,0) String of Key value. (corresponds to 'Ident'/'Key' in TIniFile) "KRN",8994,2497,2,3,0) VALUE^1^256^1^3 "KRN",8994,2497,2,3,1,0) ^^1^1^3100211^^ "KRN",8994,2497,2,3,1,1,0) String of Value to set "KRN",8994,2497,2,"B","KEY",2) "KRN",8994,2497,2,"B","SECTION",1) "KRN",8994,2497,2,"B","VALUE",3) "KRN",8994,2497,2,"PARAMSEQ",1,1) "KRN",8994,2497,2,"PARAMSEQ",2,2) "KRN",8994,2497,2,"PARAMSEQ",3,3) "KRN",8994,2497,3,0) ^^1^1^3100211^^ "KRN",8994,2497,3,1,0) Will return RESULT="1^Success", or -1^Error Message" "KRN",8994,2498,-1) 0^1 "KRN",8994,2498,0) TMG INIFILE GET^GETINIVL^TMGRPC1A^1^P^^^1^1 "KRN",8994,2498,1,0) ^8994.01^16^16^3100211^^^ "KRN",8994,2498,1,1,0) This will allow server-side storage is client options, "KRN",8994,2498,1,2,0) similar to .ini files on Microsoft Windows programs. "KRN",8994,2498,1,3,0) "KRN",8994,2498,1,4,0) Purpose: To provide an entry point for a RPC call from a client. The client "KRN",8994,2498,1,5,0) will use this instead of TIniFile object in Delphi. "KRN",8994,2498,1,6,0) Note: Since all data are of type string in Mumps, this will work only with strings. "KRN",8994,2498,1,7,0) and type casting will have to take place in client. "KRN",8994,2498,1,8,0) Input: RESULT -- an OUT PARAMETER. See output below "KRN",8994,2498,1,9,0) SECTION -- String of 'Section' to store setting in (corresponds to section in TIniFile) "KRN",8994,2498,1,10,0) KEY -- String of Key value. (corresponds to Ident/Key in TIniFile) "KRN",8994,2498,1,11,0) DEFAULT -- The value to be returned, if no value found. "KRN",8994,2498,1,12,0) Note: Data will be strored in: ^TMG("INIDATA",Section,Key,Vaue) "KRN",8994,2498,1,13,0) And because this is a shared resource, it is expected that the client will use "KRN",8994,2498,1,14,0) User.Name as the Section value. "KRN",8994,2498,1,15,0) Also, any prior value will be overwritten. "KRN",8994,2498,1,16,0) Output: Will return RESULT(0)="1^", or -1^Error Message" "KRN",8994,2498,2,0) ^8994.02A^3^3 "KRN",8994,2498,2,1,0) SECTION^1^32^1^1 "KRN",8994,2498,2,1,1,0) ^^3^3^3100211^^ "KRN",8994,2498,2,1,1,1,0) "KRN",8994,2498,2,1,1,2,0) String of 'Section' to store setting in "KRN",8994,2498,2,1,1,3,0) (corresponds to 'Section' in TIniFile) "KRN",8994,2498,2,2,0) KEY^1^32^1^2 "KRN",8994,2498,2,2,1,0) ^^2^2^3100211^^ "KRN",8994,2498,2,2,1,1,0) "KRN",8994,2498,2,2,1,2,0) String of Key value. (corresponds to 'Ident'/'Key' in TIniFile) "KRN",8994,2498,2,3,0) DEFAULT^1^256^0^3 "KRN",8994,2498,2,3,1,0) ^8994.021^1^1^3100211^^^ "KRN",8994,2498,2,3,1,1,0) The value to be returned, if no value found. "KRN",8994,2498,2,"B","DEFAULT",3) "KRN",8994,2498,2,"B","KEY",2) "KRN",8994,2498,2,"B","SECTION",1) "KRN",8994,2498,2,"PARAMSEQ",1,1) "KRN",8994,2498,2,"PARAMSEQ",2,2) "KRN",8994,2498,2,"PARAMSEQ",3,3) "KRN",8994,2498,3,0) ^8994.03^2^2^3100211^^^ "KRN",8994,2498,3,1,0) Will return RESULT="1^", or -1^Error Message" "KRN",8994,2498,3,2,0) is the desired value. "MBREQ") 0 "ORD",16,8994) 8994;16;1;;;;;;;RPCDEL^XPDIA1 "ORD",16,8994,0) REMOTE PROCEDURE "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 1 "RTN","TMGRPC1A") 0^1^B23521637 "RTN","TMGRPC1A",1,0) TMGRPC1A ;TMG/kst-RPC Functions ;2/11/10 "RTN","TMGRPC1A",2,0) ;;1.0;TMG-LIB;**1**;2/11/10;Build 1 "RTN","TMGRPC1A",3,0) ; "RTN","TMGRPC1A",4,0) ;"TMG RPC FUNCTIONS "RTN","TMGRPC1A",5,0) ; "RTN","TMGRPC1A",6,0) ;"Copyright Kevin Toppenberg MD "RTN","TMGRPC1A",7,0) ;"Released under GNU General Public License (GPL) "RTN","TMGRPC1A",8,0) ;" "RTN","TMGRPC1A",9,0) ;"======================================================================= "RTN","TMGRPC1A",10,0) ;" RPC -- Public Functions. "RTN","TMGRPC1A",11,0) ;"======================================================================= "RTN","TMGRPC1A",12,0) ;"SETINIVL(RESULT,SECTION,KEY,VALUE) ;Entry point for TMG INIFILE SET "RTN","TMGRPC1A",13,0) ;"GETINIVL(RESULT,SECTION,KEY,DEFAULT) ;Entry point for TMG INIFILE GET "RTN","TMGRPC1A",14,0) ; "RTN","TMGRPC1A",15,0) ;"======================================================================= "RTN","TMGRPC1A",16,0) ;"PRIVATE API FUNCTIONS "RTN","TMGRPC1A",17,0) ;"======================================================================= "RTN","TMGRPC1A",18,0) ; "RTN","TMGRPC1A",19,0) ;"======================================================================= "RTN","TMGRPC1A",20,0) ;"======================================================================= "RTN","TMGRPC1A",21,0) ;"Dependencies: "RTN","TMGRPC1A",22,0) ;" DIC, TMGDEBUG "RTN","TMGRPC1A",23,0) ;"======================================================================= "RTN","TMGRPC1A",24,0) ;"======================================================================= "RTN","TMGRPC1A",25,0) ; "RTN","TMGRPC1A",26,0) SETINIVL(RESULT,SECTION,KEY,VALUE) ; "RTN","TMGRPC1A",27,0) ;"SCOPE: Public "RTN","TMGRPC1A",28,0) ;"RPC that calls this: TMG INIFILE SET "RTN","TMGRPC1A",29,0) ;"Purpose: To provide an entry point for a RPC call from a client. The client "RTN","TMGRPC1A",30,0) ;" will use this instead of TIniFile object in Delphi. "RTN","TMGRPC1A",31,0) ;" Note: Since all data are of type string in Mumps, this will work only with strings. "RTN","TMGRPC1A",32,0) ;" and type casting will have to take place in client. "RTN","TMGRPC1A",33,0) ;"Input: RESULT -- an OUT PARAMETER. See output below. "RTN","TMGRPC1A",34,0) ;" SECTION -- String of 'Section' to store setting in (corresponds to section in TIniFile) "RTN","TMGRPC1A",35,0) ;" KEY -- String of Key value. (corresponds to Ident/Key in TIniFile) "RTN","TMGRPC1A",36,0) ;" VALUE -- String of Value to set "RTN","TMGRPC1A",37,0) ;"Note: Because this is a shared resource, it is expected that the client will use "RTN","TMGRPC1A",38,0) ;" User.Name as the Section value. "RTN","TMGRPC1A",39,0) ;" Also, any prior value will be overwritten. "RTN","TMGRPC1A",40,0) ;"Output: Will return RESULT="1^Success", or -1^Error Message" "RTN","TMGRPC1A",41,0) SET RESULT="1^Success" "RTN","TMGRPC1A",42,0) IF $GET(SECTION)="" SET RESULT="-1^No value passed for SECTION" QUIT "RTN","TMGRPC1A",43,0) IF $GET(KEY)="" SET RESULT="-1^No value passed for KEY" QUIT "RTN","TMGRPC1A",44,0) SET VALUE=$GET(VALUE) "RTN","TMGRPC1A",45,0) NEW X,Y,DIC,IEN,IEN2 "RTN","TMGRPC1A",46,0) SET DIC=22710,DIC(0)="L" ;"Add SECTION & KEY if not previously present. "RTN","TMGRPC1A",47,0) SET X=SECTION "RTN","TMGRPC1A",48,0) DO ^DIC SET IEN=+Y "RTN","TMGRPC1A",49,0) IF IEN'>0 SET RESULT="-1^Error establishing SECTION: ["_SECTION_"]" QUIT "RTN","TMGRPC1A",50,0) SET DIC(1)=IEN,DIC="^TMG(22710,"_IEN_",1," "RTN","TMGRPC1A",51,0) SET X=KEY "RTN","TMGRPC1A",52,0) DO ^DIC SET IEN2=+Y "RTN","TMGRPC1A",53,0) IF IEN2'>0 SET RESULT="-1^Error establishing KEY: ["_KEY_"]" QUIT "RTN","TMGRPC1A",54,0) NEW TMGFDA,TMGMSG "RTN","TMGRPC1A",55,0) IF VALUE="" SET VALUE="@" "RTN","TMGRPC1A",56,0) SET TMGFDA(22710.01,IEN2_","_IEN_",",1)=VALUE "RTN","TMGRPC1A",57,0) DO FILE^DIE("E","TMGFDA","TMGMSG") "RTN","TMGRPC1A",58,0) IF $DATA(TMGMSG("DIERR")) DO QUIT "RTN","TMGRPC1A",59,0) . SET RESULT="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG) "RTN","TMGRPC1A",60,0) QUIT "RTN","TMGRPC1A",61,0) ; "RTN","TMGRPC1A",62,0) ; "RTN","TMGRPC1A",63,0) GETINIVL(RESULT,SECTION,KEY,DEFAULT) ; "RTN","TMGRPC1A",64,0) ;"SCOPE: Public "RTN","TMGRPC1A",65,0) ;"RPC that calls this: TMG INIFILE GET "RTN","TMGRPC1A",66,0) ;"Purpose: To provide an entry point for a RPC call from a client. The client "RTN","TMGRPC1A",67,0) ;" will use this instead of TIniFile object in Delphi. "RTN","TMGRPC1A",68,0) ;" Note: Since all data are of type string in Mumps, this will work only with strings. "RTN","TMGRPC1A",69,0) ;" and type casting will have to take place in client. "RTN","TMGRPC1A",70,0) ;"Input: RESULT -- an OUT PARAMETER. See output below. "RTN","TMGRPC1A",71,0) ;" SECTION -- String of 'Section' to store setting in (corresponds to section in TIniFile) "RTN","TMGRPC1A",72,0) ;" KEY -- String of Key value. (corresponds to Ident/Key in TIniFile) "RTN","TMGRPC1A",73,0) ;" DEFAULT -- The value to be returned, if no value found. "RTN","TMGRPC1A",74,0) ;"Note: Because this is a shared resource, it is expected that the client will use "RTN","TMGRPC1A",75,0) ;" User.Name as the Section value. "RTN","TMGRPC1A",76,0) ;" Also, any prior value will be overwritten. "RTN","TMGRPC1A",77,0) ;"Output: Will return RESULT="1^", or -1^Error Message" "RTN","TMGRPC1A",78,0) IF $GET(SECTION)="" SET RESULT="-1^No value passed for SECTION" QUIT "RTN","TMGRPC1A",79,0) IF $GET(KEY)="" SET RESULT="-1^No value passed for KEY" QUIT "RTN","TMGRPC1A",80,0) SET DEFAULT=$GET(DEFAULT) "RTN","TMGRPC1A",81,0) NEW X,Y,DIC,IEN,IEN2 "RTN","TMGRPC1A",82,0) SET DIC=22710,X=SECTION "RTN","TMGRPC1A",83,0) DO ^DIC SET IEN=+Y "RTN","TMGRPC1A",84,0) IF IEN'>0 SET RESULT="1^"_DEFAULT QUIT "RTN","TMGRPC1A",85,0) SET DA(1)=IEN,DIC="^TMG(22710,"_IEN_",1," "RTN","TMGRPC1A",86,0) SET X=KEY "RTN","TMGRPC1A",87,0) DO ^DIC SET IEN2=+Y "RTN","TMGRPC1A",88,0) IF IEN2'>0 SET RESULT="1^"_DEFAULT QUIT "RTN","TMGRPC1A",89,0) NEW VALUE SET VALUE=$GET(^TMG(22710,IEN,1,IEN2,1),DEFAULT) "RTN","TMGRPC1A",90,0) IF VALUE'=DEFAULT SET VALUE=$PIECE(VALUE,"^",1) "RTN","TMGRPC1A",91,0) SET RESULT="1^"_VALUE "RTN","TMGRPC1A",92,0) QUIT "RTN","TMGRPC1A",93,0) ; "RTN","TMGRPC1A",94,0) ; "RTN","TMGRPC1A",95,0) CONVERT "RTN","TMGRPC1A",96,0) ;"Purpose: A temp function to convert between the old storage method and the new. "RTN","TMGRPC1A",97,0) ;"Data was stored in: ^TMG("INIDATA",Section,Key,Vaue) "RTN","TMGRPC1A",98,0) NEW SECTION,KEY,VALUE "RTN","TMGRPC1A",99,0) SET SECTION="" "RTN","TMGRPC1A",100,0) FOR SET SECTION=$ORDER(^TMG("INIDATA",SECTION)) QUIT:(SECTION="") DO "RTN","TMGRPC1A",101,0) . SET KEY="" "RTN","TMGRPC1A",102,0) . FOR SET KEY=$ORDER(^TMG("INIDATA",SECTION,KEY)) QUIT:(KEY="") DO "RTN","TMGRPC1A",103,0) . . SET VALUE=$GET(^TMG("INIDATA",SECTION,KEY)) "RTN","TMGRPC1A",104,0) . . NEW RESULT "RTN","TMGRPC1A",105,0) . . DO SETINIVL(.RESULT,SECTION,KEY,VALUE) ; "RTN","TMGRPC1A",106,0) . . IF +RESULT>0 KILL ^TMG("INIDATA",SECTION,KEY) QUIT "RTN","TMGRPC1A",107,0) . . WRITE "Error trying to store SECTION=",SECTION,"; KEY=",KEY,"; VALUE=",VALUE,! "RTN","TMGRPC1A",108,0) . . WRITE " -- ",$PIECE(RESULT,"^",2),! "RTN","TMGRPC1A",109,0) QUIT "RTN","TMGRPC1A",110,0) ; "RTN","TMGRPC1A",111,0) ; "RTN","TMGRPC1A",112,0) INSTALL ; "RTN","TMGRPC1A",113,0) ;"Purpose: to add the RPC's to the OPTION record OR CPRS GUI CHART "RTN","TMGRPC1A",114,0) NEW DIC,X,Y,DA "RTN","TMGRPC1A",115,0) SET DIC="^DIC(19,",DIC(0)="M" "RTN","TMGRPC1A",116,0) SET X="OR CPRS GUI CHART" "RTN","TMGRPC1A",117,0) DO ^DIC "RTN","TMGRPC1A",118,0) IF +Y'>0 DO QUIT "RTN","TMGRPC1A",119,0) . WRITE "ERROR. Unable to find [OR CPRS GUI CHART] in file OPTION (#19)",! "RTN","TMGRPC1A",120,0) . NEW TEMP READ "Press [ENTER] to continue...",TEMP:($GET(DTIME,3600)) "RTN","TMGRPC1A",121,0) . WRITE ! "RTN","TMGRPC1A",122,0) SET DA(1)=+Y "RTN","TMGRPC1A",123,0) SET DIC=DIC_DA(1)_",""RPC""," "RTN","TMGRPC1A",124,0) SET DIC(0)="ML" ;"LAYGO --> add entry if not found "RTN","TMGRPC1A",125,0) SET X="TMG INIFILE GET" "RTN","TMGRPC1A",126,0) DO ^DIC "RTN","TMGRPC1A",127,0) IF +Y'>0 DO "RTN","TMGRPC1A",128,0) . WRITE "ERROR. Unable to add or find TMG INIFILE GET for subfile RPC in record",! "RTN","TMGRPC1A",129,0) . WRITE "OR CPRS GUI CHART in file OPTION (#19)",! "RTN","TMGRPC1A",130,0) . NEW TEMP READ "Press [ENTER] to continue...",TEMP:($GET(DTIME,3600)) "RTN","TMGRPC1A",131,0) . WRITE ! "RTN","TMGRPC1A",132,0) SET X="TMG INIFILE SET" "RTN","TMGRPC1A",133,0) DO ^DIC "RTN","TMGRPC1A",134,0) IF +Y'>0 DO "RTN","TMGRPC1A",135,0) . WRITE "ERROR. Unable to add or find TMG INIFILE SET for subfile RPC in record",! "RTN","TMGRPC1A",136,0) . WRITE "OR CPRS GUI CHART in file OPTION (#19)",! "RTN","TMGRPC1A",137,0) . NEW TEMP READ "Press [ENTER] to continue...",TEMP:($GET(DTIME,3600)) "RTN","TMGRPC1A",138,0) . WRITE ! "RTN","TMGRPC1A",139,0) QUIT "RTN","TMGRPC1A",140,0) ; "SEC","^DIC",22710,22710,0,"AUDIT") @ "SEC","^DIC",22710,22710,0,"DD") @ "SEC","^DIC",22710,22710,0,"DEL") @ "SEC","^DIC",22710,22710,0,"LAYGO") @ "SEC","^DIC",22710,22710,0,"RD") @ "SEC","^DIC",22710,22710,0,"WR") @ "VER") 8.0^22.0 "^DD",22710,22710,0) FIELD^^1^2 "^DD",22710,22710,0,"DT") 3100214 "^DD",22710,22710,0,"IX","B",22710,.01) "^DD",22710,22710,0,"NM","TMG APPLICATION PARAMETERS") "^DD",22710,22710,.01,0) SECTION^RF^^0;1^K:$L(X)>1000!($L(X)<1)!'(X'?1P.E) X "^DD",22710,22710,.01,1,0) ^.1 "^DD",22710,22710,.01,1,1,0) 22710^B "^DD",22710,22710,.01,1,1,1) S ^TMG(22710,"B",$E(X,1,30),DA)="" "^DD",22710,22710,.01,1,1,2) K ^TMG(22710,"B",$E(X,1,30),DA) "^DD",22710,22710,.01,3) Answer must be 1-1000 characters in length. "^DD",22710,22710,.01,21,0) ^^1^1^3100214^^ "^DD",22710,22710,.01,21,1,0) The SECTION field corresponds to the section of an INI file. "^DD",22710,22710,.01,"DT") 3100214 "^DD",22710,22710,1,0) KEY^22710.01^^1;0 "^DD",22710,22710.01,0) KEY SUB-FIELD^^1^2 "^DD",22710,22710.01,0,"DT") 3100214 "^DD",22710,22710.01,0,"IX","B",22710.01,.01) "^DD",22710,22710.01,0,"NM","KEY") "^DD",22710,22710.01,0,"UP") 22710 "^DD",22710,22710.01,.01,0) KEY^F^^0;1^K:$L(X)>250!($L(X)<1) X "^DD",22710,22710.01,.01,1,0) ^.1 "^DD",22710,22710.01,.01,1,1,0) 22710.01^B "^DD",22710,22710.01,.01,1,1,1) S ^TMG(22710,DA(1),1,"B",$E(X,1,30),DA)="" "^DD",22710,22710.01,.01,1,1,2) K ^TMG(22710,DA(1),1,"B",$E(X,1,30),DA) "^DD",22710,22710.01,.01,3) Answer must be 1-250 characters in length "^DD",22710,22710.01,.01,"DT") 3100214 "^DD",22710,22710.01,1,0) VALUE^F^^1;1^K:$L(X)>250!($L(X)<1) X "^DD",22710,22710.01,1,3) Answer must be 1-250 characters in length. "^DD",22710,22710.01,1,21,0) ^^1^1^3100214^^ "^DD",22710,22710.01,1,21,1,0) This is the value of the KEY:VALUE pair, as found in an INI file. "^DD",22710,22710.01,1,"DT") 3100214 "^DIC",22710,22710,0) TMG APPLICATION PARAMETERS^22710 "^DIC",22710,22710,0,"GL") ^TMG(22710, "^DIC",22710,"B","TMG APPLICATION PARAMETERS",22710) **END** **END**