PRCVVMF ;WOIFO/DAP-DYNAMED VENDOR UPDATE HL7 MESSAGING ROUTINE; 03/02/05
 ;;5.1;IFCAP;**81**;Oct 20,2000
 ;Per VHA Directive 10-93-142, this routine should not be modified.
 ;
 Q
 ;
EN(PRCVVN) ;Entry point for API Call
 I $$GET^XPAR("SYS","PRCV COTS INVENTORY",1,"Q")'=1 Q
 I $D(PRCVVN)=0 Q
 N HLA
 S PRCVCNT=0,PRCVERG=0
 D HDRBLD
 I PRCVERG=1 K PRCVERG Q
 ;
 D MSGBLD
 ;
 S PRCVDP=""
 D GENERATE^HLMA(PRCVPRO,"LM",1,.PRCVDP)
 I +$P(PRCVDP,"^",2) S PRCVERR(1)="Error generating message through VistA HL7 package for Vendor Update involving vendor # "_PRCVVN D CLIFP
 ;
 K ^TMP("PRCVNDR",$J,PRCVVN)
 ;
 D FIN
 K PRCVERG
 ;
 Q
 ;
HDRBLD ;Generate message header, MFI Segment
 ;
 K HL S PRCVPRO="PRCV_IFCAP_04_EV_VEND_UPD"
 D INIT^HLFNC2(PRCVPRO,.HL)
 I $G(HL) S PRCVERR(1)="Error generating message through VistA HL7 package for Vendor Update involving vendor # "_PRCVVN D CLIFP D FIN Q
 ;
 S PRCVCS=$E(HL("ECH")),PRCVRS=$E(HL("ECH"),2),PRCVSS=$E(HL("ECH"),4),PRCVFS=HL("FS")
 ;
 ;PRCVDT Transaction Date/Time w/offset
 D NOW^%DTC
 S PRCVDT=$$FMTHL7^XLFDT(%)
 ;
 ;Build MFI Segment
 S PRCVCNT=PRCVCNT+1
 S HLA("HLS",PRCVCNT)="MFI"_PRCVFS_"OME"_PRCVFS_"440"_PRCVCS_"VENDOR"_PRCVFS_"UPD"_PRCVFS_PRCVDT_PRCVFS_PRCVFS_"AL"
 ;
 Q
 ;
