[613] | 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
|
---|