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

ACDDEU.m

Go to the documentation of this file.
  1. ACDDEU ;IHS/ADC/EDE/KML - COMMON FUNCTIONS;
  1. ;;4.1;CHEMICAL DEPENDENCY MIS;;MAY 11, 1998
  1. ;
  1. DEV ; EP - SELECT OUTPUT DEVICE
  1. K ACDSLAVE
  1. S ACDQ=0
  1. S %ZIS="Q",%ZIS("B")="" D ^%ZIS
  1. I POP S ACDQ=1
  1. I $D(IO("S")) S ACDSLAVE=ION W @IOF D ^%ZISC
  1. Q
  1. ;
  1. PAUSE ; EP - PAUSE FOR USER
  1. Q:$E(IOST)'="C"
  1. Q:$D(ZTQUEUED)!'(IOT["TRM")!$D(IO("S")) ;*** TESTING - AEF *** CHANGED ="TRM" TO ["TRM" TO ACCOUNT FOR "VTRM"
  1. S DIR(0)="E",DIR("A")="Press any key to continue"
  1. K DIRUT
  1. D ^DIR K DIR
  1. Q
  1. ;
  1. CONF ; EP - CONFIDENTIAL CLIENT DATA HEADER
  1. W !,"*** CONFIDENTIAL CLIENT INFORMATION UNDER CFR 42 PART 2 ***",!
  1. NEW X,Y
  1. D NOW^%DTC S Y=$$DD^ACDFUNC(%) W !,"PRINTED: "_Y_" BY: "_$P($G(^VA(200,DUZ,0)),U)_"@"_ACDSITE,!
  1. S X="",$P(X,"=",79)="" W X,!
  1. Q
  1. ;
  1. HDR ; EP - DISPLAY HEADER
  1. D HDR2
  1. S X="",$P(X,"-",79)=""
  1. W X,!
  1. K X
  1. Q
  1. ;
  1. HDR2 ;
  1. W @IOF,"Signon Program is : ",$P(^DIC(4,DUZ(2),0),U),!
  1. I ACDMODE="A" D
  1. . W "Records that may be added are: THOSE WITHIN YOUR SIGNIN PROGRAM.",!!
  1. . W "ADDING CDMIS VISIT RECORDS...",!!
  1. . Q
  1. I ACDMODE="E" D
  1. . W "Editable Records are: THOSE NOT EXTRACTED.",!
  1. . W " THOSE WITHIN YOUR SIGNIN PROGRAM.",!!
  1. . W "EDITING CDMIS VISIT RECORDS...",!!
  1. . Q
  1. Q:$G(ACDCOMCL)=""
  1. W "COMPONENT (CODE) : ",ACDCOMCL,!
  1. W "COMPONENT (TYPE) : ",ACDCOMTL,!
  1. I ACDLPTYP=1 Q:$G(ACDPROV)="" W !,"PRIMARY PROVIDER : ",ACDPROVN,!
  1. Q:ACDCONTL=""
  1. W !,"TYPE CONTACT : ",ACDCONTL,!
  1. I ACDLPTYP=2,$G(ACDCSDP)'="" W "DEFAULT PROVIDER : ",ACDCSDP,!
  1. Q:ACDVDTE=""
  1. W "VISIT DATE : ",ACDVDTE,!
  1. Q
  1. ;
  1. DSPVSIT(VISIT) ; EP - DISPLAY CDMIS VISIT ENTRY
  1. Q:'VISIT
  1. S DIC="^ACDVIS(",DA=VISIT,DR=0
  1. D DIQ^ACDFMC
  1. Q
  1. ;
  1. DSPHIST ; EP - DISPLAY CDMIS VISIT HISTORY
  1. I '$D(^TMP("ACD",$J,"VISITS")) D Q
  1. . W !,"----------",!
  1. . W "No CDMIS VISIT history for client ",ACDDFN,!
  1. . W "----------",!
  1. . Q
  1. I $E(IOST,1,2)="P-" D FWD I 1
  1. E D BCK
  1. Q
  1. ;
  1. FWD ; FORWARD DISPLAY FOR PRINTERS ONLY
  1. D CONF W !
  1. W "CDMIS VISIT history for client ",ACDDFN,!!
  1. W "----------",!
  1. S ACDX=0
  1. F S ACDX=$O(^TMP("ACD",$J,"VISITS",ACDX)) Q:ACDX="" S ACDY=0 F S ACDY=$O(^TMP("ACD",$J,"VISITS",ACDX,ACDY)) Q:'ACDY D DSPV I $P(^ACDVIS(ACDY,0),U,4)="CS" S ACDVIEN=ACDY D DSPCSH
  1. W "----------",!
  1. Q
  1. ;
  1. BCK ; BACKWARD DISPLAY FOR CRTS
  1. W !,"----------",!
  1. W "Recent CDMIS VISIT history for client ",ACDDFN,!!
  1. S ACDX="A",ACDCNT=0
  1. F Q:ACDX="Q" S ACDX=$O(^TMP("ACD",$J,"VISITS",ACDX),-1) Q:ACDX="" S ACDY=0 F S ACDY=$O(^TMP("ACD",$J,"VISITS",ACDX,ACDY)) Q:'ACDY D DSPV S ACDCNT=ACDCNT+1 I ACDCNT>17 S ACDX="Q" Q
  1. K ACDCNT
  1. W "----------",!
  1. Q
  1. ;
  1. DSPV ; EP-DISPLAY CDMIS VISIT ENTRY
  1. S DIC="9002172.1",DA=ACDY,DR=".01;1;3;5",DIQ="ACDPDD("
  1. D DIQ1^ACDFMC
  1. W ACDPDD(9002172.1,ACDY,.01),?12," - ",ACDPDD(9002172.1,ACDY,1),"/",ACDPDD(9002172.1,ACDY,5),?52,ACDPDD(9002172.1,ACDY,3),?70,$S($P(^ACDVIS(ACDY,0),U,25):" <EXTR>",1:""),!
  1. K ACDPDD
  1. Q
  1. ;
  1. DSPCSH ; EP-DISPLAY CDMIS CLIENT SERVICE HISTORY FOR ONE CS VISIT
  1. K ^TMP("ACD",$J,"CS")
  1. S Y=0
  1. F S Y=$O(^ACDCS("C",ACDVIEN,Y)) Q:'Y S X=^ACDCS(Y,0),^TMP("ACD",$J,"CS",$P(X,U),Y)=$P(X,U,2)
  1. S Y=0
  1. F S Y=$O(^TMP("ACD",$J,"CS",Y)) Q:'Y S Z=0 F S Z=$O(^TMP("ACD",$J,"CS",Y,Z)) Q:'Z D
  1. . S X=^TMP("ACD",$J,"CS",Y,Z)
  1. . D PFTV^XBPFTV(9002170.6,X,.W)
  1. . W ?15,Y,?19,W,?55,$J(+$P(^ACDCS(Z,0),U,4),5,2)_" h",!
  1. . Q
  1. K ^TMP("ACD",$J,"CS")
  1. Q
  1. ;
  1. GETVSITS ; EP - GET CDMIS VISITS FOR THIS CLIENT
  1. K ^TMP("ACD",$J,"VISITS")
  1. S ACDVCNT=0,Y=0
  1. F S Y=$O(^ACDVIS("D",ACDDFNP,Y)) Q:'Y S X=^ACDVIS(Y,0) I $P($G(^("BWP")),U)=ACDPGM D
  1. . I $G(ACDTCTG)'="",$P(X,U,4)'=ACDTCTG Q ; quit if tc not wanted
  1. . S ^TMP("ACD",$J,"VISITS",$P(X,U),Y)=X,ACDVCNT=ACDVCNT+1
  1. . Q
  1. Q
  1. ;
  1. CHKFIN ; EP - CHECK FOR INITIAL CONTACT TYPE
  1. I '$D(IORVON) S X="IORVON;IORVOFF" D ENDR^%ZISS
  1. S ACDX="",(ACDY,Y)=0
  1. F S ACDX=$O(^TMP("ACD",$J,"VISITS",ACDX)) Q:ACDX="" S Y=0 F S Y=$O(^TMP("ACD",$J,"VISITS",ACDX,Y)) Q:'Y S X=^(Y) I $P(X,U,2)=ACDCOMC,$P(X,U,7)=ACDCOMT,$P(X,U,4)="IN" S ACDY=Y Q
  1. I ACDY,'ACDINR W !,IORVON,"INITIAL type contact already exists for patient ",ACDDFN,!,"in the ",ACDCOMCL,"/",ACDCOMTL," component.",IORVOFF,! D DSPVSIT^ACDDEU(ACDY),PAUSE^ACDDEU S ACDQ=1 Q
  1. Q:ACDY ; quit if INITIAL type contact found
  1. Q:'ACDINR ; quit if INITIAL type contact not required.
  1. S ACDQ=1
  1. W !,IORVON,"No INITIAL type contact for patient ",ACDDFN,!,"in the ",ACDCOMCL,"/",ACDCOMTL," component.",IORVOFF,!!,"Now searching for a REOPEN.",!
  1. S ACDX="",(ACDY,Y)=0
  1. F S ACDX=$O(^TMP("ACD",$J,"VISITS",ACDX)) Q:ACDX="" S Y=0 F S Y=$O(^TMP("ACD",$J,"VISITS",ACDX,Y)) Q:'Y S X=^(Y) I $P(X,U,2)=ACDCOMC,$P(X,U,7)=ACDCOMT,$P(X,U,4)="RE" S ACDY=Y Q
  1. I ACDY S ACDQ=0 W !,"REOPEN found.",! Q
  1. W !,IORVON,"No INITIAL or REOPEN found.",IORVOFF,!
  1. D PAUSE^ACDDEU
  1. Q
  1. ;
  1. GETDTR ; EP-GET DATE RANGE
  1. ; returns ACDDTLO and ACDDTHI or ACDQ=1
  1. F D GETDTR2 Q:$D(DIRUT) Q:'ACDQ
  1. K:ACDQ ACDDTLO,ACDDTHI
  1. Q
  1. ;
  1. GETDTR2 ;
  1. S ACDQ=1
  1. S DIR(0)="DO^::EP",DIR("A")="Enter beginning date" K DA D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. Q:Y=""
  1. S ACDDTLO=Y
  1. S DIR(0)="DO^::EP",DIR("A")="Enter ending date" K DA D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. Q:Y=""
  1. S ACDDTHI=Y
  1. I ACDDTHI<ACDDTLO W !!,"Ending date before beginning date!",!! Q
  1. S:$E(ACDDTLO,6,7)="01" $E(ACDDTLO,6,7)="00" ; to get CS visits
  1. S ACDQ=0
  1. Q
  1. GETTOB ; get tobacco use info
  1. ; utilized by input templates ACD I/I/F ADD and ACD T/D/C/ ADD
  1. N DIR S DIR(0)="S^0:NONE;1:SMOKING;2:SMOKELESS;3:SMOKING & SMOKELESS",DIR("A")="TOBACCO USE" D ^DIR
  1. I Y N DR S DR="30///^S X=Y" D ^DIE
  1. Q