MSGBLD ;Build Message Body
 ;
 ;PRCVNM Vendor Name
 S PRCVNM=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",1)
 ;Address Fields - HL7 String Conversions
 S PRCV1="C",PRCV2=HL("FS")_HL("ECH")
 ;PRCVAD1 Address 1
 S PRCVAD1=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",2)
 I PRCVAD1'="" D
 . S PRCVAD1=$$CONV^PRCVUTSC(PRCVAD1,PRCV1,PRCV2)
 . Q
 ;PRCVAD2 Address 2
 S PRCVAD2=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",3)
 I PRCVAD2'="" D
 . S PRCVAD2=$$CONV^PRCVUTSC(PRCVAD2,PRCV1,PRCV2)
 . Q
 ;PRCVAD3 Address 3
 S PRCVAD3=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",4)
 I PRCVAD3'="" D
 . S PRCVAD3=$$CONV^PRCVUTSC(PRCVAD3,PRCV1,PRCV2)
 . Q
 ;PRCVAD4 Address 4
 S PRCVAD4=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",5)
 I PRCVAD4'="" D
 . S PRCVAD4=$$CONV^PRCVUTSC(PRCVAD4,PRCV1,PRCV2)
 . Q
 ;PRCVCT City
 S PRCVCT=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",6)
 ;PRCVST State
 S PRCVST=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",7)
 ;PRCVZP Zip Code
 S PRCVZP=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",8)
 ;PRCVCPS Contact Person
 S PRCVCPS=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",9)
 ;PRCVCPH Contact Phone #
 S PRCVCPH=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",10)
 ;PRCVSTAT Station #
 S PRCVSTAT=$P(^TMP("PRCVNDR",$J,PRCVVN,0),"^",11)
 ;PRCVEDI Vendor EDI #
 S PRCVEDI=$P(^TMP("PRCVNDR",$J,PRCVVN,1),"^",2)
 ;PRCVFMS Vendor FMS #
 S PRCVFMS=$P(^TMP("PRCVNDR",$J,PRCVVN,1),"^",3)
 ;PRCVALT Alternate Address Indicator
 S PRCVALT=$P(^TMP("PRCVNDR",$J,PRCVVN,1),"^",4)
 ;PRCVINA Inactivation Date
 S PRCVINA=$P(^TMP("PRCVNDR",$J,PRCVVN,2),"^",1)
 I PRCVINA'="" S PRCVINA=$$FMTHL7^XLFDT(PRCVINA)
 ;PRCVCFX Contact FAX #
 S PRCVCFX=$P(^TMP("PRCVNDR",$J,PRCVVN,2),"^",3)
 ;PRCVDNB Dun and Bradstreet #
 S PRCVDNB=$P(^TMP("PRCVNDR",$J,PRCVVN,2),"^",4)
 ;PRCVACN Account Number
 S PRCVACN=$P(^TMP("PRCVNDR",$J,PRCVVN,2),"^",5)
 ;
 ;Handling Repeating Contract Number Array and Building HL7 Field ZVD.6
 S N=0,B=0,PRCVCNA="" F  S N=$O(^TMP("PRCVNDR",$J,PRCVVN,3,N)) Q:+N=0  D
 . S PRCVED=$P(^TMP("PRCVNDR",$J,PRCVVN,3,N),"^",2)
 . S V=$$FMADD^XLFDT(PRCVED,366) I (%<V)!(PRCVED="") D
 .. S B=B+1,PRCVCN=$P(^TMP("PRCVNDR",$J,PRCVVN,3,N),"^",1)
 .. S PRCVBD=$P(^TMP("PRCVNDR",$J,PRCVVN,3,N),"^",3)
 .. I PRCVBD'="" S PRCVBD=$$FMTHL7^XLFDT(PRCVBD)
 .. I PRCVED'="" S PRCVED=$$FMTHL7^XLFDT(PRCVED)
 .. S PRCVCNA(B)=PRCVRS_PRCVCN_PRCVCS_PRCVCS_PRCVCS_PRCVCS_PRCVCS_PRCVCS_PRCVBD_PRCVCS_PRCVED
 .. Q
 . Q
 ;
 I $D(PRCVCNA(1)) S PRCVCNA(1)=$P(PRCVCNA(1),PRCVRS,2)
 ;
 ;Build MFE Segment
 S PRCVCNT=PRCVCNT+1
 S HLA("HLS",PRCVCNT)="MFE"_PRCVFS_"MUP"_PRCVFS_PRCVVN_PRCVFS_PRCVFS_PRCVVN_PRCVCS_PRCVNM_PRCVCS_PRCVSTAT_PRCVFS_"CE"
 ;
 ;Build ZVD Segment
 S PRCVCNT=PRCVCNT+1,R=0
 S HLA("HLS",PRCVCNT)="ZVD"_PRCVFS_PRCVNM_PRCVCS_PRCVCS_PRCVVN_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"IFCAP"_PRCVCS_PRCVSTAT_PRCVRS_PRCVNM_PRCVCS_PRCVCS_PRCVEDI_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"EDI"_PRCVCS_PRCVSTAT_PRCVRS
 S HLA("HLS",PRCVCNT)=HLA("HLS",PRCVCNT)_PRCVNM_PRCVCS_PRCVCS_PRCVFMS_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"FMS"_PRCVCS_PRCVSTAT_PRCVRS_PRCVNM_PRCVCS_PRCVCS_PRCVDNB_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"Dun and Bradstreet"_PRCVCS_PRCVSTAT
 S HLA("HLS",PRCVCNT,1)=PRCVFS_PRCVAD1_PRCVSS_PRCVAD2_PRCVSS_PRCVAD3_PRCVSS_PRCVAD4_PRCVCS_PRCVCS_PRCVCT_PRCVCS_PRCVST_PRCVCS_PRCVZP_PRCVFS_PRCVACN_PRCVFS_PRCVCPS_PRCVFS
 S HLA("HLS",PRCVCNT,2)=PRCVCPH_PRCVCS_PRCVCS_"PH"_PRCVRS_PRCVCFX_PRCVCS_PRCVCS_"FX"_PRCVFS_PRCVCS_PRCVINA_PRCVFS
 ;
 I $D(PRCVCNA) S W=0,R=2 F  S W=$O(PRCVCNA(W)) Q:+W=0  D
 . S R=R+1
 . S HLA("HLS",PRCVCNT,R)=PRCVCNA(W)
 . Q
 ;
 I R<2 S R=2
 S HLA("HLS",PRCVCNT,R+1)=PRCVFS_PRCVALT
 ;
 Q
 ;
