| 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 | 
|---|