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