- BGP0UTL ; IHS/CMI/LAB - 27 Apr 2008 11:01 PM 30 Aug 2008 10:16 AM 30 Jun 2009 4:58 PM 05 Aug 2010 11:40 AM ;
- ;;10.0;IHS CLINICAL REPORTING;**1**;JUN 18, 2010
- ;
- VER() ;EP
- Q "CRS 2010 Version 10.0 Patch 1" ;cmi/maw mod 7/9/08
- STMP ;EP
- Q:BGPTIME'=1
- I BGPLIST="P",$P(^AUPNPAT(DFN,0),U,14)'=BGPLPRV Q
- X ^BGPINDT(BGPIC,2) Q:'$T
- S BGPLIST(BGPIC)=$G(BGPLIST(BGPIC))+1
- S ^XTMP("BGP0D",BGPJ,BGPH,"LIST",BGPIC,$S($P($G(^AUPNPAT(DFN,11)),U,18)]"":$P(^AUPNPAT(DFN,11),U,18),1:"UNKNOWN"),$P(^DPT(DFN,0),U,2),BGPAGEB,DFN)=$G(BGPVALUE)
- Q
- D(D) ;EP
- I D="" Q ""
- Q (1700+$E(D,1,3))_$E(D,4,5)_$E(D,6,7)_$S($P(D,".",2)]"":$P(D,".",2),1:"")
- JRNL ;EP
- N (DT,U,ZTQUEUED) S %=$$NOJOURN^ZIBGCHAR("BGPGPDCT"),%=$$NOJOURN^ZIBGCHAR("BGPGPDPT"),%=$$NOJOURN^ZIBGCHAR("BGPGPDBT"),%=$$NOJOURN^ZIBGCHAR("BGPHEDCT"),%=$$NOJOURN^ZIBGCHAR("BGPHEDPT"),%=$$NOJOURN^ZIBGCHAR("BGPHEDBT")
- S %=$$NOJOURN^ZIBGCHAR("BGPDATA"),%=$$NOJOURN^ZIBGCHAR("BGPGUI")
- S %=$$NOJOURN^ZIBGCHAR("BGPELDCT"),%=$$NOJOURN^ZIBGCHAR("BGPELDPT"),%=$$NOJOURN^ZIBGCHAR("BGPELDBT")
- S %=$$NOJOURN^ZIBGCHAR("BGPEOCT"),%=$$NOJOURN^ZIBGCHAR("BGPEOPT"),%=$$NOJOURN^ZIBGCHAR("BGPEOBT")
- S %=$$NOJOURN^ZIBGCHAR("BGPXPT")
- Q
- DATE(D) ;EP
- I D="" Q ""
- Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_$E(D,2,3)
- ;
- EDT(D) ;EP
- I D="" Q ""
- Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+$E(D,1,3))
- ;
- SETHDR ;
- S BGPX="",$P(BGPX,U,1)="Site Name",$P(BGPX,U,2)="ASUFAC",$P(BGPX,U,3)="DB Id",$P(BGPX,U,4)="Date Report Run",$P(BGPX,U,5)="Current Report Begin Date",$P(BGPX,U,6)="Current Report End Date",$P(BGPX,U,7)="Previous Year Begin Date"
- S $P(BGPX,U,8)="Previous Year End Date",$P(BGPX,U,9)="Baseline Year Begin Date",$P(BGPX,U,10)="Baseline Year End Date"
- Q
- ONN1 ;EP
- K BGPEXCT
- S Y=$$OPEN^%ZISH(BGPUF,BGPFONN1,"W")
- I Y=1 W:'$D(ZTQUEUED) !!,"Cannot open host file." Q
- U IO
- S BGPP=0,BGPY=$O(^BGPCTRL("B","2010",0)),BGPX="",BGPEC=$P(^BGPCTRL(BGPY,0),U,2)
- F S BGPP=$O(^BGPCTRL(BGPY,36,BGPP)) Q:BGPP'=+BGPP D
- .S BGPPP1=$P(^BGPCTRL(BGPY,36,BGPP,0),U,1)
- .S BGPZ=$P(^BGPCTRL(BGPY,36,BGPP,0),U,2)
- .S $P(BGPX,U,BGPPP1)=BGPZ
- W BGPX,!
- K BGPX
- S BGPX="" S P=11 F S $P(BGPX,U,P)="Current",P=P+9 Q:P>(BGPEC-8)
- S P=14 F S $P(BGPX,U,P)="Previous",P=P+9 Q:P>(BGPEC-5)
- S P=17 F S $P(BGPX,U,P)="Baseline",P=P+9 Q:P>(BGPEC+1)
- W BGPX,!
- K BGPX
- D SETHDR
- S P=11 F S $P(BGPX,U,P)="Num",P=P+3 Q:P>(BGPEC-2)
- S P=12 F S $P(BGPX,U,P)="Den",P=P+3 Q:P>(BGPEC-1)
- S P=13 F S $P(BGPX,U,P)="%",P=P+3 Q:P>BGPEC
- W BGPX,!
- S BGPX=0 F S BGPX=$O(BGPONN1(BGPX)) Q:BGPX'=+BGPX W BGPONN1(BGPX),!
- K BGPONN1
- D ^%ZISC
- ONN2 ;
- K BGPEXCT
- S Y=$$OPEN^%ZISH(BGPUF,BGPFONN2,"W")
- I Y=1 W:'$D(ZTQUEUED) !!,"Cannot open host file." Q
- U IO
- S BGPP=0,BGPY=$O(^BGPCTRL("B","2010",0)),BGPX="",BGPEC=$P(^BGPCTRL(BGPY,0),U,3)
- F S BGPP=$O(^BGPCTRL(BGPY,37,BGPP)) Q:BGPP'=+BGPP D
- .S BGPPP1=$P(^BGPCTRL(BGPY,37,BGPP,0),U,1)
- .S BGPZ=$P(^BGPCTRL(BGPY,37,BGPP,0),U,2)
- .S $P(BGPX,U,BGPPP1)=BGPZ
- W BGPX,!
- K BGPX
- S BGPX="" S P=11 F S $P(BGPX,U,P)="Current",P=P+9 Q:P>(BGPEC-8)
- S P=14 F S $P(BGPX,U,P)="Previous",P=P+9 Q:P>(BGPEC-5)
- S P=17 F S $P(BGPX,U,P)="Baseline",P=P+9 Q:P>(BGPEC+1)
- W BGPX,!
- K BGPX
- D SETHDR
- S P=11 F S $P(BGPX,U,P)="Num",P=P+3 Q:P>(BGPEC-2)
- S P=12 F S $P(BGPX,U,P)="Den",P=P+3 Q:P>(BGPEC-1)
- S P=13 F S $P(BGPX,U,P)="%",P=P+3 Q:P>BGPEC
- W BGPX,!
- S BGPX=0 F S BGPX=$O(BGPONN2(BGPX)) Q:BGPX'=+BGPX W BGPONN2(BGPX),!
- K BGPONN2
- ONN3 ;
- K BGPEXCT
- S Y=$$OPEN^%ZISH(BGPUF,BGPFONN3,"W")
- I Y=1 W:'$D(ZTQUEUED) !!,"Cannot open host file." Q
- U IO
- S BGPP=0,BGPY=$O(^BGPCTRL("B","2010",0)),BGPX="",BGPEC=$P(^BGPCTRL(BGPY,0),U,21)
- F S BGPP=$O(^BGPCTRL(BGPY,45,BGPP)) Q:BGPP'=+BGPP D
- .S BGPPP1=$P(^BGPCTRL(BGPY,45,BGPP,0),U,1)
- .S BGPZ=$P(^BGPCTRL(BGPY,45,BGPP,0),U,2)
- .S $P(BGPX,U,BGPPP1)=BGPZ
- W BGPX,!
- K BGPX
- S BGPX="" S P=11 F S $P(BGPX,U,P)="Current",P=P+9 Q:P>(BGPEC-8)
- S P=14 F S $P(BGPX,U,P)="Previous",P=P+9 Q:P>(BGPEC-5)
- S P=17 F S $P(BGPX,U,P)="Baseline",P=P+9 Q:P>(BGPEC+1)
- W BGPX,!
- K BGPX
- D SETHDR
- S P=11 F S $P(BGPX,U,P)="Num",P=P+3 Q:P>(BGPEC-2)
- S P=12 F S $P(BGPX,U,P)="Den",P=P+3 Q:P>(BGPEC-1)
- S P=13 F S $P(BGPX,U,P)="%",P=P+3 Q:P>BGPEC
- W BGPX,!
- S BGPX=0 F S BGPX=$O(BGPONN3(BGPX)) Q:BGPX'=+BGPX W BGPONN3(BGPX),!
- K BGPONN3
- ONNC D ^%ZISC ;close host file
- Q
- GNT1 ;EP - area export file
- K BGPEXCT
- I '$G(BGPAREAA) G Q1
- S Y=$$OPEN^%ZISH(BGPUF,BGPFGNT1,"W")
- I Y=1 W:'$D(ZTQUEUED) !!,"Cannot open host file." Q
- U IO
- S BGPP=0,BGPY=$O(^BGPCTRL("B","2010",0)),BGPX="",BGPEC=$P(^BGPCTRL(BGPY,0),U,4)
- F S BGPP=$O(^BGPCTRL(BGPY,38,BGPP)) Q:BGPP'=+BGPP D
- .S BGPPP1=$P(^BGPCTRL(BGPY,38,BGPP,0),U,1)
- .S BGPZ=$P(^BGPCTRL(BGPY,38,BGPP,0),U,2)
- .S $P(BGPX,U,BGPPP1)=BGPZ
- W BGPX,!
- K BGPX
- S BGPX="" S P=11 F S $P(BGPX,U,P)="Current",P=P+9 Q:P>(BGPEC-8)
- S P=14 F S $P(BGPX,U,P)="Previous",P=P+9 Q:P>(BGPEC-5)
- S P=17 F S $P(BGPX,U,P)="Baseline",P=P+9 Q:P>(BGPEC+1)
- W BGPX,!
- K BGPX
- D SETHDR
- S P=11 F S $P(BGPX,U,P)="Num",P=P+3 Q:P>(BGPEC-2)
- S P=12 F S $P(BGPX,U,P)="Den",P=P+3 Q:P>(BGPEC-1)
- S P=13 F S $P(BGPX,U,P)="%",P=P+3 Q:P>BGPEC
- W BGPX,!
- K BGPX
- S BGPX=0 F S BGPX=$O(BGPEI(BGPX)) Q:BGPX'=+BGPX W BGPEI(BGPX),!
- D ^%ZISC
- Q1 ;
- K BGPEI
- GNT2 ;
- K BGPEXCT
- I '$G(BGPAREAA) G Q2
- S Y=$$OPEN^%ZISH(BGPUF,BGPFGNT2,"W")
- I Y=1 W:'$D(ZTQUEUED) !!,"Cannot open host file." Q
- U IO
- S BGPP=0,BGPY=$O(^BGPCTRL("B","2010",0)),BGPX="",BGPEC=$P(^BGPCTRL(BGPY,0),U,16)
- F S BGPP=$O(^BGPCTRL(BGPY,40,BGPP)) Q:BGPP'=+BGPP D
- .S BGPPP1=$P(^BGPCTRL(BGPY,40,BGPP,0),U,1)
- .S BGPZ=$P(^BGPCTRL(BGPY,40,BGPP,0),U,2)
- .S $P(BGPX,U,BGPPP1)=BGPZ
- W BGPX,!
- K BGPX
- S BGPX="" S P=11 F S $P(BGPX,U,P)="Current",P=P+9 Q:P>(BGPEC-8)
- S P=14 F S $P(BGPX,U,P)="Previous",P=P+9 Q:P>(BGPEC-5)
- S P=17 F S $P(BGPX,U,P)="Baseline",P=P+9 Q:P>(BGPEC+1)
- W BGPX,!
- K BGPX
- D SETHDR
- S P=11 F S $P(BGPX,U,P)="Num",P=P+3 Q:P>(BGPEC-2)
- S P=12 F S $P(BGPX,U,P)="Den",P=P+3 Q:P>(BGPEC-1)
- S P=13 F S $P(BGPX,U,P)="%",P=P+3 Q:P>BGPEC
- W BGPX,!
- K BGPX
- S BGPX=0 F S BGPX=$O(BGPEI2(BGPX)) Q:BGPX'=+BGPX W BGPEI2(BGPX),!
- Q2 ;
- K BGPEI2
- D ^%ZISC
- Q3 ;
- D DEV^BGP0UTLC
- Q
- GS ;EP
- K ^TMP($J)
- ;I $P($G(^BGPSITE(DUZ(2),0)),U,3)="N" Q
- L +^BGPDATA:300 E W:'$D(ZTQUEUED) "Unable to lock global" Q
- ;NOTE: Kill of unscripted global. Export to area. Using standard name.
- S BGPENDN=$S($P(^BGPSITE(DUZ(2),0),U,11)=0:88887,1:99998)
- K ^BGPDATA S X="",C=0 F S X=$O(^BGPGPDCT(BGPRPT,X)) Q:X'=+X!(X>BGPENDN) D
- .I $G(^BGPGPDCT(BGPRPT,X))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X)
- .S X2="" F S X2=$O(^BGPGPDCT(BGPRPT,X,X2)) Q:X2'=+X2 D
- ..I $G(^BGPGPDCT(BGPRPT,X,X2))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2)
- ..S X3="" F S X3=$O(^BGPGPDCT(BGPRPT,X,X2,X3)) Q:X3'=+X3 D
- ...I $G(^BGPGPDCT(BGPRPT,X,X2,X3))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3,$P(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2,X3)
- ...S X4="" F S X4=$O(^BGPGPDCT(BGPRPT,X,X2,X3,X4)) Q:X4'=+X4 D
- ....I $G(^BGPGPDCT(BGPRPT,X,X2,X3,X4))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3,$P(^BGPDATA(C),"|",4)=X4,$P(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2,X3,X4)
- ....S X5="" F S X5=$O(^BGPGPDCT(BGPRPT,X,X2,X3,X4,X5)) Q:X5'=+X5 D
- .....I $G(^BGPGPDCT(BGPRPT,X,X2,X3,X4,X5))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3
- .....S $P(^BGPDATA(C),"|",4)=X4,$P(^BGPDATA(C),"|",5)=X5,$P(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2,X3,X4,X5)
- S X=0 F S X=$O(^BGPDATA(X)) Q:X'=+X S ^BGPDATA(X)="BGPGPDCT"_"|"_^BGPDATA(X)
- PRGS ;
- S S=C+1,X="" F S X=$O(^BGPGPDPT(BGPRPT,X)) Q:X'=+X!(X>99998) D
- .I $G(^BGPGPDPT(BGPRPT,X))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X)
- .S X2="" F S X2=$O(^BGPGPDPT(BGPRPT,X,X2)) Q:X2'=+X2 D
- ..I $G(^BGPGPDPT(BGPRPT,X,X2))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2)
- ..S X3="" F S X3=$O(^BGPGPDPT(BGPRPT,X,X2,X3)) Q:X3'=+X3 D
- ...I $G(^BGPGPDPT(BGPRPT,X,X2,X3))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3,$P(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2,X3)
- ...S X4="" F S X4=$O(^BGPGPDPT(BGPRPT,X,X2,X3,X4)) Q:X4'=+X4 D
- ....I $G(^BGPGPDPT(BGPRPT,X,X2,X3,X4))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3,$P(^BGPDATA(C),"|",4)=X4,$P(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2,X3,X4)
- ....S X5="" F S X5=$O(^BGPGPDPT(BGPRPT,X,X2,X3,X4,X5)) Q:X5'=+X5 D
- .....I $G(^BGPGPDPT(BGPRPT,X,X2,X3,X4,X5))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3
- .....S $P(^BGPDATA(C),"|",4)=X4,$P(^BGPDATA(C),"|",5)=X5,$P(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2,X3,X4,X5)
- S X=S-1 F S X=$O(^BGPDATA(X)) Q:X'=+X S ^BGPDATA(X)="BGPGPDPT"_"|"_^BGPDATA(X)
- BLGS ;
- S S=C+1,X="" F S X=$O(^BGPGPDBT(BGPRPT,X)) Q:X'=+X!(X>99998) D
- .I $G(^BGPGPDBT(BGPRPT,X))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X)
- .S X2="" F S X2=$O(^BGPGPDBT(BGPRPT,X,X2)) Q:X2'=+X2 D
- ..I $G(^BGPGPDBT(BGPRPT,X,X2))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2)
- ..S X3="" F S X3=$O(^BGPGPDBT(BGPRPT,X,X2,X3)) Q:X3'=+X3 D
- ...I $G(^BGPGPDBT(BGPRPT,X,X2,X3))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3,$P(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2,X3)
- ...S X4="" F S X4=$O(^BGPGPDBT(BGPRPT,X,X2,X3,X4)) Q:X4'=+X4 D
- ....I $G(^BGPGPDBT(BGPRPT,X,X2,X3,X4))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3,$P(^BGPDATA(C),"|",4)=X4,$P(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2,X3,X4)
- ....S X5="" F S X5=$O(^BGPGPDBT(BGPRPT,X,X2,X3,X4,X5)) Q:X5'=+X5 D
- .....I $G(^BGPGPDBT(BGPRPT,X,X2,X3,X4,X5))]"" S C=C+1,$P(^BGPDATA(C),"|")=X,$P(^BGPDATA(C),"|",2)=X2,$P(^BGPDATA(C),"|",3)=X3
- .....S $P(^BGPDATA(C),"|",4)=X4,$P(^BGPDATA(C),"|",5)=X5,$P(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2,X3,X4,X5)
- S X=S-1 F S X=$O(^BGPDATA(X)) Q:X'=+X S ^BGPDATA(X)="BGPGPDBT"_"|"_^BGPDATA(X)
- NEW XBGL S XBGL="BGPDATA"
- S F="BG10"_$P(^AUTTLOC(DUZ(2),0),U,10)_"."_$S(BGPRTYPE=7:"ONM",1:"")_BGPRPT
- NEW XBFN,XBMED,XBF,XBFLT
- S XBMED="F",XBFN=F,XBTLE="SAVE OF CRS DATA BY - "_$P(^VA(200,DUZ,0),U),XBF=0,XBFLT=1
- D ^XBGSAVE
- L -^BGPDATA
- K ^TMP($J),^BGPDATA ;NOTE: kill of unsubscripted global for use in export to area.
- Q
- REPORT ;EP
- S BGPRPT="",BGPERR=""
- I '$D(BGPGUI) W !!
- ;3 files must have the same ien
- L +^BGPGPDCT:30 I '$T S BGPERR="Unable to lock global." G REPORTX
- L +^BGPGPDPT:30 I '$T S BGPERR="Unable to lock global." G REPORTX
- L +^BGPGPDBT:30 I '$T S BGPERR="Unable to lock global." G REPORTX
- D GETIEN
- I 'BGPIEN S BGPERR="Error in control files!" S BGPRPT="" G REPORTX
- S DINUM=BGPIEN
- I $G(BGPNPL) S BGPRTYPE=4
- S BGPR12=$S($G(BGP0GPU):9,1:BGPRTYPE)
- K DIC S X=BGPBD,DIC(0)="L",DIC="^BGPGPDCT(",DLAYGO=90377.03,DIADD=1,DIC("DR")=".02////"_BGPED_";.03////"_BGPPBD_";.04////"_BGPPED_";.05////"_BGPBBD_";.06////"_BGPBED_";.07////"_$G(BGPPER)_";.08////"_$G(BGPQTR)
- S DIC("DR")=DIC("DR")_";.09////"_$P(^AUTTLOC(DUZ(2),0),U,10)_";.11////"_$E($P(^AUTTLOC(DUZ(2),0),U,10),1,4)_";.12////"_BGPR12_";.13////"_DT_";.14////"_BGPBEN_";.15////"_$P($G(^AUTTLOC(DUZ(2),1)),U,3)_";.16///"_$P(^BGPSITE(DUZ(2),0),U,4)
- S DIC("DR")=DIC("DR")_";.17///"_$P(^BGPSITE(DUZ(2),0),U,6)_";.18///"_$S($G(BGPTAXI):$P(^ATXAX(BGPTAXI,0),U),1:"")
- D ^DIC K DIC,DA,DR,DIADD,DLAYGO I Y=-1 S BGPERR="UNABLE TO CREATE REPORT FILE ENTRY!" S BGPQUIT=1 G REPORTX
- S BGPRPT=+Y
- K DIC S X=BGPBD,DIC(0)="L",DIC="^BGPGPDPT(",DLAYGO=90377.04,DIADD=1,DIC("DR")=".02////"_BGPED_";.03////"_BGPPBD_";.04////"_BGPPED_";.05////"_BGPBBD_";.06////"_BGPBED_";.07////"_$G(BGPPER)_";.08////"_$G(BGPQTR)
- S DIC("DR")=DIC("DR")_";.09////"_$P(^AUTTLOC(DUZ(2),0),U,10)_";.11////"_$E($P(^AUTTLOC(DUZ(2),0),U,10),1,4)_";.12////"_BGPR12_";.13////"_DT_";.14////"_BGPBEN_";.15////"_$P($G(^AUTTLOC(DUZ(2),1)),U,3)_";.16///"_$P(^BGPSITE(DUZ(2),0),U,4)
- S DIC("DR")=DIC("DR")_";.17///"_$P(^BGPSITE(DUZ(2),0),U,6)_";.18///"_$S($G(BGPTAXI):$P(^ATXAX(BGPTAXI,0),U),1:"")
- S DINUM=BGPRPT D ^DIC K DIC,DA,DR,DIADD,DLAYGO,DINUM I Y=-1 S BGPERR="UNABLE TO CREATE REPORT FILE ENTRY!" S BGPQUIT=1 G REPORTX
- S BGPRPTP=+Y
- K DIC S X=BGPBD,DIC(0)="L",DIC="^BGPGPDBT(",DLAYGO=90377.05,DIADD=1,DIC("DR")=".02////"_BGPED_";.03////"_BGPPBD_";.04////"_BGPPED_";.05////"_BGPBBD_";.06////"_BGPBED_";.07////"_$G(BGPPER)_";.08////"_$G(BGPQTR)
- S DIC("DR")=DIC("DR")_";.09////"_$P(^AUTTLOC(DUZ(2),0),U,10)_";.11////"_$E($P(^AUTTLOC(DUZ(2),0),U,10),1,4)_";.12////"_BGPR12_";.13////"_DT_";.14////"_BGPBEN_";.15////"_$P($G(^AUTTLOC(DUZ(2),1)),U,3)_";.16///"_$P(^BGPSITE(DUZ(2),0),U,4)
- S DIC("DR")=DIC("DR")_";.17///"_$P(^BGPSITE(DUZ(2),0),U,6)_";.18///"_$S($G(BGPTAXI):$P(^ATXAX(BGPTAXI,0),U),1:"")
- S DINUM=BGPRPT D ^DIC K DIC,DA,DR,DIADD,DLAYGO I Y=-1 S BGPERR="UNABLE TO CREATE REPORT FILE ENTRY!" S BGPQUIT=1 G REPORTX
- S BGPRPTB=+Y
- ;
- K ^BGPGPDCT(BGPRPT,9999)
- S C=0,X="" F S X=$O(BGPTAX(X)) Q:X="" S C=C+1 S ^BGPGPDCT(BGPRPT,9999,C,0)=X,^BGPGPDCT(BGPRPT,9999,"B",X,C)=""
- S ^BGPGPDCT(BGPRPT,9999,0)="^90377.12999A^"_C_"^"_C
- K ^BGPGPDCT(BGPRPT,1111)
- I $G(BGPMFITI) S C=0,X="" F S X=$O(^ATXAX(BGPMFITI,21,"B",X)) Q:X="" S C=C+1,Y=$P($G(^DIC(4,X,0)),U) S ^BGPGPDCT(BGPRPT,1111,C,0)=Y,^BGPGPDCT(BGPRPT,1111,"B",Y,C)=""
- S ^BGPGPDCT(BGPRPT,1111,0)="^90377.031111^"_C_"^"_C
- S ^BGPGPDCT(BGPRPT,99999,0)="^90377.129999A^0^0"
- S ^BGPGPDPT(BGPRPT,99999,0)="^90377.139999A^0^0"
- S ^BGPGPDBT(BGPRPT,99999,0)="^90377.149999A^0^0"
- REPORTX ;
- I BGPERR]"" W !!,BGPERR
- I $G(BGPNPL) S BGPRTYPE=$S($G(BGPONMR):7,1:1)
- D ^XBFMK
- K DIC,DIADD,DLAYGO,DR,DA,DD,X,Y,DINUM
- L -^BGPGPDCT
- L -^BGPGPDPT
- L -^BGPGPDBT
- Q
- GETIEN ;EP - Get next ien available in all 3 files
- S BGPF=90377.03 D ENT
- S BGPF=90377.04 D ENT
- S BGPF=90377.05 D ENT
- S BGPIEN=$P(^BGPGPDCT(0),U,3)+1
- S I $D(^BGPGPDPT(BGPIEN))!($D(^BGPGPDBT(BGPIEN))) S BGPIEN=BGPIEN+1 G S
- Q
- ;
- ENT ;
- NEW GBL,NXT,CTR,XBHI,XBX,XBY,ANS
- S GBL=^DIC(BGPF,0,"GL")
- S GBL=GBL_"NXT)"
- S (XBHI,NXT,CTR)=0
- F L=0:0 S NXT=$O(@(GBL)) Q:NXT'=+NXT S XBHI=NXT,CTR=CTR+1 ;W:'(CTR#50) "."
- S NXT="",XBX=$O(@(GBL)),XBX=^(0),XBY=$P(XBX,U,4),XBX=$P(XBX,U,3)
- S NXT=0,$P(@(GBL),U,3)=XBHI,$P(^(0),U,4)=CTR
- ;
- EOJ ;
- KILL ANS,XBHI,XBX,XBY,CTR,DIC,FILE,GBL,L,NXT,BGPF
- Q
- ;
- LZERO(V,L) ;EP
- NEW %,I
- S %=$L(V),Z=L-% F I=1:1:Z S V="0"_V
- Q V
- RZERO(V,L) ;EP
- NEW %,I
- S %=$L(V),Z=L-% F I=1:1:Z S V=V_"0"
- Q V
- XTMP(N,D) ;EP
- Q:$G(N)=""
- S ^XTMP(N,0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^"_$G(D)
- Q
- BGP0UTL ; IHS/CMI/LAB - 27 Apr 2008 11:01 PM 30 Aug 2008 10:16 AM 30 Jun 2009 4:58 PM 05 Aug 2010 11:40 AM ;
- +1 ;;10.0;IHS CLINICAL REPORTING;**1**;JUN 18, 2010
- +2 ;
- VER() ;EP
- +1 ;cmi/maw mod 7/9/08
- QUIT "CRS 2010 Version 10.0 Patch 1"
- STMP ;EP
- +1 IF BGPTIME'=1
- QUIT
- +2 IF BGPLIST="P"
- IF $PIECE(^AUPNPAT(DFN,0),U,14)'=BGPLPRV
- QUIT
- +3 XECUTE ^BGPINDT(BGPIC,2)
- IF '$TEST
- QUIT
- +4 SET BGPLIST(BGPIC)=$GET(BGPLIST(BGPIC))+1
- +5 SET ^XTMP("BGP0D",BGPJ,BGPH,"LIST",BGPIC,$SELECT($PIECE($GET(^AUPNPAT(DFN,11)),U,18)]"":$PIECE(^AUPNPAT(DFN,11),U,18),1:"UNKNOWN"),$PIECE(^DPT(DFN,0),U,2),BGPAGEB,DFN)=$GET(BGPVALUE)
- +6 QUIT
- D(D) ;EP
- +1 IF D=""
- QUIT ""
- +2 QUIT (1700+$EXTRACT(D,1,3))_$EXTRACT(D,4,5)_$EXTRACT(D,6,7)_$SELECT($PIECE(D,".",2)]"":$PIECE(D,".",2),1:"")
- JRNL ;EP
- +1 NEW (DT,U,ZTQUEUED)
- SET %=$$NOJOURN^ZIBGCHAR("BGPGPDCT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPGPDPT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPGPDBT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPHEDCT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPHEDPT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPHEDBT")
- +2 SET %=$$NOJOURN^ZIBGCHAR("BGPDATA")
- SET %=$$NOJOURN^ZIBGCHAR("BGPGUI")
- +3 SET %=$$NOJOURN^ZIBGCHAR("BGPELDCT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPELDPT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPELDBT")
- +4 SET %=$$NOJOURN^ZIBGCHAR("BGPEOCT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPEOPT")
- SET %=$$NOJOURN^ZIBGCHAR("BGPEOBT")
- +5 SET %=$$NOJOURN^ZIBGCHAR("BGPXPT")
- +6 QUIT
- DATE(D) ;EP
- +1 IF D=""
- QUIT ""
- +2 QUIT $EXTRACT(D,4,5)_"/"_$EXTRACT(D,6,7)_"/"_$EXTRACT(D,2,3)
- +3 ;
- EDT(D) ;EP
- +1 IF D=""
- QUIT ""
- +2 QUIT $EXTRACT(D,4,5)_"/"_$EXTRACT(D,6,7)_"/"_(1700+$EXTRACT(D,1,3))
- +3 ;
- SETHDR ;
- +1 SET BGPX=""
- SET $PIECE(BGPX,U,1)="Site Name"
- SET $PIECE(BGPX,U,2)="ASUFAC"
- SET $PIECE(BGPX,U,3)="DB Id"
- SET $PIECE(BGPX,U,4)="Date Report Run"
- SET $PIECE(BGPX,U,5)="Current Report Begin Date"
- SET $PIECE(BGPX,U,6)="Current Report End Date"
- SET $PIECE(BGPX,U,7)="Previous Year Begin Date"
- +2 SET $PIECE(BGPX,U,8)="Previous Year End Date"
- SET $PIECE(BGPX,U,9)="Baseline Year Begin Date"
- SET $PIECE(BGPX,U,10)="Baseline Year End Date"
- +3 QUIT
- ONN1 ;EP
- +1 KILL BGPEXCT
- +2 SET Y=$$OPEN^%ZISH(BGPUF,BGPFONN1,"W")
- +3 IF Y=1
- IF '$DATA(ZTQUEUED)
- WRITE !!,"Cannot open host file."
- QUIT
- +4 USE IO
- +5 SET BGPP=0
- SET BGPY=$ORDER(^BGPCTRL("B","2010",0))
- SET BGPX=""
- SET BGPEC=$PIECE(^BGPCTRL(BGPY,0),U,2)
- +6 FOR
- SET BGPP=$ORDER(^BGPCTRL(BGPY,36,BGPP))
- IF BGPP'=+BGPP
- QUIT
- Begin DoDot:1
- +7 SET BGPPP1=$PIECE(^BGPCTRL(BGPY,36,BGPP,0),U,1)
- +8 SET BGPZ=$PIECE(^BGPCTRL(BGPY,36,BGPP,0),U,2)
- +9 SET $PIECE(BGPX,U,BGPPP1)=BGPZ
- End DoDot:1
- +10 WRITE BGPX,!
- +11 KILL BGPX
- +12 SET BGPX=""
- SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Current"
- SET P=P+9
- IF P>(BGPEC-8)
- QUIT
- +13 SET P=14
- FOR
- SET $PIECE(BGPX,U,P)="Previous"
- SET P=P+9
- IF P>(BGPEC-5)
- QUIT
- +14 SET P=17
- FOR
- SET $PIECE(BGPX,U,P)="Baseline"
- SET P=P+9
- IF P>(BGPEC+1)
- QUIT
- +15 WRITE BGPX,!
- +16 KILL BGPX
- +17 DO SETHDR
- +18 SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Num"
- SET P=P+3
- IF P>(BGPEC-2)
- QUIT
- +19 SET P=12
- FOR
- SET $PIECE(BGPX,U,P)="Den"
- SET P=P+3
- IF P>(BGPEC-1)
- QUIT
- +20 SET P=13
- FOR
- SET $PIECE(BGPX,U,P)="%"
- SET P=P+3
- IF P>BGPEC
- QUIT
- +21 WRITE BGPX,!
- +22 SET BGPX=0
- FOR
- SET BGPX=$ORDER(BGPONN1(BGPX))
- IF BGPX'=+BGPX
- QUIT
- WRITE BGPONN1(BGPX),!
- +23 KILL BGPONN1
- +24 DO ^%ZISC
- ONN2 ;
- +1 KILL BGPEXCT
- +2 SET Y=$$OPEN^%ZISH(BGPUF,BGPFONN2,"W")
- +3 IF Y=1
- IF '$DATA(ZTQUEUED)
- WRITE !!,"Cannot open host file."
- QUIT
- +4 USE IO
- +5 SET BGPP=0
- SET BGPY=$ORDER(^BGPCTRL("B","2010",0))
- SET BGPX=""
- SET BGPEC=$PIECE(^BGPCTRL(BGPY,0),U,3)
- +6 FOR
- SET BGPP=$ORDER(^BGPCTRL(BGPY,37,BGPP))
- IF BGPP'=+BGPP
- QUIT
- Begin DoDot:1
- +7 SET BGPPP1=$PIECE(^BGPCTRL(BGPY,37,BGPP,0),U,1)
- +8 SET BGPZ=$PIECE(^BGPCTRL(BGPY,37,BGPP,0),U,2)
- +9 SET $PIECE(BGPX,U,BGPPP1)=BGPZ
- End DoDot:1
- +10 WRITE BGPX,!
- +11 KILL BGPX
- +12 SET BGPX=""
- SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Current"
- SET P=P+9
- IF P>(BGPEC-8)
- QUIT
- +13 SET P=14
- FOR
- SET $PIECE(BGPX,U,P)="Previous"
- SET P=P+9
- IF P>(BGPEC-5)
- QUIT
- +14 SET P=17
- FOR
- SET $PIECE(BGPX,U,P)="Baseline"
- SET P=P+9
- IF P>(BGPEC+1)
- QUIT
- +15 WRITE BGPX,!
- +16 KILL BGPX
- +17 DO SETHDR
- +18 SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Num"
- SET P=P+3
- IF P>(BGPEC-2)
- QUIT
- +19 SET P=12
- FOR
- SET $PIECE(BGPX,U,P)="Den"
- SET P=P+3
- IF P>(BGPEC-1)
- QUIT
- +20 SET P=13
- FOR
- SET $PIECE(BGPX,U,P)="%"
- SET P=P+3
- IF P>BGPEC
- QUIT
- +21 WRITE BGPX,!
- +22 SET BGPX=0
- FOR
- SET BGPX=$ORDER(BGPONN2(BGPX))
- IF BGPX'=+BGPX
- QUIT
- WRITE BGPONN2(BGPX),!
- +23 KILL BGPONN2
- ONN3 ;
- +1 KILL BGPEXCT
- +2 SET Y=$$OPEN^%ZISH(BGPUF,BGPFONN3,"W")
- +3 IF Y=1
- IF '$DATA(ZTQUEUED)
- WRITE !!,"Cannot open host file."
- QUIT
- +4 USE IO
- +5 SET BGPP=0
- SET BGPY=$ORDER(^BGPCTRL("B","2010",0))
- SET BGPX=""
- SET BGPEC=$PIECE(^BGPCTRL(BGPY,0),U,21)
- +6 FOR
- SET BGPP=$ORDER(^BGPCTRL(BGPY,45,BGPP))
- IF BGPP'=+BGPP
- QUIT
- Begin DoDot:1
- +7 SET BGPPP1=$PIECE(^BGPCTRL(BGPY,45,BGPP,0),U,1)
- +8 SET BGPZ=$PIECE(^BGPCTRL(BGPY,45,BGPP,0),U,2)
- +9 SET $PIECE(BGPX,U,BGPPP1)=BGPZ
- End DoDot:1
- +10 WRITE BGPX,!
- +11 KILL BGPX
- +12 SET BGPX=""
- SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Current"
- SET P=P+9
- IF P>(BGPEC-8)
- QUIT
- +13 SET P=14
- FOR
- SET $PIECE(BGPX,U,P)="Previous"
- SET P=P+9
- IF P>(BGPEC-5)
- QUIT
- +14 SET P=17
- FOR
- SET $PIECE(BGPX,U,P)="Baseline"
- SET P=P+9
- IF P>(BGPEC+1)
- QUIT
- +15 WRITE BGPX,!
- +16 KILL BGPX
- +17 DO SETHDR
- +18 SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Num"
- SET P=P+3
- IF P>(BGPEC-2)
- QUIT
- +19 SET P=12
- FOR
- SET $PIECE(BGPX,U,P)="Den"
- SET P=P+3
- IF P>(BGPEC-1)
- QUIT
- +20 SET P=13
- FOR
- SET $PIECE(BGPX,U,P)="%"
- SET P=P+3
- IF P>BGPEC
- QUIT
- +21 WRITE BGPX,!
- +22 SET BGPX=0
- FOR
- SET BGPX=$ORDER(BGPONN3(BGPX))
- IF BGPX'=+BGPX
- QUIT
- WRITE BGPONN3(BGPX),!
- +23 KILL BGPONN3
- ONNC ;close host file
- DO ^%ZISC
- +1 QUIT
- GNT1 ;EP - area export file
- +1 KILL BGPEXCT
- +2 IF '$GET(BGPAREAA)
- GOTO Q1
- +3 SET Y=$$OPEN^%ZISH(BGPUF,BGPFGNT1,"W")
- +4 IF Y=1
- IF '$DATA(ZTQUEUED)
- WRITE !!,"Cannot open host file."
- QUIT
- +5 USE IO
- +6 SET BGPP=0
- SET BGPY=$ORDER(^BGPCTRL("B","2010",0))
- SET BGPX=""
- SET BGPEC=$PIECE(^BGPCTRL(BGPY,0),U,4)
- +7 FOR
- SET BGPP=$ORDER(^BGPCTRL(BGPY,38,BGPP))
- IF BGPP'=+BGPP
- QUIT
- Begin DoDot:1
- +8 SET BGPPP1=$PIECE(^BGPCTRL(BGPY,38,BGPP,0),U,1)
- +9 SET BGPZ=$PIECE(^BGPCTRL(BGPY,38,BGPP,0),U,2)
- +10 SET $PIECE(BGPX,U,BGPPP1)=BGPZ
- End DoDot:1
- +11 WRITE BGPX,!
- +12 KILL BGPX
- +13 SET BGPX=""
- SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Current"
- SET P=P+9
- IF P>(BGPEC-8)
- QUIT
- +14 SET P=14
- FOR
- SET $PIECE(BGPX,U,P)="Previous"
- SET P=P+9
- IF P>(BGPEC-5)
- QUIT
- +15 SET P=17
- FOR
- SET $PIECE(BGPX,U,P)="Baseline"
- SET P=P+9
- IF P>(BGPEC+1)
- QUIT
- +16 WRITE BGPX,!
- +17 KILL BGPX
- +18 DO SETHDR
- +19 SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Num"
- SET P=P+3
- IF P>(BGPEC-2)
- QUIT
- +20 SET P=12
- FOR
- SET $PIECE(BGPX,U,P)="Den"
- SET P=P+3
- IF P>(BGPEC-1)
- QUIT
- +21 SET P=13
- FOR
- SET $PIECE(BGPX,U,P)="%"
- SET P=P+3
- IF P>BGPEC
- QUIT
- +22 WRITE BGPX,!
- +23 KILL BGPX
- +24 SET BGPX=0
- FOR
- SET BGPX=$ORDER(BGPEI(BGPX))
- IF BGPX'=+BGPX
- QUIT
- WRITE BGPEI(BGPX),!
- +25 DO ^%ZISC
- Q1 ;
- +1 KILL BGPEI
- GNT2 ;
- +1 KILL BGPEXCT
- +2 IF '$GET(BGPAREAA)
- GOTO Q2
- +3 SET Y=$$OPEN^%ZISH(BGPUF,BGPFGNT2,"W")
- +4 IF Y=1
- IF '$DATA(ZTQUEUED)
- WRITE !!,"Cannot open host file."
- QUIT
- +5 USE IO
- +6 SET BGPP=0
- SET BGPY=$ORDER(^BGPCTRL("B","2010",0))
- SET BGPX=""
- SET BGPEC=$PIECE(^BGPCTRL(BGPY,0),U,16)
- +7 FOR
- SET BGPP=$ORDER(^BGPCTRL(BGPY,40,BGPP))
- IF BGPP'=+BGPP
- QUIT
- Begin DoDot:1
- +8 SET BGPPP1=$PIECE(^BGPCTRL(BGPY,40,BGPP,0),U,1)
- +9 SET BGPZ=$PIECE(^BGPCTRL(BGPY,40,BGPP,0),U,2)
- +10 SET $PIECE(BGPX,U,BGPPP1)=BGPZ
- End DoDot:1
- +11 WRITE BGPX,!
- +12 KILL BGPX
- +13 SET BGPX=""
- SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Current"
- SET P=P+9
- IF P>(BGPEC-8)
- QUIT
- +14 SET P=14
- FOR
- SET $PIECE(BGPX,U,P)="Previous"
- SET P=P+9
- IF P>(BGPEC-5)
- QUIT
- +15 SET P=17
- FOR
- SET $PIECE(BGPX,U,P)="Baseline"
- SET P=P+9
- IF P>(BGPEC+1)
- QUIT
- +16 WRITE BGPX,!
- +17 KILL BGPX
- +18 DO SETHDR
- +19 SET P=11
- FOR
- SET $PIECE(BGPX,U,P)="Num"
- SET P=P+3
- IF P>(BGPEC-2)
- QUIT
- +20 SET P=12
- FOR
- SET $PIECE(BGPX,U,P)="Den"
- SET P=P+3
- IF P>(BGPEC-1)
- QUIT
- +21 SET P=13
- FOR
- SET $PIECE(BGPX,U,P)="%"
- SET P=P+3
- IF P>BGPEC
- QUIT
- +22 WRITE BGPX,!
- +23 KILL BGPX
- +24 SET BGPX=0
- FOR
- SET BGPX=$ORDER(BGPEI2(BGPX))
- IF BGPX'=+BGPX
- QUIT
- WRITE BGPEI2(BGPX),!
- Q2 ;
- +1 KILL BGPEI2
- +2 DO ^%ZISC
- Q3 ;
- +1 DO DEV^BGP0UTLC
- +2 QUIT
- GS ;EP
- +1 KILL ^TMP($JOB)
- +2 ;I $P($G(^BGPSITE(DUZ(2),0)),U,3)="N" Q
- +3 LOCK +^BGPDATA:300
- IF '$TEST
- IF '$DATA(ZTQUEUED)
- WRITE "Unable to lock global"
- QUIT
- +4 ;NOTE: Kill of unscripted global. Export to area. Using standard name.
- +5 SET BGPENDN=$SELECT($PIECE(^BGPSITE(DUZ(2),0),U,11)=0:88887,1:99998)
- +6 KILL ^BGPDATA
- SET X=""
- SET C=0
- FOR
- SET X=$ORDER(^BGPGPDCT(BGPRPT,X))
- IF X'=+X!(X>BGPENDN)
- QUIT
- Begin DoDot:1
- +7 IF $GET(^BGPGPDCT(BGPRPT,X))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X)
- +8 SET X2=""
- FOR
- SET X2=$ORDER(^BGPGPDCT(BGPRPT,X,X2))
- IF X2'=+X2
- QUIT
- Begin DoDot:2
- +9 IF $GET(^BGPGPDCT(BGPRPT,X,X2))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2)
- +10 SET X3=""
- FOR
- SET X3=$ORDER(^BGPGPDCT(BGPRPT,X,X2,X3))
- IF X3'=+X3
- QUIT
- Begin DoDot:3
- +11 IF $GET(^BGPGPDCT(BGPRPT,X,X2,X3))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2,X3)
- +12 SET X4=""
- FOR
- SET X4=$ORDER(^BGPGPDCT(BGPRPT,X,X2,X3,X4))
- IF X4'=+X4
- QUIT
- Begin DoDot:4
- +13 IF $GET(^BGPGPDCT(BGPRPT,X,X2,X3,X4))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- SET $PIECE(^BGPDATA(C),"|",4)=X4
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2,X3,X4)
- +14 SET X5=""
- FOR
- SET X5=$ORDER(^BGPGPDCT(BGPRPT,X,X2,X3,X4,X5))
- IF X5'=+X5
- QUIT
- Begin DoDot:5
- +15 IF $GET(^BGPGPDCT(BGPRPT,X,X2,X3,X4,X5))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- +16 SET $PIECE(^BGPDATA(C),"|",4)=X4
- SET $PIECE(^BGPDATA(C),"|",5)=X5
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDCT(BGPRPT,X,X2,X3,X4,X5)
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +17 SET X=0
- FOR
- SET X=$ORDER(^BGPDATA(X))
- IF X'=+X
- QUIT
- SET ^BGPDATA(X)="BGPGPDCT"_"|"_^BGPDATA(X)
- PRGS ;
- +1 SET S=C+1
- SET X=""
- FOR
- SET X=$ORDER(^BGPGPDPT(BGPRPT,X))
- IF X'=+X!(X>99998)
- QUIT
- Begin DoDot:1
- +2 IF $GET(^BGPGPDPT(BGPRPT,X))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X)
- +3 SET X2=""
- FOR
- SET X2=$ORDER(^BGPGPDPT(BGPRPT,X,X2))
- IF X2'=+X2
- QUIT
- Begin DoDot:2
- +4 IF $GET(^BGPGPDPT(BGPRPT,X,X2))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2)
- +5 SET X3=""
- FOR
- SET X3=$ORDER(^BGPGPDPT(BGPRPT,X,X2,X3))
- IF X3'=+X3
- QUIT
- Begin DoDot:3
- +6 IF $GET(^BGPGPDPT(BGPRPT,X,X2,X3))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2,X3)
- +7 SET X4=""
- FOR
- SET X4=$ORDER(^BGPGPDPT(BGPRPT,X,X2,X3,X4))
- IF X4'=+X4
- QUIT
- Begin DoDot:4
- +8 IF $GET(^BGPGPDPT(BGPRPT,X,X2,X3,X4))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- SET $PIECE(^BGPDATA(C),"|",4)=X4
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2,X3,X4)
- +9 SET X5=""
- FOR
- SET X5=$ORDER(^BGPGPDPT(BGPRPT,X,X2,X3,X4,X5))
- IF X5'=+X5
- QUIT
- Begin DoDot:5
- +10 IF $GET(^BGPGPDPT(BGPRPT,X,X2,X3,X4,X5))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- +11 SET $PIECE(^BGPDATA(C),"|",4)=X4
- SET $PIECE(^BGPDATA(C),"|",5)=X5
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDPT(BGPRPT,X,X2,X3,X4,X5)
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +12 SET X=S-1
- FOR
- SET X=$ORDER(^BGPDATA(X))
- IF X'=+X
- QUIT
- SET ^BGPDATA(X)="BGPGPDPT"_"|"_^BGPDATA(X)
- BLGS ;
- +1 SET S=C+1
- SET X=""
- FOR
- SET X=$ORDER(^BGPGPDBT(BGPRPT,X))
- IF X'=+X!(X>99998)
- QUIT
- Begin DoDot:1
- +2 IF $GET(^BGPGPDBT(BGPRPT,X))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X)
- +3 SET X2=""
- FOR
- SET X2=$ORDER(^BGPGPDBT(BGPRPT,X,X2))
- IF X2'=+X2
- QUIT
- Begin DoDot:2
- +4 IF $GET(^BGPGPDBT(BGPRPT,X,X2))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2)
- +5 SET X3=""
- FOR
- SET X3=$ORDER(^BGPGPDBT(BGPRPT,X,X2,X3))
- IF X3'=+X3
- QUIT
- Begin DoDot:3
- +6 IF $GET(^BGPGPDBT(BGPRPT,X,X2,X3))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2,X3)
- +7 SET X4=""
- FOR
- SET X4=$ORDER(^BGPGPDBT(BGPRPT,X,X2,X3,X4))
- IF X4'=+X4
- QUIT
- Begin DoDot:4
- +8 IF $GET(^BGPGPDBT(BGPRPT,X,X2,X3,X4))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- SET $PIECE(^BGPDATA(C),"|",4)=X4
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2,X3,X4)
- +9 SET X5=""
- FOR
- SET X5=$ORDER(^BGPGPDBT(BGPRPT,X,X2,X3,X4,X5))
- IF X5'=+X5
- QUIT
- Begin DoDot:5
- +10 IF $GET(^BGPGPDBT(BGPRPT,X,X2,X3,X4,X5))]""
- SET C=C+1
- SET $PIECE(^BGPDATA(C),"|")=X
- SET $PIECE(^BGPDATA(C),"|",2)=X2
- SET $PIECE(^BGPDATA(C),"|",3)=X3
- +11 SET $PIECE(^BGPDATA(C),"|",4)=X4
- SET $PIECE(^BGPDATA(C),"|",5)=X5
- SET $PIECE(^BGPDATA(C),"|",8)=^BGPGPDBT(BGPRPT,X,X2,X3,X4,X5)
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +12 SET X=S-1
- FOR
- SET X=$ORDER(^BGPDATA(X))
- IF X'=+X
- QUIT
- SET ^BGPDATA(X)="BGPGPDBT"_"|"_^BGPDATA(X)
- +13 NEW XBGL
- SET XBGL="BGPDATA"
- +14 SET F="BG10"_$PIECE(^AUTTLOC(DUZ(2),0),U,10)_"."_$SELECT(BGPRTYPE=7:"ONM",1:"")_BGPRPT
- +15 NEW XBFN,XBMED,XBF,XBFLT
- +16 SET XBMED="F"
- SET XBFN=F
- SET XBTLE="SAVE OF CRS DATA BY - "_$PIECE(^VA(200,DUZ,0),U)
- SET XBF=0
- SET XBFLT=1
- +17 DO ^XBGSAVE
- +18 LOCK -^BGPDATA
- +19 ;NOTE: kill of unsubscripted global for use in export to area.
- KILL ^TMP($JOB),^BGPDATA
- +20 QUIT
- REPORT ;EP
- +1 SET BGPRPT=""
- SET BGPERR=""
- +2 IF '$DATA(BGPGUI)
- WRITE !!
- +3 ;3 files must have the same ien
- +4 LOCK +^BGPGPDCT:30
- IF '$TEST
- SET BGPERR="Unable to lock global."
- GOTO REPORTX
- +5 LOCK +^BGPGPDPT:30
- IF '$TEST
- SET BGPERR="Unable to lock global."
- GOTO REPORTX
- +6 LOCK +^BGPGPDBT:30
- IF '$TEST
- SET BGPERR="Unable to lock global."
- GOTO REPORTX
- +7 DO GETIEN
- +8 IF 'BGPIEN
- SET BGPERR="Error in control files!"
- SET BGPRPT=""
- GOTO REPORTX
- +9 SET DINUM=BGPIEN
- +10 IF $GET(BGPNPL)
- SET BGPRTYPE=4
- +11 SET BGPR12=$SELECT($GET(BGP0GPU):9,1:BGPRTYPE)
- +12 KILL DIC
- SET X=BGPBD
- SET DIC(0)="L"
- SET DIC="^BGPGPDCT("
- SET DLAYGO=90377.03
- SET DIADD=1
- SET DIC("DR")=".02////"_BGPED_";.03////"_BGPPBD_";.04////"_BGPPED_";.05////"_BGPBBD_";.06////"_BGPBED_";.07////"_$GET(BGPPER)_";.08////"_$GET(BGPQTR)
- +13 SET DIC("DR")=DIC("DR")_";.09////"_$PIECE(^AUTTLOC(DUZ(2),0),U,10)_";.11////"_$EXTRACT($PIECE(^AUTTLOC(DUZ(2),0),U,10),1,4)_";.12////"_BGPR12_";.13////"_DT_";.14////"_BGPBEN_";.15////"_...
- ... $PIECE($GET(^AUTTLOC(DUZ(2),1)),U,3)_";.16///"_$PIECE(^BGPSITE(DUZ(2),0),U,4)
- +14 SET DIC("DR")=DIC("DR")_";.17///"_$PIECE(^BGPSITE(DUZ(2),0),U,6)_";.18///"_$SELECT($GET(BGPTAXI):$PIECE(^ATXAX(BGPTAXI,0),U),1:"")
- +15 DO ^DIC
- KILL DIC,DA,DR,DIADD,DLAYGO
- IF Y=-1
- SET BGPERR="UNABLE TO CREATE REPORT FILE ENTRY!"
- SET BGPQUIT=1
- GOTO REPORTX
- +16 SET BGPRPT=+Y
- +17 KILL DIC
- SET X=BGPBD
- SET DIC(0)="L"
- SET DIC="^BGPGPDPT("
- SET DLAYGO=90377.04
- SET DIADD=1
- SET DIC("DR")=".02////"_BGPED_";.03////"_BGPPBD_";.04////"_BGPPED_";.05////"_BGPBBD_";.06////"_BGPBED_";.07////"_$GET(BGPPER)_";.08////"_$GET(BGPQTR)
- +18 SET DIC("DR")=DIC("DR")_";.09////"_$PIECE(^AUTTLOC(DUZ(2),0),U,10)_";.11////"_$EXTRACT($PIECE(^AUTTLOC(DUZ(2),0),U,10),1,4)_";.12////"_BGPR12_";.13////"_DT_";.14////"_BGPBEN_";.15////"_...
- ... $PIECE($GET(^AUTTLOC(DUZ(2),1)),U,3)_";.16///"_$PIECE(^BGPSITE(DUZ(2),0),U,4)
- +19 SET DIC("DR")=DIC("DR")_";.17///"_$PIECE(^BGPSITE(DUZ(2),0),U,6)_";.18///"_$SELECT($GET(BGPTAXI):$PIECE(^ATXAX(BGPTAXI,0),U),1:"")
- +20 SET DINUM=BGPRPT
- DO ^DIC
- KILL DIC,DA,DR,DIADD,DLAYGO,DINUM
- IF Y=-1
- SET BGPERR="UNABLE TO CREATE REPORT FILE ENTRY!"
- SET BGPQUIT=1
- GOTO REPORTX
- +21 SET BGPRPTP=+Y
- +22 KILL DIC
- SET X=BGPBD
- SET DIC(0)="L"
- SET DIC="^BGPGPDBT("
- SET DLAYGO=90377.05
- SET DIADD=1
- SET DIC("DR")=".02////"_BGPED_";.03////"_BGPPBD_";.04////"_BGPPED_";.05////"_BGPBBD_";.06////"_BGPBED_";.07////"_$GET(BGPPER)_";.08////"_$GET(BGPQTR)
- +23 SET DIC("DR")=DIC("DR")_";.09////"_$PIECE(^AUTTLOC(DUZ(2),0),U,10)_";.11////"_$EXTRACT($PIECE(^AUTTLOC(DUZ(2),0),U,10),1,4)_";.12////"_BGPR12_";.13////"_DT_";.14////"_BGPBEN_";.15////"_...
- ... $PIECE($GET(^AUTTLOC(DUZ(2),1)),U,3)_";.16///"_$PIECE(^BGPSITE(DUZ(2),0),U,4)
- +24 SET DIC("DR")=DIC("DR")_";.17///"_$PIECE(^BGPSITE(DUZ(2),0),U,6)_";.18///"_$SELECT($GET(BGPTAXI):$PIECE(^ATXAX(BGPTAXI,0),U),1:"")
- +25 SET DINUM=BGPRPT
- DO ^DIC
- KILL DIC,DA,DR,DIADD,DLAYGO
- IF Y=-1
- SET BGPERR="UNABLE TO CREATE REPORT FILE ENTRY!"
- SET BGPQUIT=1
- GOTO REPORTX
- +26 SET BGPRPTB=+Y
- +27 ;
- +28 KILL ^BGPGPDCT(BGPRPT,9999)
- +29 SET C=0
- SET X=""
- FOR
- SET X=$ORDER(BGPTAX(X))
- IF X=""
- QUIT
- SET C=C+1
- SET ^BGPGPDCT(BGPRPT,9999,C,0)=X
- SET ^BGPGPDCT(BGPRPT,9999,"B",X,C)=""
- +30 SET ^BGPGPDCT(BGPRPT,9999,0)="^90377.12999A^"_C_"^"_C
- +31 KILL ^BGPGPDCT(BGPRPT,1111)
- +32 IF $GET(BGPMFITI)
- SET C=0
- SET X=""
- FOR
- SET X=$ORDER(^ATXAX(BGPMFITI,21,"B",X))
- IF X=""
- QUIT
- SET C=C+1
- SET Y=$PIECE($GET(^DIC(4,X,0)),U)
- SET ^BGPGPDCT(BGPRPT,1111,C,0)=Y
- SET ^BGPGPDCT(BGPRPT,1111,"B",Y,C)=""
- +33 SET ^BGPGPDCT(BGPRPT,1111,0)="^90377.031111^"_C_"^"_C
- +34 SET ^BGPGPDCT(BGPRPT,99999,0)="^90377.129999A^0^0"
- +35 SET ^BGPGPDPT(BGPRPT,99999,0)="^90377.139999A^0^0"
- +36 SET ^BGPGPDBT(BGPRPT,99999,0)="^90377.149999A^0^0"
- REPORTX ;
- +1 IF BGPERR]""
- WRITE !!,BGPERR
- +2 IF $GET(BGPNPL)
- SET BGPRTYPE=$SELECT($GET(BGPONMR):7,1:1)
- +3 DO ^XBFMK
- +4 KILL DIC,DIADD,DLAYGO,DR,DA,DD,X,Y,DINUM
- +5 LOCK -^BGPGPDCT
- +6 LOCK -^BGPGPDPT
- +7 LOCK -^BGPGPDBT
- +8 QUIT
- GETIEN ;EP - Get next ien available in all 3 files
- +1 SET BGPF=90377.03
- DO ENT
- +2 SET BGPF=90377.04
- DO ENT
- +3 SET BGPF=90377.05
- DO ENT
- +4 SET BGPIEN=$PIECE(^BGPGPDCT(0),U,3)+1
- S IF $DATA(^BGPGPDPT(BGPIEN))!($DATA(^BGPGPDBT(BGPIEN)))
- SET BGPIEN=BGPIEN+1
- GOTO S
- +1 QUIT
- +2 ;
- ENT ;
- +1 NEW GBL,NXT,CTR,XBHI,XBX,XBY,ANS
- +2 SET GBL=^DIC(BGPF,0,"GL")
- +3 SET GBL=GBL_"NXT)"
- +4 SET (XBHI,NXT,CTR)=0
- +5 ;W:'(CTR#50) "."
- FOR L=0:0
- SET NXT=$ORDER(@(GBL))
- IF NXT'=+NXT
- QUIT
- SET XBHI=NXT
- SET CTR=CTR+1
- +6 SET NXT=""
- SET XBX=$ORDER(@(GBL))
- SET XBX=^(0)
- SET XBY=$PIECE(XBX,U,4)
- SET XBX=$PIECE(XBX,U,3)
- +7 SET NXT=0
- SET $PIECE(@(GBL),U,3)=XBHI
- SET $PIECE(^(0),U,4)=CTR
- +8 ;
- EOJ ;
- +1 KILL ANS,XBHI,XBX,XBY,CTR,DIC,FILE,GBL,L,NXT,BGPF
- +2 QUIT
- +3 ;
- LZERO(V,L) ;EP
- +1 NEW %,I
- +2 SET %=$LENGTH(V)
- SET Z=L-%
- FOR I=1:1:Z
- SET V="0"_V
- +3 QUIT V
- RZERO(V,L) ;EP
- +1 NEW %,I
- +2 SET %=$LENGTH(V)
- SET Z=L-%
- FOR I=1:1:Z
- SET V=V_"0"
- +3 QUIT V
- XTMP(N,D) ;EP
- +1 IF $GET(N)=""
- QUIT
- +2 SET ^XTMP(N,0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^"_$GET(D)
- +3 QUIT