Difference between revisions of "Global Search"

From VistApedia
Jump to: navigation, search
Line 97: Line 97:
 
}
 
}
 
</style>
 
</style>
</head>
+
 
<body>
 
 
<div style="float: left; white-space: pre; line-height: 1; background: #FFFFFF; "><span class="sc0">DDGF1</span><span class="sc24"> </span><span class="sc2">;SFISC/MKO-MAIN SCREEN ;02:46 PM  12 Oct 1994
 
<div style="float: left; white-space: pre; line-height: 1; background: #FFFFFF; "><span class="sc0">DDGF1</span><span class="sc24"> </span><span class="sc2">;SFISC/MKO-MAIN SCREEN ;02:46 PM  12 Oct 1994
 
</span><span class="sc24"> </span><span class="sc2">;;22.21062;VA FileMan;;Mar 30, 1999
 
</span><span class="sc24"> </span><span class="sc2">;;22.21062;VA FileMan;;Mar 30, 1999

Revision as of 04:17, 30 July 2020


Well, ZWRITE ^PXD(811.8,,100,7,0) has to have a FOR command and a variable each time there is a ,, (comma,comma) in the ZWRITE argument or where there is a ,:, (comma, colon, comma) to stand in for that "Slot".

and then needs an IF for each constant bit after the slot.



So ^PXD(811.8,:) is looping through an Internal Entry Number

maps to code for a 0..# numeric value loop like:

SET IEN=0 FOR SET IEN=$O(^PXD(811.8,IEN)) QUIT:IEN'=+IEN <blah blah>



and ^PXD(811.8,"B",) is looping through a crossreference of a file

maps to code for an empty string through an empty string (string value) loop like:

SET SUB="" FOR SET SUB=$O(^PXD(811.8,"B",SUB)) QUIT:SUB="" <blah blah>



^PXD(811.8,,100,7,0) maps to the global map level

^PXD(811.8,D0,100,D1,0)= (#.01) XML DATA [1W] ^



the comma+comma maps to D0 (the IEN in the REMINDER EXCHANGE FILE)

and the 7 maps to D1 (the line number in the Word Processing field )



I doubt that you only want to change the pattern ="<USER>PRD, USER</USER>" when it is on the 7th line and ignore it if it is only any other line.



So D0 and D1 are both IENs so the both loops need to be of the numeric kind which I will put into lines of a program for clear code:



SET D0=0 FOR SET D0=$O(^PXD(811.8,D0)) QUIT:D0'=+D0 IF $DATA(^(D0,100)) DO

. SET D1=0 FOR SET D1=$O(^PXD(811.8,D0,100,D1)) QUIT:D1'=+D1 DO

. . IF $G(^(D1,0))?1"<USER>".E1"</USER>" DO

. . . SET ^PXD(811.8,D0,100,D1,0)="<USER>PRD,USER</USER>"

<html> <style type="text/css"> span { font-family: 'Courier New'; font-size: 10pt; color: #000000; } .sc0 { } .sc2 { font-style: italic; color: #8080C0; } .sc3 { font-weight: bold; } .sc4 { font-weight: bold; color: #FF0000; } .sc5 { font-weight: bold; color: #FF8040; } .sc6 { font-weight: bold; color: #008000; } .sc12 { font-weight: bold; color: #FF00FF; } .sc16 { color: #0080FF; } .sc24 { } </style>

DDGF1 ;SFISC/MKO-MAIN SCREEN ;02:46 PM 12 Oct 1994

;;22.21062;VA FileMan;;Mar 30, 1999 ; Submitted to OSEHRA 11/19/2014 by Medsphere Systems Corporation. ; Licensed under the terms of the Apache License, Version 2.0. D RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))

S DDGFE=0 F  S Y=$$READ W:$T(@Y)="" $C(7) D:$D(DDGFMSG) MSG^DDGF() D:$T(@Y)]"" @Y Q:DDGFE
Q
;

LNU I DY>$P(DDGFLIM,U) D RC(DY-1,DX)

Q

LND I DY<$P(DDGFLIM,U,3) D RC(DY+1,DX)

Q

CHR I DX<$P(DDGFLIM,U,4) D RC(DY,DX+1)

Q

CHL I DX>$P(DDGFLIM,U,2) D RC(DY,DX-1)

Q
;

ELR N Y,X

S Y=DY,X=DX
S X=$O(@DDGFREF@("RC",DDGFWID,Y,X))
D:X=""
. S Y=$O(@DDGFREF@("RC",DDGFWID,Y))
. S:Y="" Y=$O(@DDGFREF@("RC",DDGFWID,""))
. S:Y]"" X=$O(@DDGFREF@("RC",DDGFWID,Y,""))
D:X]"" RC(Y,X)
Q

ELL N Y,X

S Y=DY,X=DX
S X=$O(@DDGFREF@("RC",DDGFWID,Y,X),-1)
D:X=""
. S Y=$O(@DDGFREF@("RC",DDGFWID,Y),-1)
. S:Y="" Y=$O(@DDGFREF@("RC",DDGFWID,""),-1)
. S:Y]"" X=$O(@DDGFREF@("RC",DDGFWID,Y,""),-1)
D:X]"" RC(Y,X)
Q
;

