1 | PXRMEXCF ; SLC/PKR - Reminder exchange routines for computed findings. ;06/28/2007
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**6**;Feb 04, 2005;Build 123
|
---|
3 | ;==============================================
|
---|
4 | EXISTS(ROUTINE) ;Return true if routine ROUTINE exists.
|
---|
5 | I ROUTINE="" Q 0
|
---|
6 | N RTN
|
---|
7 | S RTN="^"_ROUTINE
|
---|
8 | Q $S($T(@RTN)'="":1,1:0)
|
---|
9 | ;
|
---|
10 | ;==============================================
|
---|
11 | GETRACT(ATTR,NEWNAME,NAMECHG,RTN,EXISTS) ;Get the action for a routine.
|
---|
12 | N ACTION,CHOICES,CSUM,DIR,DIROUT,DIRUT,DTOUT,DUOUT,ECS,IND,MSG
|
---|
13 | N PCS,ROUTINE,SAME,TEXT,X,Y
|
---|
14 | S NEWNAME=""
|
---|
15 | S ROUTINE=ATTR("NAME")
|
---|
16 | I EXISTS="" S EXISTS=$$EXISTS^PXRMEXCF(ROUTINE)
|
---|
17 | S CHOICES=$S(EXISTS:"COQS",1:"CIQS")
|
---|
18 | I EXISTS D
|
---|
19 | .;If the routine exists compare the existing routine checksum with the
|
---|
20 | .;the checksum of the routine in the packed definition.
|
---|
21 | . S CSUM=$$RTNCS^PXRMEXCS(ROUTINE)
|
---|
22 | . S SAME=$S(ATTR("CHECKSUM")=CSUM:1,1:0)
|
---|
23 | . S TEXT(1)="Routine "_ROUTINE_" already exists "
|
---|
24 | . I SAME D
|
---|
25 | .. S TEXT(1)=TEXT(1)_"and the packed routine is identical, skipping."
|
---|
26 | .. W !,TEXT(1),! H 2
|
---|
27 | .. S ACTION="S"
|
---|
28 | . I 'SAME D
|
---|
29 | .. S TEXT(1)=TEXT(1)_"but the packed routine is different,"
|
---|
30 | .. S TEXT(2)="what do you want to do?"
|
---|
31 | .. W !,TEXT(1),!,TEXT(2)
|
---|
32 | .. S DIR("B")="O"
|
---|
33 | .. S ACTION=$$GETACT^PXRMEXIU(CHOICES,.DIR)
|
---|
34 | E D
|
---|
35 | . W !!,"Routine "_ROUTINE_" is new, what do you want to do?"
|
---|
36 | . S DIR("B")="I"
|
---|
37 | . S ACTION=$$GETACT^PXRMEXIU(CHOICES,.DIR)
|
---|
38 | ;
|
---|
39 | I (ACTION="Q")!(ACTION="S") Q ACTION
|
---|
40 | ;
|
---|
41 | I ACTION="C" D
|
---|
42 | . N CDONE
|
---|
43 | . S CDONE=0
|
---|
44 | . F Q:CDONE D
|
---|
45 | .. S NEWNAME=$$GETNAME^PXRMEXIU(ATTR("MIN FIELD LENGTH"),ATTR("FIELD LENGTH"))
|
---|
46 | .. I NEWNAME="" S ACTION="S",CDONE=1 Q
|
---|
47 | .. S EXISTS=$$EXISTS^PXRMEXCF(NEWNAME)
|
---|
48 | .. I EXISTS W !,"Routine ",NEWNAME," already exists, try again."
|
---|
49 | .. E D Q
|
---|
50 | ... S CDONE=1
|
---|
51 | ... S NAMECHG(ATTR("FILE NUMBER"),ROUTINE)=NEWNAME
|
---|
52 | ;
|
---|
53 | I (ACTION="I")&(EXISTS) D
|
---|
54 | .;If the action is overwrite double check that overwrite is what the
|
---|
55 | .;user really wants to do.
|
---|
56 | . K DIR
|
---|
57 | . S DIR(0)="Y"_U_"A"
|
---|
58 | . S DIR("A")="Are you sure you want to overwrite"
|
---|
59 | . S DIR("B")="N"
|
---|
60 | . D ^DIR
|
---|
61 | . I $D(DIROUT)!$D(DIRUT) S Y=0
|
---|
62 | . I $D(DTOUT)!$D(DUOUT) S Y=0
|
---|
63 | . I 'Y S ACTION="S"
|
---|
64 | . S NAMECHG(ATTR("FILE NUMBER"),ROUTINE)=NEWNAME
|
---|
65 | Q ACTION
|
---|
66 | ;
|
---|