- BHLP03I ; cmi/anchorage/maw - BHL File Inbound PO3 Segment ;
- ;;3.01;BHL IHS Interfaces with GIS;**1,15**;JUN 01, 2002
- ;
- ;this routine will file the P03 event especially for the GIS/Pyxis
- ;interface
- ;
- MAIN ;EP;-- this is the main routine driver
- D M1
- EOJ ;-- clean up the variables
- K BHLDA,BHLTDT,BHLTPDT,BHLTYP,BHLTCD,BHLDES,BHLQTY,BHLPBY
- K DD,DO,DIC,Y,BHLPT,BHLAMT
- Q
- M1 D PTLK
- Q:'$G(BHLPT)
- D PROCESS
- Q
- PTLK ;-- lookup the patient
- S BHLR="PID"
- S BHLLOC=$E($G(@BHLTMP@(1,3)),1,6)
- S BHLPTCHT=+$G(@BHLTMP@(1,2))
- N X,Y
- S X=$G(@BHLTMP@(1,5))
- S X=$P(X,U)_","_$P(X,U,2)_$S($P(X,U,3)]"":" "_$P(X,U,3),1:"")
- X ^%ZOSF("UPPERCASE")
- S BHLPTNAM=$P(Y,",")_","_$E($P(Y,",",2))
- S BHLPTN2=Y
- S BHLPT=""
- I BHLPTCHT D
- .S BHLPTDA=0
- .F S BHLPTDA=$O(^AUPNPAT("D",BHLPTCHT,BHLPTDA)) Q:'BHLPTDA!$D(BHLQUIT) D
- ..I $G(^DPT(+BHLPTDA,0))[BHLPTNAM S BHLQUIT="",BHLPT=BHLPTDA Q
- .K BHLQUIT
- Q:$G(BHLPT)
- S BHLPT=$O(^DPT("B",BHLPTN2,0))
- I $O(^DPT("B",BHLPTN2,BHLPT)) S BHLPT=""
- Q
- ;
- PROCESS ;-- get the variables and file the data
- N BHLDA,BHLTDT,BHLTPDT,BHLTYP,BHLDES,BHLQTY,BHLTAMT,BHLAMT,BHLTCD,BHLHCPC,BHLFSN,BHLHCPCX,BHLNDC
- S BHLR="FT1"
- S BHLTDT=$G(@BHLTMP@(1,4))
- S BHLTPDT=$G(@BHLTMP@(1,5))
- S BHLTYP=$G(@BHLTMP@(1,6))
- S BHLDES=$G(@BHLTMP@(1,8))
- S BHLQTY=+$G(@BHLTMP@(1,10))
- S BHLTAMT=+$G(@BHLTMP@(1,11))/100
- S BHLAMT=+$G(@BHLTMP@(1,12))/100
- S BHLTCD=$P($G(@BHLTMP@(1,7)),U)
- S BHLHCPC=""
- S BHLDES=$P($G(@BHLTMP@(1,7)),U,2)
- S BHLNDC=$TR(BHLTCD,"-","")
- S:BHLNDC]"" BHLNDC=$O(^PSDRUG("NDC",BHLNDC,0))
- S:BHLNDC BHLAMT=$P($G(^PSDRUG(+BHLNDC,660)),U,6)
- S BHLFSN=$S(BHLTCD]"":$O(^PSDRUG("FSN",BHLTCD,0)),1:"")
- S:BHLFSN BHLAMT=$P($G(^PSDRUG(+BHLFSN,660)),U,6)
- D HCPC
- K DD,DO,DR,DIC
- S BHLDES=$S(BHLDES]"":BHLDES,1:"NO DESCRIPTION")
- Q:BHLDES=""!'BHLPT
- D NOW^%DTC
- S DIC="^AUPNSUP("
- S DIC(0)="L"
- S X=$S(BHLDES]"":BHLDES,1:"NO DESCRIPTION")
- S DIC("DR")=".02////"_$G(BHLPT)_";.03////"_$G(BHLTDT)_";.05////"_%_";1.01////"_$G(BHLTCD)_";1.03////"_$S($G(BHLNDC):BHLNDC,$G(BHLFSN):BHLFSN,1:"")_";.08////0"
- S DIC("DR")=DIC("DR")_";2.01////"_$G(BHLDES)_";2.02////"_$G(BHLTPDT)
- S DIC("DR")=DIC("DR")_";2.03////"_$G(BHLQTY)_";2.04////"_$G(BHLAMT)
- S DIC("DR")=DIC("DR")_";2.05////"_$G(BHLHCPCX)_";2.06////270"
- S DIC("DR")=DIC("DR")_";2.09////"_$G(BHLHCPC)
- D FILE^DICN
- K DIC
- Q
- ;
- HCPC ;PROCESS HCPC INFO
- I $G(BHLHCPC)]"",$D(^ICPT("B",BHLHCPC)) D Q:BHLHCPCX
- .S BHLHCPCX=$O(^ICPT("B",BHLHCPC,0))
- Q:'$G(BHLTCD)
- N X
- S X=$O(^BCMTCA("B",BHLTCD,0))
- S X=$P($G(^BCMTCA(+X,11)),U,2)
- Q:'X
- ;S BHLHCPC=$P($$G(ICPT(X,0)),U) ;cmi/anch/maw 8/27/2007 orig line
- S BHLHCPC=$P($$CPT^ICPTCOD(X),U,2) ;cmi/anch/maw 8/27/2007 code set versioning patch 15
- S BHLHCPCX=X
- Q
- BHLP03I ; cmi/anchorage/maw - BHL File Inbound PO3 Segment ;
- +1 ;;3.01;BHL IHS Interfaces with GIS;**1,15**;JUN 01, 2002
- +2 ;
- +3 ;this routine will file the P03 event especially for the GIS/Pyxis
- +4 ;interface
- +5 ;
- MAIN ;EP;-- this is the main routine driver
- +1 DO M1
- EOJ ;-- clean up the variables
- +1 KILL BHLDA,BHLTDT,BHLTPDT,BHLTYP,BHLTCD,BHLDES,BHLQTY,BHLPBY
- +2 KILL DD,DO,DIC,Y,BHLPT,BHLAMT
- +3 QUIT
- M1 DO PTLK
- +1 IF '$GET(BHLPT)
- QUIT
- +2 DO PROCESS
- +3 QUIT
- PTLK ;-- lookup the patient
- +1 SET BHLR="PID"
- +2 SET BHLLOC=$EXTRACT($GET(@BHLTMP@(1,3)),1,6)
- +3 SET BHLPTCHT=+$GET(@BHLTMP@(1,2))
- +4 NEW X,Y
- +5 SET X=$GET(@BHLTMP@(1,5))
- +6 SET X=$PIECE(X,U)_","_$PIECE(X,U,2)_$SELECT($PIECE(X,U,3)]"":" "_$PIECE(X,U,3),1:"")
- +7 XECUTE ^%ZOSF("UPPERCASE")
- +8 SET BHLPTNAM=$PIECE(Y,",")_","_$EXTRACT($PIECE(Y,",",2))
- +9 SET BHLPTN2=Y
- +10 SET BHLPT=""
- +11 IF BHLPTCHT
- Begin DoDot:1
- +12 SET BHLPTDA=0
- +13 FOR
- SET BHLPTDA=$ORDER(^AUPNPAT("D",BHLPTCHT,BHLPTDA))
- IF 'BHLPTDA!$DATA(BHLQUIT)
- QUIT
- Begin DoDot:2
- +14 IF $GET(^DPT(+BHLPTDA,0))[BHLPTNAM
- SET BHLQUIT=""
- SET BHLPT=BHLPTDA
- QUIT
- End DoDot:2
- +15 KILL BHLQUIT
- End DoDot:1
- +16 IF $GET(BHLPT)
- QUIT
- +17 SET BHLPT=$ORDER(^DPT("B",BHLPTN2,0))
- +18 IF $ORDER(^DPT("B",BHLPTN2,BHLPT))
- SET BHLPT=""
- +19 QUIT
- +20 ;
- PROCESS ;-- get the variables and file the data
- +1 NEW BHLDA,BHLTDT,BHLTPDT,BHLTYP,BHLDES,BHLQTY,BHLTAMT,BHLAMT,BHLTCD,BHLHCPC,BHLFSN,BHLHCPCX,BHLNDC
- +2 SET BHLR="FT1"
- +3 SET BHLTDT=$GET(@BHLTMP@(1,4))
- +4 SET BHLTPDT=$GET(@BHLTMP@(1,5))
- +5 SET BHLTYP=$GET(@BHLTMP@(1,6))
- +6 SET BHLDES=$GET(@BHLTMP@(1,8))
- +7 SET BHLQTY=+$GET(@BHLTMP@(1,10))
- +8 SET BHLTAMT=+$GET(@BHLTMP@(1,11))/100
- +9 SET BHLAMT=+$GET(@BHLTMP@(1,12))/100
- +10 SET BHLTCD=$PIECE($GET(@BHLTMP@(1,7)),U)
- +11 SET BHLHCPC=""
- +12 SET BHLDES=$PIECE($GET(@BHLTMP@(1,7)),U,2)
- +13 SET BHLNDC=$TRANSLATE(BHLTCD,"-","")
- +14 IF BHLNDC]""
- SET BHLNDC=$ORDER(^PSDRUG("NDC",BHLNDC,0))
- +15 IF BHLNDC
- SET BHLAMT=$PIECE($GET(^PSDRUG(+BHLNDC,660)),U,6)
- +16 SET BHLFSN=$SELECT(BHLTCD]"":$ORDER(^PSDRUG("FSN",BHLTCD,0)),1:"")
- +17 IF BHLFSN
- SET BHLAMT=$PIECE($GET(^PSDRUG(+BHLFSN,660)),U,6)
- +18 DO HCPC
- +19 KILL DD,DO,DR,DIC
- +20 SET BHLDES=$SELECT(BHLDES]"":BHLDES,1:"NO DESCRIPTION")
- +21 IF BHLDES=""!'BHLPT
- QUIT
- +22 DO NOW^%DTC
- +23 SET DIC="^AUPNSUP("
- +24 SET DIC(0)="L"
- +25 SET X=$SELECT(BHLDES]"":BHLDES,1:"NO DESCRIPTION")
- +26 SET DIC("DR")=".02////"_$GET(BHLPT)_";.03////"_$GET(BHLTDT)_";.05////"_%_";1.01////"_$GET(BHLTCD)_";1.03////"_$SELECT($GET(BHLNDC):BHLNDC,$GET(BHLFSN):BHLFSN,1:"")_";.08////0"
- +27 SET DIC("DR")=DIC("DR")_";2.01////"_$GET(BHLDES)_";2.02////"_$GET(BHLTPDT)
- +28 SET DIC("DR")=DIC("DR")_";2.03////"_$GET(BHLQTY)_";2.04////"_$GET(BHLAMT)
- +29 SET DIC("DR")=DIC("DR")_";2.05////"_$GET(BHLHCPCX)_";2.06////270"
- +30 SET DIC("DR")=DIC("DR")_";2.09////"_$GET(BHLHCPC)
- +31 DO FILE^DICN
- +32 KILL DIC
- +33 QUIT
- +34 ;
- HCPC ;PROCESS HCPC INFO
- +1 IF $GET(BHLHCPC)]""
- IF $DATA(^ICPT("B",BHLHCPC))
- Begin DoDot:1
- +2 SET BHLHCPCX=$ORDER(^ICPT("B",BHLHCPC,0))
- End DoDot:1
- IF BHLHCPCX
- QUIT
- +3 IF '$GET(BHLTCD)
- QUIT
- +4 NEW X
- +5 SET X=$ORDER(^BCMTCA("B",BHLTCD,0))
- +6 SET X=$PIECE($GET(^BCMTCA(+X,11)),U,2)
- +7 IF 'X
- QUIT
- +8 ;S BHLHCPC=$P($$G(ICPT(X,0)),U) ;cmi/anch/maw 8/27/2007 orig line
- +9 ;cmi/anch/maw 8/27/2007 code set versioning patch 15
- SET BHLHCPC=$PIECE($$CPT^ICPTCOD(X),U,2)
- +10 SET BHLHCPCX=X
- +11 QUIT