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

AGMPHL03.m

Go to the documentation of this file.
  1. AGMPHL03 ; IHS/SD/TPF - MPI ADT-A03 ACK PROCESSOR FOR HLO ; 12/15/2007
  1. ;;7.2;IHS PATIENT REGISTRATION;**1,6**;JAN 07, 2011;Build 23
  1. Q
  1. ;
  1. PROC(HLMSGIEN) ;EP - CALLED FROM AGMPIBGP
  1. N DATA,HLMSTATE,MSGID,MSGSEG,ICNEUID,RETCODE,NEXTSEG,RESEND,ORGHLMSG
  1. D PARSE(.DATA,HLMSGIEN,.HLMSTATE)
  1. D MSGCMPLT^AGMPIBGP(HLMSGIEN) ;SET THE ACK SUCCESSFUL
  1. ;NOW DO THE ORIGINATING MESSAGE
  1. S ORGHLMSG=HLMSGIEN ;PRESERVE HLMSGIEN THAT WAS PASSED
  1. S HLMSGIEN=$P($G(DATA(1,3,1,1,1))," ",2) ;MSG ID OF THE MSG THIS ACK IS RESPONDING TO
  1. I HLMSGIEN="" D Q
  1. .S ERROR="NO ORIGINATING MSG ID FOUND FOR HLMSGIEN '"_ORGHLMSG_"'"
  1. .D NOTIF^AGMPIHLO(ORGHLMSG,ERROR)
  1. S HLMSGIEN=$P($G(^HLB(HLMSGIEN,0)),U,2) ;GET THE CORRECT ORIGINATING MESSAGE
  1. D MSGCMPLT^AGMPIBGP(HLMSGIEN)
  1. Q
  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. ;THIS CALL HANDLES ADMISSIONS (A01) AND DISCHARGES (A03)
  1. CREATE(DFN,DGPMT,DGPMCA,SUCCESS) ;EP - CREATE AND PLACE IN OUTGOING QUEUE
  1. ;CALLED BY PROTOCOL 'AGMP MPI ADMIT DISCHARG' WHICH SUBSCRIBES
  1. ;TO PROTOCOL 'BSDAM MOVEMENT EVENTS' FOR ADMISSIONS AND DISCHARGES
  1. ;DFN
  1. ;DGPMT = TYPE OF MOVEMENT
  1. ; 1 = ADMISSION
  1. ; 2 = WARD TRANSFER
  1. ; 3 = DISCHARGE
  1. ; 4 = CHECK-IN LODGER
  1. ; 5 = CHECK-OUT LODGER
  1. ; 6 = SERVICE TRANSFER
  1. ;
  1. ;DGPMDA = MOVEMENTS IFN
  1. ;DGPMCA = ADMISSION IFN
  1. ;
  1. Q:(U_1_U_3_U)'[(U_DGPMT_U)
  1. ;
  1. I $$DEMOPAT^AGMPHLU($G(DFN)) Q ; 9/13/2017 - GCD - CR 7713 - Don't upload demo patients.
  1. ;
  1. ;GET DATE OF ADMISSION OR DISCHARGE
  1. ;
  1. I $E(DGPMCA)="T" S SDT=$TR(DGPMCA,"T") ;CALL CAME FROM AGMPHLU
  1. E S SDT=$$GET1^DIQ(405,+DGPMCA_",",.01,"I")
  1. ;
  1. S SDT=$$CONDT^AGMPHLU(SDT) ;CONVERT DATE FOR MPI
  1. I DGPMT=1 D CREATMSG^AGMPIHLO(DFN,"A01",,.SUCCESS)
  1. E D CREATMSG^AGMPIHLO(DFN,"A03",,.SUCCESS)
  1. I 'SUCCESS D
  1. .S AGERROR="MPI DFN="_DFN_" :: "_"ERROR WHEN CREATING "_$S(DGPMT=1:"A01",1:"A03")
  1. .D NOTIF^AGMPIHLO(DFN,AGERROR)
  1. Q