1 | GMPLMGR1 ; SLC/MKB -- Problem List VALM Utilities cont ;5/10/94 16:42
|
---|
2 | ;;2.0;Problem List;**10**;Aug 25, 1994
|
---|
3 | NEWPAT ; select new patient
|
---|
4 | N NEWPT S VALMBCK="R"
|
---|
5 | I GMPARAM("PRT"),$D(GMPRINT) D AUTO^GMPLMGR2 I $D(DTOUT) S VALMBCK="Q" Q
|
---|
6 | W ! D FULL^VALM1
|
---|
7 | S NEWPT=$S($D(ORVP)&(+$$VERSION^XPDUTL("OR")<3):$$OEPAT,1:$$PAT^GMPLX1)
|
---|
8 | I (+NEWPT>0),(+NEWPT'=+GMPDFN) D
|
---|
9 | . S GMPDFN=NEWPT,VALMBG=1
|
---|
10 | . S (GMPSC,GMPAGTOR,GMPION,GMPGULF)=0 D:GMPVA VADPT^GMPLX1(+GMPDFN)
|
---|
11 | . D GETPLIST(.GMPLIST,.GMPTOTAL,.GMPLVIEW) K GMPRINT
|
---|
12 | . D BUILD^GMPLMGR(.GMPLIST),HDR^GMPLMGR
|
---|
13 | S VALMSG=$$MSG^GMPLX
|
---|
14 | Q
|
---|
15 | ;
|
---|
16 | OEPAT() ; Calls OE/RR to return new patient, or -1
|
---|
17 | N DFN,VADM,Y
|
---|
18 | D IN^OR I +ORVP'>0 Q -1
|
---|
19 | I +ORVP=+GMPDFN Q GMPDFN
|
---|
20 | S DFN=+ORVP D DEM^VADPT
|
---|
21 | S Y=DFN_U_VADM(1)_U_$E(VADM(1))_VA("BID")
|
---|
22 | I VADM(6) S Y=Y_U_+VADM(6) ; date of death
|
---|
23 | Q Y
|
---|
24 | ;
|
---|
25 | INACTIVE ; Incl inactive problems
|
---|
26 | S VALMBCK=$S(VALMCC:"",1:"R")
|
---|
27 | I GMPLVIEW("ACT")="" D Q
|
---|
28 | . W !!,"Listing already includes inactive problems!" H 1
|
---|
29 | I '$D(^AUPNPROB("ACTIVE",+GMPDFN,"I")) D Q
|
---|
30 | . W !!,"Patient has no inactive problems to include.",! H 1
|
---|
31 | S GMPLVIEW("ACT")="",VALMBCK="R",VALMSG=$$MSG^GMPLX
|
---|
32 | D GETPLIST(.GMPLIST,.GMPTOTAL,.GMPLVIEW),BUILD^GMPLMGR(.GMPLIST),HDR^GMPLMGR
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | NEWSRV ; select new service
|
---|
36 | N DIC,NEWVIEW,VIEW,PROMPT,HELPMSG Q:$D(GMPQUIT)
|
---|
37 | S DIC="^DIC(49,",DIC("S")="I $P(^(0),U,9)=""C"""
|
---|
38 | S VIEW="service(s)",PROMPT="Select SERVICE: ",HELPMSG="LISTSERV"
|
---|
39 | D NEW Q:$D(GMPQUIT)
|
---|
40 | I NEWVIEW'=$E(GMPLVIEW("VIEW"),2,99) S GMPLVIEW("VIEW")="S"_NEWVIEW,GMPREBLD=1
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | NEWCLIN ; Select new clinic
|
---|
44 | N DIC,NEWVIEW,VIEW,PROMPT,HELPMSG Q:$D(GMPQUIT)
|
---|
45 | S DIC="^SC(",DIC("S")="I $P(^(0),U,3)=""C"""
|
---|
46 | S VIEW="clinic(s)",PROMPT="Select CLINIC: ",HELPMSG="LISTCLIN"
|
---|
47 | D NEW Q:$D(GMPQUIT)
|
---|
48 | I NEWVIEW'=$E(GMPLVIEW("VIEW"),2,99) S GMPLVIEW("VIEW")="C"_NEWVIEW,GMPREBLD=1
|
---|
49 | Q
|
---|
50 | ;
|
---|
51 | NEW ; prompt, from NEWSRV or NEWCLIN
|
---|
52 | N X,Y S NEWVIEW="",DIC(0)="EMQ"
|
---|
53 | W !!,"Enter the "_VIEW_" from which you wish to view problems:"
|
---|
54 | F D Q:$D(GMPQUIT)!(X="")
|
---|
55 | . W !,PROMPT R X:DTIME I '$T!(X["^") S GMPQUIT=1 Q
|
---|
56 | . Q:X="" I X="?" W !!?3,"Enter the "_VIEW_", one at a time, from which you wish to view",!?3,"problems; press <return> when you have finished.",! Q
|
---|
57 | . I X["??" D @HELPMSG Q
|
---|
58 | . D ^DIC I Y>0 S NEWVIEW=NEWVIEW_+Y_"/",PROMPT="ANOTHER ONE: "
|
---|
59 | I '$D(GMPQUIT),$L(NEWVIEW) S NEWVIEW="/"_NEWVIEW
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | LISTSERV ; List clinical services
|
---|
63 | N I,CNT,Y S CNT=0,Y=""
|
---|
64 | W !,"Choose from: "
|
---|
65 | F I=0:0 S I=$O(^DIC(49,"F","C",I)) Q:I'>0 D Q:Y'=""
|
---|
66 | . S CNT=CNT+1 I '(CNT#8) D Q:Y="^"
|
---|
67 | . . W " ... more, or ^ to stop: " R Y:DTIME S:'$T Y="^"
|
---|
68 | . W !," "_$P(^DIC(49,I,0),U)
|
---|
69 | . W:$P(^(0),U,4) " ("_$P(^DIC(49,$P(^(0),U,4),0),U)_")"
|
---|
70 | W ! Q
|
---|
71 | ;
|
---|
72 | LISTCLIN ; List clinics
|
---|
73 | N I,CNT,Y S CNT=0,Y=""
|
---|
74 | W !,"Choose from: "
|
---|
75 | F I=0:0 S I=$O(^SC(I)) Q:I'>0 D Q:Y'=""
|
---|
76 | . Q:$P($G(^SC(I,0)),U,3)'="C" ; must be a clinic
|
---|
77 | . S CNT=CNT+1 I '(CNT#8) D Q:Y="^"
|
---|
78 | . . W " ... more, or ^ to stop: " R Y:DTIME S:'$T Y="^"
|
---|
79 | . W !," "_$P($G(^SC(I,0)),U)
|
---|
80 | W ! Q
|
---|
81 | ;
|
---|
82 | NEWPROV ; select new provider
|
---|
83 | N X,Y,DIC,NEWPROV Q:$D(GMPQUIT) S NEWPROV=""
|
---|
84 | S DIC="^VA(200,",DIC(0)="EMQ" ; screen on PROVIDER key ??
|
---|
85 | W !!,"Enter the name of the provider whose problems you wish to view:"
|
---|
86 | NPRV R !,"Select PROVIDER: ",X:DTIME I '$T!(X["^") S GMPQUIT=1 Q
|
---|
87 | Q:X="" I X="?" D G NPRV
|
---|
88 | . W !!?3,"If you wish to see only those problems of the current patient that"
|
---|
89 | . W !?3,"are associated with a specific provider, enter his/her name here.",!
|
---|
90 | I X["??" D NPHELP^GMPLEDT2 G NPRV
|
---|
91 | D ^DIC S:+Y NEWPROV=Y I +Y'>0 G NPRV
|
---|
92 | I +NEWPROV'=+GMPLVIEW("PROV") S GMPLVIEW("PROV")=NEWPROV,GMPREBLD=1
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | KEYS ; adds to XQORM("KEY") array
|
---|
96 | I $G(GMPARAM("VER")) S XQORM("KEY","$")=$O(^ORD(101,"B","GMPL VERIFY",0))_"^1"
|
---|
97 | KEY S XQORM("KEY","=")=$O(^ORD(101,"B","VALM NEXT SCREEN",0))_"^1"
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | GETPLIST(PLIST,TOTAL,VIEW) ; Build PLIST(#)=IFN for view
|
---|
101 | N STBEG,STEND,ST,CNT,IFN,RECORD,DATE,LIST K PLIST
|
---|
102 | W:'$G(GMPARAM("QUIET")) !,"Searching for the patient's problem list ..."
|
---|
103 | S STBEG=$S(VIEW("ACT")="I":"A",1:""),STEND=$S(VIEW("ACT")="A":"I",1:""),ST=STBEG,TOTAL=0
|
---|
104 | F S ST=$O(^AUPNPROB("ACTIVE",+GMPDFN,ST)) Q:(ST="")!(ST=STEND) D
|
---|
105 | . F IFN=0:0 S IFN=$O(^AUPNPROB("ACTIVE",+GMPDFN,ST,IFN)) Q:IFN'>0 D
|
---|
106 | . . S RECORD=$G(^AUPNPROB(IFN,1)) Q:'$L(RECORD)
|
---|
107 | . . Q:$P(RECORD,U,2)="H" S TOTAL=TOTAL+1
|
---|
108 | . . I $L(VIEW("VIEW"))>2,VIEW("VIEW")'[("/"_$P(RECORD,U,$S($E(VIEW("VIEW"))="S":6,1:8))_"/") Q
|
---|
109 | . . I VIEW("PROV"),$P(RECORD,U,5)'=+VIEW("PROV") Q
|
---|
110 | . . S DATE=$P(RECORD,U,9) S:'DATE DATE=$P($G(^AUPNPROB(IFN,0)),U,8)
|
---|
111 | . . S:GMPARAM("REV") DATE=9999999-DATE
|
---|
112 | . . S LIST(ST,DATE,IFN)=""
|
---|
113 | S ST="",CNT=0 F S ST=$O(LIST(ST)) Q:ST="" D
|
---|
114 | . S DATE="" F S DATE=$O(LIST(ST,DATE)) Q:DATE="" D
|
---|
115 | . . S IFN="" F S IFN=$O(LIST(ST,DATE,IFN)) Q:IFN="" S CNT=CNT+1,PLIST(CNT)=IFN,PLIST("B",IFN)=CNT
|
---|
116 | S PLIST(0)=CNT
|
---|
117 | Q
|
---|