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

BLRRLMP.m

Go to the documentation of this file.
  1. BLRRLMP ; cmi/anch/maw - BLR Read Reference Lab into ^INTHU ;
  1. ;;5.2;LR;**1021**;Jul 27, 2006
  1. ;;1.0;BLR REFERENCE LAB;;MAR 14, 2005
  1. ;
  1. ;
  1. ;
  1. ;this routine will grab a file from UNIX and stuff it into the ^INTHU
  1. ;global for processing
  1. ;
  1. MAIN ;-- this is the main routine driver
  1. D ^%ZISC
  1. K ^TMP("BLRRL",$J)
  1. S BLRY=$$CHK^BHLBCK("OUTPUT CONTROLLER")
  1. D READ(DUZ(2))
  1. D EOJ
  1. Q
  1. ;
  1. READ(BLRRLI) ;-- read the file in
  1. ;cmi/maw we need to set up dynamic directory reads here
  1. S BLRRL=$P($G(^BLRSITE(BLRRLI,"RL")),U)
  1. I $G(BLRRL)="" D Q
  1. . Q:$D(ZTQUEUED)
  1. . W !,"Reference Lab not defined in BLR MASTER CONTROL File"
  1. S BLRRLNM=$P($G(^BLRRL(BLRRL,0)),U)
  1. S BLRDIR=$P($G(^BLRRL(BLRRL,0)),U,16)
  1. S BLRSDIR=$P($G(^BLRRL(BLRRL,0)),U,9)
  1. S BLROPS=$P($G(^AUTTSITE(1,0)),U,21)
  1. S BLRFST=$P($G(^BLRRL(BLRRL,0)),U,7)_"*"
  1. I '$D(ZTQUEUED) D
  1. . W !!,"Now reading in reference lab file from directory "_BLRDIR
  1. S BLRFLST=$$LIST^%ZISH(BLRDIR,BLRFST,.BLRLST)
  1. I $G(BLRRLNM)="LABCORP" D LC(.BLRLST,"") Q
  1. I $G(BLRRLNM)="UNILAB" D LC(.BLRLST,"") Q
  1. I $P($G(^BLRRL(BLRRL,0)),U,8) D CR(.BLRLST,"") Q
  1. D CRLF(.BLRLST,"")
  1. Q
  1. ;
  1. LC(BLRLST,RFLG) ;-- parse specifically for labcorp
  1. S BLRFDA=0 F S BLRFDA=$O(BLRLST(BLRFDA)) Q:'BLRFDA D
  1. . D ^%ZISC
  1. . S BLRFNM=$G(BLRLST(BLRFDA))
  1. . Q:BLRFNM["ord" ;testing
  1. . S Y=$$OPEN^%ZISH(BLRDIR,BLRFNM,"R")
  1. . I $G(Y),'$D(ZTQUEUED) W !,"Error Opening Device" Q
  1. . S CNTR=1
  1. . F I=1:1 U IO R BLRT:DTIME D Q:BLRT=""
  1. .. Q:BLRT=""
  1. .. I $E($G(BLRT),1,3)="MSH",CNTR>1 D STUFF K ^TMP("BLRRL",$J) S CNTR=1
  1. .. S ^TMP("BLRRL",$J,CNTR)=$G(BLRT)
  1. .. S CNTR=CNTR+1
  1. . S BLRLMSG=$$LOG^BLRRLU(BLRFNM,"R",DUZ)
  1. . D STUFF
  1. . D ^%ZISC
  1. . I '$G(RFLG) D
  1. .. W:'$D(ZTQUEUED) !,"Now backing up read in file",!
  1. .. D MOVE(BLRDIR,BLRFNM,BLROPS,BLRSDIR)
  1. . K ^TMP("BLRRL",$J)
  1. Q
  1. ;
  1. CRLF(BLRLST,RFLG) ;-- parse by carriage return line feed
  1. S BLRFDA=0 F S BLRFDA=$O(BLRLST(BLRFDA)) Q:'BLRFDA D
  1. . D ^%ZISC
  1. . S BLRFNM=$G(BLRLST(BLRFDA))
  1. . Q:BLRFNM["ord" ;testing
  1. . S Y=$$OPEN^%ZISH(BLRDIR,BLRFNM,"R")
  1. . I $G(Y),'$D(ZTQUEUED) W !,"Error Opening Device" Q
  1. . S CNTR=1
  1. . F I=1:1 U IO R BLRT:DTIME D Q:BLRT=""
  1. .. Q:BLRT=""
  1. .. S ^TMP("BLRRL",$J,CNTR)=$G(BLRT)
  1. .. S CNTR=CNTR+1
  1. . S BLRLMSG=$$LOG^BLRRLU(BLRFNM,"R",DUZ)
  1. . D STUFF
  1. . D ^%ZISC
  1. . I '$G(RFLG) D
  1. .. W:'$D(ZTQUEUED) !,"Now backing up read in file",!
  1. .. D MOVE(BLRDIR,BLRFNM,BLROPS,BLRSDIR)
  1. . K ^TMP("BLRRL",$J)
  1. Q
  1. ;
  1. CR(BLRLST,RFLG) ;-- parse message by CR only
  1. S BLRFDA=0 F S BLRFDA=$O(BLRLST(BLRFDA)) Q:'BLRFDA D
  1. . D ^%ZISC
  1. . S BLRFNM=$G(BLRLST(BLRFDA))
  1. . Q:BLRFNM["ord" ;testing
  1. . S Y=$$OPEN^%ZISH(BLRDIR,BLRFNM,"R")
  1. . I $G(Y),'$D(ZTQUEUED) W !,"Error Opening Device" Q
  1. . F I=1:1 U IO R BLRT:DTIME D Q:BLRT=""
  1. .. S CNTR=1
  1. .. Q:BLRT=""
  1. .. F J=1:1 D Q:$P($G(BLRT),$C(10),J)=""
  1. ... Q:$P($G(BLRT),$C(10),J)=""
  1. ... I $E($P($G(BLRT),$C(10),J),1,3)="MSH",CNTR>1 D STUFF K ^TMP("BLRRL",$J) S CNTR=1
  1. ... S ^TMP("BLRRL",$J,CNTR)=$P($G(BLRT),$C(10),J)
  1. ... S CNTR=CNTR+1
  1. .. S BLRLMSG=$$LOG^BLRRLU(BLRFNM,"R",DUZ)
  1. .. D STUFF
  1. .. D ^%ZISC
  1. .. I '$G(RFLG) D
  1. ... W:'$D(ZTQUEUED) !,"Now backing up read in file",!
  1. ... D MOVE(BLRDIR,BLRFNM,BLROPS,BLRSDIR)
  1. .. K ^TMP("BLRRL",$J)
  1. Q
  1. ;
  1. STUFF ;-- stuff the information into ^INTHU
  1. D NOW^%DTC S BLRDTM=$G(%)
  1. S BLRH=$H
  1. S BLRDEST=$O(^INRHD("B","HL IHS LAB R01 "_BLRRLNM_" IN",0))
  1. S BLRSTAT="N"
  1. S BLRIO="I"
  1. S BLRPRIO=1
  1. K DD,DO
  1. S DIC="^INTHU(",DIC(0)="L",X=BLRDTM
  1. S DIC("DR")=".02////"_BLRDEST_";.03////"_BLRSTAT_";.1////"_BLRIO
  1. S DIC("DR")=DIC("DR")_";.16///"_BLRPRIO
  1. D FILE^DICN
  1. S BLRUIF=+Y
  1. S BLRLSMSG=$$LOGM^BLRRLU(BLRFNM,BLRUIF)
  1. S BLRDA=0 F S BLRDA=$O(^TMP("BLRRL",$J,BLRDA)) Q:'BLRDA D
  1. . M ^INTHU(BLRUIF,3,BLRDA,0)=^TMP("BLRRL",$J,BLRDA)
  1. . S ^INTHU(BLRUIF,3,BLRDA,0)=^INTHU(BLRUIF,3,BLRDA,0)_"|CR|"
  1. S ^INLHSCH(BLRPRIO,BLRH,BLRUIF)=""
  1. ;S ^INLHDEST(BLRDEST,0,$H,BLRUIF)=""
  1. Q
  1. ;
  1. REDO(BLRRLI) ; EP -- redo the import
  1. ;cmi/maw we need to set up dynamic directory reads here
  1. S BLRRL=$P($G(^BLRSITE(BLRRLI,"RL")),U)
  1. I $G(BLRRL)="" D Q
  1. . Q:$D(ZTQUEUED)
  1. . W !,"Reference Lab not defined in BLR MASTER CONTROL File"
  1. S BLRRLNM=$P($G(^BLRRL(BLRRL,0)),U)
  1. S BLRDIR=$P($G(^BLRRL(BLRRL,0)),U,2)
  1. S BLRSDIR=$P($G(^BLRRL(BLRRL,0)),U,9)
  1. S BLROPS=$P($G(^AUTTSITE(1,0)),U,21)
  1. S BLRFST=$P($G(^BLRRL(BLRRL,0)),U,7)_"*"
  1. S BLRFLST=$$LIST(BLRSDIR,BLRFST)
  1. I BLRFLST<1 W !,"No Files in the directory, goodbye" Q
  1. S BLRLSDA=0 F S BLRLSDA=$O(BLRLST(BLRLSDA)) Q:'BLRLSDA D
  1. . W !,BLRLSDA_" - "_$G(BLRLST(BLRLSDA))
  1. S DIR(0)="L^1:"_BLRFLST,DIR("A")="Reimport which file(s) "
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S BLRFNMI=Y
  1. F BLRI=1:1:(BLRFLST+1) S BLRFLI=$P(BLRFNMI,",",BLRI) Q:BLRFLI="" D
  1. . S BLRFNM=$G(BLRLST(BLRFLI))
  1. . S BLRFILES(BLRFLI)=BLRFNM
  1. . I '$D(ZTQUEUED) D
  1. .. W !!,"Now reading in reference lab file "_BLRFNM_" from directory "_BLRSDIR
  1. K BLRLST
  1. I $P($G(^BLRRL(BLRRL,0)),U,8) D CR(.BLRFILES,1),EOJ Q
  1. D CRLF(.BLRFILES,1),EOJ
  1. Q
  1. ;
  1. MOVE(DIR,FN,OPS,SDIR) ;-- move files to storage directory
  1. S BLRMVMSG=$$MV^%ZISH(DIR,FN,SDIR,FN) ;maw new 4/16/03
  1. ;cmi/maw original code below
  1. ;I '$G(OPS) S OPS=1
  1. ;I OPS=1 D Q
  1. ;S X=$$TERMINAL^%HOSTCMD("mv "_DIR_FN_" "_SDIR)
  1. ;S X=$ZOS(3,DIR_FN,SDIR_FN)
  1. Q
  1. ;
  1. LIST(DIR,LST) ;-- get a list of files in the directory
  1. S Y=$$LIST^%ZISH(DIR,LST,.BLRLST)
  1. Q $O(BLRLST(""),-1)
  1. ;
  1. EOJ ;-- kill variables and quit
  1. D EN^XBVK("BLR")
  1. K ^BLRRL($J)
  1. Q
  1. ;