[613] | 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
|
---|