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

ABMPPAD2.m

Go to the documentation of this file.
  1. ABMPPAD2 ; IHS/SD/SDR - Prior Payments/Adjustments page (CE);
  1. ;;2.6;IHS 3P BILLING SYSTEM;**11**;NOV 12, 2009;Build 133
  1. ;
  1. DISP ;EP
  1. K ABMSFLG,ABMMFLG,ABMEFLG,ABMRSTR
  1. D SETVAR^ABMPPAD1
  1. S ABMDASH="",$P(ABMDASH,"-",80)=""
  1. S ABMZ("TITL")="PRIOR PAYMENTS/ADJUSTMENTS"
  1. S ABMP("SCRN")="A"
  1. S ABMZ("PG")="A"
  1. I '$D(ABMP("DDL")) D SUM^ABMDE1 I 1
  1. E S ABMC("CONT")="" D PAUSE^ABMDE1 G:$D(DUOUT)!$D(DTOUT)!$D(DIROUT) XIT
  1. ;
  1. S ABMINS=0
  1. F S ABMINS=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMINS)) Q:+ABMINS=0 D
  1. .S ABMIIEN=$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMINS,0)),U)
  1. .S ABMPRI=$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMINS,0)),U,2)
  1. .S ABMSTAT=$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMINS,0)),U,3)
  1. .Q:ABMSTAT'="I"&(ABMSTAT'="C")
  1. .S ABMLST("PRIO",ABMPRI,ABMIIEN)=ABMINS_"^"_ABMSTAT
  1. ;
  1. S ABMP("CBAMT")=0
  1. S ABMIPRI=0
  1. F S ABMIPRI=$O(ABMLST("PRIO",ABMIPRI)) Q:+ABMIPRI=0 D
  1. .S ABMIIEN=0
  1. .F S ABMIIEN=$O(ABMLST("PRIO",ABMIPRI,ABMIIEN)) Q:+ABMIIEN=0 D
  1. ..S ABMCAT=""
  1. ..F S ABMCAT=$O(ABMLST("TRANS",ABMIIEN,ABMCAT)) Q:ABMCAT="" D
  1. ...S ABMLN=0
  1. ...F S ABMLN=$O(ABMLST("TRANS",ABMIIEN,ABMCAT,ABMLN)) Q:+ABMLN=0 D
  1. ....S ABMTREC=$G(ABMLST("TRANS",ABMIIEN,ABMCAT,ABMLN))
  1. ....I $P(ABMTREC,U,5)="Y" S ABMP("CBAMT")=ABMP("CBAMT")+($FN($P(ABMTREC,U),"-"))
  1. ....I ABMCAT="P" S ABMPM("PD")=+$G(ABMPM("PD"))+($P(ABMTREC,U))
  1. ....I ABMCAT="A" D
  1. .....S ABMATYP=$P(ABMTREC,U,2)
  1. .....S ABMAAMT=$P(ABMTREC,U)
  1. .....S:ABMATYP=3 ABMPM("WO")=+$G(ABMPM("WO"))+ABMAAMT
  1. .....S:ABMATYP=4 ABMPM("NONC")=+$G(ABMPM("NONC"))+ABMAAMT
  1. .....S:ABMATYP=13 ABMPM("DED")=+$G(ABMPM("DED"))+ABMAAMT
  1. .....S:ABMATYP=14 ABMPM("COI")=+$G(ABMPM("COI"))+ABMAAMT
  1. .....S:ABMATYP=15 ABMPM("PENS")=+$G(ABMPM("PENS"))+ABMAAMT
  1. .....S:ABMATYP=16 ABMPM("GRP")=+$G(ABMPM("GRP"))+ABMAAMT
  1. .....S:ABMATYP=19 ABMPM("REF")=+$G(ABMPM("REF"))+ABMAAMT
  1. .....S:ABMATYP=20 ABMPM("PCR")=+$G(ABMPM("PCR"))+ABMAAMT
  1. ;
  1. W !,"Payment Amount....: " S ABMNFLG=1 W $$DOLAMT(ABMPM("PD")) K ABMNFLG
  1. W ?40,"Deductible Amount.: ",$$DOLAMT(ABMPM("DED"))
  1. W !,"Payment Credits...: ",$$DOLAMT(ABMPM("PCR"))
  1. W ?40,"Co-pay/ins Amount.: ",$$DOLAMT(ABMPM("COI"))
  1. W !?40,"Write Off.........: ",$$DOLAMT(ABMPM("WO"))
  1. W !,"Refund............: ",$$DOLAMT(ABMPM("REF"))
  1. W ?40,"Non-Covered Amount: ",$$DOLAMT(ABMPM("NONC"))
  1. W !?40,"Penalty Amount....: ",$$DOLAMT(ABMPM("PENS"))
  1. W !?40,"Grouper Allowance.: ",$$DOLAMT(ABMPM("GRP"))
  1. S ABMRVFLG=1 ;abm*2.6*11 HEAT81390
  1. ;
  1. S ABMPRI=0
  1. F S ABMPRI=$O(ABMLST("PRIO",ABMPRI)) Q:+ABMPRI=0 D
  1. .S ABMIIEN=0
  1. .S ABMPRIS=ABMPRI
  1. .F S ABMIIEN=$O(ABMLST("PRIO",ABMPRI,ABMIIEN)) Q:+ABMIIEN=0 D
  1. ..S ABMSTAT=$P(ABMLST("PRIO",ABMPRI,ABMIIEN),U,2)
  1. ..S ABMINS=$P(ABMLST("PRIO",ABMPRI,ABMIIEN),U)
  1. ..S ABMSTAT=$S(ABMSTAT="F":"FLAGGED",ABMSTAT="I":"ACTIVE",ABMSTAT="P":"PENDING",ABMSTAT="U":"UNBILLABLE",ABMSTAT="C":"COMPLETED",ABMSTAT="B":"BILLED",ABMSTAT="L":"PARTIAL",1:"")
  1. ..W !!,"["_ABMPRI_"] INSURER: ",$E($P($G(^AUTNINS(ABMIIEN,0)),U),1,27)
  1. ..W ?40,"PRIORITY ORDER: ",ABMPRI
  1. ..W ?62,"STATUS: "
  1. ..W $S(ABMSTAT="COMPLETED":$$EN^ABMVDF("RVN"),1:""),ABMSTAT,$S(ABMSTAT="COMPLETED":$$EN^ABMVDF("RVF"),1:"")
  1. ..S ABMCOV=0
  1. ..F S ABMCOV=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMINS,11,ABMCOV)) Q:+ABMCOV=0 D
  1. ...I $P($G(^AUTNINS(ABMIIEN,0)),U)["MEDICARE" D
  1. ....W !?14,"COVERAGE TYPE: ",$P($G(^AUTTPIC(ABMCOV,0)),U)
  1. ....S ABMCOV=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMINS,11,ABMCOV))
  1. ....I +ABMCOV'=0 W ", ",$P($G(^AUTTPIC(ABMCOV,0)),U)
  1. ...E W !?14,"COVERAGE TYPE: ",$P($G(^AUTTPIC(ABMCOV,0)),U)
  1. ..S ABMCAT=""
  1. ..F S ABMCAT=$O(ABMLST("TRANS",ABMIIEN,ABMCAT),-1) Q:ABMCAT="" D
  1. ...S ABMLN=0
  1. ...F S ABMLN=$O(ABMLST("TRANS",ABMIIEN,ABMCAT,ABMLN)) Q:+ABMLN=0 D
  1. ....Q:+$P(ABMLST("TRANS",ABMIIEN,ABMCAT,ABMLN),U)=0
  1. ....I +$G(ABMLNSV)<ABMLN S ABMLNSV=ABMLN
  1. ....S ABMDAMT=$P($G(ABMLST("TRANS",ABMIIEN,ABMCAT,ABMLN)),U)
  1. ....I ABMCAT="P" S ABMNFLG=1
  1. ....S ABMDAMT=$$DOLAMT(ABMDAMT)
  1. ....K ABMNFLG
  1. ....I ABMCAT="P" W !?6,"PYMT: ",ABMDAMT
  1. ....E D ADJS
  1. W !,ABMDASH,!
  1. I ("^21^22^23^31^32^33^"[("^"_ABMP("EXP")_"^")) D
  1. .I $G(ABMSFLG)=1 W "ERROR: STANDARD ADJUSTMENT CODE NOT ENTERED FOR ADJUSTMENT",!
  1. .I $G(ABMMFLG)=1 W "ERROR: STANDARD ADJUSTMENT REASON DOESN'T MATCH ADJUSTMENT CATEGORY/REASON",!
  1. .I ABMP("CBAMT")<0 W "ERROR: NEGATIVE BALANCE ON BILL NOT ALLOWED",! S ABMSFLG=1
  1. .I $G(ABMSFLG)=1!($G(ABMMFLG)=1) W ABMDASH,!
  1. .I $G(ABMSFLG)=1 W "**Use the EDIT option to populate the Standard Adjustment Reason Code**",!
  1. E K ABMSFLG,ABMMFLG ;remove flag for other checks of this error
  1. ;
  1. S ABMP("OPT")="AERSQ"
  1. S ABMP("DFLT")="Q"
  1. D SEL
  1. I "AERS"'[$E(Y) D XIT^ABMPPADJ Q
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) D XIT^ABMPPADJ Q
  1. S ABM("DO")=$S($E(Y)="A":"ADD^ABMPPADJ",$E(Y)="E":"EDIT^ABMPPADJ",$E(Y)="R":"RESTR^ABMPPADJ",$E(Y)="S":"EN^ABMPPFLR",1:"XIT^ABMPPADJ") D @ABM("DO")
  1. G DISP
  1. Q
  1. ADJS ;EP
  1. W !?7,"ADJ: ",ABMDAMT
  1. S ABMPREC=$G(ABMLST("TRANS",ABMIIEN,ABMCAT,ABMLN))
  1. ;I $P(ABMPREC,U,5)="Y" W ?24,"<B>"
  1. ;I $P(ABMPREC,U,5)="N" W ?24,"<N>"
  1. I $P(ABMPREC,U,2)'="" W ?28,"[",$P(ABMPREC,U,2),"] ",$E($P($G(^BAR(90052.01,$P(ABMPREC,U,2),0)),U),1,18)
  1. I $P(ABMPREC,U,3)'="" W ?47,"[",$P(ABMPREC,U,3),"] ",$E($P($G(^BARTBL($P(ABMPREC,U,3),0)),U),1,18)
  1. I $P($G(ABMPREC),U,4)'="" D
  1. .W ?75,"["_$P(^BARADJ($P($G(ABMPREC),U,4),0),U)_"]"
  1. .I $P(^BARADJ($P(ABMPREC,U,4),0),U,3)'=$P(ABMPREC,U,2) S ABMMFLG=1
  1. .I $P(^BARADJ($P(ABMPREC,U,4),0),U,4)'=$P(ABMPREC,U,3) S ABMMFLG=1
  1. I $P($G(ABMPREC),U,4)="",($P(ABMPREC,U)'=0) S ABMSFLG=1
  1. Q
  1. DOLAMT(AMT) ;
  1. Q $S(($E(AMT,1)="-"!($G(ABMNFLG)=1))&(AMT'=0):"("_$J($S($E(AMT)="-":$E(AMT,2,$L(AMT)),1:AMT),10,2)_")",1:$J(+$G(AMT),11,2))
  1. ;
  1. SEL ;EP for Page Commands, Desired Action Controller
  1. I $D(ABMP("DDL")),$D(ABMP("QUIT")) S Y="Q" G XIT
  1. S:'$D(ABMP("DFLT")) ABMP("DFLT")=""
  1. K %P,DIR S DIR(0)="F^1:9"
  1. S (DIR("B"),ABMO("DFLT"))=$S(ABMP("DFLT")]"":ABMP("DFLT"),ABMP("OPT")'["N":"B",1:"N")
  1. S DIR("A")="Desired ACTION ("
  1. S DIR("?",1)=" Choose from one of the following actions:"
  1. S DIR("?",2)=" "
  1. F ABMO("CTR")=3:1 S ABMO("TXT")=$E(ABMP("OPT"),ABMO("CTR")-2) Q:ABMO("TXT")="" D
  1. .I $D(ABMP("VIEWMODE")),"NVBJQ"'[ABMO("TXT") Q
  1. .S DIR("?",ABMO("CTR"))=$P($T(@ABMO("TXT")),";;",2),DIR("A")=DIR("A")_$P($T(@ABMO("TXT")),";;",3)_"/"
  1. S DIR("?",ABMO("CTR"))=" "
  1. S DIR("?")=" Enter First Character of the Desired Action."
  1. S DIR("A")=$P(DIR("A"),"/",1,$L(DIR("A"),"/")-1)_")"
  1. D ^DIR K DIR
  1. G XIT:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. S:X="" Y=ABMO("DFLT")
  1. S Y=$$UPC^ABMERUTL(Y)
  1. I $E(X)="?" D ^ABMDEHLP G SEL
  1. I '+$E(Y),'+$E(Y,2),$E(Y,2)'=0 S Y=$E(Y)
  1. I $A(Y,1)>96&($A(Y,1)<123) S Y=$C($A(Y,1)-32)_$E(Y,2,99)
  1. I ABMP("OPT")[$E(Y) K ABMP("DFLT") G XIT
  1. I +Y,$D(ABMZ("NUM")),Y<(ABMZ("NUM")+1) K ABMP("DFLT") S Y="E"_+Y G XIT
  1. W *7 G SEL
  1. ;
  1. A ;; Add - Add a New Entry;;Add
  1. E ;; Edit - Edit Information in the Current Screen;;Edit
  1. R ;; Rstr - Restore transactions from A/R;;Restore
  1. S ;; Save - Save transactions;;Save
  1. Q ;; Quit - Stop Editing the Data;;Quit
  1. ;
  1. FLDS ;EP for Field Edit Controller
  1. S ABMO("Y")=+$E(Y,2,3) I ABMO("Y")>0&(ABMO("Y")<(ABMP("FLDS")+1)) S Y=ABMO("Y") G EJ
  1. W ! S DIR(0)="LO^1:"_ABMP("FLDS"),DIR("A")="Desired FIELDS",DIR("B")="1-"_ABMP("FLDS") D ^DIR K DIR
  1. G XIT:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. EJ S ABMP("FLDS")=Y
  1. G XIT
  1. ;
  1. XIT K ABMO,ABMP("OPT")
  1. Q