1 | ORWSR ;SLC/REV-Surgery RPCs ;08/27/03
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109,116,132,148,160,190,274**;Dec 17, 1997;Build 20
|
---|
3 | ;
|
---|
4 | SHOWSURG(ORY) ;is Surgery ES patch installed?
|
---|
5 | S ORY=$$PATCH^XPDUTL("SR*3.0*100")
|
---|
6 | Q:+ORY=0
|
---|
7 | S ORY=$$GET^XPAR("ALL","ORWOR SHOW SURGERY TAB",1)
|
---|
8 | Q
|
---|
9 | LIST(ORY,ORDFN,ORBDT,OREDT,ORCTXT,ORMAX,ORFHIE) ;RETURN LIST OF SURGERY CASES FOR A PATIENT
|
---|
10 | Q:'$$PATCH^XPDUTL("SR*3.0*100")
|
---|
11 | N I,J,X,SHOWADD,SHOWDOCS
|
---|
12 | S ORY=$NA(^TMP("ORLIST",$J))
|
---|
13 | Q:'+ORDFN
|
---|
14 | S:'$G(ORCTXT) ORCTXT=1
|
---|
15 | S:'$G(ORBDT) ORBDT=""
|
---|
16 | S:'$G(OREDT) OREDT=""
|
---|
17 | S:'$G(ORMAX) ORMAX=""
|
---|
18 | S (SHOWDOCS,SHOWADD)=1
|
---|
19 | D LIST^SROESTV(.ORY,ORDFN,ORBDT,OREDT,ORMAX,SHOWDOCS)
|
---|
20 | S I=0
|
---|
21 | F S I=$O(@ORY@(I)) Q:+I=0 D
|
---|
22 | . S X=@ORY@(I),J=0
|
---|
23 | . S $P(X,U,6)=$$NON^SROESTV(+X)
|
---|
24 | . S $P(X,U,14)=ORCTXT
|
---|
25 | . S $P(X,U,13)=$P(X,U,5),$P(X,U,5)=""
|
---|
26 | . S @ORY@(I)=X
|
---|
27 | . F S J=$O(@ORY@(I,J)) Q:+J=0 D
|
---|
28 | . . S X=@ORY@(I,J)
|
---|
29 | . . S:(($P(X,U,14)=ORCTXT)!($P(X,U,14)="")) $P(X,U,14)=+$P(X,U,10)
|
---|
30 | . . S @ORY@(I,J)=X
|
---|
31 | Q
|
---|
32 | CASELIST(ORY,ORDFN) ; retrieve list of cases, but no documents
|
---|
33 | Q:'$$PATCH^XPDUTL("SR*3.0*100")
|
---|
34 | Q:'+ORDFN
|
---|
35 | N ORBDT,OREDT,ORMAX,I,SHOWDOCS S (ORBDT,OREDT,ORMAX)="",SHOWDOCS=0
|
---|
36 | S ORY=$NA(^TMP("ORLIST",$J))
|
---|
37 | D LIST^SROESTV(.ORY,ORDFN,ORBDT,OREDT,ORMAX,SHOWDOCS)
|
---|
38 | S I=0
|
---|
39 | F S I=$O(@ORY@(I)) Q:+I=0 D
|
---|
40 | . S $P(@ORY@(I),U,4)=$P($P(@ORY@(I),U,4),";",2)
|
---|
41 | Q
|
---|
42 | GTSURCTX(Y,ORUSER) ; Returns current Notes view context for user
|
---|
43 | N OCCLIM,SHOWSUB
|
---|
44 | S Y=$$GET^XPAR("ALL","ORCH CONTEXT SURGERY",1)
|
---|
45 | Q
|
---|
46 | SVSURCTX(Y,ORCTXT) ; Save new Notes view preferences for user
|
---|
47 | N TMP
|
---|
48 | S TMP=$$GET^XPAR(DUZ_";VA(200,","ORCH CONTEXT SURGERY",1)
|
---|
49 | I TMP'="" D Q
|
---|
50 | . D CHG^XPAR(DUZ_";VA(200,","ORCH CONTEXT SURGERY",1,ORCTXT)
|
---|
51 | D ADD^XPAR(DUZ_";VA(200,","ORCH CONTEXT SURGERY",1,ORCTXT)
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | ONECASE(ORY,ORTIUDA) ;Given a TIU document, return the case and related documents
|
---|
55 | Q:'$$PATCH^XPDUTL("SR*3.0*100")!(+$G(ORTIUDA)=0)
|
---|
56 | N ORCASE
|
---|
57 | D GET1405^TIUSRVR(.ORCASE,ORTIUDA)
|
---|
58 | I +ORCASE'>0 S ORY=ORCASE Q
|
---|
59 | D GETONE(.ORY,+ORCASE)
|
---|
60 | Q
|
---|
61 | GETONE(ORY,ORCASE) ; called by ONECASE and RPTTEXT
|
---|
62 | ;Q:'$$PATCH^XPDUTL("SR*3.0*100")
|
---|
63 | N ORTMP,J,SHOWADD,ORCTXT
|
---|
64 | S SHOWADD=1,ORCTXT=1
|
---|
65 | D ONE^SROESTV("ORY",+ORCASE)
|
---|
66 | S X=ORY(+ORCASE),J=0
|
---|
67 | S $P(X,U,6)=$$NON^SROESTV(+X)
|
---|
68 | S $P(X,U,14)=ORCTXT
|
---|
69 | S $P(X,U,13)=$P(X,U,5),$P(X,U,5)=""
|
---|
70 | S ORTMP(0)=X
|
---|
71 | F S J=$O(ORY(+ORCASE,J)) Q:+J=0 D
|
---|
72 | . S X=ORY(+ORCASE,J)
|
---|
73 | . S:(($P(X,U,14)=ORCTXT)!($P(X,U,14)="")) $P(X,U,14)=+$P(X,U,10)
|
---|
74 | . S ORTMP(J)=X
|
---|
75 | K ORY M ORY=ORTMP
|
---|
76 | Q
|
---|
77 | SHOWOPTP(ORY,ORCASE) ;Should OpTop be displayed on signature?
|
---|
78 | I '$$PATCH^XPDUTL("SR*3.0*100") S ORY=0 Q
|
---|
79 | S ORY=$$OPTOP^SROESTV(+ORCASE)
|
---|
80 | Q
|
---|
81 | ISNONOR(ORY,ORCASE) ;Is the procedure a non-OR procedure?
|
---|
82 | I '$$PATCH^XPDUTL("SR*3.0*100") S ORY=0 Q
|
---|
83 | S ORY=$$NON^SROESTV(+ORCASE)
|
---|
84 | Q
|
---|
85 | RPTLIST(ORY,ORDFN) ;Return list of surgery reports for reports tab
|
---|
86 | ;I '$$PATCH^XPDUTL("SR*3.0*100") D NOTYET(.ORY) Q
|
---|
87 | Q:'$$PATCH^XPDUTL("SR*3.0*100")
|
---|
88 | Q:'+ORDFN
|
---|
89 | N ORBDT,OREDT,ORMAX,I,SHOWDOCS,X,SITE
|
---|
90 | S (ORBDT,OREDT,ORMAX)="",SHOWDOCS=0
|
---|
91 | S ORY=$NA(^TMP("ORLIST",$J))
|
---|
92 | S SITE=$$SITE^VASITE,SITE=$P(SITE,"^",2)_";"_$P(SITE,"^",3)
|
---|
93 | D LIST^SROESTV(.ORY,ORDFN,ORBDT,OREDT,ORMAX,SHOWDOCS)
|
---|
94 | S I=0
|
---|
95 | F S I=$O(@ORY@(I)) Q:+I=0 D
|
---|
96 | . S X=$P(@ORY@(I),U,2),$P(@ORY@(I),U,2)=$P(@ORY@(I),U,3),$P(@ORY@(I),U,3)=X
|
---|
97 | . S $P(@ORY@(I),U,4)=$P($P(@ORY@(I),U,4),";",2)
|
---|
98 | . S GMN=$P(@ORY@(I),U)
|
---|
99 | . S $P(@ORY@(I),U,6)="LAB WORK-"_$S($O(^SRF(GMN,9,0)):"Yes",1:"No") ; Lab work
|
---|
100 | . D STATUS^GMTSROB S:'$D(STATUS) STATUS="UNKNOWN"
|
---|
101 | . S $P(@ORY@(I),U,7)="STATUS-"_STATUS ; op status
|
---|
102 | . S Z=$P(^SRF(GMN,0),U,4) I Z>0 S Y=Z,C=$P(^DD(130,.04,0),U,2) D Y^DIQ S SPEC=Y K Y
|
---|
103 | . S $P(@ORY@(I),U,8)="SPEC-"_$G(SPEC) ; Surgical specialty
|
---|
104 | . S Z=$P($G(^SRF(GMN,31)),U,6) S:Z>0 DCTDTM=$$DATE^ORDVU(Z)
|
---|
105 | . S $P(@ORY@(I),U,9)="DICT-"_$G(DCTDTM) ; Dictation Time
|
---|
106 | . S Z=$P($G(^SRF(GMN,31)),U,7) S:Z>0 TRSDTM=$$DATE^ORDVU(Z)
|
---|
107 | . S $P(@ORY@(I),U,10)="TRANS-"_$G(TRSDTM) ; Transcription Time
|
---|
108 | . S @ORY@(I)=SITE_U_@ORY@(I)
|
---|
109 | Q
|
---|
110 | RPTTEXT(ROOT,DFN,ORID,ALPHA,OMEGA,DTRANGE,REMOTE,ORMAX,ORFHIE) ; -- return surgery report
|
---|
111 | ;I '$$PATCH^XPDUTL("SR*3.0*100") D NOTYET(.ROOT) Q
|
---|
112 | Q:'$$PATCH^XPDUTL("SR*3.0*100")
|
---|
113 | Q:+ORID=0
|
---|
114 | N X,ORI,J,ORDOC,ORCASE,CNT,LINES,ORSEP,ORTMP
|
---|
115 | S (X,ORI)="",$P(ORSEP,"=",74)=""
|
---|
116 | S ROOT=$NA(^TMP("ORXPND",$J))
|
---|
117 | K @ROOT
|
---|
118 | S CNT=0
|
---|
119 | D GETONE(.ORCASE,ORID)
|
---|
120 | S (ORI,J)=""
|
---|
121 | F S ORI=$O(ORCASE(ORI)) Q:ORI="" D
|
---|
122 | . S ORTMP(ORID,ORI)=ORCASE(ORI)
|
---|
123 | K ORCASE M ORCASE=ORTMP
|
---|
124 | S ORI=""
|
---|
125 | F S ORI=$O(ORCASE(ORID,ORI)) Q:ORI="" D
|
---|
126 | . Q:'$L($P(ORCASE(ORID,ORI),U,10))
|
---|
127 | . Q:$E($P(ORCASE(ORID,ORI),U,2),1,8)="Addendum"
|
---|
128 | . D TGET^TIUSRVR1(.ORDOC,+ORCASE(ORID,ORI),"VIEW")
|
---|
129 | . S J="",LINES=0
|
---|
130 | . F S J=$O(@ORDOC@(J)) Q:J="" D
|
---|
131 | . . I $D(@ORDOC@(J))=10 D
|
---|
132 | . . . S @ROOT@(J+CNT,0)=@ORDOC@(J,0),LINES=LINES+1
|
---|
133 | . . E S @ROOT@(J+CNT,0)=@ORDOC@(J),LINES=LINES+1
|
---|
134 | . K ORDOC,ORY(ORID) S CNT=CNT+LINES+1
|
---|
135 | . S @ROOT@(CNT,0)=ORSEP,CNT=CNT+1
|
---|
136 | I CNT=0 S @ROOT@(CNT,0)="No reports are available for this case."
|
---|
137 | Q
|
---|
138 | NOTYET(ROOT) ; -- standard not available display text
|
---|
139 | D SETITEM(.ROOT,"Report not available at this time.")
|
---|
140 | Q
|
---|
141 | SETITEM(ROOT,X) ; -- set item in list
|
---|
142 | S @ROOT@($O(@ROOT@(9999),-1)+1)=X
|
---|
143 | Q
|
---|