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

AZAXBILL1.m

Go to the documentation of this file.
AZAXBILL ;IHS/PHXAO/AEF - FIND 3P BILLS AND CHANGE FROM HCFA-1500 TO UB-92
 ;;1.0;ANNE'S SPECIAL ROUTINES;;MAR 2, 2004
 ;
DESC ;ROUTINE DESCRIPTION
 ;;
 ;;This routine finds all bills that have been transmitted during the
 ;;1/1/04 to 3/31/04 date range which meet the following criteria and
 ;;changes the CPT code from 00099 to 99211 and the mode of export from
 ;;HCFA-1500-E to UB-92-E V4.
 ;;
 ;;Export Date    = between 1/4/04-3/31/04
 ;;Mode of Export = HCFA-1500-E
 ;;Insurer        = Arizona Medicaid
 ;;Bill Type      = 131
 ;;Bill Status    = Billed
 ;;
 ;;$$END
 ;;
EN ;EP -- MAIN ENTRY POINT
 ;      LOOPS THROUGH THE 3P TX STATUS FILE TO FIND THE EXPORTS
 ;      DURING THE TIME FRAME AND THEN FINDS ALL THE BILLS UNDER
 ;      THAT EXPORT
 ;
 N BCNT,DATE,DIR,EXPIEN,FAC,NOW,TCNT,X,Y
 ;
 D TXT
 ;
 S DIR(0)="E"
 D ^DIR
 Q:'Y
 ;
 S NOW=$$NOW
 D ADDREC(NOW)
 ;
 S TCNT=0
 S BCNT=0
 S FAC=0
 F  S FAC=$O(^ABMDTXST(FAC)) Q:'FAC  D
 . S DATE=3031231.9999
 . F  S DATE=$O(^ABMDTXST(FAC,"B",DATE)) Q:'DATE  Q:DATE>3040331  D
 . . S EXPIEN=0
 . . F  S EXPIEN=$O(^ABMDTXST(FAC,"B",DATE,EXPIEN))  Q:'EXPIEN  D
 . . . D 1BAT(FAC,EXPIEN,.BCNT)
 . . . S TCNT=TCNT+BCNT
 ;
 W !!?5,"TOTAL BILLS PROCESSED:  "_TCNT
 ;
 Q
1BAT(FAC,EXPIEN,BCNT) ;
 ;----- PROCESS ONE BATCH
 ;
 N BILLIEN,DATA
 ;
 Q:'FAC
 Q:'EXPIEN
 S DATA=$G(^ABMDTXST(FAC,EXPIEN,0))
 Q:$$MODE($P(DATA,U,2))'="HCFA-1500-E"
 Q:$$INSURER($P(DATA,U,4))'="ARIZONA MEDICAID"
 ;
 W !!?5,"PROCESSING BATCH #"_FAC_"-"_EXPIEN_"  "_$$DATE($P(DATA,U)) 
 ;
 S BCNT=0
 S BILLIEN=0
 F  S BILLIEN=$O(^ABMDTXST(FAC,EXPIEN,2,BILLIEN)) Q:'BILLIEN  D
 . D 1BILL(FAC,BILLIEN,.BCNT)
 W !?5,"NUMBER OF BILLS PROCESSED: "_BCNT
 Q
1BILL(FAC,BILLIEN,BCNT) ;
 ;----- PROCESS ONE BILL
 ;      EDITS THE EXPORT MODE AND CPT CODES FOR ONE BILL
 ;
 N CODE,CODEIEN,DA,DATA,DIE,DR,MODE,X,Y
 ;
 Q:'FAC
 Q:'BILLIEN
 Q:'$D(^ABMDBILL(FAC,BILLIEN,0))
 S DATA=$G(^ABMDBILL(FAC,BILLIEN,0))
 Q:$P(DATA,U,2)'=131   ;BILL TYPE MUST BE 131
 Q:$P(DATA,U,4)'="B"   ;BILL STATUS MUST BE "BILLED"
 Q:$$MODE($P(DATA,U,6))'="HCFA-1500-E"
 Q:$$INSURER($P(DATA,U,8))'="ARIZONA MEDICAID"
 ;
 S BCNT=$G(BCNT)+1
 ;
 ;----- CHANGE THE EXPORT MODE
 ;
 S MODE="UB-92-E V4"
 S DA=BILLIEN
 S DIE="^ABMDBILL("_FAC_","
 S DR=".06///^S X=MODE"
 ;D ^DIE   ;*** TESTING - AEF *** COMMENT OUT FOR TESTING
 ;
 ;----- NOW FIND ALL THE 00099 CPT CODES UNDER THE Medical Procedures
 ;      MULTIPLE AND CHANGE THEM TO 99211
 ;      
 S CODEIEN=0
 F  S CODEIEN=$O(^ABMDBILL(FAC,BILLIEN,27,CODEIEN)) Q:'CODEIEN  D
 . S CODE=$P($G(^ABMDBILL(FAC,BILLIEN,27,CODEIEN,0)),U)
 . Q:+CODE'=99
 . S DA(1)=BILLIEN
 . S DA=CODEIEN
 . S DIE="^ABMDBILL("_FAC_","_DA(1)_",27,"
 . S DR=".01///^S X=99211"
 . ;D ^DIE   ;*** TESTING - AEF *** COMMENT OUT FOR TESTING
 ;
 ;-----  NOW ADD THE BILL TO THE AZAX BILL FILE
 ;
 D ADDBIL(NOW,FAC,BIL)
 ;
 Q
ADDREC(X) ;
 ;----- ADD RECORD TO THE AZAX BILL FILE
 ;
 ;      X  =  NOW
 ;      
 N DD,DIC,DO,Y
 ;
 S DINUM=X
 S DIC="^AZAXBILL("
 S DIC(0)=""
 D FILE^DICN
 Q
ADDBIL(NOW,FAC,BIL) ;
 ;----- ADD BILL TO THE AZAX BILL FILE
 ;
 N DA,DD,DIC,DO,Y
 ;
 S X=FAC_"-"_BIL
 S DA(1)=NOW
 S DIC="^AZAXBILL("_DA(1)_","
 S DIC(0)=""
 S DIC("P")=$P(^DD(1991226,1,0),U,2)
 D FILE^DICN
 Q
TXT ;----- PRINT OPTION TEXT
 ;
 N I,X
 F I=1:1 S X=$P($T(DESC+I),";",3) Q:X["$$END"  W !,X
 Q
MODE(X)
 ;----- RESOLVE EXPORT MODE POINTER
 ;
 N Y
 S Y=""
 I X S Y=$P($G(^ABMDEXP(X,0)),U)
 Q Y
INSURER(X)
 ;----- RESOLVE INSURER POINTER
 ;
 N Y
 S Y=""
 I X S Y=$P($G(^AUTNINS(X,0)),U)
 Q Y
DATE(X) ;
 ;----- DATE CONVERSION TO EXTERNAL DATE
 ;
 ;      X  =  DATE IN INTERNAL FM FORMAT
 ;      
 N Y
 S Y=""
 I X D
 . S Y=X
 . D DD^%DT
 Q Y
NOW() ;
 ;----- RETURNS CURRENT DATE/TIME
 ;
 N %,%H,%I,X
 D NOW^%DTC
 Q %