| 1 | ORCONSLT ;SLC/MKB-Consult actions ;6/7/01  07:28
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**4,26,48,68,100**;Dec 17, 1997
 | 
|---|
| 3 |  ; External References
 | 
|---|
| 4 |  ;    DBIA  2424  Call to APIs COMMENT, DC, EDTSUB, PS, and RC in
 | 
|---|
| 5 |  ;                routine GMRCA1
 | 
|---|
| 6 |  ;    DBIA  2425  Call to CPRS^GMRCACTM
 | 
|---|
| 7 |  ;    DBIA  2395  Call to FR^GMRCAFRD
 | 
|---|
| 8 |  ;    DBIA  2901  Call to SF^GMRCASF
 | 
|---|
| 9 |  ;    DBIA  3120  Call to DIS^GMRCDIS
 | 
|---|
| 10 |  ;    DBIA  2427  Call to APIs ADDEND and ENTER in routine GMRCTIU
 | 
|---|
| 11 |  ;    DBIA 10140  Call to EN^XQORM
 | 
|---|
| 12 | EN ; -- main entry point
 | 
|---|
| 13 |  N ORCMENU,XQORM,Y,ORFLG S VALMBCK=""
 | 
|---|
| 14 |  S ORNMBR=$P(XQORNOD(0),"=",2) D SELECT^ORCHART(ORNMBR)
 | 
|---|
| 15 |  S ORCMENU=$S($$SERVMENU:"SERVICE",1:"USER")
 | 
|---|
| 16 |  S XQORM=+$O(^ORD(101,"B","ORC CONSULT "_ORCMENU_" MENU",0))_";ORD(101,"
 | 
|---|
| 17 |  S XQORM(0)="1AD"_$S(ORCMENU="USER":"",1:"\"),XQORM("A")="Select action: ",XQORM("M")=+$P($G(^ORD(101,+XQORM,4)),U,2)
 | 
|---|
| 18 |  W ! D EN^XQORM G:Y'>0 ENQ
 | 
|---|
| 19 |  X:$D(^ORD(101,+$P(Y(1),U,2),20)) ^(20)
 | 
|---|
| 20 | ENQ D DESELECT^ORCHART(ORNMBR):'$G(OREBUILD)
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 | EN1(ORACT) ; -- Action ORACT on consults
 | 
|---|
| 24 |  N ORLK,ORI,NMBR,ORQUIT,ORIDX,ID,GMRCACT,X
 | 
|---|
| 25 |  S VALMBCK="" Q:'$L($G(ORACT))
 | 
|---|
| 26 |  I '$G(ORNMBR) S ORNMBR=$$ORDERS^ORCHART("") Q:'ORNMBR  N ORCMENU,ORFLG S ORCMENU=$S($$SERVMENU:"SERVICE",1:"USER")
 | 
|---|
| 27 |  D FREEZE^ORCMENU S VALMBCK="R"
 | 
|---|
| 28 |  F ORI=1:1:$L(ORNMBR,",") S NMBR=$P(ORNMBR,",",ORI) I NMBR,$L($T(@ORACT)) S ORIDX=$G(^TMP("OR",$J,ORTAB,"IDX",NMBR)) D  Q:$G(ORQUIT)
 | 
|---|
| 29 |  . S ID=$P(ORIDX,U),X=$P(ORIDX,U,4) Q:'ID  D SUBHDR^ORCACT(X)
 | 
|---|
| 30 |  . I (ORACT="CMMT")!(ORACT="PRNT")!(ORACT="EDITRES")!($G(ORFLG(ID))>1) D @ORACT Q
 | 
|---|
| 31 |  . W !,"Insufficient privilege for this service!" H 2
 | 
|---|
| 32 |  I $G(OREBUILD) D TAB^ORCHART(ORTAB,1) S $P(^TMP("OR",$J,"ORDERS",0),U)=""
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 | EDITRES ;Edit/Resubmit consult
 | 
|---|
| 36 |  D EDTSUB^GMRCA1(+ID) S OREBUILD=1
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | REC ; -- Receive consult
 | 
|---|
| 39 |  D RC^GMRCA1(+ID) S OREBUILD=1
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 | SCHED ; -- Schedule consult
 | 
|---|
| 43 |  D RC^GMRCA1(+ID,1) S OREBUILD=1
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | RR ; -- Reroute consult
 | 
|---|
| 47 |  D FR^GMRCAFRD(+ID) S OREBUILD=1
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | CMMT ; -- Add comment to consult order
 | 
|---|
| 51 |  D COMMENT^GMRCA1(+ID)
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 | COMP ; -- Complete consult
 | 
|---|
| 55 |  ;S GMRCACT="COMPLETE" D DC^GMRCA1(+ID)
 | 
|---|
| 56 |  D ENTER^GMRCTIU(+ID) S OREBUILD=1
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | REMRSLT ; -- Remove Medicine Results
 | 
|---|
| 60 |  I '$L($T(DIS^GMRCDIS)) W !!,"This action is not available yet." H 2 Q
 | 
|---|
| 61 |  D DIS^GMRCDIS(+ID) S OREBUILD=1
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | DC ; -- Discontinue consult
 | 
|---|
| 65 |  S GMRCACT="DISCONTINUE" D DC^GMRCA1(+ID,6) S OREBUILD=1
 | 
|---|
| 66 |  Q
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 | DENY ; -- Deny consult request
 | 
|---|
| 69 |  S GMRCACT="DENY" D DC^GMRCA1(+ID,19) S OREBUILD=1
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | FWD ; -- Forward consult request to other services
 | 
|---|
| 73 |  ;D RR^GMRCAFWD(+ID) S OREBUILD=1
 | 
|---|
| 74 |  W !!,"No longer available." H 1
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | PRNT ; -- Print consult form
 | 
|---|
| 78 |  D PS^GMRCA1(+ID)
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | SIGF ; -- Significant Findings
 | 
|---|
| 82 |  I '$L($T(SF^GMRCASF)) W !!,"This action is not available yet." H 2 Q
 | 
|---|
| 83 |  D SF^GMRCASF(+ID) S OREBUILD=1
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 | ADDEND ; -- Make an addendum to the consult result
 | 
|---|
| 87 |  D ADDEND^GMRCTIU(+ID) S OREBUILD=1
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | SERVMENU() ; -- Returns 1 or 0, if user is allowed service menu
 | 
|---|
| 91 |  N NMBR,I,X,Y S X="",Y=0
 | 
|---|
| 92 |  I '$L($T(CPRS^GMRCACTM)) G SMQ
 | 
|---|
| 93 |  F I=1:1:$L(ORNMBR,",") S NMBR=$P(ORNMBR,",",I) I NMBR S X=X_$S($L(X):";",1:"")_+$P($G(^TMP("OR",$J,ORTAB,"IDX",NMBR)),U)
 | 
|---|
| 94 |  G:'$L(X) SMQ D CPRS^GMRCACTM(X) ; builds ORFLG(GMRCIEN)=<menu>
 | 
|---|
| 95 |  S I=0 F  S I=$O(ORFLG(I)) Q:I'>0  I ORFLG(I)>1 S Y=1 Q
 | 
|---|
| 96 | SMQ Q Y
 | 
|---|