BMEMED4 ; IHS/PHXAO/TMJ - Add Non Auto Eligibles to Medicaid File ; [ 06/11/03 3:29 PM ]
;
;This Routine is used to Manually Compare and Automatically
;update Patient Registration. The compare of Patients residing
;in the Temporary Monthly No Match File against RPMS Patient
;Registration allows the User to Update Medicaid Eligibility
;File upon comparison.
;
;
W @IOF
A ; -- driver
D LOOK I IEN<1 D END Q
D DISP,PCHK I DFN<1 G A
D DISP,DIQ2
I $$SAME,$$MERGE D UPD
G A
;
LOOK ; -- ask patient to check for eligibility do lookup
W !! K DIC S DIC="^AZAMED(",DIC(0)="AEMQZ"
S DIC("A")="Please enter MEDICAID ROSTER Patient Name: "
D ^DIC S IEN=+Y K DIC Q
;
DISP ; -- display all information to the user
W @IOF,!,"Medicaid Eligibility Roster Data",!
K DIC S DIC="^AZAMED(",DA=IEN D EN^DIQ K DIC,DA,DR Q
;
DIQ2 ; -- display all information to the user
W !!,"RPMS patient file entry",!
N N S N=^DPT(DFN,0) W !,$P(N,U),?32,$P(N,U,2),?34,$P(N,U,9)
;W ?46,"HRCN: ",$$HRCN^ADGF S Y=$P(N,U,3) X ^DD("DD") W !,"DOB: ",Y
W ?46,"HRCN: ",$$HRCN^AZAMED S Y=$P(N,U,3) X ^DD("DD") W !,"DOB: ",Y ;IHS/ANMC/LJF 1/21/99 keep calls within namespace
S N=$G(^DPT(DFN,.11)) W ?20,$P(N,U,4)," ",$$ST Q
;
ST() ; -- state
Q $P($G(^DIC(5,+$P(N,U,5),0)),U)
;
SAME() ; -- ask user if patient's are the same
W !! N X,Y,DIR S DIR(0)="Y",DIR("A")="Are these the same patient "
S DIR("B")="Y" D ^DIR Q $S($D(DIRUT):0,'Y:0,1:1)
;
MERGE() ; -- merge
W ! N X,Y,DIR S DIR(0)="Y",DIR("A")="Update the RPMS Medicated Eligibility File"
S DIR("B")="N" D ^DIR Q $S($D(DIRUT):0,'Y:0,1:1)
;
PCHK ; -- look up patient in patient file
N X,Y K DIC S DIC="^AUPNPAT(",DIC(0)="AEMQZ"
S DIC("A")="Please enter RPMS Patient Name: " D ^DIC S DFN=+Y K DIC Q
;
UPD ; -- update ssn and medicaid eligible
S N=^AZAMED(IEN,0),SSN=$P(N,U,10) D:SSN
. ;Q:$O(^DPT("SSN",SSN,0))
. ;S DIE="^DPT(",DA=DFN,DR=".09///"_SSN N N,SSN D ^DIE
D INS
S EBD=+N,EED=$P(N,U,9),CT=$P(N,U,8),NUM=$P(N,U,6),NAME=$P(N,U,2)
S MDOB=$P(N,U,4) ; Medicaid Date of Birth 10/12/02
S SEX=$P(N,U,3),MRATE=$P(N,U,13) W !,"I am updating the Medicaid Eligibility File now. "
D NEW,UP0,MED
Q
;
END ; -- cleanup
K DA,DFN,EBD,EED,CT,SSN,IEN,E,X,Y,N
Q
;
;
INS ;GET ARIZONA MEDICAID INTERNAL NUMBER FROM THE INSURER FILE-PHX AREA
S DIC="^AUTNINS(",DIC(0)="XZIMO",X="ARIZONA MEDICAID" D ^DIC
I Y'=-1 S INS=$P(Y,"^",1)
E U IO(0) W !!,*7,"ERROR IN INSURER FILE..." G END
Q
;
;
MED ; -- add eligiblity date(s)/data
S IEN=$O(^AUPNMCD("B",DFN,0)) Q:'IEN
Q:$P($G(^AUPNMCD(IEN,11,EBD,0)),U,2)=EED ;Quit if Both Beg/End Match already
S:'$D(^AUPNMCD(IEN,11,0)) $P(^(0),U,2)="9000004.11D"
S LSTEBD=$P($G(^AUPNMCD(IEN,11,0)),U,3) ;Last Beg Date entered
I LSTEBD="" D
. S $P(^AUPNMCD(IEN,11,0),U,3)=EBD
. S $P(^AUPNMCD(IEN,11,0),U,4)=$P(^(0),U,4)+1
. S DR=".01///"_EBD_";.03////"_CT ; Add Beginning DT Only
. S DIE="^AUPNMCD("_IEN_",11,",DA(1)=IEN,DA=EBD D ^DIE K DIE,DR,DA
. I NEWADD=0 D UPDATES^AZAMSTR ;Update Count-Update Master List
I LSTEBD'="" D
. S SENDDT=$P($G(^AUPNMCD(IEN,11,LSTEBD,0)),U,2)
. I SENDDT'="" S DR=".01///"_EBD_";03////"_CT ; Add Beg DT Only
. I SENDDT'="" S DIE="^AUPNMCD("_IEN_",11,",DA(1)=IEN,DA=EBD D ^DIE K DIE,DR,DA I NEWADD=0 D UPDATES^AZAMSTR Q
. D STILLACT^AZAMSTR ;Existing Patient fell through-Still Active Only/no Update
Q
;
NEW ; -- create new entry in medicaid eligible
S NEWADD=0 ;Set Variable for New Record Add
Q:$O(^AUPNMCD("B",+DFN,0)) ;Quit if already in Medicaid Eligibility File
N X,Y S X=DFN,DIC="^AUPNMCD(",DIC(0)="L"
S DIC("DR")=".02////"_INS_";.03////"_NUM_";.04////3;2101////"_NAME
S DIC("DR")=DIC("DR")_";.07////"_SEX_";.08////"_DT_";.12////"_MRATE_";2102////"_MDOB
;
K DD,DO
D FILE^DICN S IEN=+Y K DIC
D NEW^AZAMSTR
S NEWADD=1
Q
;
UP0 ; -- update 0th node - Patient Demographics Only
S IEN=$O(^AUPNMCD("B",DFN,0)) Q:'IEN
S:'$P(^AUPNMCD(IEN,0),U,2) $P(^AUPNMCD(IEN,0),U,2)=INS
S:'$P(^AUPNMCD(IEN,0),U,3) $P(^AUPNMCD(IEN,0),U,3)=NUM
S:'$P(^AUPNMCD(IEN,0),U,4) $P(^AUPNMCD(IEN,0),U,4)=3
S DIE="^AUPNMCD(",DA=IEN,DR="2101////"_NAME_";.08////"_DT_";.12////"_MRATE_";2102////"_MDOB
D ^DIE K DIE,DR,DA
Q
;
BMEMED4 ; IHS/PHXAO/TMJ - Add Non Auto Eligibles to Medicaid File ; [ 06/11/03 3:29 PM ]
+1 ;
+2 ;This Routine is used to Manually Compare and Automatically
+3 ;update Patient Registration. The compare of Patients residing
+4 ;in the Temporary Monthly No Match File against RPMS Patient
+5 ;Registration allows the User to Update Medicaid Eligibility
+6 ;File upon comparison.
+7 ;
+8 ;
+9 WRITE @IOF
A ; -- driver
+1 DO LOOK
IF IEN<1
DO END
QUIT
+2 DO DISP
DO PCHK
IF DFN<1
GOTO A
+3 DO DISP
DO DIQ2
+4 IF $$SAME
IF $$MERGE
DO UPD
+5 GOTO A
+6 ;
LOOK ; -- ask patient to check for eligibility do lookup
+1 WRITE !!
KILL DIC
SET DIC="^AZAMED("
SET DIC(0)="AEMQZ"
+2 SET DIC("A")="Please enter MEDICAID ROSTER Patient Name: "
+3 DO ^DIC
SET IEN=+Y
KILL DIC
QUIT
+4 ;
DISP ; -- display all information to the user
+1 WRITE @IOF,!,"Medicaid Eligibility Roster Data",!
+2 KILL DIC
SET DIC="^AZAMED("
SET DA=IEN
DO EN^DIQ
KILL DIC,DA,DR
QUIT
+3 ;
DIQ2 ; -- display all information to the user
+1 WRITE !!,"RPMS patient file entry",!
+2 NEW N
SET N=^DPT(DFN,0)
WRITE !,$PIECE(N,U),?32,$PIECE(N,U,2),?34,$PIECE(N,U,9)
+3 ;W ?46,"HRCN: ",$$HRCN^ADGF S Y=$P(N,U,3) X ^DD("DD") W !,"DOB: ",Y
+4 ;IHS/ANMC/LJF 1/21/99 keep calls within namespace
WRITE ?46,"HRCN: ",$$HRCN^AZAMED
SET Y=$PIECE(N,U,3)
XECUTE ^DD("DD")
WRITE !,"DOB: ",Y
+5 SET N=$GET(^DPT(DFN,.11))
WRITE ?20,$PIECE(N,U,4)," ",$$ST
QUIT
+6 ;
ST() ; -- state
+1 QUIT $PIECE($GET(^DIC(5,+$PIECE(N,U,5),0)),U)
+2 ;
SAME() ; -- ask user if patient's are the same
+1 WRITE !!
NEW X,Y,DIR
SET DIR(0)="Y"
SET DIR("A")="Are these the same patient "
+2 SET DIR("B")="Y"
DO ^DIR
QUIT $SELECT($DATA(DIRUT):0,'Y:0,1:1)
+3 ;
MERGE() ; -- merge
+1 WRITE !
NEW X,Y,DIR
SET DIR(0)="Y"
SET DIR("A")="Update the RPMS Medicated Eligibility File"
+2 SET DIR("B")="N"
DO ^DIR
QUIT $SELECT($DATA(DIRUT):0,'Y:0,1:1)
+3 ;
PCHK ; -- look up patient in patient file
+1 NEW X,Y
KILL DIC
SET DIC="^AUPNPAT("
SET DIC(0)="AEMQZ"
+2 SET DIC("A")="Please enter RPMS Patient Name: "
DO ^DIC
SET DFN=+Y
KILL DIC
QUIT
+3 ;
UPD ; -- update ssn and medicaid eligible
+1 SET N=^AZAMED(IEN,0)
SET SSN=$PIECE(N,U,10)
IF SSN
Begin DoDot:1
+2 ;Q:$O(^DPT("SSN",SSN,0))
+3 ;S DIE="^DPT(",DA=DFN,DR=".09///"_SSN N N,SSN D ^DIE
End DoDot:1
+4 DO INS
+5 SET EBD=+N
SET EED=$PIECE(N,U,9)
SET CT=$PIECE(N,U,8)
SET NUM=$PIECE(N,U,6)
SET NAME=$PIECE(N,U,2)
+6 ; Medicaid Date of Birth 10/12/02
SET MDOB=$PIECE(N,U,4)
+7 SET SEX=$PIECE(N,U,3)
SET MRATE=$PIECE(N,U,13)
WRITE !,"I am updating the Medicaid Eligibility File now. "
+8 DO NEW
DO UP0
DO MED
+9 QUIT
+10 ;
END ; -- cleanup
+1 KILL DA,DFN,EBD,EED,CT,SSN,IEN,E,X,Y,N
+2 QUIT
+3 ;
+4 ;
INS ;GET ARIZONA MEDICAID INTERNAL NUMBER FROM THE INSURER FILE-PHX AREA
+1 SET DIC="^AUTNINS("
SET DIC(0)="XZIMO"
SET X="ARIZONA MEDICAID"
DO ^DIC
+2 IF Y'=-1
SET INS=$PIECE(Y,"^",1)
+3 IF '$TEST
USE IO(0)
WRITE !!,*7,"ERROR IN INSURER FILE..."
GOTO END
+4 QUIT
+5 ;
+6 ;
MED ; -- add eligiblity date(s)/data
+1 SET IEN=$ORDER(^AUPNMCD("B",DFN,0))
IF 'IEN
QUIT
+2 ;Quit if Both Beg/End Match already
IF $PIECE($GET(^AUPNMCD(IEN,11,EBD,0)),U,2)=EED
QUIT
+3 IF '$DATA(^AUPNMCD(IEN,11,0))
SET $PIECE(^(0),U,2)="9000004.11D"
+4 ;Last Beg Date entered
SET LSTEBD=$PIECE($GET(^AUPNMCD(IEN,11,0)),U,3)
+5 IF LSTEBD=""
Begin DoDot:1
+6 SET $PIECE(^AUPNMCD(IEN,11,0),U,3)=EBD
+7 SET $PIECE(^AUPNMCD(IEN,11,0),U,4)=$PIECE(^(0),U,4)+1
+8 ; Add Beginning DT Only
SET DR=".01///"_EBD_";.03////"_CT
+9 SET DIE="^AUPNMCD("_IEN_",11,"
SET DA(1)=IEN
SET DA=EBD
DO ^DIE
KILL DIE,DR,DA
+10 ;Update Count-Update Master List
IF NEWADD=0
DO UPDATES^AZAMSTR
End DoDot:1
+11 IF LSTEBD'=""
Begin DoDot:1
+12 SET SENDDT=$PIECE($GET(^AUPNMCD(IEN,11,LSTEBD,0)),U,2)
+13 ; Add Beg DT Only
IF SENDDT'=""
SET DR=".01///"_EBD_";03////"_CT
+14 IF SENDDT'=""
SET DIE="^AUPNMCD("_IEN_",11,"
SET DA(1)=IEN
SET DA=EBD
DO ^DIE
KILL DIE,DR,DA
IF NEWADD=0
DO UPDATES^AZAMSTR
QUIT
+15 ;Existing Patient fell through-Still Active Only/no Update
DO STILLACT^AZAMSTR
End DoDot:1
+16 QUIT
+17 ;
NEW ; -- create new entry in medicaid eligible
+1 ;Set Variable for New Record Add
SET NEWADD=0
+2 ;Quit if already in Medicaid Eligibility File
IF $ORDER(^AUPNMCD("B",+DFN,0))
QUIT
+3 NEW X,Y
SET X=DFN
SET DIC="^AUPNMCD("
SET DIC(0)="L"
+4 SET DIC("DR")=".02////"_INS_";.03////"_NUM_";.04////3;2101////"_NAME
+5 SET DIC("DR")=DIC("DR")_";.07////"_SEX_";.08////"_DT_";.12////"_MRATE_";2102////"_MDOB
+6 ;
+7 KILL DD,DO
+8 DO FILE^DICN
SET IEN=+Y
KILL DIC
+9 DO NEW^AZAMSTR
+10 SET NEWADD=1
+11 QUIT
+12 ;
UP0 ; -- update 0th node - Patient Demographics Only
+1 SET IEN=$ORDER(^AUPNMCD("B",DFN,0))
IF 'IEN
QUIT
+2 IF '$PIECE(^AUPNMCD(IEN,0),U,2)
SET $PIECE(^AUPNMCD(IEN,0),U,2)=INS
+3 IF '$PIECE(^AUPNMCD(IEN,0),U,3)
SET $PIECE(^AUPNMCD(IEN,0),U,3)=NUM
+4 IF '$PIECE(^AUPNMCD(IEN,0),U,4)
SET $PIECE(^AUPNMCD(IEN,0),U,4)=3
+5 SET DIE="^AUPNMCD("
SET DA=IEN
SET DR="2101////"_NAME_";.08////"_DT_";.12////"_MRATE_";2102////"_MDOB
+6 DO ^DIE
KILL DIE,DR,DA
+7 QUIT
+8 ;