| 1 | GMTSXAP2 ; SLC/KER - List Parameters/Precedence 2         ; 02/27/2002
 | 
|---|
| 2 |  ;;2.7;Health Summary;**47,49**;Oct 20, 1995
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;                          
 | 
|---|
| 5 |  ; External References in GMTSXAP2
 | 
|---|
| 6 |  ;    DBIA  2056  $$GET1^DIQ
 | 
|---|
| 7 |  ;    DBIA  2343  $$ACTIVE^XUSER
 | 
|---|
| 8 |  ;    DBIA 10006  ^DIC
 | 
|---|
| 9 |  ;    DBIA 10026  ^DIR
 | 
|---|
| 10 |  ;    DBIA 10018  ^DIE
 | 
|---|
| 11 |  ;    DBIA 10013  ^DIK
 | 
|---|
| 12 |  ;                        
 | 
|---|
| 13 |  ; Check to see if Compiled Order is correct
 | 
|---|
| 14 | OK(X) ;   Ask if Ok
 | 
|---|
| 15 |  N Y,DIR,GMTSTOT,GMTSOLD S GMTSNEW=$G(GMTSNEW),GMTSOLD=$$OLD
 | 
|---|
| 16 |  S GMTSTOT=$$ORT S:GMTSTOT=1 X=$$OKO S:GMTSTOT>1 X=$$OKM S:GMTSTOT'>0 X=0
 | 
|---|
| 17 |  Q X
 | 
|---|
| 18 | OKM(X) ;     Multiple entities selected     i.e. USR;SYS
 | 
|---|
| 19 |  N DIR,Y,DIROUT,DUOUT,DTOUT S X=1 D OKA Q:'$D(DIR) 0
 | 
|---|
| 20 |  D YND
 | 
|---|
| 21 |  Q X
 | 
|---|
| 22 | OKO(X) ;     Only one entity selected       i.e. USR
 | 
