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

GMTSXAR.m

Go to the documentation of this file.
  1. GMTSXAR ; SLC/KER - List Parameters/Resequence ; 02/27/2002
  1. ;;2.7;Health Summary;**49,62**;Oct 20, 1995
  1. ;
  1. ; External References
  1. ; DBIA 10022 %XY^%RCR
  1. ; DBIA 10018 ^DIE (file #8989.51)
  1. ; DBIA 10006 ^DIC (file #8989.51, 8989.518)
  1. ; DBIA 10026 ^DIR
  1. ; DBIA 2056 $$GET1^DIQ (file #8989.513)
  1. ; DBIA 2052 FIELD^DID (file #8989.51)
  1. ; DBIA 2992 ^XTV(8989.51,
  1. ;
  1. Q
  1. EN ; Main Entry
  1. N X,%X,Y,%Y,DA,DIC,DIDEL,DIE,DIR,DIROUT,DIRUT,DR,DTOUT,DUOUT,GMTSA,GMTSC,GMTSCHG,GMTSCNT,GMTSCONT,GMTSCT,GMTSCUR,GMTSD,GMTSEQ,GMTSEXIT
  1. N GMTSF,GMTSFI,GMTSI,GMTSIE,GMTSM,GMTSMAX,GMTSN,GMTSNEW,GMTSNXC,GMTSNXT,GMTSO,GMTSOK,GMTSOLD,GMTSON,GMTSORD,GMTSPARM,GMTSPI,GMTSREM
  1. N GMTSREO,GMTSSSO,GMTST,GMTSTOT,GMTSUSR,GMTSMGR
  1. S GMTSMGR=$$MGR^GMTSXAW3 Q:GMTSMGR'>0
  1. S GMTSCHG=0,GMTSPARM="ORWRP HEALTH SUMMARY TYPE LIST"
  1. S GMTSPI=$$PDI^GMTSXAW3(GMTSPARM) Q:+GMTSPI=0
  1. S %X="^XTV(8989.51,"_GMTSPI_",30,",%Y="GMTSO(""AL""," D %XY^%RCR S %X="^XTV(8989.518,",%Y="GMTSO(""ET""," D %XY^%RCR K GMTSO("ET","B"),GMTSO("ET","C")
  1. S (GMTSI,GMTSC)=0 F S GMTSI=$O(GMTSO("AL","B",GMTSI)) Q:+GMTSI=0 D
  1. . N GMTSIE S GMTSEQ(GMTSI)="",GMTSIE=0
  1. . F S GMTSIE=$O(GMTSO("AL","B",GMTSI,GMTSIE)) Q:+GMTSIE=0 D
  1. . . N GMTSF S GMTSF=$P($G(GMTSO("AL",GMTSIE,0)),"^",2) Q:+GMTSF=0 Q:'$D(GMTSO("ET",GMTSF,0))
  1. . . S GMTSC=GMTSC+1
  1. . . S (GMTSCUR(GMTSC),GMTSOLD(GMTSC))=GMTSI_"^"_GMTSF_"^"_$G(GMTSO("ET",GMTSF,0))
  1. . . S GMTSOLD("B",GMTSI,GMTSC)=""
  1. D ORD D:+($G(GMTSEXIT))=0 CHK
  1. W:+($G(GMTSCHG))'>0 !!,?2,"No Changes Made"
  1. Q
  1. ORD ; Order of Entities
  1. N GMTSI,GMTST,GMTSC,GMTSCNT,GMTSTOT,GMTSREM,GMTSSO,GMTSNXT,GMTSNXC,GMTSON
  1. S (GMTSSO,GMTSCNT,GMTSI,GMTSON)=0,(GMTSTOT,GMTST)=$$TOT Q:+GMTSTOT'>1
  1. S GMTSEXIT=0,GMTSCONT=$$CONT I +GMTSCONT>0 S GMTSEXIT=1 Q
  1. W !!," Please select the order in which you want these to be entities"
  1. W !," to be used." F Q:+($G(GMTSEXIT))>0 D SO Q:+($G(GMTSEXIT))>0 Q:'$D(GMTSOLD)
  1. S GMTSEXIT=0
  1. Q
  1. ;
  1. SO ; Select Order
  1. K GMTSOLD("B") N GMTSI,GMTSC,GMTSMAX,GMTSREO S GMTSI=0,GMTSREM=$$TOT
  1. S GMTSCNT=GMTSTOT-GMTSREM,GMTSNXT=GMTSCNT+1,GMTSSO=+($G(GMTSSO))+1
  1. S GMTSNXC=$S(GMTSNXT=1:(GMTSNXT_"st"),GMTSNXT=2:(GMTSNXT_"nd"),GMTSNXT=3:(GMTSNXT_"rd"),1:(GMTSNXT_"th"))
  1. I +GMTSREM=1 S Y=+GMTSREM D SET Q
  1. W ! D SOL,REO S (GMTSC,GMTSI)=0
  1. S GMTSMAX=GMTSREM W ! N DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
  1. S DIR(0)="NAO^1:"_GMTSMAX_":0",DIR("?")="^D SOH1^GMTSXAR",DIR("??")="^D SOH2^GMTSXAR"
  1. S DIR("A")=" Select the "_GMTSNXC_" entity to be used: "
  1. K DIR("B") S:+($O(GMTSREO(0)))>0 DIR("B")=+($O(GMTSREO(0)))
  1. D ^DIR I Y="",X="@" D
  1. . N GMTSD S GMTSD=$P($G(^GMT(142.98,+($G(GMTSUSR)),1)),"^",2)
  1. . S GMTSEXIT="1^"_$S($L(GMTSD):"",1:"exiting")
  1. . S Y="@" K GMTSORD S GMTSORD("@")=""
  1. S:Y["^"!($D(DUOUT))!($D(DIROUT)) GMTSEXIT="1^exiting" S:$D(DTOUT) GMTSEXIT="1^try later"
  1. I +($G(GMTSEXIT))>0 W $S($L($P(GMTSEXIT,"^",2)):"...",1:""),$P(GMTSEXIT,"^",2) Q
  1. I +Y>0,+Y'>GMTSREM D SET
  1. Q
  1. SOL ; List
  1. N GMTSN,GMTSA,GMTST,GMTSC,GMTSI S (GMTSC,GMTSI)=0 F S GMTSI=$O(GMTSOLD(GMTSI)) Q:+GMTSI=0 D
  1. . S GMTSC=GMTSC+1,GMTSA=$P(GMTSOLD(GMTSI),"^",4),GMTSN=$P(GMTSOLD(GMTSI),"^",5)
  1. . S GMTST=GMTSN_$S(GMTSA="DEV"!(GMTSA="DIV")!(GMTSA="SYS")!(GMTSA="PKG")!(GMTSA="LOC")!(GMTSA="BED"):" level ",1:" ")_"defined Health Summary Types"
  1. . W !,?5,$J(GMTSC,4)," ",GMTST
  1. Q
  1. SOH1 ; Help - Single ?
  1. N GMTSC,GMTSI,GMTSN,GMTSCT S (GMTSC,GMTSI)=0,GMTSCT=+($G(GMTSNXT)) F S GMTSI=$O(GMTSOLD(GMTSI)) Q:+GMTSI=0 S GMTSC=GMTSC+1
  1. S GMTSN=$S(GMTSCT=1:"first",GMTSCT=2:"second",GMTSCT=3:"third",GMTSCT=4:"fourth",GMTSCT=5:"fifty",GMTSCT=6:"sixth",GMTSCT=7:"seventh",GMTSCT=8:"eighth",GMTSCT=9:"nineth",GMTSCT=10:"tenth",GMTSCT=11:"eleventh",1:"")
  1. I '$L(GMTSN),+GMTSC>1 W !,?11,"Select a Health Summary Type entity to list" W:$L($G(GMTSNXC)) " ",GMTSNXC W " (1-",GMTSC,")",!
  1. I $L(GMTSN),+GMTSC>1 W !,?11,"Select a Health Summary Type entity to list ",GMTSN," (1-",GMTSC,")",!
  1. D SOL
  1. Q
  1. SOH2 ; Help - Double ??
  1. I '$L($G(GMTSPARM)) D SOH1 Q
  1. W !,?11,"Parameter """,GMTSPARM,""" has multiple "
  1. W !,?11,"allowable entities for which Health Summary Types may"
  1. W !,?11,"be assigned and displayed on the CPRS reports tab. Now"
  1. W !,?11,"you must select the order in which you want these entites"
  1. W !,?11,"to be used by the site.",!
  1. D SOL
  1. Q
  1. ;
  1. ; Arrange
  1. SET ; Set Order
  1. D REO N GMTSO S GMTSO=+($O(GMTSORD(" "),-1))+1
  1. I $L($P($G(GMTSREO(+($G(Y)))),"^",2,299)) D
  1. . S GMTSON=$O(GMTSEQ(GMTSON))
  1. . S GMTSORD(GMTSO)=GMTSON_"^"_$P($G(GMTSREO(+Y)),"^",2,299)
  1. S (GMTSC,GMTSI)=0
  1. F S GMTSI=$O(GMTSOLD(GMTSI)) Q:+GMTSI=0 D
  1. . S GMTSC=GMTSC+1 I GMTSC=+Y K GMTSOLD(GMTSI),GMTSREO(GMTSC)
  1. Q
  1. REO ; Re-order
  1. K GMTSREO N GMTSC,GMTSI S (GMTSC,GMTSI)=0
  1. F S GMTSI=$O(GMTSOLD(GMTSI)) Q:+GMTSI=0 D
  1. . S GMTSC=GMTSC+1 S GMTSREO(GMTSC)=$G(GMTSOLD(GMTSI))
  1. Q
  1. TOT(X) ; Total Allowable Entities
  1. N GMTSI S (X,GMTSI)=0 F S GMTSI=$O(GMTSOLD(GMTSI)) Q:+GMTSI=0 S X=X+1
  1. Q X
  1. CONT(X) ; Ask to Continue
  1. S:$O(GMTSCUR(0))=0!('$L($G(GMTSPARM)))!(+($G(GMTSTOT))'>1) GMTSEXIT=1
  1. Q:$O(GMTSCUR(0))=0!('$L($G(GMTSPARM)))!(+($G(GMTSTOT))'>1) 0
  1. W !!!," Parameter """,GMTSPARM,""" has ",GMTSTOT," allowable entities"
  1. W !," which may have the Health Summary Types on the CPRS reports tab "
  1. W !," and are used in the following order:"
  1. N DIR,DIROUT,DUOUT,DTOUT,GMTSA,GMTSN,GMTST,GMTSC,GMTSI D CONTM
  1. S DIR("A")=" Are these in the correct order for your site? "
  1. S (DIR("?"),DIR("??"))="^D CONTH^GMTSXAR",DIR("B")="Y",DIR(0)="YAO" W ! D ^DIR
  1. S X=+($G(Y)) Q X
  1. Q 1
  1. CONTH ; Continue Help
  1. W !," Enter either 'Y' or 'N'"
  1. D CONTM Q
  1. CONTM ; Continue Menu
  1. S (GMTSC,GMTSI)=0 F S GMTSI=$O(GMTSCUR(GMTSI)) Q:+GMTSI=0 D
  1. . S GMTSA=$P(GMTSCUR(GMTSI),"^",4),GMTSN=$P(GMTSCUR(GMTSI),"^",5)
  1. . S GMTST=GMTSN_$S(GMTSA="DEV"!(GMTSA="DIV")!(GMTSA="SYS")!(GMTSA="PKG")!(GMTSA="LOC")!(GMTSA="BED"):" level ",1:" ")_"defined Health Summary Types"
  1. . S GMTSC=GMTSC+1 W:GMTSC=1 ! W !,$J(GMTSC,6)," ",GMTST
  1. Q
  1. CHK ; Check if OK
  1. N GMTSC,GMTSI,GMTSA S (GMTSC,GMTSI)=0 F S GMTSI=$O(GMTSCUR(GMTSI)) Q:+GMTSI=0 S:GMTSCUR(GMTSI)'[$G(GMTSORD(GMTSI)) GMTSC=1
  1. I 'GMTSC S GMTSCHG=0 Q
  1. W !!,?8,"You have selected to resequenced the Health Summary Type"
  1. W !,?8,"entities in the following order:",!
  1. D CHKM S GMTSA=$$OK D:+($G(GMTSA))>0 ED
  1. Q
  1. CHKM ; Check (Menu)
  1. N GMTSC,GMTSI S (GMTSC,GMTSI)=0 F S GMTSI=$O(GMTSCUR(GMTSI)) Q:+GMTSI=0 S:GMTSCUR(GMTSI)'[$G(GMTSORD(GMTSI)) GMTSC=1
  1. Q:'GMTSC S (GMTSC,GMTSI)=0 F S GMTSI=$O(GMTSCUR(GMTSI)) Q:+GMTSI=0 D
  1. . S GMTSC=GMTSC+1 W:GMTSC=1 !,?13,"FROM (Current)",?33,"TO (Resequenced)",!,?13,"----------------",?33,"----------------"
  1. . W !,?7,$J(GMTSC,4),?13,$P($G(GMTSCUR(GMTSI)),"^",5),?33,$P($G(GMTSORD(GMTSI)),"^",5)
  1. Q
  1. OK(X) ; Ask if OK
  1. W ! N DIR,DIROUT,DUOUT,DTOUT S (DIR("?"),DIR("??"))="^D OKH^GMTSXAR"
  1. S DIR("A")=" Is this OK? ",DIR("B")="Y",DIR(0)="YAO" D ^DIR S X=+($G(Y)) Q X
  1. OKH ; OK Help
  1. W !," Enter either 'Y' or 'N'",!,!," Resequence entities:",! D CHKM Q
  1. ;
  1. ED ; Edit Record
  1. N DIC,DA,DIE,DR,DIDEL,DTOUT,GMTSFI,GMTSI,GMTSEQ,GMTSCNT,GMTST
  1. S GMTSPI=+($G(GMTSPI)),GMTSCNT=0
  1. I GMTSPI'>0!(+($O(GMTSORD(0)))'>0)!('$L($G(GMTSPARM)))!($$PDN^GMTSXAW3(+GMTSPI)'=$G(GMTSPARM)) D Q
  1. . W !,?5," Unable to resequence at this time."
  1. S DA(1)=+($G(GMTSPI)) Q:DA(1)'>0 S (DIC,DIE)="^XTV(8989.51,"_DA(1)_",30,",DR=".02///^S X=$G(GMTSFI)"
  1. L ; Lock Record
  1. L +^XTV(8989.51,+($G(GMTSPI))) S GMTSCNT=GMTSCNT+1,GMTST=$T
  1. I 'GMTST,GMTSCNT'>3 H 2 G L
  1. I 'GMTST,GMTSCNT>3 W !," Another user is editing this entry.",!," Unable to resequence at this time." Q
  1. S GMTSI=0 F S GMTSI=$O(GMTSORD(GMTSI)) Q:+GMTSI=0 D
  1. . S GMTSFI=$P(GMTSORD(GMTSI),"^",2),GMTSEQ=$P(GMTSORD(GMTSI),"^",1)
  1. . S DA=$$DA(DA(1),GMTSEQ),X=GMTSEQ D ^DIE S GMTSCHG=1
  1. L -^XTV(8989.51,+($G(GMTSPI)))
  1. Q
  1. DA(GMTSI,X) ; Get DA
  1. N DA,DIC,DTOUT,DUOUT,Y,GMTSM S DA(1)=+($G(GMTSI)),X=+($G(X))
  1. S DIC="^XTV(8989.51,"_DA(1)_",30,",DIC(0)="M" D ^DIC S X=+($G(Y)) Q X
  1. Q
  1. ;
  1. ADED ; Add/Edit
  1. N X,Y,DA,DIC,DIE,DLAYGO,DR,DTOUT,DUOUT,GMTSCNT,GMTSDEF,GMTSENT
  1. N GMTSM,GMTSMGR,GMTSNEW,GMTSPARM,GMTSPI,GMTST
  1. S GMTSMGR=$$MGR^GMTSXAW3 Q:GMTSMGR'>0
  1. S GMTSPARM="ORWRP HEALTH SUMMARY TYPE LIST"
  1. S GMTSPI=$$PDI^GMTSXAW3(GMTSPARM) Q:+GMTSPI=0
  1. W !! W:$L(GMTSPARM) "'" W GMTSPARM W:$L(GMTSPARM) "' " W "ALLOWABLE ENTITIES",!
  1. S DA(1)=+($G(GMTSPI)),GMTSCNT=0
  1. S (DIC,DIE)="^XTV(8989.51,"_DA(1)_",30,",DIC(0)="AEQMLZ"
  1. S DIC("DR")=".02///^S X=$$AE^GMTSXAR(+($G(Y)))"
  1. S DLAYGO="" D FIELD^DID(8989.51,30,"","SPECIFIER","GMTST(""DID"")","GMTSM(""ERR"")")
  1. S:$L($G(GMTST("DID","SPECIFIER"))) DIC("P")=$G(GMTST("DID","SPECIFIER"))
  1. L2 ; Lock Record
  1. L +^XTV(8989.51,+($G(GMTSPI))) S GMTSCNT=GMTSCNT+1,GMTST=$T
  1. I 'GMTST,GMTSCNT'>3 H 2 G L2
  1. I 'GMTST,GMTSCNT>3 W !," Another user is editing this entry.",!," Unable to resequence at this time." Q
  1. D ^DIC S GMTSNEW=+($P($G(Y),"^",3)) Q:GMTSNEW>0 Q:+Y'>0
  1. N DIC,DIE S DA(1)=GMTSPI,DA=+($G(Y)),(DIC,DIE)="^XTV(8989.51,"_DA(1)_",30,"
  1. S DA=+($G(Y)),DR=".01;.02///^S X=$$AE^GMTSXAR("_DA_")"
  1. D ^DIE L -^XTV(8989.51,+($G(GMTSPI)))
  1. Q
  1. AE(X) ; Allowable Entity
  1. N DA,DIC,DTOUT,DUOUT,Y,GMTSPARM,GMTSPI,GMTSENT,GMTSDEF
  1. S GMTSDEF="",GMTSENT=+($G(X)),GMTSPARM="ORWRP HEALTH SUMMARY TYPE LIST"
  1. S GMTSPI=$$PDI^GMTSXAW3(GMTSPARM) Q:+GMTSPI=0 ""
  1. S:+GMTSENT>0 GMTSDEF=$$GET1^DIQ(8989.513,(GMTSENT_","_GMTSPI_","),.02)
  1. N DA,DIC,DTOUT,DUOUT,Y S DIC="^XTV(8989.518,",DIC(0)="AEMQ"
  1. S DIC("S")="I Y'=3.5&(Y'=9.4)&(Y'=44)&(Y'=404.51)&(Y'=405.4)"
  1. S:$L($G(GMTSDEF)) DIC("B")=GMTSDEF D ^DIC S X=+($G(Y))
  1. Q X