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

BNIGVLP8.m

Go to the documentation of this file.
  1. BNIGVLP8 ; IHS/CMI/LAB - print delimited ;
  1. ;;1.0;BNI CPHD ACTIVITY DATASYSTEM;;DEC 20, 2006
  1. ;IHS/TUCSON/LAB - added killing of BNIGPRNT to V subroutine 05/19/97
  1. ;IHS/TUCSON/LAB - modified subroutine FLAT - patch 1 - 05/27/97
  1. DELIMIT ;EP - Set up header line, dash line
  1. S BNIGFCNT=0,BNIGUIC=1
  1. K ^TMP($J,"BNIGDELIMITED")
  1. S BNIGDELC=0,BNIGPIEC=0
  1. I BNIGPTVS="R" S BNIGHDR="RECORD IEN",BNIGPIEC=1
  1. S X=0,BNIGHEAD="" F S X=$O(^BNIRTMP(BNIGRPT,12,X)) Q:X'=+X D
  1. .S BNIGPIEC=BNIGPIEC+1
  1. .S H=$P(^BNIGRI($P(^BNIRTMP(BNIGRPT,12,X,0),U),0),U,6)
  1. .S $P(BNIGHDR,U,BNIGPIEC)=H
  1. .Q
  1. I '$G(BNIGUI) D COVPAGE^BNIGVLP1 ;print cover page - note: if user ^'s out of cover page, processing continues
  1. I $G(BNIGUI) D COVPAGE^BNIGVLP3
  1. PROC ;process printing of report
  1. I $G(BNIGUI) S BNIGUIC=BNIC S ^BNIGUI(BNIIEN,12,BNIGUIC,0)=BNIGHDR G PROC1
  1. S Y=0 I BNIGDELT="F" D OPEN Q:Y=1
  1. W !,BNIGHDR,!
  1. PROC1 ;
  1. I '$D(^XTMP("BNIGVL",BNIGJOB,BNIGBTH)) W !,"NO DATA TO REPORT" G DONE
  1. S (BNIGSRTV,BNIGFRST)="" K BNIGQUIT
  1. F S BNIGSRTV=$O(^XTMP("BNIGVL",BNIGJOB,BNIGBTH,"DATA HITS",BNIGSRTV)) Q:BNIGSRTV=""!($D(BNIGQUIT)) D V
  1. DONE ;
  1. ;write out delimited file
  1. I '$G(BNIGUI),BNIGDELT="F" D ^%ZISC
  1. K ^XTMP("BNIGVL",BNIGJOB,BNIGBT),^TMP($J,"BNIGDELIMITED")
  1. D DEL^BNIGVL
  1. K BNIGBD,BNIGSD,BNIGED,BNIGEDD,BNIGBDD,BNIGRPT,BNIGHEAD,BNIGLINE,BNIGL,BNIGRCNT,BNIGI,BNIGCRIT,BNIGVIEN,BNIGVREC,BNIGJOB,BNIGBT,BNIGBTH,BNIGQUIT,BNIGHDR,BNIGDASH,BNIGLENG,BNIGPCNT,BNIGTCW,BNIGODAT,BNIGPG,AUPNDAYS,AUPNPAT,AUPNDOD,AUPNDOB,AUPNSEX
  1. K BNIGSORT,BNIGSRT,BNIGSORX,BNIGFILE,BNIGFIEL,BNIGPRNT,BNIGX,BNIGTYPE,BNIGFOUN,D0,J,K,L,BNIGPRNM,BNIGTEST,BNIGSEAT,BNIGLHDR,BNIGFRST
  1. D EN^XBVK("BNIG")
  1. Q
  1. V ;GETS DATA HITS
  1. S BNIGCNT=0
  1. ;get readable sort value
  1. K BNIGPRNT
  1. S BNIGSRTR="",BNIGVIEN=$O(^XTMP("BNIGVL",BNIGJOB,BNIGBTH,"DATA HITS",BNIGSRTV,0)) I BNIGVIEN]"" S BNIGCRIT=BNIGSORT D
  1. .I BNIGPTVS="R" S BNIGVREC=^BNIREC(BNIGVIEN,0) X:$D(^BNIGRI(BNIGSORT,3)) ^(3) S BNIGSRTR=BNIGPRNT
  1. K BNIGFRST
  1. S BNIGVIEN=0 F S BNIGVIEN=$O(^XTMP("BNIGVL",BNIGJOB,BNIGBTH,"DATA HITS",BNIGSRTV,BNIGVIEN)) Q:BNIGVIEN'=+BNIGVIEN!($D(BNIGQUIT)) D
  1. .I BNIGPTVS="R" S BNIGVREC=^BNIREC(BNIGVIEN,0) D PRINT Q
  1. .Q
  1. Q
  1. PRINT ;
  1. K ^XTMP("BNIGLINE",$J) S ^XTMP("BNIGLINE",$J,1)=""
  1. K BNIGDELD
  1. S BNIGPIEC=0,BNIGLINE=1,BNIGCNT=BNIGCNT+1
  1. I BNIGPTVS="R" S BNIGDELD(1,"S")=BNIGVIEN,BNIGPIEC=1
  1. S BNIGI=0 F S BNIGI=$O(^BNIRTMP(BNIGRPT,12,BNIGI)) Q:BNIGI'=+BNIGI!($D(BNIGQUIT)) S BNIGCRIT=$P(^BNIRTMP(BNIGRPT,12,BNIGI,0),U) D
  1. .S BNIGPIEC=BNIGPIEC+1
  1. .I '$P(^BNIGRI(BNIGCRIT,0),U,8) D SINGLE Q
  1. .D MULT
  1. .Q
  1. K BNIGDELP
  1. F X=1:1:BNIGLINE D
  1. .S BNIGCNT=BNIGCNT+1
  1. .F P=1:1:BNIGPIEC D
  1. ..S V=$O(BNIGDELD(P,""))
  1. ..I V="S" S D=BNIGDELD(P,V),$P(BNIGDELP(BNIGCNT),U,P)=D
  1. ..I V="M" S D=$S($P(BNIGDELD(P,V),"|",X)]"":$P(BNIGDELD(P,V),"|",X),1:"--"),$P(BNIGDELP(BNIGCNT),U,P)=D
  1. I '$G(BNIGUI) S X=0 F S X=$O(BNIGDELP(X)) Q:X'=+X W BNIGDELP(X),!
  1. I $G(BNIGUI) D
  1. .S (C,X)=0 F S X=$O(BNIGDELP(X)) Q:X'=+X S BNIGUIC=BNIGUIC+1,^BNIGUI(BNIIEN,12,BNIGUIC,0)=BNIGDELP(X)
  1. .S ^BNIGUI(BNIIEN,12,0)="^90512.0812^"_BNIGUIC_"^"_BNIGUIC_"^"_DT
  1. Q
  1. SINGLE ;process single valued item
  1. K BNIGPRNT
  1. S BNIGX=0
  1. X:$D(^BNIGRI(BNIGCRIT,3)) ^(3)
  1. I BNIGPRNT="" S BNIGPRNT="--"
  1. S BNIGDELD(BNIGPIEC,"S")=BNIGPRNT
  1. Q
  1. MULT ;
  1. K BNIGPRNT,BNIGPRNM,BNIGY S (BNIGX,BNIGPCNT)=0
  1. X:$D(^BNIGRI(BNIGCRIT,3)) ^(3)
  1. ;if 13th, then $o through delete bad ones and then reorder/number
  1. ;new logic here to screen if user wants to screen
  1. I $P(^BNIRTMP(BNIGRPT,12,BNIGI,0),U,3) D
  1. .;does this one match selected ones?
  1. .S X=0 F S X=$O(BNIGPRNM(X)) Q:X'=+X D
  1. ..S Z=$G(BNIGPRNM(X,"I")) I Z="" K BNIGPRNM(X) Q
  1. ..I '$D(^BNIGRTMP(BNIGRPT,11,BNIGCRIT,11,"B",Z)) K BNIGPRNM(X)
  1. K Y S (X,C)=0 F S X=$O(BNIGPRNM(X)) Q:X'=+X S C=C+1,Y(C)=BNIGPRNM(X)
  1. I C>BNIGLINE S BNIGLINE=C
  1. K BNIGPRNM S X=0 F S X=$O(Y(X)) Q:X'=+X S BNIGPRNM(X)=Y(X)
  1. I '$D(BNIGPRNM) S BNIGPRNT="--" D
  1. .S BNIGDELD(BNIGPIEC,"M")=BNIGPRNT
  1. S X=0 F S X=$O(BNIGPRNM(X)) Q:X'=+X D
  1. .S $P(BNIGDELD(BNIGPIEC,"M"),"|",X)=BNIGPRNM(X)
  1. Q
  1. DIQ ;
  1. K BNIGPRNT,BNIGFILE,BNIGFIEL
  1. S BNIGFILE=$P($P(^BNIGRI(BNIGCRIT,0),U,4),","),BNIGFIEL=$P($P(^(0),U,4),",",2)
  1. S DIQ(0)="EN",DIQ="BNIGPRNT(",DIC=BNIGFILE,DR=BNIGFIEL D EN^DIQ1 K DIC,DR,DIQ
  1. I '$D(BNIGPRNT(BNIGFILE,DA,BNIGFIEL,"E")) S BNIGPRNT(BNIGFILE,DA,BNIGFIEL,"E")="--"
  1. S BNIGPRNT=BNIGPRNT(BNIGFILE,DA,BNIGFIEL,"E")
  1. Q
  1. OPEN ;write flat file from global
  1. ;if screen selected do screen
  1. ;USE GS FROM GPRA TO OPEN AND WRITE FILE
  1. ;I BNIGDELT="S" D SCREEN Q
  1. I $G(BNIGUI) Q
  1. S Y=$$OPEN^%ZISH(BNIGHDIR,BNIGDELF,"W")
  1. I Y=1 W:'$D(ZTQUEUED) !!,"Cannot open host file to write out DELIMITED data. Notify programmer." Q
  1. U IO
  1. Q