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

LRMIPSU.m

Go to the documentation of this file.
  1. LRMIPSU ;DALOI/RBN - MICRO PATIENT REPORT ;05/09/12 17:03
  1. ;;5.2;LAB SERVICE;**350**;Sep 27, 1994;Build 230
  1. ;
  1. Q
  1. ;
  1. ;
  1. HDR ;
  1. ; Handle different callers
  1. N X
  1. I $D(LRPGDATA) D Q ;
  1. . S X=$G(LRPGDATA("HDR"))
  1. . I X'="" X X
  1. D HDR1
  1. Q
  1. ;
  1. ;
  1. ; Handle different callers
  1. N X
  1. I $D(LRPGDATA) D Q ;
  1. . S X=$G(LRPGDATA("FTR"))
  1. . I X'="" X X
  1. D FOOT1
  1. Q
  1. ;
  1. ;
  1. FH ;
  1. ; from LRMIPSZ1, LRMIPSZ2, LRMIPSZ5. Also called from LROR4
  1. ; Handle different callers
  1. I $D(LRPGDATA) D Q ;
  1. . D NP
  1. . I LRABORT S LREND=1
  1. D:$Y>(IOSL-LRFLIP) FOOT,HDR
  1. Q
  1. ;
  1. ;
  1. FHR ; from LRMIPSZ1, LRMIPSZ2
  1. D:$Y>(IOSL-LRFLIP) FOOT,HDR Q:LREND D REFS
  1. Q
  1. ;
  1. ;
  1. REFS ; from LRMIPSZ1
  1. S B=1,LREF=0
  1. F S LREF=$O(LRBUG(LREF)) Q:LREF="" S LRIFN=LRBUG(LREF) D LIST Q:LREND
  1. K LRBUG
  1. Q
  1. ;
  1. ;
  1. LIST ;
  1. Q:'$D(^LAB(61.2,LRIFN,"JR",0))
  1. S LRNUM=0
  1. F S LRNUM=$O(^LAB(61.2,LRIFN,"JR",LRNUM)) Q:LRNUM="" D WR Q:LREND
  1. Q
  1. ;
  1. WR ;
  1. ; Handle different callers
  1. I $D(LRPGDATA) D Q ;
  1. . D WR2
  1. D WR1
  1. Q
  1. ;
  1. ;
  1. WR1 ;
  1. ;
  1. S X1=^LAB(61.2,LRIFN,"JR",LRNUM,0) Q:$P(X1,U,7)'=1
  1. D:$Y>(IOSL-LRFLIP-2) FOOT,HDR Q:LREND
  1. W:B=1 !!,"Reference(s): " S B=0
  1. W !!,$J(LREF,2),". ",$P(X1,U,2),!,$P(X1,U)
  1. W ! W:$L($P(X1,U,3)) $P(^LAB(95,$P(X1,U,3),0),U)," ",$P(X1,U,4),":"
  1. W $P(X1,U,5) W:$L($P(X1,U,6)) ",",$E($P(X1,U,6),1,3)+1700
  1. Q
  1. ;
  1. ;
  1. WR2 ;
  1. ;
  1. S X1=^LAB(61.2,LRIFN,"JR",LRNUM,0) Q:$P(X1,U,7)'=1
  1. D NP Q:LRABORT
  1. I B=1 W !!,"Reference(s): "
  1. D NP Q:LRABORT
  1. S B=0
  1. W !!,$J(LREF,2),". ",$P(X1,U,2)
  1. D NP Q:LRABORT
  1. W !,$P(X1,U)
  1. D NP Q:LRABORT
  1. W !
  1. D NP Q:LRABORT
  1. I $P(X1,U,3)'="" W $P(^LAB(95,$P(X1,U,3),0),U)," ",$P(X1,U,4),":"
  1. W $P(X1,U,5)
  1. W:$L($P(X1,U,6)) ",",$E($P(X1,U,6),1,3)+1700
  1. D NP Q:LRABORT
  1. Q
  1. ;
  1. ;
  1. FOOT1 ;
  1. ; Backward compatibility for pre NP^LRUTIL displays
  1. ; from LRMIPSZ1
  1. N LRX
  1. F W ! Q:$Y>(IOSL-LRFLIP)
  1. Q:'LRHC
  1. W !,"Collection sample: ",LRCS,?40,"Collection date: ",LRTK
  1. W:LRCS'=LRST !,"Site/Specimen: ",LRST W !!
  1. W !!,PNM,?$X+3,SSN,?$X+3 W:$D(IA) IA W ?60," ROUTING: ",LRPATLOC,!
  1. S LRX=+$G(^LR(LRDFN,LRSS,LRIDT,"RF"))
  1. I LRX>0 W $$NAME^XUAF4(LRX)
  1. I LRX<1 W $$INS^LRU
  1. W " LABORATORY ",?62,LRACC,!,"MICROBIOLOGY",?62,"page ",LRPG,!
  1. Q
  1. ;
  1. ;
  1. FOOT2 ;
  1. ; for use with NP^LRUTIL displays
  1. ; from LRMIPSZ1
  1. N LRX
  1. I '$D(LRSS) N LRSS S LRSS="MI"
  1. S LRX="=--"
  1. W !,$$REPEAT^XLFSTR(LRX,IOM/$L(LRX))
  1. W !,"Collection sample: ",LRCS,?40,"Collection date: ",LRTK
  1. W:LRCS'=LRST !,"Site/Specimen: ",LRST
  1. W !
  1. S LRX=$$PNMSSN(PNM,SSN)
  1. W !,LRX
  1. W:$G(IA)'="" IA
  1. W ?60," ROUTING: ",LRPATLOC
  1. W !
  1. S LRX=+$G(^LR(LRDFN,LRSS,LRIDT,"RF"))
  1. I LRX>0 W $$NAME^XUAF4(LRX)
  1. I LRX<1 W $$INS^LRU
  1. W " LABORATORY ",?62,LRACC
  1. W !,"MICROBIOLOGY",?62,"page ",LRPG
  1. W !
  1. Q
  1. ;
  1. ;
  1. HDR1 ;
  1. ; Backward compatible for pre NP^LRUTIL displays
  1. ; from LRMIPSZ1
  1. N LRX,X
  1. S LRPG=LRPG+1 D:LRPG>1 WAIT Q:LREND
  1. ;
  1. W:($G(LRJ02))!($G(LRJ0))!($E(IOST,1,2)="C-") @IOF S LRJ02=1
  1. W !,PNM,?20," ",SSN,?35," AGE: ",AGE W:LRWRD'="" ?45," LOC: ",$E(LRWRD,1,(IOM-70))," "
  1. ;
  1. S X=$$HTE^XLFDT($H,"1M")
  1. W ?IOM-($L(X)+1),X
  1. ;
  1. I LRPG=1 W !?27,"----MICROBIOLOGY----",?70
  1. I '$D(LRH),LRHC W !?32,$S($D(^XUSEC("LRLAB",DUZ))&'$D(LRWRDVEW):"LAB",1:"CHART")," COPY"
  1. W !
  1. S LRSS="MI"
  1. ;
  1. ; Display printing facility
  1. I $$GET^XPAR("DIV^PKG","LR REPORTS FACILITY PRINT",1,"Q")>1 D PFAC^LRRP1(DUZ(2),$G(LRPG))
  1. ;
  1. ; Display reporting lab
  1. I $$GET^XPAR("DIV^PKG","LR REPORTS FACILITY PRINT",1,"Q")#2 D
  1. . S LRX=+$G(^LR(LRDFN,LRSS,LRIDT,"RF"))
  1. . I LRX D RL^LRRP1(LRX) W !
  1. ;
  1. ; LR*5.2*216 Modification - RBN
  1. ; Add banner to audit reports
  1. ;
  1. I $D(^LR(LRDFN,"MI",LRIDT,LRSB)),(LRPG=1) D:LRPG=1 BANNER^LRMIAU2()
  1. N LRBANIEN,LRBANFLG
  1. S LRBANFLG=0
  1. F LRBANIEN=1,5,8,11,16 I $D(^LR(LRDFN,"MI",LRIDT,LRBANIEN)) S LRBANFLG=1 Q
  1. I LRPG=1 D
  1. . D ORU^LRRP1
  1. . S LRX=^LR(LRDFN,"MI",LRIDT,0)
  1. . I $P(LRX,"^",3) W !,"Report Completed: ",$$FMTE^XLFDT($P(LRX,"^",3),"M")
  1. ;
  1. I LRPG>1 W !?20,">> CONTINUATION OF ",LRACC," <<"
  1. W !!,"Collection sample: ",LRCS,?40,"Collection date: ",LRTK
  1. ;
  1. I LRPG=1 D
  1. . I LRDOC?1"REF:"1.AN D
  1. . . N LRX
  1. . . S LRX=$$REFDOC^LRRP1(LRDFN,LRSS,LRIDT)
  1. . . I LRX'="" S LRDOC=LRX
  1. . W !,"Provider: ",LRDOC
  1. . W !
  1. . I LRCMNT'="" W "Comment on specimen: ",LRCMNT,!
  1. Q
  1. ;
  1. ;
  1. HDR2(LRPRNTED,LRABORT,LRPGDATA) ;
  1. ;
  1. ; Called from NP^LRUTIL via the LRPGDATA array setup in RPT^LRMIPSZ1
  1. ; Inputs
  1. ; LRPRNTED: <byref> Tracks when certain sections are printed
  1. ; LRABORT: <byref> Tracks if user entered "^" to stop
  1. ; LRPGDATA: <byref> Used by NP^LRUTIL
  1. ; Outputs
  1. ; LRPRNTED: "PFAC" -- Printing Facility address
  1. ; : "RF" -- Reporting Facility address
  1. ; : "ORU" -- Remote ordering info
  1. ; LRABORT: 1 if user aborts, 0 if not (set by NP^LRUTIL)
  1. ;
  1. N I,ISCONS,LRX,LRY,X,WPGNM
  1. S LRABORT=$G(LRABORT)
  1. S LRPG=$G(LRPGDATA("PGNUM"))
  1. S:LRPG<1 LRPG=1
  1. S WPGNM=0 ; Page Number written?
  1. S ISCONS=0
  1. I '$D(LRSS) N LRSS S LRSS="MI"
  1. I $E($G(IOST),1,2)="C-" S ISCONS=1 ;is console device
  1. ;
  1. I LRPG=1,ISCONS,$G(IOF)'="" W @IOF
  1. S LRX=$$PNMSSN(PNM,SSN)
  1. W !,LRX,?39," AGE: ",AGE
  1. I LRWRD'="",LRWRD'=0 W ?47," LOC: ",$E(LRWRD,1,(IOM-70))," "
  1. ;
  1. S X=$$HTE^XLFDT($H,"1M")
  1. W ?IOM-($L(X)+1),X
  1. ;
  1. I LRPG=1 D
  1. . W !?27,"----MICROBIOLOGY----"
  1. . I 'WPGNM W ?IOM-5-4,"page ",LRPG S WPGNM=1
  1. ;
  1. I '$D(LRH),'ISCONS W !?32,$S($D(^XUSEC("LRLAB",DUZ))&'$D(LRWRDVEW):"LAB",1:"CHART")," COPY"
  1. ;
  1. ; Display printing facility
  1. I $$GET^XPAR("DIV^PKG","LR REPORTS FACILITY PRINT",1,"Q")>1,'$D(LRPRNTED("PFAC")) D
  1. . S LRPRNTED("PFAC")=1
  1. . K LRX
  1. . D PFAC^LRRP1(DUZ(2),,1,.LRX)
  1. . Q:'$D(LRX)
  1. . S I=0
  1. . F S I=$O(LRX(I)) Q:'I W !,LRX(I)
  1. ;
  1. ; Display reporting lab
  1. I $$GET^XPAR("DIV^PKG","LR REPORTS FACILITY PRINT",1,"Q")#2,'$D(LRPRNTED("RF")) D
  1. . S LRPRNTED("RF")=1
  1. . S LRX=+$G(^LR(LRDFN,"MI",LRIDT,"RF"))
  1. . W !
  1. . Q:'LRX
  1. . K LRY
  1. . D RL^LRRP1(LRX,1,.LRY)
  1. . Q:'$D(LRY)
  1. . S I=0
  1. . F S I=$O(LRY(I)) Q:'I W !,LRY(I)
  1. . W !
  1. ;
  1. I '$D(LRPRNTED("ORU")) D
  1. . S LRPRNTED("ORU")=1
  1. . D ORU^LRRP1
  1. . S LRX=^LR(LRDFN,"MI",LRIDT,0)
  1. . I $P(LRX,"^",3) W !,"Report Completed: ",$$FMTE^XLFDT($P(LRX,"^",3),"M")
  1. ;
  1. I LRPG>1 D
  1. . W !?20,">> CONTINUATION OF ",LRACC," <<"
  1. . I 'WPGNM W ?IOM-5-4,"page ",LRPG S WPGNM=1
  1. ;
  1. W !,"Collection sample: ",LRCS,?40,"Collection date: ",LRTK
  1. ;
  1. I '$D(LRPRNTED("REF")) D
  1. . N LRX,LRDOCZ
  1. . S LRPRNTED("REF")=1
  1. . I LRDOC?1"REF:"1.AN D
  1. . . S LRX=$$REFDOC^LRRP1(LRDFN,LRSS,LRIDT)
  1. . . I LRX'="" S LRDOCZ=LRX
  1. . W !,"Provider: ",$S($D(LRDOCZ):LRDOCZ,1:LRDOC)
  1. . I LRCMNT'="" W !,"Comment on specimen: ",LRCMNT
  1. ;
  1. S LRX="=--"
  1. W !,$$REPEAT^XLFSTR(LRX,IOM/$L(LRX)),!
  1. ;
  1. Q
  1. ;
  1. ;
  1. WAIT ;
  1. ; from LRMIPSZ1, LRMIPSZ2
  1. F I=$Y:1:IOSL-3 W !
  1. I 'LRHC W !,PNM,?25," ",SSN," ROUTING: ",LRPATLOC,?59," PRESS '^' TO STOP " R X:DTIME S:X="" X=1 S:(".^"[X)!('$T) LREND=1
  1. Q
  1. ;
  1. ;
  1. PRE ;
  1. ; from LRMIPSZ2, LRMIPSZ3, LRMIPSZ4
  1. ; also indirectly from RPT^LROR4
  1. N J
  1. I LRTUS'["F"!($D(^XUSEC("LRLAB",DUZ))&'$D(LRWRDVEW)) D ;
  1. . W:+$O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,LRPRE,0)) !,"Preliminary Comments: "
  1. . D NP Q:LRABORT
  1. . S J=0
  1. . F S J=$O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,LRPRE,J)) Q:J<1 W !?3,^(J,0) D NP Q:LRABORT
  1. ;
  1. D NP Q:LRABORT
  1. W !
  1. D NP Q:LRABORT
  1. Q
  1. ;
  1. ;
  1. PROMPT() ;
  1. ; Creates the "more" prompt for display
  1. ; Expects PNM,SSN,LRPATLOC
  1. ; Outputs
  1. ; The prompt for display
  1. N X,PNMX,PLOCX,STR
  1. S STR=$$PNMSSN(PNM,SSN)
  1. S PLOCX=$G(LRPATLOC)
  1. S:$L(PLOCX)>14 PLOCX=$E(PLOCX,1,11)_"..."
  1. I PLOCX'="" S STR=STR_" ROUTING: "_PLOCX
  1. S X="'^' TO STOP"
  1. S $E(STR,IOM-$L(X),IOM)=X
  1. Q STR
  1. ;
  1. ;
  1. PNMSSN(PNM,SSN) ;
  1. ; Creates the Patient Name/SSN banner
  1. ; Inputs
  1. ; PNM : Patient's Name
  1. ; SSN : SSN
  1. ; Outputs
  1. ; The formatted string for the patient name and SSN
  1. N X,PNMX,STR
  1. S PNM=$G(PNM)
  1. S SSN=$G(SSN)
  1. S PNMX=PNM
  1. S:$L(PNMX)>25 PNMX=$E(PNMX,1,22)_"..."
  1. S STR=PNMX
  1. S $E(STR,27,27)=" "
  1. S STR=STR_SSN
  1. Q STR
  1. ;
  1. ;
  1. NP ;
  1. ; Convenience method
  1. D NP^LRMIPSZ1
  1. Q