[613] | 1 | RAUTL17 ;HISC/DAD-RAD/NUC MED COMMON PROCEDURE FILE (#71.3) UTILITIES ;6/14/96 11:34
|
---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
|
---|
| 3 | EN1 ; *** Get an imaging type
|
---|
| 4 | ; Input: None
|
---|
| 5 | ; Output: The variable 'Y' will be one of the following
|
---|
| 6 | ; -1 = No imaging type selected (up-arrow, time-out, etc.)
|
---|
| 7 | ; 0 = No active imaging types found
|
---|
| 8 | ; IEN = IMAGING TYPE file (#79.2) IEN
|
---|
| 9 | N DIC,RAI,RAIMGTYI,X
|
---|
| 10 | ; *** Get active imaging types (must have at least one imaging
|
---|
| 11 | ; location and at least one procedure to be active)
|
---|
| 12 | S (RAI,RAIMGTYI)=0
|
---|
| 13 | F S RAIMGTYI=$O(^RA(79.2,RAIMGTYI)) Q:RAIMGTYI'>0 D
|
---|
| 14 | . I $O(^RAMIS(71,"AIMG",RAIMGTYI,0)),$O(^RA(79.1,"BIMG",RAIMGTYI,0)) D
|
---|
| 15 | .. S RAIMGTYI(RAIMGTYI)=1
|
---|
| 16 | .. Q
|
---|
| 17 | . Q
|
---|
| 18 | S RAIMGTYI=+$O(RAIMGTYI(0))
|
---|
| 19 | ; *** No active imaging types
|
---|
| 20 | I RAIMGTYI'>0 D S Y=0 G EN1EXIT
|
---|
| 21 | . W !!?5,"No 'active' imaging types were found. For an imaging"
|
---|
| 22 | . W !?5,"type to be active it must be assigned to at least one"
|
---|
| 23 | . W !?5,"imaging location and at least one procedure."
|
---|
| 24 | . Q
|
---|
| 25 | ; *** Only one active imaging type
|
---|
| 26 | I $O(RAIMGTYI(RAIMGTYI))'>0 S Y=RAIMGTYI G EN1EXIT
|
---|
| 27 | ; *** display the imaging types available for selection
|
---|
| 28 | W !,"Select one of the following imaging types:"
|
---|
| 29 | F S RAI=$O(RAIMGTYI(RAI)) Q:RAI'>0 W !?3,$$GET1^DIQ(79.2,RAI_",",.01)
|
---|
| 30 | ; *** Prompt for active imaging type
|
---|
| 31 | K DIC S DIC="^RA(79.2,",DIC(0)="AEMQ",DIC("A")="Select IMAGING TYPE: "
|
---|
| 32 | S DIC("S")="I $G(RAIMGTYI(+Y))"
|
---|
| 33 | W ! D ^DIC S Y=+Y
|
---|
| 34 | EN1EXIT Q
|
---|
| 35 | ;
|
---|
| 36 | EN2(RAIMGTYI,RAPROCD0) ; *** Common procedure file error check
|
---|
| 37 | ; Input: IMAGING TYPE file (#79.2) IEN (RAIMGTYI)
|
---|
| 38 | ; PROCEDURE file (#71) IEN (RAPROCD0) (Optional)
|
---|
| 39 | ; Output: Number_of_Common_Proccedures ^ $S(Duplicate_Sequence#:1,1:0)
|
---|
| 40 | ;
|
---|
| 41 | N RA,RACNT,RAD0,RADUP,RASEQ
|
---|
| 42 | S (RASEQ,RACNT,RADUP)=0
|
---|
| 43 | F S RASEQ=$O(^RAMIS(71.3,"AA",RAIMGTYI,RASEQ)) Q:RASEQ'>0 D
|
---|
| 44 | . S RAD0=0
|
---|
| 45 | . F S RAD0=$O(^RAMIS(71.3,"AA",RAIMGTYI,RASEQ,RAD0)) Q:RAD0'>0 D
|
---|
| 46 | .. S RACNT=RACNT+1 I $G(RASEQ(RASEQ)) S RADUP=1
|
---|
| 47 | .. S RASEQ(RASEQ)=$S($G(RASEQ(RASEQ)):RASEQ(RASEQ)_U,1:"")_RAD0
|
---|
| 48 | .. Q
|
---|
| 49 | . Q
|
---|
| 50 | I $G(RAPROCD0),RADUP'>0 D
|
---|
| 51 | . S RAD0=0 K RASEQ
|
---|
| 52 | . F S RAD0=$O(^RAMIS(71.3,"B",RAPROCD0,RAD0)) Q:RAD0'>0 D
|
---|
| 53 | .. S RA=$G(^RAMIS(71.3,RAD0,0)),RASEQ=$P(RA,U,4)
|
---|
| 54 | .. I RASEQ S RASEQ(RASEQ)=""
|
---|
| 55 | .. Q
|
---|
| 56 | . S RASEQ=0
|
---|
| 57 | . F S RASEQ=$O(RASEQ(RASEQ)) Q:RASEQ'>0!RADUP D
|
---|
| 58 | .. I $O(^RAMIS(71.3,"AA",RAIMGTYI,RASEQ,0)) S RADUP=1
|
---|
| 59 | .. Q
|
---|
| 60 | . Q
|
---|
| 61 | Q RACNT_U_RADUP
|
---|
| 62 | ;
|
---|
| 63 | EN3(D0) ; *** imaging type of a procedure
|
---|
| 64 | ; Input: RAD/NUC MED PROCEDURE file (#71) IEN
|
---|
| 65 | ; Output: IMAGING TYPE file (#79.2) IEN
|
---|
| 66 | Q +$P($G(^RAMIS(71,+D0,0)),U,12)
|
---|
| 67 | ;
|
---|
| 68 | EN5(RAD0,RAIMGTYI,RASEQ,SK) ; *** Update ^RAMIS(71.3,"AA", xref
|
---|
| 69 | ; Input: RAD0 = RAD/NUC MED COMMON PROCEDURE file (#71.3) IEN
|
---|
| 70 | ; RAPRC = PROCEDURE file (#71) IEN
|
---|
| 71 | ; RASEQ = Sequence number
|
---|
| 72 | ; SK = Set/Kill flag: $S(SK="S":Set_xref,SK="K":Kill_xref)
|
---|
| 73 | I (RASEQ'>0)!(RAIMGTYI'>0) Q
|
---|
| 74 | I SK="S" S ^RAMIS(71.3,"AA",RAIMGTYI,RASEQ,RAD0)=""
|
---|
| 75 | I SK="K" K ^RAMIS(71.3,"AA",RAIMGTYI,RASEQ,RAD0)
|
---|
| 76 | Q
|
---|
| 77 | ;
|
---|
| 78 | EN6(RAIMGTYI,RAPROCD0) ; *** Common procedure file error messages
|
---|
| 79 | ;Invoked when .01 field of file 71.3 is edited, allowing the user
|
---|
| 80 | ;to change the procedure that the .01 field points to
|
---|
| 81 | ; Input: IMAGING TYPE file (#79.2) IEN (RAIMGTYI)
|
---|
| 82 | ; PROCEDURE file (#71) IEN (RAPROCD0)
|
---|
| 83 | N RA,RACNT,RADUP
|
---|
| 84 | S RA=$$EN2(RAIMGTYI,RAPROCD0),RACNT=$P(RA,U),RADUP=$P(RA,U,2)
|
---|
| 85 | I RACNT>40!RADUP D K X
|
---|
| 86 | . N RATXT
|
---|
| 87 | . S RATXT(1)=""
|
---|
| 88 | . S RATXT(2)="Changing/ADDING this procedure would cause the following"
|
---|
| 89 | . S RATXT(3)="problem(s) in the Rad/Nuc Med Common Procedure file:"
|
---|
| 90 | . S RATXT(4)=""
|
---|
| 91 | . I RACNT>40 S RATXT(10)=" More than 40 common procedures with the same imaging type."
|
---|
| 92 | . I RADUP S RATXT(20)=" Two or more procedures with the same sequence number."
|
---|
| 93 | . S RATXT(30)=""
|
---|
| 94 | . S RATXT(31)="In order to change this procedure you must first"
|
---|
| 95 | . S RATXT(32)="inactivate it in the Rad/Nuc Med Common Procedure file."
|
---|
| 96 | . S RATXT(33)=""
|
---|
| 97 | . D EN^DDIOL(.RATXT)
|
---|
| 98 | . Q
|
---|
| 99 | Q
|
---|
| 100 | DESC(RAD0,RAY) ; Detemine if a procedure qualifies as a descendent for this
|
---|
| 101 | ; parent procedure. Descendent must be either a detailed or series
|
---|
| 102 | ; type procedure, must be of same imaging type of the parent, and must
|
---|
| 103 | ; not be inactive. Called from ^DD(71.05,.01,0)
|
---|
| 104 | ; 'RAD0' ien of parent procedure in file 71
|
---|
| 105 | ; 'RAY' ien of pointed to procedure in file 71
|
---|
| 106 | ; Returns: 'RA' i.e, 0:invalid procedure, 1:valid procedure
|
---|
| 107 | ; RAPARNT: zero node of parent procedure
|
---|
| 108 | ; RAPARNT(12): i-type of parent procedure
|
---|
| 109 | ; RADESC : zero node of descendent procedure
|
---|
| 110 | ; RADESC("I"): inactivation date (if any) of descendent
|
---|
| 111 | ; RADESC(6) : procedure type of descendent
|
---|
| 112 | ; RADESC(12) : i-type of descendent procedure
|
---|
| 113 | Q:RAD0'>0!(RAY'>0) 0
|
---|
| 114 | Q:'$D(^RAMIS(71,RAD0,0))!('$D(^RAMIS(71,RAY,0))) 0
|
---|
| 115 | N RA,RAI,RADESC,RAPARNT S RA=0
|
---|
| 116 | S RAPARNT=$G(^RAMIS(71,RAD0,0)),RAPARNT(12)=+$P(RAPARNT,U,12)
|
---|
| 117 | S RADESC=$G(^RAMIS(71,RAY,0)),RADESC(6)=$P(RADESC,U,6)
|
---|
| 118 | S RADESC(12)=$P(RADESC,U,12)
|
---|
| 119 | S RADESC("I")=+$G(^RAMIS(71,RAY,"I"))
|
---|
| 120 | S RAI=$S(RADESC("I")=0:1,RADESC("I")>DT:1,1:0)
|
---|
| 121 | I RADESC(12)=RAPARNT(12),("^D^S^"[(U_RADESC(6)_U)),(RAI) S RA=1
|
---|
| 122 | Q RA
|
---|