AVAP15 ;IHS/OIRM/DSD/AEF - PATCH AVA*93.2*15 RESTORE X-REFS ON FILE 200 FOR KERNEL UPDATE [ 01/28/2003 4:14 PM ]
;;93.2;VA SUPPORT FILES;**15**;JAN 31, 2003;Build 12
;
;This is a special patch for the FileMan22/Kernel Update. Some of
;the Kernel patches deleted or reset some of the IHS crossreferences
;on the New Person file #200 and the Institution file #4. This routine
;resets the IHS crossreferences. It also restores the trigger and
;crossreferences on the .01 field of file 200 used to keep files
;3-16-200 in sync. These are restored because some IHS sites may
;not have done the File 200 Conversion or may have local packages
;still pointing to files 3 or 16.
;
EN ;EP -- MAIN ENTRY POINT
;
D X401AD
D X20001
D X200535
Q
X401AD ;----- RESET AD X-REF IN INSTITUTION FILE
;ADDS QUIT TO SET AND KILL LOGIC TO PREVENT DELETION OF THE LOCATION
;FILE ENTRY WHEN A NAME IS CHANGED IN THE INSTITUTION FILE
;
I $D(^DD(4,.01,1,3,1)) D
. S ^DD(4,.01,1,3,1)="Q ;I $D(^AUTTLOC(0))#2 N DIC,DD,DO,DINUM S DIC=""^AUTTLOC("",DIC(0)="""",(X,DINUM)=DA D FILE^DICN"
. S ^DD(4,.01,1,3,2)="Q ;I $D(^AUTTLOC(0))#2 N DIK S DIK=""^AUTTLOC("" D ^DIK"
Q
X20001 ;----- KILL AND RESET THE CROSSREFERENCES ON .01 FIELD OF FILE 200
;
;----- KILL X-REFS
;
K ^DD(200,.01,1)
;
;----- SET TOP ZERO NODE
;
S ^DD(200,.01,1,0)="^.1"
;
1 ;----- SET "B" XREF #1
;
S ^DD(200,.01,1,1,0)="200^B"
S ^DD(200,.01,1,1,1)="S ^VA(200,""B"",$E(X,1,30),DA)="""""
S ^DD(200,.01,1,1,2)="K ^VA(200,""B"",$E(X,1,30),DA)"
;
2 ;----- SET "AE" XREF #2
;
S ^DD(200,.01,1,2,0)="200^AE^MUMPS"
S ^DD(200,.01,1,2,1)="S X1=$P($G(^VA(200,DA,1)),""^"",8) I X1="""" S $P(^VA(200,DA,1),""^"",7,8)=DT_""^""_DUZ"
S ^DD(200,.01,1,2,2)="Q"
S ^DD(200,.01,1,2,3)="Stuffing Creator and date"
S ^DD(200,.01,1,2,"%D",0)="^^1^1^2990617^^"
S ^DD(200,.01,1,2,"%D",1,0)="This X-ref stuffs the DATE ENTERED and CREATOR fields on a new entry."
S ^DD(200,.01,1,2,"DT")="2990617"
;
3 ;----- SET "AF" XREF #3
;
S ^DD(200,.01,1,3,0)="200^AF^MUMPS"
S ^DD(200,.01,1,3,1)="S $P(^VA(200,DA,20),""^"",2)=$P(X,"","",2)_"" ""_$P(X,"","",1)"
S ^DD(200,.01,1,3,2)="Q"
S ^DD(200,.01,1,3,3)="Stuff SIGNATURE BLOCK PRINTED NAME"
;
5 ;----- SET "BS5" XREF #5
;
S ^DD(200,.01,1,5,0)="200^BS5^MUMPS"
S ^DD(200,.01,1,5,1)="Q:$P($G(^VA(200,DA,1)),U,9)']"""" S ^VA(200,""BS5"",$E(X,1)_$E($P(^(1),U,9),6,9),DA)="""""
S ^DD(200,.01,1,5,2)="Q:$P($G(^VA(200,DA,1)),U,9)']"""" K ^VA(200,""BS5"",$E(X,1)_$E($P(^(1),U,9),6,9),DA)"
S ^DD(200,.01,1,5,3)="Special BS5 lookup X-ref"
S ^DD(200,.01,1,5,"%D",0)="^^3^3^2990617^^"
S ^DD(200,.01,1,5,"%D",1,0)="This X-ref builds the 'BS5' X-ref on name changes."
S ^DD(200,.01,1,5,"%D",2,0)="The BS5 is the first letter of the last name concatinated with the last"
S ^DD(200,.01,1,5,"%D",3,0)="four digits of the SSN."
;
8 ;----- SET "AG" XREF #8
;
S ^DD(200,.01,1,8,0)="200^AG^MUMPS"
S ^DD(200,.01,1,8,1)="F X1=0:0 S X1=$O(^VA(200,""AB"",X1)) Q:X1'>0 I $D(^VA(200,""AB"",X1,DA)),$S($D(^DIC(19.1,X1,0)):$P(^(0),U,3)[""l"",1:0) S X2=^(0),^VA(200,""AK.""_$P(X2,U),X,DA)="""""
S ^DD(200,.01,1,8,2)="S X1=""AK."" F X2=0:0 S X1=$O(^VA(200,X1)) Q:$E(X1,3)'=""."" K ^VA(200,X1,X,DA)"
S ^DD(200,.01,1,8,3)="Updates the AK.key special lookup X-ref."
S ^DD(200,.01,1,8,"%D",0)="^^1^1^2920513^"
S ^DD(200,.01,1,8,"%D",1,0)="Builds the AK.key special lookup X-ref when there is a name change."
S ^DD(200,.01,1,8,"DT")="2890929"
;
9 ;----- SET "ASX" XREF #9
;
S ^DD(200,.01,1,9,0)="200^ASX^MUMPS"
S ^DD(200,.01,1,9,1)="S ^VA(200,""ASX"",$$EN^XUA4A71(X),DA)="""""
S ^DD(200,.01,1,9,2)="K ^VA(200,""ASX"",$$EN^XUA4A71(X),DA)"
S ^DD(200,.01,1,9,3)="LAYGO SOUNDEX X-REF"
S ^DD(200,.01,1,9,"%D",0)="^^3^3^2920513^^"
S ^DD(200,.01,1,9,"%D",1,0)="This builds a soundex X-ref so that a check for simular names can be"
S ^DD(200,.01,1,9,"%D",2,0)="done at the time of LAYGOing to the file."
S ^DD(200,.01,1,9,"%D",3,0)="It calls XUA4A71 to convert X. The LAYGO test calls XUA4A7."
S ^DD(200,.01,1,9,"DT")="2920117"
;
10 ;----- SET BULLETIN XREF #10
;
S ^DD(200,.01,1,10,0)="^^BULLETIN MESSAGE"
S ^DD(200,.01,1,10,1)="S Y(0)=X,D0=DA Q:$P($G(^VA(200,D0,1)),U,7)'=DT K XMB,XMY S XMB(1)=Y(0),XMB=""XMNEWUSER"" D ^XMB:$D(^XMB(3.6,""B"",XMB)) K Y,XMB"
S ^DD(200,.01,1,10,2)="Q"
S ^DD(200,.01,1,10,3)="New User Bulletin"
S ^DD(200,.01,1,10,"%D",0)="^^1^1^3000719^"
S ^DD(200,.01,1,10,"%D",1,0)="This bulletin is sent whenever a new user is added to the New Person file."
S ^DD(200,.01,1,10,"CREATE CONDITION")="#30=TODAY"
S ^DD(200,.01,1,10,"CREATE PARAMETER #1")="NAME"
S ^DD(200,.01,1,10,"CREATE VALUE")="XMNEWUSER"
S ^DD(200,.01,1,10,"DELETE VALUE")="NO EFFECT"
S ^DD(200,.01,1,10,"DT")="3000719"
;
11 ;----- SET RAI MDS MONITOR TRIGGER #11
;
S ^DD(200,.01,1,11,0)="^^TRIGGER^46.11^.02"
S ^DD(200,.01,1,11,1)="Q"
S ^DD(200,.01,1,11,2)="K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(0)=X S X=$P($G(^DG(43,1,""HL7"")),U,4)=1 I X S X=DIV X ^DD(200,.01,1,11,89.2) S Y(101)=$S($D(^DGRU(46.11,D0,0)):^(0),1:"""") S X=$P(Y(101),U,2) S D0=I(0,0) S DIU=X K Y S X=DIV S X=X X ^DD(200,.01,1,11,2.4)"
S ^DD(200,.01,1,11,2.4)="S DIH=$S($D(^DGRU(46.11,DIV(0),0)):^(0),1:""""),DIV=X I $D(^(0)) S $P(^(0),U,2)=DIV,DIH=46.11,DIG=.02 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
S ^DD(200,.01,1,11,89.2)="S I(0,0)=$S($D(D0):D0,1:""""),Y(1)=$S($D(^VA(200,D0,0)):^(0),1:"""") S X=$P(Y(1),U,1),X=X S X=X K DIC S DIC=""^DGRU(46.11,"",DIC(0)=""NMFL"",X=""""""""_X_"""""""" D ^DIC S (D,D0,DIV(0))=+Y"
S ^DD(200,.01,1,11,"%D",0)="^^2^2^2991018^"
S ^DD(200,.01,1,11,"%D",1,0)="Trigger the Name field before it was changed into the RAI MDS MONITOR"
S ^DD(200,.01,1,11,"%D",2,0)="file whenever the Name field of the New Person file is added or changed."
S ^DD(200,.01,1,11,"CREATE VALUE")="NO EFFECT"
S ^DD(200,.01,1,11,"DELETE CONDITION")="S X=$P($G(^DG(43,1,""HL7"")),U,4)=1"
S ^DD(200,.01,1,11,"DELETE VALUE")="OLD NAME"
S ^DD(200,.01,1,11,"DIC")="LOOKUP"
S ^DD(200,.01,1,11,"DT")="2991018"
S ^DD(200,.01,1,11,"FIELD")="NAME:RAI MDS MONITOR:#.02"
;
12 ;----- SET RAI MDS MONITOR TRIGGER #12
;
S ^DD(200,.01,1,12,0)="^^TRIGGER^46.11^.03"
S ^DD(200,.01,1,12,1)="K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(0)=X S X=$P($G(^DG(43,1,""HL7"")),U,4)=1 I X S X=DIV X ^DD(200,.01,1,12,89.2) S Y(101)=$S($D(^DGRU(46.11,D0,0)):^(0),1:"""") S X=$P(Y(101),U,3) S D0=I(0,0) S DIU=X K Y S X=DIV S X=200 X ^DD(200,.01,1,12,1.4)"
S ^DD(200,.01,1,12,1.4)="S DIH=$S($D(^DGRU(46.11,DIV(0),0)):^(0),1:""""),DIV=X I $D(^(0)) S $P(^(0),U,3)=DIV,DIH=46.11,DIG=.03 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
S ^DD(200,.01,1,12,2)="Q"
S ^DD(200,.01,1,12,89.2)="S I(0,0)=$S($D(D0):D0,1:""""),Y(1)=$S($D(^VA(200,D0,0)):^(0),1:"""") S X=$P(Y(1),U,1),X=X S X=X K DIC S DIC=""^DGRU(46.11,"",DIC(0)=""NMFL"" D ^DIC S (D,D0,DIV(0))=+Y"
S ^DD(200,.01,1,12,"%D",0)="^^2^2^2991018^"
S ^DD(200,.01,1,12,"%D",1,0)="Trigger the New Person file number (#200) into the RAI MDS MONITOR"
S ^DD(200,.01,1,12,"%D",2,0)="file whenever the New Person name field is added or changed."
S ^DD(200,.01,1,12,"CREATE CONDITION")="S X=$P($G(^DG(43,1,""HL7"")),U,4)=1"
S ^DD(200,.01,1,12,"CREATE VALUE")="S X=200"
S ^DD(200,.01,1,12,"DELETE VALUE")="NO EFFECT"
S ^DD(200,.01,1,12,"DIC")="LOOKUP"
S ^DD(200,.01,1,12,"DT")="2991018"
S ^DD(200,.01,1,12,"FIELD")="NAME:RAI MDS MONITOR:#.03"
;
13 ;----- SET RAI MDS MONITOR TRIGGER #13
;
S ^DD(200,.01,1,13,0)="^^TRIGGER^46.11^.04"
S ^DD(200,.01,1,13,1)="K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(0)=X S X=$P($G(^DG(43,1,""HL7"")),U,4)=1 I X S X=DIV X ^DD(200,.01,1,13,89.2) S Y(101)=$S($D(^DGRU(46.11,D0,0)):^(0),1:"""") S X=$P(Y(101),U,4) S D0=I(0,0) S DIU=X K Y S X=DIV S X=DA X ^DD(200,.01,1,13,1.4)"
S ^DD(200,.01,1,13,1.4)="S DIH=$S($D(^DGRU(46.11,DIV(0),0)):^(0),1:""""),DIV=X I $D(^(0)) S $P(^(0),U,4)=DIV,DIH=46.11,DIG=.04 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
S ^DD(200,.01,1,13,2)="Q"
S ^DD(200,.01,1,13,89.2)="S I(0,0)=$S($D(D0):D0,1:""""),Y(1)=$S($D(^VA(200,D0,0)):^(0),1:"""") S X=$P(Y(1),U,1),X=X S X=X K DIC S DIC=""^DGRU(46.11,"",DIC(0)=""NMF"" D ^DIC S (D,D0,DIV(0))=+Y"
S ^DD(200,.01,1,13,"%D",0)="^^2^2^2991018^"
S ^DD(200,.01,1,13,"%D",1,0)="Trigger the internal entry number of the entry which was changed or added"
S ^DD(200,.01,1,13,"%D",2,0)="in the New Person file, into the RAI MDS MONITOR file."
S ^DD(200,.01,1,13,"CREATE CONDITION")="S X=$P($G(^DG(43,1,""HL7"")),U,4)=1"
S ^DD(200,.01,1,13,"CREATE VALUE")="S X=DA"
S ^DD(200,.01,1,13,"DELETE VALUE")="NO EFFECT"
S ^DD(200,.01,1,13,"DIC")="LOOKUP"
S ^DD(200,.01,1,13,"DT")="2991018"
S ^DD(200,.01,1,13,"FIELD")="NAME:RAI MDS MONITOR:#.04"
;
90007 ;----- SET TRIGGER IN FILE 200 TO KEEP FILES 3-6-16-200 IN SYNC
; THIS USED TO BE TRIGGER #7 BEFORE THE FILE 200 CONVERSION
; AND BEFORE THE KERNEL PATCHES DELETED IT
;
S ^DD(200,.01,1,90007,0)="^^TRIGGER^16^.01"
S ^DD(200,.01,1,90007,1)="K DIV S DIV=X,(D0,DIV(0))=DA X ^DD(200,.01,1,90007,89.2) S DIU=$S($D(^DIC(16,D0,0)):$P(^(0),""^"",1),1:""""),D0=DA K Y S X=DIV X ^DD(200,.01,1,90007,1.4)"
S ^DD(200,.01,1,90007,1.4)="S DIH=$S($D(^DIC(16,DIV(0),0)):$P(^(0),""^"",1),1:"""") I DIH'=DIV,$D(^(0)) S $P(^(0),U,1)=DIV,DIH=16,DIG=.01 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
S ^DD(200,.01,1,90007,2)="Q"
S ^DD(200,.01,1,90007,3)="Edited trigger"
S ^DD(200,.01,1,90007,89.2)="S Y=$S($D(^DIC(3,D0,0))#2:$P(^(0),""^"",16),1:"""") X:Y'>0 ^DD(200,.01,1,90007,89.3) S (D,D0,DIV(0))=+Y"
S ^DD(200,.01,1,90007,89.3)="N DD,DO K DIC,DINUM S DIC=""^DIC(16,"",DIC(0)=""NMFL"",DLAYGO=16,XU200=DA,Y=$G(XU16) D:'Y FILE^DICN K DLAYGO,XU200"
S ^DD(200,.01,1,90007,"%D",0)="^^2^2^2920513^"
S ^DD(200,.01,1,90007,"%D",1,0)="This is the X-ref that keeps names in 3-16 the same as in 200."
S ^DD(200,.01,1,90007,"%D",2,0)="It also will LAYGO new entries if they are missing."
S ^DD(200,.01,1,90007,"%D",3,0)="It used to be x-ref #7 before File 200 conversion."
S ^DD(200,.01,1,90007,"CREATE VALUE")="NAME"
S ^DD(200,.01,1,90007,"DELETE VALUE")="NO EFFECT"
S ^DD(200,.01,1,90007,"DIC")="LOOKUP"
S ^DD(200,.01,1,90007,"FIELD")="NAME:PERSON"
;
90008 ;----- SET CROSSREFERENCE 'IHSAH' IN NEW PERSON FILE TO UPDATE
; THE PERSON FILE POINTER FIELD. THIS USED TO BE THE 'AH'
; CROSSREFERENCE #10 BEFORE THE FILE 200 CONVERSION AND BEFORE
; THE KERNEL PATCHES CHANGED IT
;
S ^DD(200,.01,1,90008,0)="200^IHSAH^MUMPS"
S ^DD(200,.01,1,90008,1)="N % S:'$P(^VA(200,DA,0),U,16) %=$P($G(^DIC(3,DA,0)),U,16) S:$G(%) $P(^VA(200,DA,0),U,16)=%,^VA(200,""A16"",%,DA)="""""
S ^DD(200,.01,1,90008,2)="I 0 S X=X"
S ^DD(200,.01,1,90008,3)="Special PERSON FILE POINTER"
S ^DD(200,.01,1,90008,"%D",0)="^^2^2^2920810^"
S ^DD(200,.01,1,90008,"%D",1,0)="This MUMPS cross-reference sets the PERSON FILE POINTER in place and sets"
S ^DD(200,.01,1,90008,"%D",2,0)="the 'A16' X-ref of that field. See the field description for more details."
S ^DD(200,.01,1,90008,"%D",3,0)="This used to be the 'AH' xref before the file 200 conversion."
S ^DD(200,.01,1,90008,"DT")="2920810"
Q
X200535 ;----- RESET AIHS CROSSREFERENCE ON FIELD 53.5 OF FILE 200
;
S ^DD(200,53.5,1,1,0)="200^AIHS^MUMPS"
S ^DD(200,53.5,1,1,1)="G F6S^AVA4A7"
S ^DD(200,53.5,1,1,2)="G F6K^AVA4A7"
S ^DD(200,53.5,1,1,3)="GIVES PROVIDER KEY; UPDATES ENTRY IN FILE 6"
S ^DD(200,53.5,1,1,"DT")="2960516"
Q
AVAP15 ;IHS/OIRM/DSD/AEF - PATCH AVA*93.2*15 RESTORE X-REFS ON FILE 200 FOR KERNEL UPDATE [ 01/28/2003 4:14 PM ]
+1 ;;93.2;VA SUPPORT FILES;**15**;JAN 31, 2003;Build 12
+2 ;
+3 ;This is a special patch for the FileMan22/Kernel Update. Some of
+4 ;the Kernel patches deleted or reset some of the IHS crossreferences
+5 ;on the New Person file #200 and the Institution file #4. This routine
+6 ;resets the IHS crossreferences. It also restores the trigger and
+7 ;crossreferences on the .01 field of file 200 used to keep files
+8 ;3-16-200 in sync. These are restored because some IHS sites may
+9 ;not have done the File 200 Conversion or may have local packages
+10 ;still pointing to files 3 or 16.
+11 ;
EN ;EP -- MAIN ENTRY POINT
+1 ;
+2 DO X401AD
+3 DO X20001
+4 DO X200535
+5 QUIT
X401AD ;----- RESET AD X-REF IN INSTITUTION FILE
+1 ;ADDS QUIT TO SET AND KILL LOGIC TO PREVENT DELETION OF THE LOCATION
+2 ;FILE ENTRY WHEN A NAME IS CHANGED IN THE INSTITUTION FILE
+3 ;
+4 IF $DATA(^DD(4,.01,1,3,1))
Begin DoDot:1
+5 SET ^DD(4,.01,1,3,1)="Q ;I $D(^AUTTLOC(0))#2 N DIC,DD,DO,DINUM S DIC=""^AUTTLOC("",DIC(0)="""",(X,DINUM)=DA D FILE^DICN"
+6 SET ^DD(4,.01,1,3,2)="Q ;I $D(^AUTTLOC(0))#2 N DIK S DIK=""^AUTTLOC("" D ^DIK"
End DoDot:1
+7 QUIT
X20001 ;----- KILL AND RESET THE CROSSREFERENCES ON .01 FIELD OF FILE 200
+1 ;
+2 ;----- KILL X-REFS
+3 ;
+4 KILL ^DD(200,.01,1)
+5 ;
+6 ;----- SET TOP ZERO NODE
+7 ;
+8 SET ^DD(200,.01,1,0)="^.1"
+9 ;
1 ;----- SET "B" XREF #1
+1 ;
+2 SET ^DD(200,.01,1,1,0)="200^B"
+3 SET ^DD(200,.01,1,1,1)="S ^VA(200,""B"",$E(X,1,30),DA)="""""
+4 SET ^DD(200,.01,1,1,2)="K ^VA(200,""B"",$E(X,1,30),DA)"
+5 ;
2 ;----- SET "AE" XREF #2
+1 ;
+2 SET ^DD(200,.01,1,2,0)="200^AE^MUMPS"
+3 SET ^DD(200,.01,1,2,1)="S X1=$P($G(^VA(200,DA,1)),""^"",8) I X1="""" S $P(^VA(200,DA,1),""^"",7,8)=DT_""^""_DUZ"
+4 SET ^DD(200,.01,1,2,2)="Q"
+5 SET ^DD(200,.01,1,2,3)="Stuffing Creator and date"
+6 SET ^DD(200,.01,1,2,"%D",0)="^^1^1^2990617^^"
+7 SET ^DD(200,.01,1,2,"%D",1,0)="This X-ref stuffs the DATE ENTERED and CREATOR fields on a new entry."
+8 SET ^DD(200,.01,1,2,"DT")="2990617"
+9 ;
3 ;----- SET "AF" XREF #3
+1 ;
+2 SET ^DD(200,.01,1,3,0)="200^AF^MUMPS"
+3 SET ^DD(200,.01,1,3,1)="S $P(^VA(200,DA,20),""^"",2)=$P(X,"","",2)_"" ""_$P(X,"","",1)"
+4 SET ^DD(200,.01,1,3,2)="Q"
+5 SET ^DD(200,.01,1,3,3)="Stuff SIGNATURE BLOCK PRINTED NAME"
+6 ;
5 ;----- SET "BS5" XREF #5
+1 ;
+2 SET ^DD(200,.01,1,5,0)="200^BS5^MUMPS"
+3 SET ^DD(200,.01,1,5,1)="Q:$P($G(^VA(200,DA,1)),U,9)']"""" S ^VA(200,""BS5"",$E(X,1)_$E($P(^(1),U,9),6,9),DA)="""""
+4 SET ^DD(200,.01,1,5,2)="Q:$P($G(^VA(200,DA,1)),U,9)']"""" K ^VA(200,""BS5"",$E(X,1)_$E($P(^(1),U,9),6,9),DA)"
+5 SET ^DD(200,.01,1,5,3)="Special BS5 lookup X-ref"
+6 SET ^DD(200,.01,1,5,"%D",0)="^^3^3^2990617^^"
+7 SET ^DD(200,.01,1,5,"%D",1,0)="This X-ref builds the 'BS5' X-ref on name changes."
+8 SET ^DD(200,.01,1,5,"%D",2,0)="The BS5 is the first letter of the last name concatinated with the last"
+9 SET ^DD(200,.01,1,5,"%D",3,0)="four digits of the SSN."
+10 ;
8 ;----- SET "AG" XREF #8
+1 ;
+2 SET ^DD(200,.01,1,8,0)="200^AG^MUMPS"
+3 SET ^DD(200,.01,1,8,1)="F X1=0:0 S X1=$O(^VA(200,""AB"",X1)) Q:X1'>0 I $D(^VA(200,""AB"",X1,DA)),$S($D(^DIC(19.1,X1,0)):$P(^(0),U,3)[""l"",1:0) S X2=^(0),^VA(200,""AK.""_$P(X2,U),X,DA)="""""
+4 SET ^DD(200,.01,1,8,2)="S X1=""AK."" F X2=0:0 S X1=$O(^VA(200,X1)) Q:$E(X1,3)'=""."" K ^VA(200,X1,X,DA)"
+5 SET ^DD(200,.01,1,8,3)="Updates the AK.key special lookup X-ref."
+6 SET ^DD(200,.01,1,8,"%D",0)="^^1^1^2920513^"
+7 SET ^DD(200,.01,1,8,"%D",1,0)="Builds the AK.key special lookup X-ref when there is a name change."
+8 SET ^DD(200,.01,1,8,"DT")="2890929"
+9 ;
9 ;----- SET "ASX" XREF #9
+1 ;
+2 SET ^DD(200,.01,1,9,0)="200^ASX^MUMPS"
+3 SET ^DD(200,.01,1,9,1)="S ^VA(200,""ASX"",$$EN^XUA4A71(X),DA)="""""
+4 SET ^DD(200,.01,1,9,2)="K ^VA(200,""ASX"",$$EN^XUA4A71(X),DA)"
+5 SET ^DD(200,.01,1,9,3)="LAYGO SOUNDEX X-REF"
+6 SET ^DD(200,.01,1,9,"%D",0)="^^3^3^2920513^^"
+7 SET ^DD(200,.01,1,9,"%D",1,0)="This builds a soundex X-ref so that a check for simular names can be"
+8 SET ^DD(200,.01,1,9,"%D",2,0)="done at the time of LAYGOing to the file."
+9 SET ^DD(200,.01,1,9,"%D",3,0)="It calls XUA4A71 to convert X. The LAYGO test calls XUA4A7."
+10 SET ^DD(200,.01,1,9,"DT")="2920117"
+11 ;
10 ;----- SET BULLETIN XREF #10
+1 ;
+2 SET ^DD(200,.01,1,10,0)="^^BULLETIN MESSAGE"
+3 SET ^DD(200,.01,1,10,1)="S Y(0)=X,D0=DA Q:$P($G(^VA(200,D0,1)),U,7)'=DT K XMB,XMY S XMB(1)=Y(0),XMB=""XMNEWUSER"" D ^XMB:$D(^XMB(3.6,""B"",XMB)) K Y,XMB"
+4 SET ^DD(200,.01,1,10,2)="Q"
+5 SET ^DD(200,.01,1,10,3)="New User Bulletin"
+6 SET ^DD(200,.01,1,10,"%D",0)="^^1^1^3000719^"
+7 SET ^DD(200,.01,1,10,"%D",1,0)="This bulletin is sent whenever a new user is added to the New Person file."
+8 SET ^DD(200,.01,1,10,"CREATE CONDITION")="#30=TODAY"
+9 SET ^DD(200,.01,1,10,"CREATE PARAMETER #1")="NAME"
+10 SET ^DD(200,.01,1,10,"CREATE VALUE")="XMNEWUSER"
+11 SET ^DD(200,.01,1,10,"DELETE VALUE")="NO EFFECT"
+12 SET ^DD(200,.01,1,10,"DT")="3000719"
+13 ;
11 ;----- SET RAI MDS MONITOR TRIGGER #11
+1 ;
+2 SET ^DD(200,.01,1,11,0)="^^TRIGGER^46.11^.02"
+3 SET ^DD(200,.01,1,11,1)="Q"
+4 SET ^DD(200,.01,1,11,2)="K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(0)=X S X=$P($G(^DG(43,1,""HL7"")),U,4)=1 I X S X=DIV X ^DD(200,.01,1,11,89.2) S Y(101)=$S($D(^DGRU(46.11,D0,0)):^(0),1:"""") S X=$P(Y(101),U,2) S D0=I(0,0) S DIU=X K Y S X=DIV S X=X X ^
DD(200,.01,1,11,2.4)"
+5 SET ^DD(200,.01,1,11,2.4)="S DIH=$S($D(^DGRU(46.11,DIV(0),0)):^(0),1:""""),DIV=X I $D(^(0)) S $P(^(0),U,2)=DIV,DIH=46.11,DIG=.02 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
+6 SET ^DD(200,.01,1,11,89.2)="S I(0,0)=$S($D(D0):D0,1:""""),Y(1)=$S($D(^VA(200,D0,0)):^(0),1:"""") S X=$P(Y(1),U,1),X=X S X=X K DIC S DIC=""^DGRU(46.11,"",DIC(0)=""NMFL"",X=""""""""_X_"""""""" D ^DIC S (D,D0,DIV(0))=+Y"
+7 SET ^DD(200,.01,1,11,"%D",0)="^^2^2^2991018^"
+8 SET ^DD(200,.01,1,11,"%D",1,0)="Trigger the Name field before it was changed into the RAI MDS MONITOR"
+9 SET ^DD(200,.01,1,11,"%D",2,0)="file whenever the Name field of the New Person file is added or changed."
+10 SET ^DD(200,.01,1,11,"CREATE VALUE")="NO EFFECT"
+11 SET ^DD(200,.01,1,11,"DELETE CONDITION")="S X=$P($G(^DG(43,1,""HL7"")),U,4)=1"
+12 SET ^DD(200,.01,1,11,"DELETE VALUE")="OLD NAME"
+13 SET ^DD(200,.01,1,11,"DIC")="LOOKUP"
+14 SET ^DD(200,.01,1,11,"DT")="2991018"
+15 SET ^DD(200,.01,1,11,"FIELD")="NAME:RAI MDS MONITOR:#.02"
+16 ;
12 ;----- SET RAI MDS MONITOR TRIGGER #12
+1 ;
+2 SET ^DD(200,.01,1,12,0)="^^TRIGGER^46.11^.03"
+3 SET ^DD(200,.01,1,12,1)="K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(0)=X S X=$P($G(^DG(43,1,""HL7"")),U,4)=1 I X S X=DIV X ^DD(200,.01,1,12,89.2) S Y(101)=$S($D(^DGRU(46.11,D0,0)):^(0),1:"""") S X=$P(Y(101),U,3) S D0=I(0,0) S DIU=X K Y S X=DIV S X=200 X
^DD(200,.01,1,12,1.4)"
+4 SET ^DD(200,.01,1,12,1.4)="S DIH=$S($D(^DGRU(46.11,DIV(0),0)):^(0),1:""""),DIV=X I $D(^(0)) S $P(^(0),U,3)=DIV,DIH=46.11,DIG=.03 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
+5 SET ^DD(200,.01,1,12,2)="Q"
+6 SET ^DD(200,.01,1,12,89.2)="S I(0,0)=$S($D(D0):D0,1:""""),Y(1)=$S($D(^VA(200,D0,0)):^(0),1:"""") S X=$P(Y(1),U,1),X=X S X=X K DIC S DIC=""^DGRU(46.11,"",DIC(0)=""NMFL"" D ^DIC S (D,D0,DIV(0))=+Y"
+7 SET ^DD(200,.01,1,12,"%D",0)="^^2^2^2991018^"
+8 SET ^DD(200,.01,1,12,"%D",1,0)="Trigger the New Person file number (#200) into the RAI MDS MONITOR"
+9 SET ^DD(200,.01,1,12,"%D",2,0)="file whenever the New Person name field is added or changed."
+10 SET ^DD(200,.01,1,12,"CREATE CONDITION")="S X=$P($G(^DG(43,1,""HL7"")),U,4)=1"
+11 SET ^DD(200,.01,1,12,"CREATE VALUE")="S X=200"
+12 SET ^DD(200,.01,1,12,"DELETE VALUE")="NO EFFECT"
+13 SET ^DD(200,.01,1,12,"DIC")="LOOKUP"
+14 SET ^DD(200,.01,1,12,"DT")="2991018"
+15 SET ^DD(200,.01,1,12,"FIELD")="NAME:RAI MDS MONITOR:#.03"
+16 ;
13 ;----- SET RAI MDS MONITOR TRIGGER #13
+1 ;
+2 SET ^DD(200,.01,1,13,0)="^^TRIGGER^46.11^.04"
+3 SET ^DD(200,.01,1,13,1)="K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(0)=X S X=$P($G(^DG(43,1,""HL7"")),U,4)=1 I X S X=DIV X ^DD(200,.01,1,13,89.2) S Y(101)=$S($D(^DGRU(46.11,D0,0)):^(0),1:"""") S X=$P(Y(101),U,4) S D0=I(0,0) S DIU=X K Y S X=DIV S X=DA X
^DD(200,.01,1,13,1.4)"
+4 SET ^DD(200,.01,1,13,1.4)="S DIH=$S($D(^DGRU(46.11,DIV(0),0)):^(0),1:""""),DIV=X I $D(^(0)) S $P(^(0),U,4)=DIV,DIH=46.11,DIG=.04 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
+5 SET ^DD(200,.01,1,13,2)="Q"
+6 SET ^DD(200,.01,1,13,89.2)="S I(0,0)=$S($D(D0):D0,1:""""),Y(1)=$S($D(^VA(200,D0,0)):^(0),1:"""") S X=$P(Y(1),U,1),X=X S X=X K DIC S DIC=""^DGRU(46.11,"",DIC(0)=""NMF"" D ^DIC S (D,D0,DIV(0))=+Y"
+7 SET ^DD(200,.01,1,13,"%D",0)="^^2^2^2991018^"
+8 SET ^DD(200,.01,1,13,"%D",1,0)="Trigger the internal entry number of the entry which was changed or added"
+9 SET ^DD(200,.01,1,13,"%D",2,0)="in the New Person file, into the RAI MDS MONITOR file."
+10 SET ^DD(200,.01,1,13,"CREATE CONDITION")="S X=$P($G(^DG(43,1,""HL7"")),U,4)=1"
+11 SET ^DD(200,.01,1,13,"CREATE VALUE")="S X=DA"
+12 SET ^DD(200,.01,1,13,"DELETE VALUE")="NO EFFECT"
+13 SET ^DD(200,.01,1,13,"DIC")="LOOKUP"
+14 SET ^DD(200,.01,1,13,"DT")="2991018"
+15 SET ^DD(200,.01,1,13,"FIELD")="NAME:RAI MDS MONITOR:#.04"
+16 ;
90007 ;----- SET TRIGGER IN FILE 200 TO KEEP FILES 3-6-16-200 IN SYNC
+1 ; THIS USED TO BE TRIGGER #7 BEFORE THE FILE 200 CONVERSION
+2 ; AND BEFORE THE KERNEL PATCHES DELETED IT
+3 ;
+4 SET ^DD(200,.01,1,90007,0)="^^TRIGGER^16^.01"
+5 SET ^DD(200,.01,1,90007,1)="K DIV S DIV=X,(D0,DIV(0))=DA X ^DD(200,.01,1,90007,89.2) S DIU=$S($D(^DIC(16,D0,0)):$P(^(0),""^"",1),1:""""),D0=DA K Y S X=DIV X ^DD(200,.01,1,90007,1.4)"
+6 SET ^DD(200,.01,1,90007,1.4)="S DIH=$S($D(^DIC(16,DIV(0),0)):$P(^(0),""^"",1),1:"""") I DIH'=DIV,$D(^(0)) S $P(^(0),U,1)=DIV,DIH=16,DIG=.01 D ^DICR:$O(^DD(DIH,DIG,1,0))>0"
+7 SET ^DD(200,.01,1,90007,2)="Q"
+8 SET ^DD(200,.01,1,90007,3)="Edited trigger"
+9 SET ^DD(200,.01,1,90007,89.2)="S Y=$S($D(^DIC(3,D0,0))#2:$P(^(0),""^"",16),1:"""") X:Y'>0 ^DD(200,.01,1,90007,89.3) S (D,D0,DIV(0))=+Y"
+10 SET ^DD(200,.01,1,90007,89.3)="N DD,DO K DIC,DINUM S DIC=""^DIC(16,"",DIC(0)=""NMFL"",DLAYGO=16,XU200=DA,Y=$G(XU16) D:'Y FILE^DICN K DLAYGO,XU200"
+11 SET ^DD(200,.01,1,90007,"%D",0)="^^2^2^2920513^"
+12 SET ^DD(200,.01,1,90007,"%D",1,0)="This is the X-ref that keeps names in 3-16 the same as in 200."
+13 SET ^DD(200,.01,1,90007,"%D",2,0)="It also will LAYGO new entries if they are missing."
+14 SET ^DD(200,.01,1,90007,"%D",3,0)="It used to be x-ref #7 before File 200 conversion."
+15 SET ^DD(200,.01,1,90007,"CREATE VALUE")="NAME"
+16 SET ^DD(200,.01,1,90007,"DELETE VALUE")="NO EFFECT"
+17 SET ^DD(200,.01,1,90007,"DIC")="LOOKUP"
+18 SET ^DD(200,.01,1,90007,"FIELD")="NAME:PERSON"
+19 ;
90008 ;----- SET CROSSREFERENCE 'IHSAH' IN NEW PERSON FILE TO UPDATE
+1 ; THE PERSON FILE POINTER FIELD. THIS USED TO BE THE 'AH'
+2 ; CROSSREFERENCE #10 BEFORE THE FILE 200 CONVERSION AND BEFORE
+3 ; THE KERNEL PATCHES CHANGED IT
+4 ;
+5 SET ^DD(200,.01,1,90008,0)="200^IHSAH^MUMPS"
+6 SET ^DD(200,.01,1,90008,1)="N % S:'$P(^VA(200,DA,0),U,16) %=$P($G(^DIC(3,DA,0)),U,16) S:$G(%) $P(^VA(200,DA,0),U,16)=%,^VA(200,""A16"",%,DA)="""""
+7 SET ^DD(200,.01,1,90008,2)="I 0 S X=X"
+8 SET ^DD(200,.01,1,90008,3)="Special PERSON FILE POINTER"
+9 SET ^DD(200,.01,1,90008,"%D",0)="^^2^2^2920810^"
+10 SET ^DD(200,.01,1,90008,"%D",1,0)="This MUMPS cross-reference sets the PERSON FILE POINTER in place and sets"
+11 SET ^DD(200,.01,1,90008,"%D",2,0)="the 'A16' X-ref of that field. See the field description for more details."
+12 SET ^DD(200,.01,1,90008,"%D",3,0)="This used to be the 'AH' xref before the file 200 conversion."
+13 SET ^DD(200,.01,1,90008,"DT")="2920810"
+14 QUIT
X200535 ;----- RESET AIHS CROSSREFERENCE ON FIELD 53.5 OF FILE 200
+1 ;
+2 SET ^DD(200,53.5,1,1,0)="200^AIHS^MUMPS"
+3 SET ^DD(200,53.5,1,1,1)="G F6S^AVA4A7"
+4 SET ^DD(200,53.5,1,1,2)="G F6K^AVA4A7"
+5 SET ^DD(200,53.5,1,1,3)="GIVES PROVIDER KEY; UPDATES ENTRY IN FILE 6"
+6 SET ^DD(200,53.5,1,1,"DT")="2960516"
+7 QUIT