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

DGPREP0.m

Go to the documentation of this file.
  1. DGPREP0 ;Boise/WRL/ALB/SCK-Program to Display Pre-Registration List ; 2/24/04 2:11pm
  1. ;;5.3;Registration;**109,546,586,581**;Aug 13, 1993
  1. Q
  1. ;
  1. EN ; -- main entry point
  1. N VAUTD,X1
  1. ;
  1. I '$D(^XUSEC("DGPRE EDIT",DUZ))&('$D(^XUSEC("DGPRE SUPV",DUZ))) D G ENQ
  1. . W !!,"You do not have the requisite key allocated, contact your Supervisor."
  1. ; *** Select Divisions
  1. I $P($G(^DG(43,1,"GL")),U,2) D
  1. . D DIVISION^VAUTOMA
  1. E D
  1. . S DGSNGLDV=1
  1. . S VAUTD=1
  1. ;
  1. D EN^VALM("DGPRE RG")
  1. ENQ Q
  1. ;
  1. HDR ; -- header code
  1. ; Variables
  1. ; DGPSRT - Sort Method for call list display
  1. ;
  1. N DGPSRT
  1. I $D(VAUTD) S VALMHDR(1)="Call List sorted by Division and then "
  1. S DGPSRT=$P($G(^DG(43,1,"DGPRE")),U)
  1. S VALMHDR(1)=$G(VALMHDR(1))_"Sorted by "_$S(DGPSRT="P":"Patient Name",DGPSRT="S":"Medical Service")_"."
  1. I $G(VAUTD) S VALMHDR(2)="All Divisions selected."
  1. Q
  1. ;
  1. INIT ; -- Retrieve data from call list and build TMP global for sorting Call lsit
  1. ; Variables
  1. ; DGPNR -
  1. ; DGPDATA - 0 Node from ^DGS(41.42,X
  1. ; DGPDATA1 - 1 Node from ^DGS(41.42,X
  1. ; DGPDIV - Division IEN from ^DGS(41.42,
  1. ; DGPDVN - Division Name
  1. ; DGPSV - Medical Service for appointment clinic
  1. ; DGPAT - Appt. date/time
  1. ; DGPPN - Patients name
  1. ; DGPNR - Index No. for LM
  1. ; DGPSRT - Call list sort method
  1. ; DGPN0,DGPN1,DGPNX - Local Var's for $O
  1. ;
  1. N DGQ,DGPDATA,DGPDATA1,DGPDIV,DGPDVN,DGPNX,DGPN1,DGPN2
  1. ;
  1. K ^TMP("DGPRERG",$J)
  1. K ^TMP($J)
  1. S DGPSRT=$P($G(^DG(43,1,"DGPRE")),U)
  1. I $P($G(^DGS(41.42,0)),U,4)>1 W !!,"Sorting Entries..."
  1. ;
  1. S DGPN1=0 F S DGPN1=$O(^DGS(41.42,DGPN1)) Q:'DGPN1 D
  1. . S DGPDATA=$G(^DGS(41.42,DGPN1,0)),DGPDATA1=$G(^DGS(41.42,DGPN1,1))
  1. . Q:DGPDATA']""!(DGPDATA1']"")
  1. . ; **** Division handling
  1. . S DGPDIV=$P(DGPDATA,U,2)
  1. . I +DGPDIV'>0 D
  1. .. I $G(DGSNGLDV) S DGPDIV=$S($D(^DG(40.8,1)):1,1:0) Q
  1. .. S DGPDIV=-1
  1. . K DGQ
  1. . I '$G(DGSNGLDV) D Q:$G(DGQ)
  1. .. I '$G(VAUTD),'$D(VAUTD(DGPDIV)) S DGQ=1
  1. . ;
  1. . S DGPSV=$P(DGPDATA1,U)
  1. . S DGPAT=$P(DGPDATA,U,8)
  1. . S DGPPN=$P(^DPT($P(^DGS(41.42,DGPN1,0),U),0),U)
  1. . ;
  1. . I DGPSRT="S" D
  1. .. I DGPSV']"" W !,"NO SERVICE ENTRY FOR RECORD# ",DGPN1 Q
  1. .. S ^TMP($J,DGPDIV,DGPSV,DGPN1)=$P(^DGS(41.42,DGPN1,0),U)
  1. . ;
  1. . I DGPSRT="P" D
  1. .. I DGPPN']"" W !,"NO PATIENT ENTRY FOR RECORD# ",DGPN1 Q
  1. .. S ^TMP($J,DGPDIV,DGPPN,DGPN1)=$P($G(^DGS(41.42,DGPN1,0)),U)
  1. . ;
  1. . I DGPSRT']"" D
  1. .. I DGPPN']"" W !,"NO PATIENT ENTRY FOR RECORD# ",DGPN1 Q
  1. .. S ^TMP($J,DGPDIV,DGPPN,DGPN1)=$P(^DGS(41.42,DGPN1,0),U)
  1. . W "."
  1. ;
  1. I $D(^TMP($J)) W !!,"Loading Sorted Entries into List..."
  1. E D
  1. . W *7,!!,"No appointments were found for the selected divisions"
  1. . K DIR S DIR(0)="E" D ^DIR K DIR
  1. ;
  1. ; Retreive sorted call list form ^TMP and build LM arrays
  1. ;
  1. S DGPNR=1
  1. S DGPN0="" F S DGPN0=$O(^TMP($J,DGPN0)) Q:DGPN0="" D
  1. . S DGPN1="" F S DGPN1=$O(^TMP($J,DGPN0,DGPN1)) Q:DGPN1="" D
  1. .. S DGPNX="" F S DGPNX=$O(^TMP($J,DGPN0,DGPN1,DGPNX)) Q:DGPNX="" D
  1. ... S DGPDATA=$G(^DGS(41.42,DGPNX,0))
  1. ... S DGPDATA1=$G(^DGS(41.42,DGPNX,1))
  1. ... S DGPSV=$P(DGPDATA1,U)
  1. ... S X=$$SETFLD^VALM1(DGPNR,"","INDEX")
  1. ... S X=$$SETFLD^VALM1($E($P(^DPT($P(DGPDATA,U),0),U),1,30),X,"PATIENT")
  1. ... S DGPDFN=$P(DGPDATA,U)
  1. ... D BLDHIST
  1. ... S X=$$SETFLD^VALM1($P(DGPDATA1,U,2),X,"SSN")
  1. ... S X=$$SETFLD^VALM1(DGPSV,X,"SVC")
  1. ... S X=$$SETFLD^VALM1($E($P(DGPDATA1,U,3),1,18),X,"PHONE")
  1. ... S X=$$SETFLD^VALM1($$FMTE^XLFDT($P(DGPDATA,U,5),"2D"),X,"LAST")
  1. ... I $P(DGPDATA,U,6)="Y" D
  1. .... ;S X=$$SETFLD^VALM1("*",X,"CALL")
  1. ... S DGPDVN=$S(+$G(DGPN0)>0:$P(^DG(40.8,DGPN0,0),U),DGPN0<0:"",1:DGPN0)
  1. ... S X=$$SETFLD^VALM1($E(DGPDVN,1,20),X,"DIVISION")
  1. ... S ^TMP("DGPRERG",$J,DGPNR,0)=X
  1. ... S ^TMP("DGPRERG",$J,"DA",DGPNR,DGPN1)=""
  1. ... S ^TMP("DGPRERG",$J,"DFN",DGPNR,DGPDFN)=""
  1. ... S ^TMP("DGPRERG",$J,"SSN",DGPNR,$P(DGPDATA1,U,2))=""
  1. ... S ^TMP("DGPRERG",$J,"IDX",DGPNR,DGPNR)=""
  1. ... S ^TMP("DGPRERG",$J,"DIV",DGPNR,DGPN0)=""
  1. ... S DGPNR=DGPNR+1
  1. ... W "."
  1. S VALMCNT=DGPNR-1
  1. I VALMCNT'>0 S VALMQUIT=1
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- Exit code
  1. K ^TMP("DGPRERG",$J)
  1. K DGPAT,DGPCH,DGPCL,DGPDA,DGPDATA,DGPDATA1,DGPDFN,DGPEDIT,DGPENT,DGPFLG,DGPIFN
  1. K DGPLOC,DGPN0,DGPN1,DGPN2,DGPN3,DGPNR,DGPP1,DGPP2,DGPP3,DGPPN
  1. K DGPPSRT,DGPST,DGPSV,DGPTAT,DA,X,Y,DIR,DIC,DIE
  1. D FULL^VALM1
  1. D CLEAN^VALM10
  1. Q
  1. ;
  1. BLDHIST ; Build history of call attempts from ^DGS(41.43, Call log
  1. N DGPN2,DGPN3
  1. ;
  1. S DGPN2=0 F S DGPN2=$O(^DGS(41.43,"C",DGPDFN,DGPN2)) Q:'DGPN2 D
  1. . S:$P(^DGS(41.43,DGPN2,0),U,4)]"" ^TMP("STAT",$J,$P(^DGS(41.43,DGPN2,0),U,1))=$P(^DGS(41.43,DGPN2,0),U,4)
  1. I $D(^TMP("STAT",$J)) D
  1. . S DGPTAT=""
  1. . S DGPN3=9999999.999999 F S DGPN3=$O(^TMP("STAT",$J,DGPN3),-1) Q:'DGPN3 D
  1. .. S DGPTAT=DGPTAT_^TMP("STAT",$J,DGPN3)
  1. . S X=$$SETFLD^VALM1(DGPTAT,X,"HIST")
  1. . K ^TMP("STAT",$J)
  1. Q