1 | RASTREQ1 ;HISC/CAH,GJC AISC/MJK-Cont. of RASTREQ status reqmts ck ;5/29/97 12:52
|
---|
2 | ;;5.0;Radiology/Nuclear Medicine;**34,85**;Mar 16, 1998;Build 4
|
---|
3 | ;
|
---|
4 | ; STUFF -- Called from UP1^RAUTL1 for editing an exam
|
---|
5 | ; LOOP -- Called from RASTREQ for status tracking
|
---|
6 | ; and from RASTREQ for cancel an exam
|
---|
7 | ;
|
---|
8 | ;Determine whether exam status can be updated to next higher status
|
---|
9 | ;After this subrtn is executed, the following variables will exist:
|
---|
10 | ; RAOR= order seq no., = -1 if not eligible for an update
|
---|
11 | ; RASN= new status external format (or same status if not updateable)
|
---|
12 | ; RASTI= ien of new status if updateable
|
---|
13 | ;This subrtn does not write any data to the status field, it only
|
---|
14 | ;checks to see what the next status would be
|
---|
15 | ;RABEFORE = status level BEFORE change
|
---|
16 | ;RAAFTER = status level AFTER change
|
---|
17 | ;
|
---|
18 | ; 06/11/2007 BAY/KAM RA*5*85 Remedy Call 174790 Change exam cancel
|
---|
19 | ; to allow only descendent with stub/images
|
---|
20 | ;
|
---|
21 | STUFF ; initialize RAOR=-1 to assume NO change if early quit
|
---|
22 | S RAJ=$G(^RADPT(DA(2),"DT",DA(1),"P",DA,0)),RAOR=-1
|
---|
23 | S RABEFORE=$P($G(^RA(72,+$P(RAJ,U,3),0)),U,3)
|
---|
24 | S RAORDIFN=+$P(RAJ,"^",11),RACS=$P(RAJ,"^",24),RAPRIT=$P(RAJ,"^",2)
|
---|
25 | I $D(^RA(72,+$P(RAJ,"^",3),0)) S RASN=$P(^(0),"^") Q:$P(^(0),"^",3)'>0
|
---|
26 | I $P(RAJ,"^",6)]"" S RAF5=$P(RAJ,"^",6)
|
---|
27 | S RAIMGTYI=$P($G(^RADPT(DA(2),"DT",DA(1),0)),U,2),RAIMGTYJ=$P(^RA(79.2,RAIMGTYI,0),U)
|
---|
28 | ; set RAOR, RASN, RASTI to lowest level's, to allow event when
|
---|
29 | ; none of the levels meet all the requirements for that level
|
---|
30 | LOOP S RAOR=$S($O(^RA(72,"AA",RAIMGTYJ,0))>0:$O(^(0)),1:1)
|
---|
31 | S RASTI=+$O(^RA(72,"AA",RAIMGTYJ,RAOR,0)),RASN=$P($G(^RA(72,+RASTI,0)),U)
|
---|
32 | ;
|
---|
33 | N RA
|
---|
34 | F K=0:0 S K=$O(^RA(72,"AA",RAIMGTYJ,K)) Q:K'>0 D
|
---|
35 | . S X="",E=+$O(^RA(72,"AA",RAIMGTYJ,K,0)) Q:E'>0
|
---|
36 | . I $D(^RA(72,E,0)) D
|
---|
37 | .. S RA(0)=$G(^RA(72,E,0)),N=$P(RA(0),"^"),RAS=$G(^RA(72,E,.1))
|
---|
38 | .. I '$L(RAS) S RAS="N"
|
---|
39 | .. D HELP1^RASTREQ I $D(X),K>RAOR S RAOR=K,RASTI=E,RASN=N
|
---|
40 | .. Q
|
---|
41 | . Q
|
---|
42 | S RAAFTER=RAOR
|
---|
43 | I $D(RASTI),RASTI=$P(RAJ,"^",3) S RAOR=-1
|
---|
44 | K RAZ,RAK,RAE,RAIMGTYI,RAIMGTYJ,E,RAS,RAJ,RAJ1,N,K,FL
|
---|
45 | Q
|
---|
46 | CANCEL ; cancel an exam
|
---|
47 | S RAOR=0,RASTI=RAXX,RASN=$P($G(^RA(72,RAXX,0)),"^")
|
---|
48 | S RAAFTER=RAOR
|
---|
49 | Q:$D(RAOPT("DELETEXAM")) ; 1st chk skip, 2nd chk done already<-- delxam
|
---|
50 | ; check again: 'allow cancelling' and if report exists
|
---|
51 | ; in case Fileman enter/edit was used directly on the EXAM STATUS field
|
---|
52 | ; if either check fails, set RAAFTER=RABEFORE so status can't change
|
---|
53 | I $D(^RA(72,+$P(RAJ,U,3),0)),$P(^(0),"^",6)'="y" W !,"This exam is in the '",$P(^(0),"^"),"' status and cannot be 'CANCELLED'" S RAAFTER=RABEFORE Q
|
---|
54 | ; ok to cancel descendent exam w images if stub rpt and user has RA MGR key
|
---|
55 | ; 06/11/2007 *85 Added descendent check to next line
|
---|
56 | I $P(RAJ,U,17)'="",$$STUB^RAEDCN1($P(RAJ,U,17)),($$PSET^RAEDCN1(RADFN,RADTI,RACNI)),$D(^XUSEC("RA MGR",+$G(DUZ))) Q
|
---|
57 | ; can't cancel exam if report isn't stub
|
---|
58 | I $P(RAJ,U,17)'="" W !,"A report has been filed for this case. Therefore cancellation is not allowed !" S RAAFTER=RABEFORE
|
---|
59 | Q
|
---|