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

BDGSPT1.m

Go to the documentation of this file.
  1. BDGSPT1 ; IHS/OIT/LJF - DISPLAY PATIENTS ACCESSED BY A USER
  1. ;;5.3;PIMS;**1005,1007**;MAY 28,2004
  1. ;IHS/OIT/LJF 01/20/2006 PATCH 1005 Added this routine
  1. ;
  1. NEW BDGUSR,BDGBD,BDGED,SCREEN,BDGSORT
  1. S SCREEN="I $P(^VA(200,+Y,0),U,11)="""""
  1. ;S BDGUSR=+$$READ^BDGF("PO^200:EMQZ","Select USER",,SCREEN) Q:BDGUSR<1 cmi/anch/maw 8/23/2007 orig line PATCH 1007
  1. S BDGUSR=+$$READ^BDGF("PO^200:EMQZ","Select USER",,,SCREEN) Q:BDGUSR<1 ;cmi/anch/maw 8/23/2007 mod per linda fels PATCH 1007
  1. S BDGBD=$$READ^BDGF("DO^::EPX","Select EARLIEST DATE") Q:'BDGBD
  1. S BDGED=$$READ^BDGF("DO^"_BDGBD_":"_DT_":EX","Select LATEST DATE") Q:'BDGED
  1. S BDGSORT=$$READ^BDGF("SO^1:BY DATE;2:BY PATIENT NAME;3:BY OPTION","Select How You Want the Report SORTED")
  1. ;
  1. EN ; -- main entry point for BDG SECURITY USER LIST
  1. NEW VALMCNT D TERM^VALM0,CLEAR^VALM1
  1. D EN^VALM("BDG SECURITY USER LIST")
  1. D CLEAR^VALM1
  1. Q
  1. ;
  1. HDR ; -- header code
  1. NEW X
  1. S X=$$GET1^DIQ(200,+$G(BDGUSR),.01)
  1. S VALMHDR(1)=$$PAD("User:",12)_X
  1. S VALMHDR(2)="Date Range: "_$$RANGE^BDGF(BDGBD,BDGED)
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. S VALMCNT=0 K ^TMP("BDGSPT1",$J),^TMP("BDGSPT1A",$J)
  1. ;
  1. NEW DFN,RVDT,START,END,LINE,SORT,IENS,X
  1. S START=(9999999.9999-(BDGED+.24))-.0001,END=(9999999.9999-BDGBD)
  1. S DFN=0 F S DFN=$O(^DGSL(38.1,"AU",DFN)) Q:'DFN D
  1. . S RVDT=START F S RVDT=$O(^DGSL(38.1,"AU",DFN,BDGUSR,RVDT)) Q:'RVDT Q:(RVDT>END) D
  1. . . S ^TMP("BDGSPT1A",$J,$$SORT(DFN,RVDT),DFN,RVDT)="" ;put patients found in sorted order
  1. ;
  1. ; now take sorted list and place into display array
  1. S SORT=0 F S SORT=$O(^TMP("BDGSPT1A",$J,SORT)) Q:SORT="" D
  1. . S DFN=0 F S DFN=$O(^TMP("BDGSPT1A",$J,SORT,DFN)) Q:'DFN D
  1. . . S RVDT=0 F S RVDT=$O(^TMP("BDGSPT1A",$J,SORT,DFN,RVDT)) Q:'RVDT D
  1. . . . S IENS=RVDT_","_DFN
  1. . . . S LINE=$$PAD(" "_$E($$GET1^DIQ(2,DFN,.01),1,21),24)_$J($$HRCN^BDGF2(DFN,DUZ(2)),6) ;patient/chart#
  1. . . . S LINE=$$PAD(LINE,34)_$E($$READRVD^BDGF(RVDT),1,18) ;date/time accessed
  1. . . . ;S LINE=$$PAD(LINE,54)_$E($$GET1^DIQ(38.11,IENS,3),1,15) ;option accessed cmi/anch/maw 9/12/2007 orig line
  1. . . . S LINE=$$PAD(LINE,54)_$E($$GET1^DIQ(38.11,IENS,3),1,22) ;option accessed cmi/anch/maw 9/12/2007 per ljf email PATCH 1007
  1. . . . ;S X=$$SENS(DFN,RVDT) I X]"" S LINE=$$PAD(LINE,70)_"/ "_X ;sensitivity level cmi/anch/maw 9/12/2007 orig line
  1. . . . S X=$$SENS(DFN,RVDT) I X]"" S LINE=$$PAD(LINE,77)_"/ "_$E(X,1,2) ;sensitivity level cmi/anch/maw 9/12/2007 per ljf email PATCH 1007
  1. . . . S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINE) ;store in display array
  1. ;
  1. I '$D(^TMP("BDGSPT1",$J)) S VALMCNT=1 D SET^VALM10(1,$$SP(10)_"No data found")
  1. K ^TMP("BDGSPT1A",$J)
  1. Q
  1. ;
  1. SORT(PAT,RVDT) ; returns sort value for entry
  1. I BDGSORT=1 Q RVDT
  1. I BDGSORT=2 Q $$GET1^DIQ(2,PAT,.01)
  1. NEW X S X=$$GET1^DIQ(38.11,RVDT_","_PAT,3)
  1. Q $S(X="":"UNKNOWN",1:X)
  1. ;
  1. SENS(PAT,RVDT) ; returns patient's sensitivity level on date, if known
  1. ;status as to patinet being an inpatient or outpatient on date is returned too
  1. NEW DATE,STATUS
  1. S X=$$GET1^DIQ(38.11,RVDT_","_PAT,4),STATUS=$S(X="YES":"INPT",X="NO":"OUTPT",1:"")
  1. S DATE=9999999.9999-RVDT
  1. I DATE<($$GET1^DIQ(38.1,PAT,4,"I")) Q "UNK"_"-"_STATUS
  1. Q $E($$GET1^DIQ(38.1,PAT,2),1,3)_"-"_STATUS
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. K ^TMP("BDGSPT1",$J)
  1. Q
  1. ;
  1. EXPND ; -- expand code
  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)