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

BWMDEX1.m

Go to the documentation of this file.
  1. 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
  1. EXPORT(BWFMT,BWIEN,BWGBL,BWNEW) ; EP
  1. N BWDATA,BWLN,BWSEQ,BWDFN,BWFAC,BWPT,BWDT,BWPAP,BWMAM,BWX,X,Y,Z,P
  1. K:$G(BWNEW) @BWGBL
  1. ; Load formatting information into BWFMT if not already done.
  1. I $D(BWFMT)<10 D
  1. .S X=0,BWFMT("LN")=+$P(^BWFMT(BWFMT,0),U,2)
  1. .F S X=$O(^BWFMT(BWFMT,1,X)) Q:'X S Y=^(X,0) D
  1. ..S BWSEQ=$P(Y,U,7)*1000000+X
  1. ..F Z=2:1:9 S BWFMT(BWSEQ,Z)=$P(Y,U,Z)
  1. ..S:'$L(BWFMT(BWSEQ,8)) BWFMT(BWSEQ,8)=" "
  1. ..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))
  1. ..M BWFMT(BWSEQ,"PR")=^BWFMT(BWFMT,1,X,20,"B")
  1. ..K:BWFMT(BWSEQ,9)!'$L(BWFMT(BWSEQ,"TX")) BWFMT(BWSEQ)
  1. ; Now loop through formatting data
  1. D LOADDATA^BWMDEX(BWIEN)
  1. S BWLN=+$O(@BWGBL@(""),-1),(BWSEQ,BWX)="",$E(BWX,BWFMT("LN"))=" "
  1. F S BWSEQ=$O(BWFMT(BWSEQ)) Q:BWSEQ'=+BWSEQ D
  1. .I $D(BWFMT(BWSEQ,"PR"))>1,'$D(BWFMT(BWSEQ,"PR",BWPT)) Q
  1. .I $L(BWFMT(BWSEQ,"SC")) X BWFMT(BWSEQ,"SC") Q:'$T
  1. .K X
  1. .X BWFMT(BWSEQ,"TX")
  1. .S Z=$L($G(X))
  1. .Q:'Z
  1. .S:$L(BWFMT(BWSEQ,2)) BWDATA(BWFMT(BWSEQ,2))=X
  1. .S Y=BWFMT(BWSEQ,4)
  1. .I Y,Y'=Z D
  1. ..I Z>Y S X=$E(X,1,Y)
  1. ..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)
  1. .S:$L(X) X=BWFMT(BWSEQ,"PX")_X_BWFMT(BWSEQ,"SX")
  1. .S Y=BWFMT(BWSEQ,3)
  1. .I Y S $E(BWX,Y,Y+$L(X)-1)=X
  1. .E S BWX=BWX_X
  1. .D:BWFMT(BWSEQ,5) OUTLN
  1. OUTLN S:$L(BWX) BWLN=BWLN+1,@BWGBL@(BWLN)=BWX
  1. S BWX="",$E(BWX,BWFMT("LN"))=" "
  1. Q
  1. ; Return data from specified node and piece
  1. PC(BWN,BWP,BWT) ;
  1. Q $$PC^BWMDEX(.BWN,.BWP,.BWT)
  1. ; Open HFS device
  1. ; .BWFILE = Name of host file (use default if not specified)
  1. ; .BWPATH = Returned as the path to the host file
  1. ; BWTST = If nonzero, close host file after successful open.
  1. HFSOPEN(BWFILE,BWPATH,BWTST) ; EP
  1. D GETFILE(.BWPATH,.BWFILE)
  1. I 'BWPOP D
  1. .S BWPOP=$$OPEN^%ZISH(BWPATH,BWFILE,"W")
  1. .I 'BWPOP,$G(BWTST) D ^%ZISC
  1. .I BWPOP,'$D(BWSILENT) D
  1. ..W !!?5,"* Save to Host File Server FAILED. Contact your site manager."
  1. ..D DIRZ^BWUTLP
  1. ;IHS exemption approved on 10/20/2003
  1. Q:$Q BWPOP
  1. Q
  1. ; Return output filename and path
  1. GETFILE(BWPATH,BWFILE) ;
  1. N X
  1. S X=$G(^BWSITE(DUZ(2),0)),BWPATH=$P(X,U,14)
  1. I '$L(BWPATH) D
  1. .S BWPOP=1
  1. .W:'$D(BWSILENT) !!?5,"* No path defined in site file. Contact your site manager."
  1. I '$D(BWFILE) D
  1. .S BWFILE=$P(X,U,13)_$E(DT,4,5)_$E(DT,2,3)_$S('$G(BWADHOC):$$CDCVER^BWMDEX2,1:"LC")
  1. .S:'$D(BWSILENT) BWFILE=$$DIR^BWUTLP("F","Name of output file",BWFILE,"Name of file to receive output.",.BWPOP)
  1. Q
  1. ; Send extract results to output device
  1. OUTPUT(BWGBL,BWADHOC,BWFILE) ; EP
  1. N BWCOUNT,BWHFS,BWPATH,X
  1. I '$D(@BWGBL) D:'$D(BWSILENT) Q
  1. .W !!?5,"No records to be exported."
  1. .D DIRZ^BWUTLP
  1. ;
  1. ; If this is an adhoc query then offer to write file out to alternate device.
  1. I '$D(BWSILENT),BWADHOC D Q:BWPOP
  1. .W !!,"Do you wish to save your results to a file or send them to"
  1. .W !,"an alternate device?"
  1. .S BWHFS=$$DIR^BWUTLP("SA^0:OTHER;1:FILE","Select FILE or OTHER: ","FILE",1,.BWPOP)
  1. E S BWHFS=1
  1. I BWHFS D
  1. .D HFSOPEN(.BWFILE,.BWPATH)
  1. E D
  1. .D ^%ZIS
  1. .S BWPOP=POP
  1. Q:BWPOP
  1. U IO
  1. S (X,BWCOUNT)=0
  1. F BWCOUNT=0:1 S X=$O(@BWGBL@(X)) Q:'X W @BWGBL@(X),!
  1. D ^%ZISC
  1. D:BWHFS SHOWDLG^BWUTLP(12_U_BWFILE_U_BWPATH)
  1. ; Offer to log if not an ad hoc extract
  1. I 'BWADHOC D
  1. .I '$D(BWSILENT),'$$DIRYN^BWUTLP(6,"YES",7) Q
  1. .D FILE^BWFMAN(9002086.92,".02////"_BWCOUNT_";.03////"_BWPATH_BWFILE,"ML",DT,9002086,.X)
  1. .D:X<0 SHOWDLG^BWUTLP(-5)
  1. Q