| [613] | 1 | PRCVIBH ;WOIFO/DST - Issue Book Processing, from DynaMed to IFCAP ;7/26/05  17:10
 | 
|---|
 | 2 |  ;;5.1;IFCAP;**81,86**;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 |  ; IV - Internal Voucher, SV - Standard Voucher
 | 
|---|
 | 6 |  Q
 | 
|---|
 | 7 | CRT ; Process Issue Book transactions sent from DynaMed to IFCAP
 | 
|---|
 | 8 |  K HLERR
 | 
|---|
 | 9 |  N %,PRCVDT,PRCVI,PRCVJ,PRCVK,PRCVIBF,PRCVSUB,PRCVSITE
 | 
|---|
 | 10 |  D:'$D(U) DT^DICRW
 | 
|---|
 | 11 |  D NOW^%DTC S PRCVDT=%
 | 
|---|
 | 12 |  S PRCVSUB="PRCVFMS2;"_HL("MID")
 | 
|---|
 | 13 |  K ^TMP(PRCVSUB),^TMP($J,"PRCVIB")
 | 
|---|
 | 14 |  F PRCVI=1:1 X HLNEXT Q:HLQUIT'>0  D
 | 
|---|
 | 15 |  . S ^TMP($J,"PRCVIB",PRCVI)=HLNODE,PRCVJ=0
 | 
|---|
 | 16 |  . F  S PRCVJ=$O(HLNODE(PRCVJ)) Q:'PRCVJ  S ^TMP($J,"PRCVIB",PRCVI,PRCVJ)=HLNODE(PRCVJ)
 | 
|---|
 | 17 |  . Q
 | 
|---|
 | 18 |  ; 
 | 
|---|
 | 19 | MAIN ; Main routine
 | 
|---|
 | 20 |  ; Check HL7 message type and message event
 | 
|---|
 | 21 |  ; PRCVEA - Error message array
 | 
|---|
 | 22 |  ; PRCVTDT - Transaction Date 
 | 
|---|
 | 23 |  ; PRCVDAC - Document Action
 | 
|---|
 | 24 |  N PRCVFS,PRCVRS,PRCVCS,PRCVES,PRCVSS,PRCVCC,PRCVSCC
 | 
|---|
 | 25 |  N PRCVEA,PRCVTDT,PRCVBID,PRCVLID,PRCVND,PRCVSEG,PRCVY,X,X1,X2
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 |  S PRCVK=0
 | 
|---|
 | 28 |  S PRCVFS=$G(HL("FS")),PRCVCS=$E($G(HL("ECH"))),PRCVRS=$E($G(HL("ECH")),2),PRCVES=$E($G(HL("ECH")),U,3),PRCVSS=$E($G(HL("ECH")),U,4)
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 | HEADER I HL("MTN")'="DFT"!(HL("ETN")'="P03") D  Q
 | 
|---|
 | 31 |  . D ADDERR("PRCV1"_U_"Wrong Message or Event Type: "_HL("MTN")_U_HL("ETN"))
 | 
|---|
 | 32 |  . D GENACK("AR",HL("MID"),PRCVDT,.PRCVEA)
 | 
|---|
 | 33 |  . Q
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 |  S X1=$P(PRCVDT,"."),X2=14 D C^%DTC
 | 
|---|
 | 36 |  S ^TMP(PRCVSUB,$J,0)=X_U_$P(PRCVDT,".")_"^IB Sent from DynaMed to IFCAP"
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 |  ; Check each segments - EVN,PID,FT1
 | 
|---|
 | 39 |  ;   PRCVTCD - Transaction Code - "IV" or "SV"
 | 
|---|
 | 40 |  ;   PRCVSTN - Station Number
 | 
|---|
 | 41 |  ;
 | 
|---|
 | 42 | START N PREVSEG,PRCVSTN,PRCVDAC,PRCVTDT,PRCVTCD
 | 