MFKPROC ;Process MFK^M01 response message
 ;
 ;Uses HLNEXT twice to bypass the MSH segment and go directly to the MSA segment
 X HLNEXT
 ;
 X HLNEXT
 S VAL=$$FLD^HLCSUTL(HLNODE,2)
 I VAL'="AA" D ERROR
 ;
 D FIN
 ;
 Q
 ;
ERROR ;Process ERR Segments
 S PRCVERC=2,PRCVERR(1)="Unable to update Vendor in DynaMed."
 S PRCVERR(2)="During a Vendor Update to DynaMed the following errors occurred:"
 F M=1:1 X HLNEXT Q:HLQUIT'>0  D
 . S VAL=$$FLD^HLCSUTL(HLNODE,1)
 . I VAL="MFA" S PRCVME=$$FLD^HLCSUTL(HLNODE,3)
 . I VAL="ERR" D
 .. S PRCVERC=PRCVERC+1,PRCVERM=$$FLD^HLCSUTL(HLNODE,6)
 .. S PRCVERR(PRCVERC)=$P(PRCVERM,"^",2)
 .. Q
 . Q
 ;
 D CLIFP
 ;
 Q
 ;
CLIFP ;Call partner app w/ mail message for users on error
 N XMDUZ,XMMG,XMSUB,XMTEXT,XMY,XMZ
 S XMSUB="DynaMed Vendor # "_PRCVME_" Update Errors "_$$HTE^XLFDT($H)
 S XMDUZ="IFCAP/COTS Inventory Interface"
 S XMTEXT="PRCVERR("
 S XMY("G.PRCV Item Vendor Edits")=""
 ;
 D ^XMD
 S PRCVERG=1
 ;
 Q
 ;
FIN ;Clean up variables
 K PRCVVN,PRCVCNT,PRCVDP,PRCVPRO,HL,PRCVCS,PRCVRS,PRCVFS,PRCVDT,%,PRCVNM,PRCVAD1,PRCVAD2,PRCVAD3,PRCVAD4,PRCVME
 K PRCVCT,PRCVST,PRCVZP,PRCVCPS,PRCVCPH,PRCVSTAT,PRCVEDI,PRCVFMS,PRCVALT,PRCVINA,PRCVCFX,PRCVDNB,PRCVACN
 K N,PRCVCNA,PRCVCN,PRCVBD,PRCVED,VAL,PRCVERC,PRCVERM,PRCVERR,PRCV1,PRCV2,STR1,PRCVSS,V,W,R,B,M
 ;
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRCVVMF   6169     printed  Sep 23, 2025@19:56:27                                                                                                                                                                                                     Page 2
PRCVVMF   ;WOIFO/DAP-DYNAMED VENDOR UPDATE HL7 MESSAGING ROUTINE; 03/02/05
 +1       ;;5.1;IFCAP;**81**;Oct 20,2000
 +2       ;Per VHA Directive 10-93-142, this routine should not be modified.
 +3       ;
 +4        QUIT 
 +5       ;
EN(PRCVVN) ;Entry point for API Call
 +1        IF $$GET^XPAR("SYS","PRCV COTS INVENTORY",1,"Q")'=1
               QUIT 
 +2        IF $DATA(PRCVVN)=0
               QUIT 
 +3        NEW HLA
 +4        SET PRCVCNT=0
           SET PRCVERG=0
 +5        DO HDRBLD
 +6        IF PRCVERG=1
               KILL PRCVERG
               QUIT 
 +7       ;
 +8        DO MSGBLD
 +9       ;
 +10       SET PRCVDP=""
 +11       DO GENERATE^HLMA(PRCVPRO,"LM",1,.PRCVDP)
 +12       IF +$PIECE(PRCVDP,"^",2)
               SET PRCVERR(1)="Error generating message through VistA HL7 package for Vendor Update involving vendor # "_PRCVVN
               DO CLIFP
 +13      ;
 +14       KILL ^TMP("PRCVNDR",$JOB,PRCVVN)
 +15      ;
 +16       DO FIN
 +17       KILL PRCVERG
 +18      ;
 +19       QUIT 
 +20      ;