TBR I DX<$P(DDGFLIM,U,4) D

. D RC(DY,$S(DX+5'<$P(DDGFLIM,U,4):$P(DDGFLIM,U,4),1:DX+5))
E  I DY<$P(DDGFLIM,U,3) D RC(DY+1,$P(DDGFLIM,U,2))
Q

TBL I DX>$P(DDGFLIM,U,2) D

. D RC(DY,$S(DX-5'>$P(DDGFLIM,U,2):$P(DDGFLIM,U,2),1:DX-5))
E  I DY>$P(DDGFLIM,U) D RC(DY-1,$P(DDGFLIM,U,4))
Q
;

SCT I DY>$P(DDGFLIM,U) D RC($P(DDGFLIM,U),DX)

Q

SCB I DY<$P(DDGFLIM,U,3) D RC($P(DDGFLIM,U,3),DX)

Q

SCR I DX<$P(DDGFLIM,U,4) D RC(DY,$P(DDGFLIM,U,4))

Q

SCL I DX>$P(DDGFLIM,U,2) D RC(DY,$P(DDGFLIM,U,2))

Q
;

SAVE ;Save data from DDGFREF I 'DDGFPG D ERR(110) Q

G SAVE^DDGFSV
;

SELECT ;Select an item I 'DDGFPG D ERR(110) Q

G SELECT^DDGFEL
;

EDIT ;Edit a caption or data length I 'DDGFPG D ERR(110) Q

G EDIT^DDGFEL
;

FLDADD ;Add a new field to the form I 'DDGFPG D ERR(110) Q

G ADD^DDGFFLDA
;

VIEW ;Go to block viewer I 'DDGFPG D ERR(110) Q

I $O(@DDGFREF@("F",DDGFPG,""))="" D ERR(120) Q
G ^DDGF3
;

BKADD ;Add a new block I 'DDGFPG D ERR(110) Q

G ADD^DDGFBK
;

HBKADD ;Add a header block I 'DDGFPG D ERR(110) Q

G ADD^DDGFHBK
;

NXTPG ;Go to next page I 'DDGFPG D ERR(110) Q

D NXTPRV^DDGFPG(1) Q
;

PRVPG ;Go to previous page I 'DDGFPG D ERR(110) Q

D NXTPRV^DDGFPG(-1) Q
;

CLSPG ;Close pop-up page G CLSPG^DDGFPG

;

PGSEL ;Select a new page I 'DDGFPG D ERR(110) Q

G PGSEL^DDGFPG
;

PGADD ;Add a new page to the form G ADD^DDGFPG

;

PGEDIT ;Edit attributes of a page I 'DDGFPG D ERR(110) Q

G EDIT^DDGFPG
;

FMSEL ;Select another form G SEL^DDGFFM

;

FMADD ;Add a new form G ADD^DDGFFM

;

FMEDIT ;Edit the form G EDIT^DDGFFM

;

HELP ;Invoke help screens G HLP^DDGFH

;

TO ;Time-out W $C(7)

G QUIT
;

QUIT ;Exit from form designer I DDGLSCR>1 G CLSPG^DDGFPG

S DDGFE=1
Q

EXIT ;Save and exit I DDGLSCR>1 G CLSPG^DDGFPG

S DDGFE=1
G SAVE^DDGFSV
;

RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor N DDGFS

I DDGFR D
. S DY=IOSL-6,DX=IOM-9,DDGFS="R"_(DDGFY+1)_",C"_(DDGFX+1)
. X IOXY W DDGFS_$J("",7-$L(DDGFS))
S DY=DDGFY,DX=DDGFX X IOXY
Q
;

READ() N S,Y

F  R *Y:DTIME D C Q:Y'=-1
Q Y
;

C I Y<0 S Y="TO" Q

S S=""

C1 S S=S_$C(Y)

I DDGF("IN")'[(U_S) D  I Y=-1 W $C(7) Q
. I $C(Y)'?1L S Y=-1 Q
. S S=$E(S,1,$L(S)-1)_$C(Y-32) S:DDGF("IN")'[(U_S_U) Y=-1
;

I DDGF("IN")[(U_S_U),S'=$C(27) S Y=$P(DDGF("OUT"),U,$L($P(DDGF("IN"),U_S_U),U)) Q

R *Y:5 G:Y'=-1 C1 W $C(7)
Q
;

ERR(X) ; D MSG^DDGF($C(7)_$P($T(@X),";;",2,999)) H 3

D MSG^DDGF()
Q

110 ;;There are no pages on this form. Use PF2-P to add a page. 120 ;;There are no blocks on this page. Use PF2-B to add a block.

SET D0=0 FOR SET D0=$O(^PXD(811.8,D0)) QUIT:D0'=+D0 IF $DATA(^(D0,100)) DO

. SET D1=0 FOR SET D1=$O(^PXD(811.8,D0,100,D1)) QUIT:D1'=+D1 DO

. . IF $G(^(D1,0))?1"<USER>".E1"</USER>" DO

. . . SET ^PXD(811.8,D0,100,D1,0)="<USER>PRD,USER</USER>"

</html>