1 | ORQQPL2 ; ALB/PDR/REV - RPCs FOR CPRS GUI IMPLEMENTATION ;09:49 AM 29 Feb 2000
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10**;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | ; -------------- GET HISTORY FOR DETAIL DISPLAY ----------------------
|
---|
5 | ;
|
---|
6 | HIST(RETURN,GMPIFN) ; GET AUDIT HISTORY
|
---|
7 | ; taken from EN^GMPLDISP
|
---|
8 | N IDT,AIFN,S,ORDT,TXT,I,L,GMPDT,LCNT
|
---|
9 | S LCNT=0
|
---|
10 | I '$D(^GMPL(125.8,"B",GMPIFN)) D Q ;BAIL OUT - NO CHANGES
|
---|
11 | . S RETURN(0)="NONE"
|
---|
12 | ; get change history
|
---|
13 | S IDT=""
|
---|
14 | F S IDT=$O(^GMPL(125.8,"AD",GMPIFN,IDT)) Q:IDT'>0 D
|
---|
15 | . S AIFN=""
|
---|
16 | . F S AIFN=$O(^GMPL(125.8,"AD",GMPIFN,IDT,AIFN)) Q:AIFN'>0 D
|
---|
17 | .. D DT^GMPLHIST
|
---|
18 | ; Transfer data and clean up for return to GUI
|
---|
19 | S S="",I=0,TXT=""
|
---|
20 | F S S=$O(GMPDT(S)) Q:S="" D
|
---|
21 | . S L=GMPDT(S,0)
|
---|
22 | . I $L(L,": ")>1 D Q ; does line begin with date? (hope ": " can't be part of text)
|
---|
23 | .. D FLUSH(.RETURN,.I)
|
---|
24 | .. S ORDT=$P(L,": ") ; get new date
|
---|
25 | .. S TXT=$$STRIP($P(L,": ",2,999)) ; start new text string
|
---|
26 | . S TXT=TXT_" "_$$STRIP(L) ; line does not begin with date, so add to existing text line
|
---|
27 | I '$D(RETURN(0)) S RETURN(0)=I
|
---|
28 | D FLUSH(.RETURN,.I)
|
---|
29 | Q
|
---|
30 | ;
|
---|
31 | FLUSH(RETURN,I) ; FLUSH FORMATTED AUDIT STRING
|
---|
32 | I I'=0 D ; do we have a text string built?
|
---|
33 | . S RETURN(I)=$$STRIP(ORDT)_U_TXT ; return date and text
|
---|
34 | S I=I+1
|
---|
35 | Q
|
---|
36 | ;
|
---|
37 | STRIP(VAL) ; STRIP LEADING SPACES FROM VALUES
|
---|
38 | N J
|
---|
39 | F J=1:1 Q:$E(VAL,J)'=" "
|
---|
40 | Q $E(VAL,J,9999)
|
---|
41 | ;
|
---|
42 | ; ------------------- DELETE A PROBLEM FROM LIST ---------------------
|
---|
43 | ;
|
---|
44 | DELETE(RESULT,GMPIFN,GMPROV,GMPVAMC,REASON) ; DELETE A PROBLEM
|
---|
45 | ; From GMPL1 - silent version
|
---|
46 | N CHNGE
|
---|
47 | I REASON'="" D
|
---|
48 | . S GMPFLD(10,"NEW",1)=REASON
|
---|
49 | . D NEWNOTE^GMPLSAVE
|
---|
50 | S CHNGE=GMPIFN_"^1.02^"_$$HTFM^XLFDT($H)
|
---|
51 | S CHNGE=CHNGE_U_DUZ_"^P^H^Deleted^"_+$G(GMPROV)
|
---|
52 | S $P(^AUPNPROB(GMPIFN,1),U,2)="H"
|
---|
53 | S RESULT=1
|
---|
54 | D AUDIT^GMPLX(CHNGE,"")
|
---|
55 | D DTMOD^GMPLX(GMPIFN)
|
---|
56 | K GMPFLD
|
---|
57 | Q
|
---|
58 | ; ------------------ REPLACE REMOVED PROBLEM ----------------------
|
---|
59 | ;
|
---|
60 | REPLACE(RETURN,DA) ; -- replace problem on patient's list
|
---|
61 | ; taken from REPLACE^GMPLRPTR
|
---|
62 | N CHNGE,DIE,DR
|
---|
63 | I $P($G(^AUPNPROB(DA,1)),U,2)'="H" D Q ; BAIL OUT - INVALID RECORD
|
---|
64 | . S RETURN=0
|
---|
65 | S DR="1.02////P"
|
---|
66 | S DIE="^AUPNPROB("
|
---|
67 | D ^DIE
|
---|
68 | S CHNGE=DA_"^1.02^"_$$HTFM^XLFDT($H)_U_DUZ_"^H^P^Replaced^"_DUZ
|
---|
69 | D AUDIT^GMPLX(CHNGE,"")
|
---|
70 | D DTMOD^GMPLX(DA)
|
---|
71 | S RETURN=1
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | ; ------------------- VERIFY A PROBLEM ------------------------
|
---|
75 | ;
|
---|
76 | VERIFY(RETURN,GMPIFN) ; -- verify a transcribed problem
|
---|
77 | ; RETURN: ;(consistent with UPDATE function)
|
---|
78 | ; SUCCESS:
|
---|
79 | ; RETURN>0, RETURN(0)=""
|
---|
80 | ; FAILURE:
|
---|
81 | ; RETURN<0, RETURN(0)=verbose error message
|
---|
82 | N NOW,CHNGE
|
---|
83 | S NOW=$$HTFM^XLFDT($H)
|
---|
84 | I $P(^AUPNPROB(GMPIFN,1),U,2)'="T" D Q ; BAIL OUT - ALREADY VERIFIED
|
---|
85 | . S RETURN=-1
|
---|
86 | . S RETURN(0)="Problem Already Verified"
|
---|
87 | L +^AUPNPROB(GMPIFN,0):10
|
---|
88 | I '$T D Q ; BAIL OUT - NO LOCK
|
---|
89 | . S RETURN=-1
|
---|
90 | . S RETURN(0)="Record in use. Try again in a few moments"
|
---|
91 | S $P(^AUPNPROB(GMPIFN,1),U,2)="P"
|
---|
92 | S CHNGE=GMPIFN_"^1.02^"_NOW_U_DUZ_"^T^P^Verified^"_DUZ
|
---|
93 | D AUDIT^GMPLX(CHNGE,"")
|
---|
94 | D DTMOD^GMPLX(GMPIFN)
|
---|
95 | L -^AUPNPROB(GMPIFN,0)
|
---|
96 | S RETURN=1
|
---|
97 | S RETURN(0)=""
|
---|
98 | Q
|
---|
99 | INACT(RETURN,GMPIFN) ; -- inactivate a problem
|
---|
100 | ; RETURN: ;(consistent with UPDATE function)
|
---|
101 | ; SUCCESS:
|
---|
102 | ; RETURN>0, RETURN(0)=""
|
---|
103 | ; FAILURE:
|
---|
104 | ; RETURN<0, RETURN(0)=verbose error message
|
---|
105 | N NOW,CHNGE
|
---|
106 | S NOW=$$HTFM^XLFDT($H)
|
---|
107 | I $P(^AUPNPROB(GMPIFN,0),U,12)'="A" D Q ; BAIL OUT - ALREADY INACTIVE
|
---|
108 | . S RETURN=-1
|
---|
109 | . S RETURN(0)="Problem Already Inactive"
|
---|
110 | L +^AUPNPROB(GMPIFN,0):10
|
---|
111 | I '$T D Q ; BAIL OUT - NO LOCK
|
---|
112 | . S RETURN=-1
|
---|
113 | . S RETURN(0)="Record in use. Try again in a few moments"
|
---|
114 | S $P(^AUPNPROB(GMPIFN,0),U,12)="I"
|
---|
115 | S CHNGE=GMPIFN_"^.12^"_NOW_U_DUZ_"^A^I^Inactivated^"_DUZ
|
---|
116 | D AUDIT^GMPLX(CHNGE,"")
|
---|
117 | D DTMOD^GMPLX(GMPIFN)
|
---|
118 | L -^AUPNPROB(GMPIFN,0)
|
---|
119 | S RETURN=1
|
---|
120 | S RETURN(0)=""
|
---|
121 | Q
|
---|
122 | OLDCOMM(ORY,PIFN) ; Return comments for a problem - SINGLE DIVISION!
|
---|
123 | ;N FAC,NIFN,NOTE,NOTECNT
|
---|
124 | ;S NOTECNT=0
|
---|
125 | ;S FAC=$O(^AUPNPROB(PIFN,11,"B",+$G(DUZ(2)),0)) Q:'FAC
|
---|
126 | ;F NIFN=0:0 S NIFN=$O(^AUPNPROB(PIFN,11,FAC,11,"B",NIFN)) Q:NIFN'>0 D
|
---|
127 | ;. Q:$P($G(^AUPNPROB(PIFN,11,FAC,11,NIFN,0)),U,4)'="A"
|
---|
128 | ;. S NOTE=$P($G(^AUPNPROB(PIFN,11,FAC,11,NIFN,0)),U,3)
|
---|
129 | ;. S NOTECNT=NOTECNT+1,ORY(NOTECNT)=NOTE
|
---|
130 | Q
|
---|
131 | GETCOMM(ORY,PIFN) ; Return comments for a problem - MULTI-DIVISIONAL
|
---|
132 | N FAC,NIFN,NOTE,NOTECNT
|
---|
133 | S NOTECNT=0,FAC=0
|
---|
134 | F S FAC=$O(^AUPNPROB(PIFN,11,FAC)) Q:+FAC'>0 D
|
---|
135 | . S NIFN=0
|
---|
136 | . F S NIFN=$O(^AUPNPROB(PIFN,11,FAC,11,NIFN)) Q:NIFN'>0 D
|
---|
137 | . . Q:$P($G(^AUPNPROB(PIFN,11,FAC,11,NIFN,0)),U,4)'="A"
|
---|
138 | . . S NOTE=$P($G(^AUPNPROB(PIFN,11,FAC,11,NIFN,0)),U,3)
|
---|
139 | . . S NOTECNT=NOTECNT+1,ORY(NOTECNT)=NOTE
|
---|
140 | Q
|
---|
141 | SAVEVIEW(Y,GMPLVIEW) ; -- save new view in File #200/Field #125
|
---|
142 | N TMP
|
---|
143 | Q:'$D(GMPLVIEW)
|
---|
144 | S TMP=$P($G(^VA(200,DUZ,125)),U,2,999)
|
---|
145 | S ^VA(200,DUZ,125)=$P(GMPLVIEW,U,1)_U_TMP
|
---|
146 | S TMP=$$GET^XPAR(DUZ_";VA(200,","ORCH CONTEXT PROBLEMS",1)
|
---|
147 | I TMP'="" D Q
|
---|
148 | . D CHG^XPAR(DUZ_";VA(200,","ORCH CONTEXT PROBLEMS",1,$P(GMPLVIEW,U,2))
|
---|
149 | D ADD^XPAR(DUZ_";VA(200,","ORCH CONTEXT PROBLEMS",1,$P(GMPLVIEW,U,2))
|
---|
150 | Q
|
---|
151 | ;
|
---|