| [613] | 1 | MPIFACHK ;CMC/BP-ACKNOWLEDGEMENT CHECK ;JULY 8, 2002 | 
|---|
|  | 2 | ;;1.0; MASTER PATIENT INDEX VISTA ;**22**;30 Apr 99 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | ; Integration Agreements Utilized: | 
|---|
|  | 5 | ;   START, STOP, EXC^RGHLLOG - #2796 | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | EN(RETURN,BEFORE) ; CHECKING FOR "A" FOR XTMP("MPIFA.. NODES that happened before FM date BEFORE | 
|---|
|  | 8 | ;RPC - RETURN will have 0 if no messages need to be resent OR 1 if there are some resent. | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | N DFN2,TAG,MPIFHL,ICN,ICN2 K MPIFMSG | 
|---|
|  | 11 | M MPIFHL=HL ;need to save hl variables to avoid undefined errors when returning to RPC. | 
|---|
|  | 12 | S MPIFMSG="MPIFA",RETURN=0 | 
|---|
|  | 13 | F  S MPIFMSG=$O(^XTMP(MPIFMSG)) Q:$E(MPIFMSG,1,5)'="MPIFA"  D | 
|---|
|  | 14 | .Q:$P(^XTMP(MPIFMSG,0),"^",2)>BEFORE | 
|---|
|  | 15 | .I $E(MPIFMSG,1,7)="MPIFA40" D | 
|---|
|  | 16 | ..S DFN2=$O(^XTMP(MPIFMSG,0)) | 
|---|
|  | 17 | ..Q:DFN2="" | 
|---|
|  | 18 | ..I $G(^XTMP(MPIFMSG,DFN2,"MPI",0))="A" D | 
|---|
|  | 19 | ...S ICN=$G(^XTMP(MPIFMSG,DFN2,"MPI",1)) | 
|---|
|  | 20 | ...S ICN2=$P(ICN,"^",2),MSGN=$P(ICN,"^",3),ICN=$P(ICN,"^") | 
|---|
|  | 21 | ...S RETURN=1 | 
|---|
|  | 22 | ...D START^RGHLLOG() | 
|---|
|  | 23 | ...D EXC^RGHLLOG(208,"Merge msg A40 for TO record ICN1= "_ICN_" FROM record ICN2= "_ICN2_". HL7 msg id= "_MSGN_" No ACK received back") | 
|---|
|  | 24 | ...D STOP^RGHLLOG() | 
|---|
|  | 25 | ..K ^XTMP(MPIFMSG) | 
|---|
|  | 26 | .Q:MPIFMSG["A40" | 
|---|
|  | 27 | .Q:'$D(^XTMP(MPIFMSG,"MPI",0)) | 
|---|
|  | 28 | .I $G(^XTMP(MPIFMSG,"MPI",0))="A" D | 
|---|
|  | 29 | ..S TAG=$E(MPIFMSG,5,7) | 
|---|
|  | 30 | ..D @TAG S RETURN=1 | 
|---|
|  | 31 | K MPIFMSG | 
|---|
|  | 32 | M HL=MPIFHL | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | S MPIFMSG="RGA" | 
|---|
|  | 35 | F  S MPIFMSG=$O(^XTMP(MPIFMSG)) Q:$E(MPIFMSG,1,3)'="RGA"  D | 
|---|
|  | 36 | .Q:$P(^XTMP(MPIFMSG,0),"^",2)>BEFORE | 
|---|
|  | 37 | .Q:'$D(^XTMP(MPIFMSG,"MPI",0)) | 
|---|
|  | 38 | .I $G(^XTMP(MPIFMSG,"MPI",0))="A" D | 
|---|
|  | 39 | ..S TAG=$E(MPIFMSG,3,5) | 
|---|
|  | 40 | ..I TAG="A01"!(TAG="A03")!(TAG="A04")!(TAG="A08") S TAG="A31" | 
|---|
|  | 41 | ..D @TAG S RETURN=1 | 
|---|
|  | 42 | K MPIFMSG | 
|---|
|  | 43 | M HL=MPIFHL | 
|---|
|  | 44 | Q | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | A28 ; | 
|---|
|  | 47 | K ^XTMP(MPIFMSG) | 
|---|
|  | 48 | N NUM | 
|---|
|  | 49 | S NUM=$$A28^MPIFA28(+$P(MPIFMSG,"%",2)) | 
|---|
|  | 50 | Q | 
|---|
|  | 51 | A31 ; | 
|---|
|  | 52 | K ^XTMP(MPIFMSG) | 
|---|
|  | 53 | N NUM | 
|---|
|  | 54 | S NUM=$$A31^MPIFA31B(+$P(MPIFMSG,"%",2)) | 
|---|
|  | 55 | Q | 
|---|
|  | 56 | A29 ; | 
|---|
|  | 57 | K ^XTMP(MPIFMSG) | 
|---|
|  | 58 | N ICN,MSGN | 
|---|
|  | 59 | S ICN=$G(^XTMP(MPIFMSG,"MPI",1)),MSGN=$P(ICN,"^",2),ICN=$P(ICN,"^") | 
|---|
|  | 60 | D START^RGHLLOG() | 
|---|
|  | 61 | 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)) | 
|---|
|  | 62 | D STOP^RGHLLOG() | 
|---|
|  | 63 | Q | 
|---|
|  | 64 | A24 ; | 
|---|
|  | 65 | K ^XTMP(MPIFMSG) | 
|---|
|  | 66 | N NUM | 
|---|
|  | 67 | S NUM=$$A24^MPIFA24B(+$P(MPIFMSG,"%",2)) | 
|---|
|  | 68 | Q | 
|---|