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

AZAMED.m

Go to the documentation of this file.
  1. AZAMED ; IHS/PHXAO/TMJ - ACTUAL UPDATES OF AHCCCS MEDICAID RECORDS [ 06/18/03 10:34 AM ]
  1. ;AZAGMED Global established by Routine AZAGMED.
  1. ;This Sets Every Record in AHCCCS File to AZAGMED(Global
  1. ;
  1. ;This Routine $0's through Global ^AZAGMED(
  1. ;This Routine completes the ACTUAL RPMS DOWNLOAD
  1. ;by updated the RPMS MEDICAID ELIGIBILITY File, the
  1. ;RPMS Master Control File and the Monthly No Match File
  1. ;
  1. ;
  1. VARIABLE ;Establish Date/Time/Count Variables
  1. ;Establish Run Counters
  1. ;
  1. ;S FILE="MED0120001.TXT" ;Hard Set for Testing Only on just this routine
  1. ;
  1. S AZAMNEW=0 ;New Adds to Med Eligibility File
  1. S AZAMUPDT=0 ;Updates to Med Eligibility File
  1. S SSNCT=0 ;SSN Matches Only in No Match File
  1. S KIDCT=0 ;KID's Care Counter in No Match File
  1. S TOTALCT=0 ;Total Records Actually Processed - New or Update
  1. S NOCOUNT=0 ; Variable used to not count News & Updates twice
  1. S GRANDTOT=0 ;Grand Total all Records regardless of action
  1. S BEGTIME=$$NOW^XLFDT
  1. ;
  1. INS ;GET ARIZONA MEDICAID INTERNAL NUMBER FROM THE INSURER FILE-PHX AREA
  1. S DIC="^AUTNINS(",DIC(0)="XZIMO",X="MEDICAID" D ^DIC
  1. I Y'=-1 S INS=$P(Y,"^",1)
  1. E G END2 ;Quit if no Insurer - don't write message
  1. ;
  1. D START
  1. S ENDTIME=$$NOW^XLFDT
  1. D LOG
  1. D END
  1. Q
  1. ;
  1. START ;BEGIN $O THRU ^AZAGMED( -created by Routine AZAGMED
  1. ;which reads all records in AHCCCS File 1-420 Position &
  1. ;sets full record in ^AZAGMED(Global
  1. ;S MRATE=""
  1. ;
  1. I '$D(ZTQUEUED) U IO(0) ;IHS/ANMC/FBD-2/17/98-ADDED LINE-TRYING TO AVOID <MODER> ERRORS
  1. K ^TMP($J),^AZAMED ;Kill off $Job and Previous Month's AZAMED Global
  1. ;
  1. S ^AZAMED(0)="AZA MEDICAID ELIGIBLE (NO SSN)^1180001DI"
  1. A ; -- BEGIN $O THRU AZAGMED(GLOBAL CREATED BY AZAGMED
  1. S IFN=0 F S IFN=$O(^AZAGMED(IFN)) Q:'IFN D
  1. . S N=^AZAGMED(IFN),MSSN=$E(N,27,35),MNUM=$E(N,18,26),MLNAME=$E(N,108,130),MDOB=$E(N,143,150),MSEX=$E(N,142,142),MFNAME=$E(N,131,140)
  1. . Q:$E(N,1,2)="XX" ;Quit -Last IFN Record is end of File
  1. . S MLNAME=$P(MLNAME," ",1) ; Strip out spaces on Medicaid Last Name
  1. . S MFNAME=$P(MFNAME," ",1) ;Strip out spaces on Medicaid First Name
  1. . S MFULNAME=MLNAME_","_MFNAME ;Medicaid Full Name
  1. . S MRATE="" S MKID="" S SSNMATCH="" S NOCOUNT=0 S GRANDTOT=GRANDTOT+1
  1. . D MEDNUM ;Check the Med Elig Number before SSN
  1. . I MNUMMAT=0 S DFN=$O(^DPT("SSN",+MSSN,0)) I 'DFN N N,MSSN,MNUM D ^AZAMED0 Q
  1. . D MEDNAME ;Check Medicaid Elig File's Medicaid Name (if exists)
  1. . S SDOB=$P(^DPT(DFN,0),U,3) ;VA PT DOB
  1. . S MDOB=$$DOB ; AHCCCS DOB
  1. . S SSEX=$P(^DPT(DFN,0),U,2),FULLNAME=$P(^(0),U) ; VA PT SEX
  1. . S SLNAME=$P(FULLNAME,",",1) ; VA PT FULL LAST NAME
  1. . S MRATE=$E(N,355,358) ;AHCCCS Rate Code-Ck for Kids Care
  1. . S EED=$$EED,EBD=$$EBD ;AHCCCS PAYMENT TO/FROM DT
  1. . ;Q:EED<$$EHIS
  1. . S ERD=$$ERD,CT=$E(N,106,107) ;Enrollment Dt - CT=Coverage Type)
  1. . S NOCOUNT=0 ;Variable for Not counting New & Updates twice
  1. . I MRATE>5999&(MRATE<7000) S MKID="Y" S KIDCT=KIDCT+1 N N,MSSN,MNUM D ^AZAMED0 Q ;Quit if KIDS CARE-Per J. Hathcoat 1/25/01
  1. . I MLNAME'=SLNAME&(MNAMEMAT'=1) S SSNCT=SSNCT+1 S SSNMATCH="Y" N N,MSSN,MNUM D ^AZAMED0 Q ; Quit if no match on Med Name or Last Name ;*** TESTING - AEF *** ADDED ADDITIONAL SPACE AFTER QUIT TO PREVENT <SYNTAX> ERROR
  1. . I MDOB'=SDOB S SSNCT=SSNCT+1 S SSNMATCH="Y" N N,MSSN,MNUM D ^AZAMED0 Q ; Quit on DOB No Match
  1. . I MSEX'=SSEX S SSNCT=SSNCT+1 S SSNMATCH="Y" N N,MSSN,MNUM D ^AZAMED0 Q ; Quit if no match on Sex
  1. . D NEW,UP0,MED
  1. . S TOTALCT=TOTALCT+1 ;Total Record Count - Regardless of action
  1. Q
  1. ;
  1. MED ; -- add eligiblity date(s)/data
  1. S IEN=$O(^AUPNMCD("B",DFN,0)) Q:'IEN
  1. Q:$P($G(^AUPNMCD(IEN,0)),U,4)'=3 ;*** TESTING - AEF *** DON'T UPDATE IF NOT AZ
  1. Q:$P($G(^AUPNMCD(IEN,11,EBD,0)),U,2)=EED ;Quit if Both Beg/End Match already
  1. S:'$D(^AUPNMCD(IEN,11,0)) $P(^(0),U,2)="9000004.11D"
  1. S LSTEBD=$P($G(^AUPNMCD(IEN,11,0)),U,3) ;Last Beg Date entered
  1. I LSTEBD="" D
  1. . S $P(^AUPNMCD(IEN,11,0),U,3)=EBD
  1. . S $P(^AUPNMCD(IEN,11,0),U,4)=$P(^(0),U,4)+1
  1. . S DR=".01///"_EBD_";.03////"_CT ; Add Beginning DT Only ;*** TESTING - AEF *** REMOVE EXTRA QUOTE TO PREVENT <SYNTAX> ERROR
  1. . S DIE="^AUPNMCD("_IEN_",11,",DA(1)=IEN,DA=EBD D ^DIE K DIE,DR,DA,DINUM
  1. . I NOCOUNT=0 S AZAMUPDT=AZAMUPDT+1 D UPDATES^AZAMSTR ;Update Count-Update Master List
  1. I LSTEBD'="" D
  1. . S SENDDT=$P($G(^AUPNMCD(IEN,11,LSTEBD,0)),U,2)
  1. . I SENDDT'="" S $P(^AUPNMCD(IEN,11,0),U,3)=EBD
  1. . I SENDDT'="" S $P(^AUPNMCD(IEN,11,0),U,4)=$P(^(0),U,4)+1
  1. . I SENDDT'="" S DR=".01///"_EBD_";03////"_CT ; Add Beg DT Only
  1. . I SENDDT'="" S DIE="^AUPNMCD("_IEN_",11,",DA(1)=IEN,DA=EBD D ^DIE K DIE,DR,DA,DINUM I NOCOUNT=0 S AZAMUPDT=AZAMUPDT+1 D UPDATES^AZAMSTR Q
  1. . D STILLACT^AZAMSTR ;Existing Patient fell through-Still Active Only/no Update
  1. Q
  1. ;
  1. NEW ; -- create new entry in medicaid eligible
  1. Q:$O(^AUPNMCD("B",+DFN,0)) ;Quit if already in Medicaid Eligibility File
  1. D ^XBFMK K DIADD,DINUM
  1. S X=DFN,DIC="^AUPNMCD(",DIC(0)="L",DLAYGO=9000004
  1. S DIC("DR")=".02////"_INS_";.03////"_MNUM_";.04////"_3_";2101////"_MFULNAME
  1. S DIC("DR")=DIC("DR")_";.07////"_SSEX_";.08////"_DT_";.12////"_MRATE
  1. ;K DD,DO
  1. D FILE^DICN S IEN=+Y D ^XBFMK K DIADD,DINUM
  1. S AZAMNEW=AZAMNEW+1 ;Counter for New Adds to Medicaid Eligibility file
  1. S NOCOUNT=1 ;Don't count again on Date Updates UP0
  1. D NEW^AZAMSTR
  1. Q
  1. ;
  1. UP0 ; -- update 0th node - Patient Demographics Only
  1. S IEN=$O(^AUPNMCD("B",DFN,0)) Q:'IEN
  1. Q:$P($G(^AUPNMCD(IEN,0)),U,4)'=3 ;*** TESTING - AEF *** DON'T UPDATE IF NOT AZ
  1. S:'$P(^AUPNMCD(IEN,0),U,2) $P(^AUPNMCD(IEN,0),U,2)=INS
  1. S:'$P(^AUPNMCD(IEN,0),U,3) $P(^AUPNMCD(IEN,0),U,3)=MNUM
  1. S:'$P(^AUPNMCD(IEN,0),U,4) $P(^AUPNMCD(IEN,0),U,4)=3
  1. S DIE="^AUPNMCD(",DA=IEN,DR="2101////"_MFULNAME_";.08////"_DT_";.12////"_MRATE
  1. D ^DIE K DIE,DR,DA
  1. ;I NOCOUNT=0 S AZAMUPDT=AZAMUPDT+1 ;Counter for Updates only to Medicaid Eligibility File
  1. Q
  1. ;
  1. END ; -- cleanup
  1. S GRANDTOT=GRANDTOT-1
  1. ;W !!,"End of Download Update!!!",!
  1. ;W !!
  1. ;W "Total Records Processed: "_GRANDTOT
  1. ;W !,"Total Action Records Process: "_TOTALCT
  1. ;W !,"Total New Records Added: "_AZAMNEW
  1. ;W !,"Total Updated Records: "_AZAMUPDT
  1. ;W !,"Total Records with SSN Match Only: "_SSNCT
  1. ;W !!,"Total KID's Care: "_KIDCT
  1. ;
  1. K IFN,DFN,IEN,EED,EBD,CT,MNUM,MSEX,N,NAME,CNT,MFULNAME,MFNAME,MNAMEMAT,MEDNAME,MIEN,MFNAME,MDOB,MRATE
  1. K AZAMNEW,AZAMUPDT,SSNCT,TOTALCT,NOCOUNT,GRANDTOT,BEGTIME,MKID,KIDCT,ENDTIME
  1. Q
  1. ;
  1. EED() ; -- eligibility end date
  1. ;N X,Y S X=$E(N,412,419) D ^%DT Q Y
  1. N X,Y S YYYY=$E(N,412,415),MMDD=$E(N,416,419)
  1. S EED=MMDD_YYYY
  1. S X=EED D ^%DT Q Y
  1. ;
  1. EBD() ; -- eligibility beg date
  1. ;N X,Y S X=$E(N,404,411) D ^%DT Q Y
  1. N X,Y S YYYY=$E(N,347,350),MMDD=$E(N,351,354)
  1. S EBD=MMDD_YYYY
  1. S X=EBD D ^%DT Q Y
  1. ;
  1. EHIS() ; -- eligibilities after date/flag
  1. N X1,X2,X S X1=DT,X2=-180 D C^%DTC Q X
  1. ;
  1. HRCN() ;EP; -- IHS health record number
  1. Q $P($G(^AUPNPAT(+$G(DFN),41,+$G(DUZ(2)),0)),"^",2)
  1. ;
  1. ERD() ;EP -- Eligibility Enrollment Dt (Same as Beg Date on Roster)
  1. ;Roster Positions 347-354
  1. N X,Y S YYYY=$E(N,347,350),MMDD=$E(N,351,354)
  1. S ERD=MMDD_YYYY
  1. S X=ERD D ^%DT Q Y
  1. ;N X,Y S X=$E(N,404,411) D ^%DT Q Y
  1. ;
  1. DOB() ;EP - Date of AHCCCS Birth Date Conversion
  1. N X,Y S YYYY=$E(N,143,146),MMDD=$E(N,147,150)
  1. S MDOB=MMDD_YYYY
  1. S X=MDOB D ^%DT Q Y
  1. ;
  1. LOG ;Update AZA MEDICAL ELIGIBLE DOWNLOAD LOG
  1. ;W !!,"The Download Process is Now Complete!!"
  1. ;W !!,"I will now update the Download Log with the final run documentation",!
  1. ;S BEGTIME=$$NOW^XLFDT,ENDTIME=$$NOW^XLFDT,GRANDTOT=100,TOTALCT=50,SSNCT=5,AZAMNEW=10,AZAMUPDT=8
  1. ;The .01 Entry is Today's Date at time of run - BEGTIME Variable
  1. D ^XBFMK K DIADD,DINUM
  1. S X=BEGTIME,DIC="^AZAMEDLG(",DIC(0)="L",DLAYGO=1180006
  1. S DIC("DR")=".02////"_ENDTIME_";.03////"_GRANDTOT_";.04///"_TOTALCT_";.05////"_SSNCT_";1///"_KIDCT
  1. S DIC("DR")=DIC("DR")_";.06////"_AZAMNEW_";.07////"_AZAMUPDT_";.08////"_FILE
  1. ;ADD THE FILE NAME PROCESSED FIELD .08 HERE
  1. ;S DIC("DR")=DIC("DR")_";1////"_SSN_";2////"_RESCE
  1. D FILE^DICN S IEN=+Y D ^XBFMK K DIADD,DINUM
  1. ;
  1. ;W !!,"Log File Updated",!
  1. ;
  1. Q
  1. ;
  1. END2 ;Abnormal Termination - Medicaid Insurer missing from Insurer File
  1. ;W !,"The Insurer - ARIZONA MEDICAID - is missing from the Insurer File",!
  1. ;W !,"The Initial Process of creating the AZAGMED Global is complete",!
  1. ;W "however, the Update Run (AZAMED) cannot be ran - See your Site Manager",!!
  1. Q
  1. ;
  1. MEDNAME ;Check Med Elig Medicaid Name-If exists for match
  1. ;
  1. S MNAMEMAT=0
  1. S MIEN=$O(^AUPNMCD("B",+DFN,0))
  1. Q:'MIEN
  1. S MEDNAME=$P($G(^AUPNMCD(MIEN,21)),U,1)
  1. Q:MEDNAME=""
  1. I MEDNAME=MFULNAME S MNAMEMAT=1
  1. Q
  1. ;
  1. MEDNUM ;Check Med Elig Number against RPMS
  1. ;
  1. S MNUMMAT=0
  1. S MIEN=$O(^AUPNMCD("AE",MNUM,0))
  1. Q:'MIEN
  1. S MEDNUM=$P($G(^AUPNMCD(MIEN,0)),U,3)
  1. Q:MEDNUM=""
  1. I MEDNUM=MNUM S MNUMMAT=1 S DFN=$P($G(^AUPNMCD(MIEN,0)),U,1)
  1. Q
  1. ;