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