1 | GMTSXAP ; SLC/KER - List Parameters/Precedence ; 02/27/2002
|
---|
2 | ;;2.7;Health Summary;**47,49**;Oct 20, 1995
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ; External References in GMTSXAP
|
---|
6 | ; DBIA 2343 $$ACTIVE^XUSER
|
---|
7 | ; DBIA 10026 ^DIR
|
---|
8 | ;
|
---|
9 | EN ; Main Entry Point for Health Summary
|
---|
10 | N GMTSUSR S GMTSUSR=+($G(DUZ)) D PREF Q
|
---|
11 | EN2(X) ; Entry Point for User
|
---|
12 | N GMTSUSR S GMTSUSR=+($G(X)) D PREF Q
|
---|
13 | ;
|
---|
14 | PREF ; Get Preference - Precedence
|
---|
15 | N GMTSACT Q:'$L($$UNM^GMTSXAW3(+($G(GMTSUSR))))
|
---|
16 | S GMTSACT=$$ACTIVE^XUSER(+GMTSUSR) D:+GMTSACT'>0 DP^GMTSXAP2(GMTSUSR)
|
---|
17 | Q:+GMTSACT'>0 S X=$$PRE(GMTSUSR) D:$L(X) EDIT^GMTSXAP2(GMTSUSR,X) Q
|
---|
18 | ;
|
---|
19 | PRE(GMTSUSR) ; Precedence of Parameter Entities
|
---|
20 | ;
|
---|
21 | ; Input User, pointer to NEW PERSON file
|
---|
22 | ;
|
---|
23 | ; Output String of Selected Entity Abbreviations,
|
---|
24 | ; delimited by a semi-colon, and arranged in
|
---|
25 | ; the order they should be used.
|
---|
26 | ;
|
---|
27 | ; Example: USR;SYS;NAT
|
---|
28 | ;
|
---|
29 | ; Use "User" defined Health Summary Types,
|
---|
30 | ; "System" defined Health Summary Types and
|
---|
31 | ; "National" Health Summary Types in that order.
|
---|
32 | ;
|
---|
33 | N GMTSEL,GMTSORD,GMTS,GMTSDEF,GMTSEXIT,GMTSINC,GMTSIN,GMTSCPL,GMTSPRE
|
---|
34 | S GMTSUSR=+($G(GMTSUSR)),GMTSEXIT=0 Q:'$L($$UNM^GMTSXAW3(+($G(GMTSUSR)))) ""
|
---|
35 | W:+($G(GMTSUSR))'=.5 !,"CPRS Reports Tab, Health Summary Type List (Contents)",!
|
---|
36 | W:+($G(GMTSUSR))=.5 !,"Site Default CPRS Reports Tab, Health Summary Type List (Contents)",!
|
---|
37 | D INA S GMTSIN=0 F S GMTSIN=$O(GMTSINC(GMTSIN)) Q:+GMTSIN=0 Q:+($G(GMTSEXIT))>0 D INC(GMTSINC(GMTSIN)) Q:+($G(GMTSEXIT))>0
|
---|
38 | I +GMTSEXIT>0,$D(GMTSEL("@")) D ADEL^GMTSXAP2
|
---|
39 | Q:+($G(GMTSEXIT))>0 "" S X="" I '$D(GMTSEL)!($O(GMTSEL(0))'>0) Q X
|
---|
40 | I $D(GMTSEL),$O(GMTSEL(0))>0 D ORD
|
---|
41 | I +GMTSEXIT>0,$D(GMTSORD("@")) D ADEL^GMTSXAP2
|
---|
42 | S:+($G(GMTSEXIT))=0 X=$$CPL
|
---|
43 | I +GMTSEXIT>0,$D(GMTSCPL("@")) D ADEL^GMTSXAP2
|
---|
44 | Q X
|
---|
45 | ; Include Health Summary Types
|
---|
46 | INA ; Input Array (from Parameter File)
|
---|
47 | N GMTSI,GMTST,GMTSA,GMTSN,GMTSP,GMTSH,GMTSC,GMTSALW D EN^GMTSXAW
|
---|
48 | S (GMTSC,GMTSI)=0 F S GMTSI=$O(GMTSALW(GMTSI)) Q:+GMTSI=0 D
|
---|
49 | . S GMTST=$G(GMTSALW(GMTSI)) Q:'$L(GMTST) S GMTSA=$P(GMTST,"^",1) Q:$L(GMTSA)'=3 S GMTSN=$P(GMTST,"^",4) Q:'$L(GMTSN)
|
---|
50 | . ; Include User Preferred Health Summary Types: (Y/N)
|
---|
51 | . ; Include System Defined Health Summary Types: (Y/N)
|
---|
52 | . ; Group National Types together (Remote Data Views): (Y/N)
|
---|
53 | . S GMTSP="Include "_GMTSN_" Defined Health Summary Types"
|
---|
54 | . S GMTSH=GMTSN_" Level Health Summary Types"
|
---|
55 | . S:GMTSA="USR" GMTSP="Include "_GMTSN_" Preferred Health Summary Types",GMTSH=GMTSN_" Preferred Health Summary Types"
|
---|
56 | . S GMTSC=GMTSC+1,GMTSINC(GMTSC)=GMTSA_"^"_GMTSP_"^"_GMTSH
|
---|
57 | S GMTSC=GMTSC+1,GMTSA="NAT",GMTSN="National"
|
---|
58 | S GMTSP="Group "_GMTSN_" Types together (Remote Data View)"
|
---|
59 | S GMTSH="Nationally Exported Health Summary Types"
|
---|
60 | S GMTSINC(GMTSC)=GMTSA_"^"_GMTSP_"^"_GMTSH
|
---|
61 | Q
|
---|
62 | INC(X) ; Select Health Summary Types to Include
|
---|
63 | Q:+($G(GMTSEXIT))>0 N Y,DIR,%,%P,DTOUT,DUOUT,DIRUT,DIROUT,GMTSI,GMTST,GMTSA,GMTSO S GMTST=$G(X)
|
---|
64 | S GMTSA=$P(GMTST,"^",1),GMTSO=$P(GMTST,"^",3),GMTST=$P(GMTST,"^",2) Q:'$L(GMTST) Q:GMTSA'?3U
|
---|
65 | S GMTSI=+($O(GMTSDEF(" "),-1))+1,GMTSDEF(GMTSI)=GMTSA_"^"_GMTST_"^"_GMTSO
|
---|
66 | S DIR(0)="YAO",DIR("A")=" "_GMTST_":" F Q:$L(DIR("A"))>51 S DIR("A")=DIR("A")_" "
|
---|
67 | S DIR("A")=DIR("A")_" (Y/N) " S:$L(GMTSO) DIR("A")=" "_DIR("A")
|
---|
68 | S DIR("B")="Y",DIR("?")="^D INH1^GMTSXAP",DIR("??")="^D INH2^GMTSXAP"
|
---|
69 | S:DIR("A")["Group Nat" DIR("B")="N"
|
---|
70 | D ^DIR I Y="",X="@" D
|
---|
71 | . N GMTSD S GMTSD=$P($G(^GMT(142.98,+($G(GMTSUSR)),1)),"^",2)
|
---|
72 | . S GMTSEXIT="1^"_$S($L(GMTSD):"",1:"exiting")
|
---|
73 | . S Y="@" K GMTSEL S GMTSEL("@")=""
|
---|
74 | S:Y["^"!($D(DUOUT))!($D(DIROUT)) GMTSEXIT="1^exiting"
|
---|
75 | S:$D(DTOUT) GMTSEXIT="1^try later"
|
---|
76 | I +($G(GMTSEXIT))>0 W $S($L($P(GMTSEXIT,"^",2)):"...",1:""),$P(GMTSEXIT,"^",2) Q
|
---|
77 | I +Y>0 S GMTSI=+($O(GMTSEL(" "),-1))+1,GMTSEL(GMTSI)=GMTSA_"^"_GMTST_"^"_GMTSO
|
---|
78 | Q
|
---|
79 | INH1 ; Include Help - Single ?
|
---|
80 | W !," Enter either 'Y' or 'N'" D INH3 Q
|
---|
81 | INH2 ; Include Help - Double ??
|
---|
82 | W !," Select specified groups of Health Summary Types to include in the"
|
---|
83 | W !," Health Summary Types list on the CPRS Reports Tab. Groups include:",!
|
---|
84 | W !," USR User Preferred Health Summary Types in the Parameters file"
|
---|
85 | W !," SYS System Defined Summary Types in the parameters file"
|
---|
86 | W !," NAT National Health Summary Types (Remote Data Views)" D INH3 Q
|
---|
87 | INH3 ; Include Help - Prompt
|
---|
88 | I $L($G(DIR("A"))),$G(DIR("A"))'["Include",$G(DIR("A"))=$G(%P) D
|
---|
89 | . N GMTSL S GMTSL=" ",GMTSL=$S($G(DIR("A"))[GMTSL:" ",1:"")
|
---|
90 | . S (%P,DIR("A"))=GMTSL_" Include "_$$TRIM^GMTSXA(DIR("A")," ",1)
|
---|
91 | Q
|
---|
92 | ;
|
---|
93 | ORD ; Order of Health Summaries in List
|
---|
94 | N GMTSI,GMTST,GMTSC,GMTSCNT,GMTSTOT,GMTSREM,GMTSSO,GMTSNXT,GMTSNXC
|
---|
95 | S (GMTSSO,GMTSCNT,GMTSI)=0,(GMTSTOT,GMTST)=$$SLT^GMTSXAP2
|
---|
96 | ; One Selected
|
---|
97 | I GMTST=1 D Q
|
---|
98 | . S (GMTSI,GMTSC)=0 F S GMTSI=$O(GMTSEL(GMTSI)) Q:+GMTSI=0 D
|
---|
99 | . . S GMTST=$P($G(GMTSEL(GMTSI)),"^",1)
|
---|
100 | . . S:GMTST?3U GMTSC=GMTSC+1,GMTSORD(GMTSC)=GMTSEL(GMTSI)
|
---|
101 | ; Multiple Selected
|
---|
102 | W !!!," You have selected multiple Health Summary types to be listed on the CPRS",!," reports tab. Now you must select the order in which you want these to",!," be displayed."
|
---|
103 | F Q:+($G(GMTSEXIT))>0 D SO Q:+($G(GMTSEXIT))>0 Q:'$D(GMTSEL)
|
---|
104 | Q
|
---|
105 | SO ; Select Order
|
---|
106 | N GMTSI,GMTSC,GMTSMAX,GMTSREO S GMTSI=0,GMTSREM=$$SLT^GMTSXAP2
|
---|
107 | S GMTSCNT=GMTSTOT-GMTSREM,GMTSNXT=GMTSCNT+1,GMTSSO=+($G(GMTSSO))+1
|
---|
108 | S GMTSNXC=$S(GMTSNXT=1:(GMTSNXT_"st"),GMTSNXT=2:(GMTSNXT_"nd"),GMTSNXT=3:(GMTSNXT_"rd"),1:(GMTSNXT_"th"))
|
---|
109 | I +GMTSREM=1 D Q
|
---|
110 | . S Y=+GMTSREM D SET
|
---|
111 | W ! D:+($G(GMTSSO))=1 SOHD D SOL,REO S (GMTSC,GMTSI)=0
|
---|
112 | S GMTSMAX=GMTSREM
|
---|
113 | W ! N DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
|
---|
114 | S DIR(0)="NAO^1:"_GMTSMAX_":0"
|
---|
115 | S DIR("?")="^D SOH1^GMTSXAP"
|
---|
116 | S DIR("??")="^D SOH2^GMTSXAP"
|
---|
117 | S DIR("A")=" Select the "_GMTSNXC_" to be listed: "
|
---|
118 | K DIR("B") S:+($O(GMTSREO(0)))>0 DIR("B")=+($O(GMTSREO(0)))
|
---|
119 | D ^DIR I Y="",X="@" D
|
---|
120 | . N GMTSD S GMTSD=$P($G(^GMT(142.98,+($G(GMTSUSR)),1)),"^",2)
|
---|
121 | . S GMTSEXIT="1^"_$S($L(GMTSD):"",1:"exiting")
|
---|
122 | . S Y="@" K GMTSORD S GMTSORD("@")=""
|
---|
123 | S:Y["^"!($D(DUOUT))!($D(DIROUT)) GMTSEXIT="1^exiting" S:$D(DTOUT) GMTSEXIT="1^try later"
|
---|
124 | I +($G(GMTSEXIT))>0 W $S($L($P(GMTSEXIT,"^",2)):"...",1:""),$P(GMTSEXIT,"^",2) Q
|
---|
125 | I +Y>0,+Y'>GMTSREM D SET
|
---|
126 | Q
|
---|
127 | SOL ; List - Included Health Summaries
|
---|
128 | N GMTSC,GMTSI S (GMTSC,GMTSI)=0 F S GMTSI=$O(GMTSEL(GMTSI)) Q:+GMTSI=0 D
|
---|
129 | . S GMTSC=GMTSC+1 W !,?9,$J(GMTSC,4)," ",$P(GMTSEL(GMTSI),"^",3)
|
---|
130 | Q
|
---|
131 | SOHD ; Help Text
|
---|
132 | W !," Order to Display Included Health Summary Types",! Q
|
---|
133 | SOH1 ; Help - Single ?
|
---|
134 | N GMTSC,GMTSI,GMTSN,GMTSCT S (GMTSC,GMTSI)=0,GMTSCT=+($G(GMTSNXT)) F S GMTSI=$O(GMTSEL(GMTSI)) Q:+GMTSI=0 S GMTSC=GMTSC+1
|
---|
135 | 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",1:"")
|
---|
136 | I '$L(GMTSN),+GMTSC>1 W !,?9,"Select a group of Health Summary Types to list (1-",GMTSC,")",!
|
---|
137 | I $L(GMTSN),+GMTSC>1 W !,?9,"Select a group of Health Summary Types to list ",GMTSN," (1-",GMTSC,")",!
|
---|
138 | D SOL
|
---|
139 | Q
|
---|
140 | SOH2 ; Help - Double ??
|
---|
141 | W !," You have included multiple Health Summary types to be"
|
---|
142 | W !," listed on the CPRS reports tab, Health Summary Types box."
|
---|
143 | W !," Now you must select the order in which you want these"
|
---|
144 | W !," to be listed.",!
|
---|
145 | D SOL
|
---|
146 | Q
|
---|
147 | ;
|
---|
148 | ; Arrange
|
---|
149 | SET ; Set Order
|
---|
150 | D REO N GMTSO S GMTSO=+($O(GMTSORD(" "),-1))+1
|
---|
151 | S:$L($G(GMTSREO(+$G(Y)))) GMTSORD(GMTSO)=$G(GMTSREO(+Y))
|
---|
152 | S (GMTSC,GMTSI)=0
|
---|
153 | F S GMTSI=$O(GMTSEL(GMTSI)) Q:+GMTSI=0 D
|
---|
154 | . S GMTSC=GMTSC+1 I GMTSC=+Y K GMTSEL(GMTSI),GMTSREO(GMTSC)
|
---|
155 | Q
|
---|
156 | REO ; Re-order
|
---|
157 | K GMTSREO N GMTSC,GMTSI S (GMTSC,GMTSI)=0
|
---|
158 | F S GMTSI=$O(GMTSEL(GMTSI)) Q:+GMTSI=0 D
|
---|
159 | . S GMTSC=GMTSC+1 S GMTSREO(GMTSC)=$G(GMTSEL(GMTSI))
|
---|
160 | Q
|
---|
161 | CPL(X) ; Compile Order
|
---|
162 | Q:+($G(GMTSEXIT))>0 ""
|
---|
163 | N GMTSI,GMTSA,GMTSOK,GMTSNEW S X="",GMTSI=0
|
---|
164 | F S GMTSI=$O(GMTSORD(GMTSI)) Q:+GMTSI=0 D
|
---|
165 | . S GMTSA=$$UP^GMTSXA($P($G(GMTSORD(GMTSI)),"^",1))
|
---|
166 | . S:GMTSA?3U X=$G(X)_";"_GMTSA
|
---|
167 | S (GMTSNEW,X)=$$TRIM^GMTSXA(X,";",3)
|
---|
168 | S GMTSOK=$$OK^GMTSXAP2 Q:GMTSOK'>0 ""
|
---|
169 | Q X
|
---|