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

ACHSEOBI.m

Go to the documentation of this file.
  1. ACHSEOBI ; IHS/ITSC/PMF - EOBR RECONCILIATION ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. ;
  1. S (ACHSFY,ACHSCNT,ACHSSUM,ACHSBBAL,ACHSEBAL,ACHSTOT,ACHSPG)=0,ACHSIO=IO,ACHSLOC=$$LOC^ACHS
  1. D NOW^ACHS
  1. BEGIN ; Main process loop.
  1. S ACHSFY=$O(^ACHSEOBR("ACHSSUM",ACHSFY))
  1. G END:ACHSFY=""
  1. D SUMMARY,REPORT
  1. G BEGIN
  1. ;
  1. END ; Kill vars, close device, quit.
  1. K ACHS1,ACHSACT0,ACHSFY,ACHSSUM,ACHSBBAL,ACHSEBAL,ACHSREG,ACHSTOT,ACHSADJ,ACHSAMT,ACHSDCR
  1. D ^%ZISC
  1. Q
  1. ;
  1. SUMMARY ;
  1. D HDR,HDR3
  1. W !!
  1. S ACHSTOT(ACHSFY,"TOTALS")=0
  1. F ACHSTYPE="PAYMENTS","ADJUSTMENTS","INTERIM PAYMENTS" D
  1. . I $D(^ACHSEOBR("ACHSTOT",ACHSFY,ACHSTYPE)) D SB2 D
  1. .. W !?5,ACHSTYPE," DOCUMENTS",?46,$J(ACHS1,5),?57,$J(ACHS,11)
  1. .. I ACHSTYPE="INTERIM PAYMENTS" W "***" S ACHSIP=1
  1. ..Q
  1. .Q
  1. W !?46,"-----",?60,"--------------"
  1. S X=$P(ACHSTOT(ACHSFY,"TOTALS"),U)
  1. D COMMA^%DTC
  1. W !!?5,"TOTALS",?46,$J($P(ACHSTOT(ACHSFY,"TOTALS"),U,2),5),?57,$J(X,11)
  1. W:$D(ACHSIP) !!?5,"*** Interim Payments Not Reflected In Totals"
  1. K ACHSIP
  1. Q
  1. ;
  1. REPORT ;
  1. D HDR,HDR1,HDR2
  1. S ACHSACTN=$G(^ACHS(9,DUZ(2),"RN")),X2=2,X3=12
  1. S ACHSRTOT(ACHSFY,"BBAL")=0,ACHSRTOT(ACHSFY,"+")=0,ACHSRTOT(ACHSFY,"-")=0,ACHSRTOT(ACHSFY,"TOT")=0,ACHSRTOT(ACHSFY,"RTOT")=0
  1. F I=1:1:7 S $P(^ACHSEOBR("ACHSSUM",ACHSFY,"TOT"),U,I)=$P(^ACHSEOBR("ACHSSUM",ACHSFY,"+"),U,I)+$P(^ACHSEOBR("ACHSSUM",ACHSFY,"-"),U,I)
  1. F K=1:1:7 W $E($P(ACHSACTN,U,K),1,18),?18 D SB1 W:K<7 !
  1. W !,"----------------"
  1. D HDR2
  1. W "TOTAL",?18 F I="BBAL","+","-","TOT"
  1. S X=ACHSRTOT(ACHSFY,I)
  1. D FMT
  1. S X=ACHSRTOT(ACHSFY,"RTOT")
  1. D FMT
  1. S ACHSACT0=$P(^ACHS(9,DUZ(2),"FY",ACHSFY,0),U,3)
  1. S X2="2$",X3=18,X=$P(^ACHS(9,DUZ(2),"FY",ACHSFY,0),U,2),ACHSACT1=X
  1. D COMMA^%DTC
  1. W !!!!!,"YEAR TO DATE ALLOWANCE: ",X,!?5,"OBLIGATED BALANCE: "
  1. S X=$J(ACHSACT0,1,2)
  1. D FMT
  1. W !?26,"---------------",!?3,"UNOBLIGATED BALANCE: ",?24
  1. S X=$J(ACHSACT1-ACHSACT0,1,2)
  1. D FMT
  1. H 5
  1. W @IOF
  1. Q
  1. ;
  1. SB1 ;
  1. S X=$P(^ACHSEOBR("ACHSBBAL",ACHSFY),U,K)
  1. S ACHSRTOT(ACHSFY,"BBAL")=ACHSRTOT(ACHSFY,"BBAL")+X
  1. D FMT
  1. F ACHSX="+","-","TOT" S X=$P(^ACHSEOBR("ACHSSUM",ACHSFY,ACHSX),U,K) S ACHSRTOT(ACHSFY,ACHSX)=ACHSRTOT(ACHSFY,ACHSX)+X D FMT
  1. S X=$P(^ACHSEOBR("ACHSBBAL",ACHSFY),U,K)+$P(^ACHSEOBR("ACHSSUM",ACHSFY,"TOT"),U,K)
  1. S ACHSRTOT(ACHSFY,"RTOT")=ACHSRTOT(ACHSFY,"RTOT")+X
  1. D FMT
  1. Q
  1. ;
  1. SB2 ;
  1. S ACHS=$P(^ACHSEOBR("ACHSTOT",ACHSFY,ACHSTYPE),U),ACHS1=$P(^ACHSEOBR("ACHSTOT",ACHSFY,ACHSTYPE),U,2)
  1. I ACHSTYPE="INTERIM PAYMENTS" S X=ACHS D COMMA^%DTC S ACHS=X Q
  1. S $P(ACHSTOT(ACHSFY,"TOTALS"),U,2)=$P(ACHSTOT(ACHSFY,"TOTALS"),U,2)+ACHS1,$P(ACHSTOT(ACHSFY,"TOTALS"),U)=$P(ACHSTOT(ACHSFY,"TOTALS"),U)+ACHS
  1. S X=ACHS
  1. D COMMA^%DTC
  1. S ACHS=X
  1. Q
  1. ;
  1. HDR ;
  1. U ACHSIO
  1. W @IOF
  1. S ACHSPG=ACHSPG+1
  1. W @IOF,?80-$L(ACHSLOC)/2,ACHSLOC,!,ACHSTIME,?25,"CHS EOBR RECONCILIATION",?72,"PAGE ",ACHSPG,!?33,ACHSFY,!!
  1. Q
  1. ;
  1. HDR1 ;
  1. W !!?4,"REGISTER",?20,"BEGINNING",?32,"INCREASED",?45,"DECREASED",?58,"NET",?71,"ENDING",!?21,"BALANCE",?34,"AMOUNT",?46,"AMOUNT",?59,"CHANGE",?71,"BALANCE",!,"----------------"
  1. Q
  1. ;
  1. HDR2 ;
  1. W ?18,"------------",?32,"----------",?44,"----------",?56,"----------",?68,"-----------",!
  1. Q
  1. ;
  1. HDR3 ;EP.
  1. W !!!?7,"Type Document",?40,"No. Documents",?61,"Obligations",!?5,"----------------",?40,"--------------",?60,"--------------"
  1. Q
  1. ;
  1. FMT ;
  1. I '+X,'+$P(X,".",2) S X=$J("",X3) W X S X=0 Q
  1. D COMMA^%DTC
  1. W X
  1. S X=0
  1. Q
  1. ;
  1. SET ;EP
  1. S ACHSFY=$O(ACHSSUM(ACHSFY))
  1. Q:ACHSFY=""
  1. S:$D(ACHSBBAL(ACHSFY)) ^ACHSEOBR("ACHSBBAL",ACHSFY)=ACHSBBAL(ACHSFY)
  1. S:$D(ACHSSUM(ACHSFY)) ^ACHSEOBR("ACHSSUM",ACHSFY)=ACHSSUM(ACHSFY)
  1. S:$D(ACHSSUM(ACHSFY,"+")) ^ACHSEOBR("ACHSSUM",ACHSFY,"+")=ACHSSUM(ACHSFY,"+")
  1. S:$D(ACHSSUM(ACHSFY,"-")) ^ACHSEOBR("ACHSSUM",ACHSFY,"-")=ACHSSUM(ACHSFY,"-")
  1. F I="PAYMENTS","ADJUSTMENTS","INTERIM PAYMENTS" S:$D(ACHSTOT(ACHSFY,I)) ^ACHSEOBR("ACHSTOT",ACHSFY,I)=ACHSTOT(ACHSFY,I)
  1. G SET
  1. ;