|---|
 | 43 |  S PRCVSITE=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99)
 | 
|---|
 | 44 |  S PREVSEG=""
 | 
|---|
 | 45 |  S PRCVI=0
 | 
|---|
 | 46 |  D NOW^%DTC S PRCVDT=%
 | 
|---|
 | 47 |  F  S PRCVI=$O(^TMP($J,"PRCVIB",PRCVI)) Q:'PRCVI  D
 | 
|---|
 | 48 |  . S PRCVND=$G(^TMP($J,"PRCVIB",PRCVI))
 | 
|---|
 | 49 |  . S PRCVSEG=$P(PRCVND,PRCVFS)
 | 
|---|
 | 50 |  . Q:PRCVSEG="MSH"!(PRCVSEG="")
 | 
|---|
 | 51 |  . I $$CHKSEQ(PRCVSEG) K ^TMP($J,"PRCVIB") S PRCVI="" Q
 | 
|---|
 | 52 |  . S PREVSEG=PRCVSEG
 | 
|---|
 | 53 |  . D @PRCVSEG
 | 
|---|
 | 54 |  . Q
 | 
|---|
 | 55 |  I PRCVSEG'="FT1" D ADDERR("PRCV1"_U_"No Item line for this transaction.")
 | 
|---|
 | 56 |  ; 
 | 
|---|
 | 57 |  ; If errored, send AE ACK, clean up and QUIT
 | 
|---|
 | 58 | ERR I $D(PRCVEA)!(PRCVTCD']"") D XTMP("AE"),FIN Q
 | 
|---|
 | 59 | OK ; Calling IFCAP and FMS routines for Issue Book and FMS update
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 |  I PRCVTCD="SV" D
 | 
|---|
 | 62 |  . I '$$ENT^PRCVFMS2(PRCVSUB) D
 | 
|---|
 | 63 |  .. D ADDERR("PRCV3"_U_"Error in generating FMS Code Sheet.")
 | 
|---|
 | 64 |  .. D XTMP("AE")
 | 
|---|
 | 65 |  .. Q
 | 
|---|
 | 66 |  . Q
 | 
|---|
 | 67 |  I PRCVTCD="IV" D
 | 
|---|
 | 68 |  . S PRCVIBF=$$INIT^PRCVIBF(PRCVSUB)
 | 
|---|
 | 69 |  . ; PRCVIBF - return "IEN of 410^Error Code^Error Description"
 | 
|---|
 | 70 |  . ; If errored, move ^TMP to ^XTMP and quit
 | 
|---|
 | 71 |  . I '+PRCVIBF D  Q
 | 
|---|
 | 72 |  .. D ADDERR("PRCV3"_U_$P(PRCVIBF,U,2)_"-"_$P(PRCVIBF,U,3))
 | 
|---|
 | 73 |  .. D XTMP("AE")
 | 
|---|
 | 74 |  .. Q
 | 
|---|
 | 75 |  . I '$$ENT^PRCVFMS1(PRCVSUB,+PRCVIBF) D
 | 
|---|
 | 76 |  .. D ADDERR("PRCV3"_U_"Error in generating FMS Code Sheet.")
 | 
|---|
 | 77 |  .. D XTMP("AE")
 | 
|---|
 | 78 |  .. Q
 | 
|---|
 | 79 |  . Q
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 |  I '$D(PRCVEA) D GENACK("AA",HL("MID"),PRCVDT)
 | 
|---|
 | 82 |  D FIN
 | 
|---|
 | 83 |  Q
 | 
|---|
 | 84 |  ;
 | 
|---|
 | 85 | CHKSEQ(SEG) ; SEG - Segment name
 | 
|---|
 | 86 |  N SEGERR,PREV1,PREV2,PRCVER1
 | 
|---|
 | 87 |  S SEGERR=0
 | 
|---|
 | 88 |  S PREV1=$P($P($T(@(SEG_1)),";;",2),U)
 | 
|---|
 | 89 |  S PREV2=$P($P($T(@(SEG_1)),";;",2),U,2)
 | 
|---|
 | 90 |  I PREVSEG=PREV1!(PREVSEG=PREV2) Q SEGERR
 | 
|---|
 | 91 |  S SEGERR=1
 | 
|---|
 | 92 |  S PRCVER1=$P($P($T(@(SEG_1)),";;",2),U,4)_SEG
 | 
|---|
 | 93 |  D ADDERR("PRCV1"_U_PRCVER1)
 | 
|---|
 | 94 |  Q SEGERR
 | 
|---|
 | 95 |  ;
 | 
|---|
 | 96 | EVN ; Process EVN segment
 | 
|---|
 | 97 |  ;
 | 
|---|
 | 98 |  S PRCVSTN=$P(PRCVND,PRCVFS,8)
 | 
|---|
 | 99 |  I PRCVSTN']"" D ADDERR("PRCV2"_U_"Station Number is missing.",8)
 | 
|---|
 | 100 |  I PRCVSTN'=PRCVSITE D ADDERR("PRCV2"_U_"Invalid Station Number: "_PRCVSTN,8)
 | 
|---|
 | 101 |  S PRCVDAC=$P(PRCVND,PRCVFS,5)
 | 
|---|
 | 102 |  I "EMX"'[PRCVDAC!(PRCVDAC']"") D ADDERR("PRCV2"_U_"Invalid Document Action: "_PRCVDAC,5)
 | 
