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

LRRP2.m

Go to the documentation of this file.
  1. LRRP2 ;DALOI/STAFF - INTERIM REPORT ;02/28/12 20:08
  1. ;;5.2;LAB SERVICE;**106,121,221,283,300,350**;Sep 27, 1994;Build 230
  1. ;
  1. ; from option LRRP2
  1. BEGIN ;
  1. D INIT K DIC S LRPRTPG=0
  1. D ^LRDPA D:LRDFN>0 START G:LRDFN<0 END G BEGIN
  1. END ;
  1. D ^LRRK
  1. Q
  1. ;
  1. ;
  1. CUM ;ENTRY POINT FOR CUMULATIVE OPTIONS- LRAC PT,LRAC 1 PAGE, LRAC MANUAL
  1. S LRPRTPG=1
  1. ;
  1. SUM ;ENTRY POINT FROM SUM^LRACM2- PRINT A FULL PATIENT SUMMARY
  1. D INIT K DIC D ^LRDPA D:LRDFN>0 START G:LRDFN<0 END
  1. Q
  1. ;
  1. ;
  1. START ;
  1. I $O(^LR(LRDFN,0))="" W !,"NO LAB DATA ON THIS PATIENT!",$C(7) Q
  1. S LRLAB=$S($D(LRLABKY):1,1:0)
  1. I $D(LRCUM) S LRIDT=0,LREDT=9999999
  1. E D
  1. . S LREDT="T-7" D ^LRWU3 Q:LREND
  1. . S LRIDT=9999999-LRSDT,LREDT=9999999-LREDT
  1. I LREND Q
  1. ;
  1. ;
  1. ASKPG ;
  1. I '$G(LRPRTPG) D
  1. . N DIR,DIROUT,DIRUT,X,Y
  1. . S DIR(0)="Y",DIR("A")="Print address page",DIR("B")="NO",LRPRTPG=0
  1. . D ^DIR K DIR
  1. . I Y S LRPRTPG=1
  1. S %ZIS="Q",ZTSAVE("DFN")="",ZTSAVE("LR*")="",ZTRTN="SDQ^LRRP2"
  1. D IO^LRWU
  1. Q
  1. ;
  1. ;
  1. SDQ ; dequeued
  1. S:$D(ZTQUEUED) ZTREQ="@" U IO D PT^LRX
  1. F S LRCNIDT=+$O(^LR(LRDFN,"CH",LRIDT)),LRMNIDT=+$O(^LR(LRDFN,"MI",LRIDT)) Q:'LRCNIDT&'LRMNIDT D SWITCH Q:LREND!LRSTOP!(LRIDT>LREDT)
  1. D FOOT^LRRP1
  1. D:$G(LRPRTPG) PLSPG
  1. Q
  1. ;
  1. ;
  1. SWITCH I LRCNIDT=LRMNIDT S LRIDT=LRCNIDT Q:LRIDT>LREDT D CH,MI Q
  1. I 'LRMNIDT S LRIDT=LRCNIDT Q:LRIDT>LREDT D CH Q
  1. I 'LRCNIDT S LRIDT=LRMNIDT Q:LRIDT>LREDT D MI Q
  1. I LRCNIDT<LRMNIDT S LRIDT=LRCNIDT Q:LRIDT>LREDT D CH Q
  1. S LRIDT=LRMNIDT Q:LRIDT>LREDT D MI
  1. Q
  1. ;
  1. GENP ;
  1. W !!,"Too many tests! Will use alternate format. May show extra tests.",!
  1. S LREDT="T-7" D ^LRWU3 Q:LREND
  1. S LRSDT=9999999-LRSDT,LREDT=9999999-LREDT
  1. K ^TMP("LR",$J,"T"),LRORD,LRTSTS
  1. S ZTSAVE("^TMP(""LR"",$J,")="",ZTSAVE("DFN")="",ZTRTN="GDQ^LRRP2" D IO^LRWU
  1. Q
  1. ;
  1. ;
  1. GDQ ;dequeued
  1. S:$D(ZTQUEUED) ZTREQ="@" U IO D PT^LRX
  1. S LRSUB="" F S LRSUB=$O(^TMP("LR",$J,"TMP",LRSUB)) Q:LRSUB="" S X=+$P(LRSUB,";",2),^TMP("LR",$J,"T",X)=""
  1. S LRIDT=LRSDT F S LRIDT=$O(^LR(LRDFN,"CH",LRIDT)) Q:LRIDT<1!(LRIDT>LREDT) D GEN2 Q:LREND!LRSTOP
  1. K ^TMP("LR",$J,"T"),^TMP("LR",$J,"TMP"),LRSDT,LREDT,LRTSTS,LRSUB,LRIDT
  1. Q
  1. ;
  1. ;
  1. GEN2 ;
  1. S LRTN=0 F S LRTN=$O(^LR(LRDFN,"CH",LRIDT,LRTN)) Q:LRTN<1 I $D(^TMP("LR",$J,"T",LRTN)) D CH Q
  1. I '$P($G(^LR(LRDFN,"CH",LRIDT,0)),U,3),$O(^LR(LRDFN,"CH",LRIDT,1,0)) D Q:'$G(LRCAN) D CH
  1. . S LRCAN=0 F S LRCAN=+$O(^LR(LRDFN,"CH",LRIDT,1,LRCAN)) Q:LRCAN<1 Q:$E($G(^(LRCAN,0)))="*"
  1. Q
  1. ;
  1. ;
  1. AIDQUE ;
  1. D INIT
  1. S LRLAB=$S($D(LRLABKY):1,1:0)
  1. K ^TMP($J)
  1. S LROCE=$S($D(LROC):LROC,1:""),LROC=$S(LROCE="":$O(^LAB(64.6,"AI","")),1:LROC)
  1. D:LROC'="" AI2
  1. F S LROC=$O(^LAB(64.6,"AI",LROC)) Q:LROC=""!($L(LROCE)&(LROC'=LROCE)) D AI2
  1. S LROC="UNKNOWN" D AI2
  1. ;
  1. ;
  1. PRT ; Print sorted data
  1. U IO K VA D KVAR^VADPT S LREND=0
  1. I $O(^TMP($J,0))="" D Q
  1. . W !!?10,"No Interim report Patients to Print "
  1. . W !?20,$$HTE^XLFDT($H),!!
  1. . D QUIT
  1. S LROC=""
  1. F S LROC=$O(^TMP($J,LROC)) Q:LROC=""!($G(LREND)) D
  1. . S LRPHY=""
  1. . F S LRPHY=$O(^TMP($J,LROC,LRPHY)) Q:LRPHY=""!($G(LREND)) D
  1. . . S LRSSN=""
  1. . . F S LRSSN=$O(^TMP($J,LROC,LRPHY,LRSSN)) Q:LRSSN=""!($G(LREND)) D
  1. . . . S LRDFN=0
  1. . . . F S LRHF=1,LRDFN=$O(^TMP($J,LROC,LRPHY,LRSSN,LRDFN)) Q:LRDFN<1!($G(LREND)) D
  1. . . . . S LRIDT=0
  1. . . . . F S LRIDT=$O(^TMP($J,LROC,LRPHY,LRSSN,LRDFN,LRIDT)) Q:LRIDT<1!($G(LREND)) D
  1. . . . . . S LRSS="",PNM=^(LRIDT),SSN=$P(PNM,U,2),AGE=$P(PNM,U,3),SEX=$P(PNM,U,4),PNM=$P(PNM,U),LRFOOT=0
  1. . . . . . D:$D(^LR(LRDFN,"CH",LRIDT,0))#2 CH
  1. . . . . . S LRFOOT=0
  1. . . . . . I $D(^LR(LRDFN,"MI",LRIDT,0))#2 D
  1. . . . . . . I $G(LRSS)="CH" D FOOT^LRRP1 D:$G(LRPRTPG) PLSPG
  1. . . . . . . D MI
  1. . . . . . I $G(LRSS)="CH" D FOOT^LRRP1 D:$G(LRPRTPG) PLSPG
  1. D QUIT
  1. Q
  1. ;
  1. ;
  1. QUIT ;
  1. K LR0
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. D ^%ZISC,^LRRK
  1. Q
  1. ;
  1. ;
  1. AI2 ;
  1. Q:'$L($G(LROC))
  1. F LRDFN=0:0 S LRDFN=$O(^LRO(69,"AN",LROC,LRDFN)) Q:LRDFN<1 I $D(^LR(LRDFN,0))#2 D
  1. . S LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3) D PT^LRX Q:LREND
  1. . I '$G(VAERR) D AI3
  1. Q
  1. ;
  1. ;
  1. AI3 ;
  1. Q:$G(LREND) N LRCAN
  1. S LRSSN=$P(PNM,",")_SSN(1)
  1. F LRIDT=0:0 S LRIDT=$O(^LRO(69,"AN",LROC,LRDFN,LRIDT)) Q:LRIDT<1 D
  1. . S LRND=$S($G(^LR(LRDFN,"CH",LRIDT,0)):^(0),$G(^LR(LRDFN,"MI",LRIDT,0)):^(0),1:"") D
  1. . . I $G(^LR(LRDFN,"CH",LRIDT,0)) D
  1. . . . I $O(^LR(LRDFN,"CH",LRIDT,1)),$P(LRND,U,3) D AI3SET Q ; Print verified results.
  1. . . . I $O(^LR(LRDFN,"CH",LRIDT,1)) Q ; Don't print unverified results.
  1. . . . S LRCAN=0 F S LRCAN=+$O(^LR(LRDFN,"CH",LRIDT,1,LRCAN)) Q:LRCAN<1 Q:($E(^(LRCAN,0))="*")
  1. . . . I $G(LRCAN) D AI3SET ; Print if cancel comment and no unverified results.
  1. . . I $P($G(^LR(LRDFN,"MI",LRIDT,0)),U,3) D
  1. . . . S I=$O(^LR(LRDFN,"MI",LRIDT,0)) Q:I'=99 D AI3SET
  1. Q
  1. ;
  1. ;
  1. AI3SET ;
  1. S LRPHY=$P($G(^VA(200,+$P(LRND,U,10),0)),U) S:LRPHY="" LRPHY="UNKNOWN"
  1. S ^TMP($J,LROC,LRPHY,LRSSN,LRDFN,LRIDT)=PNM_U_SSN_U_AGE_U_SEX
  1. Q
  1. ;
  1. ;
  1. CH ;Also used by DVBC Package
  1. Q:'$G(^LR(LRDFN,"CH",LRIDT,0))
  1. N LROC,LRCAN
  1. K ^TMP("LR",$J,"TP"),LRTP S LR0=^LR(LRDFN,"CH",LRIDT,0)
  1. Q:$O(^LR(LRDFN,"CH",LRIDT,1))&('$P(LR0,U,3))
  1. I '$P(LR0,U,3),$O(^LR(LRDFN,"CH",LRIDT,1,0)) D Q:'$G(LRCAN)
  1. . S LRCAN=0 F S LRCAN=+$O(^LR(LRDFN,"CH",LRIDT,1,LRCAN)) Q:LRCAN<1 Q:$E($G(^(LRCAN,0)))="*"
  1. S LRCDT=+LR0,LRSS="CH",LROC=$P(LR0,U,11),LRAA="",LRAAO=1,LRTC=0,LRSPEC=$P(LR0,U,5)
  1. D CH^LRRP
  1. Q
  1. ;
  1. ;
  1. MI ;Also used by DVBC package
  1. S LRCDT=9999999-LRIDT,^TMP("LR",$J,"TP",1)="^MI",^(1,LRCDT)="",^(LRCDT,-1)="",LRSS="MI",LRH=1
  1. I LRFOOT D FOOT^LRRP1 Q:LRSTOP
  1. D EN1^LRMIPC
  1. S LRHF=1,LRFOOT=0
  1. K A,Z,LRH
  1. S:LREND LREND=0,LRSTOP=1
  1. Q
  1. ;
  1. ;
  1. INIT ;
  1. D EN^LRPARAM
  1. S (LREND,LRSTOP,LRPG,LRFOOT)=0,LRCW=8,LRHF=1,(LRONESPC,LRONETST)=""
  1. K LREPR,LRPLS
  1. Q
  1. ;
  1. ;
  1. EN69 ;entry point for surgery pkg
  1. D START,^LRRK
  1. Q
  1. ;
  1. ;
  1. GEN ;from LRGEN test overflow
  1. S LRLAB=$S($D(LRLABKY):1,1:0) D INIT,GENP,^LRRK
  1. Q
  1. ;
  1. DS ;from LRRD, LRRS
  1. D INIT S DFN=$P(^LR(LRDFN,0),U,3),LRDPF=$P(^(0),U,2) D SDQ
  1. Q
  1. ;
  1. ;
  1. AIDQ ;tasked from LRTASK DAILY INTERIM,LRTASK CUM
  1. N LRLAB,LRH,LRWRDVEW,LRPRTPG
  1. S (LRH,LRWRDVEW)="",LRPRTPG=1
  1. D AIDQUE
  1. K ^TMP($J)
  1. Q
  1. ;
  1. ;
  1. DQ ;tasked from LRVER3 thru LRTP for IMMEDIATE INTERIM REPORTING
  1. ;
  1. D INIT
  1. S LRLAB=0,LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3)
  1. D PT^LRX
  1. D CH,FOOT^LRRP1,^%ZISC
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. Q
  1. ;
  1. ;
  1. OR ;OE/RR entry point
  1. Q:'$D(ORVP) S KILL=1 I '$D(LRPARAM) D EN^LRPARAM S KILL=0
  1. S (LREND,LRSTOP)=0,LRCW=8,LRHF=1,LRFOOT=0,(LRONESPC,LRONETST)=""
  1. D DT^LRX K DIC,LRTP S LRTP=0,DFN=+ORVP,LRDPF=+$P(@("^"_$P(ORVP,";",2)_"0)"),"^",2)_"^"_$P(ORVP,";",2) D END^LRDPA Q:LRDFN<1
  1. D START,^LRRK
  1. I 'KILL K LRBLOOD,LRDT0,LRPARAM,LRPLASMA,LRSERUM,LRSB,LRTP,LRUNKNOW,LRURINE
  1. K KILL
  1. Q
  1. ;
  1. ;
  1. PLSPG ;Print last page with performing lab site names and addresses
  1. ;
  1. N A,CLIA,LR4,LRJ,LRX,LRY
  1. W @IOF
  1. I $D(LRPG) S LRPG=LRPG+1,A(1)="page "_LRPG,A(1,"F")="!?65"
  1. S A(2)=$$LJ^XLFSTR(PNM,30)_$$LJ^XLFSTR(SSN,20)_$$HTE^XLFDT($H,"M")
  1. S A(3)="Performing Lab Sites:",A(3,"F")="!!"
  1. S LR4=0,LRJ=$O(A(""),-1)+1
  1. F S LR4=$O(LRPLS(LR4)) Q:LR4="" D
  1. . S LRX=$$NAME^XUAF4(LR4),CLIA=$$ID^XUAF4("CLIA",LR4),LRY="["_LR4_"] "
  1. . S A(LRJ)=LRY_LRX,A(LRJ,"F")="!!"
  1. . I CLIA'="" D
  1. . . I $L(A(LRJ))<60 S A(LRJ)=A(LRJ)_" [CLIA# "_CLIA_"]"
  1. . . E S A(LRJ+.5)="CLIA# "_CLIA,A(LRJ+.5,"F")="!?"_$L(LRY)
  1. . S LRX=$$PADD^XUAF4(LR4)
  1. . S A(LRJ+1)=$P(LRX,U)_" "_$P(LRX,U,2)_", "_$P(LRX,U,3)_" "_$P(LRX,U,4)
  1. . S A(LRJ+1,"F")="!?"_$L(LRY),LRJ=LRJ+2
  1. D EN^DDIOL(.A)
  1. Q