1 | ORY260 ; SLC/STAFF - Patch OR*3.0*260 post init ;8/21/06 13:13
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**260**;Dec 17, 1997;Build 26
|
---|
3 | POST ; post-init to patch OR*3.0*260
|
---|
4 | ; fix any string formatted date/times in CR index
|
---|
5 | ; remove Treatment type from graphing
|
---|
6 | N DA,DIR,ORMSG,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE K DIR,ORMSG
|
---|
7 | S ORMSG(1)="A task is being queued in the background to identify"
|
---|
8 | S ORMSG(2)="any Start or Start dates where times have trailing zeros."
|
---|
9 | S ORMSG(3)=""
|
---|
10 | S ORMSG(4)="These indexes will be reset with the correct canonic"
|
---|
11 | S ORMSG(5)="values by this background job. A mail message will be"
|
---|
12 | S ORMSG(6)="sent to the initiator of this patch at completion."
|
---|
13 | S ORMSG(7)=""
|
---|
14 | S ORMSG(8)=""
|
---|
15 | S ZTRTN="DQ^ORY260",ZTIO=""
|
---|
16 | S ZTDESC="Clean up - Patch 260",ZTDTH=$H,ZTSAVE("DUZ")=""
|
---|
17 | D ^%ZTLOAD
|
---|
18 | S ORMSG(9)="The task number is "_$G(ZTSK)
|
---|
19 | D MES^XPDUTL(.ORMSG) I '$D(ZTQUEUED) D
|
---|
20 | . N DIR,Y
|
---|
21 | . S DIR(0)="E",DIR("A")="Press return - installation is complete."
|
---|
22 | . D ^DIR
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | DQ ; dequeued
|
---|
26 | N BEGIN,CNT,DFN,ITEM,NODE,OK,START,STOP K ^TMP("ORPXRM",$J),^TMP("ORTXT",$J)
|
---|
27 | S BEGIN=$$NOW^XLFDT
|
---|
28 | S CNT=0
|
---|
29 | S DFN=0
|
---|
30 | F S DFN=$O(^PXRMINDX(100,"PI",DFN)) Q:DFN<1 D
|
---|
31 | . S ITEM=0
|
---|
32 | . F S ITEM=$O(^PXRMINDX(100,"PI",DFN,ITEM)) Q:ITEM<1 D
|
---|
33 | .. S START=""
|
---|
34 | .. F S START=$O(^PXRMINDX(100,"PI",DFN,ITEM,START)) Q:START="" D
|
---|
35 | ... S STOP=""
|
---|
36 | ... F S STOP=$O(^PXRMINDX(100,"PI",DFN,ITEM,START,STOP)) Q:STOP="" D
|
---|
37 | .... S OK=1
|
---|
38 | .... I START'=+START S OK=0
|
---|
39 | .... I OK,$E(STOP)'="U",STOP'=+STOP S OK=0
|
---|
40 | .... I OK Q
|
---|
41 | .... S NODE=""
|
---|
42 | .... F S NODE=$O(^PXRMINDX(100,"PI",DFN,ITEM,START,STOP,NODE)) Q:NODE="" D
|
---|
43 | ..... S ^TMP("ORPXRM",$J,NODE)=DFN_U_ITEM_U_START_U_STOP
|
---|
44 | ..... S CNT=CNT+1
|
---|
45 | ..... ;W !,NODE,?20,$P($G(^OR(100,+NODE,0)),U,8),?35,$P($G(^OR(100,+NODE,0)),U,9),?55,START
|
---|
46 | S ^TMP("ORTXT",$J,4)="-- "_CNT_" nodes to check --" ; overwrite on finish
|
---|
47 | S ^TMP("ORTXT",$J,5)=" "
|
---|
48 | S CNT=5
|
---|
49 | S NODE=""
|
---|
50 | F S NODE=$O(^TMP("ORPXRM",$J,NODE)) Q:NODE="" D
|
---|
51 | . D FIX(NODE,.CNT)
|
---|
52 | S ^TMP("ORTXT",$J,4)="-- "_(CNT-5)_" changes made --"
|
---|
53 | K ^TMP("ORPXRM",$J)
|
---|
54 | D TREMOVE("ORWG GRAPH VIEW") ; removes treatment type from graphing
|
---|
55 | D MAIL(BEGIN)
|
---|
56 | K ^TMP("ORTXT",$J)
|
---|
57 | Q
|
---|
58 | ;
|
---|
59 | FIX(NODE,CNT) ;
|
---|
60 | N DA,DATE1,DATE2,DFN,DIE,DR,ITEM,LINE,START,STOP,VALUES,ZERO
|
---|
61 | S VALUES=$G(^TMP("ORPXRM",$J,NODE))
|
---|
62 | S DFN=$P(VALUES,U)
|
---|
63 | S ITEM=$P(VALUES,U,2)
|
---|
64 | S DATE1=$P(VALUES,U,3)
|
---|
65 | S DATE2=$P(VALUES,U,4)
|
---|
66 | K ^PXRMINDX(100,"PI",DFN,ITEM,DATE1,DATE2,NODE)
|
---|
67 | K ^PXRMINDX(100,"IP",ITEM,DFN,DATE1,DATE2,NODE)
|
---|
68 | S DIE="^OR(100,"
|
---|
69 | S DA=+NODE
|
---|
70 | S ZERO=$G(^OR(100,DA,0))
|
---|
71 | S START=+$P(ZERO,U,8) I START=0 S START="@"
|
---|
72 | S STOP=+$P(ZERO,U,9) I STOP=0 S STOP="@"
|
---|
73 | S DR=""
|
---|
74 | I START'=DATE1 S DR="21///"_START
|
---|
75 | I START="@",$P(ZERO,U,8)="" S DR=""
|
---|
76 | I STOP'=DATE2 D
|
---|
77 | . I STOP="@",$E(DATE2)="U" Q
|
---|
78 | . I $L(DR) S DR=DR_";22///"_STOP Q
|
---|
79 | . S DR="22///"_STOP Q
|
---|
80 | I '$L(DR) Q
|
---|
81 | S LINE="Node: "_NODE
|
---|
82 | I DR["21///" S LINE=LINE_"; Start: "_DATE1_" -> "_START
|
---|
83 | I DR["22///" S LINE=LINE_"; Stop: "_DATE2_" -> "_STOP
|
---|
84 | D ^DIE
|
---|
85 | S CNT=CNT+1
|
---|
86 | S ^TMP("ORTXT",$J,CNT)=LINE
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | TREMOVE(PARAM) ;
|
---|
90 | N ENTITY,INST,LINES,OK,VALUES K LINES,VALUES
|
---|
91 | D XENVAL^ORWGAPIX(.VALUES,PARAM)
|
---|
92 | I '$L($O(VALUES(""))) Q
|
---|
93 | S ENTITY=""
|
---|
94 | F S ENTITY=$O(VALUES(ENTITY)) Q:ENTITY="" D
|
---|
95 | . S INST=""
|
---|
96 | . F S INST=$O(VALUES(ENTITY,INST)) Q:INST="" D
|
---|
97 | .. D XGETWP^ORWGAPIX(.LINES,ENTITY,PARAM,INST)
|
---|
98 | .. D FIXLINES(.LINES,.OK)
|
---|
99 | .. I 'OK D FIXIT(.LINES,ENTITY,PARAM,INST)
|
---|
100 | Q
|
---|
101 | ;
|
---|
102 | FIXLINES(LINES,OK) ;
|
---|
103 | N I,LINE,NLINE,NLINES,NNUM,NUM,PART K NLINES
|
---|
104 | S OK=1,NNUM=0
|
---|
105 | S NUM=0
|
---|
106 | F S NUM=$O(LINES(NUM)) Q:NUM<1 D
|
---|
107 | . S LINE=$G(LINES(NUM,0))
|
---|
108 | . I '$L(LINE) Q
|
---|
109 | . S NLINE=LINE
|
---|
110 | . I LINE["~9000010.15" D
|
---|
111 | .. S NLINE="",OK=0
|
---|
112 | .. F I=1:1:999 S PART=$P(LINE,"|",I) Q:PART="" D
|
---|
113 | ... I PART["~9000010.15" Q
|
---|
114 | ... S NLINE=NLINE_PART_"|"
|
---|
115 | . I NLINE="" Q
|
---|
116 | . S NNUM=NNUM+1
|
---|
117 | . S NLINES(NNUM,0)=NLINE
|
---|
118 | I OK Q
|
---|
119 | K LINES
|
---|
120 | M LINES=NLINES
|
---|
121 | Q
|
---|
122 | ;
|
---|
123 | FIXIT(LINES,ENTITY,PARAM,INST) ;
|
---|
124 | D XDEL^ORWGAPIX(ENTITY,PARAM,INST)
|
---|
125 | I $L($O(LINES(""))) D XEN^ORWGAPIX(ENTITY,PARAM,INST,.LINES)
|
---|
126 | Q
|
---|
127 | ;
|
---|
128 | MAIL(BEGIN) ; -- Send completion message to user who initiated cleanup
|
---|
129 | N TIMES,XMSUB,XMTEXT,XMDUN,XMDUZ,XMY,XMZ K XMY
|
---|
130 | S XMDUZ="PATCH OR*3.0*260 CLEAN-UP",XMY(.5)="" S:$G(DUZ) XMY(DUZ)=""
|
---|
131 | S TIMES="Started: "_$$FMTE^XLFDT(BEGIN)_"; Completed: "_$$FMTE^XLFDT($$NOW^XLFDT)_"."
|
---|
132 | S ^TMP("ORTXT",$J,1)="Clean up for patch OR*3.0*260"
|
---|
133 | S ^TMP("ORTXT",$J,2)=TIMES
|
---|
134 | S ^TMP("ORTXT",$J,3)="Order Node Date Cleanup:"
|
---|
135 | S XMTEXT="^TMP(""ORTXT"","_$J_","
|
---|
136 | S XMSUB="PATCH OR*3.0*260 Clean Up COMPLETED"
|
---|
137 | D ^XMD
|
---|
138 | Q
|
---|