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

AGMPHLVQ.m

Go to the documentation of this file.
  1. AGMPHLVQ ; IHS/SD/TPF - MPI VQQ-Q02 ACK PROCESSOR FOR HLO ; 12/15/2007
  1. ;;7.2;IHS PATIENT REGISTRATION;**1,3,6**;MAY 20, 2010;Build 23
  1. Q
  1. PROC(HLMSGIEN) ;EP - CALLED FROM AGMPIBGP
  1. ; 9/07/2017 - GCD - CR 7693 - Disabled VQQ processing. Mark the message complete so it will purge.
  1. D MSGCMPLT^AGMPIBGP(HLMSGIEN)
  1. Q
  1. ;
  1. N DATA,HLMSTATE,MSGID,MSGSEG,ICNEUID
  1. D PARSE(.DATA,HLMSGIEN,.HLMSTATE)
  1. S DFN=DATA(3,4,3,1,1)
  1. S ACKIEN=HLMSGIEN
  1. ;05/29/2013 - KJH - TFS8067 - Removed 'RESEND' checks which were looking at the ^HLA global using the IEN for the ^HLB global.
  1. S HLMSGIEN=$P($G(^HLB(HLMSGIEN,0)),U,2)
  1. ;WE NEED TO SEND AN A28 NO MATTER WHAT THE REPSONSE IS TO TRIGGER
  1. ;THE MFN BEING SENT OUT TO LINKED FACILTIES
  1. ;I $G(DATA(2,3,1,1,1))="NF" D Q ;EXACT MATCH NOT FOUND FOR PATIENT SO REQUEST ADD TO MPI
  1. D CREATMSG^AGMPIHLO(DFN,"A28",,.SUCCESS)
  1. I 'SUCCESS D NOTIF^AGMPIHLO(DFN,"Unable to create A28 to add patient to MPI from AGMPHLVQ") Q
  1. D MSGCMPLT^AGMPIBGP(ACKIEN)
  1. D MSGCMPLT^AGMPIBGP(HLMSGIEN)
  1. ;05/29/2013 - KJH - TFS8109 - This was causing an extra message to be sent to EDR.
  1. ;S X="AG UPDATE A PATIENT",DIC=101,INDA=DFN
  1. ;D EN^XQOR
  1. ;END IF
  1. S ICNEUID=$G(DATA(3,4,1,1,1)) ;ICN (VA MPI) OR EUID (SUN MPI)
  1. I ICNEUID="" D NOTIF^AGMPIHLO(DFN,"ICNEUID PULLED FROM DATA(3,4,1,1,1) WAS EMPTY. NOT CALLING ADDICN") Q
  1. D ADDICN(ICNEUID,DFN)
  1. Q
  1. ;
  1. PARSE(DATA,MIEN,HLMSTATE) ;EP
  1. N SEG,CNT
  1. Q:'$$STARTMSG^HLOPRS(.HLMSTATE,MIEN)
  1. M DATA("HDR")=HLMSTATE("HDR")
  1. S CNT=0
  1. F Q:'$$NEXTSEG^HLOPRS(.HLMSTATE,.SEG) D
  1. .S CNT=CNT+1
  1. .M DATA(CNT)=SEG
  1. Q
  1. ;
  1. PROCFAC(ASSOCFAC) ;EP - ADD MPI LINKED FACILTIES TO 'TREATING FACILITY LIST' FILE
  1. K DIC,DIE,DR,DIR,DA,PTDFN,FAC,SYSCODE,LOCID
  1. S LOCDFN=DFN
  1. S DIC(0)="L"
  1. S DIC="^DGCN(391.91,"
  1. S X=LOCDFN
  1. S DIC(0)="LQZ"
  1. F FAC=1:1 S SYSLOCID=$P(ASSOCFAC,"|",FAC) Q:'SYSLOCID D
  1. .S SYSCODE=$P(SYSLOCID,"~") ;SYSTEM CODE (SUN MPI) OR STATION NUMBER (RPMS & VA) (ORIGINAL DEVELOPMENT USED UNIQUE DB ID)
  1. .S LOCID=$P(SYSLOCID,"~",2) ;LOCAL ID (SUN MPI) OR DFN (RPMS & VA)
  1. .S TFAC=$O(^DIC(4,"D",SYSCODE,"")) ;TREATING FAC PTR
  1. .S DIC("DR")=".02///`"_TFAC
  1. .S DIC("DR")=DIC("DR")_";9999999.01////^S X=LOCID"
  1. .K DD,DO
  1. .D FILE^DICN
  1. .Q:Y<0
  1. Q
  1. ;
  1. ADDICN(AGICN,DFN) ;EP - ADD TO 'INTEGRATED CONTROL NUMBER' FIELD
  1. K DIE,DIC,DA,DR,DIR
  1. S DIE="^DPT("
  1. S DA=DFN
  1. S RGRSICN=1
  1. S DR="991.01///^S X=AGICN"
  1. D ^DIE
  1. ;ERROR LOG??
  1. Q
  1. ;
  1. MSGERR(LOCALID,HLMTIEN,ERRIEN) ;EP - EROR OCURRED IN VQQ ACK
  1. D NOW^%DTC
  1. S AGERROR="LOCALID: "_LOCALID_" -1^SUN MPI ACK RETURN ERR"
  1. ;06/04/2013 - DMB - Routine does not exist. Removing call.
  1. ; MSGERR does not seem to be called so no functionality seems to be removed
  1. ;D MAIL^AGMPILD(AGERROR,%,"VQQ",HLMTIEN,ERRIEN) ;SEND ERROR MAIL MESSAGE
  1. Q