| 1 | IBCEST1 ;ALB/ESG - IB 837 EDI Status Message Processing Cont ;18-JUL-2005 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**320**;21-MAR-94 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | Q | 
|---|
| 6 | ; | 
|---|
| 7 | CHKSUM(IBARRAY) ; Incoming 277STAT status message checksum calculation | 
|---|
| 8 | ; This function calculates the checksum of the raw 277stat data from | 
|---|
| 9 | ; the data in array IBARRAY.  This is done to prevent duplicates. | 
|---|
| 10 | ; Input parameter IBARRAY is the array reference where the data exists | 
|---|
| 11 | ;    at @IBARRAY@(n,0) where n is a sequential # | 
|---|
| 12 | ; For file 364.2, IBARRAY = "^IBA(364.2,IBTDA,2)" where IBTDA = the ien | 
|---|
| 13 | ;    of the entry in file 364.2 being evaluated | 
|---|
| 14 | ; | 
|---|
| 15 | NEW Y,LN,DATA,IBREC,POS,STSFLG | 
|---|
| 16 | S Y=0,STSFLG=0 | 
|---|
| 17 | S LN=0 | 
|---|
| 18 | F  S LN=$O(@IBARRAY@(LN)) Q:'LN  D | 
|---|
| 19 | . S DATA=$$EXT($G(@IBARRAY@(LN,0))) Q:DATA="" | 
|---|
| 20 | . S IBREC=$P(DATA,U,1) | 
|---|
| 21 | . I IBREC="277STAT" S STSFLG=1 Q      ; set the STS flag | 
|---|
| 22 | . I IBREC<1 Q             ; rec# too low | 
|---|
| 23 | . I IBREC'<99 Q           ; rec# too high | 
|---|
| 24 | . F POS=1:1:$L(DATA) S Y=Y+($A(DATA,POS)*POS) | 
|---|
| 25 | . Q | 
|---|
| 26 | ; | 
|---|
| 27 | I 'STSFLG S Y=0   ; if this array is not a 277stat message | 
|---|
| 28 | Q Y | 
|---|
| 29 | ; | 
|---|
| 30 | EXT(DATA) ; Extracts from the text in DATA if the text contains | 
|---|
| 31 | ;  "##RAW DATA: " | 
|---|
| 32 | Q $S(DATA["##RAW DATA: ":$P(DATA,"##RAW DATA: ",2,99),1:DATA) | 
|---|
| 33 | ; | 
|---|