- ACHSDNL1 ; IHS/ITSC/PMF - DENIAL LTR/FS (DRIVER) (2/6) ; [ 10/31/2003 11:44 AM ]
- ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**4,6,22**;JUNE 11, 2001;Build 13
- ;ACHS*3.1*4 allow multiple office copies
- ;ACHS*3.1*6 6.5.03 IHS/SET/FCJ NO LONGER WANT MANDATORY OFFICE COPY
- ;
- START ;ENTRY POINT - TaskMan. PRINT LETTERS AND FACT SHEETS.
- S ACHSQUIT=0
- D BRPT^ACHS
- S ACHSBM=ACHSBM-4
- W @IOF
- I $G(ACHDBDT) S ACHDBDT=ACHDBDT-1
- G:'ACHDBDT S3
- S1 ;
- I $G(ACHDBDT) S ACHDBDT=$O(^ACHSDEN(DUZ(2),"D","AISSUE",ACHDBDT)) G END:'ACHDBDT!(ACHDBDT>ACHDEDT)!($G(ACHSQUIT))
- S ACHSA=0
- S2 ;
- S ACHSA=$O(^ACHSDEN(DUZ(2),"D","AISSUE",ACHDBDT,ACHSA))
- G S1:+ACHSA=0
- G S2:$$DN^ACHS(0,8)="Y"
- G S2:$E($$DN^ACHS(0,1))="#"
- ;
- S3 ;
- S ACHDONE=""
- ;ACHS*3.1*4 4/5/02 pmf print 0 to 10 office copies
- ;D ^ACHSDNL2 Q:$G(ACHSQUIT) ; ACHS*3.1*4
- ;ACHS*3.1*6 6.5.03 IHS/SET/FCJ NO LONGER WANT MANDATORY OFFICE COPY
- ;S:'$G(ACHDCOFF) ACHDCOFF=1 ;ACHS*3.1*6 6.5.03
- S:'$G(ACHDCOFF) ACHDCOFF=0 ;ACHS*3.1*6 6.5.03
- F ACHSIII=1:1:ACHDCOFF D ^ACHSDNL2 Q:$G(ACHSQUIT) ; ACHS*3.1*4
- I $G(ACHSQUIT) Q ; ACHS*3.1*4
- S ACHDONE=1 ; ACHS*3.1*4
- ;
- I $D(ACHDPROZ) S ACHDCPAT=0
- I ACHDCPAT>0 F ACHD("I")=1:1:ACHDCPAT D ^ACHSDNL2,CKPTR G:X=27!(X=U) END
- S ACHD("CPAT")=ACHDCPAT
- G:ACHDCVEN'>0 PRNTFACT
- K ACHDCPAT
- I $D(ACHDPROZ) G PROZ
- S ACHDNAME=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,100)),U,3)
- S ACHDADDR=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,100)),U,4,7)
- S ACHSVPTR=""
- S ACHDONFL=$S($$DN^ACHS(100,1)="Y":1,1:0)
- ;
- I ACHDONFL,$$DN^ACHS(100,2) D
- .S ACHSVPTR=$$DN^ACHS(100,2)
- .S ACHDNAME=$P($G(^AUTTVNDR(ACHSVPTR,0)),U)
- ;
- F ACHD("I")=1:1:ACHDCVEN D ^ACHSDNL2,CKPTR G:X=27!(X=U) END
- ;
- ;FIND ALL 'OTHER PROVIDER ON-FILE' ENTRIES
- S ACHDNAME="",ACHDONFL=1
- F ACHDVEND=0:0 S ACHDVEND=$O(^ACHSDEN(DUZ(2),"D",ACHSA,200,ACHDVEND)) Q:'ACHDVEND D
- .S ACHSVPTR=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,200,ACHDVEND,0)),U)
- .S ACHDNAME=$P($G(^AUTTVNDR($P($G(^ACHSDEN(DUZ(2),"D",ACHSA,200,ACHDVEND,0)),U),0)),U) F ACHD("I")=1:1:ACHDCVEN D ^ACHSDNL2 Q:X=27!(X=U)
- ;
- ;FIND ALL 'OTHER PROVIDER (NOT ON-FILE)' ENTRIES
- S ACHDONFL=0,ACHDNODE=210
- F ACHDVEND=0:0 S ACHDVEND=$O(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND)) Q:'ACHDVEND D
- .S ACHDNAME=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U)
- .S ACHDADDR=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U,2,5)
- .F ACHD("I")=1:1:ACHDCVEN D ^ACHSDNL2 Q:X=27!(X=U)
- ;
- ;
- PRNTFACT ;
- I ACHDCFAC F ACHD("I")=1:1:ACHDCFAC D ^ACHSDNL4,CKPTR G:X=27!(X=U) END
- I ACHDBDT S ACHDCPAT=ACHD("CPAT") G S2
- END ;
- K A,ACHDADDR,ACHDOC,ACHDOS,ACHDCFAC,ACHDCPAT,ACHDCVEN,ACHSA,ACHDISDT,ACHDNAME,ACHDNODE,ACHDRQDT,ACHDST,ACHDVEND,ACHDONFL
- D ERPT^ACHS,END^ACHSDNL
- Q
- ;
- CKPTR ; --- Check if user pressed ESC
- I $D(ZTSK) S X=0 Q
- U IO(0)
- R *X:0
- I X'=27,(X'=U) U IO Q
- W *7,*7,*7
- F R X:0 Q:'$T
- W !!,"*** PRINTING INTERRUPTED ***",!
- S X=27
- Q
- ;
- PROZ ;
- I $P(ACHDPROZ,U,2)'="Y" G PROZ1
- S ACHSVPTR=$P(ACHDPROZ,U,3)
- S ACHDONFL=1
- S ACHDNAME=$P($G(^AUTTVNDR(ACHSVPTR,0)),U)
- D ^ACHSDNL2
- G PRNTFACT
- ;
- PROZ1 ;
- I $P(ACHDPROZ,U,2)'="N" Q
- S ACHDONFL=0,ACHDVEND=$P(ACHDPROZ,U,3)
- I 'ACHDVEND S ACHDNAME=$P(ACHDPROZ,U),ACHDADDR=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,100)),U,3,7) G PROZ2
- S ACHDNAME=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U)
- ;ACHS*3.1*22 ;CHANGED 3 TO 2 IN NXT LINE
- S ACHDADDR=$P($G(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U,2,7)
- PROZ2 ;
- F ACHD("I")=1:1:ACHDCVEN D ^ACHSDNL2
- G PRNTFACT
- ;
- ACHSDNL1 ; IHS/ITSC/PMF - DENIAL LTR/FS (DRIVER) (2/6) ; [ 10/31/2003 11:44 AM ]
- +1 ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**4,6,22**;JUNE 11, 2001;Build 13
- +2 ;ACHS*3.1*4 allow multiple office copies
- +3 ;ACHS*3.1*6 6.5.03 IHS/SET/FCJ NO LONGER WANT MANDATORY OFFICE COPY
- +4 ;
- START ;ENTRY POINT - TaskMan. PRINT LETTERS AND FACT SHEETS.
- +1 SET ACHSQUIT=0
- +2 DO BRPT^ACHS
- +3 SET ACHSBM=ACHSBM-4
- +4 WRITE @IOF
- +5 IF $GET(ACHDBDT)
- SET ACHDBDT=ACHDBDT-1
- +6 IF 'ACHDBDT
- GOTO S3
- S1 ;
- +1 IF $GET(ACHDBDT)
- SET ACHDBDT=$ORDER(^ACHSDEN(DUZ(2),"D","AISSUE",ACHDBDT))
- IF 'ACHDBDT!(ACHDBDT>ACHDEDT)!($GET(ACHSQUIT))
- GOTO END
- +2 SET ACHSA=0
- S2 ;
- +1 SET ACHSA=$ORDER(^ACHSDEN(DUZ(2),"D","AISSUE",ACHDBDT,ACHSA))
- +2 IF +ACHSA=0
- GOTO S1
- +3 IF $$DN^ACHS(0,8)="Y"
- GOTO S2
- +4 IF $EXTRACT($$DN^ACHS(0,1))="#"
- GOTO S2
- +5 ;
- S3 ;
- +1 SET ACHDONE=""
- +2 ;ACHS*3.1*4 4/5/02 pmf print 0 to 10 office copies
- +3 ;D ^ACHSDNL2 Q:$G(ACHSQUIT) ; ACHS*3.1*4
- +4 ;ACHS*3.1*6 6.5.03 IHS/SET/FCJ NO LONGER WANT MANDATORY OFFICE COPY
- +5 ;S:'$G(ACHDCOFF) ACHDCOFF=1 ;ACHS*3.1*6 6.5.03
- +6 ;ACHS*3.1*6 6.5.03
- IF '$GET(ACHDCOFF)
- SET ACHDCOFF=0
- +7 ; ACHS*3.1*4
- FOR ACHSIII=1:1:ACHDCOFF
- DO ^ACHSDNL2
- IF $GET(ACHSQUIT)
- QUIT
- +8 ; ACHS*3.1*4
- IF $GET(ACHSQUIT)
- QUIT
- +9 ; ACHS*3.1*4
- SET ACHDONE=1
- +10 ;
- +11 IF $DATA(ACHDPROZ)
- SET ACHDCPAT=0
- +12 IF ACHDCPAT>0
- FOR ACHD("I")=1:1:ACHDCPAT
- DO ^ACHSDNL2
- DO CKPTR
- IF X=27!(X=U)
- GOTO END
- +13 SET ACHD("CPAT")=ACHDCPAT
- +14 IF ACHDCVEN'>0
- GOTO PRNTFACT
- +15 KILL ACHDCPAT
- +16 IF $DATA(ACHDPROZ)
- GOTO PROZ
- +17 SET ACHDNAME=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,100)),U,3)
- +18 SET ACHDADDR=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,100)),U,4,7)
- +19 SET ACHSVPTR=""
- +20 SET ACHDONFL=$SELECT($$DN^ACHS(100,1)="Y":1,1:0)
- +21 ;
- +22 IF ACHDONFL
- IF $$DN^ACHS(100,2)
- Begin DoDot:1
- +23 SET ACHSVPTR=$$DN^ACHS(100,2)
- +24 SET ACHDNAME=$PIECE($GET(^AUTTVNDR(ACHSVPTR,0)),U)
- End DoDot:1
- +25 ;
- +26 FOR ACHD("I")=1:1:ACHDCVEN
- DO ^ACHSDNL2
- DO CKPTR
- IF X=27!(X=U)
- GOTO END
- +27 ;
- +28 ;FIND ALL 'OTHER PROVIDER ON-FILE' ENTRIES
- +29 SET ACHDNAME=""
- SET ACHDONFL=1
- +30 FOR ACHDVEND=0:0
- SET ACHDVEND=$ORDER(^ACHSDEN(DUZ(2),"D",ACHSA,200,ACHDVEND))
- IF 'ACHDVEND
- QUIT
- Begin DoDot:1
- +31 SET ACHSVPTR=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,200,ACHDVEND,0)),U)
- +32 SET ACHDNAME=$PIECE($GET(^AUTTVNDR($PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,200,ACHDVEND,0)),U),0)),U)
- FOR ACHD("I")=1:1:ACHDCVEN
- DO ^ACHSDNL2
- IF X=27!(X=U)
- QUIT
- End DoDot:1
- +33 ;
- +34 ;FIND ALL 'OTHER PROVIDER (NOT ON-FILE)' ENTRIES
- +35 SET ACHDONFL=0
- SET ACHDNODE=210
- +36 FOR ACHDVEND=0:0
- SET ACHDVEND=$ORDER(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND))
- IF 'ACHDVEND
- QUIT
- Begin DoDot:1
- +37 SET ACHDNAME=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U)
- +38 SET ACHDADDR=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U,2,5)
- +39 FOR ACHD("I")=1:1:ACHDCVEN
- DO ^ACHSDNL2
- IF X=27!(X=U)
- QUIT
- End DoDot:1
- +40 ;
- +41 ;
- PRNTFACT ;
- +1 IF ACHDCFAC
- FOR ACHD("I")=1:1:ACHDCFAC
- DO ^ACHSDNL4
- DO CKPTR
- IF X=27!(X=U)
- GOTO END
- +2 IF ACHDBDT
- SET ACHDCPAT=ACHD("CPAT")
- GOTO S2
- END ;
- +1 KILL A,ACHDADDR,ACHDOC,ACHDOS,ACHDCFAC,ACHDCPAT,ACHDCVEN,ACHSA,ACHDISDT,ACHDNAME,ACHDNODE,ACHDRQDT,ACHDST,ACHDVEND,ACHDONFL
- +2 DO ERPT^ACHS
- DO END^ACHSDNL
- +3 QUIT
- +4 ;
- CKPTR ; --- Check if user pressed ESC
- +1 IF $DATA(ZTSK)
- SET X=0
- QUIT
- +2 USE IO(0)
- +3 READ *X:0
- +4 IF X'=27
- IF (X'=U)
- USE IO
- QUIT
- +5 WRITE *7,*7,*7
- +6 FOR
- READ X:0
- IF '$TEST
- QUIT
- +7 WRITE !!,"*** PRINTING INTERRUPTED ***",!
- +8 SET X=27
- +9 QUIT
- +10 ;
- PROZ ;
- +1 IF $PIECE(ACHDPROZ,U,2)'="Y"
- GOTO PROZ1
- +2 SET ACHSVPTR=$PIECE(ACHDPROZ,U,3)
- +3 SET ACHDONFL=1
- +4 SET ACHDNAME=$PIECE($GET(^AUTTVNDR(ACHSVPTR,0)),U)
- +5 DO ^ACHSDNL2
- +6 GOTO PRNTFACT
- +7 ;
- PROZ1 ;
- +1 IF $PIECE(ACHDPROZ,U,2)'="N"
- QUIT
- +2 SET ACHDONFL=0
- SET ACHDVEND=$PIECE(ACHDPROZ,U,3)
- +3 IF 'ACHDVEND
- SET ACHDNAME=$PIECE(ACHDPROZ,U)
- SET ACHDADDR=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,100)),U,3,7)
- GOTO PROZ2
- +4 SET ACHDNAME=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U)
- +5 ;ACHS*3.1*22 ;CHANGED 3 TO 2 IN NXT LINE
- +6 SET ACHDADDR=$PIECE($GET(^ACHSDEN(DUZ(2),"D",ACHSA,210,ACHDVEND,0)),U,2,7)
- PROZ2 ;
- +1 FOR ACHD("I")=1:1:ACHDCVEN
- DO ^ACHSDNL2
- +2 GOTO PRNTFACT
- +3 ;