[613] | 1 | DGQEHL71 ;ALB/JFP - VIC Single HL7 Message Builder;09/01/96
|
---|
| 2 | ;;V5.3;REGISTRATION;**73**;DEC 11,1996
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | EVENT(DGQEEVN,DFN) ; Entry point
|
---|
| 6 | ;This option is the main entry point for the ID card driver.
|
---|
| 7 | ;All VIC events will processed through this routine.
|
---|
| 8 | ;
|
---|
| 9 | ;Input : DGQEEVN - HL7 event type to process
|
---|
| 10 | ; DFN - pointer to Patient file (#2)
|
---|
| 11 | ;
|
---|
| 12 | ;Output : Message ID in file 772 sucessful
|
---|
| 13 | ; -1^error text
|
---|
| 14 | ;
|
---|
| 15 | ; -- Check parameters
|
---|
| 16 | Q:'$D(DGQEEVN) "-1^Required parameter not passed - event type"
|
---|
| 17 | Q:'$D(DFN) "-1^Required parameter not passed - DFN"
|
---|
| 18 | ; -- Declare variables
|
---|
| 19 | N STATUS,HL7XMIT,CNT,INCREM
|
---|
| 20 | N HLECH,HLEID,HLFS,HLMTIEN,HLRESLT,HLSAN
|
---|
| 21 | N CLERK,OPT,SAPPL,RAPPL,MID
|
---|
| 22 | S STATUS=0
|
---|
| 23 | ;
|
---|
| 24 | EVNA08 ; -- A08 Update patient information for VIC
|
---|
| 25 | I DGQEEVN="A08" D Q STATUS
|
---|
| 26 | .D A08
|
---|
| 27 | Q "-1^No mumps code for event type "_DGQEEVN
|
---|
| 28 | ;
|
---|
| 29 | A08 ; -- Builds update patient record
|
---|
| 30 | ; -- Initialize variables
|
---|
| 31 | ;
|
---|
| 32 | ; -- Get pointer to sending event
|
---|
| 33 | S HLEID=+$O(^ORD(101,"B","DGQE HL7 A08 VIC SERVER",0))
|
---|
| 34 | ; -- Check existance of event, send error bulletin, done
|
---|
| 35 | I ('HLEID) D Q
|
---|
| 36 | .S STATUS="-1^Unable to initialize HL7 variables - protocol not found"
|
---|
| 37 | .D ERRBULL^DGQEHL70(STATUS) Q
|
---|
| 38 | ; -- Get variables from HL7 package
|
---|
| 39 | D INIT^HLFNC2(HLEID,.HL)
|
---|
| 40 | ; -- Check existance of HL variables, send error bulletin, done
|
---|
| 41 | I ($O(HL(""))="") S STATUS="-1^"_$P(HL,"^",2) D ERRBULL^DGQEHL70(STATUS) Q
|
---|
| 42 | S SAPPL=$S($D(HL("SAN")):$G(HL("SAN")),1:" ")
|
---|
| 43 | ; -- Set global array
|
---|
| 44 | S HL7XMIT="^TMP(""HLS"","_$J_")"
|
---|
| 45 | K @HL7XMIT
|
---|
| 46 | ; -- Build HL7 message, message header build by HL7 package
|
---|
| 47 | S CNT=0
|
---|
| 48 | S INCREM=$$BLDA08^DGQEHL73(DFN,.HL,"",HL7XMIT,CNT)
|
---|
| 49 | ; -- Check for error, increment less than 1
|
---|
| 50 | I (INCREM<0) D Q
|
---|
| 51 | .S STATUS="-1^"_$P(INCREM,"^",2)
|
---|
| 52 | .D ERRBULL^DGQEHL70(STATUS)
|
---|
| 53 | ; -- Send HL7 message - immediate priority
|
---|
| 54 | S HLP("PRIORITY")="I"
|
---|
| 55 | D GENERATE^HLMA(HLEID,"GM",1,.HLRESLT,"",.HLP)
|
---|
| 56 | ; -- Check for error
|
---|
| 57 | I ($P(HLRESLT,"^",2)'="") D Q
|
---|
| 58 | .S STATUS=$P(HLRESLT,"^",2)_"^"_$P(HLRESLT,"^",3)
|
---|
| 59 | .D ERRBULL^DGQEHL70(STATUS)
|
---|
| 60 | ; -- Successful call, message ID returned
|
---|
| 61 | S MID=$P(HLRESLT,"^",1)
|
---|
| 62 | I $D(JPTEST) W !,"Message ID = ",MID
|
---|
| 63 | ; -- Create tracking entry in ADT/HL7 TRANSMISSION file (#39.4)
|
---|
| 64 | S CLERK=$S(DUZ'="":$P($G(^VA(200,DUZ,0)),"^",1),1:" ")
|
---|
| 65 | S OPT=$S($D(XQY0):$P($G(XQY0),"^",1),1:" ")
|
---|
| 66 | S FILE=$$FILE^DGQEHL74(MID,DFN,CLERK,OPT,SAPPL)
|
---|
| 67 | I FILE=-1 D ERRBULL^DGQEHL70($P(FILE,"^",2)) Q
|
---|
| 68 | Q
|
---|
| 69 | ;
|
---|
| 70 | END ; -- End of code
|
---|
| 71 | Q
|
---|
| 72 | ;
|
---|