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

ACMGTP.m

Go to the documentation of this file.
  1. ACMGTP ; IHS/TUCSON/TMJ - LOOKUP AND EDIT OF CMS REGISTER ; [ 02/10/2009 9:47 AM ]
  1. ;;2.0;ACM CASE MANAGEMENT SYSTEM;**5,6,8**;JAN 10, 1996
  1. ;PATCH #6 DISPLAYS REGISTER CREATOR TO NON-SECURED USER
  1. EN ;PEP - SELECT AND CREATE A REGISTER
  1. D RGTP
  1. EXIT K ACMU1,ACMU11,ACMX,ACMI,ACMJ,ACM,ACMQKI,ACMQK,ACMY,ACMRGCUS,ACMRGMGR,ACMRGUSR,ACMQUIT,ACMOLDN,ACMNEWN
  1. K ACMQUIT,ACMZ
  1. I '$D(ACMRGTP) K ACMRG,ACMRGNA
  1. Q
  1. RGTP ;EP;TO SELECT AND CREATE A REGISTER
  1. D HEAD^ACMMENU
  1. RGTPX ;EP;SELECT/CREATE REG W/O HEADER
  1. S ACMX="REGISTER SELECTION UTILITY"
  1. W !!,?80-$L(ACMX)\2,ACMX,!
  1. K:$D(ACMRGTP) ACMRGMGR,ACMRGUSR,ACMRGCUS
  1. K:$D(ACMRGMGR) ACMRGTP,ACMRGUSR
  1. K:$D(ACMRGUSR) ACMRGMGR,ACMRGTP,ACMRGCUS
  1. K:$D(ACMRGCUS) ACMRGTP,ACMRGUSR
  1. S ACMRGX(3)="I '$D(^ACM(41.1,ACMRG,""AU"",""B"",DUZ)) S ACMJ=ACMJ-1",ACMRGX(4)="I $D(^ACM(41.1,ACMRG,""AU"",""B"",DUZ)) X ACMRGX(5)",ACMRGX(5)="W:ACMJ#2=1 !?14 W:ACMJ#2=0 ?45 W ACMRGX"
  1. S ACMRGX=""
  1. F ACMJ=1:1 S ACMRGX=$O(^ACM(41.1,"B",ACMRGX)) Q:ACMRGX="" D RGTPA
  1. K ACMRG,ACMRGX,ACMJ,ACMI
  1. D RGTP1,EXIT
  1. Q
  1. RGTPA S ACMRG="",ACMRG=$O(^ACM(41.1,"B",ACMRGX,ACMRG))
  1. X:$D(ACMRGTP) ACMRGX(3)
  1. X:$D(ACMRGTP) ACMRGX(4)
  1. X:'$D(ACMRGTP) ACMRGX(5)
  1. Q
  1. RGTP1 I $D(ACMRGUSR) S ACMRGUSR=DUZ,DIC(0)="AEMQZ"
  1. I $D(ACMRGCUS) S ACMRGCUS=DUZ,DIC(0)="AEMQZ"
  1. I $D(ACMRGTP) S DIC(0)="AEMQZ"
  1. I $D(ACMRGMGR) S ACMRGMGR=DUZ,DIC(0)="AELMQZ",DLAYGO=9002241
  1. S (DIC,DIE)="^ACM(41.1,",DIC("A")=" REGISTER: "
  1. I $D(ACMRGTP) S ACMZZDIC="^ACM(41.1)",DIC("S")="I $D(@ACMZZDIC@(+Y,""AU"",""B"",DUZ)) ;IHS/CIM/LAB 12/23/06 FIX"
  1. D DIC K ACMZZDIC ;IHS/LAB 12/23/04 FIX
  1. I $E(X)=U!(X="")!(Y<1) S (XQUIT,ACMQUIT)="" K ACMRG,ACMRGNA Q
  1. S (DA,ACMRG)=+Y,ACMRGNA=$P(^ACM(41.1,ACMRG,0),U)
  1. D DECEASED(+Y) ;IHS/CIM/THL PATCH 5
  1. Q:$D(ACMTRN)
  1. I $D(ACMDELRG) S ACMRGTP="" Q
  1. I $D(ACMRGTP),'$D(ACMTRN) S (ACMEP,ACMES,ACMEP,ACMPP)="" D ^ACMCTRL Q
  1. RGTP2 I '$D(ACMRGTP)&($D(ACMRGMGR)!$D(ACMRGUSR)) S DR=$S($D(ACMRGMGR):"[ACM REGISTER SETUP]",$D(ACMRGUSR):".05T",1:"") D:$D(ACMRGUSR) USER D Q:'$D(^ACM(41.1,ACMRG,0))
  1. .I $D(ACMRGUSR),$D(ACMQUIT) Q
  1. .I DUZ'=$P($G(^ACM(41.1,ACMRG,4)),U) D SECMSG H 5 S ACMQUIT=1 Q
  1. .S ACMOLDN=$P($G(^ACM(41.1,ACMRG,0)),U)
  1. .D DIE
  1. .S ACMNEWN=$P($G(^ACM(41.1,ACMRG,0)),U)
  1. .D:ACMOLDN'=ACMNEWN NAMEREX
  1. I $D(ACMRGUSR),$D(ACMQUIT) K ACMQUIT G EN
  1. I $D(ACMRGCUS),'$D(ACMQUIT) D SLCT
  1. Q
  1. SLCT F D SELECT Q:$D(ACMQUIT)
  1. K ACMQUIT
  1. Q
  1. SELECT D HEAD^ACMMENU
  1. W !!
  1. S ACMX="",ACMU1=0
  1. ;F ACMU1=1:1 S ACMX=$O(^ACM(56,"B",ACMX)) Q:ACMX="" S ACMY=$O(^ACM(56,"B",ACMX,"")),ACMZ(ACMU1)=ACMY,ACMX(ACMU1)=ACMX
  1. F S ACMX=$O(^ACM(56,"B",ACMX)) Q:ACMX="" S ACMY=$O(^ACM(56,"B",ACMX,"")) I $P(^ACM(56,ACMY,0),U,4)'="D" S ACMU1=ACMU1+1,ACMZ(ACMU1)=ACMY,ACMX(ACMU1)=ACMX
  1. S ACMU11=ACMU1\2+(ACMU1#2)
  1. F ACM=1:1:ACMU11 D
  1. .S ACMU1=ACM,ACMY=ACMZ(ACMU1)
  1. .W !?10,$J(ACMU1,3)_")",?$X+2,ACMX(ACMU1)
  1. .I ACMX(ACMU1)["CASE REVIEW" W ?37,"<**"
  1. .E I $D(^ACM(41.1,ACMRG,2,ACMY)) W ?37,"<=="
  1. .S ACMU1=ACM+ACMU11
  1. .;Q:'$D(ACMZ(ACMU1)) ;S ACMU1=ACMU1-1 Q
  1. .I '$D(ACMZ(ACMU1)) S ACMU1=ACMU1-1 Q
  1. .S ACMY=ACMZ(ACMU1)
  1. .W ?45,$J(ACMU1,3)_")",?$X+2,ACMX(ACMU1)
  1. .I ACMX(ACMU1)["REGISTER" W ?68,"<**"
  1. .E I $D(^ACM(41.1,ACMRG,2,ACMY)) W ?68,"<=="
  1. S ACMU1=ACMU1+1
  1. I ACMU1#2 W !?10
  1. W ?45
  1. W $J(ACMU1,3)_")"," All data types"
  1. W !!,?12,"<** Indicates automatic selection of Register Component"
  1. SLCT1 S DIR(0)="SOA^A:ADD;D:DELETE;H:HELP",DIR("A")="'A' to ADD, 'D' to DELETE option(s) or 'H' for HELP ==> ",DIR("?")="Type 'A' to ADD, 'D' to DELETE 'H' for HELP "
  1. W !!
  1. D ^DIR K DIR
  1. I U[$E(X)!(X="") S ACMQUIT="" Q
  1. S ACMQK=Y
  1. I ACMQK="H" D ^ACMHELP Q
  1. W !!?10,"'<==' indicates option already selected for this register.",!?10,"To select several data types separate them with commas.",!?10,"For example: ==> 1,3,7,9"
  1. K DR
  1. S:$E(ACMQK)="D" DR=".01///@"
  1. S DIR(0)="LOA^1:"_ACMU1,DIR("A")="Select option(s) ==> ",DIR("?")="Type a number from 1 to "_ACMU1
  1. W !
  1. D ^DIR K DIR
  1. I U[$E(X)!(X="") S ACMQUIT="" Q
  1. S ACMQK=Y
  1. S:$E(ACMQK,$L(ACMQK))="," ACMQK=$E(ACMQK,1,$L(ACMQK)-1)
  1. I ACMQK=ACMU1 D ALL Q
  1. LOOP S ACMCNT=$L(ACMQK,","),ACMQK1=ACMQK
  1. W ! D WAIT^DICD W !
  1. F ACMLI=1:1:ACMCNT S ACMQK=$P(ACMQK1,",",ACMLI) D SET
  1. Q
  1. SET Q:ACMQK>(ACMU1-1)
  1. ;Q:'$D(ACMZ(ACMQK))
  1. S (DA,X,DINUM)=ACMZ(ACMQK),DA(1)=ACMRG
  1. K DIC,DD S (DIE,DIC)="^ACM(41.1,"_ACMRG_",2,",DIC(0)="L"
  1. S:'$D(^ACM(41.1,ACMRG,2,0)) ^ACM(41.1,ACMRG,2,0)="^9002241.13P^^"
  1. I '$D(DR) K DD,DO D FILE^DICN K DIC,DD,DR
  1. D:$D(DR) DIE
  1. Q
  1. ;
  1. ALL W ! D WAIT^DICD W !
  1. F ACMQK=1:1:(ACMU1-1) D SET
  1. Q
  1. USER D HEAD^ACMMENU
  1. S ACMX="AUTHORIZED USERS"
  1. W !?80-$L(ACMX)\2,ACMX,!!
  1. S ACMX=""
  1. ;2ND SEC LEVEL
  1. S ACMRDEV=$P($G(^ACM(41.1,ACMRG,4)),U) ;IHS/CMI/TMJ PATCH #6
  1. I ACMRDEV'="" S ACMRDEV=$P($G(^VA(200,ACMRDEV,0)),U)
  1. I DUZ'=$P($G(^ACM(41.1,ACMRG,4)),U) W !!,$C(7),$C(7),?20,"You are NOT the Creator of this Register",!,?19,"Therefore, you cannot Add Users!",!!
  1. I DUZ'=$P($G(^ACM(41.1,ACMRG,4)),U) W !,"Contact the Register Developer- "_ACMRDEV_" -for more information.",!! H 5 S ACMQUIT=1 Q
  1. ;I DUZ'=$P($G(^ACM(41.1,ACMRG,4)),U) W !!!,$C(7),$C(7),?5,"You are NOT the Creator of this Register; therefore, you cannot Add Users!",!! H 5 S ACMQUIT=1 Q
  1. F ACMU1=1:1 S ACMX=$O(^ACM(41.1,ACMRG,"AU","B",ACMX)) Q:ACMX="" D USR1
  1. K ACMU1,ACMX,ACMY
  1. W !
  1. Q
  1. USR1 Q:'$D(^VA(200,ACMX,0))
  1. S ACMY=$P(^VA(200,ACMX,0),U)
  1. I $D(ACMY) W:ACMU1#2=1 !?14 W:ACMU1#2=0 ?45 W ACMY
  1. Q
  1. DIC W ! D ^DIC K DIC,DR,DD,DLAYGO Q
  1. DIE D ^DIE K DIC,DIE,DA Q
  1. SECMSG ;
  1. D SECMSG^ACMGTP1
  1. Q
  1. NAMEREX ;
  1. D NAMEREX^ACMGTP1
  1. Q
  1. DECEASED(ACMRGDA) ;PEP;PUBLISHED ENTRY POINT TO CHECK REGISTER PATIENTS FOR ;IHS/CIM/THL PATCH 5
  1. ;DECEASED STATUS
  1. ;ACMRGDA - IEN FOR THE REGISTER
  1. Q:'$G(ACMRGDA)
  1. Q:'$D(^ACM(41,"B",ACMRGDA))
  1. W !!,"Register being checked to update status of deceased patients."
  1. S ZTRTN="DEC1^ACMGTP"
  1. S ZTSAVE("ACM*")=""
  1. S ZTDTH=$H
  1. S ZTIO=""
  1. S ZTDESC="CHECK CMS REGISTER FOR DECEASED PATIENTS"
  1. D ^%ZTLOAD
  1. Q
  1. DEC1 ;PEP;TO CHECK FOR DECEASED PATIENTS
  1. Q:'$G(ACMRGDA)
  1. N ACMDA,DFN
  1. S ACMDA=0
  1. F S ACMDA=$O(^ACM(41,"B",ACMRGDA,ACMDA)) Q:'ACMDA D
  1. .S DFN=$P($G(^ACM(41,ACMDA,0)),U,2)
  1. .Q:'$G(^DPT(+DFN,.35))
  1. .D DECEASED^ACMLPAT(DFN,ACMDA)
  1. Q