HDRBLD    ;Generate message header, MFI Segment
 +1       ;
 +2        KILL HL
           SET PRCVPRO="PRCV_IFCAP_04_EV_VEND_UPD"
 +3        DO INIT^HLFNC2(PRCVPRO,.HL)
 +4        IF $GET(HL)
               SET PRCVERR(1)="Error generating message through VistA HL7 package for Vendor Update involving vendor # "_PRCVVN
               DO CLIFP
               DO FIN
               QUIT 
 +5       ;
 +6        SET PRCVCS=$EXTRACT(HL("ECH"))
           SET PRCVRS=$EXTRACT(HL("ECH"),2)
           SET PRCVSS=$EXTRACT(HL("ECH"),4)
           SET PRCVFS=HL("FS")
 +7       ;
 +8       ;PRCVDT Transaction Date/Time w/offset
 +9        DO NOW^%DTC
 +10       SET PRCVDT=$$FMTHL7^XLFDT(%)
 +11      ;
 +12      ;Build MFI Segment
 +13       SET PRCVCNT=PRCVCNT+1
 +14       SET HLA("HLS",PRCVCNT)="MFI"_PRCVFS_"OME"_PRCVFS_"440"_PRCVCS_"VENDOR"_PRCVFS_"UPD"_PRCVFS_PRCVDT_PRCVFS_PRCVFS_"AL"
 +15      ;
 +16       QUIT 
 +17      ;
