[613] | 1 | PRCVBLD ;ISC-SF/GJW - Build fund balance notifications ; 6/6/05 1:12pm
|
---|
| 2 | ;;5.1;IFCAP;**81**;Oct 20, 2000
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | EN ;
|
---|
| 6 | ;
|
---|
| 7 | ;=============================================================
|
---|
| 8 | ;Format of input array (passed by name):
|
---|
| 9 | ;
|
---|
| 10 | ;array("1QBAL") = 1st quarter uncommited balance
|
---|
| 11 | ;array("2QBAL") = 2nd quarter uncommited balance
|
---|
| 12 | ;array("3QBAL") = 3rd quarter uncommited balance
|
---|
| 13 | ;array("4QBAL") = 4th quarter uncommited balance
|
---|
| 14 | ;array("FY") = fiscal year (2 or 4 digits)
|
---|
| 15 | ;array("TIME") = time of transaction (FM format)
|
---|
| 16 | ;array("FCP_NUM") = FCP number (only)
|
---|
| 17 | ;array("STAT") = station number
|
---|
| 18 | ;=============================================================
|
---|
| 19 | ;
|
---|
| 20 | BLD1(PRCVOBJ) ;simple build (fund balance notification)
|
---|
| 21 | N PRCVMSG,PROTOCOL,SEG,I,NOW,FCPEXT,ANIENS
|
---|
| 22 | N PRCVFS,PRCVCS,PRCVRS,PRCVES,PRCVSS
|
---|
| 23 | N $ES,$ET S $ET="ETRAP^PRCVBLD"
|
---|
| 24 | S PRCVMSG=$NA(^TMP("HLS",$J)) ;accumulate message here
|
---|
| 25 | S PROTOCOL="PRCV_DYNAMED_22_EV_FUND_BAL_DATA"
|
---|
| 26 | D INIT^HLFNC2(PROTOCOL,.HL)
|
---|
| 27 | I $G(HL) D Q ; error occurred
|
---|
| 28 | .; put error handler here for init failure
|
---|
| 29 | .S PRCVERR=$P(HL,2)
|
---|
| 30 | .S $EC=",U1_HL7_SYSTEM_ERROR,"
|
---|
| 31 | S PRCVFS=$G(HL("FS")) ;field separator
|
---|
| 32 | S PRCVCS=$E(HL("ECH"),1) ;component separator
|
---|
| 33 | S PRCVRS=$E(HL("ECH"),2) ;repetition separator
|
---|
| 34 | S PRCVES=$E(HL("ECH"),3) ;encoding character
|
---|
| 35 | S PRCVSS=$E(HL("ECH"),4) ;subcomponent separator
|
---|
| 36 | S ANIENS=$G(@PRCVOBJ@("FCP_NUM"))_","_$G(@PRCVOBJ@("STAT"))_","
|
---|
| 37 | S FCPEXT=$P($$GET1^DIQ(420.01,ANIENS,.01)," ",1)
|
---|
| 38 | ;MFI segment
|
---|
| 39 | S SEG="MFI"_PRCVFS_"420"_PRCVCS_"CP"_PRCVFS_PRCVFS_"UPD"_PRCVFS
|
---|
| 40 | S SEG=SEG_$$FMTHL7^XLFDT($$NOW^XLFDT)_PRCVFS_PRCVFS_"AL"
|
---|
| 41 | S @PRCVMSG@(1)=SEG
|
---|
| 42 | ;MFE segment
|
---|
| 43 | S SEG="MFE"_PRCVFS_"MUP"_PRCVFS_PRCVFS_PRCVFS
|
---|
| 44 | S SEG=SEG_FCPEXT_PRCVFS_"CE"
|
---|
| 45 | S @PRCVMSG@(2)=SEG
|
---|
| 46 | ;FT1 segment
|
---|
| 47 | S SEG="FT1"_PRCVFS_PRCVFS_PRCVFS_$$YEAR($G(@PRCVOBJ@("FY")))
|
---|
| 48 | S SEG=SEG_PRCVFS_$$FMTHL7^XLFDT($G(@PRCVOBJ@("TIME")))
|
---|
| 49 | S SEG=SEG_PRCVFS_PRCVFS_"BAL"_PRCVFS_"AVAIL_BAL"
|
---|
| 50 | S SEG=SEG_PRCVFS_PRCVFS_PRCVFS_PRCVFS
|
---|
| 51 | S SEG=SEG_+$G(@PRCVOBJ@("1QBAL"))_PRCVSS_"USD"_PRCVRS
|
---|
| 52 | S SEG=SEG_+$G(@PRCVOBJ@("2QBAL"))_PRCVSS_"USD"_PRCVRS
|
---|
| 53 | S SEG=SEG_+$G(@PRCVOBJ@("3QBAL"))_PRCVSS_"USD"_PRCVRS
|
---|
| 54 | S SEG=SEG_+$G(@PRCVOBJ@("4QBAL"))_PRCVSS_"USD"_PRCVFS
|
---|
| 55 | ;Assorted HL7 noise (not directly used by this interface)
|
---|
| 56 | S NOW=$$FMTHL7^XLFDT($$NOW^XLFDT)
|
---|
| 57 | F I=1:1:8 S SEG=SEG_PRCVFS
|
---|
| 58 | F I=1:1:16 S SEG=SEG_PRCVCS
|
---|
| 59 | S SEG=SEG_NOW_PRCVSS_NOW
|
---|
| 60 | S SEG=SEG_PRCVFS
|
---|
| 61 | F I=1:1:16 S SEG=SEG_PRCVCS
|
---|
| 62 | S SEG=SEG_NOW_PRCVSS_NOW
|
---|
| 63 | F I=1:1:3 S SEG=SEG_PRCVFS
|
---|
| 64 | F I=1:1:16 S SEG=SEG_PRCVCS
|
---|
| 65 | S SEG=SEG_NOW_PRCVSS_NOW
|
---|
| 66 | S @PRCVMSG@(3)=SEG
|
---|
| 67 | Q
|
---|
| 68 | ;
|
---|
| 69 | YEAR(PRCVY) ;Expand a (possibly) 2-digit year
|
---|
| 70 | I PRCVY'?2N Q PRCVY
|
---|
| 71 | Q $S(PRCVY>90:"19"_PRCVY,1:"20"_PRCVY)
|
---|
| 72 | ;
|
---|
| 73 | ;
|
---|
| 74 | ETRAP ;
|
---|
| 75 | D ^%ZTER
|
---|
| 76 | K PRCVERR ;We want this variable in the error trap
|
---|
| 77 | D UNWIND^%ZTER
|
---|
| 78 | Q
|
---|