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

APCHS3L.m

Go to the documentation of this file.
  1. APCHS3L ; IHS/TUCSON/LAB - PART 3A OF APCHS -- SUMMARY PRODUCTION COMPONENTS ;
  1. ;;2.0;IHS PCC SUITE;**2**;MAY 14, 2009
  1. ;
  1. MRL ; ******************** MOST RECENT LAB * 9000010.09 *******
  1. I '$D(^AUPNVLAB("AA",APCHSPAT)) D EKGLAB G MRLX
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. X:'APCHSNPG APCHSBRK
  1. ; <SETUP>
  1. ; <PROCESS>
  1. D LBLD,LPRT
  1. D EKGLAB
  1. ;now display lab refusals
  1. S APCHST="LAB",APCHSFN=60 D DISPREF^APCHS3C
  1. K APCHST,APCHSFN
  1. ; <CLEANUP>
  1. MRLX K APCHSLT,APCHSLR,APCHSLTX,APCHSLRT,APCHSLL,APCHSLW,APCHSNMX,APCHSDFN,APCHSIVD,APCHSLTD,APCHSN,Y
  1. K ^TMP($J,"APCHS"),^TMP($J,"APCHS1")
  1. Q
  1. ; <BUILD>
  1. LBLD K ^TMP($J,"APCHS","LAB"),^TMP($J,"APCHS1")
  1. S APCHSLRT="" F APCHSQ=0:0 S APCHSLRT=$O(^AUPNVLAB("AA",APCHSPAT,APCHSLRT)) Q:APCHSLRT="" D LDATE
  1. D REORDER
  1. Q
  1. REORDER ;reorder by accession, parent and child
  1. S X=0 F S X=$O(^TMP($J,"APCHS","LAB",X)) Q:X'=+X D
  1. .S Y=$P(^TMP($J,"APCHS","LAB",X),U,3)
  1. .S %=$E($P(^AUPNVLAB(Y,0),U,6),1,2) S:%="" %="ZZ"
  1. .S %1=$S($P($G(^AUPNVLAB(Y,12)),U,8)]"":$P(^AUPNVLAB(Y,12),U,8),1:Y)
  1. .S %2=$S($P($G(^AUPNVLAB(Y,12)),U,8)="":0,1:Y)
  1. .S ^TMP($J,"APCHS1",%,%1,%2,X)=^TMP($J,"APCHS","LAB",X)
  1. .Q
  1. K ^TMP($J,"APCHS")
  1. Q
  1. LDATE S APCHSIVD=$O(^AUPNVLAB("AA",APCHSPAT,APCHSLRT,0))
  1. S APCHSDFN=0 F S APCHSDFN=$O(^AUPNVLAB("AA",APCHSPAT,APCHSLRT,APCHSIVD,APCHSDFN)) Q:APCHSDFN'=+APCHSDFN D:APCHSIVD&(APCHSIVD'>APCHSDLM) LSET
  1. Q
  1. LSET ;
  1. S APCHSN=^AUPNVLAB(APCHSDFN,0),APCHSLR=$P(APCHSN,U,4)
  1. I $P($G(^AUPNVLAB(APCHSDFN,11)),U,9)="R",APCHSLR="",$$VALI^XBDIQ1(60,$P(APCHSN,U),999999901) Q ;do not display tests that are resulted, result is null and flag says don't display
  1. I APCHSLR]"",APCHSLR'=" ",$P(APCHSN,U,5)]"" S APCHSLR=APCHSLR_" ("_$P(APCHSN,U,5)_")"
  1. I APCHSLR="",$P($G(^TMP($J,"APCHS","LAB",APCHSLRT)),U,2)]"" Q
  1. S ^TMP($J,"APCHS","LAB",APCHSLRT)=(-APCHSIVD\1+9999999)_U_APCHSLR_U_APCHSDFN S APCHSLTX=$P(^LAB(60,APCHSLRT,0),U,1)
  1. Q
  1. ; <PRINT>
  1. LPRT ;
  1. W ?55,"UNITS",?64,"REF RANGE",!
  1. S APCHSACC="" F S APCHSACC=$O(^TMP($J,"APCHS1",APCHSACC)) Q:APCHSACC=""!($D(APCHSQIT)) D
  1. .S APCHSPAR=0 F S APCHSPAR=$O(^TMP($J,"APCHS1",APCHSACC,APCHSPAR)) Q:APCHSPAR'=+APCHSPAR!($D(APCHSQIT)) D
  1. ..S APCHCHIL="" F S APCHCHIL=$O(^TMP($J,"APCHS1",APCHSACC,APCHSPAR,APCHCHIL)) Q:APCHCHIL="" D
  1. ...S APCHSLT=$O(^TMP($J,"APCHS1",APCHSACC,APCHSPAR,APCHCHIL,0))
  1. ...S APCHSDFN=$P(^TMP($J,"APCHS1",APCHSACC,APCHSPAR,APCHCHIL,APCHSLT),U,3)
  1. ...S Y=$P(^TMP($J,"APCHS1",APCHSACC,APCHSPAR,APCHCHIL,APCHSLT),U,1),APCHSLR=$P(^TMP($J,"APCHS1",APCHSACC,APCHSPAR,APCHCHIL,APCHSLT),U,2) X APCHSCVD S APCHSLTD=Y
  1. ...D LPRT2
  1. K APCHCHIL,APCHSPAR,APCHSACC,APCHSLT
  1. Q
  1. LPRT2 ;
  1. S APCHSLTX=$P(^LAB(60,APCHSLT,0),U)
  1. X APCHSCKP Q:$D(APCHSQIT) I APCHSNPG W ?55,"UNITS",?64,"REF RANGE",!
  1. W:APCHCHIL " " W APCHSLTX,?35,APCHSLTD,?45,APCHSLR
  1. W ?55,$P($G(^AUPNVLAB(APCHSDFN,11)),U)
  1. I $P($G(^AUPNVLAB(APCHSDFN,11)),U,4)]""!($P($G(^AUPNVLAB(APCHSDFN,11)),U,5)]"") W ?64,$P(^AUPNVLAB(APCHSDFN,11),U,4)_"-"_$P(^AUPNVLAB(APCHSDFN,11),U,5)
  1. I '$P(^APCHSCTL(APCHSTYP,0),U,7) W ! Q
  1. ;print out comments per Dorothy
  1. S APCHSX=0 F S APCHSX=$O(^AUPNVLAB(APCHSDFN,21,APCHSX)) Q:APCHSX'=+APCHSX!($D(APCHSQIT)) D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W !,?1,^AUPNVLAB(APCHSDFN,21,APCHSX,0)
  1. F APCHSX=1:1:3 Q:$D(APCHSQIT) I $P($G(^AUPNVLAB(APCHSDFN,13)),U,APCHSX)]"" D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W !,$P(^AUPNVLAB(APCHSDFN,13),U,APCHSX)
  1. ;W ?78," ",$P($G(^AUPNVLAB(APCHSDFN,11)),U,9)
  1. W !
  1. Q
  1. ;
  1. EKGLAB ;ENTRY POINT - EKG display in most recent lab panel
  1. Q:'$D(^AUPNVDXP("AC",APCHSPAT))
  1. K APCHS
  1. S APCHSERR=$$START1^APCLDF(APCHSPAT_"^LAST DIAGNOSTIC ECG SUMMARY","APCHS(")
  1. G:APCHSERR EKGLABX
  1. ; *array APCHS(1)="DATE^RESULT^DIAG PROC^VDIAG PROCEDURE IEN^AUPNVDXP^VISIT IEN"
  1. K APCHSERR
  1. S APCHSIVD=$S($D(APCHS(1)):9999999-$P($P(APCHS(1),U,1),".",1),1:"")
  1. Q:'APCHSIVD!(APCHSIVD>APCHSDLM)
  1. S (APCHSLTX,APCHSLT)="EKG"
  1. S APCHSLRT("EKG")=$P(APCHS(1),U,1)_"^"_$P(APCHS(1),U,2)
  1. D EKGPRT ; computes/prints ekg info
  1. EKGLABX ;
  1. K APCHSERR,APCHS(1)
  1. Q
  1. ;
  1. EKGPRT ;computers/prints ekg info
  1. S Y=$P(APCHSLRT(APCHSLT),U,1) X APCHSCVD S APCHSLTD=Y
  1. S APCHSLR=$P(APCHSLRT(APCHSLT),U,2)
  1. S APCHSLR=$S(APCHSLR="N":"NORMAL",APCHSLR="A":"ABNORMAL",APCHSLR="B":"BORDERLINE",1:"<none recorded>") ;IHS/CMI/LAB added borderline
  1. S APCHSLW=$S($G(APCHSLW):APCHSLW,1:28)
  1. W !,APCHSLTX,?APCHSLW,APCHSLTD," ",APCHSLR,!
  1. Q