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

BTPWTIUP.m

Go to the documentation of this file.
BTPWTIUP ;VNGT/HS/ALA-Print APIs ; 15 Jun 2010  4:33 PM
 ;;1.0;CARE MANAGEMENT EVENT TRACKING;;Feb 07, 2011
 ;
 ;
REM(NDATA,FAKE) ; EP -- BTPW GET REMOTE DEVICES
 NEW UID,II,RESULT,MSG,DVN
 S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
 S NDATA=$NA(^TMP("BTPWTIUP",UID))
 K @NDATA
 ;
 S II=0
 NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWTIUP D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
 ;
 ;Header
 S @NDATA@(II)="T00030HIDE_TIUIO^T00050DEVICE_NAME^T00050LOCATION^T00005MARGIN"_$C(30)
 ;
 D DEVICE^CIAVUTIO(.DATA,"",-1)
 S DVN=0
 F  S DVN=$O(DATA(DVN)) Q:DVN=""  D
 . S II=II+1,@NDATA@(II)=$P(DATA(DVN),U,1,4)_$C(30)
 ;
DONE ;
 S II=II+1,@NDATA@(II)=$C(31)
 Q
 ;
ERR ;
 D ^%ZTER
 NEW Y,ERRDTM
 S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
 S BMXSEC="Recording that an error occurred at "_ERRDTM
 S II=II+1,@NDATA@(II)=$C(31)
 Q
 ;
PRW(DATA,TIUDA,TIUIO) ; EP -- BTPW PRINT TO RPMS DEVICE
 ; Input Parameters
 ;    TIUDA=document IEN
 ;    TIUIO=device name
 ;
 NEW UID,II,RESULT,MSG,HDR
 S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
 S DATA=$NA(^TMP("BTPWPRWN",UID))
 K @DATA
 ;
 S II=0
 NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWTIUP D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
 ;
 S HDR="I00010RESULT^T01024MSG"
 S @DATA@(II)=HDR_$C(30)
 D RPC^TIUPD(.RESULT,TIUDA,TIUIO,2,"") ; Print to a RPMS printer
 I $P(RESULT,U,1)=1 S RESULT=-1,MSG=$P(RESULT,U,2)
 I $P(RESULT,U,1)=0 S RESULT=1,MSG=$P(RESULT,U,2)
 S II=II+1,@DATA@(II)=RESULT_U_MSG_$C(30)
 S II=II+1,@DATA@(II)=$C(31)
 Q
 ;
