| 1 | ECXLABO ;BIR/MAM,DMA,CML-Lab Extract for DSS (Old Version - W/O LMIP Codes); [ 11/22/96  5:28 PM ] | 
|---|
| 2 | ;;3.0;DSS EXTRACTS;**11**;Dec 22, 1997 | 
|---|
| 3 | V ;;2.0T11;DSS EXTRACTS;**24**;DEC 18,1996 | 
|---|
| 4 | ;This routine was originally called ECXLAB1, as called from the DSS menu.  Now ECXLAB1 is the driver routine to call ECXLABO (old format) or ECXLABN (new format) | 
|---|
| 5 | D SETUP,^ECXTRAC | 
|---|
| 6 | END D ^ECXKILL | 
|---|
| 7 | Q | 
|---|
| 8 | START ; entry when queued | 
|---|
| 9 | S QFLG=0 | 
|---|
| 10 | S ECED=ECED+.3 | 
|---|
| 11 | K ECXDD D FIELD^DID(69.01,7,,"SPECIFIER","ECXDD") S ECPROF=$E(+$P(ECXDD("SPECIFIER"),"P",2)) K ECXDD ; provider points to | 
|---|
| 12 | S ECD=ECSD1 F  S ECD=$O(^LRO(69,ECD)),ECLRN=0 Q:'ECD  Q:ECD>ECED  F  S ECLRN=$O(^LRO(69,ECD,1,ECLRN)) Q:'ECLRN  I $D(^(ECLRN,0)) S EC1=^(0),ECDOC=ECPROF_$P(EC1,"^",6),ECLOC=$P(EC1,"^",9),EC=$G(^LR(+EC1,0)) I EC]"" D  Q:QFLG | 
|---|
| 13 | .S ECDT=$P(EC1,"^",5),ECTM=$$ECXTIME^ECXUTL(ECDT) | 
|---|
| 14 | .S (ECNA,ECSN,ECMN,ECTREAT,ECPTTM,ECPTPR)="",ECA=1 | 
|---|
| 15 | .S ECF=$P(EC,"^",2),ECIFN=$P(EC,"^",3) | 
|---|
| 16 | .I ECF=2,$D(^DPT(ECIFN,0)) D | 
|---|
| 17 | ..S EC0=^(0),ECNA=$E($P($P(EC0,"^"),",")_"    ",1,4),ECSN=$P(EC0,"^",9) K VAIP S VAIP("D")=ECD,DFN=ECIFN D IN5^VADPT S ECMN=VAIP(1) I ECMN S ECA=3,ECTREAT=$P($G(^DIC(45.7,+VAIP(8),0)),"^",2) | 
|---|
| 18 | ..S ECPTTM=+$$OUTPTTM^ECXUTL3(DFN,ECDT) | 
|---|
| 19 | ..S:ECPTTM=0 ECPTTM="" | 
|---|
| 20 | ..S ECPTPR=+$$OUTPTPR^ECXUTL3(DFN,ECDT) | 
|---|
| 21 | ..S:ECPTPR=0 ECPTPR="" | 
|---|
| 22 | .K VAIP,VAERR | 
|---|
| 23 | .I ECF=67 S ECSN="000123456",ECNA="RFRL" | 
|---|
| 24 | .I ECF=67.1 S ECSN=888888888,ECNA="RSCH" | 
|---|
| 25 | .I ECNA]"" S J=0 F  S J=$O(^LRO(69,ECD,1,ECLRN,2,J)) Q:'J  S EC=$G(^(J,0)) I EC]"" S ECT=$P(EC,"^"),ECURG=$P(EC,"^",2),EC=+$P(EC,"^",4),ECACA=EC_"^"_$P($G(^LRO(68,EC,0)),"^",11) I EC D | 
|---|
| 26 | ..S ECODE=ECINST_"^"_ECIFN_"^"_ECSN_"^"_ECNA_"^"_ECA_"^"_$$ECXDATE^ECXUTL(ECD,ECXYM)_"^"_ECACA_"^"_ECT_"^"_ECURG_"^"_ECTREAT_"^"_ECLOC_"^"_ECDOC_"^"_ECMN_"^"_ECF_"^"_ECTM_"^^"_ECPTTM_"^"_ECPTPR_"^" | 
|---|
| 27 | ..;inst^patient (or thing) number^SSN (or equivalent)^name^in/out^day^accession area^abbreviation^test^urgency^treating spec^location^provider and file^ | 
|---|
| 28 | ..;movement number^file^time^workload code^primary care team^primary care provider | 
|---|
| 29 | ..;(ECACA=acc area^abbreviation) | 
|---|
| 30 | ..S EC7=-$O(^ECX(ECFILE,"AINV","")) F  S EC7=EC7+1 Q:'$D(^ECX(ECFILE,EC7)) | 
|---|
| 31 | ..S ^ECX(ECFILE,EC7,0)=EC7_"^"_EC23_"^"_ECODE,ECRN=ECRN+1 S DA=EC7,DIK="^ECX("_ECFILE_"," D IX^DIK K DIK,DA | 
|---|
| 32 | .I $D(ZTQUEUED),(ECRN>499),'(ECRN#500),$$S^%ZTLOAD S QFLG=1 | 
|---|
| 33 | Q | 
|---|
| 34 | ; | 
|---|
| 35 | SETUP S ECPACK="Laboratory",ECPIECE=1,ECRTN="START^ECXLABO",ECGRP="LAB",ECHEAD="LAB",ECFILE=727.813,ECVER=3 | 
|---|
| 36 | Q | 
|---|
| 37 | ; | 
|---|
| 38 | ; | 
|---|
| 39 | QUE ; entry point for the background requeuing handled by ECXTAUTO | 
|---|
| 40 | D SETUP,QUE^ECXTAUTO,^ECXKILL Q | 
|---|