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