- MAGNPARM ;WOIFO/NST - Utilities for RPC calls ; 10 Aug 2017 4:16 PM
- ;;3.0;IMAGING;**185**;Mar 19, 2002;Build 92;Aug 02, 2012
- ;; Per VHA Directive 2004-038, this routine should not be modified.
- ;; +---------------------------------------------------------------+
- ;; | Property of the US Government. |
- ;; | No permission to copy or redistribute this software is given. |
- ;; | Use of unreleased versions of this software requires the user |
- ;; | to execute a written test agreement with the VistA Imaging |
- ;; | Development Office of the Department of Veterans Affairs, |
- ;; | telephone (301) 734-0100. |
- ;; | The Food and Drug Administration classifies this software as |
- ;; | a medical device. As such, it may not be changed in any way. |
- ;; | Modifications to this software may result in an adulterated |
- ;; | medical device under 21CFR820, the use of which is considered |
- ;; | to be a violation of US Federal Statutes. |
- ;; +---------------------------------------------------------------+
- ;;
- Q
- ;
- ;***** Changes value for named parameter
- ;
- ; RPC: MAGN PARAM SET LIST
- ;
- ; Input Parameters
- ; ================
- ;
- ; [MAGPARAM("PARAM")] - default "MAG USER PREF"
- ; [MAGPARAM("ENTITY")] - default "USR.`DUZ"
- ; [MAGPARAM("USER")] - default DUZ
- ; MAGPARAM("INSTANCEnnn")
- ; MAGPARAM("VALUEnnn")
- ;
- ; Return Values
- ; =============
- ; if error MAGRY = Failure status ^ Error message^
- ; if success MAGRY = Success status
- ;
- SPARLIST(MAGRY,MAGPARAM) ; RPC [MAGN PARAM SET LIST]
- N PARAM,VALUE,ENT,INST,ERR,USR,II,JJ
- ;
- K MAGRY
- S ERR=0
- S PARAM=$G(MAGPARAM("PARAM"),"MAG USER PREF")
- S USR=$G(MAGPARAM("USER"),DUZ)
- S ENT=$G(MAGPARAM("ENTITY"),"USR.`"_USR)
- S II="INSTANCE"
- F S II=$O(MAGPARAM(II)) Q:II'["INSTANCE" D Q:ERR
- . S INST=MAGPARAM(II)
- . Q:INST=""
- . D EN^XPAR(ENT,PARAM,INST,"@",.ERR) ; clean up first
- . S JJ="VALUE"_$P(II,"INSTANCE",2)
- . S VALUE=$G(MAGPARAM(JJ))
- . I VALUE="@" Q ; we already deleted the value
- . F S JJ=$O(MAGPARAM(JJ)) Q:JJ="" D
- . . S VALUE(+$P(JJ,"_",2),0)=MAGPARAM(JJ) ; Add word-processing text if any
- . . Q
- . D EN^XPAR(ENT,PARAM,INST,.VALUE,.ERR)
- . Q
- I ERR=0 S MAGRY=$$SETOKVAL^MAGNU002("")
- E S MAGRY=$$SETERROR^MAGNU002($P(ERR,"^",2))
- Q
- ;
- ;***** Get a parameter list values
- ;
- ; RPC: MAGN PARAM GET LIST
- ;
- ; Input Parameters
- ; ================
- ;
- ; [MAGPARAM("PARAM")] - parameter name - default "MAG USER PREF"
- ; [MAGPARAM("FORMAT")] - I|Q|E|B - default "I" (internal)
- ; [MAGPARAM("ENTITY")] - Default "ALL"
- ;
- ; Return Values
- ; =============
- ; if error MAGRY(0) = Failure status ^ Error message^
- ; if success MAGRY(0) = Success status ^ ^counter
- ; MAGRY(1..n) = instance ^ value
- ;
- GPARLIST(MAGRY,MAGPARAM) ; RPC [MAGN PARAM GET LIST]
- N INST,CNT,ERR,TMP,PARAM,FMT,ENT
- ;
- K MAGRY
- S PARAM=$G(MAGPARAM("PARAM"),"MAG USER PREF")
- S FMT=$G(MAGPARAM("FORMAT"),"I")
- S ENT=$G(MAGPARAM("ENTITY"),"ALL")
- D GETLST^XPAR(.TMP,ENT,PARAM,FMT,.ERR)
- ;
- I $G(ERR) S @MAGRY@(0)=$$SETERROR^MAGNU002($P(ERR,"^",2)) Q
- ;
- S CNT=0
- S INST=""
- F S INST=$O(TMP(INST)) Q:INST="" D
- . S CNT=CNT+1,MAGRY(CNT)=INST_"^"_TMP(INST)
- . Q
- S MAGRY(0)=$$SETOKVAL^MAGNU002(CNT)
- Q
- ;
- ;***** Get a value of an instance
- ;
- ; RPC: MAGN PARAM GET VALUE
- ;
- ; Input Parameters
- ; ================
- ;
- ; [MAGPARAM("PARAM")] - parameter name - default "MAG USER PREF"
- ; [MAGPARAM("ENTITY")] - Default "ALL"
- ; MAGPARAM("INSTANCE")
- ;
- ; Return Values
- ; =============
- ; if error MAGRY(0) = Failure status ^ Error message^
- ; if success MAGRY(0) = Success status ^ ^ value
- ; MAGRY(1..n) = value line 1..n
- GET1(MAGRY,MAGPARAM) ; RPC [MAGN PARAM GET VALUE]
- N I,OUT,PARAM,ENT,INST,ERR
- ;
- K MAGRY
- S PARAM=$G(MAGPARAM("PARAM"),"MAG USER PREF")
- S ENT=$G(MAGPARAM("ENTITY"),"ALL")
- S INST=$G(MAGPARAM("INSTANCE"),"")
- I INST="" S MAGRY(0)=$$SETERROR^MAGNU002("The Instance value is missing") Q
- D GETWP^XPAR(.OUT,ENT,PARAM,INST,.ERR)
- I $G(ERR) S MAGRY(0)=$$SETERROR^MAGNU002($G(ERR)) Q
- I '$D(OUT) S MAGRY(0)=$$SETERROR^MAGNU002("Instance not found") Q
- S MAGRY(0)=$$SETOKVAL^MAGNU002($G(OUT))
- S I=""
- F S I=$O(OUT(I)) Q:'I D
- . S MAGRY(I)=$G(OUT(I,0))
- . Q
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMAGNPARM 4426 printed Feb 18, 2025@23:33:46 Page 2
- MAGNPARM ;WOIFO/NST - Utilities for RPC calls ; 10 Aug 2017 4:16 PM
- +1 ;;3.0;IMAGING;**185**;Mar 19, 2002;Build 92;Aug 02, 2012
- +2 ;; Per VHA Directive 2004-038, this routine should not be modified.
- +3 ;; +---------------------------------------------------------------+
- +4 ;; | Property of the US Government. |
- +5 ;; | No permission to copy or redistribute this software is given. |
- +6 ;; | Use of unreleased versions of this software requires the user |
- +7 ;; | to execute a written test agreement with the VistA Imaging |
- +8 ;; | Development Office of the Department of Veterans Affairs, |
- +9 ;; | telephone (301) 734-0100. |
- +10 ;; | The Food and Drug Administration classifies this software as |
- +11 ;; | a medical device. As such, it may not be changed in any way. |
- +12 ;; | Modifications to this software may result in an adulterated |
- +13 ;; | medical device under 21CFR820, the use of which is considered |
- +14 ;; | to be a violation of US Federal Statutes. |
- +15 ;; +---------------------------------------------------------------+
- +16 ;;
- +17 QUIT
- +18 ;
- +19 ;***** Changes value for named parameter
- +20 ;
- +21 ; RPC: MAGN PARAM SET LIST
- +22 ;
- +23 ; Input Parameters
- +24 ; ================
- +25 ;
- +26 ; [MAGPARAM("PARAM")] - default "MAG USER PREF"
- +27 ; [MAGPARAM("ENTITY")] - default "USR.`DUZ"
- +28 ; [MAGPARAM("USER")] - default DUZ
- +29 ; MAGPARAM("INSTANCEnnn")
- +30 ; MAGPARAM("VALUEnnn")
- +31 ;
- +32 ; Return Values
- +33 ; =============
- +34 ; if error MAGRY = Failure status ^ Error message^
- +35 ; if success MAGRY = Success status
- +36 ;
- SPARLIST(MAGRY,MAGPARAM) ; RPC [MAGN PARAM SET LIST]
- +1 NEW PARAM,VALUE,ENT,INST,ERR,USR,II,JJ
- +2 ;
- +3 KILL MAGRY
- +4 SET ERR=0
- +5 SET PARAM=$GET(MAGPARAM("PARAM"),"MAG USER PREF")
- +6 SET USR=$GET(MAGPARAM("USER"),DUZ)
- +7 SET ENT=$GET(MAGPARAM("ENTITY"),"USR.`"_USR)
- +8 SET II="INSTANCE"
- +9 FOR
- SET II=$ORDER(MAGPARAM(II))
- if II'["INSTANCE"
- QUIT
- Begin DoDot:1
- +10 SET INST=MAGPARAM(II)
- +11 if INST=""
- QUIT
- +12 ; clean up first
- DO EN^XPAR(ENT,PARAM,INST,"@",.ERR)
- +13 SET JJ="VALUE"_$PIECE(II,"INSTANCE",2)
- +14 SET VALUE=$GET(MAGPARAM(JJ))
- +15 ; we already deleted the value
- IF VALUE="@"
- QUIT
- +16 FOR
- SET JJ=$ORDER(MAGPARAM(JJ))
- if JJ=""
- QUIT
- Begin DoDot:2
- +17 ; Add word-processing text if any
- SET VALUE(+$PIECE(JJ,"_",2),0)=MAGPARAM(JJ)
- +18 QUIT
- End DoDot:2
- +19 DO EN^XPAR(ENT,PARAM,INST,.VALUE,.ERR)
- +20 QUIT
- End DoDot:1
- if ERR
- QUIT
- +21 IF ERR=0
- SET MAGRY=$$SETOKVAL^MAGNU002("")
- +22 IF '$TEST
- SET MAGRY=$$SETERROR^MAGNU002($PIECE(ERR,"^",2))
- +23 QUIT
- +24 ;
- +25 ;***** Get a parameter list values
- +26 ;
- +27 ; RPC: MAGN PARAM GET LIST
- +28 ;
- +29 ; Input Parameters
- +30 ; ================
- +31 ;
- +32 ; [MAGPARAM("PARAM")] - parameter name - default "MAG USER PREF"
- +33 ; [MAGPARAM("FORMAT")] - I|Q|E|B - default "I" (internal)
- +34 ; [MAGPARAM("ENTITY")] - Default "ALL"
- +35 ;
- +36 ; Return Values
- +37 ; =============
- +38 ; if error MAGRY(0) = Failure status ^ Error message^
- +39 ; if success MAGRY(0) = Success status ^ ^counter
- +40 ; MAGRY(1..n) = instance ^ value
- +41 ;
- GPARLIST(MAGRY,MAGPARAM) ; RPC [MAGN PARAM GET LIST]
- +1 NEW INST,CNT,ERR,TMP,PARAM,FMT,ENT
- +2 ;
- +3 KILL MAGRY
- +4 SET PARAM=$GET(MAGPARAM("PARAM"),"MAG USER PREF")
- +5 SET FMT=$GET(MAGPARAM("FORMAT"),"I")
- +6 SET ENT=$GET(MAGPARAM("ENTITY"),"ALL")
- +7 DO GETLST^XPAR(.TMP,ENT,PARAM,FMT,.ERR)
- +8 ;
- +9 IF $GET(ERR)
- SET @MAGRY@(0)=$$SETERROR^MAGNU002($PIECE(ERR,"^",2))
- QUIT
- +10 ;
- +11 SET CNT=0
- +12 SET INST=""
- +13 FOR
- SET INST=$ORDER(TMP(INST))
- if INST=""
- QUIT
- Begin DoDot:1
- +14 SET CNT=CNT+1
- SET MAGRY(CNT)=INST_"^"_TMP(INST)
- +15 QUIT
- End DoDot:1
- +16 SET MAGRY(0)=$$SETOKVAL^MAGNU002(CNT)
- +17 QUIT
- +18 ;
- +19 ;***** Get a value of an instance
- +20 ;
- +21 ; RPC: MAGN PARAM GET VALUE
- +22 ;
- +23 ; Input Parameters
- +24 ; ================
- +25 ;
- +26 ; [MAGPARAM("PARAM")] - parameter name - default "MAG USER PREF"
- +27 ; [MAGPARAM("ENTITY")] - Default "ALL"
- +28 ; MAGPARAM("INSTANCE")
- +29 ;
- +30 ; Return Values
- +31 ; =============
- +32 ; if error MAGRY(0) = Failure status ^ Error message^
- +33 ; if success MAGRY(0) = Success status ^ ^ value
- +34 ; MAGRY(1..n) = value line 1..n
- GET1(MAGRY,MAGPARAM) ; RPC [MAGN PARAM GET VALUE]
- +1 NEW I,OUT,PARAM,ENT,INST,ERR
- +2 ;
- +3 KILL MAGRY
- +4 SET PARAM=$GET(MAGPARAM("PARAM"),"MAG USER PREF")
- +5 SET ENT=$GET(MAGPARAM("ENTITY"),"ALL")
- +6 SET INST=$GET(MAGPARAM("INSTANCE"),"")
- +7 IF INST=""
- SET MAGRY(0)=$$SETERROR^MAGNU002("The Instance value is missing")
- QUIT
- +8 DO GETWP^XPAR(.OUT,ENT,PARAM,INST,.ERR)
- +9 IF $GET(ERR)
- SET MAGRY(0)=$$SETERROR^MAGNU002($GET(ERR))
- QUIT
- +10 IF '$DATA(OUT)
- SET MAGRY(0)=$$SETERROR^MAGNU002("Instance not found")
- QUIT
- +11 SET MAGRY(0)=$$SETOKVAL^MAGNU002($GET(OUT))
- +12 SET I=""
- +13 FOR
- SET I=$ORDER(OUT(I))
- if 'I
- QUIT
- Begin DoDot:1
- +14 SET MAGRY(I)=$GET(OUT(I,0))
- +15 QUIT
- End DoDot:1
- +16 QUIT