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