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

ABMURCN1.m

Go to the documentation of this file.
  1. ABMURCN1 ; IHS/SD/SDR - 3PB/UFMS Reconcile Sessions Option
  1. ;;2.6;IHS Third Party Billing;**1,8,19**;NOV 12, 2009;Build 300
  1. ;
  1. ; New routine - v2.5 p12 SDD item 4.9.2.4
  1. ; Reconcile Sessions Option
  1. ;
  1. ;IHS/SD/SDR - 2.6*19 - HEAT160514 - When exporting wasn't capturing session correctly if user
  1. ; had IEN less than the number of users being exported (if the user IEN is 8 but 10 sessions
  1. ; are being exported).
  1. ;
  1. W !!,"The following SESSIONS are currently "_ABMFLG_" =>",!
  1. W !?3,"(*) Indicates no activity in session.",!!
  1. W ?6,"SESSION ID",?18,"CASHIER",?47,"DATE "_$S(ABMFLG="OPEN":"OPENED",1:ABMFLG)
  1. I ABMFLG["CLOSE" W ?68,"STATUS"
  1. W !
  1. S $P(ABMLINE,"-",80)=""
  1. W ABMLINE,!
  1. Q
  1. VIEWLIST ;EP
  1. S ABMS=0,ABMSCNT=0
  1. F S ABMS=$O(ABMO(ABMS)) Q:+ABMS=0 D
  1. .S ABMSDUZ=""
  1. .F S ABMSDUZ=$O(ABMO(ABMS,ABMSDUZ)) Q:ABMSDUZ="" D
  1. ..S ABMSDT=0
  1. ..F S ABMSDT=$O(ABMO(ABMS,ABMSDUZ,ABMSDT)) Q:+ABMSDT=0 D
  1. ...S ABMSCNT=ABMSCNT+1
  1. ...W ABMSCNT_"."
  1. ...W ?5,ABMSDT
  1. ...W ?21,$S(+ABMSDUZ:$E($P($G(^VA(200,ABMSDUZ,0)),U),1,24),1:"POS CLAIMS")
  1. ...W ?47,$$CDT^ABMDUTL(ABMSDT)
  1. ...I $P($G(ABMO(ABMS,ABMSDUZ,ABMSDT)),U)'="" D
  1. ....S ABMST=$P($G(ABMO(ABMS,ABMSDUZ,ABMSDT)),U)
  1. ....W ?68,$S(ABMST="O":"OPEN",ABMST="C":"CLOSED",ABMST="R":"RECONCILED",1:"TRANSMITTED")
  1. ...S ABMOS(ABMSCNT)=ABMS_"^"_ABMSDUZ_"^"_ABMSDT_"^"_$G(ABMO(ABMS,ABMSDUZ,ABMSDT))
  1. ...I +ABMSDUZ'=0,(+$P($G(ABMO(ABMS,ABMSDUZ,ABMSDT)),U,3)'=1) W ?79,"*"
  1. ...W !
  1. I $D(ABMOS),(ABMSCNT>1) D
  1. .S ABMSCNT=ABMSCNT+1
  1. .W !,ABMSCNT_". ",?6,$S($G(ABMFLG)="CLOSED":"RECONCILE",1:"CLOSE")_" ALL SESSIONS"
  1. Q
  1. SELSESS ;SEL SESSIONS
  1. K ABMY("SESS")
  1. ;S DIR(0)="NO" ;abm*2.6*1 HEAT5977
  1. S DIR(0)="NO^1:"_ABMSCNT_"" ;abm*2.6*1 HEAT5977
  1. S DIR("A")="Session number or ""^"" to not select any sessions"
  1. F D Q:+Y<1!(Y=ABMSCNT)
  1. .I '$D(ABMY("SESS")) S DIR("B")=ABMSCNT
  1. .;I $D(ABMY("SESS")),'$D(ABMY("SESS",ABMSCNT)) S DIR("A")="Select another session",DIR(0)="NO^1:"_(ABMSCNT-1) K DIR("B") ;abm*2.6*1 HEAT5977
  1. .I $D(ABMY("SESS")),'$D(ABMY("SESS",ABMSCNT)) S DIR("A")="Select another session",DIR(0)="NO^1:"_(ABMSCNT-1)_"" K DIR("B") ;abm*2.6*1 HEAT5977
  1. .D ^DIR K DIR
  1. .Q:+Y<0
  1. .Q:$D(DUOUT)!$D(DTOUT)!$D(DIRUT)!$D(DIROUT)
  1. .S ABMY("SESS",Y)=""
  1. I '$D(ABMY("SESS")) D
  1. .I $D(DUOUT)!$D(DTOUT)!$D(DIRUT)!$D(DIROUT) Q
  1. K DIR
  1. Q
  1. VIEWSEL ;EP - view selected sessions for reconciliation
  1. W !!,"The following SESSIONS have been selected for Reconciliation =>",!
  1. W !?3,"(*) Indicates no activity in session.",!!
  1. W ?6,"SESSION ID",?18,"CASHIER",?47,"DATE OPENED"
  1. W !
  1. S $P(ABMLINE,"-",80)=""
  1. W ABMLINE,!
  1. I $D(ABMY("SESS",ABMSCNT)),(ABMSCNT>1) D ;they said all; put all sessions in selection array
  1. .F ABMI=1:1:(ABMSCNT-1) S ABMY("SESS",ABMI)=""
  1. .K ABMY("SESS",ABMSCNT)
  1. S ABMI=0,ABMSCNT=0
  1. F S ABMI=$O(ABMC(ABMI)) Q:+ABMI=0 D
  1. .S ABMSDUZ=""
  1. .F S ABMSDUZ=$O(ABMC(ABMI,ABMSDUZ)) Q:ABMSDUZ="" D
  1. ..S ABMSDT=0
  1. ..F S ABMSDT=$O(ABMC(ABMI,ABMSDUZ,ABMSDT)) Q:+ABMSDT=0 D
  1. ...S ABMSCNT=ABMSCNT+1
  1. ...W ABMSCNT_"."
  1. ...W ?5,ABMSDT
  1. ...W ?21,$S(+ABMSDUZ:$E($P($G(^VA(200,ABMSDUZ,0)),U),1,24),1:"POS CLAIMS")
  1. ...W ?47,$$CDT^ABMDUTL(ABMSDT)
  1. ...I $P($G(ABMC(ABMI,ABMSDUZ,ABMSDT)),U)'="" D
  1. ....S ABMST=$P($G(ABMC(ABMI,ABMSDUZ,ABMSDT)),U)
  1. ....W ?68,$S(ABMST="O":"OPEN",ABMST="C":"CLOSED",ABMST="R":"RECONCILED",1:"TRANSMITTED")
  1. ...I +ABMSDUZ'=0,(+$P($G(ABMC(ABMI,ABMSDUZ,ABMSDT)),U,3)'=1) W ?79,"*"
  1. ...W !
  1. I '$D(ABMC) W ?5,"NO CLOSED SESSIONS"
  1. W !,ABMLINE
  1. S ABMI=0
  1. F S ABMI=$O(ABMY("SESS",ABMI)) Q:+ABMI=0 D
  1. .S ABMREC=$G(ABMOS(ABMI))
  1. .W !
  1. .W ?2,ABMI,".",?5,$P(ABMREC,U)
  1. .W ?21,$S(+$P(ABMREC,U,2)'=0:$P($G(^VA(200,$P(ABMREC,U,2),0)),U),1:"POS CLAIMS")
  1. .W ?47,$$CDT^ABMDUTL($P(ABMREC,U,3))
  1. .I +$P(ABMREC,U,2)'=0,(+$P($G(ABMO($P(ABMREC,U),$P(ABMREC,U,2),$P(ABMREC,U))),U,3)'=1) W ?79,"*"
  1. W !
  1. Q
  1. CLOSE ;EP
  1. W !
  1. S ABMJ=0
  1. F S ABMJ=$O(ABMY("SESS",ABMJ)) Q:+ABMJ=0 D
  1. .S ABMREC=$G(ABMOS(ABMJ))
  1. .S ABMSESS=$P(ABMREC,U)
  1. .S ABMDUZ=$P(ABMREC,U,2)
  1. .S ABMFD=$P(ABMREC,U,3)
  1. .D:ABMDUZ EP^ABMXUS9 ;check if user is signed in and in TPB
  1. .I $G(ABMOPFLG)=1 D Q
  1. ..W !,"User "_$P($G(^VA(200,ABMDUZ,0)),U)_" with session ID "_ABMSESS
  1. ..W " is still signed into TPB so their session will not be closed."
  1. .D:ABMDUZ CASHTOT^ABMUCASH(ABMDUZ) ;count claims/bills for session
  1. .D:'ABMDUZ CASHTOTP^ABMUCASH
  1. .D CLOSESES^ABMUCUTL(ABMLOC,ABMDUZ,ABMFD)
  1. .S ABMC(ABMSESS,ABMDUZ,ABMFD)="C"
  1. .S ABMAFLG=$$ACTIVCK^ABMUUTL(ABMLOC,ABMFD,ABMDUZ)
  1. .I ABMAFLG'=0 S $P(ABMC(ABMSESS,ABMDUZ,ABMFD),U,3)=1
  1. Q
  1. CREATBTH ;EP - create UFMS export entry
  1. S DIC="^ABMUTXMT("
  1. S DIC("DR")=".02////"_ABMFILE_";.03////"_DUZ_";.04////"_ABMLOC
  1. S DIC(0)="L"
  1. D NOW^%DTC
  1. S X=%
  1. D ^DIC
  1. K DIC
  1. Q:Y<0
  1. S ABMPXMIT=+Y
  1. Q
  1. PRINTSUM ;EP - print sum?
  1. K DIR
  1. S DIR(0)="Y"
  1. S DIR("A")="Print summary screen"
  1. D ^DIR K DIR
  1. S ABMXANS=+Y
  1. Q:ABMXANS=0 ;no, don't print
  1. S ABMQ("RX")="XIT^ABMURCON"
  1. S ABMQ("NS")="ABM"
  1. S ABMQ("RP")="XSUMDISP^ABMURCON"
  1. D ^ABMDRDBQ
  1. Q
  1. BATCH ;EP - put bill entry in batch file
  1. ;user
  1. K DIC,DIE,DIR,X,Y,DA
  1. S DA(1)=ABMPXMIT
  1. I ABMDUZ D
  1. .S DIC="^ABMUTXMT("_DA(1)_",1,"
  1. .S DIC("P")=$P(^DD(9002274.46,1,0),U,2)
  1. .;S X="`"_ABMDUZ ;abm*2.6*19 IHS/SD/SDR HEAT160514
  1. .S X=$$GET1^DIQ(200,ABMDUZ,".01","E") ;abm*2.6*19 IHS/SD/SDR HEAT160514
  1. I 'ABMDUZ D
  1. .S DIC="^ABMUTXMT("_DA(1)_",2,"
  1. .S DIC("P")=$P(^DD(9002274.46,2,0),U,2)
  1. .S X=1
  1. S DIC(0)="L"
  1. D ^DIC
  1. Q:+Y<0
  1. ;sign in date
  1. K DIC,DIE,X,Y,DA
  1. S DA(2)=ABMPXMIT
  1. I ABMDUZ D
  1. .S DA(1)=ABMDUZ
  1. .S DIC="^ABMUTXMT("_DA(2)_",1,"_DA(1)_",2,"
  1. I 'ABMDUZ D
  1. .S DA(1)=1
  1. .S DIC="^ABMUTXMT("_DA(2)_",2,"_DA(1)_",2,"
  1. S (X,DINUM)=ABMSDT
  1. S DIC(0)="L"
  1. S DIC("DR")=".02////"_ABMSDT
  1. D ^DIC
  1. Q:+Y<0
  1. ;budget activity
  1. K DIC,DIE,X,Y,DA
  1. S DA(3)=ABMPXMIT
  1. S DA(2)=$S(ABMDUZ:ABMDUZ,1:1)
  1. S DA(1)=ABMSDT
  1. I ABMDUZ S DIC="^ABMUTXMT("_DA(3)_",1,"_DA(2)_",2,"_DA(1)_",11,"
  1. I 'ABMDUZ S DIC="^ABMUTXMT("_DA(3)_",2,"_DA(2)_",2,"_DA(1)_",11,"
  1. S X=ABMBAOUT
  1. ;S DIC(0)="L" ;abm*2.6*8 HEAT28427
  1. S DIC(0)="LMX" ;abm*2.6*8 HEAT28427
  1. D ^DIC
  1. Q:+Y<0
  1. S ABMBCHBA=+Y
  1. ;bills
  1. K DIC,DIE,X,Y,DA
  1. S DA(4)=ABMPXMIT
  1. S DA(3)=$S(ABMDUZ:ABMDUZ,1:1)
  1. S DA(2)=ABMSDT
  1. S DA(1)=ABMBCHBA
  1. I ABMDUZ S DIC="^ABMUTXMT("_DA(4)_",1,"_DA(3)_",2,"_DA(2)_",11,"_DA(1)_",2,"
  1. I 'ABMDUZ S DIC="^ABMUTXMT("_DA(4)_",2,"_DA(3)_",2,"_DA(2)_",11,"_DA(1)_",2,"
  1. S X=$P(ABMPREC,U)
  1. S DIC(0)="L"
  1. S DIC("DR")=".02////"_$P(ABMPREC,U,2)_";.03////"_$P(ABMPREC,U,3)
  1. S DIC("DR")=DIC("DR")_";.04////"_+$P($G(^ABMDBILL($P(ABMPREC,U,2),$P(ABMPREC,U,3),2)),U)
  1. I ABMEXCLD<1 S DIC("DR")=DIC("DR")_";.05////1" ;excluded data
  1. D ^DIC
  1. Q
  1. REEXPB ;EP - put re-export entry in batch file
  1. ;user
  1. K DIC,DIE,DIR,X,Y,DA
  1. S DA(1)=ABMPXMIT
  1. S DIC="^ABMUTXMT("_DA(1)_",1,"
  1. S DIC("P")=$P(^DD(9002274.46,1,0),U,2)
  1. S X="`"_ABMDUZ
  1. S DIC(0)="L"
  1. D ^DIC
  1. Q:+Y<0
  1. ;sign in date
  1. K DIC,DIE,X,Y,DA
  1. S DA(2)=ABMPXMIT
  1. S DA(1)=ABMDUZ
  1. S DIC="^ABMUTXMT("_DA(2)_",1,"_DA(1)_",2,"
  1. S (X,DINUM)=ABMSDT
  1. S DIC(0)="L"
  1. S DIC("DR")=".02////"_ABMSDT
  1. D ^DIC
  1. Q:+Y<0
  1. ;
  1. ;re-export IEN
  1. K DIC,DIE,X,Y,DA
  1. S DA(3)=ABMPXMIT
  1. S DA(2)=ABMDUZ
  1. S DA(1)=ABMSDT
  1. I ABMDUZ S DIC="^ABMUTXMT("_DA(3)_",1,"_DA(2)_",2,"_DA(1)_",3,"
  1. I 'ABMDUZ S DIC="^ABMUTXMT("_DA(3)_",2,"_DA(2)_",2,"_DA(1)_",3,"
  1. S X=ABMPBTCH
  1. S DIC(0)="L"
  1. D ^DIC
  1. Q:+Y<0
  1. S ABMREXP=+Y
  1. Q
  1. BILL ;EP - put entry in bill multiple for transmit date and save UFMS invoice#
  1. ;transmit date
  1. S ABMHOLD=DUZ(2)
  1. S DUZ(2)=$P(ABMPREC,U,2)
  1. K DIC,DIE,X,Y,DA
  1. S DIC(0)="L"
  1. S DA(1)=ABMP("BDFN")
  1. S DIC="^ABMDBILL(DUZ(2),"_DA(1)_",69,"
  1. S DIC("P")=$P(^DD(9002274.4,69,0),U,2)
  1. S X=ABMPXMIT ;date from batch
  1. S DIC("DR")=".02////"_ABMPASUF_ABMSASUF_$S(+$G(ABMUAOF)'=0:$P($G(^AUTTLOC(ABMP("LDFN"),0)),U,7),1:"")_ABMP("BDFN")
  1. I ABMEXCLD<1 S DIC("DR")=DIC("DR")_";.03////1" ;excluded data
  1. D ^DIC
  1. S DUZ(2)=ABMHOLD
  1. Q
  1. NOSEND ;EP - don't send but mark as reconciled
  1. W !,"Sessions will be marked as reconciled..."
  1. F S ABMSESS=$O(ABMC(ABMSESS)) Q:+ABMSESS=0 D
  1. .S ABMDUZ=""
  1. .F S ABMDUZ=$O(ABMC(ABMSESS,ABMDUZ)) Q:ABMDUZ="" D
  1. ..S ABMSDT=0
  1. ..F S ABMSDT=$O(ABMC(ABMSESS,ABMDUZ,ABMSDT)) Q:+ABMSDT=0 D
  1. ...I ABMDUZ D
  1. ....D RCONSESS
  1. ...I 'ABMDUZ D ;POS CLAIMS
  1. ....S ABMUSER=0
  1. ....F S ABMUSER=$O(^ABMUCASH(ABMLOC,20,ABMUSER)) Q:+ABMUSER=0 D
  1. .....D RCONSESS
  1. D PRINTSUM^ABMURCON
  1. W !,"EXITING Reconcile sessions option..."
  1. Q
  1. RCONSESS ;EP - mark session as transmitted
  1. K DIC,DIE,DA,DR,X,Y
  1. S DA(2)=DUZ(2)
  1. S DA(1)=$S(ABMDUZ:ABMDUZ,1:1)
  1. S:ABMDUZ DIE="^ABMUCASH("_DA(2)_",10,"_DA(1)_",20,"
  1. S:'ABMDUZ DIE="^ABMUCASH("_DA(2)_",20,"_DA(1)_",20,"
  1. S DA=ABMSDT
  1. S DR=".04///R;.07///NOW" ;reconciled status w/date
  1. D ^DIE
  1. Q