Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/INTEGRATED_BILLING-IB-PRQ--IBD--IBQ--PRQS/IBCEST1.m

    r613 r623  
    1 IBCEST1 ;ALB/ESG - IB 837 EDI Status Message Processing Cont ;18-JUL-2005
    2         ;;2.0;INTEGRATED BILLING;**320,397**;21-MAR-94;Build 3
    3         ;;Per VHA Directive 2004-038, 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         ;
    34 SCODE(Z0)       ; status code for message
    35         N IBFD,IBI,IBRD S IBFD=0
    36         F IBI=1:1 S IBRD=$P($T(CODE+IBI),";;",2,999) Q:IBRD=""!IBFD  D
    37         . I IBRD[Z0 S IBFD=1
    38         Q IBFD
    39         ;
    40 CODE    ; *397
    41         ;;A3^AC^A7^A8^AA^2P^10^11
    42         ;;19^20^21^30^40^221^960^1AE^1AF^1AG^1AI^1AJ^1AK^1AL^1AS^1BS^1BV^1BY
    43         ;;2B^2D^2H^2M^2U^3A^3C^3E^3F^3G^3I^3K^3L^3N^3P^3S
    44         ;;4B^4C^4D^4E^4H^4I^4J^4P^4S^4T^4U^4X^4Y^7A^7D^7I^7U^7V
    45         ;;A0^A9^ACCEPT^ACCEPTED^AE^AP^APPROVE^C01^CI^CP^CTRL!99001^INQUIRY
    46         ;;OA7^OAH^OAI^OAK^OAT^OAV^OAY^OAZ^OB9^OBX^OCU^PG^PN5
    47         ;;TE^W!00000117^Z3^ZAI^ZAN
    48         ;
     1IBCEST1 ;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 ;
     7CHKSUM(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 ;
     30EXT(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 ;
Note: See TracChangeset for help on using the changeset viewer.