|---|
 | 103 |  S PRCVTDT=$P(PRCVND,PRCVFS,3)
 | 
|---|
 | 104 |  I PRCVTDT']"" D ADDERR("PRCV2"_U_"Transaction Date is missing.",3) Q
 | 
|---|
 | 105 |  S PRCVTDT=$$HL7TFM^XLFDT(PRCVTDT,"L",0)
 | 
|---|
 | 106 |  I $P(PRCVTDT,".")>PRCVDT D ADDERR("PRCV2"_U_"Invalid Transaction Date: "_PRCVTDT,3)
 | 
|---|
 | 107 |  Q
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 | PID ; Process PID segment
 | 
|---|
 | 110 |  ;
 | 
|---|
 | 111 |  N PRCVDUZ,PRCVFCP1,PRCVFCP2,PRCVBOC,PRCVTERM
 | 
|---|
 | 112 |  ;
 | 
|---|
 | 113 |  S PRCVBID=$P(PRCVND,PRCVFS,4)
 | 
|---|
 | 114 |  I PRCVBID']"" D ADDERR("PRCV2"_U_"Batch ID is missing.",4)
 | 
|---|
 | 115 |  S PRCVTCD=$P(PRCVND,PRCVFS,5)
 | 
|---|
 | 116 |  I PRCVTCD']"" D ADDERR("PRCV2"_U_"Transaction Code is missing.",5)
 | 
|---|
 | 117 |  I PRCVTCD'="IV",(PRCVTCD'="SV") D ADDERR("PRCV2"_U_"Invalid Transaction Code: "_PRCVTCD,5)
 | 
|---|
 | 118 |  ; Check User ID, Termination Date and is authorized FCP user
 | 
|---|
 | 119 |  S PRCVDUZ=$P(PRCVND,PRCVFS,3)
 | 
|---|
 | 120 |  I PRCVDUZ']"" D ADDERR("PRCV2"_U_"User ID is missing.",3)
 | 
|---|
 | 121 |  I PRCVDUZ]"" D
 | 
|---|
 | 122 |  . I '$$FIND1^DIC(200,"","","`"_PRCVDUZ,"","","PRCVERR") D ADDERR("PRCV2"_U_"Invalid User ID: "_PRCVDUZ,3)
 | 
|---|
 | 123 |  . E  D
 | 
|---|
 | 124 |  .. S PRCVTERM=$$GET1^DIQ(200,PRCVDUZ_",",9.2,"I")
 | 
