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

BSDAL0.m

Go to the documentation of this file.
  1. BSDAL0 ; IHS/ANMC/LJF - IHS APPT LIST - CONTINUED ;
  1. ;;5.3;PIMS;;APR 26, 2002
  1. ;IHS version of SDAL0
  1. ;
  1. START ;EP; called by list template INIT^BSDALL
  1. NEW SC,BSDCN
  1. S BSDCN=0
  1. F S BSDCN=$S(VAUTC:$O(^SC("B",BSDCN)),1:$O(VAUTC(BSDCN))) Q:BSDCN="" D
  1. . S SC=0
  1. . F S SC=$O(^SC("B",BSDCN,SC)) Q:'SC D CLINIC
  1. Q
  1. ;
  1. CLINIC ; called for each clinic
  1. NEW BSDACT,BSD,IEN,FIRST
  1. ; check if clinic is active and not cancelled for date
  1. I $$CHECK(SC,BSDD),$$ACTIVITY(SC,BSDD) D
  1. . W !
  1. . I $G(BSDION)]"" W "@@@@@" ;top of page marker for paper print
  1. . W "Appointments for ",$$GET1^DIQ(44,SC,.01)," clinic on ",$$FMTE^XLFDT(BSDD)
  1. . I $G(BSDION)="" W !,$$REPEAT^XLFSTR("=",80)
  1. . ;
  1. . ;get each appt time for date and clinic
  1. . S BSDACT=0,BSD=BSDD
  1. . F S BSD=$O(^SC(SC,"S",BSD)) Q:'BSD!(BSD\1>BSDD) D
  1. .. ; find each appt at date/time then call APPTLN to print info
  1. .. S IEN=0,FIRST=1
  1. .. F S IEN=$O(^SC(SC,"S",BSD,1,IEN)) Q:'IEN D
  1. ... Q:$P($G(^SC(SC,"S",BSD,1,IEN,0)),U,9)="C" ;cancelled
  1. ... D APPTLN(SC,BSD,IEN) ;print appt data line
  1. . ;
  1. . I 'BSDACT D
  1. .. S BSDACT="No appointment activity found for this clinic date!"
  1. .. W !!?(IOM-$L(BSDACT)\2),BSDACT
  1. . ;
  1. . W ! I BSDCR D CCLK(SC,BSDD) ;print chart requests at end of list
  1. ;
  1. Q
  1. ;
  1. APPTLN(CLN,DATE,IEN) ; -- for each individual appt, print patient data
  1. NEW NODE,DFN,BSDOI,DATA,X,VA,VADM,BSDZ,SPACE,Z,VAPA
  1. S NODE=^SC(CLN,"S",DATE,1,IEN,0),DFN=+NODE,BSDOI=$P(NODE,U,4)
  1. I BSDWI=0,$$WALKIN^BSDU2(DFN,DATE) Q ;quit if excluding walk-ins
  1. S DATA=$G(^DPT(DFN,"S",DATE,0)) Q:$P(DATA,U,2)["C" ;cancelled
  1. D DEM^VADPT
  1. ;
  1. ; -- build display line
  1. ;
  1. ; line 1: appt time, walkin, checkin, out vs inpt
  1. I FIRST S FIRST=0,X=DATE D TM^SDROUT0 W !,$J(X,8) ;appt time
  1. I $X>15 W !!
  1. I $P(DATA,U,7)=4 W ?12,"Walk-in " ;walk-in
  1. E S X=$P($G(^SC(SC,"S",DATE,1,IEN,"C")),U) I X]"" D
  1. . D TM^SDROUT0 W ?12,"Checked in at ",X ;checkin time
  1. I ($P(DATA,U,2)="N")!($P(DATA,U,2)="NA") W ?12,"No-Show" ;no-show
  1. S X=$$INPT1^BDGF1(DFN,DATE) ;inpatient?
  1. I X]"" W ?40,"Admitted "_X_" " ;admit date
  1. W ?40,"(",$S($G(^DPT(DFN,.1))]"":^(.1),1:"Outpatient"),")"
  1. ;
  1. ; -- line 2: name, chart #, dob, age, lab/x-ray/ekg times
  1. I $$DEAD^BDGF2(DFN) W !?12,"** PATIENT DIED ON ",$$DOD^BDGF2(DFN)," **"
  1. ;
  1. W !?5,$S($D(^SC(SC,"S",DATE,1,IEN,"OB")):"*",1:"") ;* if overbook
  1. W ?7,$E(VADM(1),1,18) ;patient name
  1. W ?30,"#",VA("PID") ;pat id
  1. W ?39,$$FMTE^XLFDT(+VADM(3),5)," (",VADM(4),")" ;dob(age)
  1. ;
  1. S (BSDZ(3),BSDZ(4),BSDZ(5))="" ;lab/xray/ekg
  1. F X=3,4,5 S BSDZ(X)=$P(DATA,U,X) ;test date/times
  1. S SPACE=0 F Z=3,4,5 S X=BSDZ(Z) D:X]"" TM^SDROUT0 S SPACE=Z#3*8+3 W ?48+SPACE,$J(X,8) W:SPACE<16 " "
  1. ;
  1. ; line 3: insurance coverage and other info
  1. W !?9,$$INSUR^BDGF2(DFN,DATE) W:BSDOI]"" ?18,BSDOI
  1. ;
  1. ; line 4: patient phone and apt made by
  1. I BSDPH!BSDAMB W !
  1. I BSDPH K VAPA D ADD^VADPT W ?5,"Phone: ",VAPA(8) ;pat home phone
  1. I BSDAMB D ;appt made by
  1. . NEW X,Y,Z
  1. . S X=$P(NODE,U,6),Y=$P(NODE,U,7) Q:X=""
  1. . W ?25,"Made by ",$$GET1^DIQ(200,X,.01)," on ",$$FMTE^XLFDT(Y,"2")
  1. . S Z=$$GET1^DIQ(200,X,.132) W:Z]"" ?63," (",Z,")" ;user's phone
  1. ;
  1. ; line 5: primary care provider info
  1. NEW BSDARR,I
  1. I BSDPCMM S BSDARR="BSDARR" D PCP^BSDU1(DFN,.BSDARR)
  1. I $D(BSDARR(1)) W !?20,"PCP: ",$P(BSDARR(1),"/",1,2)
  1. ;
  1. S BSDACT=BSDACT+1 W !
  1. Q
  1. ;
  1. ;
  1. CCLK(CLN,DATE) ; -- list chart requests for this clinic and date
  1. NEW BSDC,DFN,IEN,BSDN
  1. I $O(^SC(CLN,"C",DATE,1,0)) W !,"CHART REQUESTS for ",$$FMTE^XLFDT(DATE),":"
  1. S IEN=0 F S IEN=$O(^SC(CLN,"C",DATE,1,IEN)) Q:'IEN D
  1. . S DFN=$G(^SC(CLN,"C",DATE,1,IEN,0)) Q:'DFN
  1. . S BSDN=$G(^SC(CLN,"C",DATE,1,IEN,9999999))
  1. . W !,$E($$GET1^DIQ(2,DFN,.01),1,20)
  1. . W ?23,"#",$$HRCN^BDGF2(DFN,DUZ(2))
  1. . W ?35,$E($P(BSDN,U,3),1,33)
  1. . Q:'BSDAMB
  1. . W !?35,"Made by ",$E($$GET1^DIQ(200,+$P(BSDN,U,2),.01),1,15)
  1. . W " on ",$$FMTE^XLFDT(+BSDN,"D")
  1. Q
  1. ;
  1. ;
  1. CHECK(CLN,APDT) ;check if clinic for this division and not cancelled or inactive
  1. I $$GET1^DIQ(44,CLN,2,"I")'="C" Q 0 ;not a clinic
  1. I 'VAUTD,'$D(VAUTD(+$$GET1^DIQ(44,CLN,3.5,"I"))) Q 0 ;wrong division
  1. I '$$ACTV^BSDU(CLN,APDT) Q 0 ;not active
  1. I $G(^SC(CLN,"ST",APDT,1))="" Q 0 ;no schedule
  1. I $G(^SC(CLN,"ST",APDT,1))["**CANCELLED" Q 0 ;cancelled
  1. Q 1
  1. ;
  1. ;
  1. ACTIVITY(CLN,APDT) ;Determine if clinic has activity to print for appt date
  1. I BSDCR,$O(^SC(CLN,"C",APDT,0)) Q 1 ;chart request list
  1. NEW DATE,FOUND,N
  1. S FOUND=0,DATE=APDT
  1. F S DATE=$O(^SC(CLN,"S",DATE)) Q:'DATE Q:(DATE\1>APDT) Q:FOUND D
  1. .S N=0 F S N=$O(^SC(CLN,"S",DATE,1,N)) Q:'N!FOUND D
  1. .. I $P(^SC(CLN,"S",DATE,1,N,0),U,9)'["C" S FOUND=1
  1. Q FOUND
  1. ;