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

ECXALAR2.m

Go to the documentation of this file.
  1. ECXALAR2 ;ALB/TMD-LAR Extract Report of Untranslatable Results ; 8/9/06 9:45am
  1. ;;3.0;DSS EXTRACTS;**46,51,112**;Dec 22, 1997;Build 26
  1. ;
  1. EN ; entry point
  1. N COUNT
  1. K ^TMP($J)
  1. S COUNT=0
  1. S ECSD=ECSD1,ECED=ECED+.3
  1. D PROCESS
  1. Q
  1. ;
  1. PROCESS ;
  1. N QFLG,ECDTST,ECLTST,ECWCDA,ECWC,ECLOC,ECLRN,ECRES,EC2,ECN,ECRS,ECTRS,ECTRANS,ECTRIEN,ECSCDT,ECSCTM,ECXDFN
  1. K ^LAR(64.036) S LRSDT=$P(ECSD,"."),LREDT=$P(ECED,".")
  1. D ^LRCAPDAR
  1. ;quit if no completion date for API compile
  1. ;I '$P($G(^LAR(64.036,1,2,1,0)),U,4) S ECXERR=1 Q
  1. ;build local array of workload codes from DSS LOINC codes
  1. N ECLOINC,ECA K ECLOC,ECA S ECLOINC=0
  1. S ECA("ALL")="" D LOINC^ECXUTL6(.ECA) ;builds ^tmp
  1. F S ECLOINC=$O(^TMP($J,"ECXUTL6",ECLOINC)) Q:(ECLOINC="") D
  1. . S ECWCDA=0 F S ECWCDA=$O(^TMP($J,"ECXUTL6",ECLOINC,ECWCDA)) Q:('ECWCDA) D
  1. .. I ECWCDA S ECWC=$P(^LAM(ECWCDA,0),U,2),ECLOC(ECWCDA)=ECWC
  1. K ECLOINC,ECA
  1. ;process temporary lab file #64.036
  1. S QFLG=0,ECLRN=1
  1. F S ECLRN=$O(^LAR(64.036,ECLRN)) Q:('ECLRN)!(QFLG)!(ECXERR) D
  1. .I $D(^LAR(64.036,ECLRN,0)) D
  1. ..S EC1=^LAR(64.036,ECLRN,0)
  1. ..Q:$P(EC1,U,2)=""
  1. ..S ECXDFN=$P(EC1,U,3)
  1. ..S ECSCDT=$P(EC1,U,9),ECSCTM=$P(EC1,U,10)
  1. ..;loop on results multiple
  1. ..S ECRES=0
  1. ..F S ECRES=$O(^LAR(64.036,ECLRN,1,ECRES)) Q:('ECRES)!(QFLG)!(ECXERR) D
  1. ...I $D(^LAR(64.036,ECLRN,1,ECRES,0)) D Q:QFLG
  1. ....S EC2=^LAR(64.036,ECLRN,1,ECRES,0)
  1. ....S ECN=$P(EC2,U),ECRS=$P(EC2,U,2),ECWC=+$P(EC2,U,4)
  1. ....S ECWC=$S($D(ECLOC(ECWC)):ECLOC(ECWC),1:"")
  1. ....; - Free text results translation
  1. ....S ECTRANS="",ECTRS=ECRS
  1. ....I +ECTRS S ECTRS=$TR(ECTRS,",","") D
  1. .....I (ECTRS?.N)!(ECTRS?.N1".".N) S ECRS=ECTRS
  1. ....F Q:$E(ECTRS,1)'=" " S ECTRS=$E(ECTRS,2,$L(ECTRS))
  1. ....F Q:$E(ECTRS,$L(ECTRS))'=" " S ECTRS=$E(ECTRS,1,($L(ECTRS)-1))
  1. ....I ECTRS]"" I ECTRS'?.N I ECTRS'?.N1".".N D ;translate
  1. .....S ECTRS=$TR(ECRS,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. .....I ("<>"[$E(ECTRS))!($E(ECTRS,1,2)="GT")!($E(ECTRS,1,2)="LT") Q
  1. .....S ECTRIEN="",ECTRIEN=$O(^ECX(727.7,"B",ECTRS,ECTRIEN))
  1. .....S ECTRANS=$S(ECTRIEN:$P(^ECX(727.7,ECTRIEN,0),U,2),1:"5~")
  1. ...I ECTRANS="5~" I ECWC]"" D FILE
  1. K ^LAR(64.036) S ^LAR(64.036,0)="LAB DSS LAR EXTRACT^64.036^"
  1. Q
  1. ;
  1. FILE ; put records in temp file to print later
  1. S COUNT=COUNT+1
  1. S ^TMP($J,"ECXALAR2",COUNT)=ECXDFN_U_ECSCDT_U_ECSCTM_U_ECN_U_ECRS
  1. Q