| 1 | ECXALAR2 ;ALB/TMD-LAR Extract Report of Untranslatable Results ; 9/17/02 5:43pm | 
|---|
| 2 | ;;3.0;DSS EXTRACTS;**46,51**;Dec 22, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ; entry point | 
|---|
| 5 | N COUNT | 
|---|
| 6 | K ^TMP($J) | 
|---|
| 7 | S COUNT=0 | 
|---|
| 8 | S ECSD=ECSD1,ECED=ECED+.3 | 
|---|
| 9 | D PROCESS | 
|---|
| 10 | Q | 
|---|
| 11 | ; | 
|---|
| 12 | PROCESS ; | 
|---|
| 13 | N QFLG,ECDTST,ECLTST,ECWCDA,ECWC,ECLOC,ECLRN,ECRES,EC2,ECN,ECRS,ECTRS,ECTRANS,ECTRIEN,ECSCDT,ECSCTM,ECXDFN | 
|---|
| 14 | K ^LAR(64.036) S LRSDT=$P(ECSD,"."),LREDT=$P(ECED,".") | 
|---|
| 15 | D ^LRCAPDAR | 
|---|
| 16 | ;quit if no completion date for API compile | 
|---|
| 17 | ;I '$P($G(^LAR(64.036,1,2,1,0)),U,4) S ECXERR=1 Q | 
|---|
| 18 | ;build local array of workload codes for local lab tests linked to | 
|---|
| 19 | ;DSS tests | 
|---|
| 20 | K ECLOC S ECDTST=0 | 
|---|
| 21 | F  S ECDTST=$O(^ECX(727.2,1,1,ECDTST)) Q:('ECDTST)!ECXERR  S ECLTST=0 D | 
|---|
| 22 | .F  S ECLTST=$O(^ECX(727.2,1,1,ECDTST,"LOC",ECLTST)) Q:('ECLTST)!ECXERR  D | 
|---|
| 23 | ..S ECLTIEN=+^ECX(727.2,1,1,ECDTST,"LOC",ECLTST,0) | 
|---|
| 24 | ..S ECWCDA=+$G(^LAB(60,ECLTIEN,64)) | 
|---|
| 25 | ..I ECWCDA S ECWC=$P(^LAM(ECWCDA,0),U,2),ECLOC(ECWCDA)=ECWC | 
|---|
| 26 | K ECLTIEN | 
|---|
| 27 | ;process temporary lab file #64.036 | 
|---|
| 28 | S QFLG=0,ECLRN=1 | 
|---|
| 29 | F  S ECLRN=$O(^LAR(64.036,ECLRN)) Q:('ECLRN)!(QFLG)!(ECXERR)  D | 
|---|
| 30 | .I $D(^LAR(64.036,ECLRN,0))  D | 
|---|
| 31 | ..S EC1=^LAR(64.036,ECLRN,0) | 
|---|
| 32 | ..Q:$P(EC1,U,2)="" | 
|---|
| 33 | ..S ECXDFN=$P(EC1,U,3) | 
|---|
| 34 | ..S ECSCDT=$P(EC1,U,9),ECSCTM=$P(EC1,U,10) | 
|---|
| 35 | ..;loop on results multiple | 
|---|
| 36 | ..S ECRES=0 | 
|---|
| 37 | ..F  S ECRES=$O(^LAR(64.036,ECLRN,1,ECRES)) Q:('ECRES)!(QFLG)!(ECXERR)  D | 
|---|
| 38 | ...I $D(^LAR(64.036,ECLRN,1,ECRES,0)) D  Q:QFLG | 
|---|
| 39 | ....S EC2=^LAR(64.036,ECLRN,1,ECRES,0) | 
|---|
| 40 | ....S ECN=$P(EC2,U),ECRS=$P(EC2,U,2),ECWC=+$P(EC2,U,4) | 
|---|
| 41 | ....S ECWC=$S($D(ECLOC(ECWC)):ECLOC(ECWC),1:"") | 
|---|
| 42 | ....; - Free text results translation | 
|---|
| 43 | ....S ECTRANS="",ECTRS=ECRS | 
|---|
| 44 | ....I +ECTRS S ECTRS=$TR(ECTRS,",","") D | 
|---|
| 45 | .....I (ECTRS?.N)!(ECTRS?.N1".".N) S ECRS=ECTRS | 
|---|
| 46 | ....F  Q:$E(ECTRS,1)'=" "  S ECTRS=$E(ECTRS,2,$L(ECTRS)) | 
|---|
| 47 | ....F  Q:$E(ECTRS,$L(ECTRS))'=" "  S ECTRS=$E(ECTRS,1,($L(ECTRS)-1)) | 
|---|
| 48 | ....I ECTRS]"" I ECTRS'?.N I ECTRS'?.N1".".N D  ;translate | 
|---|
| 49 | .....S ECTRS=$TR(ECRS,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") | 
|---|
| 50 | .....I ("<>"[$E(ECTRS))!($E(ECTRS,1,2)="GT")!($E(ECTRS,1,2)="LT") Q | 
|---|
| 51 | .....S ECTRIEN="",ECTRIEN=$O(^ECX(727.7,"B",ECTRS,ECTRIEN)) | 
|---|
| 52 | .....S ECTRANS=$S(ECTRIEN:$P(^ECX(727.7,ECTRIEN,0),U,2),1:"5~") | 
|---|
| 53 | ...I ECTRANS="5~" I ECWC]"" D FILE | 
|---|
| 54 | K ^LAR(64.036) S ^LAR(64.036,0)="LAB DSS LAR EXTRACT^64.036^" | 
|---|
| 55 | Q | 
|---|
| 56 | ; | 
|---|
| 57 | FILE ; put records in temp file to print later | 
|---|
| 58 | S COUNT=COUNT+1 | 
|---|
| 59 | S ^TMP($J,COUNT)=ECXDFN_U_ECSCDT_U_ECSCTM_U_ECN_U_ECRS | 
|---|
| 60 | Q | 
|---|