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

BLRMPRL2.m

Go to the documentation of this file.
  1. BLRMPRL2 ; IHS/MSC/MKK - BLR Map Reference Lab Codes to Lab Test File - version 2 ; 01-Jun-2016 13:35 ; MKK
  1. ;;5.2;LR;**1039**;NOV 01, 1997;Build 38
  1. ;
  1. EEP ; Ersatz EP
  1. D EEP^BLRGMENU
  1. Q
  1. ;
  1. ; Cloned from BLRMPRL
  1. ;
  1. ; This routine will allow a user to map BLR Reference Lab (#9009026) file tests
  1. ; to LABORATORY TEST (#60) file tests
  1. ;
  1. EP ; EP
  1. PEP ; PEP
  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("MAPTESTS^BLRMPRL2","Map Reference Lab Tests")
  1. D ADDTMENU^BLRGMENU("MAPRPT^BLRMPRL2","Mapped Tests Report")
  1. D ADDTMENU^BLRGMENU("UMAPRPT^BLRMPRL2","Non-Mapped Tests Report")
  1. ;
  1. D MENUDRVR^BLRGMENU("RPMS Lab","Reference Lab Mapping")
  1. Q
  1. ;
  1. MAPTESTS ; EP - main routine driver
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. D SETBLRVS("MAPTESTS")
  1. S HEADER(1)="BLR Reference Lab File (#9009026)"
  1. S HEADER(2)="Mapping File 9009026 Tests to File 60 Tests"
  1. ;
  1. F Q:$$ASK(.BLRRL)="Q" D
  1. . S MAPPED=0
  1. . K HEADER(3)
  1. . S HEADER(3)=$$CJ^XLFSTR("Reference Lab: "_$$GET1^DIQ(9009026,BLRRL,.01),IOM)
  1. . D ORR(BLRRL)
  1. . I MAPPED D
  1. .. D HEADERDT^BLRGMENU
  1. .. W !!,?4,MAPPED," 9009026 Test",$S(MAPPED=1:"",1:"s")," Mapped."
  1. .. D PRESSKEY^BLRGMENU(9)
  1. . K HEADER(3)
  1. ;
  1. Q
  1. ;
  1. ;
  1. ASK(BLRRL) ;-- Ask which Reference Lab to map
  1. D HEADERDT^BLRGMENU
  1. ;
  1. ; Get the Reference Labs in the BLR REFERENCE LAB file and create DIR array
  1. D ^XBFMK
  1. S TAB=$J("",5),TAB2=TAB_TAB
  1. S DIR("L")=""
  1. S DIR("L",1)=TAB_"Reference Labs in BLR REFERENCE LAB (#9009026) File:"
  1. S DIR("L",2)=""
  1. S LINE=2
  1. S RLD0=.9999999,CNT=0,SELSTR="SO^"
  1. F S RLD0=$O(^BLRRL(RLD0)) Q:RLD0<1 D
  1. . S CNT=CNT+1
  1. . S RLIEN(CNT)=RLD0
  1. . S REFLABN=$$GET1^DIQ(9009026,RLD0,.01)
  1. . S SELSTR=SELSTR_CNT_":"_$P(REFLABN," ")_";"
  1. . S LINE=LINE+1
  1. . S DIR("L",LINE)=TAB2_$J(CNT,2)_") "_REFLABN
  1. ;
  1. S SELSTR=$E(SELSTR,1,$L(SELSTR)-1) ; Remove trailing semi-colon
  1. ;
  1. S DIR("A")=TAB_"Select Reference Lab"
  1. S DIR(0)=SELSTR
  1. D ^DIR
  1. ;
  1. I +$G(DIRUT)!(+$G(Y)<1) Q "Q"
  1. ;
  1. S BLRRL=RLIEN(Y)
  1. Q "OK"
  1. ;
  1. ORR(RL) ; EP - ask and map Reference Lab test(s)
  1. S ONGO="YES"
  1. F Q:ONGO="NO" D
  1. . D HEADERDT^BLRGMENU
  1. . D ^XBFMK
  1. . K BLROR
  1. . S DIC="^BLRRL("_BLRRL_",1,",DA(1)=RL,DIC(0)="AELMQZ"
  1. . S DIC("A")="Select Reference Lab (#9009026) File's Test to Map: "
  1. . D ^DIC
  1. . I Y<0 S ONGO="NO" Q
  1. . ;
  1. . W !
  1. . ;
  1. . S BLROR=+Y
  1. . ; S DIE=DIC,DA=BLROR,DR=".01:10" ;added edit of .01 at DKR request 2/3/2006 3/24/2006 added field 10
  1. . S DIE=DIC,DA=BLROR,DR=".02:10" ; Do NOT allow editing of .01 field
  1. . D ^DIE
  1. . S MAPPED=MAPPED+1
  1. Q
  1. ;
  1. ;
  1. MAPRPT ; EP - Mapped Tests' Report
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$MAPRPTI()="Q"
  1. ;
  1. F S TESTNAME=$O(^BLRRL(BLRRL,1,"B",TESTNAME)) Q:TESTNAME=""!(QFLG="Q") D
  1. . S RLD1=0
  1. . F S RLD1=$O(^BLRRL(BLRRL,1,"B",TESTNAME,RLD1)) Q:RLD1<1!(QFLG="Q") D MAPRPTL
  1. ;
  1. W !!,?4,CNT," Tests",!!
  1. D ^%ZISC
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. MAPRPTI() ; EP - Initialization
  1. D SETBLRVS("MAPRPT")
  1. S HEADER(1)="BLR Reference Lab File (#9009026)"
  1. ;
  1. Q:$$ASK(.BLRRL)="Q" "Q"
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D HEADONE^BLRGMENU(.HDRONE)
  1. ;
  1. S HEADER(2)="Reference Lab: "_$$GET1^DIQ(9009026,BLRRL,.01)
  1. S HEADER(3)=$$CJ^XLFSTR("Mapped Tests",IOM)
  1. D HEADERDT^BLRGMENU
  1. ;
  1. D ^%ZIS
  1. Q:POP $$BADSTUFQ^BLRUTIL7("Quit or Invalid Device Entered.")
  1. U IO
  1. ;
  1. S HEADER(4)=" "
  1. S HEADER(5)=$$COLHEAD^BLRGMENU("File 9009026",22)
  1. S $E(HEADER(5),25)=$$COLHEAD^BLRGMENU("File 60",32)
  1. S $E(HEADER(5),60)="Order"
  1. S $E(HEADER(5),70)="Result"
  1. S HEADER(6)="Test Name"
  1. S $E(HEADER(6),25)="IEN"
  1. S $E(HEADER(6),35)="Description"
  1. S $E(HEADER(6),60)="Code"
  1. S $E(HEADER(6),70)="Code"
  1. ;
  1. S MAXLINES=IOSL-4,LINES=MAXLINES+10
  1. S (CNT,PG)=0
  1. S QFLG="NO"
  1. ;
  1. S TESTNAME=""
  1. Q "OK"
  1. ;
  1. MAPRPTL ; EP - Line of Data
  1. Q:$$MAPRPTB()="Q"
  1. ;
  1. I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HDRONE) Q:QFLG="Q"
  1. ;
  1. W $E(TESTNAME,1,22)
  1. W ?24,F60IEN
  1. W ?34,F60DESC
  1. W ?59,ORDCODE
  1. W ?69,RESULTC
  1. W !
  1. S LINES=LINES+1
  1. S CNT=CNT+1
  1. Q
  1. ;
  1. MAPRPTB() ; EP - Break out data
  1. S RLD1IEN=RLD1_","_BLRRL
  1. S F60IEN=$$GET1^DIQ(9009026.01,RLD1IEN,.02,"I")
  1. Q:+F60IEN<1 "Q"
  1. ;
  1. S F60DESC=$E($$GET1^DIQ(9009026.01,RLD1IEN,.02),1,22)
  1. ;
  1. S ORDCODE=$$GET1^DIQ(9009026.01,RLD1IEN,.03)
  1. S RESULTC=$$GET1^DIQ(9009026.01,RLD1IEN,.04)
  1. Q "OK"
  1. ;
  1. UMAPRPT ; EP - Un-Mapped Tests' Report
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q:$$UMAPRPTI()="Q"
  1. ;
  1. F S TESTNAME=$O(^BLRRL(BLRRL,1,"B",TESTNAME)) Q:TESTNAME=""!(QFLG="Q") D
  1. . S RLD1=0
  1. . F S RLD1=$O(^BLRRL(BLRRL,1,"B",TESTNAME,RLD1)) Q:RLD1<1!(QFLG="Q") D UMAPRPTL
  1. ;
  1. W !!,?4,CNT," Tests",!!
  1. D ^%ZISC
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. UMAPRPTI() ; EP - Initialization
  1. D SETBLRVS("UMAPRPT")
  1. S HEADER(1)="BLR Reference Lab File (#9009026)"
  1. ;
  1. Q:$$ASK(.BLRRL)="Q" "Q"
  1. ;
  1. D HEADERDT^BLRGMENU
  1. D HEADONE^BLRGMENU(.HDRONE)
  1. ;
  1. S HEADER(2)="Reference Lab: "_$$GET1^DIQ(9009026,BLRRL,.01)
  1. S HEADER(3)=$$CJ^XLFSTR("Non-Mapped Tests",IOM)
  1. D HEADERDT^BLRGMENU
  1. ;
  1. D ^%ZIS
  1. Q:POP $$BADSTUFQ^BLRUTIL7("Quit or Invalid Device Entered.")
  1. U IO
  1. ;
  1. S HEADER(4)=" "
  1. S $E(HEADER(5),60)="Order"
  1. S $E(HEADER(5),70)="Result"
  1. S HEADER(6)="File 9009026 Test Name"
  1. S $E(HEADER(6),60)="Code"
  1. S $E(HEADER(6),70)="Code"
  1. ;
  1. S MAXLINES=IOSL-4,LINES=MAXLINES+10
  1. S (CNT,PG)=0
  1. S QFLG="NO"
  1. ;
  1. S TESTNAME=""
  1. Q "OK"
  1. ;
  1. UMAPRPTL ; EP - Line of Data
  1. Q:$$UMAPRPTB()="Q"
  1. ;
  1. I LINES>MAXLINES D HEADERPG^BLRGMENU(.PG,.QFLG,HDRONE) Q:QFLG="Q"
  1. ;
  1. W $S($L($TR(TESTNAME," ")):$E(TESTNAME,1,22),1:"<"_RLD1_">")
  1. W ?59,ORDCODE
  1. W ?69,RESULTC
  1. W !
  1. S LINES=LINES+1
  1. S CNT=CNT+1
  1. Q
  1. ;
  1. UMAPRPTB() ; EP - Break out data
  1. S RLD1IEN=RLD1_","_BLRRL
  1. Q:+$$GET1^DIQ(9009026.01,RLD1IEN,.02,"I") "Q"
  1. ;
  1. S ORDCODE=$$GET1^DIQ(9009026.01,RLD1IEN,.03)
  1. S RESULTC=$$GET1^DIQ(9009026.01,RLD1IEN,.04)
  1. Q "OK"
  1. ;
  1. ;
  1. ; ============================= UTILITIES =============================
  1. ;
  1. JUSTNEW ; EP - Generic RPMS EXCLUSIVE NEW
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q
  1. ;
  1. SETBLRVS(TWO) ; EP - Set the BLRVERN variable(s)
  1. K BLRVERN,BLRVERN2
  1. ;
  1. S BLRVERN=$P($P($T(+1),";")," ")
  1. S:$L($G(TWO)) BLRVERN2=$G(TWO)
  1. Q
  1. ;
  1. TESTASK ; EP - Test the ASK function
  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. S HEADER(1)="BLR Reference Lab (#9009026)"
  1. S HEADER(2)="Mapping File 9009026 Tests to File 60 Tests"
  1. ;
  1. Q:$$ASK(.BLRRL)="Q"
  1. ;
  1. W !!,?4,"BLRRL:",BLRRL,!
  1. W ?9,$$GET1^DIQ(9009026,BLRRL,.01),!!
  1. ;
  1. Q
  1. ;
  1. TFIELDS ; EP - Test asking fields
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. D ^XBFMK
  1. S DIR(0)="PO^60:EMZ"
  1. D ^DIR
  1. I +$G(DIRUT)!(+Y<1) Q
  1. ;
  1. K FDA,ERRS
  1. S FDA(9009026.01,"1,1,",.02)=+Y
  1. D UPDATE^DIE("S","FDA",,"ERRS")
  1. ;
  1. D ^XBFMK
  1. ; Use Quest as the Ref Lab
  1. S (BLRRL,BLROR,RL)=1
  1. S DIC="^BLRRL("_BLRRL_",1,",DA(1)=RL,DIC(0)="AELMQZ"
  1. S DIE=DIC,DA=BLROR,DR=".03:10" ; Do NOT allow editing of .01 field
  1. D ^DIE
  1. S MAPPED=MAPPED+1
  1. Q