| 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
 | 
|---|