| [613] | 1 | MPIFQUE5 ;SF/TNV-Process the RESULT from CMOR COMPARISON request ;FEB 20, 1998 | 
|---|
|  | 2 | ;;1.0; MASTER PATIENT INDEX VISTA ;**1,6,11**;30 Apr 99 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | ; Integration Agreements Utilized: | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | ;  EXC^RGHLLOG     IA #2796 | 
|---|
|  | 7 | ;  START^RGHLLOG   IA #2796 | 
|---|
|  | 8 | ;  STOP^RGHLLOG    IA #2796 | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | ; This routine will process the message from the CMOR site to change | 
|---|
|  | 11 | ; the CMOR as a result of a change cmor request | 
|---|
|  | 12 | ; | 
|---|
|  | 13 | EN ; Entry point for process the update of CMOR | 
|---|
|  | 14 | N U,LINE,IKI,ERROR,RGL,RGLOG | 
|---|
|  | 15 | S U="^" | 
|---|
|  | 16 | D START^RGHLLOG() | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | N MPII,U,LINE,ERROR,PARENT,COUNT,NDATE,IKI,MPIFFS,MPIFSFS,MPIFREAP,RGLOG | 
|---|
|  | 19 | F MPII=1:1 X HLNEXT Q:HLQUIT'>0  D | 
|---|
|  | 20 | . S LINE=HLNODE | 
|---|
|  | 21 | . I $P(LINE,HL("FS"))["MSH" D MSH | 
|---|
|  | 22 | . I $P(LINE,HL("FS"))["PV1" D PV1 | 
|---|
|  | 23 | . I $P(LINE,HL("FS"))["PID" D PID | 
|---|
|  | 24 | I $G(ERROR)]"" D ACK Q          ; Any problems before changing the CMOR | 
|---|
|  | 25 | I ($G(SITE)]"")&($G(DFN)]"") D CHANGE | 
|---|
|  | 26 | I $G(SITE)=""!($G(DFN)="") D | 
|---|
|  | 27 | .S ERROR="Missing new CMOR or Patient to be changed" | 
|---|
|  | 28 | .D EXC^RGHLLOG(219,ERROR_" for change CMOR request HL7 msg "_$G(HL("MID"))) | 
|---|
|  | 29 | D ACK | 
|---|
|  | 30 | Q | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | MSH ; Process MSH segment | 
|---|
|  | 33 | I $P(LINE,HL("FS"),16)="AL" S ACK="YES" | 
|---|
|  | 34 | I $P(LINE,HL("FS"),16)="ER" S ACK="ERROR" | 
|---|
|  | 35 | Q | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | PV1 ; Process PV1 segment | 
|---|
|  | 38 | S SITE=$P(LINE,HL("FS"),4) | 
|---|
|  | 39 | I SITE="" S ERROR="Missing CMOR site number in Change CMOR message for ICN "_ICN_" HL7 msg# "_$G(HL("MID")) D EXC^RGHLLOG(221,ERROR) | 
|---|
|  | 40 | Q | 
|---|
|  | 41 | NTE ; Process NTE segment | 
|---|
|  | 42 | S SITE=$P(LINE,HL("FS"),8) | 
|---|
|  | 43 | I SITE="" S ERROR="Missing CMOR site number in Change CMOR message for ICN "_ICN_" HL7 msg# "_$G(HL("MID")) D EXC^RGHLLOG(221,ERROR) | 
|---|
|  | 44 | Q | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | PID ; Process PID segment | 
|---|
|  | 47 | S ICN=+$P(LINE,HL("FS"),3)                  ; get ICN out. | 
|---|
|  | 48 | I ICN<1 S ERROR="Missing Patient ICN in Change CMOR message HL7 msg# "_$G(HL("MID")) D EXC^RGHLLOG(219,ERROR) Q | 
|---|
|  | 49 | S DFN=$$IEN^MPIFNQ(ICN)                  ; get DFN of this patient | 
|---|
|  | 50 | I DFN="" S ERROR="ICN "_ICN_" not found from Change CMOR message HL7 msg# "_$G(HL("MID")) D EXC^RGHLLOG(219,ERROR) Q | 
|---|
|  | 51 | Q | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | CHANGE ; Process the change CMOR to the new CMOR site (YOUR SITE NOW) | 
|---|
|  | 54 | S DIC="^DIC(4,",DIC(0)="QMOZX",X=SITE D ^DIC K DIC          ; Figure out | 
|---|
|  | 55 | I Y=-1 S ERROR="CMOR Site name is not on file for Station Number "_SITE_" processing Change CMOR msg for ICN "_ICN D EXC^RGHLLOG(211,ERROR,DFN) Q            ; the CMOR site | 
|---|
|  | 56 | S CHANGE=$$CHANGE^MPIF001(+DFN,+Y)              ; name and change | 
|---|
|  | 57 | I +CHANGE=-1 S ERROR="Unable to update CMOR for site "_SITE_". For DFN "_DFN_" Processing CHANGE CMOR message "_HLMTIEN D EXC^RGHLLOG(211,ERROR,DFN) | 
|---|
|  | 58 | Q | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | ACK ; Clean up the partition. | 
|---|
|  | 61 | ; | 
|---|
|  | 62 | D STOP^RGHLLOG() | 
|---|
|  | 63 | K X,Y,DFN,ICN,SITE,MPIFREAP,ACK,PARENT,CHANGE | 
|---|
|  | 64 | Q | 
|---|