1 | GMRCSRVS ;SLC/DCM,JFR - Add/Edit services in File 123.5. ;6/14/00 12:00
|
---|
2 | ;;3.0;CONSULT/REQUEST TRACKING;**1,16,40,53**;DEC 27, 1997;Build 3
|
---|
3 | ;
|
---|
4 | EN ;set up services entry point
|
---|
5 | ;GMRCOLDU=Service Usage field. If changed, GMRCOLDU shows the change (See ^DD(123.5,2,0) for field description).
|
---|
6 | N GMRCSAFE,GMRCOLDU,GMRCOLDS,GMRCOSNM,GMRCSRVC,GMRCACT,GMRCSSNM
|
---|
7 | N DIC,DLAYGO,DUOUT,DTOUT
|
---|
8 | S DIC="^GMR(123.5,",DLAYGO=123.5,DIC(0)="AELMQZ",DIC("A")="Select Service/Specialty:"
|
---|
9 | D ^DIC I $S(Y<0:1,$D(DTOUT):1,$D(DUOUT):1,1:0) D END K GMRCMSG,DTOUT,DUOUT Q
|
---|
10 | D
|
---|
11 | .S GMRCSAFE=+$G(^GMR(123.5,+Y,"INT"))
|
---|
12 | .S (DA,GMRCSRVC)=+Y,GMRCOSNM=$P(Y,"^",2),(GMRCOLDU,GMRCOLDS)=""
|
---|
13 | .S GMRCACT=$S('$O(^GMR(123.5,+Y,0)):"MAD",1:"MUP"),GMRCOLDU=$P(^(0),"^",2),GMRCOLDN=$P(^(0),"^",1) S ND=0,GMRCOLDS="" F S ND=$O(^GMR(123.5,+Y,2,ND)) Q:ND?1A.E!(ND="") S GMRCOLDS=GMRCOLDS_^GMR(123.5,+Y,2,ND,0)_"^"
|
---|
14 | .S DIE=DIC,DR="[GMRC SETUP REQUEST SERVICE]",DIE("NO^")="OUTOK"
|
---|
15 | .D ^DIE
|
---|
16 | .Q
|
---|
17 | S GMRCACT=$S($P(^GMR(123.5,GMRCSRVC,0),"^",2)=9:"MDC",$P(^(0),"^",2)=1:"MDC",1:GMRCACT) D
|
---|
18 | .S GMRCSSNM=$P(^GMR(123.5,GMRCSRVC,0),"^",1)
|
---|
19 | .I GMRCACT'="MAD",GMRCSSNM'=GMRCOSNM S GMRCACT="MUP"
|
---|
20 | .I $S(GMRCACT'="MAD":1,GMRCACT'="MUP":1,1:0),$L(GMRCOLDU),GMRCOLDU=$P(^GMR(123.5,GMRCSRVC,0),"^",2) S GMRCACT="NOACT"
|
---|
21 | .I $S(GMRCACT="MUP":1,GMRCACT="NOACT":1,1:0),GMRCOLDN'=$P(^GMR(123.5,GMRCSRVC,0),"^",1) S GMRCACT="MUP"
|
---|
22 | .S ND=0 F S ND=$O(^GMR(123.5,GMRCSRVC,2,ND)) Q:ND?1A.E!(ND="") I GMRCOLDS'=""&(^GMR(123.5,GMRCSRVC,2,ND,0)'=""),GMRCOLDS'[^GMR(123.5,GMRCSRVC,2,ND,0) S GMRCACT="MUP" Q
|
---|
23 | .I $S(GMRCACT="MAD":1,GMRCACT="MUP":1,GMRCACT="MDC":1,1:0) D SVC^GMRC101H(GMRCSRVC,GMRCSSNM,GMRCACT),MSG^XQOR("GMRC ORDERABLE ITEM UPDATE",.GMRCMSG)
|
---|
24 | .D PTRCLN^GMRCU
|
---|
25 | .Q
|
---|
26 | K GMRCMSG,GMRCSSNM,GMRCSRVS,GMRCOLDN,GMRCOLDS,GMRCOLDU,ND
|
---|
27 | ;Ask to continue...
|
---|
28 | ;
|
---|
29 | N GMRC0,GMRCA,GMRCB,GMRCH,GMRCL
|
---|
30 | S GMRC0="YA",GMRCA="Add/Edit Another Service? ",GMRCB="NO"
|
---|
31 | S GMRCH="Enter 'YES' to add/edit another service, or 'NO' to exit."
|
---|
32 | S GMRCL=2
|
---|
33 | I '+$$READ(GMRC0,GMRCA,GMRCB,GMRCH,GMRCL) D END Q
|
---|
34 | G EN
|
---|
35 | ;
|
---|
36 | END K DIC,DIE,DTOUT,DUOUT,DA,DR,FL,GMRCACT,GMRCANS,GMRCMSG,GMRCREA,GMRCSRVC,GMRCSSNM,REVCODE,RLEVCODE,Y
|
---|
37 | Q
|
---|
38 | ;
|
---|
39 | READ(GMRC0,GMRCA,GMRCB,GMRCH,GMRCL,GMRCS) ;
|
---|
40 | ;
|
---|
41 | ; GMRC0 -> DIR(0) --- Type of read
|
---|
42 | ; GMRCA -> DIR("A") - Prompt
|
---|
43 | ; GMRCB -> DIR("B") - Default Answer
|
---|
44 | ; GMRCH -> DIR("?") - Help text or ^Execute code
|
---|
45 | ; GMRCS -> DIR("S") - Screen
|
---|
46 | ; GMRCL -> Number of blank lines to put before Prompt
|
---|
47 | ;
|
---|
48 | ; Returns "^" or answer
|
---|
49 | ;
|
---|
50 | N GMRCLINE,DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
|
---|
51 | Q:'$L($G(GMRC0)) U
|
---|
52 | S DIR(0)=GMRC0
|
---|
53 | S:$L($G(GMRCA)) DIR("A")=GMRCA
|
---|
54 | I $D(GMRCA("A")) M DIR("A")=GMRCA("A")
|
---|
55 | S:$L($G(GMRCB)) DIR("B")=GMRCB
|
---|
56 | I $D(GMRCH("?")) M DIR("?")=GMRCH("?")
|
---|
57 | S:$L($G(GMRCH)) DIR("?")=GMRCH
|
---|
58 | S:$L($G(GMRCS)) DIR("S")=GMRCS
|
---|
59 | F GMRCLINE=1:1:($G(GMRCL)-1) W !
|
---|
60 | D ^DIR
|
---|
61 | I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) Q U
|
---|
62 | Q Y
|
---|
63 | ;
|
---|
64 | NOED(SERV) ;
|
---|
65 | I '$D(^GMR(123.5,+SERV,0)) Q 0
|
---|
66 | N NAME
|
---|
67 | S NAME=$P(^GMR(123.5,+SERV,0),U)
|
---|
68 | I NAME="PROSTHETICS REQUEST" Q 1
|
---|
69 | I NAME="EYEGLASS REQUEST" Q 1
|
---|
70 | I NAME="CONTACT LENS REQUEST" Q 1
|
---|
71 | I NAME="HOME OXYGEN REQUEST" Q 1
|
---|
72 | Q 0
|
---|
73 | ;
|
---|
74 | CLONPSAS ; clone a PROSTHETICS service
|
---|
75 | ; choose service and text to append
|
---|
76 | N GMRCSIEN,GMRCROOT,GMRCNWNM
|
---|
77 | N GMRCCPY,GMRCNEW,FDA,GMRCERR,GMRC
|
---|
78 | S GMRC(0)="PAO^GMR(123.5,:AEMQ"
|
---|
79 | S GMRC("A")="Select the Prosthetics Service to clone: "
|
---|
80 | S GMRC("S")="I $$NOED^GMRCSRVS(+Y)"
|
---|
81 | S GMRCCPY=+$$READ(GMRC(0),GMRC("A"),,,2,GMRC("S"))
|
---|
82 | I 'GMRCCPY Q
|
---|
83 | K GMRC
|
---|
84 | S GMRCNWNM=$$GETAPP(GMRCCPY)
|
---|
85 | I '$L(GMRCNWNM) Q
|
---|
86 | S FDA(1,123.5,"+1,",.01)=GMRCNWNM
|
---|
87 | S FDA(1,123.5,"+1,",2)="DISABLED"
|
---|
88 | S FDA(1,123.5,"+1,",1.01)="REQUIRE"
|
---|
89 | S FDA(1,123.5,"+1,",1.02)="LEXICON"
|
---|
90 | S FDA(1,123.5,"+1,",123.01)="CONSULTS"
|
---|
91 | S FDA(1,123.5,"+1,",123.03)="GMRCACTM SERVICE ACTION MENU"
|
---|
92 | S FDA(1,123.5,"+1,",131)="YES"
|
---|
93 | D UPDATE^DIE("E","FDA(1)","GMRCNEW","GMRCERR")
|
---|
94 | I '$D(GMRCNEW) W !,"Failed to create new entry. Please try again" Q
|
---|
95 | W !!,GMRCNWNM," created",!
|
---|
96 | S GMRCSIEN=GMRCNEW(1)_","
|
---|
97 | S GMRCROOT="^GMR(123.5,"_GMRCCPY_",124)"
|
---|
98 | D WP^DIE(123.5,GMRCSIEN,124,,GMRCROOT,"GMRCERR")
|
---|
99 | W !!,"The new Service is currently DISABLED. To activate this service for use in"
|
---|
100 | W !,"the Prosthetics interface, you MUST use the Setup Consult Services option"
|
---|
101 | W !,"and delete the DISABLED flag from the SERVICE USAGE field.",!
|
---|
102 | Q
|
---|
103 | GETAPP(GMRIEN) ;get text to append
|
---|
104 | N GMRCNWNM,QTFLG,I,GMRC,GMRCHL,OK
|
---|
105 | S GMRCNWNM=""
|
---|
106 | F I=0:0 D Q:$G(QTFLG)
|
---|
107 | . W !!
|
---|
108 | . S GMRC(0)="FA^3:40"
|
---|
109 | . S GMRC("A")="Enter text to append to national service name: "
|
---|
110 | . S GMRCHL("?",1)="The text entered will be appended to the name of the exported service"
|
---|
111 | . S GMRCHL("?")="(e.g. If HINES was entered it may appear as PROSTHETICS REQUEST - HINES"
|
---|
112 | . S GMRCNWNM=$$READ(GMRC(0),GMRC("A"),,.GMRCHL,2)
|
---|
113 | . I '$L(GMRCNWNM)!(GMRCNWNM["^") S GMRCNWNM="",QTFLG=1 Q
|
---|
114 | . K GMRC,GMRCHL
|
---|
115 | . S GMRCNWNM=$P(^GMR(123.5,GMRIEN,0),U)_" - "_GMRCNWNM
|
---|
116 | . I $$FIND1^DIC(123.5,,"X",GMRCNWNM) D Q
|
---|
117 | .. W !!,$C(7),"This service already exists, you'll have to try again!",!
|
---|
118 | .. S GMRCNWNM=""
|
---|
119 | . W !,"The new service name will be:"
|
---|
120 | . W !,?5,GMRCNWNM,!
|
---|
121 | . S OK=+$$READ("Y","Is this OK",,,1)
|
---|
122 | . I OK=U S QTFLG=1 Q
|
---|
123 | . I 'OK S GMRCNWNM="" Q
|
---|
124 | . S QTFLG=1
|
---|
125 | Q GMRCNWNM
|
---|
126 | INPUT(X,GMRCDA) ; INPUT TRANSFORM FOR THE SUB-SERVICE/SPECIALTY (#.01) FIELD
|
---|
127 | ; OF THE SUB-SERVICE (#123.51) FILE WHICH IS A SUB-FILE OF THE
|
---|
128 | ; SUB-SERVICE (#10) FIELD OF THE REQUEST SERVICES (#123.5) FILE.
|
---|
129 | ;
|
---|
130 | ; X = INTERNAL VALUE OF USER SELECTED SUB-SERVICE (IEN OF SERVICE
|
---|
131 | ; IN FILE 123.5)
|
---|
132 | ; GMRCDA = IEN OF INITIAL PARENT SERVICE IN FILE 123.5
|
---|
133 | ;
|
---|
134 | I +$G(X)=0 K X Q
|
---|
135 | I GMRCDA<1 D Q:'$D(X)
|
---|
136 | . S GMRCDA=+$G(D0)
|
---|
137 | . I GMRCDA<1 K X
|
---|
138 | N GMRPARNT,GMRCHILD,GMRQ,GMRCNT
|
---|
139 | K ^TMP("GMRC INPUT",$J) ;MAKE SURE INPUT PARENT LOG GLOBAL IS BLANK
|
---|
140 | I X=GMRCDA S GMRQ=1 G INPUTQ ;NOT ALLOW SERVICE AS A SUB-SERVICE TO ITSELF
|
---|
141 | S ^TMP("GMRC INPUT",$J,"B",GMRCDA)="" ;USED TO PREVENT DUPLICATE CHECKING OF PARENTS
|
---|
142 | S ^TMP("GMRC INPUT",$J,0)=1 ;USED TO FIND NEXT NUMBER FOR TMP GLOBAL ENTRY
|
---|
143 | S ^TMP("GMRC INPUT",$J,1)=GMRCDA ;PARENT IEN STORED TO BE USED AS CHILD
|
---|
144 | S (GMRCNT,GMRQ)=0
|
---|
145 | F S GMRCNT=$O(^TMP("GMRC INPUT",$J,GMRCNT)) Q:'GMRCNT D Q:GMRQ=1
|
---|
146 | . S GMRCHILD=$G(^TMP("GMRC INPUT",$J,GMRCNT))
|
---|
147 | . S GMRPARNT=0
|
---|
148 | . F S GMRPARNT=$O(^GMR(123.5,"APC",GMRCHILD,GMRPARNT)) Q:GMRPARNT="" D Q:GMRQ=1
|
---|
149 | .. I GMRPARNT=X S GMRQ=1 Q ;NOT ALLOW SERVICE AS A SUB-SERVICE WITHIN IT'S SUB-SERVICE HIERARCHY
|
---|
150 | .. I '$D(^TMP("GMRC INPUT",$J,"B",GMRPARNT)) D ;IF NOT IN LIST ADD
|
---|
151 | ... S ^TMP("GMRC INPUT",$J,"B",GMRPARNT)="" ;ADD TO "B" CROSS-REFERENCE
|
---|
152 | ... S ^TMP("GMRC INPUT",$J,0)=$G(^TMP("GMRC INPUT",$J,0))+1 ;INCREASE LAST NUMBER BY 1
|
---|
153 | ... S ^TMP("GMRC INPUT",$J,$G(^TMP("GMRC INPUT",$J,0)))=GMRPARNT ;ADD NEW PARENT SERVICE TO GLOBAL SO IT CAN BE CHECKED AS A CHILD ENTRY TO FIND IT'S PARENTS
|
---|
154 | K ^TMP("GMRC INPUT",$J)
|
---|
155 | INPUTQ I GMRQ=1 D EN^DDIOL("A SERVICE CAN NOT BE A SUB-SERVICE OF ITSELF","","!!?12") K X Q
|
---|
156 | ;
|
---|
157 | DUPCHK ;CHECK FOR CONSULT SERVICES APPEARING AS PART OF THE CONSULT SERVICE
|
---|
158 | ;HIERARCHY IN MORE THAN ONE PLACE
|
---|
159 | N ARRAY,COUNT,GMRCON,PARENT
|
---|
160 | S PARENT=0
|
---|
161 | ;Check if they are a sub-service to more than one service.
|
---|
162 | F COUNT=0:1 S PARENT=$O(^GMR(123.5,"APC",X,PARENT)) Q:'+PARENT
|
---|
163 | ;Print message about which services this service is a sub-service of.
|
---|
164 | I COUNT'>0 Q
|
---|
165 | S COUNT=1
|
---|
166 | S ARRAY(COUNT)=" ",COUNT=COUNT+1
|
---|
167 | S ARRAY(COUNT)=" ",COUNT=COUNT+1
|
---|
168 | S ARRAY="Service "_$P(^GMR(123.5,X,0),"^",1)_" is already a sub-service of:"
|
---|
169 | D PARSE(.ARRAY)
|
---|
170 | S PARENT=0
|
---|
171 | F S PARENT=$O(^GMR(123.5,"APC",X,PARENT)) Q:'+PARENT S ARRAY=" "_$P(^GMR(123.5,PARENT,0),"^",1) D PARSE(.ARRAY)
|
---|
172 | S ARRAY(COUNT)=" ",COUNT=COUNT+1
|
---|
173 | S ARRAY(COUNT)="A consult service appearing as part of the Consult service",COUNT=COUNT+1
|
---|
174 | S ARRAY(COUNT)="hierarchy in more than one place (i.e. a sub-service of more",COUNT=COUNT+1
|
---|
175 | S ARRAY(COUNT)="than one parent) has the potential to skew the results of the",COUNT=COUNT+1
|
---|
176 | S ARRAY(COUNT)="Consult Performance Monitor Report [GMRC RPT PERF MONITOR].",COUNT=COUNT+1
|
---|
177 | S ARRAY(COUNT)=" ",COUNT=COUNT+1
|
---|
178 | D EN^DDIOL(.ARRAY)
|
---|
179 | I '$G(DIQUIET) D
|
---|
180 | . S GMRCON=0
|
---|
181 | . D YESNO(X,Y)
|
---|
182 | . I 'GMRCON K X
|
---|
183 | . D EN^DDIOL(" ")
|
---|
184 | Q
|
---|
185 | PARSE(ARRAY) ;TAKE ARRAY VALUE AND PARSE INTO PIECES SHORTER THAN 70 CHARACTERS
|
---|
186 | N ARRAYSP,GMRCNT
|
---|
187 | PARSE1 I $L(ARRAY)'>70 S ARRAY(COUNT)=ARRAY,COUNT=COUNT+1 Q
|
---|
188 | F GMRCNT=70:-1 S ARRAYSP=$E(ARRAY,GMRCNT) I ARRAYSP=" " Q
|
---|
189 | S ARRAY(COUNT)=$E(ARRAY,1,GMRCNT-1),COUNT=COUNT+1
|
---|
190 | S ARRAY=$E(ARRAY,GMRCNT+1,9999)
|
---|
191 | G:ARRAY'="" PARSE1
|
---|
192 | Q
|
---|
193 | YESNO(X,Y) ;YES/NO QUESTION/RESPONSE
|
---|
194 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT
|
---|
195 | S DIR(0)="YA"
|
---|
196 | S DIR("A")="Do you wish to continue adding "_$P(^GMR(123.5,X,0),"^",1)_" as a new sub-service? "
|
---|
197 | S DIR("B")="NO"
|
---|
198 | S DIR("T")=300
|
---|
199 | S DIR("?",1)="Enter ""YES"" to add service as a sub-service."
|
---|
200 | S DIR("?")="Enter ""NO"" to NOT add the service as a sub-service."
|
---|
201 | D ^DIR Q:($G(DTOUT))!($G(DUOUT))!($G(DIROUT))
|
---|
202 | I Y=1 S GMRCON=1
|
---|
203 | Q
|
---|