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

BSDRFC.m

Go to the documentation of this file.
  1. BSDRFC ; IHS/ANMC/LJF - RADIOLOGY PULL LIST ; [ 11/02/2004 11:45 AM ]
  1. ;;5.3;PIMS;**1001**;APR 26, 2002
  1. ;
  1. ASK ; -- ask user for division/clinic selections
  1. D CLINIC^BSDU(1) Q:$D(BSDU)
  1. S BSDT=$$READ^BDGF("DO^::EX","Print For Which Date") Q:BSDT<1
  1. ;IHS/ITSC/WAR 8/3/04 PATCH #1001 Added .VALMHDR variable for printing
  1. ;D ZIS^BDGF("QP","BEG^BSDRFC","RAD PULL LIST","VAUTC;VAUTD;BSDT;.HALMHDR")
  1. D ZIS^BDGF("QP","BEG^BSDRFC","RAD PULL LIST","VAUTC;VAUTD;BSDT;VALMHDR") ;IHS/ITSC/LJF 10/25/2004
  1. Q
  1. ;
  1. BEG ;EP; entry point when queuing
  1. I $E(IOST,1,2)="C-" D EN Q
  1. D INIT,PRINT Q
  1. ;
  1. EN ; -- main entry point for BSDRM RAD PULL LIST
  1. NEW VALMCNT D TERM^VALM0
  1. D EN^VALM("BSDRM RAD PULL LIST")
  1. D CLEAR^VALM1
  1. Q
  1. ;
  1. HDR ; -- header code
  1. S VALMHDR(1)=$$SP(15)_$$CONF^BDGF
  1. NEW X S X="The following patients have appointments on "
  1. S VALMHDR(2)=$$SP(10)_X_$$FMTE^XLFDT(BSDT)
  1. S VALMHDR(3)=$$SP(15)_"and need their previous radiology films pulled"
  1. ;IHS/ITSC/WAR 8/3/04 PATCH #1001 Added next 2 lineS - missing on printout
  1. S VALMHDR(4)=" "
  1. S VALMHDR(5)="Chart # Patient Name Clinic Appt Time"
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. NEW CLINIC,DATE,END,DFN,HRCN,TERM
  1. S BSDLN=0 K ^TMP("BSDRFC",$J),^TMP("BSDRFC1",$J)
  1. ;
  1. ; loop thru ARAD xref to find charts to pull
  1. S CLINIC=0 F S CLINIC=$O(^SC("ARAD",CLINIC)) Q:'CLINIC D
  1. . I 'VAUTD,'$D(VAUTD(+$$DIVC^BSDU(CLINIC))) Q ;not in division selectd
  1. . I 'VAUTC,'$D(VAUTC($$GET1^DIQ(44,CLINIC,.01))) Q ;clnc not selctd
  1. . ;
  1. . ; loop thru selected date and set into order
  1. . S DATE=BSDT-.0001,END=BSDT_".2400"
  1. . F S DATE=$O(^SC("ARAD",CLINIC,DATE)) Q:'DATE Q:(DATE>END) D
  1. .. S DFN=0 F S DFN=$O(^SC("ARAD",CLINIC,DATE,DFN)) Q:'DFN D
  1. ... Q:$P(^SC("ARAD",CLINIC,DATE,DFN),U)="N" ;don't pull
  1. ... S HRCN=$$HRCN^BDGF2(DFN,$$FAC^BSDU(CLINIC)) ;chart #
  1. ... I $$GET1^DIQ(9009020.2,+$$DIVC^BSDU(CLINIC),.18)'="NO" D
  1. .... S TERM=$$HRCNT^BDGF2(HRCN) ;convert to terminal digit
  1. ... E S TERM=$$HRCND^BDGF2(HRCN) ;add dashes to sort properly
  1. ... S ^TMP("BSDRFC1",$J,TERM,DFN,DATE)=CLINIC_U_HRCN
  1. ;
  1. ; if none found, say so
  1. I '$D(^TMP("BSDRFC1",$J)) D Q
  1. . D SET($$SP(20)_"** NO CHARTS TO PULL FOR DATE **",.BSDLN) S VALMCNT=1
  1. ;
  1. ; loop thru sorted list & create display array
  1. NEW A,B,C,LINE,NODE
  1. S A=0 F S A=$O(^TMP("BSDRFC1",$J,A)) Q:A="" D
  1. . S B=0 F S B=$O(^TMP("BSDRFC1",$J,A,B)) Q:'B D
  1. .. S C=0 F S C=$O(^TMP("BSDRFC1",$J,A,B,C)) Q:'C D
  1. ... S NODE=^TMP("BSDRFC1",$J,A,B,C)
  1. ... ;
  1. ... ; set up line: chart # - name - clinic - appt time
  1. ... S LINE=$J($P(NODE,U,2),7)_" "_$E($$GET1^DIQ(2,B,.01),1,18)
  1. ... S LINE=$$PAD(LINE,34)_$$GET1^DIQ(44,+NODE,.01)
  1. ... S LINE=$$PAD(LINE,60)_$$FMTE^XLFDT(C,5)
  1. ... D SET(LINE,.BSDLN) ;add to display array
  1. ... I $$DEAD^BDGF2(B) D
  1. .... S LINE=$$SP(10)_$G(IORVON)_"** Patient Died on "_$$DOD^BDGF2(B)_" **"_$G(IORVOFF)
  1. .... D SET(LINE,.BSDLN),SET("",.BSDLN)
  1. ;
  1. S VALMCNT=BSDLN K ^TMP("BSDRFC1",$J)
  1. Q
  1. ;
  1. SET(DATA,NUM) ; -- stuff line into array
  1. S NUM=NUM+1
  1. S ^TMP("BSDRFC",$J,NUM,0)=DATA
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. K BSDLN,BSDT,VAUTC,VAUTD,POP K ^TMP("BSDRFC",$J)
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. PRINT ; -- print report to paper
  1. NEW BSDN
  1. U IO D HDG S BSDN=0
  1. F S BSDN=$O(^TMP("BSDRFC",$J,BSDN)) Q:'BSDN D
  1. . ;I $Y>(IOST-4) D HDG
  1. . I $Y>(IOSL-4) D HDG ;IHS/ITSC/LJF 4/29/2004 PATCH #1001
  1. . W !,^TMP("BSDRFC",$J,BSDN,0)
  1. D ^%ZISC,EXIT
  1. Q
  1. ;
  1. HDG ; -- print heading on paper
  1. NEW VALMHDR D HDR
  1. W @IOF W !!?20,"RADIOLOGY PULL LIST"
  1. ;IHS/ITSC/WAR 3/1/04 added the missing subscript
  1. ;F I=1:1 Q:'$D(VALMHDR) W VALMHDR(I)
  1. ;F I=1:1 Q:'$D(VALMHDR(I)) W VALMHDR(I)
  1. F I=1:1 Q:'$D(VALMHDR(I)) W !,VALMHDR(I) ;IHS/ITSC/LJF 4/29/2004 PATCH #1001
  1. W !,$$REPEAT^XLFSTR("=",80),!
  1. Q
  1. ;
  1. PAD(D,L) ;EP -- SUBRTN to pad length of data
  1. ; -- D=data L=length
  1. Q $E(D_$$REPEAT^XLFSTR(" ",L),1,L)
  1. ;
  1. SP(N) ; -- SUBRTN to pad N number of spaces
  1. Q $$PAD(" ",N)