[613] | 1 | BPSJHLI ;BHAM ISC/LJF - Incoming HL7 E-PHARM messages ;21-NOV-2003
|
---|
| 2 | ;;1.0;E CLAIMS MGMT ENGINE;**1**;JUN 2004
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | ;**Program Description**
|
---|
| 6 | ; This program processes incoming HL7 message.
|
---|
| 7 | ;
|
---|
| 8 | EN ; Starting point - put message into a TMP global
|
---|
| 9 | N SEGCNT,CNT,SEGMT,EVENT,MSG,MCT,FSHLI
|
---|
| 10 | ;
|
---|
| 11 | K ^TMP($J,"BPSJHLI") S MCT=0
|
---|
| 12 | F SEGCNT=1:1 X HLNEXT Q:HLQUIT'>0 D
|
---|
| 13 | . S CNT=0,^TMP($J,"BPSJHLI",SEGCNT,CNT)=HLNODE
|
---|
| 14 | . F S CNT=$O(HLNODE(CNT)) Q:'CNT D
|
---|
| 15 | .. S ^TMP($J,"BPSJHLI",SEGCNT,CNT)=HLNODE(CNT)
|
---|
| 16 | ;
|
---|
| 17 | ; Check MSH seg
|
---|
| 18 | S SEGMT=$G(^TMP($J,"BPSJHLI",1,0))
|
---|
| 19 | S FSHLI=$G(HL("FS")) I FSHLI="" S (FS,FSHLI)=$E(SEGMT,4)
|
---|
| 20 | ;
|
---|
| 21 | I $E(SEGMT,1,3)'="MSH" D D MSG^BPSJUTL(.MSG,"BPSJHLI") G EXIT
|
---|
| 22 | . S MCT=MCT+1,MSG(MCT)="MSH Segment is not the first segment found"
|
---|
| 23 | ;
|
---|
| 24 | S EVENT=$P(SEGMT,FSHLI,9)
|
---|
| 25 | ;
|
---|
| 26 | ; Acknowledgement Processing
|
---|
| 27 | I EVENT="MFK^M01" D EN^BPSJACK(.HL) G EXIT
|
---|
| 28 | ;
|
---|
| 29 | ; Table Update Processing for Payer Sheets
|
---|
| 30 | I EVENT="MFN^M01" D
|
---|
| 31 | . S HL("HLMTIENS")=$G(HLMTIENS)
|
---|
| 32 | . D EN^BPSJHLT(.HL)
|
---|
| 33 | ;
|
---|
| 34 | EXIT ;
|
---|
| 35 | K ^TMP($J,"BPSJHLI"),SEGCNT,CNT,HL,HLREC,HLNEXT,HLNODE
|
---|
| 36 | Q
|
---|