[628] | 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 | ;
|
---|