- LR7OGMP ;DALOI/STAFF- Interim report rpc memo print ;11/20/09 10:36
- ;;5.2;LAB SERVICE;**187,246,282,286,344,395,350**;Sep 27, 1994;Build 230
- ;
- PRINT(OUTCNT) ; from LR7OGMC
- N ACC,AGE,CDT,CMNT,DATA,DOC,FLAG,HIGH,IDT,INTP,LINE,LOW,LRCW,LRDRL,LREAL,LRX,PORDER,PRNTCODE,RANGE,REFHIGH,REFLOW,SEX,SITE,SPEC,SUB,TESTNUM
- N TESTSPEC,THER,THERHIGH,THERLOW,UNITS,VALUE,X,ZERO
- ;
- ; the variables AGE, SEX, LRCW, and X are used within the lab's print codes and ref ranges
- S AGE=$P(^TMP("LR7OG",$J,"G"),U,4),SEX=$P(^("G"),U,5),LRCW=$P(^("G"),U,6)
- ;
- ; Flag to determine if reporting laboratory is printed on report
- S LRDRL=$$GET^XPAR("DIV^PKG","LR REPORTS FACILITY PRINT",1,"Q")#2
- ;
- S CDT=0
- F S CDT=$O(^TMP("LR7OG",$J,"TP",CDT)) Q:CDT="" D
- . S IDT=9999999-CDT
- . S ZERO=$S($D(^TMP("LR7OG",$J,"TP",CDT))#2:^(CDT),1:"")
- . S SPEC=+$P(ZERO,U,5)
- . S DOC=$$NAME(+$P(ZERO,U,10)),LREAL=+$P(ZERO,U,2)
- . D SETLINE("",.OUTCNT)
- . I LRDRL D RL
- . S LINE="Report Released Date/Time: "
- . I $P(ZERO,"^",3) S LINE=LINE_$$FMTE^XLFDT($P(ZERO,"^",3),"M")
- . D SETLINE(LINE,.OUTCNT)
- . D SETLINE("Provider: "_DOC,.OUTCNT)
- . S LINE=" Specimen: "_$P($G(^LAB(61,SPEC,0),"<no specimen on file>"),U)_"."
- . S ACC=$P(ZERO,U,6)
- . S LINE=$$SETSTR^VALM1(" "_ACC,LINE,30,1+$L(ACC))
- . D SETLINE(LINE,.OUTCNT)
- . D SETLINE(" Specimen Collection Date: "_$$LRUDT^LR7OSUM6(CDT,LREAL),.OUTCNT)
- . D SETLINE(" Test name Result units Ref. range Site Code",.OUTCNT)
- . S PORDER=0
- . F S PORDER=$O(^TMP("LR7OG",$J,"TP",CDT,PORDER)) Q:PORDER'>0 S DATA=^(PORDER) D
- . . I $P(DATA,U,7)="" Q
- . . S TESTNUM=+DATA,PRNTCODE=$P(DATA,U,5),SUB=$P(DATA,U,6),FLAG=$P(DATA,U,8),X=$P(DATA,U,7),UNITS=$P(DATA,U,9),RANGE=$P(DATA,U,10),SITE=$P(DATA,U,11)
- . . S LOW=$P(RANGE,"-"),HIGH=$P(RANGE,"-",2),THER=$P(DATA,U,12)
- . . I $L($P(DATA,U,2))>28,$P(DATA,U,3)'="" S LINE=$P(DATA,U,3)
- . . E S LINE=$E($P(DATA,U,2),1,28)
- . . S LINE=$$SETSTR^VALM1("",LINE,28,0)
- . . I PRNTCODE="" S LINE=LINE_$J(X,8)
- . . E S @("VALUE="_PRNTCODE),LINE=LINE_VALUE
- . . S LINE=LINE_" "_FLAG
- . . I $L(LINE)>38 D SETLINE(LINE,.OUTCNT) S LINE=""
- . . I UNITS'="" S LINE=$$SETSTR^VALM1(" "_UNITS,LINE,39,2+$L(UNITS))
- . . S LRX=RANGE
- . . I LRX'="" S LINE=$$SETSTR^VALM1(LRX,LINE,52,$L(LRX))
- . . I $L(LINE)>67,SITE D SETLINE(LINE,.OUTCNT) S LINE=""
- . . I SITE S LINE=$$SETSTR^VALM1(" ["_SITE_"]",LINE,68,3+$L(SITE))
- . . I LINE'="" D SETLINE(LINE,.OUTCNT)
- . . I $O(^TMP("LR7OG",$J,"TP",CDT,PORDER,0))>0 D
- . . . S INTP=0
- . . . F S INTP=+$O(^TMP("LR7OG",$J,"TP",CDT,PORDER,INTP)) Q:INTP<1 D SETLINE(" Eval: "_^(INTP),.OUTCNT)
- . I $D(^TMP("LR7OG",$J,"TP",CDT,"C")) D
- . . S LINE="Comment: "
- . . S CMNT=0
- . . F S CMNT=+$O(^TMP("LR7OG",$J,"TP",CDT,"C",CMNT)) Q:CMNT<1 S LINE=LINE_^(CMNT) D
- . . . D SETLINE(LINE,.OUTCNT)
- . . . I $O(^TMP("LR7OG",$J,"TP",CDT,"C",CMNT)) S LINE=" "
- . D SETLINE("===============================================================================",.OUTCNT)
- D SETLINE(" ",.OUTCNT)
- Q
- ;
- ;
- SETLINE(LINE,CNT) ;
- S ^TMP("LR7OGX",$J,"OUTPUT",CNT)=LINE
- S CNT=CNT+1
- Q
- ;
- ;
- NAME(X) ; $$(#) -> name
- N LRDOC
- D DOC^LRX
- Q LRDOC
- ;
- ;
- DD(Y) ; $$(date/time) -> date/time format
- D DD^LRX
- Q Y
- ;
- ;
- RL ; Display reporting lab
- N LRX
- S LRX=+$G(^LR(LRDFN,"CH",IDT,"RF"))
- I LRX D RL^LR7OGMG(LRX)
- Q
- ;
- ;
- PFAC ; Print header with name of facility generating report.
- N LRI,LRPF
- D PFAC^LRRP1(DUZ(2),0,1,.LRPF)
- I $D(LRPF) D
- . S LRI=0
- . F S LRI=$O(LRPF(LRI)) Q:'LRI D SETLINE(LRPF(LRI),.OUTCNT)
- D SETLINE("As of: "_$$HTE^XLFDT($H,"1M"),.OUTCNT)
- D SETLINE(" ",.OUTCNT)
- Q
- ;
- ;
- PLS ; List performing laboratories
- ;
- N LINE,LRPLS,X
- D SETLINE("Performing Lab Sites",.OUTCNT)
- S LRPLS=0
- F S LRPLS=$O(^TMP("LRPLS",$J,LRPLS)) Q:LRPLS<1 D
- . S LRPLS(0)=$$PLSADDR^LR7OSUM2(LRPLS)
- . S LINE=$$LJ^XLFSTR("["_LRPLS_"] ",8)_$P(LRPLS(0),"^")
- . D SETLINE(LINE,.OUTCNT)
- . S LINE=$$REPEAT^XLFSTR(" ",8)_$P(LRPLS(0),"^",2)
- . D SETLINE(LINE,.OUTCNT)
- ;
- D SETLINE("===============================================================================",.OUTCNT)
- ;
- K ^TMP("LRPLS",$J),^TMP("LRPLS-ADDR",$J)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLR7OGMP 4221 printed Feb 18, 2025@23:31:05 Page 2
- LR7OGMP ;DALOI/STAFF- Interim report rpc memo print ;11/20/09 10:36
- +1 ;;5.2;LAB SERVICE;**187,246,282,286,344,395,350**;Sep 27, 1994;Build 230
- +2 ;
- PRINT(OUTCNT) ; from LR7OGMC
- +1 NEW ACC,AGE,CDT,CMNT,DATA,DOC,FLAG,HIGH,IDT,INTP,LINE,LOW,LRCW,LRDRL,LREAL,LRX,PORDER,PRNTCODE,RANGE,REFHIGH,REFLOW,SEX,SITE,SPEC,SUB,TESTNUM
- +2 NEW TESTSPEC,THER,THERHIGH,THERLOW,UNITS,VALUE,X,ZERO
- +3 ;
- +4 ; the variables AGE, SEX, LRCW, and X are used within the lab's print codes and ref ranges
- +5 SET AGE=$PIECE(^TMP("LR7OG",$JOB,"G"),U,4)
- SET SEX=$PIECE(^("G"),U,5)
- SET LRCW=$PIECE(^("G"),U,6)
- +6 ;
- +7 ; Flag to determine if reporting laboratory is printed on report
- +8 SET LRDRL=$$GET^XPAR("DIV^PKG","LR REPORTS FACILITY PRINT",1,"Q")#2
- +9 ;
- +10 SET CDT=0
- +11 FOR
- SET CDT=$ORDER(^TMP("LR7OG",$JOB,"TP",CDT))
- if CDT=""
- QUIT
- Begin DoDot:1
- +12 SET IDT=9999999-CDT
- +13 SET ZERO=$SELECT($DATA(^TMP("LR7OG",$JOB,"TP",CDT))#2:^(CDT),1:"")
- +14 SET SPEC=+$PIECE(ZERO,U,5)
- +15 SET DOC=$$NAME(+$PIECE(ZERO,U,10))
- SET LREAL=+$PIECE(ZERO,U,2)
- +16 DO SETLINE("",.OUTCNT)
- +17 IF LRDRL
- DO RL
- +18 SET LINE="Report Released Date/Time: "
- +19 IF $PIECE(ZERO,"^",3)
- SET LINE=LINE_$$FMTE^XLFDT($PIECE(ZERO,"^",3),"M")
- +20 DO SETLINE(LINE,.OUTCNT)
- +21 DO SETLINE("Provider: "_DOC,.OUTCNT)
- +22 SET LINE=" Specimen: "_$PIECE($GET(^LAB(61,SPEC,0),"<no specimen on file>"),U)_"."
- +23 SET ACC=$PIECE(ZERO,U,6)
- +24 SET LINE=$$SETSTR^VALM1(" "_ACC,LINE,30,1+$LENGTH(ACC))
- +25 DO SETLINE(LINE,.OUTCNT)
- +26 DO SETLINE(" Specimen Collection Date: "_$$LRUDT^LR7OSUM6(CDT,LREAL),.OUTCNT)
- +27 DO SETLINE(" Test name Result units Ref. range Site Code",.OUTCNT)
- +28 SET PORDER=0
- +29 FOR
- SET PORDER=$ORDER(^TMP("LR7OG",$JOB,"TP",CDT,PORDER))
- if PORDER'>0
- QUIT
- SET DATA=^(PORDER)
- Begin DoDot:2
- +30 IF $PIECE(DATA,U,7)=""
- QUIT
- +31 SET TESTNUM=+DATA
- SET PRNTCODE=$PIECE(DATA,U,5)
- SET SUB=$PIECE(DATA,U,6)
- SET FLAG=$PIECE(DATA,U,8)
- SET X=$PIECE(DATA,U,7)
- SET UNITS=$PIECE(DATA,U,9)
- SET RANGE=$PIECE(DATA,U,10)
- SET SITE=$PIECE(DATA,U,11)
- +32 SET LOW=$PIECE(RANGE,"-")
- SET HIGH=$PIECE(RANGE,"-",2)
- SET THER=$PIECE(DATA,U,12)
- +33 IF $LENGTH($PIECE(DATA,U,2))>28
- IF $PIECE(DATA,U,3)'=""
- SET LINE=$PIECE(DATA,U,3)
- +34 IF '$TEST
- SET LINE=$EXTRACT($PIECE(DATA,U,2),1,28)
- +35 SET LINE=$$SETSTR^VALM1("",LINE,28,0)
- +36 IF PRNTCODE=""
- SET LINE=LINE_$JUSTIFY(X,8)
- +37 IF '$TEST
- SET @("VALUE="_PRNTCODE)
- SET LINE=LINE_VALUE
- +38 SET LINE=LINE_" "_FLAG
- +39 IF $LENGTH(LINE)>38
- DO SETLINE(LINE,.OUTCNT)
- SET LINE=""
- +40 IF UNITS'=""
- SET LINE=$$SETSTR^VALM1(" "_UNITS,LINE,39,2+$LENGTH(UNITS))
- +41 SET LRX=RANGE
- +42 IF LRX'=""
- SET LINE=$$SETSTR^VALM1(LRX,LINE,52,$LENGTH(LRX))
- +43 IF $LENGTH(LINE)>67
- IF SITE
- DO SETLINE(LINE,.OUTCNT)
- SET LINE=""
- +44 IF SITE
- SET LINE=$$SETSTR^VALM1(" ["_SITE_"]",LINE,68,3+$LENGTH(SITE))
- +45 IF LINE'=""
- DO SETLINE(LINE,.OUTCNT)
- +46 IF $ORDER(^TMP("LR7OG",$JOB,"TP",CDT,PORDER,0))>0
- Begin DoDot:3
- +47 SET INTP=0
- +48 FOR
- SET INTP=+$ORDER(^TMP("LR7OG",$JOB,"TP",CDT,PORDER,INTP))
- if INTP<1
- QUIT
- DO SETLINE(" Eval: "_^(INTP),.OUTCNT)
- End DoDot:3
- End DoDot:2
- +49 IF $DATA(^TMP("LR7OG",$JOB,"TP",CDT,"C"))
- Begin DoDot:2
- +50 SET LINE="Comment: "
- +51 SET CMNT=0
- +52 FOR
- SET CMNT=+$ORDER(^TMP("LR7OG",$JOB,"TP",CDT,"C",CMNT))
- if CMNT<1
- QUIT
- SET LINE=LINE_^(CMNT)
- Begin DoDot:3
- +53 DO SETLINE(LINE,.OUTCNT)
- +54 IF $ORDER(^TMP("LR7OG",$JOB,"TP",CDT,"C",CMNT))
- SET LINE=" "
- End DoDot:3
- End DoDot:2
- +55 DO SETLINE("===============================================================================",.OUTCNT)
- End DoDot:1
- +56 DO SETLINE(" ",.OUTCNT)
- +57 QUIT
- +58 ;
- +59 ;
- SETLINE(LINE,CNT) ;
- +1 SET ^TMP("LR7OGX",$JOB,"OUTPUT",CNT)=LINE
- +2 SET CNT=CNT+1
- +3 QUIT
- +4 ;
- +5 ;
- NAME(X) ; $$(#) -> name
- +1 NEW LRDOC
- +2 DO DOC^LRX
- +3 QUIT LRDOC
- +4 ;
- +5 ;
- DD(Y) ; $$(date/time) -> date/time format
- +1 DO DD^LRX
- +2 QUIT Y
- +3 ;
- +4 ;
- RL ; Display reporting lab
- +1 NEW LRX
- +2 SET LRX=+$GET(^LR(LRDFN,"CH",IDT,"RF"))
- +3 IF LRX
- DO RL^LR7OGMG(LRX)
- +4 QUIT
- +5 ;
- +6 ;
- PFAC ; Print header with name of facility generating report.
- +1 NEW LRI,LRPF
- +2 DO PFAC^LRRP1(DUZ(2),0,1,.LRPF)
- +3 IF $DATA(LRPF)
- Begin DoDot:1
- +4 SET LRI=0
- +5 FOR
- SET LRI=$ORDER(LRPF(LRI))
- if 'LRI
- QUIT
- DO SETLINE(LRPF(LRI),.OUTCNT)
- End DoDot:1
- +6 DO SETLINE("As of: "_$$HTE^XLFDT($HOROLOG,"1M"),.OUTCNT)
- +7 DO SETLINE(" ",.OUTCNT)
- +8 QUIT
- +9 ;
- +10 ;
- PLS ; List performing laboratories
- +1 ;
- +2 NEW LINE,LRPLS,X
- +3 DO SETLINE("Performing Lab Sites",.OUTCNT)
- +4 SET LRPLS=0
- +5 FOR
- SET LRPLS=$ORDER(^TMP("LRPLS",$JOB,LRPLS))
- if LRPLS<1
- QUIT
- Begin DoDot:1
- +6 SET LRPLS(0)=$$PLSADDR^LR7OSUM2(LRPLS)
- +7 SET LINE=$$LJ^XLFSTR("["_LRPLS_"] ",8)_$PIECE(LRPLS(0),"^")
- +8 DO SETLINE(LINE,.OUTCNT)
- +9 SET LINE=$$REPEAT^XLFSTR(" ",8)_$PIECE(LRPLS(0),"^",2)
- +10 DO SETLINE(LINE,.OUTCNT)
- End DoDot:1
- +11 ;
- +12 DO SETLINE("===============================================================================",.OUTCNT)
- +13 ;
- +14 KILL ^TMP("LRPLS",$JOB),^TMP("LRPLS-ADDR",$JOB)
- +15 QUIT