|---|
 | 125 |  .. I +PRCVTERM>0,(PRCVTERM<DT) D ADDERR("PRCV2"_U_"Invalid User ID: "_PRCVDUZ,3)
 | 
|---|
 | 126 |  .. Q
 | 
|---|
 | 127 |  .Q
 | 
|---|
 | 128 |  S PRCVFCP1=$P(PRCVND,PRCVFS,22)
 | 
|---|
 | 129 |  I PRCVFCP1']"" D ADDERR("PRCV2"_U_$S(PRCVTCD="IV":"Seller's",1:"Warehouse's")_" Fund Control Point is missing.",22)
 | 
|---|
 | 130 |  I '$D(^PRC(420,PRCVSITE,1,+PRCVFCP1)) D ADDERR("PRCV2"_U_"Invalid "_$S(PRCVTCD="IV":"Seller's",1:"Warehouse's")_" Fund Control Point.",22)
 | 
|---|
 | 131 |  I $D(^PRC(420,PRCVSITE,1,+PRCVFCP1)),$P(^PRC(420,PRCVSITE,1,+PRCVFCP1,0),U,19) D ADDERR("PRCV2"_U_"Inactivated "_$S(PRCVTCD="IV":"Seller's",1:"Warehouse's")_" Fund Control Point.",22)
 | 
|---|
 | 132 |  I PRCVTCD="IV" D
 | 
|---|
 | 133 |  . S PRCVFCP2=$P(PRCVND,PRCVFS,24)
 | 
|---|
 | 134 |  . I PRCVFCP2']"" D ADDERR("PRCV2"_U_"Buyer's Fund Control Point is missing.",24)
 | 
|---|
 | 135 |  . E  D
 | 
|---|
 | 136 |  .. I '$D(^PRC(420,PRCVSITE,1,+PRCVFCP2)) D ADDERR("PRCV2"_U_"Invalid Buyer's Fund Control Point.",24)
 | 
|---|
 | 137 |  .. I $D(^PRC(420,PRCVSITE,1,+PRCVFCP2)),$P(^PRC(420,PRCVSITE,1,+PRCVFCP2,0),U,19) D ADDERR("PRCV2"_U_"Inactivated Buyer's Fund Control Point.",24)
 | 
|---|
 | 138 |  .. Q
 | 
|---|
 | 139 |  . S PRCVCC=$P(PRCVND,PRCVFS,19)
 | 
|---|
 | 140 |  . I PRCVCC']"" D ADDERR("PRCV2"_U_"Buyer's Cost Center is missing.",19)
 | 
|---|
 | 141 |  . S PRCVSCC=$P(PRCVND,PRCVFS,20)
 | 
|---|
 | 142 |  . I PRCVSCC']"" D ADDERR("PRCV2"_U_"Buyer's Sub-cost Center is missing.",20)
 | 
