[613] | 1 | DGHTXREF ;ALB/JRC - Home Telehealth HL7 Message Monitoring Routine ;10 January 2005 ; 9/12/06 2:02pm
|
---|
| 2 | ;;5.3;Registration;**644**;Aug 13, 1993;Build 11
|
---|
| 3 | ;
|
---|
| 4 | ;This routine is called to set or remove cross references on
|
---|
| 5 | ;file Home Telehealth Patient file (#391.31)
|
---|
| 6 | ;
|
---|
| 7 | SETXREF(MSGID,SET,TYPE) ;Logic for "HTHNOACK" cross references of
|
---|
| 8 | ; HOME TELEHEALTH PATIENT file (#391.31)
|
---|
| 9 | ;
|
---|
| 10 | ;Input : MSGID - HL7 Message ID
|
---|
| 11 | ; SET - If 1, set cross reference
|
---|
| 12 | ; If 0, kill cross reference
|
---|
| 13 | ; TYPE - If 1, set triggered by tasked job
|
---|
| 14 | ; If 0, set triggered by manual process
|
---|
| 15 | ; demands special processing
|
---|
| 16 | ; OLDMSGID - If there is an old message id
|
---|
| 17 | ; xref needs to be removed.
|
---|
| 18 | ;
|
---|
| 19 | ;Output : None
|
---|
| 20 | ;
|
---|
| 21 | ;Check input
|
---|
| 22 | Q:'$G(MSGID)!'$G(SET)
|
---|
| 23 | ;Check hl7 message, if status=3 make sure no xref exist and quit
|
---|
| 24 | I +$$MSGSTAT^HLUTIL(MSGID)=3 D KILLXREF(MSGID) Q
|
---|
| 25 | ;Declare variables
|
---|
| 26 | N RECORD,TRANS,NODE0,TNODE,EVNTDATE,ACKCODE,CNT
|
---|
| 27 | ;Set date and count if exist
|
---|
| 28 | S EVNTDATE=$G(DGDATE),CNT=$S($G(DGCOUNT)'="":DGCOUNT+1,1:0)
|
---|
| 29 | ;Get ien and sien of hth patient record and set nodes
|
---|
| 30 | S RECORD=$O(^DGHT(391.31,"D",MSGID,0)) Q:'RECORD
|
---|
| 31 | S TRANS=$O(^DGHT(391.31,"D",MSGID,RECORD,0)) Q:'TRANS
|
---|
| 32 | S NODE0=$G(^DGHT(391.31,RECORD,0)),TNODE=$G(^("TRAN",TRANS,0))
|
---|
| 33 | ;Check HTH file (#391.31) for AA, if so kill xref and quit
|
---|
| 34 | I ($P(TNODE,U,6)'="")!($P(TNODE,U,7)'="") D KILLXREF(MSGID) Q
|
---|
| 35 | ;Get event date/time
|
---|
| 36 | S EVNTDATE=$S(TYPE=1:DGDATE,TYPE=0:$P(TNODE,U,1),1:"")
|
---|
| 37 | ;No event date/time - don't set x-ref
|
---|
| 38 | Q:('EVNTDATE)
|
---|
| 39 | ;Kill old xref if exist, then set the new xref
|
---|
| 40 | D KILLXREF(MSGID)
|
---|
| 41 | S ^DGHT(391.31,"HTHNOACK",MSGID,RECORD,TRANS)=CNT_U_EVNTDATE
|
---|
| 42 | Q
|
---|
| 43 | ;
|
---|
| 44 | KILLXREF(MSGID) ;Kill x-ref
|
---|
| 45 | K ^DGHT(391.31,"HTHNOACK",MSGID)
|
---|
| 46 | Q
|
---|