Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: MPIFACHK

MPIFACHK.m

Go to the documentation of this file.
  1. MPIFACHK ;CMC/BP-ACKNOWLEDGEMENT CHECK ;JULY 8, 2002
  1. ;;1.0; MASTER PATIENT INDEX VISTA ;**22**;30 Apr 99
  1. ;
  1. ; Integration Agreements Utilized:
  1. ; START, STOP, EXC^RGHLLOG - #2796
  1. ;
  1. EN(RETURN,BEFORE) ; CHECKING FOR "A" FOR XTMP("MPIFA.. NODES that happened before FM date BEFORE
  1. ;RPC - RETURN will have 0 if no messages need to be resent OR 1 if there are some resent.
  1. ;
  1. N DFN2,TAG,MPIFHL,ICN,ICN2 K MPIFMSG
  1. M MPIFHL=HL ;need to save hl variables to avoid undefined errors when returning to RPC.
  1. S MPIFMSG="MPIFA",RETURN=0
  1. F S MPIFMSG=$O(^XTMP(MPIFMSG)) Q:$E(MPIFMSG,1,5)'="MPIFA" D
  1. .Q:$P(^XTMP(MPIFMSG,0),"^",2)>BEFORE
  1. .I $E(MPIFMSG,1,7)="MPIFA40" D
  1. ..S DFN2=$O(^XTMP(MPIFMSG,0))
  1. ..Q:DFN2=""
  1. ..I $G(^XTMP(MPIFMSG,DFN2,"MPI",0))="A" D
  1. ...S ICN=$G(^XTMP(MPIFMSG,DFN2,"MPI",1))
  1. ...S ICN2=$P(ICN,"^",2),MSGN=$P(ICN,"^",3),ICN=$P(ICN,"^")
  1. ...S RETURN=1
  1. ...D START^RGHLLOG()
  1. ...D EXC^RGHLLOG(208,"Merge msg A40 for TO record ICN1= "_ICN_" FROM record ICN2= "_ICN2_". HL7 msg id= "_MSGN_" No ACK received back")
  1. ...D STOP^RGHLLOG()
  1. ..K ^XTMP(MPIFMSG)
  1. .Q:MPIFMSG["A40"
  1. .Q:'$D(^XTMP(MPIFMSG,"MPI",0))
  1. .I $G(^XTMP(MPIFMSG,"MPI",0))="A" D
  1. ..S TAG=$E(MPIFMSG,5,7)
  1. ..D @TAG S RETURN=1
  1. K MPIFMSG
  1. M HL=MPIFHL
  1. ;
  1. S MPIFMSG="RGA"
  1. F S MPIFMSG=$O(^XTMP(MPIFMSG)) Q:$E(MPIFMSG,1,3)'="RGA" D
  1. .Q:$P(^XTMP(MPIFMSG,0),"^",2)>BEFORE
  1. .Q:'$D(^XTMP(MPIFMSG,"MPI",0))
  1. .I $G(^XTMP(MPIFMSG,"MPI",0))="A" D
  1. ..S TAG=$E(MPIFMSG,3,5)
  1. ..I TAG="A01"!(TAG="A03")!(TAG="A04")!(TAG="A08") S TAG="A31"
  1. ..D @TAG S RETURN=1
  1. K MPIFMSG
  1. M HL=MPIFHL
  1. Q
  1. ;
  1. A28 ;
  1. K ^XTMP(MPIFMSG)
  1. N NUM
  1. S NUM=$$A28^MPIFA28(+$P(MPIFMSG,"%",2))
  1. Q
  1. A31 ;
  1. K ^XTMP(MPIFMSG)
  1. N NUM
  1. S NUM=$$A31^MPIFA31B(+$P(MPIFMSG,"%",2))
  1. Q
  1. A29 ;
  1. K ^XTMP(MPIFMSG)
  1. N ICN,MSGN
  1. S ICN=$G(^XTMP(MPIFMSG,"MPI",1)),MSGN=$P(ICN,"^",2),ICN=$P(ICN,"^")
  1. D START^RGHLLOG()
  1. D EXC^RGHLLOG(208,"Inactivate msg A29 for DFN= "_$P(MPIFMSG,"%",2)_" with ICN= "_ICN_" original HL7 msg id= "_MSGN_" No ACK received back",$P(MPIFMSG,"%",2))
  1. D STOP^RGHLLOG()
  1. Q
  1. A24 ;
  1. K ^XTMP(MPIFMSG)
  1. N NUM
  1. S NUM=$$A24^MPIFA24B(+$P(MPIFMSG,"%",2))
  1. Q