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

BLRLAHGU.m

Go to the documentation of this file.
  1. BLRLAHGU ; IHS/MSC/MKK - LOAD/WORK List in the ^LAH Global ; 22-Oct-2013 09:22 ; MKK
  1. ;;5.2;IHS LABORATORY;**1033**;NOV 1, 1997
  1. ;
  1. EEP ; Ersatz EP
  1. D EEP^BLRGMENU
  1. Q
  1. ;
  1. PEP ; EP
  1. ACCFILEL ; EP
  1. ; NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. S LRLL=0
  1. ;
  1. D SETLBRVS("ACCFILEL")
  1. ;
  1. D B^LRU
  1. Q:+$G(LRSDT)<1!(+$G(LRLDT)<1)
  1. ;
  1. Q:$$GETAUTOI()="Q"
  1. ;
  1. Q
  1. S NOGO=0
  1. F Q:NOGO D
  1. . D GETUID(LRSDT,LRLDT)
  1. Q
  1. ;
  1. GETUID(LRSDT,LRLDT) ; EP
  1. ; The following code reads the ^LAH global for the LOAD/WORK LIST "tied" to
  1. ; the selected AUTO INSTRUMENT and creates the necessary string to setup
  1. ; the D ^DIR call to "select from a list"
  1. ;
  1. NEW BELOW,CNT,DIRZERO,DRAWDATE,ENTRY,IENSTR,LRUID,LUIDINDX,NUMCOL,STR
  1. ;
  1. S DIRZERO="SO^"
  1. S (CNT,ENTRY)=0
  1. F S ENTRY=$O(^LAH(LRLL,1,ENTRY)) Q:ENTRY<1 D
  1. . S LRUID=+$G(^LAH(LRLL,1,ENTRY,.3))
  1. . Q:LRUID<1
  1. . ;
  1. . S X=$Q(^LRO(68,"C",LRUID,0)),LRAA=+$QS(X,4),LRAD=+$QS(X,5),LRAN=+$QS(X,6)
  1. . Q:LRAA<1!(LRAD<1)!(LRAN<1) ; If no Accession, skip
  1. . ;
  1. . S IENSTR=LRAN_","_LRAD_","_LRAA_","
  1. . S DRAWDATE=$P($$GET1^DIQ(68.02,IENSTR,"DRAW TIME","I"),".")
  1. . Q:DRAWDATE<LRSDT!(DRAWDATE>LRLDT) ; Skip if not in date range
  1. . ;
  1. . S LRAS=$$GET1^DIQ(68.02,IENSTR,"ACCESSION")
  1. . S CNT=CNT+1
  1. . S DIRZERO=DIRZERO_CNT_":"_LRUID_";"
  1. . S DIRZERO(CNT)=$$LJ^XLFSTR($J(CNT,2)_") "_$$LJ^XLFSTR(LRUID,11)_LRAS,27)
  1. . S LUIDINDX(CNT)=LRUID_U_ENTRY_U_LRAA_U_LRAD_U_LRAN
  1. S CNT=CNT+1
  1. S DIRZERO=DIRZERO_(CNT)_":AL"
  1. ;
  1. I $D(LUIDINDX)<1 D Q
  1. . W !!,?4,"No Entries for Date Range ",$$FMTE^XLFDT(LRSDT,"5DZ")," thru ",$$FMTE^XLFDT(LRLDT,"5DZ")
  1. . D PRESSKEY^BLRGMENU(9)
  1. . S LREND=1
  1. ;
  1. S NUMCOL=3
  1. K LRUID
  1. D ^XBFMK
  1. S DIR(0)=DIRZERO
  1. S DIR("L",1)=" UID Accession UID Accession UID Accession"
  1. S DIR("L",2)=" ---------- ----------- ---------- ----------- ---------- ----------"
  1. S BELOW=3
  1. S CNT=0
  1. F S CNT=$O(DIRZERO(CNT)) Q:CNT<1 D
  1. . S:(CNT#NUMCOL)=1 DIR("L",BELOW)=""
  1. . S DIR("L",BELOW)=$G(DIR("L",BELOW))_$S((CNT#NUMCOL)=0:$$TRIM^XLFSTR(DIRZERO(CNT),"R"," "),1:DIRZERO(CNT))
  1. . S:(CNT#NUMCOL)=0 BELOW=BELOW+1
  1. ;
  1. S DIR("L")=""
  1. S DIR("A")="Select number" ; Change default prompt
  1. ;
  1. D HEADERDT^BLRGMENU
  1. ;
  1. D ^DIR
  1. I +Y<1!(+$G(DIRUT)) D Q
  1. . W !,?4,"No/Invalid Entry. Routine Ends."
  1. . D PRESSKEY^BLRGMENU(9)
  1. . S LREND=1
  1. ;
  1. S STR=$G(LUIDINDX(+$G(Y)))
  1. S LRUID=+STR
  1. S LRIFN=+$P(STR,U,2),LRAA=$P(STR,U,3),LRAD=$P(STR,U,4),LRAN=$P(STR,U,5)
  1. Q
  1. ;
  1. ONGO(NOGO) ; EP - Continue?
  1. D ^XBFMK
  1. S DIR(0)="YO"
  1. S DIR("A")="Continue"
  1. S DIR("B")="NO"
  1. D ^DIR
  1. S:+Y<1 NOGO=1
  1. Q
  1. ;
  1. REPORT ; EP - Report on UIDs for a Specific LOAD/WORK LIST
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. D SETLBRVS("REPORT")
  1. Q:$$GETAUTOI()="Q"
  1. Q:$$REPORTI()="Q"
  1. ;
  1. F S ENTRY=$O(^LAH(LRLL,1,ENTRY),-1) Q:ENTRY<1!(QFLG="Q") D REPORTL
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. REPORTI() ; EP - Initialization of variables
  1. K HEADER
  1. S HEADER(1)=LRAUTON_" AUTO INSTRUMENT"
  1. S HEADER(2)=$$CJ^XLFSTR(LRLLNAME_" ^LAH Entries",IOM)
  1. S HEADER(3)=" "
  1. S $E(HEADER(4),5)="Entry"
  1. S $E(HEADER(4),15)="UID"
  1. S $E(HEADER(4),28)="Accession"
  1. S $E(HEADER(4),48)="Order #"
  1. S $E(HEADER(4),58)="Order Date"
  1. S $E(HEADER(4),70)="Draw Date"
  1. ;
  1. S (CNT,PG)=0,ENTRY="A"
  1. S MAXLINES=20,LINES=MAXLINES+10
  1. S QFLG="NO"
  1. Q "OK"
  1. ;
  1. REPORTL ; EP - Line of data
  1. Q:$$REPORTB()="Q"
  1. ;
  1. I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,"NO") Q:QFLG="Q"
  1. ;
  1. W ?5,ENTRY
  1. W ?14,LRUID
  1. W ?27,LRAS
  1. W ?47,ORDERNUM
  1. W ?57,DATEORD
  1. W ?69,DRAWDATE
  1. W !
  1. S LINES=LINES+1
  1. S CNT=CNT+1
  1. Q
  1. ;
  1. REPORTB() ; EP - Breakout data
  1. S LRUID=+$G(^LAH(LRLL,1,ENTRY,.3))
  1. Q:LRUID<1 "Q"
  1. ;
  1. S X=$Q(^LRO(68,"C",LRUID,0)),LRAA=+$QS(X,4),LRAD=+$QS(X,5),LRAN=+$QS(X,6)
  1. ;
  1. Q:LRAA<1!(LRAD<1)!(LRAN<1) "Q"
  1. ;
  1. S IENSTR=LRAN_","_LRAD_","_LRAA_","
  1. ;
  1. S ORDERNUM=$$GET1^DIQ(68.02,IENSTR,"ORDER #")
  1. S LRAS=$$GET1^DIQ(68.02,IENSTR,"ACCESSION")
  1. S DATEORD=$$FMTE^XLFDT($$GET1^DIQ(68.02,IENSTR,"DATE ORDERED","I"),"5DZ")
  1. S DRAWDATE=$$FMTE^XLFDT($$GET1^DIQ(68.02,IENSTR,"DRAW TIME","I"),"5DZ")
  1. Q "OK"
  1. ;
  1. SETLBRVS(TWO) ; EP - Set the BLRVERN & BLRVERN2 variables
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. S:$L($G(TWO)) BLRVERN2=TWO
  1. Q
  1. ;
  1. GETAUTOI() ; EP - Get the AUTO INSTRUMENT
  1. S HEADER(1)="AUTO INSTRUMENT"
  1. D HEADERDT^BLRGMENU
  1. ;
  1. D ^XBFMK
  1. S DIR(0)="PO^62.4:E"
  1. D ^DIR
  1. I +Y<1!(+$G(DIRUT)) D Q "Q"
  1. . W !,?4,"No/Invalid Entry. Routine Ends."
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. S LRAUTO=+Y,LRAUTON=$P(Y,U,2)
  1. I $$GETLWRKL()="Q" Q "Q"
  1. Q "OK"
  1. ;
  1. S LRLL=+$$GET1^DIQ(62.4,LRAUTO,"LOAD/WORK LIST","I")
  1. S LRLLNAME=$$GET1^DIQ(62.4,LRAUTO,"LOAD/WORK LIST")
  1. I LRLL<1 D Q "Q"
  1. . W !,?4,"No LOAD/WORK LIST associated with ",LRAUTON,". Routine Ends."
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. K HEADER(1)
  1. S HEADER(1)=LRAUTON_" AUTO INSTRUMENT"
  1. S HEADER(2)=$$CJ^XLFSTR(LRLLNAME_" ^LAH Entries",IOM)
  1. ;
  1. Q "OK"
  1. ;
  1. GETLWRKL() ; EP - Get the LOAD/WORK list
  1. S HEADER(1)="LOAD/WORK LIST"
  1. D HEADERDT^BLRGMENU
  1. ;
  1. ; Get LOAD/WORK list IEN
  1. D ^XBFMK
  1. S DIR(0)="PO^68.2:E"
  1. D ^DIR
  1. I +Y<1!(+$G(DIRUT)) D Q "Q"
  1. . W !,?4,"No/Invalid Entry. Routine Ends."
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. S LRLL=+Y,LRLLNAME=$P(Y,U,2)
  1. S HEADER(2)=LRLLNAME_" ^LAH Entries"
  1. ;
  1. Q "OK"