| 1 | RARTE2 ;HISC/SWM-Edit/Delete a Report ;7/16/01  14:05
 | 
|---|
| 2 |  ;;5.0;Radiology/Nuclear Medicine;**10,31**;Mar 16, 1998
 | 
|---|
| 3 |  ; known vars-->RADFN,RACNI,RADTI,RARPT,RARPTN
 | 
|---|
| 4 | PTR ; if current ^RADPT() rec is a PRINT SET,
 | 
|---|
| 5 |  ; then for other ^RADPT() recs of the same PRINT SET,
 | 
|---|
| 6 |  ; create its corresponding subrec in ^RARPT()
 | 
|---|
| 7 |  S RAXIT=0
 | 
|---|
| 8 |  I '$D(RADFN)!'$D(RACNI)!'$D(RADTI)!'$D(RARPT)!'$D(RARPTN) D  Q
 | 
|---|
| 9 |  . S RAXIT=1 Q:$G(RARIC)
 | 
|---|
| 10 |  . I '$D(RAQUIET) W !!,$C(7),"Missing data (routine RARTE2)",! S RAOUT=$$EOS^RAUTL5() Q
 | 
|---|
| 11 |  . S RAERR="Missing data needed by routine RARTE2"
 | 
|---|
| 12 |  . Q
 | 
|---|
| 13 |  N RA1,RA2,RA3,RAFDA,RAIEN,RAMSG ;RA3=exam status
 | 
|---|
| 14 |  S RA1=0
 | 
|---|
| 15 | PTR2 S RA1=$O(^RADPT(RADFN,"DT",RADTI,"P","B",RA1)) Q:RA1=""  S RA2=$O(^(RA1,0)),RA3=$P(^RADPT(RADFN,"DT",RADTI,"P",RA2,0),"^",3) G:$P(^(0),"^",25)'=2 PTR2 ;skip non-combined rpt
 | 
|---|
| 16 |  G:RA2=RACNI PTR2 ;skip already processed case
 | 
|---|
| 17 |  K RAFDA,RAIEN,RAMSG
 | 
|---|
| 18 | ASK G:$G(RARIC) UPD G:$D(RAQUIET) UPD ; don't ask, if from Img pkg or Kurzweil
 | 
|---|
| 19 |  I $P(^RA(72,+RA3,0),"^",3)=0 D  G:%=2 PTR2 G:%'=1 ASK
 | 
|---|
| 20 |  . W !!,"Case ",RA1," of this print set has been cancelled."
 | 
|---|
| 21 |  . W !,"Do you want to include it in the report anyway"
 | 
|---|
| 22 |  . S %=2 D YN^DICN
 | 
|---|
| 23 |  . W:%>0 "...",$S(%=2:"Ex",%=1:"In",1:""),"clude case ",RA1
 | 
|---|
| 24 |  . Q
 | 
|---|
| 25 |  ; update file #70, field REPORT TEXT
 | 
|---|
| 26 | UPD S $P(^RADPT(RADFN,"DT",RADTI,"P",RA2,0),U,17)=RARPT
 | 
|---|
| 27 |  D INSERT
 | 
|---|
| 28 |  Q:RAXIT  G PTR2
 | 
|---|
| 29 | INSERT ; add subrec to file #74's subfile #74.05
 | 
|---|
| 30 |  S RAFDA(74.05,"?+2,"_RARPT_",",.01)=$P(RARPTN,"-")_"-"_RA1
 | 
|---|
| 31 |  D UPDATE^DIE("","RAFDA","RAIEN","RAMSG")
 | 
|---|
| 32 |  I $D(RAMSG) D  Q
 | 
|---|
| 33 |  . S RAXIT=1 Q:$G(RARIC)
 | 
|---|
| 34 |  . I '$D(RAQUIET) W !!,$C(7),"Error encountered while setting sub-records (routine RARTE2)",! S RAOUT=$$EOS^RAUTL5() Q  ;error detected
 | 
|---|
| 35 |  . S RAERR="Error encountered while setting sub-recs from RARTE2"
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 | DEL17(RAIEN) ;del other print set members' pointer to #74
 | 
|---|
| 38 |  Q:'$D(RADFN)!('$D(RADTI))
 | 
|---|
| 39 |  N RA4,RA1 D EN3^RAUTL20(.RA4)
 | 
|---|
| 40 |  Q:'$O(RA4(0))
 | 
|---|
| 41 |  S RA1=""
 | 
|---|
| 42 | D18 S RA1=$O(RA4(RA1)) Q:RA1=""
 | 
