1 | ORCPROB ; SLC/MKB/REV - Problem List interface ;03/11/03 14:03
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**27,48,181**;Dec 17, 1997
|
---|
3 | ADD ; -- add new problem
|
---|
4 | N GMPLIST,ORPROV
|
---|
5 | D FULL^VALM1 S VALMBCK="R",ORPROV=$$PROVIDER Q:ORPROV="^"
|
---|
6 | S:'$G(ORL) ORL=$$LOCATION^ORCMENU1 Q:'ORL
|
---|
7 | D ADD^GMPLUTL2(+ORVP,+ORL,ORPROV)
|
---|
8 | D:$O(GMPLIST(0)) TAB^ORCHART(ORTAB,1)
|
---|
9 | Q
|
---|
10 | ;
|
---|
11 | EDIT ; -- edit problem
|
---|
12 | N GMPLIST,ORPROV,PIECE,NMBR,IFN S VALMBCK=""
|
---|
13 | I '$G(ORNMBR) S ORNMBR=$$ORDERS^ORCHART("edit") Q:'ORNMBR
|
---|
14 | D FULL^VALM1 S VALMBCK="R",ORPROV=$$PROVIDER Q:ORPROV="^"
|
---|
15 | S:'$G(ORL) ORL=$$LOCATION^ORCMENU1 Q:'ORL
|
---|
16 | F PIECE=1:1:$L(ORNMBR,",") S NMBR=$P(ORNMBR,",",PIECE) I NMBR D
|
---|
17 | . S IFN=+$G(^TMP("OR",$J,"CURRENT","IDX",NMBR))
|
---|
18 | . I 'IFN W !,"Problem #"_NMBR_" has been removed!",! H 1 Q
|
---|
19 | . K GMPLIST D EDIT^GMPLUTL2(+ORVP,+ORL,ORPROV,IFN)
|
---|
20 | . S:$D(GMPLIST) OREBUILD=1
|
---|
21 | Q
|
---|
22 | ;
|
---|
23 | INACT ; -- inactivate a problem
|
---|
24 | N ORPROV,ORPL,ORY,NUM,NMBR,PIECE,IFN,STS S VALMBCK=""
|
---|
25 | I '$G(ORNMBR) S ORNMBR=$$ORDERS^ORCHART("inactivate") Q:'ORNMBR
|
---|
26 | S NUM=$L(ORNMBR,",")-1 Q:'$$OK("inactivate",NUM)
|
---|
27 | S ORPROV=$$PROVIDER Q:ORPROV="^"
|
---|
28 | F PIECE=1:1:$L(ORNMBR,",") S NMBR=$P(ORNMBR,",",PIECE) I NMBR D
|
---|
29 | . S IFN=$G(^TMP("OR",$J,"CURRENT","IDX",NMBR)),STS=$P(IFN,U,4),IFN=+IFN
|
---|
30 | . I 'IFN W !,"Problem #"_NMBR_" has been removed!",! H 1 Q
|
---|
31 | . I STS="I" W !,"Problem #"_NMBR_" is already inactive!",! H 1 Q
|
---|
32 | . S ORPL("PROVIDER")=ORPROV,ORPL("STATUS")="I",ORPL("PROBLEM")=IFN
|
---|
33 | . W !,$$PROBTEXT^GMPLX(IFN)
|
---|
34 | . D UPDATE^GMPLUTL(.ORPL,.ORY) I ORY'>0 W !?5,"ERROR - "_ORY(0) H 1 Q
|
---|
35 | . W:$X>64 !?5 W " ... inactivated" H 1 S OREBUILD=1
|
---|
36 | . S $P(^TMP("OR",$J,"CURRENT","IDX",NMBR),U,4)="I"
|
---|
37 | Q
|
---|
38 | ;
|
---|
39 | CMMT ; -- comment problem
|
---|
40 | N DIR,X,Y,ORPL,ORY,NMBR,PIECE,QUIT,TEXT,ORPROV,CMMT S VALMBCK=""
|
---|
41 | I '$G(ORNMBR) S ORNMBR=$$ORDERS^ORCHART("") Q:'ORNMBR
|
---|
42 | D FULL^VALM1 S VALMBCK="R",ORPROV=$$PROVIDER Q:ORPROV="^"
|
---|
43 | S CMMT=+$P($P($G(^TMP("OR",$J,ORTAB,0)),U,3),";",4) ;show comments
|
---|
44 | F PIECE=1:1:$L(ORNMBR,",") S NMBR=$P(ORNMBR,",",PIECE) I NMBR D Q:$D(QUIT)
|
---|
45 | . S IFN=+$G(^TMP("OR",$J,"CURRENT","IDX",NMBR))
|
---|
46 | . I 'IFN W !,"Problem #"_NMBR_" has been removed!",! H 2 Q
|
---|
47 | . I '$$CODESTS^GMPLX(IFN,DT) D Q
|
---|
48 | . . W !,"Problem #"_NMBR_" has an inactive code. Please use the EDIT action instead",! H 2 S QUIT=1
|
---|
49 | . S DIR(0)="FAO^1:60",DIR("A")="COMMENT (<60 char): "
|
---|
50 | . S DIR("A",1)=$$UP^XLFSTR($$PROBTEXT^GMPLX(IFN))
|
---|
51 | . S DIR("?")="Enter up to 60 characters of additional text to be appended to this problem" S:$D(TEXT) DIR("B")=TEXT
|
---|
52 | . W ! D ^DIR I $D(DTOUT)!("^"[Y) S QUIT=1 Q
|
---|
53 | . S (TEXT,ORPL("COMMENT"))=Y,ORPL("PROBLEM")=IFN
|
---|
54 | . S ORPL("PROVIDER")=ORPROV
|
---|
55 | . D UPDATE^GMPLUTL(.ORPL,.ORY) S:CMMT&(ORY>0) OREBUILD=1
|
---|
56 | . W !?5,$S(ORY>0:"... 1 comment added",1:"ERROR - "_ORY(0)) H 1
|
---|
57 | Q
|
---|
58 | ;
|
---|
59 | REMOVE ; -- remove problem
|
---|
60 | N DIR,X,Y,IFN,TEXT,ORY,SUB,NUM,NMBR,PIECE,QUIT,ORPROV S VALMBCK=""
|
---|
61 | I '$G(ORNMBR) S ORNMBR=$$ORDERS^ORCHART("remove") Q:'ORNMBR
|
---|
62 | S NUM=$L(ORNMBR,",")-1 Q:'$$OK("remove",NUM)
|
---|
63 | D FULL^VALM1 S VALMBCK="R",ORPROV=$$PROVIDER Q:ORPROV="^"
|
---|
64 | F PIECE=1:1:$L(ORNMBR,",") S NMBR=$P(ORNMBR,",",PIECE) I NMBR D Q:$D(QUIT)
|
---|
65 | . S IFN=+$G(^TMP("OR",$J,"CURRENT","IDX",NMBR))
|
---|
66 | . I 'IFN W !,"Problem #"_NMBR_" has already been removed!",! H 1 Q
|
---|
67 | . S DIR(0)="FAO^1:60",DIR("A")="REASON FOR REMOVAL: "
|
---|
68 | . S DIR("A",1)=$$UP^XLFSTR($$PROBTEXT^GMPLX(IFN))
|
---|
69 | . S:$D(TEXT) DIR("B")=TEXT
|
---|
70 | . S DIR("?")="Enter up to 60 characters of additional text to be appended to this problem"
|
---|
71 | . W ! D ^DIR I $D(DTOUT)!($D(DUOUT)) S QUIT=1 Q
|
---|
72 | . S TEXT=Y D REMOVE^GMPLUTL2(IFN,ORPROV,TEXT,.ORY)
|
---|
73 | . I ORY'>0 W !?5,"ERROR - "_ORY(0) H 1 Q
|
---|
74 | . W !?5,"... removed" H 1 S OREBUILD=1
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | VERIFY ; -- verify problem
|
---|
78 | I '$P($$PARAM^GMPLUTL2,U,2) W !,"This action is not in use.",! H 1 Q
|
---|
79 | I '$D(^XUSEC("ORES",DUZ)),'$D(^XUSEC("ORELSE",DUZ)) W !,"You must have either the ORES or ORELSE key to verify these problems!",! H 1 Q
|
---|
80 | N NUM,PIECE,GMPIFN,OROLD S VALMBCK=""
|
---|
81 | I '$G(ORNMBR) S ORNMBR=$$ORDERS^ORCHART("verify") Q:'ORNMBR
|
---|
82 | S VALMBCK="",NUM=$L(ORNMBR,",")-1 Q:'$$OK("verify",NUM)
|
---|
83 | F PIECE=1:1:$L(ORNMBR,",") S NUM=$P(ORNMBR,",",PIECE) I NUM D
|
---|
84 | . S GMPIFN=+$G(^TMP("OR",$J,"CURRENT","IDX",NUM))
|
---|
85 | . I 'GMPIFN W !,"Problem #"_NUM_" has already been removed!",! H 1 Q
|
---|
86 | . S OROLD=$G(^AUPNPROB(GMPIFN,1)) D VERIFY^GMPL1
|
---|
87 | . S:OROLD'=$G(^AUPNPROB(GMPIFN,1)) OREBUILD=1
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | OK(ACTION,NUM) ; -- Are you sure?
|
---|
91 | N DIR,X,Y
|
---|
92 | S DIR(0)="YA",DIR("B")="NO",DIR("A")="Are you sure you want to "_ACTION_" "_$S(NUM>1:"these problems? ",1:"this problem? ")
|
---|
93 | S DIR("?")="Enter YES to continue with this action, or NO to cancel"
|
---|
94 | D ^DIR
|
---|
95 | Q +Y
|
---|
96 | ;
|
---|
97 | PROVIDER() ; --Return Responsible Provider
|
---|
98 | N X,Y,DIC
|
---|
99 | I '$D(^XUSEC("OREMAS",DUZ)),'$G(ORNP)!($G(ORNP)=DUZ) S Y=DUZ_U_$P($G(^VA(200,DUZ,0)),U) G PVQ
|
---|
100 | S DIC=200,DIC(0)="AEQM",DIC("A")="Requesting Clinician: "
|
---|
101 | S:$G(ORNP) DIC("B")=ORNP D ^DIC S:Y'>0 Y="^"
|
---|
102 | PVQ Q Y
|
---|
103 | ;
|
---|
104 | EX ; -- exit action
|
---|
105 | D:$G(OREBUILD) TAB^ORCHART(ORTAB,1)
|
---|
106 | S:$D(^TMP("OR",$J,"CURRENT","MENU")) XQORM("HIJACK")=^("MENU")
|
---|
107 | Q
|
---|