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

MAGQBUT6.m

Go to the documentation of this file.
  1. MAGQBUT6 ;WIOFO/RMP,JSL - Utility to Consolidate Redundant Network Location file Entries ; 17 JUL 2014 3:21 PM
  1. ;;3.0;IMAGING;**39,154**;Mar 19, 2002;Build 9;JUL 17, 2014
  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. CHKNAM(MAG) ; This is the input transform for the PLACE field in the Network location file.
  1. N IEN,PLACE,VALUE
  1. Q:'$D(MAG)
  1. I 'DUZ(2) D K X Q
  1. . D EN^DDIOL("You may only edit records for the configuration to which your login is associated!")
  1. . Q
  1. S PLACE=$$PLACE^MAGBAPI(+$G(DUZ(2)))
  1. I $D(DA),$P($G(^MAG(2005.2,DA,0)),U,10),PLACE'=$P($G(^MAG(2005.2,DA,0)),U,10) D K X Q
  1. . D EN^DDIOL("You may only edit records for the configuration to which your login is associated!")
  1. . Q
  1. S IEN="",VALUE=MAG
  1. F S IEN=$O(^MAG(2005.2,"B",VALUE,IEN)) Q:'IEN D
  1. . Q:$G(DA)=IEN
  1. . I $P($G(^MAG(2005.2,IEN,0)),U,10)=PLACE D
  1. . . D EN^DDIOL("Duplicate NAMES within the same VistA Imaging configuration (PLACE) is not allowed.")
  1. . . K X
  1. . . Q
  1. . Q
  1. Q
  1. CHKNET(MAG) ; This is the input transform for the share path (PHYSICAL REFERENCE FIELD #1) in the network location file.
  1. N UPPER,VALUE,PLACE,TABLE,IEN,TEMP,FAILED ; should convert all physical reference values to upper case
  1. Q:'$D(MAG)
  1. I '$G(DUZ(2)) D K X Q
  1. . D EN^DDIOL("You may only edit records for the configuration to which your login is associated!")
  1. . Q
  1. S VALUE="",PLACE=$$PLACE^MAGBAPI(+$G(DUZ(2)))
  1. I PLACE'=$P($G(^MAG(2005.2,DA,0)),U,10),DA'["+1" D K X Q
  1. . D EN^DDIOL("You may only edit records for the configuration to which your login is associated!")
  1. . Q
  1. S UPPER=$$UPPER^MAGQE4(MAG),FAILED=""
  1. Q:$P($G(^MAG(2005.2,DA,0)),U,7)["EKG" ;Allow to shared duplicate MUSE
  1. F S VALUE=$O(^MAG(2005.2,"G",PLACE,VALUE)) Q:VALUE="" D Q:'$D(X)
  1. . I UPPER=$$UPPER^MAGQE4(VALUE) D
  1. . . S IEN=""
  1. . . F S IEN=$O(^MAG(2005.2,"G",PLACE,VALUE,IEN)) Q:'IEN D Q:FAILED
  1. . . . S TEMP=$P(^MAG(2005.2,IEN,0),U,7)_U_$P(^MAG(2005.2,IEN,0),U,8)_U_$P(^MAG(2005.2,IEN,0),U,9)
  1. . . . I $D(TABLE(TEMP)) S FAILED=1 Q
  1. . . . S TABLE(TEMP)=""
  1. . . . Q
  1. . . I +FAILED D Q
  1. . . D EN^DDIOL("Duplicate PHYSICAL REFERENCE values within the same VistA Imaging configuration (PLACE) is not allowed.")
  1. . . K X
  1. . . Q
  1. . Q
  1. K TABLE
  1. Q
  1. CONSHR ; This is the interface for the Consolidate redundant shares utility
  1. N LIST,EN,ENTRY,FLDAR,PLACE
  1. S PLACE=$O(^MAG(2006.1,"B",$$KSP^XUPARAM("INST"),""))
  1. D GETRL^MAGQBU6A(.LIST) ; Get Redundant List (of shares) where the path is the same.
  1. S EN=$O(LIST("")) I EN="" D Q
  1. . D PMSG("======================================================================")
  1. . D DFNIQ^MAGQBPG1(""," Production Account: "_$$PROD^XUPROD("1"),0,PLACE,"Consolidate Shares")
  1. . D PMSG(" Imaging patch MAG*3.0*39 found no redundant Network Location shares to consolidate.")
  1. . D DFNIQ^MAGQBPG1("","Installation: Redundant Network Location Utility",1,PLACE,"Consolidate Shares")
  1. . Q
  1. D PMSG("======================================================================")
  1. D DFNIQ^MAGQBPG1(""," Production Account: "_$$PROD^XUPROD("1"),0,PLACE,"Consolidate Shares")
  1. D PMSG("Redundant Share List ")
  1. D PMSG("(Share ^ Hash ^ Place) Prime IEN ^ 2nd IEN ...")
  1. S EN="" F S EN=$O(LIST(EN)) Q:EN="" D PMSG("("_EN_")"_LIST(EN))
  1. D PMSG("======================================================================")
  1. D PMSG("")
  1. D PMSG("Here is the list of shares that will be consolidated")
  1. D PMSG("The share references that exist in both the 2005, 2005.1 & 2006.035 files")
  1. D PMSG("will be reset to the PRIME share entry. ")
  1. D DSPNL^MAGQBU6A ; Display the original Network Location file
  1. D FAR(.FLDAR) ; Setup File/Node/Piece Table for FieldNumbers
  1. ;The following is being performed during the post install phase.
  1. ;D PRIME(.LIST) ; If any like shares are on - set the prime shares on
  1. D SFRP(.LIST) ; DESTINATION field (#1) of the SEND QUEUE File (#2006.035)
  1. ;The following is being performed during the post install phase.
  1. ;D SPRR(.LIST) ; Site Parameter file re-reference (#.03,.07,.08,1.02,1.03,2.01,52,53,55)
  1. S ENTRY=0 D RSREF(.LIST,ENTRY) ; Consolidate references
  1. D RLOC^MAGQBU6A(.LIST) ; Delete Network Location file entry
  1. D REQDUP^MAGQBU6A ; rename any duplicate .01 network location entries.
  1. D REPNAM^MAGQBU6A ;Report residual duplicate names
  1. D DFNIQ^MAGQBPG1("","Installation: Redundant Network Location Utility",1,PLACE,"Consolidate Shares")
  1. K LIST
  1. K ^TMP($J,"MAGQDFN")
  1. Q
  1. PRIME(LIST) ; If any like shares are on - set the prime shares on
  1. N EMSG,EN,PC,FDA,MSG,PTMP,TMP
  1. S EN="" F S EN=$O(LIST(EN)) Q:EN="" D
  1. . S PTMP=$P(^MAG(2005.2,($P(LIST(EN),U)),0),U,6) Q:PTMP D
  1. . . S FDA(2005.2,$P(LIST(EN),U,1)_",",5)="1"
  1. . . D FILE^DIE("I","FDA","MSG")
  1. . . I $D(MSG("DIERR")) D PMSG("Prime entry: '"_IEN_" failed to be set online. "_MSG("DIERR",1,"TEXT",1)) D Q
  1. . . . K FDA,MSG
  1. . . . Q
  1. . . S EMSG="Prime entry "_$P(^MAG(2005.2,$P(LIST(EN),U),0),U)_", ^MAG(2005.2,"_$P(LIST(EN),U)_",0), was set to Online."
  1. . . D DFNIQ^MAGQBPG1("",EMSG,0,PLACE,"Consolidate Shares")
  1. . . K FDA,MSG
  1. . . Q
  1. . Q
  1. Q
  1. SPRR(LIST) ; Site Parameter file re-reference (#.03,.07,.08,1.02,1.03,2.01,52,53,55)
  1. N EN,FDA,NEW,MSG,OLD,PC,MSG,TMP,VALUE
  1. S EN=0 F S EN=$O(^MAG(2006.1,EN)) Q:'EN D
  1. . ; fields: .03,.07,.08
  1. . F PC=3,7,8 S (VALUE,TMP)=$P($G(^MAG(2006.1,EN,0)),U,PC) D
  1. . . S VALUE=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . S FDA(2006.1,EN_",",FLDAR(2006.1,0,PC))=VALUE
  1. . . . D FILE^DIE("I","FDA","MSG")
  1. . . . I $D(MSG("DIERR")) D Q
  1. . . . . D PMSG("Site Parameter Filing Error for IEN: "_IEN_MSG("DIERR",1,"TEXT",1)) K FDA,MSG
  1. . . . . Q
  1. . . . S FLD=$P(FLDAR(2006.1,0,PC),"^"),OLD=$P(^MAG(2005.2,TMP,0),"^"),NEW=$P(^MAG(2005.2,VALUE,0),"^")
  1. . . . D PMSG("Field #"_FLDAR(2006.1,0,PC)_" Value: "_OLD_" Changed to New Value: "_NEW)
  1. . . . D PMSG("^MAG(2006.1,"_EN_",0)"_" Piece "_PC) K FDA,MSG
  1. . . . Q
  1. . . Q
  1. . ; fields: 1.02, 1.03
  1. . F PC=2,3 S (VALUE,TMP)=$P($G(^MAG(2006.1,EN,"PACS")),U,PC) D
  1. . . S VALUE=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . S FDA(2006.1,EN_",",FLDAR(2006.1,"PACS",PC))=VALUE
  1. . . . D FILE^DIE("I","FDA","MSG")
  1. . . . I $D(MSG("DIERR")) D Q
  1. . . . . D PMSG("Site Parameter Filing Error for IEN: "_EN_MSG("DIERR",1,"TEXT",1)) K FDA,MSG
  1. . . . . Q
  1. . . . S OLD=$P(^MAG(2005.2,TMP,0),"^"),NEW=$P(^MAG(2005.2,VALUE,0),"^")
  1. . . . D PMSG("Field #"_FLDAR(2006.1,"PACS",PC)_" Value: "_OLD_" Changed to New Value: "_NEW)
  1. . . . D PMSG("^MAG(2006.1,"_EN_",PACS)"_" Piece "_PC) K FDA,MSG
  1. . . . Q
  1. . . Q
  1. . ; field: 2.01
  1. . S (VALUE,TMP)=$P($G(^MAG(2006.1,EN,1)),U,6) D
  1. . . S VALUE=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . S FDA(2006.1,EN_",",FLDAR(2006.1,1,6))=VALUE
  1. . . . D FILE^DIE("I","FDA","MSG")
  1. . . . I $D(MSG("DIERR")) D Q
  1. . . . . D PMSG("Site Parameter Filing Error for IEN: "_EN_" "_MSG("DIERR",1,"TEXT",1)) K FDA,MSG
  1. . . . . Q
  1. . . . S OLD=$P(^MAG(2005.2,TMP,0),"^"),NEW=$P(^MAG(2005.2,VALUE,0),"^")
  1. . . . D PMSG("Field #"_FLDAR(2006.1,1,6)_" Value: "_OLD_" Changed to New Value: "_NEW)
  1. . . . D PMSG("^MAG(2006.1,"_EN_",1)"_" Piece "_6) K FDA,MSG
  1. . . . Q
  1. . . Q
  1. . ; fields: 52,53,55
  1. . F PC=3,4,5 S (VALUE,TMP)=$P($G(^MAG(2006.1,EN,"NET")),U,PC) D
  1. . . S VALUE=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . S FDA(2006.1,EN_",",FLDAR(2006.1,"NET",PC))=VALUE
  1. . . . D FILE^DIE("I","FDA","MSG")
  1. . . . I $D(MSG("DIERR")) D Q
  1. . . . . D PMSG("Site Parameter Filing Error for IEN: "_EN_" "_MSG("DIERR",1,"TEXT",1)) K FDA,MSG
  1. . . . . Q
  1. . . . S OLD=$P(^MAG(2005.2,TMP,0),"^"),NEW=$P(^MAG(2005.2,VALUE,0),"^")
  1. . . . D PMSG("Field #"_FLDAR(2006.1,"NET",PC)_" Value: "_OLD_" Changed to New Value: "_NEW)
  1. . . . D PMSG("^MAG(2006.1,"_EN_",NET)"_" Piece "_PC) K FDA,MSG
  1. . . . Q
  1. . . Q
  1. . Q
  1. Q
  1. SFRP(LIST) ; DESTINATION field (#1) of the SEND QUEUE File (#2006.035).
  1. N EN,VALUE,TMP,FDA,MSG,TEXT,TMP,OLD
  1. S EN=0 F S EN=$O(^MAGQUEUE(2006.035,EN)) Q:'EN D
  1. . I $P($P($G(^MAGQUEUE(2006.035,EN,0)),U,2),";",2)="MAG(2005.2," D
  1. . . S (VALUE,TMP)=$P($P($G(^MAGQUEUE(2006.035,EN,0)),U,2),";",1)
  1. . . S VALUE=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . S TMP=$P($G(^MAGQUEUE(2006.035,EN,0)),U,2),OLD=$P(TMP,";"),$P(TMP,";")=VALUE
  1. . . . S $P(^MAGQUEUE(2006.035,EN,0),U,2)=TMP,OLD=$P(^MAG(2005.2,OLD,0),U),NEW=$P(^MAG(2005.2,VALUE,0),U)
  1. . . . S TEXT=("DESTINATION (#1) value: "_OLD_" changed to: "_NEW)
  1. . . . S ^XTMP("MAGP39","IMAGEFILE",2006.035,EN,1)=TEXT
  1. . . . Q
  1. . . Q
  1. . Q
  1. Q
  1. RSREF(LIST,IEN) ; Consolidate references
  1. N GL,IEN,IENS,NODE,PIECE,FNUM,VALUE,SIEN,SPIECE,SNODE,FLD,SUB,MSG,FDA,TMP,TEXT
  1. S GL="",IEN=$S(+$G(IEN):IEN,1:0)
  1. F D SCAN^MAGQBPG1(.IEN,"F",.GL) D Q:'IEN
  1. . Q:'IEN
  1. . S FNUM=$S(GL[2005.1:2005.1,GL[2005:2005,1:"")
  1. . S NODE=$G(^MAG(FNUM,IEN,0))
  1. . F PIECE=3,4,5 S (VALUE,TMP)=$P(NODE,U,PIECE) D:VALUE
  1. . . S VALUE=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . S FDA(FNUM,IEN_",",FLDAR(FNUM,0,PIECE))=VALUE
  1. . . . D FILE^DIE("I","FDA","MSG")
  1. . . . I $D(MSG("DIERR")) D Q
  1. . . . . D PMSG($S(FNUM=2005:"Image File",1:"Image Archive")_" Filing Error for entry: "_IEN_MSG("DIERR",1,"TEXT",1)) K FDA,MSG
  1. . . . . Q
  1. . . . S TEXT="FIELD #"_FLDAR(FNUM,0,PIECE)_" value: "_TMP_" changed to: "_VALUE
  1. . . . S ^XTMP("MAGP39","IMAGEFILE",FNUM,IEN,$G(FLDAR(FNUM,0,PIECE)))=TEXT
  1. . . . Q
  1. . . Q
  1. . S NODE=$G(^MAG(FNUM,IEN,"FBIG"))
  1. . F PIECE=1,2 S VALUE=$P(NODE,U,PIECE) D:VALUE
  1. . . S (VALUE,TMP)=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . S FDA(FNUM,IEN_",",FLDAR(FNUM,"FBIG",PIECE))=VALUE
  1. . . . D FILE^DIE("I","FDA","MSG")
  1. . . . I $D(MSG("DIERR")) D Q
  1. . . . . D PMSG($S(FNUM=2005:"Image File",1:"Image Archive")_" Filing Error for IEN: "_IEN_MSG("DIERR",1,"TEXT",1)) K FDA,MSG
  1. . . . . Q
  1. . . . S TEXT="FIELD #"_FLDAR(FNUM,"FBIG",PIECE)_" Value: "_TMP_" changed to: "_VALUE
  1. . . . S ^XTMP("MAGP39","IMAGEFILE",FNUM,IEN,$G(FLDAR(FNUM,"FBIG",PIECE)))=TEXT
  1. . . . Q
  1. . . Q
  1. . F SNODE=4,5,6 I $D(^MAG(FNUM,IEN,SNODE)) D ;ROUTING TIMESTAMP, EXPORT LOCATION, ROUTING LOG
  1. . . S SIEN=0,SPIECE=$S(SNODE=4:2,SNODE=5:1,SNODE=6:2) F S SIEN=$O(^MAG(FNUM,IEN,SNODE,SIEN)) Q:'SIEN D
  1. . . . S (VALUE,TMP)=$P($G(^MAG(FNUM,IEN,SNODE,SIEN,0)),U,SPIECE)
  1. . . . S VALUE=$$FRP(VALUE,.LIST) I VALUE D
  1. . . . . I SNODE=4,FNUM=2005 S SUB=2005.0106
  1. . . . . I SNODE=4,FNUM=2005.1 S SUB=2005.1106
  1. . . . . I SNODE=5,FNUM=2005 S SUB=2005.01
  1. . . . . I SNODE=5,FNUM=2005.1 S SUB=2005.11
  1. . . . . I SNODE=6,FNUM=2005 S SUB=2005.0111
  1. . . . . I SNODE=6,FNUM=2005.1 S SUB=2005.1111
  1. . . . . S IENS=SIEN_","_IEN_","
  1. . . . . S FDA(SUB,IENS,FLDAR(SUB,0,SPIECE))=VALUE
  1. . . . . D FILE^DIE("I","FDA","MSG")
  1. . . . . I $D(MSG("DIERR")) D Q
  1. . . . . . D PMSG($S(FNUM=2005:"Image File",1:"Image Archive")_" Filing Error for IEN: "_IEN_MSG("DIERR",1,"TEXT",1)) K FDA,MSG
  1. . . . . . Q
  1. . . . . S TEXT=SUB_" FIELD #"_FLDAR(SUB,0,SPIECE)_" value: "_TMP_" changed to: "_VALUE
  1. . . . . S ^XTMP("MAGP39","IMAGEFILE",FNUM,IEN,SUB_$G(FLDAR(SUB,0,SPIECE)))=TEXT
  1. . . . . Q
  1. . . . Q
  1. . . Q
  1. . S ^XTMP("MAGP39","DUPSHARE","LAST")=IEN
  1. . Q
  1. Q
  1. FRP(IEN,LIST) ;Find entry number in list and return the primary
  1. N EN,PN,PC
  1. S EN="",PN=0 F S EN=$O(LIST(EN)) Q:EN="" D Q:PN
  1. . I (U_$P(LIST(EN),U,2,99)_U)[(U_IEN_U) S PN=$P(LIST(EN),U)
  1. . Q
  1. Q PN
  1. PMSG(TXT) ; Display to Screen and Build E-MAIL content
  1. D DFNIQ^MAGQBPG1("",TXT,0,PLACE,"Consolidate Shares")
  1. Q
  1. FAR(FLDAR) ; Setup File/Node/Piece Table for FieldNumbers
  1. S FLDAR(2006.1,0,3)=.03
  1. S FLDAR(2006.1,0,7)=.07
  1. S FLDAR(2006.1,0,8)=.08
  1. S FLDAR(2006.1,1,6)=2.01
  1. S FLDAR(2006.1,"PACS",2)=1.02
  1. S FLDAR(2006.1,"PACS",3)=1.03
  1. S FLDAR(2006.1,"NET",3)=52
  1. S FLDAR(2006.1,"NET",4)=53
  1. S FLDAR(2006.1,"NET",5)=55
  1. S FLDAR(2005,0,3)=2
  1. S FLDAR(2005,0,4)=2.1
  1. S FLDAR(2005,0,5)=2.2
  1. S FLDAR(2005,"FBIG",1)=102
  1. S FLDAR(2005,"FBIG",2)=103
  1. S FLDAR(2005.1,0,3)=2
  1. S FLDAR(2005.1,0,4)=2.1
  1. S FLDAR(2005.1,0,5)=2.2
  1. S FLDAR(2005.1,"FBIG",1)=102
  1. S FLDAR(2005.1,"FBIG",2)=103
  1. S FLDAR(2005.0106,0,2)=2
  1. S FLDAR(2005.1106,0,2)=2
  1. S FLDAR(2005.01,0,1)=.01
  1. S FLDAR(2005.11,0,1)=.01
  1. S FLDAR(2005.0111,0,2)=2
  1. S FLDAR(2005.1111,0,2)=2
  1. Q
  1. RTRS ;Check to see if any network locations are routers & send an email
  1. N EN,IEN,IENS,NLIST,PRIME,RTR,SITE
  1. D GETRL^MAGQBU6A(.NLIST) S PLACE=$O(^MAG(2006.1,"B",$$KSP^XUPARAM("INST"),""))
  1. S EN=$O(NLIST("")) I EN="" Q ;No duplicate network locations.
  1. S (RTR,EN)="" F S EN=$O(NLIST(EN)) Q:EN="" F PC=2:1:$L(NLIST(EN),U) D
  1. . I $P(^MAG(2005.2,+$P(NLIST(EN),U,PC),0),U,9) S RTR(EN)=$G(NLIST(EN)) Q
  1. . Q
  1. S EN=$O(RTR("")) I EN="" Q ;No duplicate router network locations.
  1. D RMSG S EN="" F S EN=$O(RTR(EN)) Q:EN="" D
  1. . S IEN=$P(RTR(EN),U),PRIME=$P(^MAG(2005.2,+IEN,0),U),SITE=$P(^MAG(2005.2,+IEN,0),U,10)
  1. . D PMSG("Prime entry is IEN:"_IEN_" Name: "_PRIME_" "_$P(^MAG(2005.2,+IEN,0),U,2)_" SITE: "_$P(^MAG(2006.1,+SITE,0),U))
  1. . D PMSG(" Duplicate entries that are marked for deletion: ") F PC=2:1:$L(RTR(EN),U) D
  1. . . D PMSG(" IEN: "_+$P(RTR(EN),U,PC)_" Name: "_$P(^MAG(2005.2,+$P(RTR(EN),"^",PC),0),U))
  1. . . Q
  1. . Q
  1. D:$G(PRIME)]"" DFNIQ^MAGQBPG1("","Installation: Possible Duplicate Router Shares",1,PLACE,"Consolidate Shares")
  1. Q
  1. RMSG ;
  1. D PMSG("The following entries may be defined as 'ROUTERS'.")
  1. D PMSG("Review the ROUTE.DIC file on each Routing DICOM Gateway")
  1. D PMSG("and replace any duplicate entries with prime entries.")
  1. D PMSG("======================================================================")
  1. Q