| 1 | RAUTL7A ;HISC/CAH,FPT-Utility for RACCESS array ;9/10/01  15:13
 | 
|---|
| 2 |  ;;5.0;Radiology/Nuclear Medicine;**31**;Mar 16, 1998
 | 
|---|
| 3 | LOCIMG1() ;Determines if user has access to more than one loc of
 | 
|---|
| 4 |  ;the current imaging type
 | 
|---|
| 5 |  ;Returns Null if more than one Rad/NM Loc, or if no access
 | 
|---|
| 6 |  ;Returns Rad/NM Loc File 79.1 IEN if one only.
 | 
|---|
| 7 |  N X,Y,Z,RALOCTOT S X=$O(RACCESS(DUZ,"LOC",0)) Q:'X ""
 | 
|---|
| 8 |  S (RALOCTOT,X)=0 S Z=$O(^RA(79.2,"B",RAIMGTY,0))
 | 
|---|
| 9 |  F  S X=$O(RACCESS(DUZ,"LOC",X)) Q:'X  D
 | 
|---|
| 10 |  . I $P($G(^RA(79.1,X,0)),U,6)=Z S RALOCSAV=X,RALOCTOT=RALOCTOT+1
 | 
|---|
| 11 |  . Q
 | 
|---|
| 12 |  I RALOCTOT=1 Q RALOCSAV
 | 
|---|
| 13 |  Q ""
 | 
|---|
| 14 | ERROR ; Display error message
 | 
|---|
| 15 |  W !!?5,"You do not have access to any Imaging Locations."
 | 
|---|
| 16 |  W !?5,"Contact your ADPAC for further assistance.",$C(7)
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 | IMGNUM() ; Detrmines the number of selectable imaging types based on
 | 
|---|
| 19 |  ; division parameters.  Called fron SELIMG^RAUTL7
 | 
|---|
| 20 |  N X,Y S (X,Y)=0
 | 
|---|
| 21 |  F  S X=$O(^TMP($J,"DIV-IMG",X)) Q:X'>0  S Y=Y+1
 | 
|---|
| 22 |  Q Y
 | 
|---|
| 23 | SETUP ; Setup temp global to screen i-type by division
 | 
|---|
| 24 |  ; Requires ^TMP($J,"RA D-TYPE",Division name), RACCESS "DIV-IMG"
 | 
|---|
| 25 |  ; elements.  Creates ^TMP($J,"DIV-IMG",Imaging Type IEN)=""
 | 
|---|
| 26 |  ; Called fron SELIMG^RAUTL7
 | 
|---|
| 27 |  N RAX,RAY,RAZ S RAX=""
 | 
|---|
| 28 |  F  S RAX=$O(^TMP($J,"RA D-TYPE",RAX)) Q:RAX']""  D
 | 
|---|
| 29 |  . I $D(RACCESS(DUZ,"DIV-IMG",RAX)) D
 | 
|---|
| 30 |  .. S RAY="" F  S RAY=$O(RACCESS(DUZ,"DIV-IMG",RAX,RAY)) Q:RAY']""  D
 | 
|---|
| 31 |  ... S RAZ=+$O(^RA(79.2,"B",RAY,0)),^TMP($J,"DIV-IMG",RAZ)=""
 | 
|---|
| 32 |  ... Q
 | 
|---|
| 33 |  .. Q
 | 
|---|
| 34 |  . Q
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | LOCNUM() ;Detrmines the number of selectable imaging locations based on
 | 
|---|
| 37 |  ; division parameters.  Called fron SELLOC^RAUTL7
 | 
|---|
| 38 |  N X,Y S (X,Y)=0
 | 
|---|
| 39 |  F  S X=$O(^TMP($J,"DIV-ITYP-ILOC",X)) Q:X'>0  S Y=Y+1
 | 
|---|
| 40 |  Q Y
 | 
|---|
| 41 | SETUPL ; Setup temp global to screen img-loc, where
 | 
|---|
| 42 |  ;    img-loc must be within previously selected img-typ(s)
 | 
|---|
| 43 |  ; Requires RACCESS(duz,"LOC") and ^TMP($J,"RA ITYPE")
 | 
|---|
| 44 |  ; Creates ^TMP($J,"DIV-ITYP-ILOC",Img Loc ien)
 | 
|---|
| 45 |  ; and  eg. RACCESS(duz,"DIV-ITYP-ILOC","cgo(ws)","gen rad","x-ray")
 | 
|---|
| 46 |  ; Called from SELLOC^RAUTL7
 | 
|---|
| 47 |  N RAX,RAY,RAZ,RAW
 | 
|---|
| 48 |  S RAX=0
 | 
|---|
| 49 |  ; allow other img locations with img types that match at least one
 | 
|---|
| 50 |  ; of the user's accessible img location's img types
 | 
|---|
| 51 |  ; so, loop thru all img locations
 | 
|---|
| 52 | SETUPL1 S RAX=$O(^RA(79.1,RAX)) Q:'RAX  ;eg. 7
 | 
