| 1 | PRCHAAC1 ;WIFO/CR-CONT. OF IFCAP HL7 MESSAGE TO AUSTIN ;3/4/05 11:43 AM | 
|---|
| 2 | ;;5.1;IFCAP;**79,105**;Oct 20, 2000;Build 4 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | ; This routine is called from the routine PRCHAAC. | 
|---|
| 6 | ; Set up HL7 environment for message. | 
|---|
| 7 | K HLA,HL,HLFS,HLCS,HLRS | 
|---|
| 8 | N PRCAPPO,PRCPPA,PRCERR,PRCMID,PRCMSG,PRCSEG,PRCSUB,PRCPROT,PRCRSULT,PRCOPTNS | 
|---|
| 9 | S PRCDUZ=$G(DUZ) I +PRCDUZ'>0 D EN^DDIOL("User undefined","","!!?5") Q 0  ;DUZ is system-supplied | 
|---|
| 10 | S PRCPROT="PRC_IFCAP_01_EV_AAC" | 
|---|
| 11 | D INIT^HLFNC2(PRCPROT,.HL) | 
|---|
| 12 | I $G(HL) D  Q 0  ;tell user if there was an error | 
|---|
| 13 | . S PRCMSG=0 | 
|---|
| 14 | . I $P(HL,"^",2)]"" D | 
|---|
| 15 | .. D:'$D(ZTQUEUED) EN^DDIOL("Error: "_$P(HL,"^",2)_" occurred. Please try later.") | 
|---|
| 16 | ; | 
|---|
| 17 | S HLFS=$G(HL("FS"))    ;field separator | 
|---|
| 18 | S HLCS=$E(HL("ECH"),1) ;component separator | 
|---|
| 19 | S HLRS=$E(HL("ECH"),2) ;repetition separator | 
|---|
| 20 | ; | 
|---|
| 21 | ;======== MFI Segment =========== | 
|---|
| 22 | S PRCSEG="MFI"_HLFS_"CDM"_HLFS_HLFS_"UPD"_HLFS_HLFS_HLFS_"AL" | 
|---|
| 23 | S HLA("HLS",1)=PRCSEG | 
|---|
| 24 | ; | 
|---|
| 25 | ;======== MFE Segment =========== | 
|---|
| 26 | S PRCSEG="MFE"_HLFS_"MAD"_HLFS_HLFS | 
|---|
| 27 | S $P(PRCSEG,HLFS,5)="V"_PRCROOT_HLFS_"CE"  ;primary key value | 
|---|
| 28 | S HLA("HLS",2)=PRCSEG | 
|---|
| 29 | ; | 
|---|
| 30 | ;======== CDM Segment =========== | 
|---|
| 31 | S PRCSEG="CDM" | 
|---|
| 32 | S $P(PRCSEG,HLFS,2)="V"_PRCROOT      ;primary key value | 
|---|
| 33 | S $P(PRCSEG,HLFS,4)="PROCUREMENT DETAIL FROM IFCAP" | 
|---|
| 34 | S $P(PRCSEG,HLFS,12)=PRCCN           ;contract number | 
|---|
| 35 | S:$G(PRCAM)="" $P(PRCSEG,HLFS,13)=PRCVEN_HLCS_HLCS_PRCDB | 
|---|
| 36 | S HLA("HLS",3)=PRCSEG | 
|---|
| 37 | ; | 
|---|
| 38 | ;======== PRC Segment =========== | 
|---|
| 39 | S PRCSEG="PRC" | 
|---|
| 40 | S $P(PRCSEG,HLFS,2)="V"_PRCROOT      ;primary key value | 
|---|
| 41 | S:$G(PRCAM)="" $P(PRCSEG,HLFS,10)="0"_HLCS_"US" | 
|---|
| 42 | S $P(PRCSEG,HLFS,11)=PRCAMT_HLCS_"US" | 
|---|
| 43 | S $P(PRCSEG,HLFS,12)=$G(PRCOD)    ;effective start date = P.O. Date | 
|---|
| 44 | S $P(PRCSEG,HLFS,13)=$G(PRCDD)    ;effective end date = delivery date | 
|---|
| 45 | S HLA("HLS",4)=PRCSEG | 
|---|
| 46 | ; | 
|---|
| 47 | ;======== ZPO Segment =========== | 
|---|
| 48 | ; Purchase order details - check if this PO has been amended and get | 
|---|
| 49 | ; just a few fields for this segment as requested by Austin Automation | 
|---|
| 50 | ; Center (AAC) | 
|---|
| 51 | I $D(^PRC(442,PRCHPO,6,0)) G AMEND | 
|---|
| 52 | S PRCSEG="ZPO" | 
|---|
| 53 | S:$G(PRCECC)'="" $P(PRCSEG,HLFS,2)=PRCECC      ;extent competed | 
|---|
| 54 | S:$G(PRCRNC)'="" $P(PRCSEG,HLFS,3)=PRCRNC      ;reason not competed | 
|---|
| 55 | S $P(PRCSEG,HLFS,4)=PRCEPAC     ;EPA designated product | 
|---|
| 56 | S:$G(PRCFSC)'="" $P(PRCSEG,HLFS,5)=PRCFSC      ;Federal Supply Class. (or PSC code) | 
|---|
| 57 | S $P(PRCSEG,HLFS,6)=PRCPP       ;place of performance question | 
|---|
| 58 | S $P(PRCSEG,HLFS,7)=PRCPF       ;place of performance | 
|---|
| 59 | S $P(PRCSEG,HLFS,8)=PRCCB       ;contract bundling | 
|---|
| 60 | S $P(PRCSEG,HLFS,9)="N"         ;government furnished eqmt. | 
|---|
| 61 | S $P(PRCSEG,HLFS,10)=PRCPER     ;DUZ^LastName^FirstName (contr. officer) | 
|---|
| 62 | S $P(PRCSEG,HLFS,11)=PRCMOP           ;method of processing | 
|---|
| 63 | S $P(PRCSEG,HLFS,12)="J"              ;type of contract | 
|---|
| 64 | S $P(PRCSEG,HLFS,13)=PRCAAD           ;alternative advertising | 
|---|
| 65 | S $P(PRCSEG,HLFS,14)=$G(PRCDS)        ;date PO was signed | 
|---|
| 66 | S $P(PRCSEG,HLFS,15)=PRCAT            ;award type | 
|---|
| 67 | S $P(PRCSEG,HLFS,16)=PRCRT            ;record type | 
|---|
| 68 | S $P(PRCSEG,HLFS,17)=PRCSPC           ;solicitation procedure | 
|---|
| 69 | S $P(PRCSEG,HLFS,18)=PRCEPC           ;evaluated preference | 
|---|
| 70 | S $P(PRCSEG,HLFS,19)=PRCFAC           ;funding agency code | 
|---|
| 71 | S $P(PRCSEG,HLFS,20)="N"              ;contract funded by foreign gov. | 
|---|
| 72 | S $P(PRCSEG,HLFS,21)=PRCFOC           ;funding agency office code | 
|---|
| 73 | S $P(PRCSEG,HLFS,22)=PRCMY            ;multiyear (for contracts) | 
|---|
| 74 | S $P(PRCSEG,HLFS,23)=PRCPAS           ;pre award synopsis | 
|---|
| 75 | S $P(PRCSEG,HLFS,24)="N"              ;synopsis waiver | 
|---|
| 76 | S $P(PRCSEG,HLFS,25)=PRCNOF           ;number of offers | 
|---|
| 77 | S $P(PRCSEG,HLFS,26)=PRCUV_HLCS_"US"  ;ultimate contract value | 
|---|
| 78 | S $P(PRCSEG,HLFS,27)=PRCCV_HLCS_"US"  ;current contract value | 
|---|
| 79 | S $P(PRCSEG,HLFS,28)=PRCDES           ;description of reqmt. (line item) | 
|---|
| 80 | S $P(PRCSEG,HLFS,29)=3600             ;agency identifier | 
|---|
| 81 | S $P(PRCSEG,HLFS,30)=PRCBZ            ;business size | 
|---|
| 82 | S $P(PRCSEG,HLFS,31)=PRCTSAC          ;type set aside | 
|---|
| 83 | S $P(PRCSEG,HLFS,32)=PRCPBC           ;perf. based service contract | 
|---|
| 84 | S $P(PRCSEG,HLFS,33)=3600             ;contracting agency code | 
|---|
| 85 | S $P(PRCSEG,HLFS,34)=PRCOFC           ;contracting office code | 
|---|
| 86 | S $P(PRCSEG,HLFS,35)=PRCCH            ;Clinger Cohen Act | 
|---|
| 87 | S $P(PRCSEG,HLFS,37)=PRCUCD           ;ultimate completion date | 
|---|
| 88 | S HLA("HLS",5)=PRCSEG | 
|---|
| 89 | G GEN | 
|---|
| 90 | ; | 
|---|
| 91 | AMEND ; Get ready for a short amended message | 
|---|
| 92 | S PRCSEG="ZPO" | 
|---|
| 93 | S $P(PRCSEG,HLFS,14)=PRCDS            ;date PO was signed | 
|---|
| 94 | S $P(PRCSEG,HLFS,16)=PRCRT            ;record type | 
|---|
| 95 | S $P(PRCSEG,HLFS,20)="N"              ;contract funded by foreign govt. | 
|---|
| 96 | S $P(PRCSEG,HLFS,26)=PRCUV_HLCS_"US"  ;ultimate contract value | 
|---|
| 97 | S $P(PRCSEG,HLFS,27)=PRCCV_HLCS_"US"  ;current contract value | 
|---|
| 98 | S $P(PRCSEG,HLFS,29)=3600             ;agency identifier | 
|---|
| 99 | S $P(PRCSEG,HLFS,33)=3600             ;contracting agency code | 
|---|
| 100 | S $P(PRCSEG,HLFS,34)=PRCOFC           ;contracting office code | 
|---|
| 101 | S $P(PRCSEG,HLFS,36)=$G(PRCMN)        ;modification number (amendment #) | 
|---|
| 102 | S $P(PRCSEG,HLFS,38)=$G(PRCRMC)       ;reason for mod. (amend authority) | 
|---|
| 103 | S HLA("HLS",5)=PRCSEG | 
|---|
| 104 | ; | 
|---|
| 105 | ; Call HL7 to build/send message and get its number (PRCMID) | 
|---|
| 106 | GEN D GENERATE^HLMA(PRCPROT,"LM",1,.PRCRSULT,"",.PRCOPTNS) | 
|---|
| 107 | I $P(PRCRSULT,U,1)]"" S PRCMID=$P(PRCRSULT,U,1) | 
|---|
| 108 | S PRCSUB=$S(PRCMID>0:"PRCHAAC1;"_PRCMID,1:"PRCHAAC1;"_"No MID") | 
|---|
| 109 | MAIL2 ; | 
|---|
| 110 | S MSG(1,0)="The following Purchase Order transaction has been sent " | 
|---|
| 111 | S MSG(2,0)="to the Austin Automation Center (AAC) to report" | 
|---|
| 112 | S MSG(3,0)="required FPDS information. Please keep this information" | 
|---|
| 113 | S MSG(4,0)="for two weeks for tracking purposes." | 
|---|
| 114 | S MSG(5,0)=" " | 
|---|
| 115 | S MSG(6,0)="Purchase Order Number: "_$E(PRCROOT,1,3)_"-"_$E(PRCROOT,4,9) | 
|---|
| 116 | S MSG(7,0)=" " | 
|---|
| 117 | S MSG(8,0)="The HL7 Message # is: "_PRCMID | 
|---|
| 118 | S XMSUB="Message for PO #: "_$E(PRCROOT,1,3)_"-"_$E(PRCROOT,4,9)_" to the AAC" | 
|---|
| 119 | ; Get approving official for a delivery order, certified invoice, etc. | 
|---|
| 120 | I $D(^PRC(442,PRCHPO,10)) D | 
|---|
| 121 | . I $P(^PRC(442,PRCHPO,23),U,11)="D" S PRCAPPO=$P(^PRC(442,PRCHPO,10,1,0),U,2) | 
|---|
| 122 | . E  S PRCAPPO=$P(^PRC(442,PRCHPO,10,1,0),U,2) | 
|---|
| 123 | ; | 
|---|
| 124 | ; Get approving official for an order created by a purchasing agent | 
|---|
| 125 | I $P($G(^PRC(442,PRCHPO,23)),U,11)="" D | 
|---|
| 126 | . I '$D(^PRC(442,PRCHPO,13)) Q | 
|---|
| 127 | . S PRC2237=$P(^PRC(442,PRCHPO,13,0),U,3) | 
|---|
| 128 | . S PRCAPPO=$P(^PRC(442,PRCHPO,13,PRC2237,0),U,2) | 
|---|
| 129 | ; | 
|---|
| 130 | ; Get authorized buyer for all POs | 
|---|
| 131 | S PRCPPA=$P(^PRC(442,PRCHPO,1),U,10) | 
|---|
| 132 | S XMDUZ=PRCDUZ | 
|---|
| 133 | S XMY(PRCPPA)="" | 
|---|
| 134 | S:$G(PRCAPPO)'="" XMY(PRCAPPO)="" | 
|---|
| 135 | S XMTEXT="MSG(" | 
|---|
| 136 | D ^XMD | 
|---|
| 137 | ; | 
|---|
| 138 | D LOG^PRCHAAC2 ;log record of outgoing message to the AAC | 
|---|
| 139 | ; Keep track of any error found | 
|---|
| 140 | I $P(PRCRSULT,U,2,3)]"",+PRCMID=0 D | 
|---|
| 141 | . S PRCMID=$P(PRCRSULT,U,2,3) | 
|---|
| 142 | . S PRCERR=1 | 
|---|
| 143 | . D REC^PRCHAAC2 | 
|---|
| 144 | K HLA,HL,HLFS,HLCS,HLRS | 
|---|
| 145 | Q | 
|---|