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

BLRRLMU2.m

Go to the documentation of this file.
  1. BLRRLMU2 ; IHS/MSC/MKK - Reference Lab Meaningful use Utilities, Part 2 ; 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. DEBUGIT ; EP
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. ;
  1. D ADDTMENU^BLRGMENU("LAHMMENU^BLRRLMU2","LA7 MESSAGE QUEUE Reports ...")
  1. D ADDTMENU^BLRGMENU("LAHMENU^BLRRLMU3","^LAH Global Reports ...")
  1. D ADDTMENU^BLRGMENU("UNIVMENU^BLRRLMU4","UNIVERSAL INTERFACE Reports ...")
  1. ;
  1. ; Main Menu driver
  1. D MENUDRVR^BLRGMENU("RPMS Lab MU Stage 2","Miscellaneous Debug Utilities")
  1. Q
  1. ;
  1. LAHMMENU ; 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("LAHMMENU")
  1. ;
  1. D ADDTMENU^BLRGMENU("LAHMUIDS^BLRRLMU2","Incoming Matching UIDs in 62.49")
  1. D ADDTMENU^BLRGMENU("SPECSEGS^BLRRLMU2","User Chosen Segments in 62.49")
  1. D ADDTMENU^BLRGMENU("LAHMAUID^BLRRLMU2","All Matching UIDs in ^LAHM(62.49")
  1. ; D ADDTMENU^BLRGMENU("MU2TEST^BLRRLMUA","Enter UID & Display HL7 Segs")
  1. D ADDTMENU^BLRGMENU("PIDUIDSR^BLRRLMU2","ALL 62.49 Incoming PIDs")
  1. D ADDTMENU^BLRGMENU("UIDPALL^BLRRLMU2","Enter UID & Display 62.49 Data")
  1. ;
  1. ; Main Menu driver
  1. D MENUDRVR^BLRGMENU("RPMS Lab MU Stage 2","Miscellaneous Debug Utilities",$$CJ^XLFSTR("LA7 MESSAGE QUEUE (#62.49) Reports",IOM))
  1. Q
  1. ;
  1. SHOWDATE(HL7DT) ; EP - Take HL7 Date and display FM & External Date
  1. NEW FMDT
  1. ;
  1. S TAB=$G(TAB,9)
  1. S FMDT=$$HL7TFM^XLFDT(HL7DT)
  1. W ?39,FMDT
  1. W ?59,$$FMTE^XLFDT(FMDT,"5MZ")
  1. Q
  1. ;
  1. LAHTESTS ; EP - ^LAH 62.49 Tests Report
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,LRUID,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$LAHTESTI()="Q"
  1. ;
  1. F S LAHIEN=$O(^LAH(LRLL,1,LAHIEN)) Q:LAHIEN<1 D
  1. . S UID=$G(^LAH(LRLL,1,LAHIEN,.3))
  1. . Q:$L(UID)<1
  1. . Q:$D(^TMP("BLRRLMUU",$J,"UID",UID))<1
  1. . ;
  1. . W ?4,LAHIEN,?19,UID,?34,$G(^TMP("BLRRLMUU",$J,"UID",UID)),!
  1. . S LINES=LINES+1
  1. . S CNT=CNT+1
  1. ;
  1. W !!
  1. ;
  1. W:CNT<1 ?4,"No UIDs in ^LAH match 62.49",!
  1. W:CNT ?4,"Number of UIDs in ^LAH that Match 62.49 = ",CNT,!
  1. ;
  1. W !,?9,"Number of UIDs in 62.49 = ",UID6249,!
  1. ;
  1. D PRESSKEY^BLRGMENU
  1. Q
  1. ;
  1. LAHTESTI() ; EP - Initialization
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. ;
  1. Q:$$GETLWLID(.LRLL)<1 "Q"
  1. ;
  1. S HEADER(1)="^LAH NIST Entries with 62.49 Data"
  1. ;
  1. S HEADER(2)=" "
  1. S $E(HEADER(3),5)="IEN"
  1. S $E(HEADER(3),20)="UID"
  1. S $E(HEADER(3),35)="IHSSPM"
  1. ;
  1. S MAXLINES=IOSL-4
  1. S LINES=MAXLINES+10
  1. S (CNT,PG,UID6249)=0
  1. S (HDRONE,QFLG)="NO"
  1. ;
  1. D LAHTESTU(.UID6249)
  1. ;
  1. S LAHIEN=.9999999
  1. D HEADERDT^BLRGMENU
  1. ;
  1. Q "OK"
  1. ;
  1. LAHTESTU(UID6249) ; EP - Create UID index into 62.49
  1. NEW IEN,INST,UID
  1. ;
  1. K ^TMP("BLRRLMUU",$J,"UID")
  1. ;
  1. S INST=""
  1. F S INST=$O(^LAHM(62.49,"C",INST)) Q:INST="" D
  1. . S UID=$P(INST,"-",3)
  1. . Q:$L(UID)<1
  1. . ;
  1. . S IEN=$O(^LAHM(62.49,"C",INST,"A"),-1)
  1. . S ^TMP("BLRRLMUU",$J,"UID",UID)=IEN
  1. . S UID6249=UID6249+1
  1. Q
  1. ;
  1. LAHSPMS ; EP - ^LAH IHSSPM Values
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,LRUID,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$LAHSPMSI()="Q"
  1. ;
  1. F S IEN=$O(^LAH(LOADWORK,1,IEN),-1) Q:IEN<1 D
  1. . Q:$D(^LAH(LOADWORK,1,IEN,"IHSSPM"))<1
  1. . W IEN
  1. . W ?9,$G(^LAH(LOADWORK,1,IEN,.3))
  1. . W ?24,$E($G(^LAH(LOADWORK,1,IEN,"IHSSPM")),1,60)
  1. . W !
  1. ;
  1. D PRESSKEY^BLRGMENU(4)
  1. Q
  1. ;
  1. LAHSPMSI() ; EP - Initialization
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. ;
  1. S HEADER(1)="^LAH IHSSPM Entries"
  1. S HEADER(2)=" "
  1. S HEADER(3)="IEN"
  1. S $E(HEADER(3),10)="UID"
  1. S $E(HEADER(3),25)="IHSSPM"
  1. ;
  1. S LA7INST=$$GET1^DIQ(9009029,DUZ(2),3001)
  1. I $G(LA7INST)=""
  1. Q:$G(LA7INST)="" "Q" ; Quit with zero if no Reference Lab
  1. ;
  1. S AUTOIEN=+$O(^LAB(62.4,"B",LA7INST,"")) ; Auto Instrument IEN
  1. Q:AUTOIEN<1 "Q" ; Quit with zero if No Auto Instrument
  1. ;
  1. S LOADWORK=$$GET1^DIQ(62.4,AUTOIEN,"LOAD/WORK LIST","I")
  1. ;
  1. S MAXLINES=IOSL-4
  1. S LINES=MAXLINES+10
  1. S (CNT,PG)=0
  1. S (HDRONE,QFLG)="NO"
  1. S IEN="AA"
  1. D HEADERDT^BLRGMENU
  1. Q "OK"
  1. ;
  1. LAHLRASR ; EP - LAH LRAS Report
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,LRUID,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$LAHLRASI()="Q"
  1. ;
  1. F S LAHIEN=$O(^LAH(LRLL,1,LAHIEN)) Q:LAHIEN<1 D
  1. . S UID=$G(^LAH(LRLL,1,LAHIEN,.3))
  1. . Q:$L(UID)<1
  1. . ;
  1. . ; Try to get LRAS
  1. . S X=$Q(^LRO(68,"C",UID,0)),LRAA=+$QS(X,4),LRAD=+$QS(X,5),LRAN=+$QS(X,6),LRAS=$G(^LRO(68,LRAA,1,LRAD,1,LRAN,.2))
  1. . ;
  1. . W ?4,LAHIEN,?19,UID,?34,$G(^TMP("BLRRLMUU",$J,"UID",UID)),?54,LRAS,!
  1. . S LINES=LINES+1
  1. . S CNT=CNT+1
  1. ;
  1. W !!
  1. ;
  1. W:CNT<1 ?4,"No UIDs in ^LAH",!
  1. W:CNT ?4,"Number of UIDs in ^LAH = ",CNT,!
  1. ;
  1. D PRESSKEY^BLRGMENU
  1. Q
  1. ;
  1. LAHLRASI ; EP - Initialization
  1. Q:$$GETLWLID(.LRLL)<1 "Q"
  1. ;
  1. D LAHTESTI
  1. K HEADER(1)
  1. S HEADER(1)="^LAH NIST Entries"
  1. S $E(HEADER(3),55)="LRAS"
  1. ;
  1. S LAHIEN=.9999999
  1. D HEADERDT^BLRGMENU
  1. Q "OK"
  1. ;
  1. PIDUIDSR ; EP - PID Segments with UIDS report
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,LRUID,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$PIDUIDSI()="Q"
  1. ;
  1. F S IEN=$O(^LAHM(62.49,IEN),-1) Q:IEN<1!(QFLG="Q") D
  1. . Q:$P($G(^LAHM(62.49,IEN,0)),"^",2)'="I" ; Only INCOMING messages
  1. . ;
  1. . S ENTERDTT=$$GET1^DIQ(62.49,IEN,4,"I")
  1. . S:$L(ENTERDTT) ENTERDTT=$$FMTE^XLFDT(ENTERDTT,"2DZ")
  1. . ;
  1. . S IENCNT=IENCNT+1
  1. . S TYPEMSG=$P($G(^LAHM(62.49,IEN,0)),"^",2)
  1. . S SEGCNT=0
  1. . F S SEGCNT=$O(^LAHM(62.49,IEN,150,SEGCNT)) Q:SEGCNT<1!(QFLG="Q") D
  1. .. S STR=$G(^LAHM(62.49,IEN,150,SEGCNT,0))
  1. .. Q:$P(STR,"|")'="OBR"
  1. .. Q:$P($P(STR,"|",3),"^")=""
  1. .. ;
  1. .. ; Only list IEN once
  1. .. Q:$D(UNIQUE(IEN))
  1. .. S UNIQUE(IEN)=""
  1. .. ;
  1. .. S UID=$P($P(STR,"|",3),"^")
  1. .. Q:$D(UID(UID)) ; Skip if already listed
  1. .. ;
  1. .. W ?TAB(TAB,1),IEN
  1. .. W ?TAB(TAB,2),UID
  1. .. W ?TAB(TAB,3),ENTERDTT
  1. .. S TAB=TAB+1
  1. .. I TAB>2 S TAB=1 W !
  1. .. S CNT=CNT+1
  1. .. S UID(UID)=""
  1. ;
  1. W !!!
  1. W ?4,"Number of Incoming Messages = ",IENCNT,!!
  1. W:CNT<1 ?9,"No UIDs Found."
  1. W:CNT ?9,"Number of UIDs = ",CNT
  1. D PRESSKEY^BLRGMENU(14)
  1. Q
  1. ;
  1. PIDUIDSI() ; EP - Initializatioin
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. ;
  1. S HEADER(1)="LA7 MESSAGE QUEUE (#62.49) File"
  1. S HEADER(2)="ALL INCOMING MESSAGES"
  1. S HEADER(3)=$$CJ^XLFSTR("Reverse Date Sort",IOM)
  1. S HEADER(4)=" "
  1. S HEADER(5)="IEN"
  1. S $E(HEADER(5),10)="UID"
  1. S $E(HEADER(5),25)="Enter Dt"
  1. S $E(HEADER(5),40)="IEN"
  1. S $E(HEADER(5),50)="UID"
  1. S $E(HEADER(5),63)="Entr Dt"
  1. ;
  1. S MAXLINES=IOSL-4
  1. S LINES=MAXLINES+10
  1. S (CNT,IENCNT,PG)=0
  1. S QFLG="NO"
  1. S IEN="AAA"
  1. ;
  1. S TAB(1,1)=0,TAB(1,2)=9,TAB(1,3)=24
  1. S TAB(2,1)=39,TAB(2,2)=49,TAB(2,3)=62
  1. S TAB=1
  1. ;
  1. D HEADERDT^BLRGMENU
  1. ;
  1. Q "OK"
  1. ;
  1. LAHMUIDS ; EP - List the UIDs found in the ^LAHM(62.49 global
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,LRPARAM,IOXY,TESTDESC,U,UID,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$LAHMUIDI()="Q"
  1. ;
  1. F S IEN=$O(^LAHM(62.49,IEN),-1) Q:IEN<1!(QFLG="Q") D
  1. . Q:$P($G(^LAHM(62.49,IEN,0)),"^",2)'="I" ; Only INCOMING messages
  1. . ;
  1. . S TYPEMSG=$P($G(^LAHM(62.49,IEN,0)),"^",2)
  1. . S SEGCNT=0
  1. . F S SEGCNT=$O(^LAHM(62.49,IEN,150,SEGCNT)) Q:SEGCNT<1!(QFLG="Q") D LAHMUIDL
  1. ;
  1. W !!,?4,"Number of UIDs = ",CNT
  1. D PRESSKEY^BLRGMENU(9)
  1. K ^TMP("BLRRLMUU",$J,"LAHMUIDL")
  1. Q
  1. ;
  1. LAHMUIDI(TYPEFLAG) ; EP - Initialization
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. ;
  1. S HEADER(1)="LA7 MESSAGE QUEUE (#62.49) File"
  1. D HEADERDT^BLRGMENU
  1. D HEADONE^BLRGMENU(.HDRONE)
  1. ;
  1. S STR=$S($L($G(TYPEFLAG)):"ALL INCOMING MESSAGES",1:"INCOMING MESSAGES ONLY")
  1. S HEADER(2)=STR
  1. S HEADER(3)=$$CJ^XLFSTR("Reverse Order Sort",IOM)
  1. S HEADER(4)=" "
  1. S HEADER(5)="IEN"
  1. S $E(HEADER(5),15)="UID"
  1. S $E(HEADER(5),30)="Accession"
  1. S $E(HEADER(5),50)="Entry Date/Time"
  1. S $E(HEADER(5),68)="DFN"
  1. S:+$G(TYPEFLAG) $E(HEADER(5),78)="Typ"
  1. ;
  1. S MAXLINES=IOSL-4
  1. S LINES=MAXLINES+10
  1. S (CNT,PG)=0
  1. S QFLG="NO"
  1. S IEN="AAA"
  1. ;
  1. K ^TMP("BLRRLMUU",$J,"LAHMUIDL")
  1. Q "OK"
  1. ;
  1. LAHMUIDL ; EP - Line of Data
  1. S STR=$G(^LAHM(62.49,IEN,150,SEGCNT,0))
  1. Q:$P(STR,"|")'="OBR"
  1. Q:$P($P(STR,"|",3),"^")=""
  1. ;
  1. S UID=$P($P(STR,"|",3),"^")
  1. Q:$D(^LRO(68,"C",UID))<1 ; Skip if no UID data
  1. ;
  1. S X=$Q(^LRO(68,"C",UID,0)),LRAA=+$QS(X,4),LRAD=+$QS(X,5),LRAN=+$QS(X,6),LRDFN=+$G(^LRO(68,LRAA,1,LRAD,1,LRAN,0)),LRDONEDT=$P($G(^(3)),"^",4),DFN=$P($G(^LR(LRDFN,0)),"^",3)
  1. ;
  1. ; Q:$D(^TMP("BLRRLMUU",$J,"LAHMUIDL",UID)) ; Only list UID once
  1. ; S ^TMP("BLRRLMUU",$J,"LAHMUIDL",UID)=""
  1. ;
  1. I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HDRONE) Q:QFLG="Q"
  1. ;
  1. S ENTRYDT=+$P($G(^LAHM(62.49,IEN,0)),"^",5)
  1. S ENTRYDT=$$FMTE^XLFDT(ENTRYDT,"5MZ")
  1. ;
  1. S LRAS=$$LAHMUIDA(UID)
  1. ;
  1. W IEN,?14,UID,?27,$S(+LRDONEDT:"C",1:" "),?29,LRAS,?49,ENTRYDT,?67,$G(DFN)
  1. W:+$G(TYPEFLAG) ?77,$$CJ^XLFSTR(TYPEMSG,3)
  1. W !
  1. S CNT=CNT+1
  1. S LINES=LINES+1
  1. Q
  1. ;
  1. LAHMUIDA(UID) ; EP - Get Accession Number
  1. Q:UID["ORD" " "
  1. ;
  1. S UID=$P(UID,"A")
  1. Q:$D(^LRO(68,"C",UID))<1 "<>" ; Skip if no UID data
  1. ;
  1. S X=$Q(^LRO(68,"C",UID,0)),LRAA=+$QS(X,4),LRAD=+$QS(X,5),LRAN=+$QS(X,6)
  1. Q $G(^LRO(68,LRAA,1,LRAD,1,LRAN,.2))
  1. ;
  1. SPECSEGS ; EP - List the User chosen Segments in 62.49
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,LRPARAM,IOXY,TESTDESC,U,UID,XPARSYS,XQXFLG)
  1. ;
  1. D ^XBFMK
  1. S DIR(0)="FO"
  1. S DIR("A")="SEGMENT"
  1. D ^DIR
  1. I +$G(DIRUT) D Q
  1. . W !,?4,"Invalid/No Entry. Routine Ends."
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. S SEGMENT=$$UP^XLFSTR(X)
  1. ;
  1. S IEN="AAA",QFLG="NO",PUTCNT=0,LINES=0
  1. F S IEN=$O(^LAHM(62.49,IEN),-1) Q:IEN<1!(QFLG="Q") D
  1. . Q:$P($G(^LAHM(62.49,IEN,0)),"^",2)'="I" ; Only INCOMING messages
  1. . ;
  1. . S SEGCNT=0
  1. . F S SEGCNT=$O(^LAHM(62.49,IEN,150,SEGCNT)) Q:SEGCNT<1!(QFLG="Q") D
  1. .. S STR=$G(^LAHM(62.49,IEN,150,SEGCNT,0))
  1. .. Q:$P(STR,"|")'=SEGMENT
  1. .. ;
  1. .. W:PUTCNT=0 !!,"IEN",?14,"CNT",?24,"Segment",!,$TR($J("",IOM)," ","-"),!
  1. .. W IEN,?14,SEGCNT
  1. .. D LINEWRAP^BZHHUTLM(24,STR,56)
  1. .. W !!
  1. .. S PUTCNT=PUTCNT+1
  1. . D:PUTCNT PRESSKEY^BLRGMENU(4) W !!
  1. Q
  1. ;
  1. LAHMAUID ; EP - All UIDs in ^LAHM(62.49
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,LRPARAM,IOXY,TESTDESC,U,UID,XPARSYS,XQXFLG)
  1. ;
  1. S TYPEFLAG=1
  1. Q:$$LAHMUIDI(TYPEFLAG)="Q"
  1. K HEADER(2)
  1. S HEADER(2)="All Matching UIDs"
  1. ;
  1. F S IEN=$O(^LAHM(62.49,IEN),-1) Q:IEN<1!(QFLG="Q") D
  1. . S TYPEMSG=$$GET1^DIQ(62.49,IEN,"TYPE","I")
  1. . S:$L(TYPEMSG)<1 TYPEMSG="<"_$$GET1^DIQ(62.49,IEN,"STATUS","I")_">"
  1. . S SEGCNT=0
  1. . F S SEGCNT=$O(^LAHM(62.49,IEN,150,SEGCNT)) Q:SEGCNT<1!(QFLG="Q") D LAHMUIDL
  1. ;
  1. W:CNT<1 !!,?4,"No Matching UIDs entries found in the LA7 MESSAGE QUEUE (#62.49) file."
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. GETLWLID(LRLL) ; EP - Return LOAD/WORK LIST IEN
  1. NEW LA7INST,AUTINSP
  1. ;
  1. S LA7INST=$$GET1^DIQ(9009029,DUZ(2),3001) ; Reference Lab
  1. S AUTOINSP=$S($L(LA7INST):+$O(^LAB(62.4,"B",LA7INST,"")),1:0) ; Auto Instrument IEN
  1. ;
  1. S LRLL=+$$GET1^DIQ(62.4,AUTOINSP,3,"I") ; LOAD/WORK List
  1. ;
  1. I LRLL<1 D ENDMESG("Could not Determine Load/Work List. Routine Ends.") Q
  1. ;
  1. Q LRLL
  1. ;
  1. UIDPALL ; EP - Select UID & Display All 62.49 Data using EN^DIQ
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOST,IOT,IOXY,LRUID,U,XPARSYS,XQXFLG)
  1. ;
  1. S HEADER(1)="File 62.49 Data Display"
  1. D HEADERDT^BLRGMENU
  1. ;
  1. S STR=$$F6249UID
  1. S IEN6249=$P(STR,U,6)
  1. Q:IEN6249<1
  1. ;
  1. S LRUID=+STR,LRAS=$P(STR,U,5)
  1. ;
  1. S HEADER(2)="UID:"_LRUID_" ["_LRAS_"]"
  1. D HEADERDT^BLRGMENU
  1. ;
  1. D HEAD6249(IEN6249)
  1. ;
  1. S SEQ=0,QFLG="NO"
  1. F S SEQ=$O(^LAHM(62.49,IEN6249,150,SEQ)) Q:SEQ<1!(QFLG="Q") D
  1. . S STR=$G(^LAHM(62.49,IEN6249,150,SEQ,0))
  1. . Q:$L(STR)<1
  1. . W !!,$P(STR,"|"),! ; Segment Identifier
  1. . F SEG=2:1:$L(STR,"|") D
  1. .. S SUBSEG=$$TRIM^XLFSTR($P(STR,"|",SEG),"LR"," ")
  1. .. Q:$L(SUBSEG)<1
  1. .. W ?4,$J((SEG-1),2),")"
  1. .. W:$L(SUBSEG)<60 ?14,SUBSEG,!
  1. .. I $L(SUBSEG)>59 D LINEWRAP^BLRGMENU(14,SUBSEG,60) W !
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. I QFLG'="Q" D
  1. . W !!,?4,"All sequences have been displayed."
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. Q
  1. ;
  1. HEAD6249(IEN) ; EP - Display variables in header of File 62.49
  1. D ^XBFMK
  1. S DIC="^LAHM(62.49,",DA=IEN,DIQ(0)="CR",DR="0:100"
  1. D EN^DIQ
  1. ;
  1. Q
  1. ;
  1. ENDMESG(TEXT) ; EP - Ending Message
  1. W !,?4,TEXT
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. F6249UID() ; EP - Get UIDs from 62.49 & setup DIR call for user to select one
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. S DIRZERO="SO^"
  1. S (CNT,ENTRY)=0
  1. ;
  1. S IEN="A"
  1. F S IEN=$O(^LAHM(62.49,IEN),-1) Q:IEN<1 D
  1. . S TYPEMSG=$P($G(^LAHM(62.49,IEN,0)),"^",2)
  1. . ;
  1. . S SEG=0,STR=""
  1. . F S SEG=$O(^LAHM(62.49,IEN,150,SEG)) Q:SEG<1 D
  1. .. S STR=$G(^LAHM(62.49,IEN,150,SEG,0))
  1. .. Q:$P(STR,"|")'="OBR"
  1. .. ;
  1. .. S LRUID=$P($P(STR,"|",3),"^")
  1. .. Q:$L(LRUID)<1
  1. .. ;
  1. .. ; Make certain entry only shows once
  1. .. Q:$D(UNIQUE(IEN))
  1. .. S UNIQUE(IEN)=""
  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 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_LRAA_U_LRAD_U_LRAN_U_LRAS_U_IEN
  1. S CNT=CNT+1
  1. S DIRZERO=DIRZERO_(CNT)_":AL"
  1. ;
  1. I $D(LUIDINDX)<1 D Q 0
  1. . W !!,?4,"No matching UID Entries found in the LA7 MESSAGE QUEUE (#62.49) file."
  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. S HEADER(1)="LA7 MESSAGE QUEUE (#62.49) File"
  1. S HEADER(2)="UID Selection"
  1. ;
  1. D HEADERDT^BLRGMENU
  1. ;
  1. D ^DIR
  1. I +Y<1!(+$G(DIRUT)) D Q 0
  1. . W !,?4,"No/Invalid Entry. Routine Ends."
  1. . D PRESSKEY^BLRGMENU(9)
  1. . S LREND=1
  1. ;
  1. Q $G(LUIDINDX(+$G(Y)))
  1. ;
  1. SETBLRVS(TWO) ; EP - Set BLRVERN variable(s)
  1. S BLRVERN=$TR($P($T(+1),";")," ")
  1. S:$L($G(TWO)) BLRVERN2=TWO
  1. Q