| 1 | RACOMDEL ;HIRMFO/GJC-Utility, remove duplicates in ^RAMIS(71.3 ;7/10/97  09:17
 | 
|---|
| 2 | VERSION ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine is called from the RAO7MFN routine after initial
 | 
|---|
| 5 |  ; population of CPRS (OE/RR v3) Orderable Items file.
 | 
|---|
| 6 |  ; Deletes all but one instance of a procedure in the Rad/Nuc Med
 | 
|---|
| 7 |  ; Common Procedure file.
 | 
|---|
| 8 |  K RA1,RA2,RA3,RACNT,RAIEN,RAPROC,^TMP($J,"RA CMMN PROC") S RAPROC=0
 | 
|---|
| 9 |  F  S RAPROC=$O(^RAMIS(71.3,"B",RAPROC)) Q:RAPROC'>0  D
 | 
|---|
| 10 |  . S (RACNT,RAIEN)=0
 | 
|---|
| 11 |  . F  S RAIEN=+$O(^RAMIS(71.3,"B",RAPROC,RAIEN)) Q:RAIEN'>0  D
 | 
|---|
| 12 |  .. S RACNT=RACNT+1 D:RACNT>1 SAVE
 | 
|---|
| 13 |  .. Q
 | 
|---|
| 14 |  . Q
 | 
|---|
| 15 |  I '$D(^TMP($J,"RA CMMN PROC")) D XIT Q
 | 
|---|
| 16 |  S RA1=0
 | 
|---|
| 17 |  F  S RA1=$O(^TMP($J,"RA CMMN PROC",RA1)) Q:RA1'>0  D  ;file 71 ien
 | 
|---|
| 18 |  . S RA2="",RACNT=0
 | 
|---|
| 19 |  . F  S RA2=$O(^TMP($J,"RA CMMN PROC",RA1,RA2)) Q:RA2']""  D  ;active?
 | 
|---|
| 20 |  .. S RA3=0
 | 
|---|
| 21 |  .. F  S RA3=$O(^TMP($J,"RA CMMN PROC",RA1,RA2,RA3)) Q:RA3'>0  D  ;71.3
 | 
|---|
| 22 |  ... S RACNT=RACNT+1 D:RACNT>1 PURGE(RA3)
 | 
|---|
| 23 |  ... Q
 | 
|---|
| 24 |  .. Q
 | 
|---|
| 25 |  . Q
 | 
|---|
| 26 |  D RESEQ ; re-sequence common procedures
 | 
|---|
| 27 | XIT ; Kill variables and quit
 | 
|---|
| 28 |  K RA1,RA2,RA3,RACNT,RAIEN,RAPROC,^TMP($J,"RA CMMN PROC")
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 | PURGE(DA) ; Delete duplicate common procedures saving the first
 | 
|---|
| 31 |  ; occurrence of our common in question.  Data is stored so that active
 | 
|---|
| 32 |  ; common procedures will sort first.
 | 
|---|
| 33 |  ; Input: DA-ien of entry in 71.3 to be deleted!
 | 
|---|
| 34 |  K %,DIC,DIK,X,Y S DIK="^RAMIS(71.3," D ^DIK K %,DIC,DIK,X,Y
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | SAVE ; Save off all common procedure data when more than one occurrence.
 | 
|---|
| 37 |  K RA713,RACTIV
 | 
|---|
| 38 |  I RACNT=2 D
 | 
|---|
| 39 |  . N RAIEN S RAIEN=+$O(^RAMIS(71.3,"B",RAPROC,0)) Q:'RAIEN
 | 
|---|
| 40 |  . S RA713=$G(^RAMIS(71.3,RAIEN,0)) Q:RA713']""
 | 
|---|
| 41 |  . S RACTIV=$S($P(RA713,"^",5)]"":1,1:0)
 | 
|---|
| 42 |  . D SET
 | 
|---|
| 43 |  . Q
 | 
|---|
| 44 |  S RA713=$G(^RAMIS(71.3,RAIEN,0)) Q:RA713']""
 | 
|---|
| 45 |  S RACTIV=$S($P(RA713,"^",5)]"":1,1:0) D SET
 | 
|---|
| 46 |  K RA713,RACTIV
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 | SET ; Set the ^TMP($J,"RA CMMN PROC") global.
 | 
|---|
| 49 |  ; RAPROC=pntr to file 71, RAIEN=ien in file 71.3
 | 
|---|
| 50 |  ; RACTIV=Active flag: 1 for inactive, 0 for active
 | 
|---|
| 51 |  S ^TMP($J,"RA CMMN PROC",RAPROC,RACTIV,RAIEN)=""
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 | RESEQ ;Resequence the common procedure list for all imaging types
 | 
|---|
| 54 |  N D,DA,D0,DI,DIC,DIE,DQ,DR,RACNT,RAI,RAIMGTYI,RAJ,X,Y
 | 
|---|
| 55 |  S DIE="^RAMIS(71.3,",RAIMGTYI=0
 | 
|---|
| 56 |  F  S RAIMGTYI=$O(^RAMIS(71.3,"AA",RAIMGTYI)) Q:RAIMGTYI'>0  D
 | 
|---|
| 57 |  . S (RAI,RACNT)=0
 | 
|---|
| 58 |  . F  S RAI=$O(^RAMIS(71.3,"AA",RAIMGTYI,RAI)) Q:RAI'>0  D
 | 
|---|
| 59 |  .. S RAJ=0
 | 
|---|
| 60 |  .. F  S RAJ=$O(^RAMIS(71.3,"AA",RAIMGTYI,RAI,RAJ)) Q:RAJ'>0  I $D(^RAMIS(71.3,RAJ,0)) D
 | 
|---|
| 61 |  ... S DA=RAJ,RACNT=RACNT+1
 | 
|---|
| 62 |  ... S DR="3////^S X=RACNT" D ^DIE
 | 
|---|
| 63 |  ... Q
 | 
|---|
| 64 |  .. Q
 | 
|---|
| 65 |  . Q
 | 
|---|
| 66 |  Q
 | 
|---|