|---|
| 43 |  ; kill xrefs, if any, for file #70's REPORT TEXT
 | 
|---|
| 44 |  S DA(2)=RADFN,DA(1)=RADTI,DA=RA1
 | 
|---|
| 45 |  ; if this exam's piece 17 doesn't match RAIEN, then don't remove pc17
 | 
|---|
| 46 |  I $P($G(^RADPT(RADFN,"DT",RADTI,"P",RA1,0)),"^",17)'=RAIEN G D18
 | 
|---|
| 47 |  D ENKILL^RAXREF(70.03,17,RAIEN,.DA)
 | 
|---|
| 48 |  ; set REPORT TEXT to null
 | 
|---|
| 49 |  S:$D(^RADPT(RADFN,"DT",RADTI,"P",RA1,0)) $P(^(0),"^",17)=""
 | 
|---|
| 50 |  G D18
 | 
|---|
| 51 | COPY ;copy physicians and diagnoses
 | 
|---|
| 52 |  Q:'$D(RADFN)!('$D(RADTI))!('$D(RACNI))!('$D(RAMEMARR))!('$D(RADRS))
 | 
|---|
| 53 |  W !!,"... now copying ",$S(RADRS=1:"Diagnostic Codes",1:"Staff & Resident data")," to other cases in this print set ...",!
 | 
|---|
| 54 |  N RA1,RA2,RA3
 | 
|---|
| 55 |  N RA1PR,RA1PS ;prim res/staff
 | 
|---|
| 56 |  N RA1SR,RA1SS ; sec res/staff arrays--(ien subfile #70.11)=ien file #200
 | 
|---|
| 57 |  N RA1PD,RA1SD ; prim diag, then sec diags array
 | 
|---|
| 58 |  N RAFDA,RAIEN,RAMSG
 | 
|---|
| 59 |  ;prim res, prim staff, prim diag
 | 
|---|
| 60 |  S RA1=^RADPT(RADFN,"DT",RADTI,"P",RACNI,0) S:RADRS=2 RA1PR=$P(RA1,"^",12),RA1PS=$P(RA1,"^",15) S:RADRS=1 RA1PD=$P(RA1,"^",13)
 | 
|---|
| 61 |  ;sec residents
 | 
|---|
| 62 |  I RADRS=2,$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"SRR",0)) S RA1=0 F  S RA1=$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"SRR",RA1)) Q:+RA1'=RA1  S RA1SR(RA1)=+^(RA1,0)
 | 
|---|
| 63 |  ;sec staff
 | 
|---|
| 64 |  I RADRS=2,$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"SSR",0)) S RA1=0 F  S RA1=$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"SSR",RA1)) Q:+RA1'=RA1  S RA1SS(RA1)=+^(RA1,0)
 | 
|---|
| 65 |  ;sec diagnoses
 | 
|---|
| 66 |  I RADRS=1,$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"DX",0)) S RA1=0 F  S RA1=$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"DX",RA1)) Q:+RA1'=RA1  S RA1SD(RA1)=+^(RA1,0)
 | 
|---|
| 67 |  ;loop thru other cases of this printset
 | 
|---|
| 68 |  S RA1=0
 | 
|---|
| 69 | COPYLOOP S RA1=$O(RAMEMARR(RA1)) G:RA1="" COPYREF G:RA1=RACNI COPYLOOP ;skip what's done already
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  ; copy primary staff and resident via Fileman
 | 
|---|
| 72 |  I RADRS=2 D
 | 
|---|
| 73 |  . S DA(2)=RADFN,DA(1)=RADTI,DA=RA1
 | 
|---|
| 74 |  . S DIE="^RADPT("_DA(2)_",""DT"","_DA(1)_",""P"","
 | 
|---|
| 75 |  . S DR="12////"_RA1PR_";15////"_RA1PS
 | 
|---|
| 76 |  . D ^DIE K DA,DIE,DR ; no locking
 | 
|---|
| 77 |  . Q
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  ; copy primary diagnostic code via Fileman
 | 
|---|
| 80 |  I RADRS=1 D
 | 
|---|
| 81 |  . S DA(2)=RADFN,DA(1)=RADTI,DA=RA1
 | 
|---|
| 82 |  . S DIE="^RADPT("_DA(2)_",""DT"","_DA(1)_",""P"","
 | 
|---|
| 83 |  . S DR="13////"_RA1PD
 | 
|---|
| 84 |  . D ^DIE K DA,DIE,DR ; no locking
 | 
