1 | TIULX ; SLC/JER - Cross-reference library functions ;18-JUN-2002 10:18:05
|
---|
2 | ;;1.0;TEXT INTEGRATION UTILITIES;**1,28,79,100,136**;Jun 20, 1997
|
---|
3 | ALOCP(DA) ; Should record be included in daily print queue by location?
|
---|
4 | ; Receives DA = record # in 8925
|
---|
5 | Q +$$ISPN(+$G(^TIU(8925,+DA,0)))
|
---|
6 | APTP(DA) ; Should record be included in daily print queue by patient?
|
---|
7 | ; Receives DA = record # in 8925
|
---|
8 | Q +$$ISPN(+$G(^TIU(8925,+DA,0)))
|
---|
9 | AAUP(DA) ; Should record be included in daily print queue by author?
|
---|
10 | ; Receives DA = record # in 8925
|
---|
11 | Q +$$ISPN(+$G(^TIU(8925,+DA,0)))
|
---|
12 | BELONGS(TIUDA,CLASS) ; Evaluate whether a given document belongs to a
|
---|
13 | ; particular document class
|
---|
14 | N TIUY
|
---|
15 | I +$$ISADDNDM^TIULC1(TIUDA) S TIUDA=+$P($G(^TIU(8925,+TIUDA,0)),U,6)
|
---|
16 | S TIUY=+$$ISA(+$G(^TIU(8925,+TIUDA,0)),CLASS)
|
---|
17 | Q TIUY
|
---|
18 | ISA(DA,CLASS) ; Evaluate whether a given document type is a member of a
|
---|
19 | ; particular document class
|
---|
20 | ; Receives DA = record # in 8925.1, and
|
---|
21 | ; CLASS = record # of class in 8925.1
|
---|
22 | N TIUI,TIUY S (TIUI,TIUY)=0
|
---|
23 | F S TIUI=$O(^TIU(8925.1,"AD",DA,TIUI)) Q:+TIUI'>0!(TIUY=1) D
|
---|
24 | . I TIUI=CLASS S TIUY=1 Q
|
---|
25 | . S TIUY=$$ISA(TIUI,CLASS)
|
---|
26 | Q TIUY
|
---|
27 | ISPN(DA) ; Evaluate whether a given document is a Progress Note
|
---|
28 | ; Receives DA = record # in 8925.1
|
---|
29 | N TIUI,TIUY S (TIUI,TIUY)=0
|
---|
30 | F S TIUI=$O(^TIU(8925.1,"AD",DA,TIUI)) Q:+TIUI'>0!(TIUY=1) D
|
---|
31 | . I TIUI=3 S TIUY=1 Q
|
---|
32 | . S TIUY=$$ISPN(TIUI)
|
---|
33 | Q TIUY
|
---|
34 | ISCWAD(DA) ; Evaluate whether a given title is a CWAD
|
---|
35 | ;Is the given title in a CWAD document class?
|
---|
36 | ;New for ID notes
|
---|
37 | ; Receives DA = record # in 8925.1
|
---|
38 | Q $S($$ISA(DA,25):1,$$ISA(DA,27):1,$$ISA(DA,30):1,$$ISA(DA,31):1,1:0)
|
---|
39 | ISDS(DA) ; Evaluate whether a given document is a Discharge Summary
|
---|
40 | ; Receives DA = record # in 8925.1
|
---|
41 | N TIUI,TIUY S (TIUI,TIUY)=0
|
---|
42 | F S TIUI=$O(^TIU(8925.1,"AD",DA,TIUI)) Q:+TIUI'>0!(TIUY=1) D
|
---|
43 | . I TIUI=244 S TIUY=1 Q
|
---|
44 | . S TIUY=$$ISDS(TIUI)
|
---|
45 | Q TIUY
|
---|
46 | TRNSFRM(RTYPE,FLD,X) ; Executes Transform code for a given header field
|
---|
47 | N XFORM
|
---|
48 | S FLD=$O(^TIU(8925.1,+RTYPE("TYPE"),"HEAD","D",+FLD,0))
|
---|
49 | I +FLD'>0 G TRNSFRMX
|
---|
50 | S XFORM=$G(^TIU(8925.1,+RTYPE("TYPE"),"HEAD",+FLD,1))
|
---|
51 | I XFORM']"" G TRNSFRMX
|
---|
52 | X XFORM
|
---|
53 | TRNSFRMX Q X
|
---|
54 | MENUS ; Evaluate/enforce user's menu display preference
|
---|
55 | N TIUI,TIUPREF S TIUPREF=$$PERSPRF^TIULE(DUZ),TIUI=0
|
---|
56 | F S TIUI=$O(^DISV(DUZ,"VALMMENU",TIUI)) Q:+TIUI'>0 D
|
---|
57 | . I $P($G(^ORD(101,+TIUI,0)),U)["TIU" S ^DISV(DUZ,"VALMMENU",TIUI)=$S($P(TIUPREF,U,5)=0:0,1:1)
|
---|
58 | Q
|
---|
59 | XTRASIGN(TIUY,TIUDA) ; Get list of extra signers for a document
|
---|
60 | N TIUI,TIUJ,TIUL,DA,DR,DIC,DIQ,TIUXTRA S (TIUI,TIUJ,TIUL)=0
|
---|
61 | S DIC="^TIU(8925.7,",DIQ="TIUXTRA"
|
---|
62 | F S TIUI=$O(^TIU(8925.7,"B",TIUDA,TIUI)) Q:+TIUI'>0 D
|
---|
63 | . N TIUX,TIUSGNR
|
---|
64 | . S DA=TIUI,DR=".03;.04" D EN^DIQ1 Q:+$D(TIUXTRA)'>9
|
---|
65 | . I $L($G(TIUXTRA(8925.7,DA,.04))) Q
|
---|
66 | . S TIUJ=+$G(TIUJ)+1,TIUL=+$G(TIUL)+1
|
---|
67 | . S TIUSGNR=$G(TIUXTRA(8925.7,DA,.03))
|
---|
68 | . S TIUX=$$SETSTR^VALM1($G(TIUJ)_") "_TIUSGNR,$G(TIUX),1,39)
|
---|
69 | . S TIUY(TIUL)=DA_U_TIUX
|
---|
70 | Q
|
---|
71 | ASKSIGN(TIUY) ; Identify which Signature to edit
|
---|
72 | N I,L,Y
|
---|
73 | W !!,"Please Indicate Which Expected Signer to Change:",!
|
---|
74 | S (I,L,Y)=0 F S I=$O(TIUY(I)) Q:+I'>0!+Y D
|
---|
75 | . W:$P(TIUY(I),U)]"" !,$P(TIUY(I),U,2)
|
---|
76 | . I I#20=0 S Y=$P($$PICK(1,I,"Select Signer","NO"),U)
|
---|
77 | . S L=I
|
---|
78 | I L#20,'+Y S Y=$P($$PICK(1,L,"Select Signer","NO"),U)
|
---|
79 | I +Y,+$G(TIUY(+Y)) S Y=+$G(TIUY(+Y))
|
---|
80 | Q Y
|
---|
81 | PICK(LOW,HIGH,PROMPT,TYPE) ; List selection
|
---|
82 | N X,Y S PROMPT=$G(PROMPT,"Select Item"),TYPE=$G(TYPE,"LO")
|
---|
83 | W !
|
---|
84 | S Y=$$READ^TIUU(TYPE_U_LOW_":"_HIGH,PROMPT)
|
---|
85 | W !
|
---|
86 | Q Y
|
---|
87 | CWAD ; Entry action for CWAD protocol
|
---|
88 | N GMRPALG,GMRPCWAD,GMRPDFN,GMRPOPT,GMRPEN,GMRPAGE,GMRPCWAD,GMRPDOB
|
---|
89 | N GMRPLOC,GMRPRB,GMRPSSN,GMRPQT
|
---|
90 | I $G(TIUGLINK) W !,"Please finish attaching the interdisciplinay note before displaying alerts.",! H 3 Q
|
---|
91 | D FULL^VALM1
|
---|
92 | I '+$G(DFN),'+$G(ORVP) D Q
|
---|
93 | . W !!,"No Patient Selected...",!
|
---|
94 | . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
|
---|
95 | . S VALMBCK="R"
|
---|
96 | D PAT^GMRPNOR1 I $D(GMRPQT) S VALMBCK="R" Q
|
---|
97 | S Y=GMRPDFN,GMRPOPT=1,GMRPEN=1 W !!,"** Current Patient: "_$P(Y,U,2)
|
---|
98 | D ENPAT^GMRPNCW S VALMBCK="R"
|
---|
99 | Q
|
---|
100 | IDSIGNRS(TIUY,TIUDA,TIULIST) ; Add list of Add'l Signers for a TIU Document
|
---|
101 | ; TIULIST(TIUI) [By Ref] = array of users to add/remove as signers
|
---|
102 | ; TIUDA = IEN in ^TIU(8925,
|
---|
103 | N TIUI S TIUI=0
|
---|
104 | F S TIUI=$O(TIULIST(TIUI)) Q:+TIUI'>0 D
|
---|
105 | . N DA,DIC,DLAYGO,DIE,DR,X,Y
|
---|
106 | . ; if current user is already an additional signer, and current user
|
---|
107 | . ; is NOT being removed as an additional signer, then QUIT
|
---|
108 | . I +$O(^TIU(8925.7,"AE",TIUDA,+TIULIST(TIUI),0)),($P(TIULIST(TIUI),U,3)'="REMOVE") Q
|
---|
109 | . ; if current user is being removed as a cosigner, then remove him
|
---|
110 | . I $P(TIULIST(TIUI),U,3)="REMOVE" D REMSIGNR(TIUDA,+TIULIST(TIUI)) Q
|
---|
111 | . ; otherwise, add the current user as an additional signer
|
---|
112 | . S X=""""_"`"_TIUDA_"""",(DIC,DLAYGO)=8925.7,DIC(0)="LX" D ^DIC Q:+Y'>0
|
---|
113 | . S DIE=DIC,TIUY=$G(TIUY)_$S($G(TIUY)]"":U,1:"")_+TIULIST(TIUI)
|
---|
114 | . S DR=".02////"_0_";.03////"_+$G(TIULIST(TIUI))
|
---|
115 | . D ^DIE
|
---|
116 | . D SEND^TIUALRT(TIUDA)
|
---|
117 | Q
|
---|
118 | REMSIGNR(TIUDA,TIUDUZ) ; Remove user from additional signer list
|
---|
119 | N DA,DIE,DR,DIDEL
|
---|
120 | S DA=+$O(^TIU(8925.7,"AE",TIUDA,TIUDUZ,0)) Q:+DA'>0
|
---|
121 | S (DIDEL,DIE)=8925.7,DR=".01///@" D ^DIE
|
---|
122 | D SEND^TIUALRT(TIUDA)
|
---|
123 | Q
|
---|
124 | GETSIGNR(TIUY,TIUDA) ; RPC to Get list of extra signers for a document
|
---|
125 | N TIUI,DA,DR,DIC,DIQ,TIUXTRA,TIUD12,TIUAU,TIUEC S (DA,TIUI)=0
|
---|
126 | S DIC="^TIU(8925.7,",DIQ="TIUXTRA"
|
---|
127 | F S DA=$O(^TIU(8925.7,"B",TIUDA,DA)) Q:+DA'>0 D
|
---|
128 | . N TIUX,TIUSGNR
|
---|
129 | . S DR=".03;.04",DIQ(0)="IE" D EN^DIQ1 Q:+$D(TIUXTRA)'>9
|
---|
130 | . I +$G(TIUXTRA(8925.7,DA,.04,"I")) Q
|
---|
131 | . S TIUI=+$G(TIUI)+1
|
---|
132 | . S TIUY(TIUI)=$G(TIUXTRA(8925.7,DA,.03,"I"))_U_$G(TIUXTRA(8925.7,DA,.03,"E"))
|
---|
133 | S TIUD12=$G(^TIU(8925,TIUDA,12))
|
---|
134 | S TIUAU=$P(TIUD12,U,4),TIUEC=$P(TIUD12,U,8)
|
---|
135 | S TIUI=+$G(TIUI)+1,TIUY(TIUI)=TIUAU_U_$$PERSNAME^TIULC1(TIUAU)_U_"AUTHOR"
|
---|
136 | I $S(+TIUEC'>0:1,'$L($G(^VA(200,+TIUEC,0))):1,1:0) Q
|
---|
137 | S TIUI=+$G(TIUI)+1,TIUY(TIUI)=TIUEC_U_$$PERSNAME^TIULC1(TIUEC)_U_"EXPECTED COSIGNER"
|
---|
138 | Q
|
---|
139 | HASDS(DFN,VSTR) ; Does an admission have a Discharge Summary?
|
---|
140 | N TITLE,TIUDA S (TIUDA,TITLE)=0
|
---|
141 | F S TITLE=$O(^TIU(8925,"APTLD",DFN,TITLE)) Q:+TITLE'>0 D Q:+TIUDA>0
|
---|
142 | . N STATUS,CONTEXT S TIUDA=0
|
---|
143 | . I '+$$ISDS(TITLE) S TIUDA=0_U_0 Q
|
---|
144 | . F S TIUDA=$O(^TIU(8925,"APTLD",DFN,TITLE,VSTR,+TIUDA)) Q:+TIUDA'>0 D Q:+$P(TIUDA,U,2)
|
---|
145 | . . S STATUS=+$P($G(^TIU(8925,+TIUDA,0)),U,5)
|
---|
146 | . . S CONTEXT=$S(STATUS=0:0,STATUS>13:0,STATUS'>5:2,1:1)
|
---|
147 | . . S TIUDA=TIUDA_U_CONTEXT
|
---|
148 | I '+TIUDA,($L(TIUDA,U)<2) S TIUDA=TIUDA_U_0
|
---|
149 | Q TIUDA
|
---|
150 | NEEDSIG(TIUY,USER,CLASS) ; Get list of documents for which USER is an additional signer
|
---|
151 | N TIUDA,TIUI,TIUJ S (TIUDA,TIUJ)=0
|
---|
152 | S USER=$G(USER,DUZ),CLASS=$G(CLASS,38),TIUY=$NA(^TMP("TIUSIGN",$J))
|
---|
153 | K @TIUY ; Clear out return array before query
|
---|
154 | F S TIUDA=$O(^TIU(8925.7,"AES",USER,TIUDA)) Q:+TIUDA'>0 D
|
---|
155 | . S TIUI=0 F S TIUI=$O(^TIU(8925.7,"AES",USER,TIUDA,TIUI)) Q:+TIUI'>0 D
|
---|
156 | . . N TIUD0 S TIUD0=$G(^TIU(8925.7,TIUI,0)) Q:+$P(TIUD0,U,4)
|
---|
157 | . . Q:'+$$ISA(+$G(^TIU(8925,TIUDA,0)),CLASS)
|
---|
158 | . . S TIUJ=+$G(TIUJ)+1,@TIUY@(TIUJ)=TIUDA
|
---|
159 | Q
|
---|
160 |
|
---|