BHLIN1I ; cmi/flag/maw - BHL File Inbound IN1 Segment ;
;;3.01;BHL IHS Interfaces with GIS;**1**;JUN 01, 2002
;
;this routine will file the inbound IN1 segment
;
MAIN ;-- this is the main routine driver
D FILE,EOJ
Q
;
FILE ;-- get the data and file it
S BHLDA=0 F S BHLDA=$O(@BHLTMP@(BHLDA)) Q:BHLDA="" D
. S BHLICM=$G(@BHLTMP@(BHLDA,2))
. S BHLICN=$G(@BHLTMP@(BHLDA,4))
. ;S BHLICNI=$O(^AUTNINS("MI",BHLICM,0)) only if site has insurer map
. S BHLGN=$G(@BHLTMP@(BHLDA,8))
. S BHLGNM=$G(@BHLTMP@(BHLDA,9))
. S BHLPED=$G(@BHLTMP@(BHLDA,12))
. S BHLPEDE=$$FMTE^XLFDT(BHLPED)
. S BHLPEXD=$G(@BHLTMP@(BHLDA,13))
. S BHLPEXDE=$$FMTE^XLFDT(BHLPEXD)
. S BHLNOI=$G(@BHLTMP@(BHLDA,16))
. S BHLIDOB=$G(@BHLTMP@(BHLDA,18))
. S BHLSTR=$P($G(@BHLTMP@(BHLDA,19)),CS)
. S BHLCTY=$P($G(@BHLTMP@(BHLDA,19)),CS,3)
. S BHLST=$P($G(@BHLTMP@(BHLDA,19)),CS,4)
. S BHLZP=$P($G(@BHLTMP@(BHLDA,19)),CS,5)
. S BHLISX=$G(@BHLTMP@(BHLDA,43))
. S BHLCT=$G(@BHLTMP@(BHLDA,47))
. ;S BHLIID=$G(@BHLTMP@(BHLDA,36))
. S BHLIID=$G(@BHLTMP@(BHLDA,49))
. S BHLIT="PI"
. I BHLICN="MEDICAID" S BHLIT="MCD"
. I BHLICN="MEDICARE" S BHLIT="MCR"
. D @BHLIT
. D FILE^BHLIN2I
. D FK^BHLU
Q
;
MCD ;-- file medicaid data
S (BHLMCDE,BHLMCME)=""
I BHLIID="" S BHLERCD="NOMCDN" X BHLERR Q
I BHLPED="" S BHLERCD="NOMCDED" X BHLERR Q
S BHLMCD=0 F S BHLMCD=$O(^AUPNMCD("B",BHLPAT,BHLMCD)) Q:BHLMCD="" D
. I $P(^AUPNMCD(BHLMCD,0),U,3)=BHLIID S BHLMCDE=BHLMCD Q
I BHLMCDE="" D Q
. S DIC="^AUPNMCD(",DIC(0)="L",DLAYGO=9000004,X=BHLPAT
. S DIC("DR")=".02///"_BHLICN_";.03///"_BHLIID_";.04///"_BHLGN
. S DIC("DR")=DIC("DR")_";.05///"_BHLNOI
. K DD,DO
. D FILE^DICN
. I Y<0 S BHLERCD="NOMCD" X BHLERR Q
. S BHLMCDE=+Y
. S DIC="^AUPNMCD("_BHLMCDE_",11,",DIC("P")=$P(^DD(9000004,1101,0),U,2)
. S DIC(0)="L",DA(1)=BHLMCDE,X=BHLPED,DIC("DR")=".02///"_BHLPEXD
. S DIC("DR")=DIC("DR")_";.03///"_BHLCT
. D ^DIC
. I Y<0 S BHLERCD="NOMCDM" X BHLERR Q
S BHLMCM=0 F S BHLMCM=$O(^AUPNMCD(BHLMCDE,11,BHLMCM)) Q:BHLMCM="" D
. S BHLDATA=$G(^AUPNMCD(BHLMCDE,11,BHLMCM,0))
. I BHLMCM=BHLPED,$P(BHLDATA,U,3)=BHLCT S BHLMCME=BHLMCM Q
Q:'$D(^AUPNMCD(BHLMCDE,0))
I BHLMCME="" D Q
. S DIC="^AUPNMCD("_BHLMCDE_",11,",DIC("P")=$P(^DD(9000004,1101,0),U,2)
. S DIC(0)="L",DA(1)=BHLMCDE,X=BHLPED,DIC("DR")=".02///"_BHLPEXD
. S DIC("DR")=DIC("DR")_";.03///"_BHLCT
. D ^DIC
. I Y<0 S BHLERCD="NOMCDM" X BHLERR Q
S DIE="^AUPNMCD("_BHLMCDE_",11,",DA(1)=BHLMCDE,DA=BHLMCME
S DR=".02///"_BHLPEXD_";.03///"_BHLCT
D ^DIE
I $D(Y) S BHLERCD="NOUPMCDM" X BHLERR Q
Q
;
MCR ;-- file medicare data
S BHLMCRE=""
I BHLIID="" S BHLERCD="NOMCRN" X BHLERR Q
I BHLPED="" S BHLERCD="NOMCRED" X BHLERR Q
I '$D(^AUPNMCR(BHLPAT,0)) D Q
. S DIC="^AUPNMCR(",DLAYGO=9000003,X=BHLPAT,DINUM=X,DIC(0)="L"
. S DIC("DR")=".02///"_BHLICN_";.03///"_BHLIID_";.04///"_BHLGN
. K DD,DO
. D FILE^DICN
. K DINUM
. I Y<0 S BHLERCD="NOMCR" X BHLERR Q
. S DIC="^AUPNMCR("_BHLPAT_",11,",DIC("P")=$P(^DD(9000003,1101,0),U,2)
. S DIC(0)="L",DA(1)=BHLPAT,X=BHLPED
. S DIC("DR")=".02///"_BHLPEXD_";.03///"_BHLCT
. D ^DIC
. I Y<0 S BHLERCD="NOMCRM" X BHLERR Q
S DIE="^AUPNMCR(",DA=BHLPAT,DR=".03///"_BHLIID_";.04///"_BHLGN
S DR=DR_";2101///"_BHLNOI
D ^DIE
I $D(Y) S BHLERCD="NOUPMCR" X BHLERR Q
S BHLMCR=0 F S BHLMCR=$O(^AUPNMCR(BHLPAT,11,BHLMCR)) Q:BHLMCR="" D
. S BHLDATA=$G(^AUPNMCR(BHLPAT,11,BHLMCR,0))
. I $P(BHLDATA,U)=BHLPED,$P(BHLDATA,U,3)=BHLCT S BHLMCRE=BHLMCR Q
Q:'$D(^AUPNMCR(BHLPAT,0))
I BHLMCRE="" D Q
. S DIC="^AUPNMCR("_BHLPAT_",11,",DIC("P")=$P(^DD(9000003,1101,0),U,2)
. S DIC(0)="L",DA(1)=BHLPAT,X=BHLPED
. S DIC("DR")=".02///"_BHLPEXD_";.03///"_BHLCT
. D ^DIC
. I Y<0 S BHLERCD="NOMCRM" X BHLERR Q
S DIE="^AUPNMCR("_DFN_",11,",DA(1)=BHLPAT,DA=BHLMCRE
S DR=".02///"_BHLPEXD
D ^DIE
I $D(Y) S BHLERCD="NOUPMCRM" X BHLERR Q
Q
;
PI ;-- file private insurance data
S BHLPH=""
;S BHLICN=$O(^AUTNINS("MI",BHLICM,0)) only if site has insurer map
I BHLICN="" S BHLERCD="NOICN" X BHLERR Q
Q:BHLIID=""
S BHLMA=0 F S BHLMA=$O(^AUPN3PPH("D",BHLIID,BHLMA)) Q:BHLMA="" D
. I $P(^AUPN3PPH(BHLMA,0),U,3)=BHLICNI S BHLPH=BHLMA Q
I BHLPH="" D Q:$D(BHLERCD)
. Q:BHLNOI=""
. S DIC="^AUPN3PPH(",X=BHLNOI,DLAYGO=9000003.1,DIC(0)="L"
. S DIC("DR")=".03////"_BHLICN_";.04///"_BHLIID
. S DIC("DR")=DIC("DR")_";.08///"_BHLISX_";.09///"_BHLSTR
. S DIC("DR")=DIC("DR")_";.11///"_BHLCTY_";.12///"_BHLST
. S DIC("DR")=DIC("DR")_";.13///"_BHLZP_";.17///"_BHLPED
. S DIC("DR")=DIC("DR")_";.18///"_BHLPEXD
. K DD,D0,DO
. D FILE^DICN
. I Y<0 S BHLERCD="NO3PPH" X BHLERR Q
. S BHLPH=+Y
Q:BHLNOI=""
I $D(^AUPNPRVT(BHLPAT,0)) D UPI^BHLIN1IA Q
S DIC="^AUPNPRVT(",DLAYGO=9000006,DIC(0)="L",X=BHLPAT,DINUM=X
K DD,DO
D FILE^DICN
K DINUM
I Y<0 S BHLERCD="NOPIE" X BHLERR Q
S DIC="^AUPNPRVT("_BHLPAT_",11,"
S DIC("P")=$P(^DD(9000006,1101,0),U,2),DIC(0)="L",DA(1)=BHLPAT
S X="`"_BHLICN,DIC("DR")=".02///"_BHLIID_";.04///"_BHLNOI
S DIC("DR")=DIC("DR")_";.06///"_BHLPED_";.07///"_BHLPEXD
S DIC("DR")=DIC("DR")_";.08///"_BHLPH
D ^DIC
I Y<0 S BHLERCD="NOPIEM" X BHLERR Q
Q
;
EOJ ;-- kill variables
K @BHLTMP
K BHLICN,BHLGN,BHLGNM,BHLPED,BHLPEXD,BHLNOI,BHLIDOB,BHLSTR,BHLCTY
K BHLST,BHLZP,BHLISX,BHLIID,BHLIT,BHLMCD,BHLMCDE,BHLMCM,BHLMCME
K BHLMCR,BHLMCRE,BHLMA,BHLPH,BHLICNI
Q
;
BHLIN1I ; cmi/flag/maw - BHL File Inbound IN1 Segment ;
+1 ;;3.01;BHL IHS Interfaces with GIS;**1**;JUN 01, 2002
+2 ;
+3 ;this routine will file the inbound IN1 segment
+4 ;
MAIN ;-- this is the main routine driver
+1 DO FILE
DO EOJ
+2 QUIT
+3 ;
FILE ;-- get the data and file it
+1 SET BHLDA=0
FOR
SET BHLDA=$ORDER(@BHLTMP@(BHLDA))
IF BHLDA=""
QUIT
Begin DoDot:1
+2 SET BHLICM=$GET(@BHLTMP@(BHLDA,2))
+3 SET BHLICN=$GET(@BHLTMP@(BHLDA,4))
+4 ;S BHLICNI=$O(^AUTNINS("MI",BHLICM,0)) only if site has insurer map
+5 SET BHLGN=$GET(@BHLTMP@(BHLDA,8))
+6 SET BHLGNM=$GET(@BHLTMP@(BHLDA,9))
+7 SET BHLPED=$GET(@BHLTMP@(BHLDA,12))
+8 SET BHLPEDE=$$FMTE^XLFDT(BHLPED)
+9 SET BHLPEXD=$GET(@BHLTMP@(BHLDA,13))
+10 SET BHLPEXDE=$$FMTE^XLFDT(BHLPEXD)
+11 SET BHLNOI=$GET(@BHLTMP@(BHLDA,16))
+12 SET BHLIDOB=$GET(@BHLTMP@(BHLDA,18))
+13 SET BHLSTR=$PIECE($GET(@BHLTMP@(BHLDA,19)),CS)
+14 SET BHLCTY=$PIECE($GET(@BHLTMP@(BHLDA,19)),CS,3)
+15 SET BHLST=$PIECE($GET(@BHLTMP@(BHLDA,19)),CS,4)
+16 SET BHLZP=$PIECE($GET(@BHLTMP@(BHLDA,19)),CS,5)
+17 SET BHLISX=$GET(@BHLTMP@(BHLDA,43))
+18 SET BHLCT=$GET(@BHLTMP@(BHLDA,47))
+19 ;S BHLIID=$G(@BHLTMP@(BHLDA,36))
+20 SET BHLIID=$GET(@BHLTMP@(BHLDA,49))
+21 SET BHLIT="PI"
+22 IF BHLICN="MEDICAID"
SET BHLIT="MCD"
+23 IF BHLICN="MEDICARE"
SET BHLIT="MCR"
+24 DO @BHLIT
+25 DO FILE^BHLIN2I
+26 DO FK^BHLU
End DoDot:1
+27 QUIT
+28 ;
MCD ;-- file medicaid data
+1 SET (BHLMCDE,BHLMCME)=""
+2 IF BHLIID=""
SET BHLERCD="NOMCDN"
XECUTE BHLERR
QUIT
+3 IF BHLPED=""
SET BHLERCD="NOMCDED"
XECUTE BHLERR
QUIT
+4 SET BHLMCD=0
FOR
SET BHLMCD=$ORDER(^AUPNMCD("B",BHLPAT,BHLMCD))
IF BHLMCD=""
QUIT
Begin DoDot:1
+5 IF $PIECE(^AUPNMCD(BHLMCD,0),U,3)=BHLIID
SET BHLMCDE=BHLMCD
QUIT
End DoDot:1
+6 IF BHLMCDE=""
Begin DoDot:1
+7 SET DIC="^AUPNMCD("
SET DIC(0)="L"
SET DLAYGO=9000004
SET X=BHLPAT
+8 SET DIC("DR")=".02///"_BHLICN_";.03///"_BHLIID_";.04///"_BHLGN
+9 SET DIC("DR")=DIC("DR")_";.05///"_BHLNOI
+10 KILL DD,DO
+11 DO FILE^DICN
+12 IF Y<0
SET BHLERCD="NOMCD"
XECUTE BHLERR
QUIT
+13 SET BHLMCDE=+Y
+14 SET DIC="^AUPNMCD("_BHLMCDE_",11,"
SET DIC("P")=$PIECE(^DD(9000004,1101,0),U,2)
+15 SET DIC(0)="L"
SET DA(1)=BHLMCDE
SET X=BHLPED
SET DIC("DR")=".02///"_BHLPEXD
+16 SET DIC("DR")=DIC("DR")_";.03///"_BHLCT
+17 DO ^DIC
+18 IF Y<0
SET BHLERCD="NOMCDM"
XECUTE BHLERR
QUIT
End DoDot:1
QUIT
+19 SET BHLMCM=0
FOR
SET BHLMCM=$ORDER(^AUPNMCD(BHLMCDE,11,BHLMCM))
IF BHLMCM=""
QUIT
Begin DoDot:1
+20 SET BHLDATA=$GET(^AUPNMCD(BHLMCDE,11,BHLMCM,0))
+21 IF BHLMCM=BHLPED
IF $PIECE(BHLDATA,U,3)=BHLCT
SET BHLMCME=BHLMCM
QUIT
End DoDot:1
+22 IF '$DATA(^AUPNMCD(BHLMCDE,0))
QUIT
+23 IF BHLMCME=""
Begin DoDot:1
+24 SET DIC="^AUPNMCD("_BHLMCDE_",11,"
SET DIC("P")=$PIECE(^DD(9000004,1101,0),U,2)
+25 SET DIC(0)="L"
SET DA(1)=BHLMCDE
SET X=BHLPED
SET DIC("DR")=".02///"_BHLPEXD
+26 SET DIC("DR")=DIC("DR")_";.03///"_BHLCT
+27 DO ^DIC
+28 IF Y<0
SET BHLERCD="NOMCDM"
XECUTE BHLERR
QUIT
End DoDot:1
QUIT
+29 SET DIE="^AUPNMCD("_BHLMCDE_",11,"
SET DA(1)=BHLMCDE
SET DA=BHLMCME
+30 SET DR=".02///"_BHLPEXD_";.03///"_BHLCT
+31 DO ^DIE
+32 IF $DATA(Y)
SET BHLERCD="NOUPMCDM"
XECUTE BHLERR
QUIT
+33 QUIT
+34 ;
MCR ;-- file medicare data
+1 SET BHLMCRE=""
+2 IF BHLIID=""
SET BHLERCD="NOMCRN"
XECUTE BHLERR
QUIT
+3 IF BHLPED=""
SET BHLERCD="NOMCRED"
XECUTE BHLERR
QUIT
+4 IF '$DATA(^AUPNMCR(BHLPAT,0))
Begin DoDot:1
+5 SET DIC="^AUPNMCR("
SET DLAYGO=9000003
SET X=BHLPAT
SET DINUM=X
SET DIC(0)="L"
+6 SET DIC("DR")=".02///"_BHLICN_";.03///"_BHLIID_";.04///"_BHLGN
+7 KILL DD,DO
+8 DO FILE^DICN
+9 KILL DINUM
+10 IF Y<0
SET BHLERCD="NOMCR"
XECUTE BHLERR
QUIT
+11 SET DIC="^AUPNMCR("_BHLPAT_",11,"
SET DIC("P")=$PIECE(^DD(9000003,1101,0),U,2)
+12 SET DIC(0)="L"
SET DA(1)=BHLPAT
SET X=BHLPED
+13 SET DIC("DR")=".02///"_BHLPEXD_";.03///"_BHLCT
+14 DO ^DIC
+15 IF Y<0
SET BHLERCD="NOMCRM"
XECUTE BHLERR
QUIT
End DoDot:1
QUIT
+16 SET DIE="^AUPNMCR("
SET DA=BHLPAT
SET DR=".03///"_BHLIID_";.04///"_BHLGN
+17 SET DR=DR_";2101///"_BHLNOI
+18 DO ^DIE
+19 IF $DATA(Y)
SET BHLERCD="NOUPMCR"
XECUTE BHLERR
QUIT
+20 SET BHLMCR=0
FOR
SET BHLMCR=$ORDER(^AUPNMCR(BHLPAT,11,BHLMCR))
IF BHLMCR=""
QUIT
Begin DoDot:1
+21 SET BHLDATA=$GET(^AUPNMCR(BHLPAT,11,BHLMCR,0))
+22 IF $PIECE(BHLDATA,U)=BHLPED
IF $PIECE(BHLDATA,U,3)=BHLCT
SET BHLMCRE=BHLMCR
QUIT
End DoDot:1
+23 IF '$DATA(^AUPNMCR(BHLPAT,0))
QUIT
+24 IF BHLMCRE=""
Begin DoDot:1
+25 SET DIC="^AUPNMCR("_BHLPAT_",11,"
SET DIC("P")=$PIECE(^DD(9000003,1101,0),U,2)
+26 SET DIC(0)="L"
SET DA(1)=BHLPAT
SET X=BHLPED
+27 SET DIC("DR")=".02///"_BHLPEXD_";.03///"_BHLCT
+28 DO ^DIC
+29 IF Y<0
SET BHLERCD="NOMCRM"
XECUTE BHLERR
QUIT
End DoDot:1
QUIT
+30 SET DIE="^AUPNMCR("_DFN_",11,"
SET DA(1)=BHLPAT
SET DA=BHLMCRE
+31 SET DR=".02///"_BHLPEXD
+32 DO ^DIE
+33 IF $DATA(Y)
SET BHLERCD="NOUPMCRM"
XECUTE BHLERR
QUIT
+34 QUIT
+35 ;
PI ;-- file private insurance data
+1 SET BHLPH=""
+2 ;S BHLICN=$O(^AUTNINS("MI",BHLICM,0)) only if site has insurer map
+3 IF BHLICN=""
SET BHLERCD="NOICN"
XECUTE BHLERR
QUIT
+4 IF BHLIID=""
QUIT
+5 SET BHLMA=0
FOR
SET BHLMA=$ORDER(^AUPN3PPH("D",BHLIID,BHLMA))
IF BHLMA=""
QUIT
Begin DoDot:1
+6 IF $PIECE(^AUPN3PPH(BHLMA,0),U,3)=BHLICNI
SET BHLPH=BHLMA
QUIT
End DoDot:1
+7 IF BHLPH=""
Begin DoDot:1
+8 IF BHLNOI=""
QUIT
+9 SET DIC="^AUPN3PPH("
SET X=BHLNOI
SET DLAYGO=9000003.1
SET DIC(0)="L"
+10 SET DIC("DR")=".03////"_BHLICN_";.04///"_BHLIID
+11 SET DIC("DR")=DIC("DR")_";.08///"_BHLISX_";.09///"_BHLSTR
+12 SET DIC("DR")=DIC("DR")_";.11///"_BHLCTY_";.12///"_BHLST
+13 SET DIC("DR")=DIC("DR")_";.13///"_BHLZP_";.17///"_BHLPED
+14 SET DIC("DR")=DIC("DR")_";.18///"_BHLPEXD
+15 KILL DD,D0,DO
+16 DO FILE^DICN
+17 IF Y<0
SET BHLERCD="NO3PPH"
XECUTE BHLERR
QUIT
+18 SET BHLPH=+Y
End DoDot:1
IF $DATA(BHLERCD)
QUIT
+19 IF BHLNOI=""
QUIT
+20 IF $DATA(^AUPNPRVT(BHLPAT,0))
DO UPI^BHLIN1IA
QUIT
+21 SET DIC="^AUPNPRVT("
SET DLAYGO=9000006
SET DIC(0)="L"
SET X=BHLPAT
SET DINUM=X
+22 KILL DD,DO
+23 DO FILE^DICN
+24 KILL DINUM
+25 IF Y<0
SET BHLERCD="NOPIE"
XECUTE BHLERR
QUIT
+26 SET DIC="^AUPNPRVT("_BHLPAT_",11,"
+27 SET DIC("P")=$PIECE(^DD(9000006,1101,0),U,2)
SET DIC(0)="L"
SET DA(1)=BHLPAT
+28 SET X="`"_BHLICN
SET DIC("DR")=".02///"_BHLIID_";.04///"_BHLNOI
+29 SET DIC("DR")=DIC("DR")_";.06///"_BHLPED_";.07///"_BHLPEXD
+30 SET DIC("DR")=DIC("DR")_";.08///"_BHLPH
+31 DO ^DIC
+32 IF Y<0
SET BHLERCD="NOPIEM"
XECUTE BHLERR
QUIT
+33 QUIT
+34 ;
EOJ ;-- kill variables
+1 KILL @BHLTMP
+2 KILL BHLICN,BHLGN,BHLGNM,BHLPED,BHLPEXD,BHLNOI,BHLIDOB,BHLSTR,BHLCTY
+3 KILL BHLST,BHLZP,BHLISX,BHLIID,BHLIT,BHLMCD,BHLMCDE,BHLMCM,BHLMCME
+4 KILL BHLMCR,BHLMCRE,BHLMA,BHLPH,BHLICNI
+5 QUIT
+6 ;