MSGBLD    ;Build Message Body
 +1       ;
 +2       ;PRCVNM Vendor Name
 +3        SET PRCVNM=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",1)
 +4       ;Address Fields - HL7 String Conversions
 +5        SET PRCV1="C"
           SET PRCV2=HL("FS")_HL("ECH")
 +6       ;PRCVAD1 Address 1
 +7        SET PRCVAD1=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",2)
 +8        IF PRCVAD1'=""
               Begin DoDot:1
 +9                SET PRCVAD1=$$CONV^PRCVUTSC(PRCVAD1,PRCV1,PRCV2)
 +10               QUIT 
               End DoDot:1
 +11      ;PRCVAD2 Address 2
 +12       SET PRCVAD2=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",3)
 +13       IF PRCVAD2'=""
               Begin DoDot:1
 +14               SET PRCVAD2=$$CONV^PRCVUTSC(PRCVAD2,PRCV1,PRCV2)
 +15               QUIT 
               End DoDot:1
 +16      ;PRCVAD3 Address 3
 +17       SET PRCVAD3=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",4)
 +18       IF PRCVAD3'=""
               Begin DoDot:1
 +19               SET PRCVAD3=$$CONV^PRCVUTSC(PRCVAD3,PRCV1,PRCV2)
 +20               QUIT 
               End DoDot:1
 +21      ;PRCVAD4 Address 4
 +22       SET PRCVAD4=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",5)
 +23       IF PRCVAD4'=""
               Begin DoDot:1
 +24               SET PRCVAD4=$$CONV^PRCVUTSC(PRCVAD4,PRCV1,PRCV2)
 +25               QUIT 
               End DoDot:1
 +26      ;PRCVCT City
 +27       SET PRCVCT=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",6)
 +28      ;PRCVST State
 +29       SET PRCVST=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",7)
 +30      ;PRCVZP Zip Code
 +31       SET PRCVZP=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",8)
 +32      ;PRCVCPS Contact Person
 +33       SET PRCVCPS=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",9)
 +34      ;PRCVCPH Contact Phone #
 +35       SET PRCVCPH=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",10)
 +36      ;PRCVSTAT Station #
 +37       SET PRCVSTAT=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,0),"^",11)
 +38      ;PRCVEDI Vendor EDI #
 +39       SET PRCVEDI=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,1),"^",2)
 +40      ;PRCVFMS Vendor FMS #
 +41       SET PRCVFMS=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,1),"^",3)
 +42      ;PRCVALT Alternate Address Indicator
 +43       SET PRCVALT=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,1),"^",4)
 +44      ;PRCVINA Inactivation Date
 +45       SET PRCVINA=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,2),"^",1)
 +46       IF PRCVINA'=""
               SET PRCVINA=$$FMTHL7^XLFDT(PRCVINA)
 +47      ;PRCVCFX Contact FAX #
 +48       SET PRCVCFX=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,2),"^",3)
 +49      ;PRCVDNB Dun and Bradstreet #
 +50       SET PRCVDNB=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,2),"^",4)
 +51      ;PRCVACN Account Number
 +52       SET PRCVACN=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,2),"^",5)
 +53      ;
 +54      ;Handling Repeating Contract Number Array and Building HL7 Field ZVD.6
 +55       SET N=0
           SET B=0
           SET PRCVCNA=""
           FOR 
               SET N=$ORDER(^TMP("PRCVNDR",$JOB,PRCVVN,3,N))
               if +N=0
                   QUIT 
               Begin DoDot:1
 +56               SET PRCVED=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,3,N),"^",2)
 +57               SET V=$$FMADD^XLFDT(PRCVED,366)
                   IF (%<V)!(PRCVED="")
                       Begin DoDot:2
 +58                       SET B=B+1
                           SET PRCVCN=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,3,N),"^",1)
 +59                       SET PRCVBD=$PIECE(^TMP("PRCVNDR",$JOB,PRCVVN,3,N),"^",3)
 +60                       IF PRCVBD'=""
                               SET PRCVBD=$$FMTHL7^XLFDT(PRCVBD)
 +61                       IF PRCVED'=""
                               SET PRCVED=$$FMTHL7^XLFDT(PRCVED)
 +62                       SET PRCVCNA(B)=PRCVRS_PRCVCN_PRCVCS_PRCVCS_PRCVCS_PRCVCS_PRCVCS_PRCVCS_PRCVBD_PRCVCS_PRCVED
 +63                       QUIT 
                       End DoDot:2
 +64               QUIT 
               End DoDot:1
 +65      ;
 +66       IF $DATA(PRCVCNA(1))
               SET PRCVCNA(1)=$PIECE(PRCVCNA(1),PRCVRS,2)
 +67      ;
 +68      ;Build MFE Segment
 +69       SET PRCVCNT=PRCVCNT+1
 +70       SET HLA("HLS",PRCVCNT)="MFE"_PRCVFS_"MUP"_PRCVFS_PRCVVN_PRCVFS_PRCVFS_PRCVVN_PRCVCS_PRCVNM_PRCVCS_PRCVSTAT_PRCVFS_"CE"
 +71      ;
 +72      ;Build ZVD Segment
 +73       SET PRCVCNT=PRCVCNT+1
           SET R=0
 +74       SET HLA("HLS",PRCVCNT)="ZVD"_PRCVFS_PRCVNM_PRCVCS_PRCVCS_PRCVVN_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"IFCAP"_PRCVCS_PRCVSTAT_PRCVRS_PRCVNM_PRCVCS_PRCVCS_PRCVEDI_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"EDI"_PRCVCS_PRCVSTAT_PRCVRS
 +75       SET HLA("HLS",PRCVCNT)=HLA("HLS",PRCVCNT)_PRCVNM_PRCVCS_PRCVCS_PRCVFMS_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"FMS"_PRCVCS_PRCVSTAT_PRCVRS_PRCVNM_PRCVCS_PRCVCS_PRCVDNB_PRCVCS_PRCVCS_PRCVCS_PRCVCS_"Dun and Bradstreet"_PRCVCS_PRCVSTAT
 +76       SET HLA("HLS",PRCVCNT,1)=PRCVFS_PRCVAD1_PRCVSS_PRCVAD2_PRCVSS_PRCVAD3_PRCVSS_PRCVAD4_PRCVCS_PRCVCS_PRCVCT_PRCVCS_PRCVST_PRCVCS_PRCVZP_PRCVFS_PRCVACN_PRCVFS_PRCVCPS_PRCVFS
 +77       SET HLA("HLS",PRCVCNT,2)=PRCVCPH_PRCVCS_PRCVCS_"PH"_PRCVRS_PRCVCFX_PRCVCS_PRCVCS_"FX"_PRCVFS_PRCVCS_PRCVINA_PRCVFS
 +78      ;
 +79       IF $DATA(PRCVCNA)
               SET W=0
               SET R=2
               FOR 
                   SET W=$ORDER(PRCVCNA(W))
                   if +W=0
                       QUIT 
                   Begin DoDot:1
 +80                   SET R=R+1
 +81                   SET HLA("HLS",PRCVCNT,R)=PRCVCNA(W)
 +82                   QUIT 
                   End DoDot:1
 +83      ;
 +84       IF R<2
               SET R=2
 +85       SET HLA("HLS",PRCVCNT,R+1)=PRCVFS_PRCVALT
 +86      ;
 +87       QUIT 
 +88      ;
