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

ACDCSD.m

Go to the documentation of this file.
  1. ACDCSD ;IHS/ADC/EDE/KML - DATA ENTER/EDIT FOR CLIENT CATEGORIES;
  1. ;;4.1;CHEMICAL DEPENDENCY MIS;;MAY 11, 1998
  1. ;
  1. START ;
  1. D MAIN
  1. D EOJ
  1. Q
  1. ;
  1. MAIN ;
  1. D INIT
  1. Q:ACDQ
  1. D GETCAT
  1. Q:ACDQ
  1. I ACDNEWG S Y=1 I 1
  1. E S DIR(0)="S^1:Add new patients;2:Delete existing patients",DIR("A")="Choose",DIR("B")="1" K DA D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. S ACDAE=Y
  1. F D GETPATS Q:ACDQ
  1. Q
  1. ;
  1. INIT ;
  1. S ACDQ=1
  1. Q:'$D(IOF)
  1. Q:'$G(DUZ(2))
  1. Q:'$D(^ACDF5PI(DUZ(2),0)) ; should never happen
  1. S ACDPGM=DUZ(2)
  1. Q:'$G(IO)
  1. S Y=$O(^%ZIS(1,"C",IO,0)) I Y S Y=$P($G(^%ZIS(1,Y,"SUBTYPE")),U) I Y S X=$G(^%ZIS(2,Y,5)),ACDRVON=$P(X,U,4),ACDRVOF=$P(X,U,5)
  1. I $G(ACDRVON)="" S ACDRVON="""""",ACDRVOF=""""""
  1. S ACDDUZZ=DUZ(2)
  1. S ACDDOV=DT ; set visit date for ^ACDAGRG
  1. K ^TMP("ACD",$J),^TMP($J)
  1. S ACDDUZZ=DUZ(2)
  1. W @IOF,"Signon Program is : ",$P(^DIC(4,DUZ(2),0),U)
  1. W !,"Adding/editing client categories for auto cs duplication",!
  1. S ACDQ=0
  1. Q
  1. ;
  1. GETCAT ; GET CLIENT CATEGORY
  1. S ACDQ=1
  1. S DIC="^ACDPAT(",DIC(0)="AEMQL",DLAYGO=9002172.8,DIC("DR")="2////"_ACDPGM_";.03;.04",DIC("S")="I $P(^(0),U,2)=ACDPGM" D DIC^ACDFMC
  1. Q:Y<0
  1. S ACDCC=+Y
  1. S ACDNEWG=+$P(Y,U,3)
  1. I '$P(Y,U,3) S DIE="^ACDPAT(",DA=+Y,DR=".01" S ACDKPDA=1 D DIE^ACDFMC I '$D(DA) Q ; user must have deleted the client category
  1. K DA
  1. S ACDCOMC=$P(^ACDPAT(ACDCC,0),U,3),ACDCOMT=$P(^(0),U,4)
  1. S Y=ACDCOMC,C=$P(^DD(9002172.8,.03,0),U,2) D Y^DIQ S ACDCOMCL=Y
  1. S Y=ACDCOMT,C=$P(^DD(9002172.8,.04,0),U,2) D Y^DIQ S ACDCOMTL=Y
  1. I ACDCOMC=""!(ACDCOMT="") D FIXCAT Q:ACDQ
  1. I $O(^ACDPAT(ACDCC,1,0)) S DIC="^ACDPAT(",DA=ACDCC D DIQ^ACDFMC,PAUSE^ACDDEU
  1. S ACDQ=0
  1. Q
  1. ;
  1. FIXCAT ; FIX OLD CATEGORY. IT MUST HAVE COMC/COMT
  1. S ACDQ=0
  1. S DIE="^ACDPAT("
  1. S DA=ACDCC
  1. S DR=".03;.04"
  1. D DIE^ACDFMC
  1. S ACDCOMC=$P(^ACDPAT(ACDCC,0),U,3),ACDCOMT=$P(^(0),U,4)
  1. I ACDCOMC=""!(ACDCOMT="") S ACDQ=1 Q
  1. S Y=ACDCOMC,C=$P(^DD(9002172.8,.03,0),U,2) D Y^DIQ S ACDCOMCL=Y
  1. S Y=ACDCOMT,C=$P(^DD(9002172.8,.04,0),U,2) D Y^DIQ S ACDCOMTL=Y
  1. ; now make sure all patients in category have init for comc/comt
  1. S ACDY=0 F S ACDY=$O(^ACDPAT(ACDCC,1,ACDY)) Q:'ACDY S ACDDFNP=+^(ACDY,0) D
  1. . S ACDDFN=$P(^DPT(ACDDFNP,0),U) ; get patient name
  1. . S ACDINR=1
  1. . NEW ACDY
  1. . D CHKFIN^ACDDEU ; check for initial type contact
  1. . Q
  1. I ACDQ W !!,"WARNING - All patients must have an initial type contact for the",!,ACDCOMCL,"/",ACDCOMTL," component prior to using this client category,",!
  1. Q
  1. ;
  1. GETPATS ; GET PATIENTS
  1. K ACDNEWP
  1. I ACDAE=2 D PATED Q
  1. D ^ACDDEGP
  1. Q:ACDQ
  1. D GETVSITS^ACDDEU ; gather up all visits for this patient
  1. I $D(^ACDPAT(ACDCC,1,ACDDFNP,0)) D EDIT Q
  1. ; add a new patient
  1. S ACDINR=1
  1. D CHKFIN^ACDDEU ; check for initial type contact
  1. I ACDQ S ACDQ=0 Q
  1. S DIC="^ACDPAT("_ACDCC_",1,"
  1. S DIC(0)="L"
  1. S DIC("P")=$P(^DD(9002172.8,1,0),U,2)
  1. S DA=ACDDFNP,DA(1)=ACDCC
  1. S DINUM=DA
  1. S X=ACDDFNP
  1. D FILE^ACDFMC
  1. I +Y<0 W !,"Creation of CLIENT entry failed. Notify programmer.",!! S ACDQ=1 S:$D(^%ZOSF("$ZE")) X="CDMIS CLIENT CATEGORY CLIENT",@^("$ZE") D @^%ZOSF("ERRTN") Q
  1. S ACDNEWP=1
  1. D EDIT
  1. Q
  1. ;
  1. PATED ; SELECT AN EXISTING PATIENT TO EDIT
  1. W !
  1. S DIC="^ACDPAT(ACDCC,1,",DIC(0)="AEMQ" D ^DIC
  1. I Y<0 S ACDQ=1 Q
  1. S ACDDFNP=+Y
  1. S ACDDFN=$P(^DPT(ACDDFNP,0),U)
  1. D GETDEMO^ACDDEGP
  1. D EDIT
  1. Q
  1. ;
  1. EDIT ; EDIT AN EXISTING PATIENT
  1. S DIE="^ACDPAT("_ACDCC_",1,"
  1. S DA=ACDDFNP,DA(1)=ACDCC
  1. S DR=""
  1. S:'$G(ACDNEWP) DR=".01//"_ACDDFN_";"
  1. S DR=DR_"2////"_ACDTRBCD_";3////"_ACDSEX_";4////"_ACDAGER_";22////"_ACDSTACD_";23////"_ACDSTA_";24////"_ACDTRB_";25////"_ACDVET_";26////"_ACDAGE
  1. D DIE^ACDFMC
  1. W !," Patient demographic information set from Patient Registration data."
  1. Q
  1. ;
  1. EOJ ;
  1. K ACDNEWG
  1. D ^ACDKILL
  1. Q