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
|
---|