1 | GMRCUTL1 ;SLC/DCM,JFR,MA - General Utilities ;10/15/02 11:49
|
---|
2 | ;;3.0;CONSULT/REQUEST TRACKING;**1,4,12,15,21,17,28**;DEC 27, 1997
|
---|
3 | ;
|
---|
4 | ; This routine invokes IA #2876,3121
|
---|
5 | ; Patch #21 added variable GMRCAUDT and moved line tag PRNTAUDT
|
---|
6 | ; to GMRCP5A.
|
---|
7 | ;
|
---|
8 | ACTM ;;Set correct variables to complete, discontinue, etc. a consult
|
---|
9 | K GMRCQUT
|
---|
10 | S:'+$G(GMRCA) GMRCA=$O(^GMR(123.1,"B",GMRCACTM,""))
|
---|
11 | S GMRCACTM=$P($G(^GMR(123.1,+GMRCA,0)),"^")
|
---|
12 | S ORSTS=$S(GMRCA:$P(^GMR(123.1,GMRCA,0),"^",2),1:0)
|
---|
13 | I 'GMRCA S GMRCQUT=1
|
---|
14 | Q
|
---|
15 | PRNT(SRVCIFN,GMRCO) ;print form 513 to a printer when new consult is entered
|
---|
16 | N ORVP,GMRCDEV,GMRCQUED,IOP,%ZIS,POP,ZTDTH,ZTDESC,ZTIO,ZTRTN,ZTSK,GMRCAUDT
|
---|
17 | I '$G(SRVCIFN) S SRVCIFN=+$P(^GMR(123,GMRCO,0),U,5)
|
---|
18 | Q:'$D(^GMR(123.5,SRVCIFN,123)) Q:'$P(^GMR(123.5,SRVCIFN,123),"^",9)
|
---|
19 | S IOP="`"_$P(^GMR(123.5,SRVCIFN,123),"^",9)
|
---|
20 | S %ZIS="N" D ^%ZIS I POP S %ZIS=0 D HOME^%ZIS Q
|
---|
21 | S GMRCDEV=ION,GMRCQUED=1,GMRCAUDT=1
|
---|
22 | S ZTRTN="PRNT^GMRCP5A("_(+GMRCO)_","_(+$G(TIUFLG))_",1,"""_$G(GMRCCPY,"W")_""",0,"_(GMRCAUDT)_")"
|
---|
23 | S ZTDESC="CONSULT/REQUEST PACKAGE PRINT FORM 513 FOR NEW CONSULT"
|
---|
24 | S ZTIO=GMRCDEV,ZTDTH=$H
|
---|
25 | D ^%ZTLOAD
|
---|
26 | S %ZIS=0 D HOME^%ZIS
|
---|
27 | K GMRCQUED,GMRCDEV1
|
---|
28 | Q
|
---|
29 | END K GMRCDEV,GMRCDEV1,GMRCOREC,GMRCFMT
|
---|
30 | Q
|
---|
31 | PROVDX(OI) ;return PROV DX prompting info from 123.5
|
---|
32 | ; Input:
|
---|
33 | ; OI = ref to file 123.5("#;99CON") or file 123.3 (#;99PRC)
|
---|
34 | ;
|
---|
35 | ; Returns: string A^B
|
---|
36 | ; A = O (optional), R (required) or S (suppress)
|
---|
37 | ; B = F (free-text) or L (lexicon)
|
---|
38 | ;
|
---|
39 | N GMRCFIL
|
---|
40 | Q:'+$G(OI) "^"
|
---|
41 | S GMRCFIL=$S(OI["99PRC":123.3,1:123.5)
|
---|
42 | Q:'$D(^GMR(GMRCFIL,+OI)) "^"
|
---|
43 | N STRING,NODE
|
---|
44 | I GMRCFIL=123.3 S NODE=$P(^GMR(123.3,+OI,0),U,7,8)
|
---|
45 | I GMRCFIL=123.5 S NODE=$P($G(^GMR(123.5,+OI,1)),U,1,2)
|
---|
46 | I NODE="" Q "O^F" ;values not set
|
---|
47 | S $P(STRING,U)=$S($L($P(NODE,U)):$P(NODE,U),1:"O")
|
---|
48 | S $P(STRING,U,2)=$S($L($P(NODE,U,2)):$P(NODE,U,2),1:"F")
|
---|
49 | Q STRING
|
---|
50 | ORIFN(GMRC123) ;return ORIFN associated with give record in ^GMR(123,
|
---|
51 | ; GMRC123 = ien of consult record in file 123
|
---|
52 | Q $P($G(^GMR(123,GMRC123,0)),U,3)
|
---|
53 | GETDT(PROMPT,DEFAULT) ;prompt and return FM date
|
---|
54 | ;Input:
|
---|
55 | ; PROMPT = text of prompt - DIR("A") (optional)
|
---|
56 | ; DEFAULT = default date to prompt - DIR("B") (optional)
|
---|
57 | ;
|
---|
58 | ;Output:
|
---|
59 | ; FM date/time if successfully answered, "^" if exit or timeout
|
---|
60 | N DIR,DIRUT,DIROUT,DTOUT,DUOUT,X,Y
|
---|
61 | S DIR(0)="DA^::EPT"
|
---|
62 | S DIR("?")="Enter the date/time the activity took place."
|
---|
63 | S DIR("A")=$S($D(PROMPT):PROMPT_" ",1:"Actual Date/Time of Activity: ")
|
---|
64 | S DIR("B")=$S($D(DEFAULT):DEFAULT,1:"NOW")
|
---|
65 | D ^DIR
|
---|
66 | I $D(DUOUT)!($D(DTOUT)) S Y="^"
|
---|
67 | Q Y
|
---|
68 | ;
|
---|
69 | DCPRNT(IEN,USER) ;reprint SF-513 on DC?
|
---|
70 | N SERV,REPR
|
---|
71 | S SERV=$P(^GMR(123,IEN,0),U,5) I 'SERV Q 0
|
---|
72 | S REPR=$P($G(^GMR(123.5,SERV,1)),U,5)
|
---|
73 | I 'REPR Q 1
|
---|
74 | I REPR=2 Q 0
|
---|
75 | I REPR=1,'$$VALID^GMRCAU(SERV,IEN,USER) Q 1
|
---|
76 | Q 0
|
---|
77 | ;
|
---|
78 | PREREQ(GMRCARR,GMRCSRV,GMRCDFN,UNRESOLV) ; return service pre-requisite
|
---|
79 | ; pre-requisite stored in 125 nodes in file 123.5 or 123.3
|
---|
80 | ; GMRCARR = array to return containing pre-requisite
|
---|
81 | ; GMRCSRV = ref to file 123.5 (ien;99CON) or 123.3 (ien;99PRC)
|
---|
82 | ; GMRCDFN = patient identifier if to return resolved
|
---|
83 | ; UNRESOLV = 1 or 0 ; if UNRESOLV=1 GMRCARR will be returned unresolved
|
---|
84 | Q:'+GMRCSRV
|
---|
85 | N GMRCFIL
|
---|
86 | S GMRCFIL=$S(GMRCSRV["99PRC":123.3,1:123.5)
|
---|
87 | Q:'$D(^GMR(GMRCFIL,+GMRCSRV,125))
|
---|
88 | I '$D(GMRCDFN)!($G(UNRESOLV)) D Q
|
---|
89 | . M @GMRCARR=^GMR(GMRCFIL,+GMRCSRV,125)
|
---|
90 | D BLRPLT^TIUSRVD(,,GMRCDFN,,$NA(^GMR(GMRCFIL,+GMRCSRV,125)))
|
---|
91 | I $D(^TMP("TIUBOIL",$J)) M @GMRCARR=^TMP("TIUBOIL",$J)
|
---|
92 | K ^TMP("TIUBOIL",$J)
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | LOCKREC(GMRCDA) ;attempt to lock a consult record using order or record
|
---|
96 | ; Input:
|
---|
97 | ; GMRCDA = ien of consult record from file 123
|
---|
98 | ;
|
---|
99 | ; Output:
|
---|
100 | ; 1 or 0^reason can't be locked
|
---|
101 | ; 1 = successfully locked
|
---|
102 | ; 0 = couldn't be locked
|
---|
103 | N GMRCORD,GMRCMSG
|
---|
104 | S GMRCORD=$P($G(^GMR(123,GMRCDA,0)),U,3)
|
---|
105 | I $G(GMRCORD) D ;an order associated
|
---|
106 | . S GMRCMSG=$$LOCK1^ORX2(GMRCORD)
|
---|
107 | . ; GMRCMSG=1 if locked or 0 if couldn't be locked
|
---|
108 | I $L($G(GMRCMSG)) Q GMRCMSG
|
---|
109 | ; no order = Inter-facility Consult so lock consult record
|
---|
110 | L +^GMR(123,GMRCDA):5
|
---|
111 | I '$T Q "0^Another user is editing this record" ; couldn't lock it
|
---|
112 | Q 1
|
---|
113 | ;
|
---|
114 | UNLKREC(GMRCDA) ;unlock a consult record
|
---|
115 | ; Input:
|
---|
116 | ; GMRCDA = ien of consult record from file 123
|
---|
117 | ;
|
---|
118 | N GMRCORD
|
---|
119 | S GMRCORD=$P($G(^GMR(123,GMRCDA,0)),U,3)
|
---|
120 | I $G(GMRCORD) D Q
|
---|
121 | . D UNLK1^ORX2(GMRCORD)
|
---|
122 | L -^GMR(123,GMRCDA)
|
---|
123 | Q
|
---|