MFKPROC   ;Process MFK^M01 response message
 +1       ;
 +2       ;Uses HLNEXT twice to bypass the MSH segment and go directly to the MSA segment
 +3        XECUTE HLNEXT
 +4       ;
 +5        XECUTE HLNEXT
 +6        SET VAL=$$FLD^HLCSUTL(HLNODE,2)
 +7        IF VAL'="AA"
               DO ERROR
 +8       ;
 +9        DO FIN
 +10      ;
 +11       QUIT 
 +12      ;
ERROR     ;Process ERR Segments
 +1        SET PRCVERC=2
           SET PRCVERR(1)="Unable to update Vendor in DynaMed."
 +2        SET PRCVERR(2)="During a Vendor Update to DynaMed the following errors occurred:"
 +3        FOR M=1:1
               XECUTE HLNEXT
               if HLQUIT'>0
                   QUIT 
               Begin DoDot:1
 +4                SET VAL=$$FLD^HLCSUTL(HLNODE,1)
 +5                IF VAL="MFA"
                       SET PRCVME=$$FLD^HLCSUTL(HLNODE,3)
 +6                IF VAL="ERR"
                       Begin DoDot:2
 +7                        SET PRCVERC=PRCVERC+1
                           SET PRCVERM=$$FLD^HLCSUTL(HLNODE,6)
 +8                        SET PRCVERR(PRCVERC)=$PIECE(PRCVERM,"^",2)
 +9                        QUIT 
                       End DoDot:2
 +10               QUIT 
               End DoDot:1
 +11      ;
 +12       DO CLIFP
 +13      ;
 +14       QUIT 
 +15      ;
CLIFP     ;Call partner app w/ mail message for users on error
 +1        NEW XMDUZ,XMMG,XMSUB,XMTEXT,XMY,XMZ
 +2        SET XMSUB="DynaMed Vendor # "_PRCVME_" Update Errors "_$$HTE^XLFDT($HOROLOG)
 +3        SET XMDUZ="IFCAP/COTS Inventory Interface"
 +4        SET XMTEXT="PRCVERR("
 +5        SET XMY("G.PRCV Item Vendor Edits")=""
 +6       ;
 +7        DO ^XMD
 +8        SET PRCVERG=1
 +9       ;
 +10       QUIT 
 +11      ;
FIN       ;Clean up variables
 +1        KILL PRCVVN,PRCVCNT,PRCVDP,PRCVPRO,HL,PRCVCS,PRCVRS,PRCVFS,PRCVDT,%,PRCVNM,PRCVAD1,PRCVAD2,PRCVAD3,PRCVAD4,PRCVME
 +2        KILL PRCVCT,PRCVST,PRCVZP,PRCVCPS,PRCVCPH,PRCVSTAT,PRCVEDI,PRCVFMS,PRCVALT,PRCVINA,PRCVCFX,PRCVDNB,PRCVACN
 +3        KILL N,PRCVCNA,PRCVCN,PRCVBD,PRCVED,VAL,PRCVERC,PRCVERM,PRCVERR,PRCV1,PRCV2,STR1,PRCVSS,V,W,R,B,M
 +4       ;
 +5        QUIT