- BWMDEX1 ;IHS/CIA/DKM - Convert MDE data to export format;21-Oct-2003 10:03;PLS
- ;;2.0;WOMEN'S HEALTH;**9**;MAY 16, 1996
- EXPORT(BWFMT,BWIEN,BWGBL,BWNEW) ; EP
- N BWDATA,BWLN,BWSEQ,BWDFN,BWFAC,BWPT,BWDT,BWPAP,BWMAM,BWX,X,Y,Z,P
- K:$G(BWNEW) @BWGBL
- ; Load formatting information into BWFMT if not already done.
- I $D(BWFMT)<10 D
- .S X=0,BWFMT("LN")=+$P(^BWFMT(BWFMT,0),U,2)
- .F S X=$O(^BWFMT(BWFMT,1,X)) Q:'X S Y=^(X,0) D
- ..S BWSEQ=$P(Y,U,7)*1000000+X
- ..F Z=2:1:9 S BWFMT(BWSEQ,Z)=$P(Y,U,Z)
- ..S:'$L(BWFMT(BWSEQ,8)) BWFMT(BWSEQ,8)=" "
- ..S BWFMT(BWSEQ,"PX")=$G(^BWFMT(BWFMT,1,X,1)),BWFMT(BWSEQ,"SX")=$G(^(2)),BWFMT(BWSEQ,"TX")=$G(^(3)),BWFMT(BWSEQ,"SC")=$G(^(4))
- ..M BWFMT(BWSEQ,"PR")=^BWFMT(BWFMT,1,X,20,"B")
- ..K:BWFMT(BWSEQ,9)!'$L(BWFMT(BWSEQ,"TX")) BWFMT(BWSEQ)
- ; Now loop through formatting data
- D LOADDATA^BWMDEX(BWIEN)
- S BWLN=+$O(@BWGBL@(""),-1),(BWSEQ,BWX)="",$E(BWX,BWFMT("LN"))=" "
- F S BWSEQ=$O(BWFMT(BWSEQ)) Q:BWSEQ'=+BWSEQ D
- .I $D(BWFMT(BWSEQ,"PR"))>1,'$D(BWFMT(BWSEQ,"PR",BWPT)) Q
- .I $L(BWFMT(BWSEQ,"SC")) X BWFMT(BWSEQ,"SC") Q:'$T
- .K X
- .X BWFMT(BWSEQ,"TX")
- .S Z=$L($G(X))
- .Q:'Z
- .S:$L(BWFMT(BWSEQ,2)) BWDATA(BWFMT(BWSEQ,2))=X
- .S Y=BWFMT(BWSEQ,4)
- .I Y,Y'=Z D
- ..I Z>Y S X=$E(X,1,Y)
- ..E S Z=BWFMT(BWSEQ,6),P=BWFMT(BWSEQ,8),X=$S(Z=1:$$RJ^XLFSTR(X,Y,P),Z=2:$$LJ^XLFSTR(X,Y,P),Z=3:$$CJ^XLFSTR(X,Y,P),1:X)
- .S:$L(X) X=BWFMT(BWSEQ,"PX")_X_BWFMT(BWSEQ,"SX")
- .S Y=BWFMT(BWSEQ,3)
- .I Y S $E(BWX,Y,Y+$L(X)-1)=X
- .E S BWX=BWX_X
- .D:BWFMT(BWSEQ,5) OUTLN
- OUTLN S:$L(BWX) BWLN=BWLN+1,@BWGBL@(BWLN)=BWX
- S BWX="",$E(BWX,BWFMT("LN"))=" "
- Q
- ; Return data from specified node and piece
- PC(BWN,BWP,BWT) ;
- Q $$PC^BWMDEX(.BWN,.BWP,.BWT)
- ; Open HFS device
- ; .BWFILE = Name of host file (use default if not specified)
- ; .BWPATH = Returned as the path to the host file
- ; BWTST = If nonzero, close host file after successful open.
- HFSOPEN(BWFILE,BWPATH,BWTST) ; EP
- D GETFILE(.BWPATH,.BWFILE)
- I 'BWPOP D
- .S BWPOP=$$OPEN^%ZISH(BWPATH,BWFILE,"W")
- .I 'BWPOP,$G(BWTST) D ^%ZISC
- .I BWPOP,'$D(BWSILENT) D
- ..W !!?5,"* Save to Host File Server FAILED. Contact your site manager."
- ..D DIRZ^BWUTLP
- ;IHS exemption approved on 10/20/2003
- Q:$Q BWPOP
- Q
- ; Return output filename and path
- GETFILE(BWPATH,BWFILE) ;
- N X
- S X=$G(^BWSITE(DUZ(2),0)),BWPATH=$P(X,U,14)
- I '$L(BWPATH) D
- .S BWPOP=1
- .W:'$D(BWSILENT) !!?5,"* No path defined in site file. Contact your site manager."
- I '$D(BWFILE) D
- .S BWFILE=$P(X,U,13)_$E(DT,4,5)_$E(DT,2,3)_$S('$G(BWADHOC):$$CDCVER^BWMDEX2,1:"LC")
- .S:'$D(BWSILENT) BWFILE=$$DIR^BWUTLP("F","Name of output file",BWFILE,"Name of file to receive output.",.BWPOP)
- Q
- ; Send extract results to output device
- OUTPUT(BWGBL,BWADHOC,BWFILE) ; EP
- N BWCOUNT,BWHFS,BWPATH,X
- I '$D(@BWGBL) D:'$D(BWSILENT) Q
- .W !!?5,"No records to be exported."
- .D DIRZ^BWUTLP
- ;
- ; If this is an adhoc query then offer to write file out to alternate device.
- I '$D(BWSILENT),BWADHOC D Q:BWPOP
- .W !!,"Do you wish to save your results to a file or send them to"
- .W !,"an alternate device?"
- .S BWHFS=$$DIR^BWUTLP("SA^0:OTHER;1:FILE","Select FILE or OTHER: ","FILE",1,.BWPOP)
- E S BWHFS=1
- I BWHFS D
- .D HFSOPEN(.BWFILE,.BWPATH)
- E D
- .D ^%ZIS
- .S BWPOP=POP
- Q:BWPOP
- U IO
- S (X,BWCOUNT)=0
- F BWCOUNT=0:1 S X=$O(@BWGBL@(X)) Q:'X W @BWGBL@(X),!
- D ^%ZISC
- D:BWHFS SHOWDLG^BWUTLP(12_U_BWFILE_U_BWPATH)
- ; Offer to log if not an ad hoc extract
- I 'BWADHOC D
- .I '$D(BWSILENT),'$$DIRYN^BWUTLP(6,"YES",7) Q
- .D FILE^BWFMAN(9002086.92,".02////"_BWCOUNT_";.03////"_BWPATH_BWFILE,"ML",DT,9002086,.X)
- .D:X<0 SHOWDLG^BWUTLP(-5)
- Q
- BWMDEX1 ;IHS/CIA/DKM - Convert MDE data to export format;21-Oct-2003 10:03;PLS
- +1 ;;2.0;WOMEN'S HEALTH;**9**;MAY 16, 1996
- EXPORT(BWFMT,BWIEN,BWGBL,BWNEW) ; EP
- +1 NEW BWDATA,BWLN,BWSEQ,BWDFN,BWFAC,BWPT,BWDT,BWPAP,BWMAM,BWX,X,Y,Z,P
- +2 IF $GET(BWNEW)
- KILL @BWGBL
- +3 ; Load formatting information into BWFMT if not already done.
- +4 IF $DATA(BWFMT)<10
- Begin DoDot:1
- +5 SET X=0
- SET BWFMT("LN")=+$PIECE(^BWFMT(BWFMT,0),U,2)
- +6 FOR
- SET X=$ORDER(^BWFMT(BWFMT,1,X))
- IF 'X
- QUIT
- SET Y=^(X,0)
- Begin DoDot:2
- +7 SET BWSEQ=$PIECE(Y,U,7)*1000000+X
- +8 FOR Z=2:1:9
- SET BWFMT(BWSEQ,Z)=$PIECE(Y,U,Z)
- +9 IF '$LENGTH(BWFMT(BWSEQ,8))
- SET BWFMT(BWSEQ,8)=" "
- +10 SET BWFMT(BWSEQ,"PX")=$GET(^BWFMT(BWFMT,1,X,1))
- SET BWFMT(BWSEQ,"SX")=$GET(^(2))
- SET BWFMT(BWSEQ,"TX")=$GET(^(3))
- SET BWFMT(BWSEQ,"SC")=$GET(^(4))
- +11 MERGE BWFMT(BWSEQ,"PR")=^BWFMT(BWFMT,1,X,20,"B")
- +12 IF BWFMT(BWSEQ,9)!'$LENGTH(BWFMT(BWSEQ,"TX"))
- KILL BWFMT(BWSEQ)
- End DoDot:2
- End DoDot:1
- +13 ; Now loop through formatting data
- +14 DO LOADDATA^BWMDEX(BWIEN)
- +15 SET BWLN=+$ORDER(@BWGBL@(""),-1)
- SET (BWSEQ,BWX)=""
- SET $EXTRACT(BWX,BWFMT("LN"))=" "
- +16 FOR
- SET BWSEQ=$ORDER(BWFMT(BWSEQ))
- IF BWSEQ'=+BWSEQ
- QUIT
- Begin DoDot:1
- +17 IF $DATA(BWFMT(BWSEQ,"PR"))>1
- IF '$DATA(BWFMT(BWSEQ,"PR",BWPT))
- QUIT
- +18 IF $LENGTH(BWFMT(BWSEQ,"SC"))
- XECUTE BWFMT(BWSEQ,"SC")
- IF '$TEST
- QUIT
- +19 KILL X
- +20 XECUTE BWFMT(BWSEQ,"TX")
- +21 SET Z=$LENGTH($GET(X))
- +22 IF 'Z
- QUIT
- +23 IF $LENGTH(BWFMT(BWSEQ,2))
- SET BWDATA(BWFMT(BWSEQ,2))=X
- +24 SET Y=BWFMT(BWSEQ,4)
- +25 IF Y
- IF Y'=Z
- Begin DoDot:2
- +26 IF Z>Y
- SET X=$EXTRACT(X,1,Y)
- +27 IF '$TEST
- SET Z=BWFMT(BWSEQ,6)
- SET P=BWFMT(BWSEQ,8)
- SET X=$SELECT(Z=1:$$RJ^XLFSTR(X,Y,P),Z=2:$$LJ^XLFSTR(X,Y,P),Z=3:$$CJ^XLFSTR(X,Y,P),1:X)
- End DoDot:2
- +28 IF $LENGTH(X)
- SET X=BWFMT(BWSEQ,"PX")_X_BWFMT(BWSEQ,"SX")
- +29 SET Y=BWFMT(BWSEQ,3)
- +30 IF Y
- SET $EXTRACT(BWX,Y,Y+$LENGTH(X)-1)=X
- +31 IF '$TEST
- SET BWX=BWX_X
- +32 IF BWFMT(BWSEQ,5)
- DO OUTLN
- End DoDot:1
- OUTLN IF $LENGTH(BWX)
- SET BWLN=BWLN+1
- SET @BWGBL@(BWLN)=BWX
- +1 SET BWX=""
- SET $EXTRACT(BWX,BWFMT("LN"))=" "
- +2 QUIT
- +3 ; Return data from specified node and piece
- PC(BWN,BWP,BWT) ;
- +1 QUIT $$PC^BWMDEX(.BWN,.BWP,.BWT)
- +2 ; Open HFS device
- +3 ; .BWFILE = Name of host file (use default if not specified)
- +4 ; .BWPATH = Returned as the path to the host file
- +5 ; BWTST = If nonzero, close host file after successful open.
- HFSOPEN(BWFILE,BWPATH,BWTST) ; EP
- +1 DO GETFILE(.BWPATH,.BWFILE)
- +2 IF 'BWPOP
- Begin DoDot:1
- +3 SET BWPOP=$$OPEN^%ZISH(BWPATH,BWFILE,"W")
- +4 IF 'BWPOP
- IF $GET(BWTST)
- DO ^%ZISC
- +5 IF BWPOP
- IF '$DATA(BWSILENT)
- Begin DoDot:2
- +6 WRITE !!?5,"* Save to Host File Server FAILED. Contact your site manager."
- +7 DO DIRZ^BWUTLP
- End DoDot:2
- End DoDot:1
- +8 ;IHS exemption approved on 10/20/2003
- +9 IF $QUIT
- QUIT BWPOP
- +10 QUIT
- +11 ; Return output filename and path
- GETFILE(BWPATH,BWFILE) ;
- +1 NEW X
- +2 SET X=$GET(^BWSITE(DUZ(2),0))
- SET BWPATH=$PIECE(X,U,14)
- +3 IF '$LENGTH(BWPATH)
- Begin DoDot:1
- +4 SET BWPOP=1
- +5 IF '$DATA(BWSILENT)
- WRITE !!?5,"* No path defined in site file. Contact your site manager."
- End DoDot:1
- +6 IF '$DATA(BWFILE)
- Begin DoDot:1
- +7 SET BWFILE=$PIECE(X,U,13)_$EXTRACT(DT,4,5)_$EXTRACT(DT,2,3)_$SELECT('$GET(BWADHOC):$$CDCVER^BWMDEX2,1:"LC")
- +8 IF '$DATA(BWSILENT)
- SET BWFILE=$$DIR^BWUTLP("F","Name of output file",BWFILE,"Name of file to receive output.",.BWPOP)
- End DoDot:1
- +9 QUIT
- +10 ; Send extract results to output device
- OUTPUT(BWGBL,BWADHOC,BWFILE) ; EP
- +1 NEW BWCOUNT,BWHFS,BWPATH,X
- +2 IF '$DATA(@BWGBL)
- IF '$DATA(BWSILENT)
- Begin DoDot:1
- +3 WRITE !!?5,"No records to be exported."
- +4 DO DIRZ^BWUTLP
- End DoDot:1
- QUIT
- +5 ;
- +6 ; If this is an adhoc query then offer to write file out to alternate device.
- +7 IF '$DATA(BWSILENT)
- IF BWADHOC
- Begin DoDot:1
- +8 WRITE !!,"Do you wish to save your results to a file or send them to"
- +9 WRITE !,"an alternate device?"
- +10 SET BWHFS=$$DIR^BWUTLP("SA^0:OTHER;1:FILE","Select FILE or OTHER: ","FILE",1,.BWPOP)
- End DoDot:1
- IF BWPOP
- QUIT
- +11 IF '$TEST
- SET BWHFS=1
- +12 IF BWHFS
- Begin DoDot:1
- +13 DO HFSOPEN(.BWFILE,.BWPATH)
- End DoDot:1
- +14 IF '$TEST
- Begin DoDot:1
- +15 DO ^%ZIS
- +16 SET BWPOP=POP
- End DoDot:1
- +17 IF BWPOP
- QUIT
- +18 USE IO
- +19 SET (X,BWCOUNT)=0
- +20 FOR BWCOUNT=0:1
- SET X=$ORDER(@BWGBL@(X))
- IF 'X
- QUIT
- WRITE @BWGBL@(X),!
- +21 DO ^%ZISC
- +22 IF BWHFS
- DO SHOWDLG^BWUTLP(12_U_BWFILE_U_BWPATH)
- +23 ; Offer to log if not an ad hoc extract
- +24 IF 'BWADHOC
- Begin DoDot:1
- +25 IF '$DATA(BWSILENT)
- IF '$$DIRYN^BWUTLP(6,"YES",7)
- QUIT
- +26 DO FILE^BWFMAN(9002086.92,".02////"_BWCOUNT_";.03////"_BWPATH_BWFILE,"ML",DT,9002086,.X)
- +27 IF X<0
- DO SHOWDLG^BWUTLP(-5)
- End DoDot:1
- +28 QUIT