IBCNRZCM ;DAOU/DMK - Receive HL7 e-Pharmacy ZCM Segment ;23-OCT-2003
;;2.0;INTEGRATED BILLING;**251,550**;21-MAR-94;Build 25
;;Per VA Directive 6402, this routine should not be modified.
;
; Description
;
; Receive HL7 e-Pharmacy ZCM Segment
; (Various Files) CONTACT MEANS Subfiles Update
; (Various Files) CONTACT MEANS Subfiles listed below (INIT section)
;
; Entry point
;
1000 ; Control ZCM Segment processing
;
; Error?
; V200 = NCPDP Processor Name Undefined
; V300 = Pharmacy Benefits Manager (PBM) Name Undefined
; V400 = Plan ID Undefined
; V500 = Plan ID Undefined
I '$D(DATA),IEN=-1 D Q
. S ERROR=$S(FILENO=366.01:"V200",FILENO=366.02:"V300",FILENO=366.03:"V400")
. I FILE["Pharmacy" S ERROR="V500"
;
D INIT
Q
;
INIT ; Initialize ZCM Segment variables
; 366.012 NCPDP PROCESSOR CONTACT MEANS Subfile
; 366.022 PHARMACY BENEFITS MANAGER (PBM) CONTACT MEANS Subfile
; 366.032 PLAN CONTACT MEANS Subfile
; 366.0312 PLAN RX CONTACT MEANS Subfile
;
; Update only CONTACT MEANS Subfile?
I '$D(DATA) K DATAAP
;
N S
;
S FIELDNO=$S(FILE["Pharmacy"&(FILENO=366.03):12,1:2)
;
; .01 = PKEY
S DATACM(.01)=$G(IBSEG(3))
I DATACM(.01)[$E(HLECH,3) S DATACM(.01)=$$TRAN1^IBCNRHLU(DATACM(.01))
I IEN'=-1 S CMIEN=$$LOOKUP2^IBCNRFM1(FILENO,IEN,FIELDNO,DATACM(.01))
I IEN=-1 S CMIEN=-1
;
; .02 = TYPE
S DATACM(.02)=$G(IBSEG(4))
;
S S=$G(IBSEG(5))
;
; .03 = TELECOMMUNICATION USE
S DATACM(.03)=$P(S,$E(HLECH,1),2)
;
; .04 = TELECOMMUNICATION EQUIPMENT
S DATACM(.04)=$P(S,$E(HLECH,1),3)
;
; .05 = EMAIL ADDRESS
S DATACM(.05)=$P(S,$E(HLECH,1),4)
;
; .06 = TELEPHONE NUMBER
S DATACM(.06)="("_$E($P(S,$E(HLECH,1),6),1,3)_") "_$E($P(S,$E(HLECH,1),6),4,6)_"-"_$P(S,$E(HLECH,1),7)_$S($P(S,$E(HLECH,1),8)]"":" x"_$P(S,$E(HLECH,1),8),1:"")
I DATACM(.06)="() -" S DATACM(.06)=""
;
; .07 = COMMENT
S DATACM(.07)=$P(S,$E(HLECH,1),9)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBCNRZCM 1945 printed Oct 16, 2024@18:17:16 Page 2
IBCNRZCM ;DAOU/DMK - Receive HL7 e-Pharmacy ZCM Segment ;23-OCT-2003
+1 ;;2.0;INTEGRATED BILLING;**251,550**;21-MAR-94;Build 25
+2 ;;Per VA Directive 6402, this routine should not be modified.
+3 ;
+4 ; Description
+5 ;
+6 ; Receive HL7 e-Pharmacy ZCM Segment
+7 ; (Various Files) CONTACT MEANS Subfiles Update
+8 ; (Various Files) CONTACT MEANS Subfiles listed below (INIT section)
+9 ;
+10 ; Entry point
+11 ;
1000 ; Control ZCM Segment processing
+1 ;
+2 ; Error?
+3 ; V200 = NCPDP Processor Name Undefined
+4 ; V300 = Pharmacy Benefits Manager (PBM) Name Undefined
+5 ; V400 = Plan ID Undefined
+6 ; V500 = Plan ID Undefined
+7 IF '$DATA(DATA)
IF IEN=-1
Begin DoDot:1
+8 SET ERROR=$SELECT(FILENO=366.01:"V200",FILENO=366.02:"V300",FILENO=366.03:"V400")
+9 IF FILE["Pharmacy"
SET ERROR="V500"
End DoDot:1
QUIT
+10 ;
+11 DO INIT
+12 QUIT
+13 ;
INIT ; Initialize ZCM Segment variables
+1 ; 366.012 NCPDP PROCESSOR CONTACT MEANS Subfile
+2 ; 366.022 PHARMACY BENEFITS MANAGER (PBM) CONTACT MEANS Subfile
+3 ; 366.032 PLAN CONTACT MEANS Subfile
+4 ; 366.0312 PLAN RX CONTACT MEANS Subfile
+5 ;
+6 ; Update only CONTACT MEANS Subfile?
+7 IF '$DATA(DATA)
KILL DATAAP
+8 ;
+9 NEW S
+10 ;
+11 SET FIELDNO=$SELECT(FILE["Pharmacy"&(FILENO=366.03):12,1:2)
+12 ;
+13 ; .01 = PKEY
+14 SET DATACM(.01)=$GET(IBSEG(3))
+15 IF DATACM(.01)[$EXTRACT(HLECH,3)
SET DATACM(.01)=$$TRAN1^IBCNRHLU(DATACM(.01))
+16 IF IEN'=-1
SET CMIEN=$$LOOKUP2^IBCNRFM1(FILENO,IEN,FIELDNO,DATACM(.01))
+17 IF IEN=-1
SET CMIEN=-1
+18 ;
+19 ; .02 = TYPE
+20 SET DATACM(.02)=$GET(IBSEG(4))
+21 ;
+22 SET S=$GET(IBSEG(5))
+23 ;
+24 ; .03 = TELECOMMUNICATION USE
+25 SET DATACM(.03)=$PIECE(S,$EXTRACT(HLECH,1),2)
+26 ;
+27 ; .04 = TELECOMMUNICATION EQUIPMENT
+28 SET DATACM(.04)=$PIECE(S,$EXTRACT(HLECH,1),3)
+29 ;
+30 ; .05 = EMAIL ADDRESS
+31 SET DATACM(.05)=$PIECE(S,$EXTRACT(HLECH,1),4)
+32 ;
+33 ; .06 = TELEPHONE NUMBER
+34 SET DATACM(.06)="("_$EXTRACT($PIECE(S,$EXTRACT(HLECH,1),6),1,3)_") "_$EXTRACT($PIECE(S,$EXTRACT(HLECH,1),6),4,6)_"-"_$PIECE(S,$EXTRACT(HLECH,1),7)_$SELECT($PIECE(S,$EXTRACT(HLECH,1),8)]"":" x"_$PIECE(S,$EXTRACT(HLECH,1),8),1:"")
+35 IF DATACM(.06)="() -"
SET DATACM(.06)=""
+36 ;
+37 ; .07 = COMMENT
+38 SET DATACM(.07)=$PIECE(S,$EXTRACT(HLECH,1),9)
+39 QUIT