Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: MAGVDGWP

MAGVDGWP.m

Go to the documentation of this file.
  1. MAGVDGWP ;WOIFO/NST/RRB - Retrieve DGW settings ; 09 Jul 2012 2:53 PM
  1. ;;3.0;IMAGING;**118**;Mar 19, 2002;Build 4525;May 01, 2013
  1. ;; Per VHA Directive 2004-038, this routine should not be modified.
  1. ;; +---------------------------------------------------------------+
  1. ;; | Property of the US Government. |
  1. ;; | No permission to copy or redistribute this software is given. |
  1. ;; | Use of unreleased versions of this software requires the user |
  1. ;; | to execute a written test agreement with the VistA Imaging |
  1. ;; | Development Office of the Department of Veterans Affairs, |
  1. ;; | telephone (301) 734-0100. |
  1. ;; | The Food and Drug Administration classifies this software as |
  1. ;; | a medical device. As such, it may not be changed in any way. |
  1. ;; | Modifications to this software may result in an adulterated |
  1. ;; | medical device under 21CFR820, the use of which is considered |
  1. ;; | to be a violation of US Federal Statutes. |
  1. ;; +---------------------------------------------------------------+
  1. ;;
  1. Q
  1. ;
  1. ;***** Return list of Instruments in DGW from DICOM GATEWAY INSTRUMENT DICTIONARY file (#2006.911)
  1. ; RPC: MAGV DGW INSTRUMENT LIST
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; HOSTNAME - Host name;
  1. ; If HOSTNAME is blank all setting will be returned
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error found during execution
  1. ; MAGRY(0) = "-1^Error getting instrument list"
  1. ; if success
  1. ; MAGRY(0) = "0^#CNT" - where #CNT is a number of records returned
  1. ; MAGRY(1) = "HOSTNAME^DATETIME^NICKNAME^DESCRIPTION^SERVICE^PORT^SITE ID^SITE^MACHINE ID"
  1. ; MAGRY(2..n) = "^" delimited string with values of fields listed in MAGRY(1)
  1. ;
  1. Q
  1. ;
  1. INSTRMNT(MAGRY,HOSTNAME) ;RPC [MAGV DGW INSTRUMENT LIST]
  1. N OUT,I,CNT,MAGNIEN,MAGNHOST,MAGNDATE
  1. N X
  1. I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
  1. E S X="ERR^MAGGTERR",@^%ZOSF("TRAP")
  1. S MAGRY(0)="-1^Error getting instrument list"
  1. S HOSTNAME=$TR(HOSTNAME,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
  1. D LIST^DIC(2006.911,"","@;.01;2","PI","","","","","","","OUT")
  1. I $D(OUT("DIERR")) Q ; Error getting the list
  1. S I=0
  1. S CNT=1
  1. F S I=$O(OUT("DILIST",I)) Q:'+I D
  1. . S X=OUT("DILIST",I,0)
  1. . S MAGNIEN=$P(X,"^",1)
  1. . S MAGNHOST=$P(X,"^",2)
  1. . S MAGNDATE=$P(X,"^",3)
  1. . I HOSTNAME'="" Q:HOSTNAME'=MAGNHOST ; Check if HOSTNAME parameter
  1. . D GETINSTR(.MAGRY,.CNT,MAGNIEN,MAGNHOST,MAGNDATE)
  1. . Q
  1. S MAGRY(0)="0^"_(CNT-1)
  1. S MAGRY(1)="HOSTNAME^DATETIME^NICKNAME^DESCRIPTION^SERVICE^PORT^SITE ID^SITE^MACHINE ID"
  1. Q
  1. ;
  1. GETINSTR(MAGRY,CNT,MAGNIEN,MAGNHOST,MAGNDATE) ; Get list of instruments for a hostname
  1. ;
  1. N OUT,MSG,I,STATION,SITEIEN
  1. D LIST^DIC(2006.9112,","_MAGNIEN_",","@;.01;2;3I;4;5I;5;6","P","","","","","","","OUT","MSG")
  1. I $D(MSG("DIERR")) Q ; Error getting the list
  1. S I=0
  1. F S I=$O(OUT("DILIST",I)) Q:'+I D
  1. . S CNT=CNT+1
  1. . ; Get site IEN
  1. . S SITEIEN=$P(OUT("DILIST",I,0),"^",6)
  1. . ; Get station based on site IEN
  1. . S STATION=$$STA^XUAF4(SITEIEN) ; IA #2171 Get Station Number
  1. . ; Set station into return array
  1. . S $P(OUT("DILIST",I,0),"^",6)=STATION
  1. . S MAGRY(CNT)=MAGNHOST_"^"_MAGNDATE_"^"_$P(OUT("DILIST",I,0),"^",2,8)
  1. . Q
  1. Q
  1. ;
  1. ;***** Return list of Modalities in DGW from DICOM GATEWAY MODALITY DICTIONARY file (#2006.912)
  1. ; RPC: MAGV DGW MODALITY LIST
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; HOSTNAME - Host name;
  1. ; If HOSTNAME is blank all setting will be returned
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error found during execution
  1. ; MAGRY(0) = "-1^Error getting modality list"
  1. ; if success
  1. ; MAGRY(0) = "0^#CNT" - where #CNT is a number of records returned
  1. ; MAGRY(1) = "HOSTNAME^DATETIME^MANUFACTURER^MODEL^MODALITY^IMAGING SERVICE^ACTIVE"
  1. ; MAGRY(2..n) = "^" delimited string with values of fields listed in MAGRY(1)
  1. ;
  1. MODALITY(MAGRY,HOSTNAME) ;RPC [MAGV DGW MODALITY LIST]
  1. N OUT,I,CNT,MAGNIEN,MAGNHOST,MAGNDATE
  1. N X
  1. I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
  1. E S X="ERR^MAGGTERR",@^%ZOSF("TRAP")
  1. S MAGRY(0)="-1^Error getting modality list"
  1. S HOSTNAME=$TR(HOSTNAME,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
  1. D LIST^DIC(2006.912,"","@;.01;2","PI","","","","","","","OUT")
  1. I $D(OUT("DIERR")) Q ; Error getting the list
  1. S I=0
  1. S CNT=1
  1. F S I=$O(OUT("DILIST",I)) Q:'+I D
  1. . S X=OUT("DILIST",I,0)
  1. . S MAGNIEN=$P(X,"^",1)
  1. . S MAGNHOST=$P(X,"^",2)
  1. . S MAGNDATE=$P(X,"^",3)
  1. . I HOSTNAME'="" Q:HOSTNAME'=MAGNHOST ; Check if HOSTNAME parameter
  1. . D GETMODAL(.MAGRY,.CNT,MAGNIEN,MAGNHOST,MAGNDATE)
  1. . Q
  1. S MAGRY(0)="0^"_(CNT-1)
  1. S MAGRY(1)="HOSTNAME^DATETIME^MANUFACTURER^MODEL^MODALITY^IMAGING SERVICE^ACTIVE"
  1. Q
  1. ;
  1. GETMODAL(MAGRY,CNT,MAGNIEN,MAGNHOST,MAGNDATE) ; Get list of modalities for a hostname
  1. ;
  1. N OUT,MSG,I
  1. D LIST^DIC(2006.9122,","_MAGNIEN_",","@;.01;2;3;8;9","PI","","","","","","","OUT","MSG")
  1. I $D(MSG("DIERR")) Q ; Error getting the list
  1. S I=0
  1. F S I=$O(OUT("DILIST",I)) Q:'+I D
  1. . S CNT=CNT+1
  1. . S MAGRY(CNT)=MAGNHOST_"^"_MAGNDATE_"^"_$P(OUT("DILIST",I,0),"^",2,7)
  1. . Q
  1. Q
  1. ;
  1. ;***** Return list of UID
  1. ; from DICOM UID SPECIFIC ACTION file (#2006.539)
  1. ; RPC: MAGV DGW ACTION UID LIST
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; MAGTYPE - Type (e.g. "SOP Class")
  1. ; MAGSUBT - Subtype (e.g. "Storage")
  1. ; MAGACT - Action Type (e.g. "Storage SCP")
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error found during execution
  1. ; MAGRY(0) = "-1^Error getting actions list"
  1. ; if success
  1. ; MAGRY(0) = "0^#CNT" - where #CNT is a number of records returned
  1. ; MAGRY(1) = "UID^DESCRIPTION^ACTION CODE^ACTION COMMENT"
  1. ; MAGRY(2..n) = "^" delimited string with values of fields listed in MAGRY(1)
  1. ;
  1. ACTUIDS(MAGRY,MAGTYPE,MAGSUBT,MAGACT) ;RPC [MAGV DGW ACTION UID LIST]
  1. I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
  1. E S X="ERR^MAGGTERR",@^%ZOSF("TRAP")
  1. N OUT,OUT2,MAGA,IEN,MAGX,CNT
  1. I (MAGTYPE="")!(MAGSUBT="")!(MAGACT="") S MAGRY(0)="-1^Blank parameters" Q
  1. ;
  1. S MAGRY(0)="-1^Error getting action UID list"
  1. ;
  1. S MAGA(1)=MAGTYPE ;"SOP Class"
  1. S MAGA(2)=MAGSUBT ;"Storage"
  1. D FIND^DIC(2006.539,"","@;.01;2;","PQX",.MAGA,"*","D","","","OUT")
  1. I $D(OUT("DIERR")) Q ; Error getting the list
  1. S I=0
  1. S CNT=1
  1. F S I=$O(OUT("DILIST",I)) Q:'+I D
  1. . S MAGX=OUT("DILIST",I,0)
  1. . S IEN=$P(MAGX,"^",1)
  1. . D FIND^DIC(2006.5391,","_IEN_",","@;2;3","PQX",MAGACT,"*","B","","","OUT2")
  1. . I '$D(OUT2("DILIST","1",0)) Q
  1. . S CNT=CNT+1
  1. . S MAGRY(CNT)=$P(MAGX,"^",2,3)_"^"_$P(OUT2("DILIST","1",0),"^",2,3)
  1. . Q
  1. S MAGRY(0)="0^"_(CNT-1)
  1. S MAGRY(1)="UID^DESCRIPTION^ACTION CODE^ACTION COMMENT"
  1. Q
  1. ;
  1. ;***** Update DICOM GATEWAY INSTRUMENT DICTIONARY file (#2006.911)
  1. ; from DICOM Gateway file (#2006.581)
  1. ; RPC: MAGV DICOM SET INSTRUMENT LIST
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; HOSTNAME - DICOM Gateway host name
  1. ; LOCATION - Identifies the institution where this DICOM Gateway computer resides
  1. ; MAGDATA - Data in DICOM Gateway file (#2006.581)
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error found during execution
  1. ; MAGRY = "-1^Error updating list"
  1. ; if success
  1. ; MAGRY = 0
  1. ;
  1. SETINSTR(MAGRY,HOSTNAME,LOCATION,MAGDATA) ; RPC [MAGV DICOM SET INSTRUMENT LIST]
  1. I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. E S X="ERR^MAGGTERR",@^%ZOSF("TRAP")
  1. N NOW,DA,DIK,D0,IENS,X,MAGNFDA,MAGNIEN,MAGNXE,ERR
  1. S MAGRY="-1^Error updating file (#2006.911)"
  1. I $G(HOSTNAME)="" S MAGRY="-1^No HostName provided." Q
  1. I '$G(LOCATION) S MAGRY="-1^No location provided." Q
  1. S HOSTNAME=$TR(HOSTNAME,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
  1. S NOW=$$HTFM^XLFDT($H)
  1. D FIND^DIC(2006.911,"","@;IX","PQX",HOSTNAME,"1","","","","X")
  1. I $D(X("DILIST","1",0)) D
  1. . S D0=$P(X("DILIST","1",0),"^",1)
  1. . S DIK="^MAGDICOM(2006.911,"
  1. . S DA=D0
  1. . D ^DIK
  1. . S MAGNIEN(1)=D0
  1. . Q
  1. S IENS="?+1,"
  1. S MAGNFDA(2006.911,IENS,.01)=HOSTNAME
  1. S MAGNFDA(2006.911,IENS,1)=LOCATION
  1. S MAGNFDA(2006.911,IENS,2)=NOW
  1. D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE")
  1. I $D(MAGNXE("DIERR","E")) Q ; MAGRY is set at the beginning
  1. S D0=MAGNIEN(1)
  1. S IENS="+1,"_D0_","
  1. S I=""
  1. S ERR=0
  1. F S I=$O(MAGDATA(I)) Q:(I="")!ERR D
  1. . K MAGNFDA,MAGNIEN,MAGNXE
  1. . S X=MAGDATA(I)
  1. . S MAGNFDA("2006.9112",IENS,".01")=$P(X,"^",1) ; "CR1"
  1. . S MAGNFDA("2006.9112",IENS,"2")=$P(X,"^",2) ; "Test CR"
  1. . S MAGNFDA("2006.9112",IENS,"3")=$P(X,"^",3) ;"RAD"
  1. . S MAGNFDA("2006.9112",IENS,"4")=$P(X,"^",4) ;"60100"
  1. . S MAGNFDA("2006.9112",IENS,"5")=$P(X,"^",5) ;"660"
  1. . S MAGNFDA("2006.9112",IENS,"6")=$P(X,"^",6) ;""
  1. . D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE")
  1. . I $D(MAGNXE("DIERR","E")) S ERR=1
  1. . Q
  1. I ERR Q ; MAGRY is set at the beginning
  1. ;
  1. S MAGRY=0
  1. Q
  1. ;
  1. ;***** Update DICOM GATEWAY MODALITY DICTIONARY file (#2006.912)
  1. ; from DICOM Gateway file (#2006.582)
  1. ; RPC: MAGV DICOM SET MODALITY LIST
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; HOSTNAME - DICOM Gateway host name
  1. ; LOCATION - Identifies the institution where this DICOM Gateway computer resides
  1. ; MAGDATA - Data in DICOM Gateway file (#2006.582)
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error found during execution
  1. ; MAGRY = "-1^Error updating list"
  1. ; if success
  1. ; MAGRY = "0"
  1. ;
  1. SETMODAL(MAGRY,HOSTNAME,LOCATION,MAGDATA) ; RPC [MAGV DICOM SET MODALITY LIST]
  1. I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. E S X="ERR^MAGGTERR",@^%ZOSF("TRAP")
  1. N NOW,DA,DIK,D0,IENS,X,MAGNFDA,MAGNIEN,MAGNXE,ERR
  1. S MAGRY="-1^Error updating file (#2006.912)"
  1. I $G(HOSTNAME)="" S MAGRY="-1^No HostName provided." Q
  1. I '$G(LOCATION) S MAGRY="-1^No location provided." Q
  1. S HOSTNAME=$TR(HOSTNAME,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
  1. S NOW=$$HTFM^XLFDT($H)
  1. D FIND^DIC(2006.912,"","@;IX","PQX",HOSTNAME,"1","","","","X")
  1. I $D(X("DILIST","1",0)) D
  1. . S D0=$P(X("DILIST","1",0),"^",1)
  1. . S DIK="^MAGDICOM(2006.912,"
  1. . S DA=D0
  1. . D ^DIK
  1. . S MAGNIEN(1)=D0
  1. . Q
  1. S IENS="?+1,"
  1. S MAGNFDA(2006.912,IENS,.01)=HOSTNAME
  1. S MAGNFDA(2006.912,IENS,1)=LOCATION
  1. S MAGNFDA(2006.912,IENS,2)=NOW
  1. D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE")
  1. I $D(MAGNXE("DIERR","E")) Q ; MAGRY is set at the beginning
  1. S D0=MAGNIEN(1)
  1. S IENS="+1,"_D0_","
  1. S I=""
  1. S ERR=0
  1. F S I=$O(MAGDATA(I)) Q:(I="")!ERR D
  1. . K MAGNFDA,MAGNIEN,MAGNXE
  1. . S X=MAGDATA(I)
  1. . S MAGNFDA("2006.9122",IENS,".01")=$P(X,"^",1)
  1. . S MAGNFDA("2006.9122",IENS,"2")=$P(X,"^",2)
  1. . S MAGNFDA("2006.9122",IENS,"3")=$P(X,"^",3)
  1. . S MAGNFDA("2006.9122",IENS,"4")=$P(X,"^",4)
  1. . S MAGNFDA("2006.9122",IENS,"5")=$P(X,"^",5)
  1. . S MAGNFDA("2006.9122",IENS,"6")=$P(X,"^",6)
  1. . S MAGNFDA("2006.9122",IENS,"7")=$P(X,"^",7)
  1. . S MAGNFDA("2006.9122",IENS,"8")=$P(X,"^",8)
  1. . S MAGNFDA("2006.9122",IENS,"9")=$P(X,"^",9)
  1. . D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE")
  1. . I $D(MAGNXE("DIERR","E")) S ERR=1
  1. . Q
  1. I ERR Q ; MAGRY is set at the beginning
  1. ;
  1. S MAGRY=0
  1. Q
  1. ;
  1. ;***** Return DGW email configuration entries from DICOM Gateway Mail (#2006.9191)
  1. ; RPC: MAGV GET DGW CONFIG
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; HOSTNAME - Host name;
  1. ; If HOSTNAME error message will be returned
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error found during execution
  1. ; MAGRY = "-1^Error message"
  1. ; if success
  1. ; MAGRY = HOSTNAME~MAILGROUP~POSTOFFICE~POSTPORT~IMPORTER~STATION NUMBER
  1. ;
  1. GETGWCFG(MAGRY,HOSTNAME) ;RPC [MAGV GET DGW CONFIG]
  1. N OUT,I,CNT,MAGNIEN,MAGNHOST,MAILGROUP,POSTOFFICE,POSTPORT,IMPORTER,SITEIEN,STATION
  1. N X
  1. I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
  1. E S X="ERR^MAGGTERR",@^%ZOSF("TRAP")
  1. S MAGRY="-1~Error getting DGW Config info"
  1. I $G(HOSTNAME)="" S MAGRY="-1~No HostName provided" Q
  1. S HOSTNAME=$TR(HOSTNAME,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
  1. D LIST^DIC(2006.9191,"","@;.01;1;2;3;4;5","PI","","","","","","","OUT")
  1. I $D(OUT("DIERR")) Q ; Error getting the list
  1. S I=0
  1. F S I=$O(OUT("DILIST",I)) Q:'+I D Q:HOSTNAME=MAGNHOST
  1. . S X=OUT("DILIST",I,0)
  1. . S MAGNIEN=$P(X,"^",1)
  1. . S MAGNHOST=$P(X,"^",2)
  1. . S MAILGROUP=$P(X,"^",3)
  1. . S POSTOFFICE=$P(X,"^",4)
  1. . S POSTPORT=$P(X,"^",5)
  1. . S IMPORTER=$P(X,"^",6)
  1. . S SITEIEN=$P(X,"^",7)
  1. . S STATION=$$STA^XUAF4(SITEIEN) ; IA #2171 Get Station Number
  1. . Q
  1. I HOSTNAME'=MAGNHOST D Q ; Check if HOSTNAME parameter matches return
  1. . S MAGRY="-1~HostName returned from DB,"_MAGNHOST_", doesn't match request."
  1. . Q
  1. ;
  1. S MAGRY="0~"_HOSTNAME_"~"_MAILGROUP_"~"_POSTOFFICE_"~"_POSTPORT_"~"_IMPORTER_"~"_STATION
  1. Q
  1. ;
  1. ;
  1. ;***** Set DGW email configuration entries into DICOM Gateway Mail (#2006.9191)
  1. ; RPC: MAGV SET DGW CONFIG
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; HOSTNAME
  1. ; MAILGROUP
  1. ; POSTOFFICE
  1. ; POSTPORT
  1. ; [IMPORTER]
  1. ; LOCATION
  1. ; If any of the input parameters are missing an error message will be returned.
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; 0 - Success
  1. ; -1 - Error
  1. ;
  1. SETGWCFG(MAGRY,HOSTNAME,MAILGROUP,POSTOFFICE,POSTPORT,IMPORTER,LOCATION) ; RPC [MAGV SET DGW CONFIG]
  1. I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. E S X="ERR^MAGGTERR",@^%ZOSF("TRAP")
  1. N NOW,IENS,X,MAGNFDA,MAGNXE
  1. S MAGRY="-1~Error updating file (#2006.9191)"
  1. I $G(HOSTNAME)="" S MAGRY="-1~No HostName provided." Q
  1. I $G(MAILGROUP)="" S MAGRY="-1~No MailGroup provided." Q
  1. I $G(POSTOFFICE)="" S MAGRY="-1~No PostOffice provided." Q
  1. I $G(POSTPORT)="" S MAGRY="-1~No PostPort provided." Q
  1. I $G(LOCATION)="" S MAGRY="-1~No Location provided." Q
  1. S HOSTNAME=$TR(HOSTNAME,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
  1. S NOW=$$HTFM^XLFDT($H)
  1. S IENS="?+1,"
  1. S MAGNFDA(2006.9191,IENS,.01)=HOSTNAME
  1. S MAGNFDA(2006.9191,IENS,1)=MAILGROUP
  1. S MAGNFDA(2006.9191,IENS,2)=POSTOFFICE
  1. S MAGNFDA(2006.9191,IENS,3)=POSTPORT
  1. S MAGNFDA(2006.9191,IENS,4)=$G(IMPORTER)
  1. S MAGNFDA(2006.9191,IENS,5)=LOCATION
  1. D UPDATE^DIE("SK","MAGNFDA","","MAGNXE")
  1. I $D(MAGNXE("DIERR","E")) Q ; MAGRY set at the beginning
  1. S MAGRY="0~DGW Config info update ok"
  1. Q