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

AGMPHLU2.m

Go to the documentation of this file.
  1. AGMPHLU2 ; IHS/SD/TPF - MPI HLO UTILITIES ; 12/15/2007
  1. ;;7.2;IHS PATIENT REGISTRATION;**1,6**;JAN 07, 2011;Build 23
  1. Q
  1. MSGSTAT ;UNSUCCESSFUL STATUS REPORT
  1. N MSGIEN,STATUS,STATTYP,CLEAR,EESC,TOTMSG,MSGDATE,TOTCLEAR,DATES
  1. ASKFROM ;EP
  1. K DIR
  1. S DIR(0)="DO^::E"
  1. S DIR("A")="Enter from Date"
  1. S DIR("B")="T"
  1. D ^DIR
  1. Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)!(Y="")
  1. S FROM=Y
  1. ASKTO ;EP
  1. K DIR
  1. S DIR(0)="DO^::E"
  1. S DIR("A")="Enter to Date"
  1. S DIR("B")="T"
  1. D ^DIR
  1. G:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)!(Y="") ASKFROM
  1. S TO=Y_".999999"
  1. I FROM>TO D G ASKFROM
  1. .W !!,"FROM DATE CAN NOT BE GREATER THAN TO DATE!!" H 2
  1. ASKCLEAR ;EP
  1. K DIR
  1. S DIR(0)="YO"
  1. S DIR("A")="Do you wish to set unsuccessful statuses to successful"
  1. S DIR("B")="N"
  1. D ^DIR
  1. G:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)!(Y="") ASKTO
  1. S CLEAR=Y
  1. REPEAT ;EP -
  1. S TYPEEVNT="" F S TYPEEVNT=$O(TYPEEVNT(TYPEEVNT)) Q:TYPEEVNT="" S TYPEEVNT(TYPEEVNT)=0
  1. S ESC=0
  1. D NOW^%DTC S Y=% X ^DD("DD") S PRTDATE=Y
  1. K DATES
  1. S $P(DASH,"-",81)=""
  1. S PAGE=1
  1. S (TOTMSG,TOTCLEAR)=0
  1. S MSGDATE=FROM-.01
  1. F S MSGDATE=$O(^HLA("B",MSGDATE)) Q:MSGDATE=""!(ESC) D
  1. .Q:+MSGDATE>TO!(+MSGDATE<FROM)
  1. .S REC=""
  1. .F S REC=$O(^HLA("B",MSGDATE,REC)) Q:REC="" D
  1. ..S LINK=$P($G(^HLB(REC,0)),U,5)
  1. ..Q:LINK'="MPI"
  1. ..S STATUS=$P($G(^HLB(REC,0)),U,20)
  1. ..Q:STATUS="SU"
  1. ..S DIREC=$P($G(^HLB(REC,0)),U,4)
  1. ..;Q:DIREC'="I" ;ONLY CARE ABOUT INcoming
  1. ..S TOTMSG=TOTMSG+1
  1. ..S DATES=$P(MSGDATE,".")
  1. ..S DATES(DATES)=$G(DATES(DATES))+1
  1. ..I CLEAR S $P(^HLB(REC,0),U,20)="SU" S TOTCLEAR=TOTCLEAR+1 Q
  1. ..S MSGBOD=$P($P($G(^HLB(REC,0)),U)," ",2)
  1. ..S MSGTYPE=$P($G(^HLA(MSGBOD,0)),U,3)
  1. ..S EVENT=$P($G(^HLA(MSGBOD,0)),U,4)
  1. ..S TYPEEVNT=EVENT_U_MSGTYPE
  1. ..S TYPEEVNT(TYPEEVNT)=$G(TYPEEVNT(TYPEEVNT))+1
  1. ..S SEG=$G(^HLA(MSGBOD,1,1,0))
  1. ..;W !!,MSGDATE
  1. ..;W !,REC," ",DIREC
  1. ..;W !,MSGTYPE," ",EVENT
  1. ..;W !,"SEGMENT: ",SEG
  1. D BYDTHDR
  1. S TYPEEVNT=""
  1. F CNT=1:1 S TYPEEVNT=$O(TYPEEVNT(TYPEEVNT)) Q:TYPEEVNT=""!ESC D
  1. .I CNT'=1,(FIRST'=$P(TYPEEVNT,U)) W !!
  1. .S FIRST=$P(TYPEEVNT,U)
  1. .W !,TYPEEVNT,?12,$J(TYPEEVNT(TYPEEVNT),10)
  1. .W:TOTMSG ?25,$J($FN(TYPEEVNT(TYPEEVNT)/TOTMSG*100,",",2),10)
  1. W !?16,"-------"
  1. W !?13,$J(TOTMSG,10)
  1. I CLEAR W !,"CLEARED: ",TOTCLEAR
  1. Q
  1. ;
  1. BYDTHDR ;EP - RPTBYDT HEADER
  1. W @IOF
  1. W !,$$C^XBFUNC("UNSUCCESSFUL MESSAGE REPORT BY DATE",IOM)
  1. W ?70,"PAGE ",PAGE
  1. W !,$$CJ^XLFSTR("DATE PRINTED: "_PRTDATE,IOM)
  1. W !,$$CJ^XLFSTR("PRINTED BY: "_$P($G(^VA(200,DUZ,0)),U),IOM)
  1. W !,$$CJ^XLFSTR("AT FACILITY: "_$P($G(^DIC(4,DUZ(2),0)),U),IOM)
  1. S Y=FROM X ^DD("DD") S EXFROM=Y
  1. S Y=TO X ^DD("DD") S EXTO=Y
  1. W !,$$CJ^XLFSTR("FOR MESSAGES FROM "_EXFROM_" TO "_EXTO,IOM)
  1. S DATES=""
  1. F S DATES=$O(DATES(DATES)) Q:'DATES D
  1. .S Y=DATES X ^DD("DD") S EXDATE=Y
  1. .W !,"TOTAL MSGS FOR ",EXDATE," IS ",DATES(DATES)
  1. W !,DASH,!!
  1. W !!,"EVENT^TYPE",?16,"TOTAL",?25,"% OF TOTAL"
  1. W !,"---------------------------------------"
  1. S PAGE=PAGE+1
  1. Q
  1. ;
  1. QUEVSENT ;EP - MSGS IN QUEUE VS TOTAL MSGS
  1. W @IOF
  1. N HLOG,PORT,MPILINK,REC,OUTCOUNT,TOTCOUNT,INCOUNT,MSGTYPE,EVENT,MPIIEN,ESC
  1. S ESC=0
  1. S HLOG=$O(^HLCS(870,"B","MPI","")) ;MPI LOGICAL LINK
  1. S PORT=$$GET1^DIQ(870,HLOG_",",400.08,"E") ;TCP/IP PORT (OPTIMIZED)
  1. S MPILINK="MPI:"_PORT
  1. S (TOTCOUNT,OUTCOUNT,INCOUNT)=0
  1. S TRANDATE=""
  1. F S TRANDATE=$O(^HLB("QUEUE","IN",TRANDATE)) Q:'TRANDATE D
  1. .S MSGTYPE=""
  1. .F S MSGTYPE=$O(^HLB("QUEUE","IN",TRANDATE,"RPMS-MPI",MSGTYPE)) Q:MSGTYPE="" D
  1. ..S EVENT=""
  1. ..F S EVENT=$O(^HLB("QUEUE","IN",TRANDATE,"RPMS-MPI",MSGTYPE,EVENT)) Q:EVENT="" D
  1. ...S MPIIEN=""
  1. ...F S MPIIEN=$O(^HLB("QUEUE","IN",TRANDATE,"RPMS-MPI",MSGTYPE,EVENT,MPIIEN)) Q:MPIIEN="" D
  1. ....S INCOUNT=INCOUNT+1
  1. S MPIIEN=""
  1. F S MPIIEN=$O(^HLB("QUEUE","OUT",MPILINK,"MPI RPMS",MPIIEN)) Q:'MPIIEN D
  1. .S OUTCOUNT=OUTCOUNT+1
  1. S MPIIEN=0
  1. F S MPIIEN=$O(^HLB(MPIIEN)) Q:'MPIIEN D
  1. .S LINK=$P($G(^HLB(MPIIEN,0)),U,5)
  1. .Q:LINK'="MPI"
  1. .S TOTCOUNT=TOTCOUNT+1
  1. W !!," MESSAGES IN THE IN QUEUE: ",$J($FN(INCOUNT,","),9)
  1. W !," MESSAGES IN OUT QUEUE: ",$J($FN(OUTCOUNT,","),9)
  1. W !,"TOTAL MESSAGES IN HLO GLOBALS: ",$J($FN(TOTCOUNT,","),9)
  1. I '$D(ZTQUEUED) D Q:ESC
  1. .U 0
  1. .W !
  1. .K DIR
  1. .S DIR(0)="E"
  1. .D ^DIR
  1. .S ESC=X=U
  1. I '$D(ZTQUEUED) G QUEVSENT
  1. Q