1 | GMTSOBV ; SLC/KER - HS Object - Verify ; 01/06/2003
|
---|
2 | ;;2.7;Health Summary;**58**;Oct 20, 1995
|
---|
3 | ;
|
---|
4 | ; External References
|
---|
5 | ; DBIA 10006 ^DIC (file #2 and 142.5)
|
---|
6 | ; DBIA 10013 ^DIK (file #142.5)
|
---|
7 | ; DBIA 10026 ^DIR
|
---|
8 | ; DBIA 10104 $$UP^XLFSTR
|
---|
9 | ; DBIA 10076 ^XUSEC(
|
---|
10 | ; DBIA 10076 ^XUSEC("GMTSMGR"
|
---|
11 | ; DBIA 3798 $$EXIST^TIUHSOBJ
|
---|
12 | ; DBIA 10005 DT^DICRW
|
---|
13 | ; DBIA 10103 $$DT^XLFDT
|
---|
14 | ; DBIA 10061 DEM^VADPT
|
---|
15 | ;
|
---|
16 | Q
|
---|
17 | VT(X) ; Verify Type Selection
|
---|
18 | N GMTSHDR,GMTSNOQ,GMTSNOI,GMTSX,GMTSREDO S GMTSX=+($G(X)) Q:+GMTSX'>0 -1
|
---|
19 | S GMTSHDR(1)="You have selected the following Health Summary Type to use as an Object:"
|
---|
20 | S GMTSHDR(2)=" ",GMTSNOQ="",GMTSNOI="",GMTSREDO=0
|
---|
21 | D DT^GMTSOBD(+GMTSX) I $D(^TMP("GMTSOBT",$J)) D
|
---|
22 | . D NOQUE^GMTSOBD W ! N DIR,DTOUT,DUOUT S DIR(0)="YAO",DIR("A")="Is this correct? ",DIR("B")="Y"
|
---|
23 | . D ^DIR S:$$UP^XLFSTR($E(X,1))="N" GMTSREDO=1 I +Y'>0 S GMTSX=-1
|
---|
24 | I GMTSREDO>0!(GMTSX'>0) S X=-1
|
---|
25 | Q X
|
---|
26 | VTE(X) ; Verify Type Edit
|
---|
27 | N GMTSX,GMTSOWN,GMTSNAT,GMTSLOCK,GMTSKEY,GMTSMGR S GMTSX=+($G(X)) Q:$D(GMTSDEV) X
|
---|
28 | I +GMTSX'>0 W:'$D(GMTSQT) !!," Health Summary Type not found.",! Q -1
|
---|
29 | I +($G(DUZ))'>0 W:'$D(GMTSQT) !!," User not defined.",! Q -1
|
---|
30 | I +($$UACT^GMTSU2(+($G(DUZ))))'>0 W:'$D(GMTSQT) !!," User is not an active user.",! Q -1
|
---|
31 | I '$D(^GMT(142,+GMTSX,0)) W:'$D(GMTSQT) !!," Health Summary Type not found.",! Q -1
|
---|
32 | I '$L($P($G(^GMT(142,+GMTSX,0)),"^",1)) W:'$D(GMTSQT) !!," Invalid Health Summary Type.",! Q -1
|
---|
33 | S GMTSMGR=$S($D(^XUSEC("GMTSMGR",+($G(DUZ)))):1,1:0),GMTSLOCK=$P($G(^GMT(142,+GMTSX,0)),"^",2)
|
---|
34 | S GMTSKEY=1 S:$L(GMTSLOCK) GMTSKEY=$D(^XUSEC(GMTSLOCK,+($G(DUZ))))
|
---|
35 | S GMTSOWN=$P($G(^GMT(142,+GMTSX,0)),"^",3),GMTSNAT=+($P($G(^GMT(142,+GMTSX,"VA")),"^",1))
|
---|
36 | I GMTSNAT>0 W:'$D(GMTSQT) !!," You can not edit a Nationally exported Health Summary Type.",! Q -1
|
---|
37 | I 'GMTSMGR,'GMTSKEY W:'$D(GMTSQT) !!," This Health Summary Type is currently locked to prevent alteration.",! Q -1
|
---|
38 | I GMTSOWN>0,GMTSOWN'=+($G(DUZ)) W:'$D(GMTSQT) !!," You can not edit a Health Summary Type you don't own.",! Q -1
|
---|
39 | S X=GMTSX Q X
|
---|
40 | VOE(X) ; Verify Object Edit
|
---|
41 | N GMTSX,GMTSOWN,GMTSNAT,GMTSMGR S GMTSX=+($G(X)) Q:$D(GMTSDEV) X
|
---|
42 | I +GMTSX'>0 W:'$D(GMTSQT) !!," Health Summary Object not found.",! Q -1
|
---|
43 | I +($G(DUZ))'>0 W:'$D(GMTSQT) !!," User not defined.",! Q -1
|
---|
44 | I +($$UACT^GMTSU2(+($G(DUZ))))'>0 W:'$D(GMTSQT) !!," User is not an active user.",! Q -1
|
---|
45 | I '$D(^GMT(142.5,+GMTSX,0)) W:'$D(GMTSQT) !!," Health Summary Object not found.",! Q -1
|
---|
46 | I '$L($P($G(^GMT(142.5,+GMTSX,0)),"^",1)) W:'$D(GMTSQT) !!," Invalid Health Summary Object.",! Q -1
|
---|
47 | S GMTSMGR=$S($D(^XUSEC("GMTSMGR",+($G(DUZ)))):1,1:0)
|
---|
48 | S GMTSOWN=$P($G(^GMT(142.5,+GMTSX,0)),"^",17),GMTSNAT=+($P($G(^GMT(142,+GMTSX,"VA")),"^",1))
|
---|
49 | I GMTSNAT>0 W:'$D(GMTSQT) !!," You can not edit a Nationally exported Health Summary Object.",! Q -1
|
---|
50 | I GMTSOWN>0,GMTSOWN'=+($G(DUZ)) W:'$D(GMTSQT) !!," You can not edit a Health Summary Object you don't own.",! Q -1
|
---|
51 | S X=GMTSX Q X
|
---|
52 | VO(X) ; Verify Object
|
---|
53 | N GMTSHDR,GMTSNOQ,GMTSNOI,GMTSX,GMTSREDO S GMTSREDO=0,GMTSX=+($G(X)) Q:+GMTSX'>0 -1
|
---|
54 | S GMTSHDR(1)="You have selected the following Health Summary Object:"
|
---|
55 | S GMTSHDR(2)=" " D SO^GMTSOBS(+GMTSX) W ! N DIR,DTOUT,DUOUT S DIR(0)="YAO",DIR("A")="Is this correct? ",DIR("B")="Y"
|
---|
56 | D ^DIR S:$$UP^XLFSTR($E(X,1))="N" GMTSREDO=1
|
---|
57 | S X=1 I GMTSREDO>0!(+Y'>0) S X=-1
|
---|
58 | Q X
|
---|
59 | VOD(X) ; Verify Object Deletion
|
---|
60 | N GMTS,GMTSIEN,GMTSOWN,GMTSOK,GMTSI,GMTSN,GMTST,GMTSS,GMTSNAT,DIR,DTOUT,DIROUT,DUOUT,Y
|
---|
61 | S GMTSOK=0,GMTSIEN=+($G(X)) I +X'>0 D Q 0
|
---|
62 | . W !!," Sorry, you can not delete this Health Summary Object.",!
|
---|
63 | S GMTSN=$P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",1) I '$L(GMTSN) D Q 0
|
---|
64 | . W !!," Sorry, you can not delete this Health Summary Object."
|
---|
65 | . W !," There is a problem with the object's NAME field (#.01).",!
|
---|
66 | S GMTSNAT=$P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",20),GMTSOWN=$P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",17)
|
---|
67 | I +GMTSOWN>0,+GMTSOWN'=+($G(DUZ)) D Q 0
|
---|
68 | . W !!," You can not delete a Health Summary Object you don't own.",!
|
---|
69 | I +GMTSNAT>0,'$D(GMTSDEV) D Q 0
|
---|
70 | . W !!," You can not delete a Nationally Exported Health Summary Object.",!
|
---|
71 | S GMTST=" Object: "_GMTSN,GMTSS="",$P(GMTSS," ",(60-$L(GMTST))\2)=" ",GMTST=GMTSS_GMTST
|
---|
72 | I '$L($T(EXIST^TIUHSOBJ)) D Q 0
|
---|
73 | . W !!," Unable to determine if this Health Summary Object is linked"
|
---|
74 | . W !," to a TIU Object. Nothing deleted.",!
|
---|
75 | S X=$$EXIST^TIUHSOBJ(GMTSIEN) Q:+X'>0 1
|
---|
76 | S DIR("A",1)=" WARNING -- You are about to delete a Health Summary Object "
|
---|
77 | S DIR("A",2)=" currently in use by TIU. If you continue, then the associated"
|
---|
78 | S DIR("A",3)=" TIU Object will not display correctly."
|
---|
79 | S DIR("A",4)="",DIR("A",5)=GMTST,DIR("A",6)=""
|
---|
80 | S DIR("A")=" Are you sure you want to delete this Health Summary Object? "
|
---|
81 | S DIR(0)="YAO",DIR("B")="NO",(DIR("?"),DIR("??"))="^D VODH^GMTSOBV"
|
---|
82 | D ^DIR S X=$S(+Y>0:+GMTSX,1:0) S:$D(DTOUT)!($D(DUOUT)) X=0
|
---|
83 | Q X
|
---|
84 | VODH ; VOD Help
|
---|
85 | W !," Enter either 'Y' or 'N'."
|
---|
86 | Q
|
---|
87 | DEL(X) ; Verify Object Deletion
|
---|
88 | N GMTSIEN S GMTSIEN=+($G(X)) Q:GMTSIEN'>0 0 Q:'$L($P($G(^GMT(142.5,+GMTSIEN,0)),"^",1)) 0
|
---|
89 | Q:+($P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",17))&(+($P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",17))'=+($G(DUZ))) 0
|
---|
90 | Q:+($P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",20))&('$D(GMTSDEV)) 0
|
---|
91 | I $L($T(EXIST^TIUHSOBJ)),+($$EXIST^TIUHSOBJ(GMTSIEN))>0,'$D(GMTSDEV) Q 0
|
---|
92 | Q 1
|
---|
93 | CRD(X) ; Create Delete
|
---|
94 | N GMTSIEN S GMTSIEN=+($G(X)) Q:GMTSIEN'>0 N DA,DIK,GMTSC,GMTSE,GMTSN,GMTST,GMTSR S GMTSN=$P($G(^GMT(142.5,+GMTSIEN,0)),"^",1)
|
---|
95 | S GMTSC=+($P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",17)) I +GMTSC>0,+GMTSC'=+($G(DUZ)) Q
|
---|
96 | S GMTSE=+($P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",20)) I GMTSE>0&('$D(GMTSDEV)) Q
|
---|
97 | I $L($T(EXIST^TIUHSOBJ)),+($$EXIST^TIUHSOBJ(GMTSIEN))>0 Q
|
---|
98 | S GMTSN=+($P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",1)),GMTST=+($P($G(^GMT(142.5,+($G(GMTSIEN)),0)),"^",3))
|
---|
99 | I $L(GMTSN),+($G(GMTST))>0,$D(^GMT(142,+($G(GMTST)),0)) Q
|
---|
100 | S DA=GMTSIEN,DIK="^GMT(142.5," D ^DIK
|
---|
101 | Q
|
---|
102 | NAME(X) ; Verify Name for $$CRE^GMTSOBJ
|
---|
103 | N GMTSN,GMTSE S GMTSN=$G(X),GMTSE=$$EXIST(GMTSN) S:$L(GMTSN)<3!($L(GMTSN)>60) GMTSN=""
|
---|
104 | I $L(GMTSN)>2,$L(GMTSN)'>60,GMTSE'>0 Q X
|
---|
105 | N X,Y,DIR,DIROUT,DTOUT,DUOUT
|
---|
106 | S DIR(0)="FAO^3:60^N GMTS S GMTS=$$NIT^GMTSOBV(X) K:+GMTS'>0 X",GMTSN=""
|
---|
107 | S DIR("A")=" Health Summary Object Name: "
|
---|
108 | S (DIR("?"),DIR("??"))="^D NH^GMTSOBV"
|
---|
109 | D ^DIR S:$L(Y)>2&($L(Y)'>60) GMTSN=Y S X=GMTSN W !
|
---|
110 | Q X
|
---|
111 | NIT(X) ; Name Input Transform
|
---|
112 | N GMTSN S GMTSN=$$EXIST($G(X)) Q:+GMTSN<0 0
|
---|
113 | I +GMTSN>0 D Q 0
|
---|
114 | . W !!," A Health Summary Object of the same name exist"
|
---|
115 | Q 1
|
---|
116 | NH ; Name Help
|
---|
117 | W !," Enter a name of a new Health Summary Object, "
|
---|
118 | W !," 3 to 30 characters in length."
|
---|
119 | Q
|
---|
120 | EXIST(X) ; Name Exist
|
---|
121 | ; Returns 0 Does not Exist
|
---|
122 | ; 1 Exist
|
---|
123 | ; -1 Error
|
---|
124 | N GMTSN,GMTSO,GMTSC,GMTSI,GMTSE,GMTST S GMTSN=$$UP^XLFSTR($G(X))
|
---|
125 | Q:$L(GMTSN)<3 -1 Q:$L(GMTSN)>60 -1
|
---|
126 | S GMTSE=0,GMTSO=$E(GMTSN,1,28),GMTSO=$E(GMTSO,1,($L(GMTSO)-1))_$C($A($E(GMTSO,$L(GMTSO)))-1)_"~",GMTSC=$E(GMTSO,1,($L(GMTSO)-2))
|
---|
127 | F S GMTSO=$O(^GMT(142.5,"C",GMTSO)) Q:GMTSO=""!(+GMTSE>0)!(GMTSO'[GMTSC) D
|
---|
128 | . S GMTSI=0 F S GMTSI=$O(^GMT(142.5,"C",GMTSO,GMTSI)) Q:+GMTSI=0 D
|
---|
129 | . . S GMTST=$$UP^XLFSTR($P($G(^GMT(142.5,GMTSI,0)),"^",1)) S:GMTSN=GMTST GMTSE=1
|
---|
130 | S X=GMTSE
|
---|
131 | Q X
|
---|
132 | PAT ; Patient Lookup
|
---|
133 | K DFN,GMP D DT^DICRW N DIC,DTOUT,DUOUT,DIROUT,GMTSNAM,GMTSLAS,VA,VADM
|
---|
134 | S DIC=2,DIC("A")=" Select Patient: ",DIC(0)="AEQMZ",DT=$$DT^XLFDT,DTIME=300 D ^DIC I +Y>0 D
|
---|
135 | . S DFN=+Y N GMTSNAM,GMTSLAS,VA,VADM D DEM^VADPT S GMTSNAM=$G(VADM(1)),GMTSLAS=+($G(VA("BID")))
|
---|
136 | . S GMP=1,GMP(0)=1,GMP(1)=DFN_"^"_GMTSNAM_"^ "_GMTSNAM_" "_$S(+GMTSLAS>0:"(",1:0)_+GMTSLAS_$S(+GMTSLAS>0:")",1:0)_"^1"
|
---|
137 | Q
|
---|
138 | LKO(X) ; Lookup Object
|
---|
139 | N DIC,DTOUT,DUOUT,DIROUT,DIR,GMTSX
|
---|
140 | S DIC="^GMT(142.5,",DIC("A")=" Select HEALTH SUMMARY OBJECT: ",U="^"
|
---|
141 | S DIC(0)="AEMQ" K DLAYGO D ^DIC S (X,GMTSX)=+Y Q:+Y'>0 -1 Q:$D(DTOUT)!($D(DUOUT)) -1
|
---|
142 | I +Y>0 D Q X
|
---|
143 | . N DIR,GMTSI,GMTSN S GMTSI=+Y,X=-1,GMTSN=$P($G(^GMT(142.5,+GMTSI,0)),"^",1) Q:'$L(GMTSN)
|
---|
144 | . S DIR(0)="YAO",DIR("A")=" Is this correct? ",DIR("B")="Y"
|
---|
145 | . W !!,"You have selected ",GMTSN,! D SO^GMTSOBS(GMTSX) W !
|
---|
146 | . D ^DIR S X=$S(+Y>0:+GMTSX,1:-1) S:$D(DTOUT)!($D(DUOUT)) X=-1
|
---|
147 | Q X
|
---|
148 | TRIM(X) ; Trim Space Characters
|
---|
149 | S X=$G(X) F Q:$E(X,1)'=" " S X=$E(X,2,$L(X))
|
---|
150 | F Q:$E(X,$L(X))'=" " S X=$E(X,1,($L(X)-1))
|
---|
151 | Q X
|
---|