[613] | 1 | GMRCSTS ;SLC/DLT,JFR,MA - Group update status of consult and order; 11/25/2000
|
---|
| 2 | ;;3.0;CONSULT/REQUEST TRACKING;**8,18,21**;DEC 27, 1997
|
---|
| 3 | ; Patch 18 - Change UPDCMT to use Editor to add comment and
|
---|
| 4 | ; Added Scheduled consults to selection list.
|
---|
| 5 | ; Patch 21 - Added warning message in line tag WARNING().
|
---|
| 6 | ; This routine invokes IA #2876,3121
|
---|
| 7 | N GMRCTO,GMRCDG,GMRCSVC,GMRCSVCN,GMRCEND,GMRCSTRT,GMRCSTOP,GMRCGRP
|
---|
| 8 | N GMRCCVT,GMRCM,GMRCMT,GMRCDO,DIR,DIROUT,DIRUT,DTOUT,DUOUT
|
---|
| 9 | D GETSRV I 'GMRCDG D END Q
|
---|
| 10 | D GETDTR I GMRCEND D END Q
|
---|
| 11 | S GMRCM=$$METHOD I GMRCEND D END Q
|
---|
| 12 | S GMRCCVT=$$UPD1 I GMRCEND D END Q
|
---|
| 13 | D UPDCMT(.GMRCMT)
|
---|
| 14 | D VERIFY I GMRCEND D END Q
|
---|
| 15 | D GETENTS^GMRCSTS1(GMRCSVC,GMRCSTRT,GMRCSTOP,GMRCM)
|
---|
| 16 | S GMRCDO=$$WHATTODO I 'GMRCDO D END Q
|
---|
| 17 | D DEVICE I $G(GMRCEND) D END Q
|
---|
| 18 | I $D(IO("Q")) D QUEUE,^%ZISC,END Q
|
---|
| 19 | D PRINT^GMRCSTS1(GMRCM,GMRCCVT,GMRCSVC,.GMRCMT,GMRCSTRT,GMRCSTOP,GMRCDO)
|
---|
| 20 | D END Q
|
---|
| 21 | GETSRV ;Get a service that the user is authorized to update status for
|
---|
| 22 | D ^GMRCASV Q:'GMRCDG
|
---|
| 23 | S GMRCSVC=+GMRCDG,GMRCSVCN=$P($G(^GMR(123.5,+GMRCSVC,0)),U,1)
|
---|
| 24 | I $P($G(^GMR(123.5,+GMRCDG,0)),"^",4)=DUZ Q ;user has special privileges
|
---|
| 25 | ;Check for parent service authorization
|
---|
| 26 | N AUTH,PARENT
|
---|
| 27 | I $P(^GMR(123.5,1,0),U,4)=DUZ Q
|
---|
| 28 | S (AUTH,PARENT)=0 F S PARENT=$O(^GMR(123.5,"APC",+GMRCDG,PARENT)) Q:'PARENT S:$P($G(^GMR(123.5,+PARENT,0)),U,4)=DUZ AUTH=PARENT
|
---|
| 29 | I 'AUTH D UNAUTH S GMRCDG=0 G GETSRV
|
---|
| 30 | Q
|
---|
| 31 | ;
|
---|
| 32 | UNAUTH ;Unauthorized to do special update processing for service or its parent.
|
---|
| 33 | N GMRCMSG
|
---|
| 34 | W !
|
---|
| 35 | S GMRCMSG="You are not defined as the SPECIAL UPDATES INDIVIDUAL for the"
|
---|
| 36 | S GMRCMSG(1)=GMRCSVCN_" service or its parent service."
|
---|
| 37 | S GMRCDG=0
|
---|
| 38 | D EXAC^GMRCADC(.GMRCMSG)
|
---|
| 39 | Q
|
---|
| 40 | ;
|
---|
| 41 | GETDTR ;Get the date range
|
---|
| 42 | ;END=# of days (T-END) for stop default limitations
|
---|
| 43 | ;GMRCSTRT=Start date/time
|
---|
| 44 | ;GMRCSTOP=Stop date/time
|
---|
| 45 | ;GMRCEND=1 if user timed out or "^"
|
---|
| 46 | S GMRCEND=0
|
---|
| 47 | N X1,X2,X,END
|
---|
| 48 | S X1=$$DT^XLFDT,X2=-30 D C^%DTC S END=X K X
|
---|
| 49 | D START Q:GMRCEND
|
---|
| 50 | D STOP Q:GMRCEND
|
---|
| 51 | Q
|
---|
| 52 | ;
|
---|
| 53 | START ;Get the start date
|
---|
| 54 | N DIR,Y,ORDER,FIRST,GMRCIEN
|
---|
| 55 | S ORDER=$O(^GMR(123,"AC",0)),GMRCIEN=$O(^GMR(123,"AC",+ORDER,""))
|
---|
| 56 | I +$G(GMRCIEN) D
|
---|
| 57 | . S Y=$P($G(^GMR(123,GMRCIEN,0)),U,1)
|
---|
| 58 | . X ^DD("DD") S FIRST=$P(Y,"@",1)
|
---|
| 59 | . S DIR("B")=FIRST
|
---|
| 60 | . W !!,"The first order in Consults has an entry date of "_DIR("B"),!
|
---|
| 61 | . Q
|
---|
| 62 | S DIR(0)="D^:"_END_":AEX",DIR("A")="Update Status Start Date"
|
---|
| 63 | S DIR("?")="^D HELP^%DTC"
|
---|
| 64 | D ^DIR
|
---|
| 65 | I ($D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT)!('Y)) S GMRCEND=1 Q
|
---|
| 66 | S GMRCSTRT=Y
|
---|
| 67 | Q
|
---|
| 68 | ;
|
---|
| 69 | STOP ;Get the stop date
|
---|
| 70 | N DIR,Y,X
|
---|
| 71 | S DIR(0)="D^:"_END_":AEX",DIR("A")="Update Status Stop Date"
|
---|
| 72 | D ^DIR
|
---|
| 73 | I ($D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT)!('Y)) S GMRCEND=1 Q
|
---|
| 74 | I Y<GMRCSTRT S GMRCSTOP=GMRCSTRT,GMRCSTRT=Y
|
---|
| 75 | E S GMRCSTOP=Y
|
---|
| 76 | Q
|
---|
| 77 | ;
|
---|
| 78 | METHOD() ;Get method to determine which consults to change
|
---|
| 79 | N DIR,Y,X
|
---|
| 80 | ;S DIR(0)="SM^P:Pending;A:Active;S:Scheduled;ALL:For All"
|
---|
| 81 | ;S DIR("A")="Status(es) to search for updating"
|
---|
| 82 | S DIR("A",1)=""
|
---|
| 83 | S DIR("A",2)=""
|
---|
| 84 | S DIR("A",3)=" 1 = Pending"
|
---|
| 85 | S DIR("A",4)=" 2 = Active"
|
---|
| 86 | S DIR("A",5)=" 3 = Scheduled"
|
---|
| 87 | S DIR("A",6)=" 4 = All"
|
---|
| 88 | S DIR("A",7)=""
|
---|
| 89 | S DIR("A",8)=" Enter any combination of numbers separated"
|
---|
| 90 | S DIR("A")=" by a comma or hyphen"
|
---|
| 91 | S DIR(0)="LO^1:4"
|
---|
| 92 | D ^DIR
|
---|
| 93 | I ($D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT)) S GMRCEND=1
|
---|
| 94 | Q Y
|
---|
| 95 | S DIR(0)="SM^S:Order Status of Pending or Active;R:Result Activity"
|
---|
| 96 | S DIR("A")="Method to find Consults to Update"
|
---|
| 97 | D ^DIR
|
---|
| 98 | I ($D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT)) S GMRCEND=1 Q Y
|
---|
| 99 | Q Y
|
---|
| 100 | ;
|
---|
| 101 | VERIFY ;Verify the criteria is correct
|
---|
| 102 | W !
|
---|
| 103 | D UPDCRIT^GMRCSTS1(GMRCCVT,GMRCM,GMRCSVC,.GMRCMT,GMRCSTRT,GMRCSTOP)
|
---|
| 104 | N DIR
|
---|
| 105 | S DIR(0)="Y",DIR("A")="Is this correct",DIR("B")="NO"
|
---|
| 106 | D ^DIR I ($D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT)!('Y)) S GMRCEND=1 Q
|
---|
| 107 | Q
|
---|
| 108 | UPD1() ;Determine update status
|
---|
| 109 | N DIR,X,Y
|
---|
| 110 | W !!,"If orders in the date range still have the selected status, this option"
|
---|
| 111 | W !,"will change their status in consults, and update the order."
|
---|
| 112 | W !!,"You may change the status to COMPLETE or DISCONTINUED."
|
---|
| 113 | W !
|
---|
| 114 | S DIR(0)="SAM^D:Discontinued;C:Complete"
|
---|
| 115 | S DIR("A")="Change their status to: "
|
---|
| 116 | D ^DIR I ($D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT)) S GMRCEND=1 Q Y
|
---|
| 117 | Q $S(Y="D":"1^DC",1:"2^C")
|
---|
| 118 | ;
|
---|
| 119 | DEVICE ; device for printout of entries to group update
|
---|
| 120 | N %ZIS,POP
|
---|
| 121 | W !!,"The device selected will print a list of entries from file 123 that will be"
|
---|
| 122 | W !,"updated to ",$S(+GMRCCVT=1:"DISCONTINUED",1:"COMPLETE"),"."
|
---|
| 123 | W !!,"If you choose to update records, the update of the consult entries will take"
|
---|
| 124 | W !,"place upon completion of the report."
|
---|
| 125 | W !!,"It is highly advised that a printer be selected!"
|
---|
| 126 | RETRY S %ZIS="QM",%ZIS("A")="Select device for report: ",%ZIS("B")=""
|
---|
| 127 | D ^%ZIS
|
---|
| 128 | I POP S GMRCEND=1 Q
|
---|
| 129 | I $E(IOST,1,2)="C-" D G:Y<1 RETRY
|
---|
| 130 | . W !!,$C(7),"You have not chosen a printer! If you do not choose a printer there will",!,"be no record of the entries that were updated."
|
---|
| 131 | . N DIR,DIROUT,DIRUT,DTOUT,DUOUT
|
---|
| 132 | . S DIR(0)="Y",DIR("A")="Are you sure you want to use this device"
|
---|
| 133 | . S DIR("B")="NO" D ^DIR I $D(DIRUT) S GMRCEND=1
|
---|
| 134 | Q
|
---|
| 135 | QUEUE ; send task for print and update
|
---|
| 136 | I GMRCDO=2,'$$WARNING D ^%ZISC,END Q ; Killed report
|
---|
| 137 | N ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSAVE,ZTSK
|
---|
| 138 | S ZTRTN="PRTTSK^GMRCSTS1",ZTDESC="UPDATE OF RECORDS FILE 123"
|
---|
| 139 | S ZTIO=ION
|
---|
| 140 | S ZTSAVE("^TMP(""GMRCLS"",$J,")="",ZTSAVE("GMRC*")=""
|
---|
| 141 | D ^%ZTLOAD I $G(ZTSK) W !,"Task # ",ZTSK
|
---|
| 142 | I '$G(ZTSK) W !,"Unable to queue report! Try again later."
|
---|
| 143 | Q
|
---|
| 144 | UPDCMT(COMMENT) ; get comment to stuff in consult activity
|
---|
| 145 | W !
|
---|
| 146 | N DWPK,DWLW,DIC,DIWEPSE,INDEX
|
---|
| 147 | W !,"Enter the Comment to be applied to all selected Consults"
|
---|
| 148 | S DIC="^TMP(""GMRCTMP"","_$J_",1,",DWLW=80,DWPK=1,DIWEPSE=1
|
---|
| 149 | D EN^DIWE
|
---|
| 150 | S INDEX=0
|
---|
| 151 | F S INDEX=$O(^TMP("GMRCTMP",$J,1,INDEX)) Q:'INDEX D
|
---|
| 152 | . S COMMENT(INDEX,0)=^TMP("GMRCTMP",$J,1,INDEX,0)
|
---|
| 153 | K ^TMP("GMRCTMP",$J)
|
---|
| 154 | Q
|
---|
| 155 | WHATTODO() ;how to handle the update
|
---|
| 156 | N DIR
|
---|
| 157 | S DIR(0)="SO^1:Print report only;2:Print report & update records;3:Quit"
|
---|
| 158 | S DIR("A")="Choose the method to handle the report"
|
---|
| 159 | D ^DIR I $D(DIRUT)!(Y=3) Q 0
|
---|
| 160 | Q +Y
|
---|
| 161 | WARNING() ; If REPORT/UPDATE is being task issue warning message.
|
---|
| 162 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT
|
---|
| 163 | I $D(IO("Q")) D
|
---|
| 164 | . W !,"WARNING - Records will automatically be updated since the"
|
---|
| 165 | . W !,"report is being tasked.",!
|
---|
| 166 | S DIR("B")="NO",DIR(0)="Y",DIR("A")="Do you wish to continue??"
|
---|
| 167 | D ^DIR I $D(DIRUT) S Y=0
|
---|
| 168 | Q +Y
|
---|
| 169 | END K ^TMP("GMRCLS",$J) Q
|
---|