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