|---|
| 53 |  S RAY=+$P(^RA(79.1,RAX,0),"^",6) G:RAY="" SETUPL1 ;eg. 1
 | 
|---|
| 54 |  G:'$O(^TMP($J,"RA I-TYPE",$P($G(^RA(79.2,+RAY,0)),U),0)) SETUPL1
 | 
|---|
| 55 |  S RAZ=$P($G(^RA(79.1,RAX,"DIV")),U) G:RAZ="" SETUPL1 ;eg. 639
 | 
|---|
| 56 |  S RAW=$P(^DIC(4,+RAZ,0),U) G:RAW="" SETUPL1 ;eg. CHICAGO (WS)
 | 
|---|
| 57 |  ; match on selected imaging type
 | 
|---|
| 58 |  G:'$D(^TMP($J,"RA I-TYPE",$P($G(^RA(79.2,+RAY,0)),"^"),+RAY)) SETUPL1
 | 
|---|
| 59 |  ; match on selected division(s)
 | 
|---|
| 60 |  G:'$D(^TMP($J,"RA D-TYPE",RAW,RAZ)) SETUPL1
 | 
|---|
| 61 |  S ^TMP($J,"DIV-ITYP-ILOC",RAX)=""
 | 
|---|
| 62 |  ; following line replaces original code from DIVIACC section of ^RAUTL7
 | 
|---|
| 63 |  ; raccess(duz,"DIV-ITYP-ILOC" is used by ZEROUT^RADLY1 to
 | 
|---|
| 64 |  ; zerout the ^tmp($j,"radly"   nodes
 | 
|---|
| 65 |  S RACCESS(DUZ,"DIV-ITYP-ILOC",RAW,$P($G(^RA(79.2,+RAY,0)),"^"),$P($G(^SC(+$P($G(^RA(79.1,+RAX,0)),U),0)),U))=""
 | 
|---|
| 66 |  G SETUPL1
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 | VERIFY ; verify old reports
 | 
|---|
| 69 |  ; back door function to "administratively verify" old reports 
 | 
|---|
| 70 |  ; that were never verified
 | 
|---|
| 71 |  W !,"This subroutine prompts you for a date and places all unverified reports"
 | 
|---|
| 72 |  W !,"through that date into a status of Verified.",!
 | 
|---|
| 73 |  I '$D(^RARPT("ASTAT")) W !!,"NO UNVERFIED REPORTS CROSS REFERENCE" Q
 | 
|---|
| 74 |  K DIR S DIR(0)="D",DIR("A")="Enter a date",DIR("?")="All unverified reports through this date will be marked as Verified."
 | 
|---|
| 75 |  D ^DIR K DIR I $D(DIRUT) D KILL Q
 | 
|---|
| 76 |  S RAENDATE=Y
 | 
|---|
| 77 | DEVICE ;
 | 
|---|
| 78 |  S ZTRTN="START^RAUTL7A",ZTDESC="Rad/Nuc Med Verify Old Reports",ZTSAVE("RAENDATE")=""
 | 
|---|
| 79 |  D ZIS^RAUTL
 | 
|---|
| 80 |  I RAPOP D KILL Q
 | 
|---|
| 81 | START ;
 | 
|---|
| 82 |  U IO K DIR,DIRUT,DIROUT,DTOUT,DUOUT
 | 
|---|
| 83 |  S RASTATUS="",(RACOUNT,RAPAGE)=0,RAENDATE=$P(RAENDATE,".")_"."_9999
 | 
|---|
| 84 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 85 |  D NOW^%DTC S Y=X X ^DD("DD") S RATIME=Y
 | 
|---|
| 86 |  D HEADER
 | 
|---|
| 87 |  F  S RASTATUS=$O(^RARPT("ASTAT",RASTATUS)) Q:RASTATUS=""!($D(DIRUT))  S RARPT=0 F  S RARPT=$O(^RARPT("ASTAT",RASTATUS,RARPT)) Q:RARPT'>0  D  Q:$D(DIRUT)
 | 
|---|
| 88 |  .S RARPT0=$G(^RARPT(RARPT,0)) Q:RARPT0=""
 | 
|---|
| 89 |  .S RADTE=$P(RARPT0,U,3) Q:RADTE=""!(RADTE>RAENDATE)
 | 
|---|
| 90 |  .S RADFN=$P(RARPT0,U,2) Q:RADFN=""
 | 
|---|
| 91 |  .S RADTI=9999999.9999-RADTE
 | 
|---|
| 92 |  .S RACNI=$O(^RADPT("ADC",$P(RARPT0,U,1),RADFN,RADTI,0)) Q:RACNI=""
 | 
|---|
| 93 |  .S DFN=RADFN D DEM^VADPT
 | 
|---|
| 94 |  .S RANAME=$P(VADM(1),U,1),RASSN=$P(VADM(2),U,2) K DFN,VADM
 | 
|---|
| 95 |  .S RACOUNT=RACOUNT+1
 | 
|---|
| 96 |  .S RADPT0=$G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0))
 | 
