| 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 | 
|---|