|---|
| 85 |  . Q
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 |  S RA2=RA1_","_RADTI_","_RADFN ;stem for dataserver call
 | 
|---|
| 88 |  S DA(3)=RADFN,DA(2)=RADTI,DA(1)=RA1 ;base vars for DIK call
 | 
|---|
| 89 |  I RADRS=2 S RA3=0 D KIL3 G:RAXIT Q ; sec res
 | 
|---|
| 90 |  I RADRS=2 S RA3=0 D KIL4 G:RAXIT Q ; sec staff
 | 
|---|
| 91 |  I RADRS=1 S RA3=0 D KIL5 G:RAXIT Q ; sec diag
 | 
|---|
| 92 |  G COPYLOOP
 | 
|---|
| 93 | KIL3 S RA3=$O(^RADPT(RADFN,"DT",RADTI,"P",RA1,"SRR",RA3)) G:RA3="" COPY3
 | 
|---|
| 94 |  S DA=RA3
 | 
|---|
| 95 |  S DIK="^RADPT("_DA(3)_",""DT"","_DA(2)_",""P"","_DA(1)_",""SRR"","
 | 
|---|
| 96 |  D ^DIK
 | 
|---|
| 97 |  G KIL3
 | 
|---|
| 98 | COPY3 K RAFDA,RAIEN,RAMSG S RA3=$O(RA1SR(RA3)) Q:'RA3  Q:RAXIT
 | 
|---|
| 99 | UP3 ;
 | 
|---|
| 100 |  S RAFDA(70.09,"?+2,"_RA2_",",.01)=RA1SR(RA3)
 | 
|---|
| 101 |  D UPDATE^DIE("","RAFDA","RAIEN","RAMSG") G:'$D(RAMSG) COPY3
 | 
|---|
| 102 |  S RAXIT=1 W !!,$C(7),"Error encountered while in adding rec ",RA3," to sub-file 70.09" Q
 | 
|---|
| 103 | KIL4 S RA3=$O(^RADPT(RADFN,"DT",RADTI,"P",RA1,"SSR",RA3)) G:RA3="" COPY4
 | 
|---|
| 104 |  S DA=RA3
 | 
|---|
| 105 |  S DIK="^RADPT("_DA(3)_",""DT"","_DA(2)_",""P"","_DA(1)_",""SSR"","
 | 
|---|
| 106 |  D ^DIK
 | 
|---|
| 107 |  G KIL4
 | 
|---|
| 108 | COPY4 K RAFDA,RAIEN,RAMSG S RA3=$O(RA1SS(RA3)) Q:'RA3  Q:RAXIT
 | 
|---|
| 109 | UP4 ;
 | 
|---|
| 110 |  S RAFDA(70.11,"?+2,"_RA2_",",.01)=RA1SS(RA3)
 | 
|---|
| 111 |  D UPDATE^DIE("","RAFDA","RAIEN","RAMSG") G:'$D(RAMSG) COPY4
 | 
|---|
| 112 |  S RAXIT=1 W !!,$C(7),"Error encountered while in adding rec ",RA3," to sub-file 70.11" Q
 | 
|---|
| 113 | KIL5 S RA3=$O(^RADPT(RADFN,"DT",RADTI,"P",RA1,"DX",RA3)) G:RA3="" COPY5
 | 
|---|
| 114 |  S DA=RA3
 | 
|---|
| 115 |  S DIK="^RADPT("_DA(3)_",""DT"","_DA(2)_",""P"","_DA(1)_",""DX"","
 | 
|---|
| 116 |  D ^DIK
 | 
|---|
| 117 |  G KIL5
 | 
|---|
| 118 | COPY5 K RAFDA,RAIEN,RAMSG S RA3=$O(RA1SD(RA3)) Q:'RA3  Q:RAXIT
 | 
|---|
| 119 | UP5 ;
 | 
|---|
| 120 |  S RAFDA(70.14,"?+2,"_RA2_",",.01)=RA1SD(RA3)
 | 
|---|
| 121 |  D UPDATE^DIE("","RAFDA","RAIEN","RAMSG") G:'$D(RAMSG) COPY5
 | 
|---|
| 122 |  S RAXIT=1 W !!,$C(7),"Error encountered while in adding rec ",RA3," to sub-file 70.14" Q
 | 
|---|
| 123 | COPYREF ; clear out Fileman vars and quit
 | 
|---|
| 124 |  K DA,DIK
 | 
|---|
| 125 |  Q  ; don't need to re-xref again
 | 
|---|
| 126 | Q K DA Q
 | 
|---|