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

BLRLA7QR.m

Go to the documentation of this file.
  1. BLRLA7QR ; IHS/MSC/MKK - LA7 MESSAGE QUEUE Reports ; 22-Oct-2013 09:22 ; MKK
  1. ;;5.2;LAB SERVICE;**1033**;Nov 1, 1997
  1. ;
  1. EEP ; Ersatz EP
  1. D EEP^BLRGMENU
  1. Q
  1. ;
  1. EP ; EP
  1. PEP ; EP
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. D SETBLRVS
  1. ;
  1. D ADDTMENU^BLRGMENU("INCOMING^BLRLA7QR","Incoming Messages ...")
  1. D ADDTMENU^BLRGMENU("OUTGOING^BLRLA7QR","Outgoing Messages ...")
  1. ;
  1. ; Main Menu driver
  1. D MENUDRVR^BLRGMENU("LA7 Message Queue (#62.49) File","Reports")
  1. Q
  1. ;
  1. SETBLRVS(TWO) ; EP - Set the BLRVERN variable(s)
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. S:$D(TWO) BLRVERN2=TWO
  1. Q
  1. ;
  1. INCOMING ; EP
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. D SETBLRVS
  1. ;
  1. D ADDTMENU^BLRGMENU("INCOMALL^BLRLA7QR","All Transactions")
  1. D ADDTMENU^BLRGMENU("INCSPINA^BLRLA7QR","Specific Instrument Transactions")
  1. ;
  1. ; Main Menu driver
  1. D MENUDRVR^BLRGMENU("LA7 Message Queue (#62.49) File","Incoming Reports")
  1. Q
  1. ;
  1. INCOMALL ; EP - All Incoming Transactions
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$ALLINIT("Incoming Messages")="Q"
  1. ;
  1. D ATXNLOOP(INDEXDT,"I")
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. INCSPINA ; EP - Incoming Transactions for a Specific Instrument
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$GETINST(.INSTRIEN,.INSTRNM)<1
  1. ;
  1. Q:$$SPININIT("Incoming Messages",INSTRNM)="Q"
  1. ;
  1. D STXNLOOP(INDEXDT,"I",INSTRNM)
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. STXNLOOP(INDEXDT,TYPE,INSTR) ; EP - Speicific Instrument messages loop
  1. F S INDEXDT=$O(^LAHM(62.49,"AD",INDEXDT),-1) Q:INDEXDT<1!(QFLG="Q") D
  1. . S TXN="A"
  1. . F S TXN=$O(^LAHM(62.49,"AD",INDEXDT,TXN),-1) Q:TXN<1!(QFLG="Q") D
  1. .. S STR=$G(^LAHM(62.49,TXN,0))
  1. .. S LOOPINST=$P($P(STR,"^",6),"-")
  1. .. Q:$P(STR,"^",2)'=TYPE ; Skip if not wanted message type
  1. .. Q:LOOPINST'=INSTRNM
  1. .. ;
  1. .. D LINEALL
  1. Q
  1. ;
  1. OUTGOING ; EP
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. D SETBLRVS
  1. ;
  1. D ADDTMENU^BLRGMENU("OUTALL^BLRLA7QR","All Transactions")
  1. D ADDTMENU^BLRGMENU("OUTSPINA^BLRLA7QR","Specific Instrument Transactions")
  1. ;
  1. ; Main Menu driver
  1. D MENUDRVR^BLRGMENU("LA7 Message Queue (#62.49) File","Outgoing Reports")
  1. Q
  1. ;
  1. OUTALL ; EP - All Outgoing Transactions
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$ALLINIT("Outgoing Messages")="Q"
  1. ;
  1. D ATXNLOOP(INDEXDT,"O")
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. OUTSPINA ; EP - Outgoing Transactions for a Specific Instrument
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$GETINST(.INSTRIEN,.INSTRNM)<1
  1. ;
  1. Q:$$SPININIT("Outgoing Messages",INSTRNM)="Q"
  1. ;
  1. D STXNLOOP(INDEXDT,"O",INSTRNM)
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. ALLINIT(TWO) ; EP - Initialization
  1. D SETBLRVS
  1. ;
  1. S HEADER(1)="LA7 MESSAGE QUEUE (#62.49) FILE"
  1. S HEADER(2)=TWO
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D HEADONE^BLRGMENU(.HDRONE)
  1. ;
  1. S HEADER(3)=" "
  1. S HEADER(4)="Txn"
  1. S $E(HEADER(4),10)="Instrument"
  1. S $E(HEADER(4),25)="Entry Dt"
  1. S $E(HEADER(4),35)="STS"
  1. S $E(HEADER(4),40)="Name"
  1. S $E(HEADER(4),65)="UID"
  1. ;
  1. S INDEXDT=$$HTFM^XLFDT(+$H+1)
  1. S QFLG="NO"
  1. S MAXLINES=20,LINES=MAXLINES+10
  1. S (CNT,PG)=0
  1. Q "OK"
  1. ;
  1. ATXNLOOP(INDEXDT,TYPE) ; EP - ALL messages loop
  1. F S INDEXDT=$O(^LAHM(62.49,"AD",INDEXDT),-1) Q:INDEXDT<1!(QFLG="Q") D
  1. . S TXN="A"
  1. . F S TXN=$O(^LAHM(62.49,"AD",INDEXDT,TXN),-1) Q:TXN<1!(QFLG="Q") D
  1. .. S STR=$G(^LAHM(62.49,TXN,0))
  1. .. Q:$P(STR,"^",2)'=TYPE ; Skip if not wanted message type
  1. .. ;
  1. .. D LINEALL
  1. Q
  1. ;
  1. LINEALL ; EP - Line of Data
  1. I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HDRONE) Q:QFLG="Q"
  1. ;
  1. D BRKOALL
  1. ;
  1. W TXN
  1. W ?9,INSTR
  1. W ?24,$$FMTE^XLFDT(ENTRYDT,"2DZ")
  1. W ?35,STATUS
  1. W ?39,NAME
  1. W ?64,UID
  1. W !
  1. S LINES=LINES+1
  1. S CNT=CNT+1
  1. Q
  1. ;
  1. BRKOALL ; EP - Beakout Data
  1. S INSTR=$P($P(STR,"^",6),"-",1),ENTRYDT=$P(STR,"^",5),STATUS=$P(STR,"^",3)
  1. S (NAME,UID)=""
  1. ;
  1. S SEG=0
  1. F S SEG=$O(^LAHM(62.49,TXN,150,SEG)) Q:SEG<1!($L(NAME)) D
  1. . S STR=$G(^LAHM(62.49,TXN,150,SEG,0))
  1. . Q:$P(STR,"|")'="PID" ; Skip if not the PID segment
  1. . S NAMESTR=$P(STR,"|",6)
  1. . S NAME=$TR($P(NAMESTR,"^",1,2),"^",",")_" "_$TR($P(NAMESTR,"^",3,4),"^"," ")
  1. . S NAME=$$TRIM^XLFSTR(NAME,"LR"," ") ; Trim leading & trailing blanks
  1. ;
  1. S SEG=0
  1. F S SEG=$O(^LAHM(62.49,TXN,150,SEG)) Q:SEG<1!($L(UID)) D
  1. . S STR=$G(^LAHM(62.49,TXN,150,SEG,0))
  1. . Q:$P(STR,"|")'="OBR" ; Skip if not the OBR segment
  1. . S UID=$P($P(STR,"|",3),"^")
  1. Q
  1. ;
  1. GETINST(INSTRIEN,INSTRNM) ; EP - Get the Instrument
  1. NEW HEADER
  1. ;
  1. S HEADER(1)="Select Auto Instrument"
  1. S HEADER(2)=" "
  1. ;
  1. S INSTRIEN=""
  1. F Q:$L(INSTRIEN) D
  1. . D HEADERDT^BLRGMENU
  1. . D ^XBFMK
  1. . S DIR(0)="PO^62.4:E"
  1. . S DIR("A")="Select Instrument"
  1. . D ^DIR
  1. . I +$G(DIRUT) S INSTRIEN=$$BADINPUT("No/Invalid Entry.") Q
  1. . ;
  1. . S INSTRIEN=+$G(Y),INSTRNM=$P(Y,"^",2)
  1. ;
  1. Q $S(INSTRIEN="Q":0,1:1)
  1. ;
  1. SPININIT(TWO,INITINST) ; EP - Initialization
  1. D SETBLRVS
  1. ;
  1. S HEADER(1)="LA7 MESSAGE QUEUE (#62.49) FILE"
  1. S HEADER(2)=TWO
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D HEADONE^BLRGMENU(.HDRONE)
  1. ;
  1. S HEADER(3)=$$CJ^XLFSTR("Instrument: "_INITINST,IOM)
  1. S HEADER(4)=" "
  1. S HEADER(5)="Txn"
  1. S $E(HEADER(5),10)="Instrument"
  1. S $E(HEADER(5),25)="Entry Dt"
  1. S $E(HEADER(5),35)="STS"
  1. S $E(HEADER(5),40)="Name"
  1. S $E(HEADER(5),65)="UID"
  1. ;
  1. S INDEXDT=$$HTFM^XLFDT(+$H+1)
  1. S QFLG="NO"
  1. S MAXLINES=20,LINES=MAXLINES+10
  1. S (CNT,PG)=0
  1. Q "OK"
  1. ;
  1. BADINPUT(MSG) ; EP - Bad Input
  1. W !!,?4,MSG
  1. D PRESSKEY^BLRGMENU(9)
  1. Q "Q"