1 | MCESEDT ;WISC/DCB-ELECTRONIC SIGNATURE PART 1 ; 2/6/03 9:15am
|
---|
2 | ;;2.3;Medicine;**18,37**;09/13/1996
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | POST(MCFILE,MCREC) ;Get the info about screen and set-up for edit.
|
---|
6 | Q:'MCESON
|
---|
7 | D ENS^%ZISS
|
---|
8 | N ERROR,HDUZ,HOLD,LOOP,MDAT1,MDAT2,NAME,REC,NEWREC,NEWST,ORG,PROV,RNV,SCRAMBLE,SREC,STATUS,TDATE,TEMP,TEMP1,TY,X1,XDUZ,NCHANGE,LINE,XDATE,DIE,DA,DR,CREAT,SUP,DJDN,CODE,CDUZ,EE,DTOUT,DUOUT,DIRUT,DIROUT
|
---|
9 | S RNV=+$P($G(^MCAR(697.2,MCARGNUM,0)),U,17)
|
---|
10 | S ERROR=0,REC=MCREC,NCHANGE=0,(ORG,TEMP)=$G(^MCAR(MCFILE,REC,"ES")),EXIT=0,CODE=$P(TEMP,U,7),PROV=$$ESTONUM1^MCESSCR(CODE),$P(LINE,"_",80)="",MCESPED=TEMP,SUP="" K NEWST
|
---|
11 | S LOOP=PROV
|
---|
12 | I $P(TEMP,U,5)="" S XDUZ=1
|
---|
13 | ;I CODE<3,($P(ORG,U,1)="") S $P(TEMP,U,1)=DUZ,$P(ORG,U,1)=DUZ
|
---|
14 | I PROV<3,($P(ORG,U,1)="") S $P(TEMP,U,1)=DUZ,$P(ORG,U,1)=DUZ
|
---|
15 | E S XDUZ=4
|
---|
16 | S XDUZ=+$P(TEMP,U,XDUZ)
|
---|
17 | I 'MCESSEC D EDD^MCESEDT2 S ^MCAR(MCFILE,MCARGDA,"ES")=TEMP Q
|
---|
18 | S CREAT=$$GETDATE(15)
|
---|
19 | I PROV<1!(PROV>7) S PROV=1
|
---|
20 | I PROV=8 Q
|
---|
21 | S Y=$P(^MCAR(MCFILE,REC,0),U,1) D DD^%DT
|
---|
22 | S MDAT1=Y,MDAT2=$P($G(^MCAR(MCFILE,REC,0)),U,2),MDAT2=$P($G(^MCAR(690,+MDAT2,0)),U,1),MDAT2=$P($G(^DPT(+MDAT2,0)),U,1)
|
---|
23 | S STATUS=$$STATUS(MCFILE,CODE)
|
---|
24 | I PROV<3 S TDATE=$$GETDATE(3)
|
---|
25 | E I PROV=3!(PROV=4)!(PROV=6)!(PROV=7) S TDATE=$$GETDATE(9)
|
---|
26 | E I PROV=5 S TDATE=$$GETDATE(8)
|
---|
27 | D HEADER
|
---|
28 | I $P($G(^MCAR(MCFILE,REC,"ES")),U,7)="" D EDITD S ERROR=0 G SKIP
|
---|
29 | I $D(MCBACK) D EDITSS K MCBACK G SKIP
|
---|
30 | W !!!
|
---|
31 | S DIR(0)="Y",DIR("A")=IOINHI_"Do you want to change the release status"_IOINORM,DIR("B")="N" D ^DIR K DIR I $D(DIRUT)!(Y=0) W @IOF N DIE,DA,DR S DIE="^MCAR("_MCFILE_",",DA=REC,DR="1502///NOW" D ^DIE D EXIT Q
|
---|
32 | SK ;
|
---|
33 | D HEADER,@("EDIT"_$$NUMTOES^MCESSCR(PROV))
|
---|
34 | SKIP ;
|
---|
35 | I EXIT=0 S $P(TEMP,U,7)=SUP_$$NUMTOES^MCESSCR(LOOP) D:LOOP>2 HEADER
|
---|
36 | D:EXIT=0 @("ED"_$$NUMTOES^MCESSCR(LOOP)_"^MCESEDT2")
|
---|
37 | D UPDATE:EXIT=0,NOUPDATE:EXIT=1
|
---|
38 | I '$D(DTOUT) S DIR(0)="E" D ^DIR K DIR
|
---|
39 | EXIT ;
|
---|
40 | D KILL^%ZISS W @IOF Q
|
---|
41 | UPDATE ;
|
---|
42 | W !!,"Record has been updated with new release information",!!
|
---|
43 | S ORG=$P(ORG,U,7) K:ORG'="" ^MCAR(MCFILE,"ES",ORG,REC)
|
---|
44 | S ^MCAR(MCFILE,REC,"ES")=TEMP,^MCAR(MCFILE,"ES",$P(TEMP,U,7),REC)=""
|
---|
45 | Q
|
---|
46 | NOUPDATE ;
|
---|
47 | W !!,"Record has not been updated with new release information",!!
|
---|
48 | ;; ***ORIGINAL*** ;; S ^MCAR(MCFILE,REC,"ES")=ORG
|
---|
49 | ; The 'IF $GET' was added to the set line to prevent dangling
|
---|
50 | ; 'ES' nodes when the user supersedes a record, but up-arrows
|
---|
51 | ; out of the edit and sign-off of the new record.
|
---|
52 | I $G(^MCAR(MCFILE,REC,0))]"" S ^MCAR(MCFILE,REC,"ES")=ORG
|
---|
53 | D DELSS ; NEW LINE
|
---|
54 | Q
|
---|
55 | EDITD ;Draft
|
---|
56 | EDITPD ;Problem Draft
|
---|
57 | S DIR("B")=PROV,DIR(0)="S^1:Draft;2:Problem Draft;3:Released On-Line Verified;4:Released Off-line Verified"
|
---|
58 | S:RNV'=0 DIR(0)=DIR(0)_";5:Released not Verified"
|
---|
59 | D ASK I EXIT=1,($P($G(^MCAR(MCFILE,REC,"ES")),U,7)="") S TY=1,EXIT=0
|
---|
60 | Q:EXIT=1
|
---|
61 | S LOOP=TY
|
---|
62 | Q
|
---|
63 | EDITSRV ;
|
---|
64 | S SUP="S"
|
---|
65 | EDITRV ;Released On-Line Verified
|
---|
66 | S DIR("B")=1,DIR(0)="S^1:Released On-Line Verified;2:Supersede" D ASK Q:EXIT=1
|
---|
67 | S:TY=2 SUP="" S LOOP=$S(TY=1:3,TY=2:8) Q
|
---|
68 | EDITSROV ;
|
---|
69 | S SUP="S"
|
---|
70 | EDITROV ;Released Off-Line Verified
|
---|
71 | S DIR("B")=2,DIR(0)="S^1:Released On-Line Verified;2:Released Off-Line Verified;3:Supersede" D ASK Q:EXIT=1
|
---|
72 | S:TY=3 SUP="" S LOOP=$S(TY=1:3,TY=2:4,TY=3:8) Q
|
---|
73 | EDITRNV ;Released Not Verified
|
---|
74 | S DIR("B")=3,DIR(0)="S^1:Released On-Line Verified;2:Released Off-line Verified;3:Released not Verified;4:Supersede" D ASK Q:EXIT=1
|
---|
75 | S LOOP=$S(TY=1:3,TY=2:4,TY=3:5,TY=4:8) Q
|
---|
76 | EDITSS ;Superseded Change
|
---|
77 | EDITS S SUP="S",DIR("B")=PROV,DIR(0)="S^1:Released On-Line Verified;2:Released Off-line Verified" D ASK
|
---|
78 | I EXIT=1 D DELSS Q
|
---|
79 | S LOOP=$S(TY=1:3,TY=2:4) Q
|
---|
80 | DELSS ;
|
---|
81 | Q:'$D(MCESPREV)
|
---|
82 | W !!,"Since you did not sign the procedure results this report will be"
|
---|
83 | W !,"deleted and the superseded report will be convert back the way it was."
|
---|
84 | BACKSS ;
|
---|
85 | S ^MCAR(MCFILE,MCESPREV,"ES")=MCESTEMP K ^MCAR(MCFILE,"ES","S",MCESPREV)
|
---|
86 | S ^MCAR(MCFILE,"ES",$P(MCESTEMP,U,7),MCESPREV)="" S DIK="^MCAR("_MCFILE_",",DA=MCARGDA D ^DIK
|
---|
87 | Q
|
---|
88 | ASK ;Ask for a status code
|
---|
89 | S DIR("A")=IOINHI_"Please Select a New Status"_IOINORM,DIR("?")="^D HELP^MCESHLP" D ^DIR S TY=Y I $D(DIRUT)!$D(DUOUT)!$D(DTOUT) S EXIT=1
|
---|
90 | I Y=DIR("B"),(PROV>2) S EXIT=1,NCHANGE=1
|
---|
91 | K DIR Q:EXIT=1
|
---|
92 | S NEWST=Y(0) Q
|
---|
93 | HEADER ;
|
---|
94 | W @IOF,IODHLT," * * * Release Control * * *",!,IODHLB," * * * Release Control * * *"
|
---|
95 | W !,LINE
|
---|
96 | W:CREAT'[1700 !!,?4,IOINHI,"Created on: ",IOINORM,CREAT
|
---|
97 | W !!,IOINHI,?14,"DATE: ",IOINORM,MDAT1,!,?16,MDAT2,!!,IOINHI,"Current Status: ",IOINORM,IOBON,STATUS,IOBOFF
|
---|
98 | W:TDATE'="" IOINHI," as of ",IOINORM,TDATE
|
---|
99 | S NAME=$$DECODE^MCESPRT(ORG,CODE,MCFILE,MCARGDA)
|
---|
100 | W !,IOINHI,?16,"by: ",IOINORM,NAME
|
---|
101 | I PROV=4 D PROVID
|
---|
102 | I PROV=7!(PROV=8) S Y=$P(TEMP,U,14) D DD^%DT W !!,"This record supersedes record created on ",IOUON,Y,IOUOFF,"."
|
---|
103 | W:$D(NEWST) !!,IOINHI,?8,"New status: ",IOINORM,NEWST
|
---|
104 | W !,LINE Q
|
---|
105 | PROVID ;
|
---|
106 | W !,IOINHI,?15,"for: ",IOINORM
|
---|
107 | S HDUZ=+$P(TEMP,U,4)
|
---|
108 | I '$D(^VA(200,HDUZ,0)) W "unknown"
|
---|
109 | E W $P(^VA(200,HDUZ,0),U,1)
|
---|
110 | K HDUZ Q
|
---|
111 | GETDATE(EE) ;
|
---|
112 | N Y S Y=$P(TEMP,U,EE) D DD^%DT Q Y
|
---|
113 | STATUS(FILE,PROV) ;
|
---|
114 | N Y,C S Y=PROV,C=$P(^DD(FILE,1506,0),U,2) D Y^DIQ
|
---|
115 | S:Y="" Y="DRAFT"
|
---|
116 | Q Y
|
---|