1 | GMTSOBA2 ; SLC/KER - HS Object - Ask ; 01/06/2003
|
---|
2 | ;;2.7;Health Summary;**58**;Oct 20, 1995
|
---|
3 | ;
|
---|
4 | ; External References
|
---|
5 | ; DBIA 10018 ^DIE (file #142)
|
---|
6 | ; DBIA 10026 ^DIR
|
---|
7 | ; DBIA 10006 ^DIC (file #142)
|
---|
8 | ; DBIA 10010 EN1^DIP
|
---|
9 | ; DBIA 10076 ^XUSEC(
|
---|
10 | ; DBIA 10076 ^XUSEC("GMTSMGR")
|
---|
11 | ;
|
---|
12 | CH ; Component Header
|
---|
13 | Q:+($G(GMTSQ))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF,GMTSE
|
---|
14 | S GMTSOBJ("COMPONENT HEADER")="",DIR("A")=" Print the standard Component Header? "
|
---|
15 | S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,12),GMTSE=0
|
---|
16 | S GMTSDEF=$S(+GMTSDEF>0:"Y",GMTSDEF="":"Y",1:"N")
|
---|
17 | S DIR("B")=GMTSDEF,DIR(0)="YAO",(DIR("?"),DIR("??"))="^D CH^GMTSOBH"
|
---|
18 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
|
---|
19 | S:Y["^"!(X["^") GMTSE=1,GMTSQ=1,GMTSDES=0
|
---|
20 | K:+($G(GMTSQ))>0 GMTSOBJ("COMPONENT HEADER") Q:+($G(GMTSQ))>0
|
---|
21 | S X=+($G(Y)) K:+X'>0 GMTSOBJ("COMPONENT HEADER")
|
---|
22 | D:$D(GMTSOBJ("COMPONENT HEADER"))&(GMTSE'>0) LM Q:+($G(GMTSQ))>0 Q:+($G(GMTSE))>0
|
---|
23 | D:$D(GMTSOBJ("COMPONENT HEADER"))&(GMTSE'>0) UD Q:+($G(GMTSQ))>0 Q:+($G(GMTSE))>0
|
---|
24 | D:$D(GMTSOBJ("COMPONENT HEADER"))&(GMTSE'>0) BL Q:+($G(GMTSQ))>0 Q:+($G(GMTSE))>0
|
---|
25 | Q
|
---|
26 | LM ; Time/Occurence Limits
|
---|
27 | Q:+($G(GMTSQ))>0 Q:+($G(GMTSE))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
|
---|
28 | S GMTSOBJ("LIMITS")="",DIR("A")=" Use report time/occurence limits? "
|
---|
29 | S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,14)
|
---|
30 | S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
|
---|
31 | S (DIR("?"),DIR("??"))="^D LM^GMTSOBH",DIR("B")=GMTSDEF,DIR(0)="YAO"
|
---|
32 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSE=1
|
---|
33 | S:Y["^"!(X["^") GMTSE=1,GMTSQ=1,GMTSDES=0
|
---|
34 | K:+($G(GMTSE))>0 GMTSOBJ("LIMITS") Q:+($G(GMTSE))>0
|
---|
35 | S X=+($G(Y)) K:+X'>0 GMTSOBJ("LIMITS") Q
|
---|
36 | UD ; Underline Header
|
---|
37 | Q:+($G(GMTSQ))>0 Q:+($G(GMTSE))>0
|
---|
38 | N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
|
---|
39 | S GMTSOBJ("UNDERLINE")="",DIR("A")=" Underline Component Header? "
|
---|
40 | S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,13)
|
---|
41 | S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
|
---|
42 | S (DIR("?"),DIR("??"))="^D CHU^GMTSOBH",DIR("B")=GMTSDEF,DIR(0)="YAO"
|
---|
43 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSE=1
|
---|
44 | S:Y["^"!(X["^") GMTSE=1,GMTSQ=1,GMTSDES=0
|
---|
45 | K:+($G(GMTSE))>0 GMTSOBJ("UNDERLINE") Q:+($G(GMTSE))>0
|
---|
46 | S X=+($G(Y)) K:+X'>0 GMTSOBJ("UNDERLINE") Q
|
---|
47 | BL ; Blank Line after Header
|
---|
48 | Q:+($G(GMTSQ))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
|
---|
49 | S GMTSOBJ("BLANK LINE")="",DIR("A")=" Add a Blank Line after the Component Header? "
|
---|
50 | S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,15)
|
---|
51 | S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
|
---|
52 | S (DIR("?"),DIR("??"))="^D BL^GMTSOBH",DIR("B")=GMTSDEF,DIR(0)="YAO"
|
---|
53 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
|
---|
54 | K:+($G(GMTSQ))>0 GMTSOBJ("BLANK LINE") Q:+($G(GMTSQ))>0
|
---|
55 | S X=+($G(Y)) K:+X'>0 GMTSOBJ("BLANK LINE") Q
|
---|
56 | DE ; Deceased
|
---|
57 | Q:+($G(GMTSQ))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
|
---|
58 | S GMTSOBJ("DECEASED")="",DIR("A")=" Print the date a patient was deceased? "
|
---|
59 | S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,16)
|
---|
60 | S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
|
---|
61 | S (DIR("?"),DIR("??"))="^D DE^GMTSOBH",DIR("B")=GMTSDEF,DIR(0)="YAO"
|
---|
62 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
|
---|
63 | K:+($G(GMTSQ))>0 GMTSOBJ("DECEASED") Q:+($G(GMTSQ))>0
|
---|
64 | S X=+($G(Y)) K:+X'>0 GMTSOBJ("DECEASED") Q
|
---|
65 | LBL ; Label
|
---|
66 | Q:+($G(GMTSQ))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDLD,GMTSDEF
|
---|
67 | K GMTSOBJ("USE LABEL"),GMTSOBJ("LABEL"),GMTSOBJ("LABEL BLANK LINE")
|
---|
68 | S DIR("A")=" Print a LABEL before the Health Summary Object? "
|
---|
69 | S GMTSDEF=$S(+($G(GMTSDA))>0:$P($G(^GMT(142.5,+($G(GMTSDA)),0)),"^",7),1:0)
|
---|
70 | S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N"),(DIR("?"),DIR("??"))="^D PLB^GMTSOBH",DIR("B")=GMTSDEF,DIR(0)="YAO"
|
---|
71 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1 S:Y["^"!(X["^") GMTSQ=1
|
---|
72 | K:+($G(GMTSQ))>0 GMTSOBJ("USE LABEL") Q:+($G(GMTSQ))>0
|
---|
73 | S GMTSOBJ("USE LABEL")=$S(+Y>0:1,1:0)
|
---|
74 | S X=+($G(Y)) D:+X LB Q
|
---|
75 | LB ; Object Label
|
---|
76 | Q:+($G(GMTSQ))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF,GMTSE
|
---|
77 | S GMTSOBJ("LABEL")="",DIR("A")=" Enter LABEL: "
|
---|
78 | S GMTSDEF=$P($G(^GMT(142.5,+($G(DA)),0)),"^",2) S:$L(GMTSDEF) DIR("B")=GMTSDEF
|
---|
79 | S (DIR("?"),DIR("??"))="^D LBH^GMTSOBH",DIR(0)="FAO^3:60"
|
---|
80 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSE=1 S:Y["^"!(X["^") GMTSE=1
|
---|
81 | K:+($G(GMTSE))>0 GMTSOBJ("USE LABEL"),GMTSOBJ("LABEL"),GMTSOBJ("LABEL BLANK LINE")
|
---|
82 | Q:+($G(GMTSE))>0 S X=$G(Y) K:'$L(X) GMTSOBJ("USE LABEL"),GMTSOBJ("LABEL"),GMTSOBJ("LABEL BLANK LINE")
|
---|
83 | S:$L(X) GMTSOBJ("LABEL")=X_" " D:$L($G(GMTSOBJ("LABEL"))) LBB Q
|
---|
84 | LBB ; Label Blank Line
|
---|
85 | Q:+($G(GMTSE))>0 Q:+($G(GMTSQ))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF,GMTSE
|
---|
86 | S GMTSOBJ("LABEL BLANK LINE")="",DIR("A")=" Print a blank line after the Object Label? "
|
---|
87 | S GMTSDEF=$P($G(^GMT(142.5,+($G(DA)),0)),"^",8)
|
---|
88 | S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N") S DIR("B")=GMTSDEF
|
---|
89 | S (DIR("?"),DIR("??"))="^D LBLH^GMTSOBH",DIR(0)="YAO"
|
---|
90 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSE=1 S:Y["^"!(X["^") GMTSE=1
|
---|
91 | K:+($G(GMTSE))>0 GMTSOBJ("LABEL BLANK LINE") Q:+($G(GMTSE))>0
|
---|
92 | S X=+($G(Y)) K:+X'>0 GMTSOBJ("LABEL BLANK LINE") Q
|
---|
93 | SC ; Suppress Components w/o Data
|
---|
94 | Q:+($G(GMTSQ))>0 N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDLD,GMTSDEF
|
---|
95 | S GMTSOBJ("SUPPRESS COMPONENTS")="",DIR("A")=" Suppress Components without Data? "
|
---|
96 | S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,5)
|
---|
97 | S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
|
---|
98 | S (DIR("?"),DIR("??"))="^D SC^GMTSOBH",DIR("B")=GMTSDEF,DIR(0)="YAO"
|
---|
99 | D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
|
---|
100 | K:+($G(GMTSQ))>0 GMTSOBJ("SUPPRESS COMPONENTS") Q:+($G(GMTSQ))>0
|
---|
101 | S X=+($G(Y)) K:+X'>0 GMTSOBJ("SUPPRESS COMPONENTS")
|
---|
102 | Q
|
---|
103 | ET(X) ; Edit Type X
|
---|
104 | Q:+($G(DUZ))'>0 N ADEL,B,BY,CHANGE,CNT,DA,DHD,DIC,DIE,DIK,DIR,DIROUT,DLAYGO,DR,DTOUT
|
---|
105 | N DUOUT,EXISTS,FLDS,FR,GMTSEG,GMTSIEN,GMTSDEF,GMTSIFN,GMTSMGR,GNTSN
|
---|
106 | N GMTSNEW,GMTSQIT,GMTSUM,GMTSV,GMTSAL,D,D0,D1,DQ,Y,L,LCNT,LI
|
---|
107 | N NXTCMP,SELCNT,SOACTION,TO,TWEENER S EXISTS=0,U="^",GMTSAL=1,GMTSQIT=0,X=$G(X) Q:'$L(X) Q:$L(X)>30
|
---|
108 | S DIC="^GMT(142,",DIC(0)="XMZ" K DLAYGO D ^DIC
|
---|
109 | S GMTSN=$P($G(^GMT(142,+Y,0)),"^",1) Q:'$L(GMTSN)
|
---|
110 | S GMTSUM=$P(Y,U,2) Q:'$L(GMTSUM) S:$D(DIROUT)!($D(DTOUT)) Y=-1 Q:+Y'>0
|
---|
111 | S GMTSNEW=+($P(Y,"^",3)),GMTSV=$$VTE^GMTSOBV(+Y) Q:+GMTSV'>0
|
---|
112 | S GMTSMGR=$S($D(^XUSEC("GMTSMGR",DUZ)):1,1:0)
|
---|
113 | S DIE="^GMT(142,",(GMTSIFN,DA)=+Y
|
---|
114 | S DR="[GMTS EDIT EXIST HS TYPE]"
|
---|
115 | W !!,"Editing Health Summary Type '",GMTSN,"'",!
|
---|
116 | D ^DIE
|
---|
117 | S EXISTS=0 S:($O(^GMT(142,+GMTSIFN,1,0))) EXISTS=1
|
---|
118 | D LIST:EXISTS,EXISTS
|
---|
119 | Q
|
---|
120 | EXISTS ; Edit an existing health summary type
|
---|
121 | N GMTSAL,CNT,NXTCMP Q:$D(DUOUT) S NXTCMP=0,NXTCMP(0)=0,GMTSAL=0
|
---|
122 | F CNT=$$GETCNT(GMTSIFN):0 D NXTCMP^GMTSRM1,LIST:GMTSQIT Q:GMTSQIT!($D(DUOUT)) K GMTSQIT,GMTSNEW,TWEENER,SOACTION
|
---|
123 | I NXTCMP>0 W !,"Please hold on while I resequence the summary order" D COPY^GMTSRN,RNMBR^GMTSRN:CHANGE
|
---|
124 | Q
|
---|
125 | LIST ; Lists existing summary parameters
|
---|
126 | N B,DIC,DIR,IOP,Y,FR,TO,BY,DHD,FLDS,L I GMTSQIT'=2 Q:($D(DUOUT)!(GMTSQIT=1))
|
---|
127 | I GMTSQIT=2,(NXTCMP=0) S GMTSQIT=0 Q
|
---|
128 | I 'GMTSNEW,'GMTSAL W ! S DIC=142,DIR(0)="Y",DIR("A")="Do you wish to review the Summary Type structure before continuing",DIR("B")="NO" D ^DIR K DIR I 'Y S:GMTSQIT=2 DUOUT="" S:GMTSQIT=2 GMTSQIT="D" S:$D(DUOUT) GMTSQIT=1 Q
|
---|
129 | I $D(GMTSQIT),GMTSQIT=2 S GMTSQIT=0
|
---|
130 | S IOP="HOME",DIC=142,(FR,TO)=GMTSUM,BY=".01",DHD="[GMTS TYPE INQ HEADER]-[GMTS TYPE INQ FOOTER]",FLDS="[GMTS TYPE INQ]",L=0 D EN1^DIP
|
---|
131 | Q
|
---|
132 | GETCNT(GMTSIFN) ; Determine default summary order for new component
|
---|
133 | N LI,LCNT S LI=0,LCNT=5 F S LI=$O(^GMT(142,+GMTSIFN,1,LI)) Q:+LI'>0 S LCNT=$P(LI,".")+5
|
---|
134 | Q LCNT
|
---|