|---|
| 97 |  .S RARES=+$P(RADPT0,U,12) I $D(^VA(200,RARES,0)) S RARES=$P(^VA(200,RARES,0),U,1)
 | 
|---|
| 98 |  .S RASTAFF=+$P(RADPT0,U,15) I $D(^VA(200,RASTAFF,0)) S RASTAFF=$P(^VA(200,RASTAFF,0),U,1)
 | 
|---|
| 99 |  .W !!,$P(RARPT0,U,1),?15,RANAME_"  ("_RASSN_")",?60,"Status: ",RASTATUS
 | 
|---|
| 100 |  .W !,"Resident: ",$S(RARES=0:"<none>",RARES]"":RARES,1:"<none>")
 | 
|---|
| 101 |  .W ?43,"Staff: ",$S(RASTAFF=0:"<none>",RASTAFF]"":RASTAFF,1:"<none>")
 | 
|---|
| 102 |  .K DIE,DR S DIE="^RARPT(",DR="5////V",DA=RARPT D ^DIE
 | 
|---|
| 103 |  .I ($Y+4)>IOSL D  Q:$D(DIRUT)  W @IOF D HEADER
 | 
|---|
| 104 |  ..Q:$E(IOST)'="C"
 | 
|---|
| 105 |  ..K DIR,DIROUT,DIRUT,DTOUT,DUOUT
 | 
|---|
| 106 |  ..S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 107 |  ..Q
 | 
|---|
| 108 |  .I $D(ZTQUEUED) D STOPCHK^RAUTL9 S:$G(ZTSTOP)=1 DIRUT=1
 | 
|---|
| 109 |  .Q
 | 
|---|
| 110 |  W !!,"Total: ",RACOUNT
 | 
|---|
| 111 | KILL ;
 | 
|---|
| 112 |  K %,DIR,DIROUT,DIRUT,DTOUT,DUOUT,POP,RACNI,RACOUNT,RADFN,RADPT0,RADTE,RADTI,RAENDATE,RANAME,RAPAGE,RAPOP,RARPT,RARPT0,RARES,RASSN,RATIME,RASTAFF,RASTATUS,X,Y,ZTDESC,ZTRTN,ZTSAVE
 | 
|---|
| 113 |  D CLOSE^RAUTL
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 | HEADER ;
 | 
|---|
| 116 |  W:$Y>0 @IOF
 | 
|---|
| 117 |  S RAPAGE=RAPAGE+1
 | 
|---|
| 118 |  W "Verify Reports Prior to "_$E(RAENDATE,4,5)_"/"_$E(RAENDATE,6,7)_"/"_$E(RAENDATE,2,3)
 | 
|---|
| 119 |  W !,"Run Date/Time: ",RATIME,?70,"Page: ",RAPAGE
 | 
|---|
| 120 |  W !,$$REPEAT^XLFSTR("-",79),!
 | 
|---|
| 121 |  Q
 | 
|---|
| 122 | DISPLAY ; back door function to display all reports not verified in file 74
 | 
|---|
| 123 |  ; prints [captioned] dump of entire record
 | 
|---|
| 124 |  W !!,"This subroutine loops through the unverified reports cross-reference of"
 | 
|---|
| 125 |  W !,"File 74 and displays the report entry including computed field values.",!!
 | 
|---|
| 126 |  D ^%ZIS
 | 
|---|
| 127 |  U IO W:$Y>0 @IOF
 | 
|---|
| 128 |  S RA4CHX=""
 | 
|---|
| 129 |  F  S RA4CHX=$O(^RARPT("ASTAT",RA4CHX)) Q:RA4CHX=""!($D(DIRUT))  D
 | 
|---|
| 130 |  . S RA4CHX1=0 F  S RA4CHX1=$O(^RARPT("ASTAT",RA4CHX,RA4CHX1)) Q:'RA4CHX1!($D(DIRUT))  D
 | 
|---|
| 131 |  .. I $D(^RARPT(RA4CHX1,0)) S DIC="^RARPT(",DA=+RA4CHX1,DIQ(0)="C" W:$Y>0 @IOF D EN^DIQ I '$D(DIRUT) D  Q:$D(DIRUT)
 | 
|---|
| 132 |  ...Q:$E(IOST)'="C"
 | 
|---|
| 133 |  ...K DIR,DIROUT,DIRUT,DTOUT,DUOUT
 | 
|---|
| 134 |  ...S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 135 |  ...Q
 | 
|---|
| 136 |  D ^%ZISC
 | 
|---|
| 137 |  K A,D0,D1,DA,DIC,DIQ,DIRUT,DIW,DIWF,DIWL,DIWR,DIWT,DK,DL,DN,DTOUT,DUOUT,DX,I,POP,RA4CHX,RA4CHX1,RACN,RARPT,S,X,Y
 | 
|---|
| 138 |  Q
 | 
|---|