RPC(DATA,TIUFLAG,TIUIO,TIUWIN,TLIST) ; EP -- BTPW PRINT CMET TIU
 ; Input Parameters
 ;    TLIST=document IENs separate by $C(28)
 ;    TIUIO=device name
 ;    TIUFLAG 1=Chart Copy 2=Work Copy 3=Patient copy
 ;    TIUWIN 1=Windows printer 0=RPMS printer
 ;    TIUIO = If RPMS printer, DEVICE_NAME from BTPW GET REMOTE DEVICES
 ;
 NEW UID,II,TIUDA,TDATA,LIST
 S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J),II=0
 S DATA=$NA(^TMP("BTPWPRPV",UID)),TDATA=$NA(^TMP("BTPWPRX",UID))
 K @DATA,@TDATA
 ;
 I $D(TLIST)>1 D
 . S LIST="",BN=""
 . F  S BN=$O(TLIST(BN)) Q:BN=""  S LIST=LIST_TLIST(BN)
 . K TLIST S TLIST=LIST
 ;
 I TIUWIN D HDR
 ;
 F BTP=1:1 S TIUDA=$P(TLIST,$C(28),BTP) Q:TIUDA=""  D
 . I 'TIUWIN D
 .. S ZTIO=TIUIO,ZTDTH=$$FMADD^XLFDT($$NOW^XLFDT(),,,3)
 .. S ZTDESC="Patient Copy PRINT for "_$$GET1^DIQ(8925,TIUDA_",",.01,"E")
 .. S ZTRTN="PRT^BTPWTIUP",ZTSAVE("TLIST")="",ZTSAVE("TIUFLAG")=""
 .. S ZTSAVE("DUZ(")=""
 .. D ^%ZTLOAD
 .. S @DATA@(II)="I00010RESULT"_$C(30)
 .. S II=II+1,@DATA@(II)=1_$C(30)
 .. K ZTSAVE,ZTIO,ZTDTH,ZTDESC,ZTRTN
 . I TIUWIN D
 .. NEW %,%H,%I,BJ,BN,BTI,BTP,DFN,FBN,HRCN,HSTEXT,I,LBN,NBN,QFL,VAERR
 .. NEW TIUD0,TIUD13,TIUD15,TIUDATE,TIUIDDAD,TIUPFHDR,TIUPFNBR,TBN
 .. NEW TIUPGRP,TIUPMTHD,TIUSIG,TIUTNM,TIUTYPE,BW,DRAFT,EBN,NLR,NPG
 .. K ^TMP("TIUPR",$J)
 .. S BTI=0
 .. D PRM
 .. I $$TMPFL^BQIUL1("W",UID,DFN) Q
 .. U IO X TIUPMTHD
 .. U IO W $C(23)
 .. ;
 .. I $$TMPFL^BQIUL1("C") Q
 .. I $$TMPFL^BQIUL1("R",UID,DFN) Q
 .. ;
 .. F  U IO R HSTEXT:.1 Q:HSTEXT[$C(23)  D
 ... S HSTEXT=$$STRIP^XLFSTR(HSTEXT,"^"),HSTEXT=$$CTRL^BQIUL1(HSTEXT)
 ... I HSTEXT="" S HSTEXT=" "
 ... S BTI=BTI+1,@TDATA@(BTI)=HSTEXT_$C(13)_$C(10)
 .. ;
 .. S NBN=0,LBN=$O(@TDATA@(""),-1)+1,TBN=LBN
 .. S NPG=TBN\66,NLR=TBN#66 S:NLR>2 NPG=NPG+1
 .. F BW=0:1:(NPG-1) D
 ... S BN=$S(BW=0:0,1:(BW*66)+1)
 ... S EBN=$S(BW=0:66,1:(BW*66)+66)
 ... S QFL=0
 ... F  S BN=$O(@TDATA@(BN)) Q:'BN!(QFL)  D
 .... I @TDATA@(BN)["SUBJECT:",BW=0 S NBN=BN,QFL=1 Q
 .... I @TDATA@(BN)["** CONTINUED FROM PREVIOUS",BW'=0 S NBN=BN,QFL=1
 ... S BN=EBN,QFL=0
 ... F  S BN=$O(@TDATA@(BN),-1) Q:'BN!(QFL)  D
 .... I @TDATA@(BN)["** THIS NOTE CONTINUED ON NEXT PAGE",BW<NPG S FBN=BN,QFL=1 Q
 .... I @TDATA@(BN)["----------",BW=(NPG-1) S FBN=(BN-6),QFL=1
 ... S FBN=(FBN-1),DRAFT=0
 ... F BJ=NBN+1:1:FBN D
 .... I @TDATA@(BJ)["**DRAFT COPY" S DRAFT=1 Q
 .... I DRAFT,@TDATA@(BJ)["Author: " Q
 .... S II=II+1,@DATA@(II)=@TDATA@(BJ)
 ... S II=II+1,@DATA@(II)=$C(12)
 .. I $$TMPFL^BQIUL1("C") Q
 .. I $$TMPFL^BQIUL1("D",UID,DFN) Q
 . S II=II+1,@DATA@(II)=$C(30)
 ;
 S II=II+1,@DATA@(II)=$C(31)
 ;
 Q
 ;
PRM ; Get Print Method for the document
 S TIUD0=$G(^TIU(8925,+TIUDA,0)),TIUD13=$G(^TIU(8925,+TIUDA,13))
 S TIUD15=$G(^TIU(8925,+TIUDA,15)),TIUTYPE=+TIUD0,TIUFLAG=+$G(TIUFLAG)
 S TIUDATE=$S(+TIUD15>0:+TIUD15,+TIUD13>0:+TIUD13,1:+$G(DT))
 I '+TIUTYPE Q
 S DFN=+$P(TIUD0,U,2)
 S TIUTNM=$$PNAME^TIULC1(+TIUTYPE)
 S TIUPMTHD=$$PRNTMTHD^TIULG(+TIUTYPE,TIUDA)
 S TIUPGRP=$$PRNTGRP^TIULG(+TIUTYPE,TIUDA)
 S TIUPFHDR=$$PRNTHDR^TIULG(+TIUTYPE,TIUDA)
 S TIUPFNBR=$$PRNTNBR^TIULG(+TIUTYPE,TIUDA)
 I +$$ISADDNDM^TIULC1(TIUDA) S TIUDA=+$P($G(^TIU(8925,+TIUDA,0)),U,6)
 S TIUIDDAD=$$HASIDDAD^TIUGBR(TIUDA)
 I TIUIDDAD S TIUDA=TIUIDDAD
 I $G(TIUPMTHD)]"",+$G(TIUPGRP),($G(TIUPFHDR)]""),($G(TIUPFNBR)]"") D
 . S ^TMP("TIUPR",$J,$G(TIUPGRP)_"$"_$G(TIUPFHDR)_";"_DFN,1,TIUDA)=$G(TIUPFNBR)
 E  S ^TMP("TIUPR",$J,DFN,1,TIUDA)=""
 Q
 ;
HDR ;
 S @DATA@(II)="T02048REPORT_TEXT"_$C(30)
 Q
 ;
PRT ;EP - Print to a RPMS printer
 S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
 S TDATA=$NA(^TMP("BTPWPRX",UID)) K @TDATA
 F BTP=1:1 S TIUDA=$P(TLIST,$C(28),BTP) Q:TIUDA=""  D
 . NEW %,%H,%I,BJ,BN,BTI,BTP,DFN,FBN,HRCN,HSTEXT,I,LBN,NBN,QFL,VAERR
 . NEW TIUD0,TIUD13,TIUD15,TIUDATE,TIUIDDAD,TIUPFHDR,TIUPFNBR
 . NEW TIUPGRP,TIUPMTHD,TIUSIG,TIUTNM,TIUTYPE
 . K ^TMP("TIUPR",$J)
 . S BTI=0
 . D PRM
 . NEW IO
 . D
 .. I $$TMPFL^BQIUL1("W",UID,DFN) Q
 .. U IO X TIUPMTHD
 .. U IO W $C(9)
 .. ;
 .. I $$TMPFL^BQIUL1("C") Q
 .. I $$TMPFL^BQIUL1("R",UID,DFN) Q
 .. ;
 .. F  U IO R HSTEXT:.1 Q:HSTEXT[$C(9)  D
 ... S HSTEXT=$$STRIP^XLFSTR(HSTEXT,"^"),HSTEXT=$$CTRL^BQIUL1(HSTEXT)
 ... I HSTEXT="" S HSTEXT=" "
 ... S BTI=BTI+1,@TDATA@(BTI)=HSTEXT
 .. ;
 .. I $$TMPFL^BQIUL1("C") Q
 .. I $$TMPFL^BQIUL1("D",UID,DFN) Q
 . S BN=0,QFL=0 F  S BN=$O(@TDATA@(BN)) Q:'BN!(QFL)  I @TDATA@(BN)["SUBJECT:" S NBN=BN,QFL=1
 . S BN=NBN,QFL=0 F  S BN=$O(@TDATA@(BN)) Q:'BN!(QFL)  I @TDATA@(BN)["----------" S LBN=BN,QFL=1
 . S FBN=LBN-1
 . F BJ=NBN+1:1:$S(FBN<66:FBN,1:62) U IO W !,@TDATA@(BJ)
 . I FBN>65 D
 .. W @IOF
 .. F BJ=63:1:FBN U IO W !,@TDATA@(BJ)
 . W @IOF
 K @TDATA
 Q