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

ASDHS.m

Go to the documentation of this file.
  1. ASDHS ; IHS/ADC/PDW/ENM - HS BY CLINIC ; [ 03/25/1999 11:48 AM ]
  1. ;;5.0;IHS SCHEDULING;;MAR 25, 1999
  1. ;
  1. S DIV="" D DIV^SDUTL I $T D ROUT^SDDIV G:Y<0 END
  1. S (SDIQ,SDX,SDREP,SDSTART)="",SDX="ALL"
  1. ;
  1. SORT ; -- ask user for sort option
  1. S ORDER=0
  1. K DIR S DIR(0)="SAO^C:CLINIC;P:PRINCIPLE CLINIC",DIR("B")="P"
  1. S DIR("A")="PRINT IN (C)LINIC or (P)RINCIPLE CLINIC ORDER: "
  1. S DIR("?",1)="Answer C - To see health summaries printed by clinic"
  1. S DIR("?",2)="Answer P - To sort them by principle clinic"
  1. S DIR("?")=" "
  1. D ^DIR K DIR G END:$D(DIRUT) S ORDER=$S(Y="C":2,1:3)
  1. ;
  1. S VAUTD=$S(DIV="":1,1:DIV)
  1. S VAUTNI=1 D CLINIC^VAUTOMA G:Y<0 END
  1. D:'$D(DT) DT^SDUTL
  1. S %DT="AEXF",%DT("A")="PRINT HEALTH SUMMARIES FOR WHAT DATE: "
  1. D ^%DT K %DT("A") G:Y<1 END S SDATE=Y
  1. ;
  1. K DIR S DIR(0)="YO",DIR("B")="YES"
  1. S DIR("A")="Do you want to print other forms also"
  1. S DIR("?",1)="Answer YES to print not only Health Summaries but"
  1. S DIR("?",2)="also Address/Insurance Updates, Medication Profiles"
  1. S DIR("?",3)="and Encounter forms if the clinic(s) have asked for"
  1. S DIR("?",4)="them in their setup."
  1. S DIR("?",5)="Answer NO to print ONLY Health Summaries."
  1. S DIR("?")=" " D ^DIR G END:$D(DIRUT)
  1. I Y'=1 S (SDZEF,SDZMP,SDZAI)=1
  1. ;
  1. A5 ;
  1. S VAR="VAUTD#^VAUTC#^DIV^SDX^ORDER^SDATE^SDIQ^SDREP^SDSTART^SDZEF^SDZMP^SDZAIU"
  1. S DGPGM="START^ASDHS"
  1. S ADGDEV=$$VAL^XBDIQ1(40.8,$$DIV^ASDUT,9999999.06)
  1. I ADGDEV="" K ADGDEV
  1. D ZIS^DGUTQ G:POP END^SDROUT1
  1. G START:'$D(IO("Q"))
  1. ;
  1. END ; -- eoj
  1. K ALL,DIV,ORD,ORDER,RMSEL,SDIQ,SDREP,SDSP,SDSTART
  1. K SDX,X,Y,C,V,I,SDEF,%I Q
  1. ;
  1. START ;EP; loop thru clinics and appts to get patients
  1. NEW ASDX,ASDY,ASDT
  1. K ^UTILITY("SDHS",$J) U IO
  1. ;
  1. I ORDER=2,'$G(VAUTC) D CLIN Q
  1. ;
  1. S ASDX=0
  1. F S ASDX=$O(^SC(ASDX)) Q:'ASDX D CHECK I $T D
  1. . I '$G(VAUTC) D CHECK2 Q:'$T
  1. . S ASDT=SDATE
  1. . F S ASDT=$O(^SC(ASDX,"S",ASDT)) Q:ASDT=""!(ASDT>(SDATE+1)) D
  1. .. S ASDY=0 F S ASDY=$O(^SC(ASDX,"S",ASDT,1,ASDY)) Q:'ASDY D
  1. ... I $P($G(^SC(ASDX,"S",ASDT,1,ASDY,0)),U,9)'="C" D GOT^ASDHS1
  1. D GO^ASDHS1 K VAUTC,VAUTD,SDZEF,SDZMP,SDZAI Q
  1. ;
  1. CLIN ; -- sorts by clinic
  1. S ASDZ=""
  1. F S ASDZ=$O(VAUTC(ASDZ)) Q:ASDZ="" D
  1. . S ASDX=+VAUTC(ASDZ) D CHECK I $T D
  1. .. S ASDT=SDATE
  1. .. F S ASDT=$O(^SC(ASDX,"S",ASDT)) Q:ASDT=""!(ASDT>(SDATE+1)) D
  1. ... S ASDY=0 F S ASDY=$O(^SC(ASDX,"S",ASDT,1,ASDY)) Q:'ASDY D
  1. .... I $P($G(^SC(ASDX,"S",ASDT,1,ASDY,0)),U,9)'="C" D GOT^ASDHS1
  1. D GO^ASDHS1 K VAUTC,VAUTD,SDZEF,SDZMP,SDZAI Q
  1. ;
  1. CHECK ; -- checks out clinic (active?, in division?, etc.)
  1. I $P(^SC(ASDX,0),U,3)="C",$S(DIV="":1,$P(^SC(ASDX,0),U,15)=DIV:1,1:0),$S('$D(^SC(ASDX,"I")):1,+^("I")=0:1,+^("I")>SDATE:1,+$P(^("I"),U,2)'>SDATE&(+$P(^("I"),U,2)):1,1:0)
  1. Q
  1. ;
  1. CHECK2 ; -- checks if clinic belongs to prin clinic chosen
  1. NEW X
  1. S X=$P($G(^SC(ASDX,"SL")),U,5)
  1. I X]"",$D(VAUTC($P(^SC(+X,0),U)))
  1. Q