|---|
| 23 |  I '$L($G(GMTSORD(1)))!($L($P(GMTSORD(1),"^",1))'=3)!($L($P(GMTSORD(1),"^",3))'>0) Q 0
 | 
|---|
| 24 |  N DIR,Y,DIROUT,DUOUT,DTOUT D OKA Q:'$D(DIR) 0
 | 
|---|
| 25 |  D YND
 | 
|---|
| 26 |  Q X
 | 
|---|
| 27 | OKA ;   Set up Prompts - DIR("A")
 | 
|---|
| 28 |  N GMTSC,GMTSI,GMTST S (GMTSC,GMTSI)=0 S GMTST=$$ORT
 | 
|---|
| 29 | MUL ;     Multiple Entities
 | 
|---|
| 30 |  I GMTST>1 D  Q
 | 
|---|
| 31 |  . K DIR N GMTSTC,GMTSA,GMTSC S GMTSC=0,GMTSA=GMTST+4 S GMTSTC=$S(GMTST=2:"two",GMTST=3:"three",1:"several")
 | 
|---|
| 32 |  . S DIR("A",1)="",DIR("A",2)=" You have selected "_GMTSTC_" Health Summary Types, arranged "
 | 
|---|
| 33 |  . S DIR("A",3)=" in the following order:",DIR("A",4)=""
 | 
|---|
| 34 |  . F GMTSA=1:1:GMTST S DIR("A",(4+GMTSA))="  "_$J(GMTSA,2)_"    "_$P($G(GMTSORD(+GMTSA)),"^",3)
 | 
|---|
| 35 |  . S GMTSA=+($O(DIR("A"," "),-1))+1,DIR("A",GMTSA)="",DIR("A")=" Is this precedence correct?  (Y/N)  ",DIR(0)="YAO",DIR("B")="Y"
 | 
|---|
| 36 | ONE ;     One Entity
 | 
|---|
| 37 |  I GMTST=1 D  Q
 | 
|---|
| 38 |  . I $L($G(GMTSORD(1))),$L($P(GMTSORD(1),"^",1))=3,$L($P(GMTSORD(1),"^",3))>0 D  Q
 | 
|---|
| 39 |  . . K DIR S DIR("A",1)=""
 | 
|---|
| 40 |  . . S DIR("A",2)=" You have selected one Health Summary Type"
 | 
|---|
| 41 |  . . S DIR("A",3)=""
 | 
|---|
| 42 |  . . S DIR("A",4)="    "_$P($G(GMTSORD(1)),"^",3)
 | 
|---|
| 43 |  . . S DIR("A",5)=""
 | 
|---|
| 44 |  . . S DIR("A")=" Is this correct?  (Y/N)  "
 | 
|---|
| 45 |  . . S DIR(0)="YAO",DIR("B")="Y"
 | 
|---|
| 46 |  . K DIR
 | 
|---|
| 47 |  K DIR
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;            
 | 
|---|
| 50 | YND ; Yes/No/Delete
 | 
|---|
| 51 |  W ! S X=$G(X) S:$L($G(DIR("A"))) DIR("A")=" Is this correct?  (Y/N)  "
 | 
|---|
| 52 |  S (DIR("?"),DIR("??"))="^D YNDH^GMTSXAP2"
 | 
|---|
| 53 |  S DIR(0)="FAO^1;3^K:$$YNDI^GMTSXAP2(X)'>0 X",DIR("B")="Y"
 | 
|---|
| 54 |  D ^DIR S X=$$YNDO(X) S:X["^" GMTSEXIT=1 S:X="@" GMTSEXIT=1,GMTSCPL("@")=""
 | 
|---|
| 55 |  S:X="N"&($L(GMTSNEW))&(GMTSNEW=GMTSOLD) GMTSEXIT=1,GMTSCPL("@")=""
 | 
|---|
| 56 |  S X=$S(X="Y":1,X="N":0,1:-1)
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | YNDI(X) ;   Input Transform
 | 
|---|
| 59 |  N GMTS S GMTS=$$UP^GMTSXA($G(X)) Q:$L(GMTS)&("^Y^YE^YES^N^NO^@^^^^^"'[("^"_GMTS_"^")) 0 Q 1
 | 
|---|
| 60 | YNDO(X) ;   Output Transform
 | 
|---|
| 61 |  N GMTS S GMTS=$$UP^GMTSXA($G(X)) S X=$S($E(GMTS,1)="Y":"Y",$E(GMTS,1)="N":"N",$E(GMTS,1)="@":"@",GMTS["^^":"^^",1:"^")
 | 
|---|
| 62 |  S X=$S($D(DUOUT):"^",1:X),X=$S($D(DTOUT):"^^",$D(DIROUT):"^^",1:X) Q X
 | 
|---|
| 63 | YNDH ;   Help
 | 
|---|
| 64 |  W !,"    Enter either 'Y'es, 'N'o, or '^' to exit" Q
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 |  ;            
 | 
|---|
| 67 | EDIT(GMTSUXR,X) ; Edit "Append/Overwrite"
 | 
|---|
| 68 |  N DIC,DIE,DTOUT,DUOUT,Y,DR,DA,GMTSACT,GMTSDAT,GMTSPREF,GMTSA
 | 
|---|
| 69 |  S GMTSDAT=$G(X),GMTSUSR=+($G(GMTSUSR)) Q:GMTSUSR=0  S GMTSACT=$$ACTIVE^XUSER(+GMTSUSR) D:+GMTSACT'>0 DP(GMTSUSR) Q:+GMTSACT'>0
 | 
|---|
| 70 |  S GMTSPREF=$$PENT(GMTSUSR) Q:+GMTSPREF'>0
 | 
|---|
| 71 |  S DIE="^GMT(142.98,",DA=+($G(GMTSUSR)),DR="11///^S X=GMTSDAT"
 | 
|---|
| 72 | ED ;   Lock Record, Edit Entry
 | 
|---|
| 73 |  L +^GMT(142.98,+GMTSPREF):0 I $T D ^DIE L -^GMT(142.98,+GMTSPREF) Q
 | 
|---|
| 74 |  S GMTSA=+($G(GMTSA))+1 Q:GMTSA>3  H 1 G ED
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;            
 | 
|---|
| 77 |  ; Deletions
 | 
|---|
| 78 | ADEL ;   Ask for Deletion of Precedence
 | 
|---|
| 79 |  N X,Y,GMTSU,GMTSACT,GMTSDEF S GMTSU=$G(GMTSUSR),GMTSACT=$$ACTIVE^XUSER(+GMTSU) D:+GMTSACT'>0 DP(GMTSUSR) Q:+GMTSACT'>0  S X=$$UNM^GMTSXAW3(+($G(GMTSUSR))) Q:'$L(X)
 | 
|---|
| 80 |  Q:'$D(^GMT(142.98,+GMTSUSR,1))  S GMTSDEF=$P($G(^GMT(142.98,+GMTSUSR,1)),"^",2) Q:'$L(GMTSDEF)
 | 
|---|
| 81 |  N DIR,DIROUT,DIRUT,DTOUT,DUOUT,GMTSA S DIR("B")="N",(GMTSA,DIR("A"))="Delete '"_GMTSDEF_"'?  (Y/N)  " S:$D(GMTSEL("@")) DIR("A")="    "_GMTSA S:$D(GMTSORD("@")) DIR("A")="         "_GMTSA
 | 
|---|
| 82 |  S:$D(GMTSCPL("@")) DIR("A")=" "_GMTSA K GMTSEL("@"),GMTSORD("@"),GMTSCPL("@")
 | 
|---|
| 83 |  S DIR(0)="YAO" W ! D ^DIR S:+Y>0 $P(^GMT(142.98,+GMTSUSR,1),"^",2)=""
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 | DP(X) ;   Delete Record of Inactive User
 | 
|---|
| 86 |  N DA,DIK,DIC,DTOUT,DUOUT,GMTSUSR S GMTSUSR=+($G(X))
 | 
|---|
| 87 |  S X=$$UNM^GMTSXAW3(+($G(GMTSUSR))) Q:'$L(X)
 | 
|---|
| 88 |  S DIC="^GMT(142.98,",DIC(0)="M" D ^DIC I +Y>0 S DIK=DIC,DA=+Y D ^DIK
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 |  ;            
 | 
|---|
| 91 |  ; Miscellaneous
 | 
|---|
| 92 | OLD(X) ;   Old Entry
 | 
|---|
| 93 |  Q $$GET1^DIQ(142.98,+($G(GMTSUSR)),11)
 | 
|---|
| 94 | ORT(X) ;   Total Entities Ordered
 | 
|---|
| 95 |  N GMTSI S (X,GMTSI)=0 F  S GMTSI=$O(GMTSORD(GMTSI)) Q:+GMTSI=0  S X=X+1
 | 
|---|
| 96 |  Q X
 | 
|---|
| 97 | SLT(X) ;   Total Selected
 | 
|---|
| 98 |  N GMTSI S (X,GMTSI)=0 F  S GMTSI=$O(GMTSEL(GMTSI)) Q:+GMTSI=0  S X=X+1
 | 
|---|
| 99 |  Q X
 | 
|---|
| 100 | PENT(GMTSUSR) ;   Get User Preference Entry
 | 
|---|
| 101 |  N DIC,DTOUT,DUOUT,GMTSACT,DLAYGO S GMTSUSR=+($G(GMTSUSR)) Q:GMTSUSR=0 -1
 | 
|---|
| 102 |  S GMTSACT=$$ACTIVE^XUSER(+GMTSUSR) D:+GMTSACT'>0 DP(GMTSUSR) Q:+GMTSACT'>0 -1
 | 
|---|
| 103 |  S X=$$UNM^GMTSXAW3(+($G(GMTSUSR))) Q:'$L(X) -1
 | 
|---|
| 104 |  S DIC="^GMT(142.98,",DIC(0)="LM",DLAYGO=142.98 D ^DIC
 | 
|---|
| 105 |  S X=+($G(Y)) Q X
 | 
|---|
| 106 | PIT(X) ;   Precedence Input Transform
 | 
|---|
| 107 |  N GMTSIN S GMTSIN=$$UP^GMTSXA($G(X)) Q:GMTSIN="" 1 N GMTSC,GMTSI,GMTSA,GMTS S GMTSC="^NAT^SYS^USR^",GMTS="" F GMTSI=1:1 Q:GMTSI>$L(GMTSIN,";")  D
 | 
|---|
| 108 |  . S GMTSA=$P($G(GMTSIN),";",GMTSI) Q:$L(GMTSA)'=3  Q:GMTSC'[("^"_GMTSA_"^")  Q:GMTS[(";"_GMTSA)  S GMTS=GMTS_";"_GMTSA
 | 
|---|
| 109 |  S GMTS=$$TRIM^GMTSXA(GMTS,";",3),X=$S(GMTS=GMTSIN:1,1:0) Q X
 | 
|---|
| 110 | USRD(X) ;   User Precedence/Default
 | 
|---|
| 111 |  N GMTSUSR S GMTSUSR=$G(X),X=$P($G(^GMT(142.98,+($G(GMTSUSR)),1)),"^",2)
 | 
|---|
| 112 |  S:X="" X=$$DEF^GMTSXAW(GMTSUSR) Q X
 | 
|---|