|---|
 | 143 |  . I PRCVCC,(PRCVSCC'="") D
 | 
|---|
 | 144 |  .. I '$D(^PRCD(420.1,PRCVCC_PRCVSCC)) D ADDERR("PRCV2"_U_"Invalid Buyer's Cost Center. Cost Center not defined in Cost Center file 420.1",19) Q
 | 
|---|
 | 145 |  .. I '$D(^PRC(420,PRCVSTN,1,+PRCVFCP2,2,PRCVCC_PRCVSCC)) D ADDERR("PRCV2"_U_"Invalid Buyer's Cost Center. Cost Center not used for this Fund Control Point.",19)
 | 
|---|
 | 146 |  .. Q
 | 
|---|
 | 147 |  . Q
 | 
|---|
 | 148 |  I PRCVDUZ]"",('$D(^PRC(420,PRCVSTN,1,$S(PRCVTCD="IV":+PRCVFCP2,1:+PRCVFCP1),1,PRCVDUZ))) D ADDERR("PRCV2"_U_"Unauthorized User for this FCP.",3)
 | 
|---|
 | 149 |  S ^TMP(PRCVSUB,$J,1)=PRCVSTN_U_PRCVBID_U_PRCVTCD_U_PRCVDAC_U_PRCVTDT_U_PRCVDUZ
 | 
|---|
 | 150 |  S ^TMP(PRCVSUB,$J,2)=PRCVFCP1_U_$G(PRCVFCP2)_U_$G(PRCVCC)_U_$G(PRCVSCC)
 | 
|---|
 | 151 |  Q
 | 
|---|
 | 152 |  ;
 | 
|---|
 | 153 | FT1 ; Process FT1 segment
 | 
|---|
 | 154 |  N PRCVACC,PRCVBOC,PRCVINV,PRCVSAL,PRCVRCD
 | 
|---|
 | 155 |  ;
 | 
|---|
 | 156 |  S PRCVLID=$P(PRCVND,PRCVFS,3)
 | 
|---|
 | 157 |  I 'PRCVLID D ADDERR("PRCV2"_U_"Line ID is missing.",3)
 | 
|---|
 | 158 |  S PRCVACC=$P(PRCVND,PRCVFS,9)
 | 
|---|
 | 159 |  I 'PRCVACC D ADDERR("PRCV2"_U_"Account Code is missing.",9)
 | 
|---|
 | 160 |  I PRCVACC,((PRCVACC'?1N)!("12368"'[PRCVACC)) D ADDERR("PRCV2"_U_"Invalid Account Code: "_PRCVACC,9)
 | 
|---|
 | 161 |  I PRCVTCD="IV" D
 | 
|---|
 | 162 |  . S PRCVBOC=$P(PRCVND,PRCVFS,10)
 | 
|---|
 | 163 |  . I PRCVBOC=2696 D ADDERR("PRCV2"_U_"Invalid Buyer's Budget Object Code: "_PRCVBOC,10)
 | 
|---|
 | 164 |  . I 'PRCVBOC D ADDERR("PRCV2"_U_"Budget Object Code is missing.",10)
 | 
|---|
 | 165 |  . I '$D(^PRCD(420.1,PRCVCC_PRCVSCC,1,PRCVBOC)) D ADDERR("PRCV2"_U_"Invalid Budget Object Code for this Cost Center: "_PRCVBOC,10)
 | 
|---|
 | 166 |  . I $P($G(^PRCD(420.2,PRCVBOC,0)),"^",2)=1 D ADDERR("PRCV2"_U_"Inactivated Budget Object Code: "_PRCVBOC,10)
 | 
|---|
 | 167 |  . S PRCVSAL=$P(PRCVND,PRCVFS,13)
 | 
|---|
 | 168 |  . I 'PRCVSAL D ADDERR("PRCV2"_U_"Sale Value is missing.",13)
 | 
|---|
 | 169 |  . Q
 | 
|---|
 | 170 |  S PRCVINV=$P(PRCVND,PRCVFS,12)
 | 
|---|
 | 171 |  I 'PRCVINV D ADDERR("PRCV2"_U_"Inventory Value is missing.",12)
 | 
|---|
 | 172 |  I PRCVTCD="SV" D
 | 
|---|
 | 173 |  . S PRCVRCD=$P(PRCVND,PRCVFS,8)
 | 
|---|
 | 174 |  . I PRCVRCD']"" D ADDERR("PRCV2"_U_"Reason Code is missing.",8)
 | 
|---|
 | 175 |  . I PRCVRCD'?1N!(PRCVRCD<1)!(PRCVRCD>7) D ADDERR("PRCV2"_U_"Invalid Reason Code: "_PRCVRCD,8)
 | 
|---|
 | 176 |  . Q
 | 
|---|
 | 177 |  S ^TMP(PRCVSUB,$J,3,0)=PRCVLID
 | 
|---|
 | 178 |  S ^TMP(PRCVSUB,$J,3,PRCVLID,0)=PRCVLID_U_PRCVACC_U_$G(PRCVBOC)_U_PRCVINV_U_$G(PRCVSAL)_U_$G(PRCVRCD)
 | 
|---|
 | 179 |  Q
 | 
|---|
 | 180 |  ;
 | 
|---|
 | 181 | GENACK(PRCVAC,PRCVMCID,PRCVDT,PRCVOCCR) ;
 | 
|---|
 | 182 |  ;
 | 
|---|
 | 183 |  ;PRCVAC - Acknowledgment Code
 | 
|---|
 | 184 |  ;PRCVMCID - Message Control ID which you're acknowledging
 | 
|---|
 | 185 |  ;PRCVDT - Date/Time of Transaction
 | 
|---|
 | 186 |  ;PRCVOCCR - Error message array
 | 
|---|
 | 187 |  ;
 | 
|---|
 | 188 |  N PRCVFS,PRCVCNT,PRCVCS,PRCVI,PRCVJ,PRCVND,PRCVRES
 | 
|---|
 | 189 |  ;
 | 
|---|
 | 190 |  S PRCVFS=$G(HL("FS")),PRCVCS=$E($G(HL("ECH"))),PRCVRS=$E($G(HL("ECH")),2),PRCVES=$E($G(HL("ECH")),U,3),PRCVSS=$E($G(HL("ECH")),U,4)
 | 
|---|
 | 191 |  S PRCVRES="",PRCVJ=0,PRCVI=1
 | 
|---|
 | 192 |  ;
 | 
|---|
 | 193 |  ; MSA Segment
 | 
|---|
 | 194 |  S HLA("HLA",1)="MSA"_PRCVFS_PRCVAC_PRCVFS_PRCVMCID_PRCVFS_$G(PRCVBID)
 | 
|---|
 | 195 |  ; 
 | 
|---|
 | 196 |  ; ERR Segment
 | 
|---|
 | 197 |  I $G(PRCVOCCR)'="" D
 | 
|---|
 | 198 |  . F  S PRCVJ=$O(PRCVOCCR(PRCVJ)) Q:'PRCVJ  D
 | 
|---|
 | 199 |  .. S PRCVI=PRCVI+1
 | 
|---|
 | 200 |  .. S HLA("HLA",PRCVI)="ERR"_PRCVFS_PRCVOCCR(PRCVJ)
 | 
|---|
 | 201 |  .. Q
 | 
|---|
 | 202 |  . Q
 | 
|---|
 | 203 |  ;
 | 
|---|
 | 204 |  D GENACK^HLMA1(HL("EID"),$G(HLMTIENS),HL("EIDS"),"LM",1,PRCVRES)
 | 
|---|
 | 205 |  I $P($G(PRCVRES),U,2) D
 | 
|---|
 | 206 |  . K XMB,XMZ
 | 
|---|
 | 207 |  . S XMB="PRCV HL7 ERROR"
 | 
|---|
 | 208 |  . S XMB(1)="PRCVIB"
 | 
|---|
 | 209 |  . S XMB(2)="Application Acknowledgement"
 | 
|---|
 | 210 |  . S XMB(3)="PRCV_IFCAP_06_SU_IB_PROC"
 | 
|---|
 | 211 |  . S XMB(4)=PRCVRES
 | 
|---|
 | 212 |  . S XMDUZ="PRCV HL7 Generator"
 | 
|---|
 | 213 |  . D ^XMB
 | 
|---|
 | 214 |  . K XMB,XMDUZ,XMZ
 | 
|---|
 | 215 |  . Q
 | 
|---|
 | 216 |  ;
 | 
|---|
 | 217 |  K HLA("HLA"),^TMP("HLA",$J)
 | 
|---|
 | 218 |  K PRCVAC,X
 | 
|---|
 | 219 |  Q
 | 
|---|
 | 220 |  ;
 | 
|---|
 | 221 | ADDERR(PRCVER,PRCVFD) ;
 | 
|---|
 | 222 |  ; PRCVER - Error message
 | 
|---|
 | 223 |  ; PRCVFD - Field number, if any 
 | 
|---|
 | 224 |  ;
 | 
|---|
 | 225 |  S PRCVK=PRCVK+1
 | 
|---|
 | 226 |  S PRCVEA=PRCVK
 | 
|---|
 | 227 |  S:'$G(PRCVLID) PRCVLID=1
 | 
|---|
 | 228 |  S:'$G(PRCVFD) PRCVLID="",PRCVFD=""
 | 
|---|
 | 229 |  S PRCVEA(PRCVK)=PRCVFS_$G(PRCVSEG)_U_PRCVLID_U_PRCVFD_PRCVFS_"207^Application Internal Error^HL70357"_PRCVFS_"E"_PRCVFS_PRCVER_PRCVFS_PRCVLID
 | 
|---|
 | 230 |  Q
 | 
|---|
 | 231 |  ;
 | 
|---|
 | 232 | XTMP(AC) ; Move ^TMP(PRCVSUB,$j) to ^XTMP
 | 
|---|
 | 233 |  ;
 | 
|---|
 | 234 |  ; AC - Acknowledgement
 | 
|---|
 | 235 |  ;
 | 
|---|
 | 236 |  S ^XTMP(PRCVSUB,0)=$$FMADD^XLFDT(PRCVDT,14)_U_PRCVDT_U_"IB Data from DynaMed with error"
 | 
|---|
 | 237 |  F PRCVI=1,2 S ^XTMP(PRCVSUB,PRCVI)=^TMP(PRCVSUB,$J,PRCVI)
 | 
|---|
 | 238 |  I $D(^TMP(PRCVSUB,$J,3,0)) D
 | 
|---|
 | 239 |  . S ^XTMP(PRCVSUB,3,0)=^TMP(PRCVSUB,$J,3,0)
 | 
|---|
 | 240 |  . S PRCVI=0
 | 
|---|
 | 241 |  . F  S PRCVI=$O(^TMP(PRCVSUB,$J,3,PRCVI)) Q:'PRCVI  D
 | 
|---|
 | 242 |  .. S ^XTMP(PRCVSUB,3,PRCVI)=^TMP(PRCVSUB,$J,3,PRCVI,0)
 | 
|---|
 | 243 |  .. Q
 | 
|---|
 | 244 |  D GENACK(AC,HL("MID"),PRCVDT,.PRCVEA)
 | 
|---|
 | 245 |  S ^XTMP(PRCVSUB,4,0)=PRCVEA
 | 
|---|
 | 246 |  S PRCVI=0
 | 
|---|
 | 247 |  F  S PRCVI=$O(PRCVEA(PRCVI)) Q:'PRCVI  D
 | 
|---|
 | 248 |  . S ^XTMP(PRCVSUB,4,PRCVI)=PRCVEA(PRCVI)
 | 
|---|
 | 249 |  . Q
 | 
|---|
 | 250 |  Q
 | 
|---|
 | 251 |  ;
 | 
|---|
 | 252 | FIN ; Clean up
 | 
|---|
 | 253 |  ;
 | 
|---|
 | 254 |  ; K ^TMP($J,"PRCVIB")
 | 
|---|
 | 255 |  ; K ^TMP(PRCVSUB,$J)
 | 
|---|
 | 256 |  K PRCVEA
 | 
|---|
 | 257 |  Q
 | 
|---|
 | 258 |  ;
 | 
|---|
 | 259 | TXT ; 
 | 
|---|
 | 260 | EVN1 ;;^EVN^^Missing segment ^100^Missing line item info.
 | 
|---|
 | 261 | PID1 ;;EVN^^^Missing segment ^100^Missing line item info.
 | 
|---|
 | 262 | FT11 ;;PID^FT1^^Missing segment ^100^Missing line item info.
 | 
|---|