1 | RMPREO24 ;HINES/ODJ ;suspense reports - Display all notes
|
---|
2 | ;;3.0;PROSTHETICS;**55**;Feb 09, 1996
|
---|
3 | ;
|
---|
4 | ; ODJ - patch 55 - implement a display of all notes posted to an
|
---|
5 | ; order in reverse chronological order
|
---|
6 | ; (nois MIN-0900-41546)
|
---|
7 | Q
|
---|
8 | ;
|
---|
9 | ; This subroutine implements patch 55 and is called from
|
---|
10 | ; VIEW^RMPREO23 which is called when a user selects the
|
---|
11 | ; View Request option [VR] on the Suspense Processing list
|
---|
12 | ; manager screen.
|
---|
13 | ;
|
---|
14 | ; Inputs
|
---|
15 | ; ------
|
---|
16 | ; RMPRIEN - ien of the order in ^RMPR(668
|
---|
17 | ;
|
---|
18 | ; Output
|
---|
19 | ; ------
|
---|
20 | ; RMPREXC - "^" if key press indicates return to menu
|
---|
21 | ;
|
---|
22 | VALL(RMPRIEN,RMPREXC) ;
|
---|
23 | N RMPRS,RMPRA,RMPRROW,RMPRX,RMPRI,RMPRNTY,RMPRNDT,Y,RMPRDASH
|
---|
24 | N RMPRLL,RMPRSUB,RMPRWP,RMPRCL,RMPRMINL,RMPRUSRI,RMPRUSRC
|
---|
25 | S RMPREXC=""
|
---|
26 | W @IOF,"Chronological list of notes posted to the request...",!!
|
---|
27 | S RMPRCL=3
|
---|
28 | S $P(RMPRDASH,"-",81)=""
|
---|
29 | S RMPRMINL=5
|
---|
30 | ;
|
---|
31 | ; build an index RMPRX of notes by date and seq.
|
---|
32 | S RMPRS=^RMPR(668,RMPRIEN,0)
|
---|
33 | S RMPRNDT=$P(RMPRS,"^",9) ; Initial action date (type 3)
|
---|
34 | S RMPRUSRI=$$GETUSR(RMPRIEN,16) ; User entering Init Action
|
---|
35 | S RMPRX=1
|
---|
36 | S:RMPRNDT'="" RMPRX(RMPRNDT,RMPRX)=3,RMPRX=RMPRX+1
|
---|
37 | S RMPRNDT=$P(RMPRS,"^",5) ; Completion date (type 4)
|
---|
38 | S:RMPRNDT'="" RMPRX(RMPRNDT,RMPRX)=4,RMPRX=RMPRX+1
|
---|
39 | S RMPRUSRC=$$GETUSR(RMPRIEN,6) ; User entering Complete Action
|
---|
40 | ;
|
---|
41 | ; loop through all other notes (type 1)
|
---|
42 | S RMPRI=0
|
---|
43 | F S RMPRI=$O(^RMPR(668,RMPRIEN,1,RMPRI)) Q:'+RMPRI D
|
---|
44 | . S RMPRS=^RMPR(668,RMPRIEN,1,RMPRI,0)
|
---|
45 | . S RMPRNDT=$P(RMPRS,"^",1)
|
---|
46 | . S RMPRX(RMPRNDT,RMPRX)="1^"_RMPRI,RMPRX=RMPRX+1
|
---|
47 | . Q
|
---|
48 | ;
|
---|
49 | ; If haven't got any notes display message to inform user
|
---|
50 | ; and get any key press, then quit
|
---|
51 | I RMPRX=1 D G VALLX
|
---|
52 | . W "No notes have been posted to this request"
|
---|
53 | . K DIR S DIR(0)="E" D ^DIR K DIR S:Y'=1 RMPREXC="^"
|
---|
54 | . Q
|
---|
55 | ;
|
---|
56 | ; Now use index RMPRX built above to print out the notes
|
---|
57 | S RMPRA=""
|
---|
58 | VALL1 S RMPRA=$O(RMPRX(RMPRA)) ;primary loop on note date
|
---|
59 | I RMPRA="" G VALLEND
|
---|
60 | S RMPRI=""
|
---|
61 | VALL2 S RMPRI=$O(RMPRX(RMPRA,RMPRI)) ;loop on seq. within date
|
---|
62 | I RMPRI="" G VALL1 ;next note date
|
---|
63 | S RMPRS=RMPRX(RMPRA,RMPRI)
|
---|
64 | S RMPRNTY=$P(RMPRS,"^",1) ;get note type 1 Other, 3 Init Action
|
---|
65 | ; 4 Complete
|
---|
66 | S Y=RMPRA D DD^%DT S RMPRNDT=Y
|
---|
67 | ;
|
---|
68 | ; Print the note
|
---|
69 | I RMPRNTY=1 D
|
---|
70 | . S RMPRSUB=$P(RMPRS,"^",2) ;ien of sub-file
|
---|
71 | . S RMPRLL=$O(^RMPR(668,RMPRIEN,1,RMPRSUB,1,":"),-1)
|
---|
72 | . Q
|
---|
73 | E D
|
---|
74 | . S RMPRLL=$O(^RMPR(668,RMPRIEN,RMPRNTY,1,":"),-1)
|
---|
75 | . Q
|
---|
76 | I RMPRCL>3,(IOSL-(RMPRLL+RMPRCL))<RMPRMINL D G:RMPREXC="^" VALLX
|
---|
77 | . K DIR S DIR(0)="E" D ^DIR K DIR I Y'=1 S RMPREXC="^" Q
|
---|
78 | . S RMPRCL=1 W @IOF
|
---|
79 | . Q
|
---|
80 | W $S(RMPRNTY=3:"Initial Action Note",RMPRNTY=4:"Completion Note",1:"Other Action Note")," - ",RMPRNDT
|
---|
81 | W $S(RMPRNTY=3:" posted by "_RMPRUSRI,RMPRNTY=4:" posted by "_RMPRUSRC,1:""),!!
|
---|
82 | S RMPRCL=RMPRCL+2
|
---|
83 | I RMPRNTY=1 D
|
---|
84 | . S RMPRWP=0
|
---|
85 | . F S RMPRWP=$O(^RMPR(668,RMPRIEN,1,RMPRSUB,1,RMPRWP)) Q:'+RMPRWP D
|
---|
86 | .. W ^RMPR(668,RMPRIEN,1,RMPRSUB,1,RMPRWP,0),!
|
---|
87 | .. S RMPRCL=RMPRCL+1
|
---|
88 | .. Q
|
---|
89 | . Q
|
---|
90 | E D
|
---|
91 | . S RMPRWP=0
|
---|
92 | . F S RMPRWP=$O(^RMPR(668,RMPRIEN,RMPRNTY,RMPRWP)) Q:'+RMPRWP D
|
---|
93 | .. W ^RMPR(668,RMPRIEN,RMPRNTY,RMPRWP,0),!
|
---|
94 | .. S RMPRCL=RMPRCL+1
|
---|
95 | .. Q
|
---|
96 | . Q
|
---|
97 | W RMPRDASH,!
|
---|
98 | S RMPRCL=RMPRCL+1
|
---|
99 | G VALL2 ;next note seq.
|
---|
100 | VALLEND I RMPRCL'=1 D
|
---|
101 | . K DIR S DIR(0)="E" D ^DIR K DIR S:Y'=1 RMPREXC="^"
|
---|
102 | . Q
|
---|
103 | VALLX Q
|
---|
104 | ;
|
---|
105 | ; Get username from VA(200
|
---|
106 | GETUSR(RMPRIEN,RMPRFLD) ;
|
---|
107 | N RMPROUP,RMPRIENS,RMPRUSR
|
---|
108 | S RMPRUSR=""
|
---|
109 | S RMPRIENS=RMPRIEN_","
|
---|
110 | D GETS^DIQ(668,RMPRIENS,RMPRFLD,"","RMPROUP",)
|
---|
111 | S:$D(RMPROUP) RMPRUSR=RMPROUP(668,RMPRIENS,RMPRFLD)
|
---|
112 | Q RMPRUSR
|
---|