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

ABMDECAN.m

Go to the documentation of this file.
  1. ABMDECAN ; IHS/ASDST/DMJ - Cancel Selected Claim ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**9,11,19,21**;NOV 12, 2009;Build 379
  1. ;
  1. ; 03/10/04 V2.5 Patch 5 - Deny cancel claim if bill attached
  1. ; IHS/SD/SDR - V2.5 P8 - Added code for cancellation reason
  1. ; IHS/SD/SDR - v2.5 p10 - IM20454 - Fix cancellation when replacement insurer present
  1. ; IHS/SD/SDR - v2.5 p12 - UFMS - If user isn't logged into cashiering session they can't do
  1. ; this option. Also added call to populate cashiering session with claim/bill number if they
  1. ; are cancelling. Also added who cancelled bill, when, and reason (.111,.112,.113)
  1. ;
  1. ;IHS/SD/SDR - 2.6*19 - HEAT155799 - Updated code that creates 3P Cancelled Claim entry so it can
  1. ; be called from the Merged claim option if user decides to delete claims that were merged.
  1. ;IHS/SD/SDR - 2.6*21 - HEAT242626 - Updated so only claims with a status of F, E or P can be cancelled.
  1. ;
  1. K ABMP
  1. S U="^"
  1. S ABMP("XMIT")=0
  1. ;
  1. SEL ;
  1. W !!
  1. D ^ABMDEDIC
  1. G XIT:X=""!$D(DUOUT)!$D(DTOUT)!'+$G(ABMP("CDFN"))
  1. I +Y<1 G SEL
  1. ;start new code abm*2.6*9 NOHEAT - ensure UFMS is setup
  1. I $P($G(^ABMDPARM(DUZ(2),1,4)),U,15)="" D Q
  1. .W !!,"* * UFMS SETUP MUST BE DONE BEFORE ANY BILLING FUNCTIONS CAN BE USED! * *",!
  1. .S DIR(0)="E",DIR("A")="Enter RETURN to Continue" D ^DIR K DIR
  1. ;end new code
  1. I $P($G(^ABMDPARM(DUZ(2),1,4)),U,15)=1 D Q:+$G(ABMUOPNS)=0
  1. .S ABMUOPNS=$$FINDOPEN^ABMUCUTL(DUZ)
  1. .I +$G(ABMUOPNS)=0 D Q
  1. ..W !!,"* * YOU MUST SIGN IN TO BE ABLE TO PERFORM BILLING FUNCTIONS! * *",!
  1. ..S DIR(0)="E",DIR("A")="Enter RETURN to Continue" D ^DIR K DIR
  1. ;start new abm*2.6*21 IHS/SD/SDR HEAT242626
  1. I "^F^E^P^"'[("^"_$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),0)),U,4)_"^") D G SEL
  1. .W !,*7,"Claim status is ("_$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),0)),U,4)_") "_$P($P($P(^DD(9002274.3,.04,0),U,3),$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),0)),U,4)_":",2),";")
  1. .W !,"Only claims with one of the below status can be cancelled:"
  1. .W !?3,"(F) Flagged as Billable"
  1. .W !?3,"(E) In Edit Mode"
  1. .W !?3,"(P) Pending"
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT242626
  1. I $D(^ABMDCLM(DUZ(2),ABMP("CDFN"),65)) D G:ABMACBEX SEL
  1. .S ABMACBEX=0
  1. .S D1=0
  1. .F S D1=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),65,D1)) Q:'D1 D
  1. ..I +^ABMDCLM(DUZ(2),ABMP("CDFN"),65,D1,0) S ABMACBEX=1
  1. .I $G(ABMACBEX) D
  1. ..W !,*7,"An active bill exists for this claim. Cancelling of claim not allowed!"
  1. .K D1
  1. K ABMACBEX
  1. L +^ABMDCLM(DUZ(2),ABMP("CDFN")):0 I '$T W !?5,*7,"Another User is Editing this Record!" G SEL
  1. D ENT
  1. G XIT:$D(DUOUT)!$D(DTOUT),SEL
  1. ;
  1. XIT ;
  1. L -^ABMDCLM(DUZ(2))
  1. K ABMP
  1. F W ! Q:$Y+3>IOSL
  1. S DIR(0)="E" D ^DIR K DIR
  1. Q
  1. ;
  1. ENT ;EP - to Cancel a Claim
  1. I '$D(^XUSEC("ABMDZ CANCEL CLAIM",DUZ)) W !!,"You don't have enough access to cancel claims",! Q
  1. W !,*7,"WARNING: If you cancel this Claim it will be deleted and no further Editing",!?9,"or Approvals can occur.",!
  1. ;
  1. ENT2 ;EP - BYPASS THE WARNING
  1. S DIR(0)="Y"
  1. S DIR("A")="Do you wish Claim Number "_ABMP("CDFN")_" DELETED (Y/N)"
  1. D ^DIR
  1. I Y'=1 Q
  1. W !
  1. ;abm*2.6*19 IHS/SD/SDR HEAT155799 - added line tag ENT3
  1. ENT3 ;EP - Delete claim without asking
  1. S DIE="^ABMCCLMS(DUZ(2),"
  1. S DA=ABMP("CDFN")
  1. S DIE("NO^")="OUTOK"
  1. ;S DR=".04////X;.114////"_DUZ_";.115///NOW;.118R~Cancellation REASON:" ;abm*2.6*19 IHS/SD/SDR HEAT155799
  1. I $G(ABMREAS)'="" S DR=".04////X;.114////"_DUZ_";.115///NOW;.118///"_ABMREAS ;abm*2.6*19 IHS/SD/SDR HEAT155799
  1. I $G(ABMREAS)="" S DR=".04////X;.114////"_DUZ_";.115///NOW;.118R~Cancellation REASON:" ;abm*2.6*19 IHS/SD/SDR HEAT155799
  1. D ^DIE
  1. I $P($G(^ABMCCLMS(DUZ(2),ABMP("CDFN"),1)),U,8)="" D Q
  1. .;W !!,"CLAIM NOT CANCELLED" ;abm*2.6*19 IHS/SD/SDR HEAT155799
  1. .W !!,"CLAIM "_ABMP("CDFN")_" NOT CANCELLED" ;abm*2.6*19 IHS/SD/SDR HEAT155799
  1. .S DIK="^ABMCCLMS(DUZ(2),"
  1. .S DA=ABMP("CDFN")
  1. .D ^DIK
  1. M ^ABMCCLMS(DUZ(2),ABMP("CDFN"),0)=^ABMDCLM(DUZ(2),ABMP("CDFN"),0)
  1. M ^ABMCCLMS(DUZ(2),ABMP("CDFN"),11)=^ABMDCLM(DUZ(2),ABMP("CDFN"),11) ;PCC Visits
  1. M ^ABMCCLMS(DUZ(2),ABMP("CDFN"),41)=^ABMDCLM(DUZ(2),ABMP("CDFN"),41) ;Providers
  1. S DIK="^ABMCCLMS(DUZ(2),"
  1. S DA=ABMP("CDFN")
  1. D IX^DIK ;merged entries don't x-ref
  1. W !!,"OK, the claim is being deleted..."
  1. S DR=".04///1" D KCLM
  1. W !!,"Claim Number: ",ABMP("CDFN")," has been Deleted!"
  1. S ^ABMDTMP("KCLM",DT,ABMP("CDFN"))=DUZ
  1. Q
  1. ;
  1. KCLM ;EP for Deleting Claim
  1. S DIE="^AUPNVSIT("
  1. S DA=0 F S DA=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),11,DA)) Q:'DA D
  1. .Q:$O(^ABMDBILL(DUZ(2),"AS",ABMP("CDFN"),""))]""
  1. .Q:'$D(^AUPNVSIT(DA,0))
  1. .D ^ABMDDIE
  1. S DA=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),15,0))
  1. I DA D
  1. .Q:$O(^ABMDBILL(DUZ(2),"AS",ABMP("CDFN"),""))]""
  1. .Q:'$D(^AAPCRCDS(DA,0))
  1. .S ^AAPCRCDS("ACAN",DA)=ABMP("CDFN")
  1. I $P($G(^ABMDPARM(DUZ(2),1,4)),U,15)=1 D ADDBENTR^ABMUCUTL("CCLM",ABMP("CDFN")) ;add clm to UFMS Cash. Session
  1. S DIK="^ABMDCLM(DUZ(2),"
  1. S DA=ABMP("CDFN")
  1. D ^ABMDEDIK
  1. Q
  1. ;
  1. BILL ;EP - to cancel a Bill
  1. W !
  1. K ABMP
  1. S U="^"
  1. S ABMP("XMIT")=0
  1. ;
  1. BSEL ;
  1. ; Ask the user which bill to cancel
  1. K DIC
  1. S DIC="^ABMDBILL(DUZ(2),"
  1. S DIC(0)="QEAM"
  1. S DIC("A")="Select BILL to CANCEL: "
  1. S DIC("S")="I $P(^(0),""^"",4)'=""X"""
  1. D BENT^ABMDBDIC
  1. G XIT:'$G(ABMP("BDFN"))!$D(DUOUT)!$D(DTOUT)
  1. ;start new code abm*2.6*9 NOHEAT - ensure UFMS is setup
  1. I $P($G(^ABMDPARM(DUZ(2),1,4)),U,15)="" D Q
  1. .W !!,"* * UFMS SETUP MUST BE DONE BEFORE ANY BILLING FUNCTIONS CAN BE USED! * *",!
  1. .S DIR(0)="E",DIR("A")="Enter RETURN to Continue" D ^DIR K DIR
  1. ;end new code
  1. I $P($G(^ABMDPARM(DUZ(2),1,4)),U,15)=1 D Q:+$G(ABMUOPNS)=0
  1. .S ABMUOPNS=$$FINDOPEN^ABMUCUTL(DUZ)
  1. .I +$G(ABMUOPNS)=0 D Q
  1. ..W !!,"* * YOU MUST SIGN IN TO BE ABLE TO PERFORM BILLING FUNCTIONS! * *",!
  1. ..S DIR(0)="E",DIR("A")="Enter RETURN to Continue" D ^DIR K DIR
  1. I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)),"^",4)="X" D G XIT
  1. .W !,"Already canceled."
  1. .F W ! Q:$Y+4>IOSL
  1. .S DIR(0)="E" D ^DIR K DIR
  1. S ABMP("BILL")=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),0),U)
  1. S (ABMP(0),ABMP)=0
  1. F S ABMP=$O(^ABMDCLM(DUZ(2),+ABMP("BILL"),65,ABMP)) Q:'ABMP D
  1. .S:ABMP=ABMP("BDFN") ABMP(0)=1
  1. .I ABMP'=ABMP("BDFN"),$D(^ABMDBILL(DUZ(2),ABMP)) S ABMP("SIS",ABMP)=""
  1. .Q
  1. K:'ABMP(0) ABMP("SIS")
  1. I '$D(ABMP("SIS")) G SINGL
  1. W !!,"The following Bills are all associated and can only be",!,"canceled in a group manner: ",ABMP("BILL")
  1. S ABMP=""
  1. F S ABMP=$O(ABMP("SIS",ABMP)) Q:'ABMP W ",",$P(^ABMDBILL(DUZ(2),ABMP,0),U)
  1. W !
  1. K DIR
  1. S DIR(0)="YO"
  1. S DIR("A")="Do you want to CANCEL all of these Bills (Y/N)"
  1. D ^DIR
  1. I Y'=1!$D(DIRUT) G XIT
  1. G EXP
  1. ;
  1. SINGL ;
  1. ; Cancel a single bill
  1. K DIR
  1. W !
  1. S DIR(0)="YO"
  1. S DIR("A")="Do you wish Bill Number "_ABMP("BILL")_" CANCELED (Y/N)"
  1. D ^DIR K DIR
  1. I Y'=1!$D(DIRUT) G XIT
  1. ;
  1. EXP ;
  1. ; Check to see if bill was already exported "billed"
  1. I $P(^ABMDBILL(DUZ(2),ABMP("BDFN"),0),U,4)="B",ABMP("BILL")'=+ABMP("BILL") D
  1. .W *7,!!?5,"**** Bill Number ",ABMP("BILL")," was ALREADY PRINTED/EXPORTED! ****"
  1. .S ABMP("DEL")=""
  1. I D
  1. .W !
  1. .S DIR(0)="YO"
  1. .S DIR("A")="Are you Positive that you want to CANCEL this Bill (Y/N)"
  1. .D ^DIR K DIR
  1. I Y'=1!$D(DIRUT) G XIT
  1. W !!,"Canceling..."
  1. ;
  1. OPEN ;
  1. ; If bill was manually entered, cancel it and exit
  1. I ABMP("BILL")=+ABMP("BILL") D BKILL G XIT
  1. ; If claim does not exist cancel the bill and allow claim editing
  1. I '$D(^ABMDCLM(DUZ(2),+ABMP("BILL"),0)) W !!,"Claim Number: ",+ABMP("BILL")," has been Canceled, thus cannot be Opened for Editing!" G TRK
  1. L +^ABMDCLM(DUZ(2),+ABMP("BILL")):0 I '$T W !?5,*7,"Another User is Editing the CLAIM, try Later!" G XIT
  1. S ABMP("INS")=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),0),U,8) ;Active ins
  1. S DA=+ABMP("BILL")
  1. S DIE="^ABMDCLM(DUZ(2),"
  1. S DR=".04////E;.08////"_ABMP("INS")
  1. D ^DIE ; mark claim in edit status and stuff active ins
  1. K DR
  1. S DA(1)=DA
  1. S DIE="^ABMDCLM(DUZ(2),"_DA(1)_",13,"
  1. S DA=0
  1. ; Update insurer/provider multiple
  1. F S DA=$O(^ABMDCLM(DUZ(2),DA(1),13,DA)) Q:'DA D
  1. .I $P(^ABMDCLM(DUZ(2),DA(1),13,DA,0),U)=ABMP("INS")!($P($G(^ABMDCLM(DUZ(2),DA(1),13,DA,0)),U,11)=ABMP("INS")) D Q
  1. ..S DR=".03////I"
  1. ..D ^DIE
  1. .I $P(^ABMDCLM(DUZ(2),DA(1),13,DA,0),U,3)="I",($P(^(0),U)'=ABMP("INS")!($P($G(^ABMDCLM(DUZ(2),DA(1),13,DA,0)),U,11)'=ABMP("INS"))) D
  1. ..S DR=".03////P"
  1. ..D ^DIE
  1. ;
  1. TRK ;
  1. ; if bill already exported. . .
  1. I $D(ABMP("DEL")),$D(^ABPVFAC("B",ABMP("BILL"))) D
  1. .S DIK="^ABPVFAC("
  1. .S DA=$O(^ABPVFAC("B",ABMP("BILL"),0))
  1. .D ^DIK
  1. .Q
  1. D BKILL
  1. ; If single bill. . .
  1. I '$D(ABMP("SIS")) G MSG
  1. ; Loop through and cancel all related bills.
  1. S ABMP("BDFN")=""
  1. F S ABMP("BDFN")=$O(ABMP("SIS",ABMP("BDFN"))) Q:'ABMP("BDFN") D
  1. .S ABMP("BILL")=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),0),U)
  1. .D BKILL
  1. ;
  1. MSG ;
  1. W !,"Claim Number: ",+ABMP("BILL")," is now Open for Editing!"
  1. G XIT
  1. ;
  1. BKILL ;CANCEL BILL
  1. S DIE="^ABMDBILL(DUZ(2),"
  1. S DA=ABMP("BDFN")
  1. S DR=".04////X;.111////"_DUZ_";.112///NOW;.113R"
  1. S DIE("NO^")="" ;abm*2.6*11 HEAT89093
  1. D ^DIE
  1. D ADDBENTR^ABMUCUTL("CBILL",ABMP("BDFN")) ;add bill to UFMS Cash. Session
  1. W !!,"Bill Number: ",ABMP("BILL")," has been Canceled!",!
  1. Q