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

ACHSCHK.m

Go to the documentation of this file.
  1. ACHSCHK ; IHS/ITSC/PMF - PRINT 638 CHECKS (1/2) ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. ;
  1. S ACHSADJ=""
  1. D ^ACHSUSC ;SELECT DOCUMENT
  1. I '$D(ACHSDIEN) D K Q
  1. D G K:'$D(ACHSDIEN)
  1. ;
  1. I $$DOC^ACHS(2,2)>0 W *7,!!,"A CHECK HAS ALREADY BEEN PRINTED FOR THIS DOCUMENT" K ACHSDIEN Q
  1. ;
  1. ;QUIT IF 'STATUS'= "PAID" AND THERE IS A PAID AMOUNT RECORD
  1. I $P($G(^ACHSF(DUZ(2),"D",ACHSDIEN,0)),U,12)=3&($D(^ACHSF(DUZ(2),"D",ACHSDIEN,"PA"))) W *7,!!,"Not a paid document OR pay amount is 0." Q
  1. ;
  1. DEV ;
  1. W !
  1. S %ZIS="0P",%ZIS("A")="DEVICE for printing checks:",%ZIS("B")=""
  1. D ^%ZIS,SLV^ACHSFU:$D(IO("S"))
  1. ;
  1. I POP D K1 Q
  1. ;
  1. S ACHSCLEN=+$P($P($T(@"FORMAT"),";;"),";",2)
  1. ;
  1. F X:$D(IO("S")) ACHSPPC U IO(0) W !,"TEST CHECK POSITION ON THE PRINTER? " D READ^ACHSFU G K1:$D(DUOUT)!$D(DTOUT) Q:"Yy"'[$E(Y_"N") D TEST
  1. BCN ;
  1. X:$D(IO("S")) ACHSPPC
  1. S ACHSBCN=1,Y=0,Y=$O(^ACHSF(DUZ(2),"TCHK",Y))
  1. S:Y'="" ACHSBCN=(999999999-Y)+1
  1. U IO(0)
  1. W !!,"ENTER THE ",$S($D(ACHSBAT):"BEGINNING ",1:""),"CHECK NUMBER : ",ACHSBCN,"//"
  1. D READ^ACHSFU
  1. I $G(ACHSQUIT) D K1 Q
  1. G BCN1:Y=""
  1. I +Y<1 W *7," ??" G BCN
  1. ;
  1. ;CHECK THE 'CHECK #' X-REF
  1. I $D(^ACHSF(DUZ(2),"TCHK",999999999-Y)) W *7,!,"THIS CHECK NUMBER HAS ALREADY BEEN USED" G BCN
  1. S ACHSBCN=+Y
  1. BCN1 ;
  1. W " ",ACHSBCN,!!,"READY TO START? N// "
  1. D READ^ACHSFU
  1. I $G(ACHSQUIT) D K1 Q
  1. G DEV:$D(DUOUT)!("Yy"'[($E(Y_"N")))
  1. X:$D(IO("S")) ACHSPPO
  1. U IO
  1. S1 ;
  1. K ^UTILITY("DIQ1",$J)
  1. S ACHSLPOS=0
  1. F ACHS=1:1 S ACHSWORK=$T(@"FORMAT"+ACHS) Q:ACHSWORK="" D FMT,POSITION,VALUE
  1. F Q:ACHSLPOS=ACHSCLEN W ! S ACHSLPOS=ACHSLPOS+1
  1. S $P(^ACHSF(DUZ(2),"D",ACHSDIEN,2),U,2)=ACHSBCN,$P(^(2),U,3)=DT
  1. S ^ACHSF(DUZ(2),"TCHK",999999999-ACHSBCN,ACHSDIEN)=""
  1. K ^ACHS(7,"CHS 638 CHECKS",DUZ(2),ACHSDIEN)
  1. I $D(ACHSBAT) F S ACHSDIEN=$O(^ACHS(7,"CHS 638 CHECKS",DUZ(2),ACHSDIEN)) Q:'ACHSDIEN I $P($G(^ACHSF(DUZ(2),"D",ACHSDIEN,0)),U,12)=3,+$G(^ACHSF(DUZ(2),"D",ACHSDIEN,"PA")) D G S1
  1. . S ACHSBCN=ACHSBCN+1
  1. . F ACHSBCN=ACHSBCN:1 Q:'$D(^ACHSF(DUZ(2),"TCHK",999999999-ACHSBCN))
  1. ;
  1. K ;
  1. X:$D(IO("S")) ACHSPPC
  1. D ^%ZISC ;CLOSE ALL DEVICES
  1. K1 ;
  1. K ACHSDIEN,ACHSBAT,ACHSBCN,ACHSCLEN,ACHSCOL,ACHSLINE,ACHSLPOS,ACHSOT,ACHSPPC,ACHSPPO,ACHSWORK,DA,DIC,DR,D0,D1,^UTILITY("DIQ1",$J)
  1. Q
  1. ;
  1. FMT ;
  1. K DA,DIC,DR
  1. S ACHSLINE=$P(ACHSWORK,";;",2),ACHSCOL=$P(ACHSWORK,";;",3),DIC=$P(ACHSWORK,";;",4),ACHSOT=""
  1. I DIC S DR=$P(ACHSWORK,";;",5),DA=@($P(ACHSWORK,";;",6)) I $P(ACHSWORK,";;",7) S DR($P(ACHSWORK,";;",7))=$P(ACHSWORK,";;",8),DA($P(ACHSWORK,";;",7))=@($P(ACHSWORK,";;",9)),ACHSOT=$P(ACHSWORK,";;",10)
  1. Q
  1. ;
  1. POSITION ;
  1. F Q:ACHSLPOS=ACHSLINE W ! S ACHSLPOS=ACHSLPOS+1
  1. W:ACHSCOL ?ACHSCOL
  1. W:'ACHSCOL ACHSCOL
  1. Q
  1. ;
  1. VALUE ;
  1. I 'DIC X DIC Q
  1. I ACHSWORK["PAYAMT" D DOLLAR Q
  1. I ACHSWORK["PAYTXT" D DOLLAR1 Q
  1. ; Naked reference in next 2 lines from line S1 and set by indirection to lines FORMAT to FORMAT+12
  1. D EN^DIQ1
  1. I $P(ACHSWORK,";;",7)]"" S X=^($P(ACHSWORK,";;",8)) G VALUE2
  1. S X=^($P(ACHSWORK,";;",5))
  1. VALUE2 ;
  1. X:ACHSOT]"" ACHSOT
  1. W X
  1. Q
  1. ;
  1. DOLLAR ;
  1. S X=$P($G(^ACHSF(DUZ(2),"D",ACHSDIEN,"PA")),U),X3=1
  1. D COMMA^%DTC
  1. S X=$E("$$$$$$$$$$$$$",1,13-$L(X))_X
  1. K X3
  1. W X
  1. Q
  1. ;
  1. DOLLAR1 ;
  1. S X=$P($G(^ACHSF(DUZ(2),"D",ACHSDIEN,"PA")),U),X3=1
  1. D COMMA^%DTC,AMT^ACHSCHK1
  1. K X3
  1. W X
  1. Q
  1. ;
  1. TEST ;
  1. X:$D(IO("S")) ACHSPPO
  1. U IO
  1. S ACHSLPOS=0
  1. F ACHS=1:1:7 S ACHSWORK=$T(@"FORMAT"+ACHS) Q:ACHSWORK="" D FMT,POSITION W "######"
  1. F Q:ACHSLPOS=ACHSCLEN W ! S ACHSLPOS=ACHSLPOS+1
  1. Q
  1. ;
  1. BATCH ;EP - From option.
  1. I '$D(^ACHS(7,"CHS 638 CHECKS",DUZ(2))) W *7,!!,"NO CHECKS BATCHED TO PRINT." Q
  1. S ACHSDIEN=0
  1. F S ACHSDIEN=$O(^ACHS(7,"CHS 638 CHECKS",DUZ(2),ACHSDIEN)) G K:'ACHSDIEN Q:$P($G(^ACHSF(DUZ(2),"D",ACHSDIEN,0)),U,12)=3&(+$G(^ACHSF(DUZ(2),"D",ACHSDIEN,"PA")))
  1. S ACHSPROV=$P($G(^ACHSF(DUZ(2),"D",ACHSDIEN,0)),U,8)
  1. S ACHSBAT=""
  1. G DEV
  1. ;
  1. FORMAT ;42;;line #;;col #;;file # or MUMPS code;;field #;;DA;;sub-file #;;sub-file field #;;DA(sub-file #);;OUTPUT TRANSFORM
  1. CHECK ;;2;;45;;W "CHECK #: ",$E(1000000000+ACHSBCN,2,10)
  1. PONUM ;;5;;25;;9002080;;100;;DUZ(2);;9002080.01;;.01;;ACHSDIEN
  1. PATIENT ;;5;;42;;9002080;;100;;DUZ(2);;9002080.01;;13.64;;ACHSDIEN
  1. PAYTXT ;;8;;5;;9002080;;100;;DUZ(2);;9002080.01;;15;;ACHSDIEN;;S X3=1 D COMMA^%DTC,AMT^ACHSCHK1 K X3
  1. DATE ;;9;;54;;W $$FMTE^XLFDT(DT)
  1. PAYAMT ;;10;;67;;9002080;;100;;DUZ(2);;9002080.01;;15;;ACHSDIEN;;S X3=1 D COMMA^%DTC S X=$E("$$$$$$$$$$$$$",1,13-$L(X))_X K X3
  1. PROVIDER ;;11;;8;;9002080;;100;;DUZ(2);;9002080.01;;7;;ACHSDIEN;;S:X["," X=$P(X,",",2)_" "_$P(X,",")
  1. PROVSTR ;;12;;8;;9999999.11;;1301;;ACHSPROV
  1. PROVCTY ;;13;;8;;9999999.11;;1302;;ACHSPROV
  1. PROVST ;;13;; ;;9999999.11;;1303;;ACHSPROV
  1. PROVZIP ;;13;; ;;9999999.11;;1304;;ACHSPROV
  1. SVCDATE ;;27;;1;;9002080;;100;;DUZ(2);;9002080.01;;75;;ACHSDIEN
  1. PONUM2 ;;28;;12;;9002080;;100;;DUZ(2);;9002080.01;;.01;;ACHSDIEN
  1. PATIENT2 ;;28;;26;;9002080;;100;;DUZ(2);;9002080.01;;13.64;;ACHSDIEN
  1. PAYAMT2 ;;28;;67;;9002080;;100;;DUZ(2);;9002080.01;;15;;ACHSDIEN;;S X3=1 D COMMA^%DTC S X=$E("$$$$$$$$$$$$$",1,13-$L(X))_X K X3
  1. PROV2 ;;29;;12;;9002080;;100;;DUZ(2);;9002080.01;;7;;ACHSDIEN;;S:X["," X=$P(X,",",2)_" "_$P(X,",")