[613] | 1 | RAPRINT ;HISC/FPT AISC/DMK-Abnormal Exam Report ;8/12/97 09:57
|
---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
|
---|
| 3 | ;
|
---|
| 4 | ; This report uses the 'AD' cross reference on File 70 to create a
|
---|
| 5 | ; report of exams that use certain diagnostic codes. The Diagnostic
|
---|
| 6 | ; Codes file (78.3) has a field named PRINT ON ABNORMAL RPT. If this
|
---|
| 7 | ; field is set to YES and the user enters that diagnostic code for an
|
---|
| 8 | ; exam, then an entry is made in the 'AD' cross reference.
|
---|
| 9 | ;
|
---|
| 10 | I $O(RACCESS(DUZ,""))="" D SETVARS^RAPSET1(0) S RAPSTX=""
|
---|
| 11 | W !!,?10,"ABNORMAL EXAM REPORT",!
|
---|
| 12 | ; Select Imaging Type, if exists
|
---|
| 13 | S RAXIT=$$SETUPDI^RAUTL7() I RAXIT G END
|
---|
| 14 | K ^TMP($J,"RA D-TYPE"),^TMP($J,"RA I-TYPE"),^TMP($J,"RADLY")
|
---|
| 15 | D SELDIV^RAUTL7 ; Select division(s)
|
---|
| 16 | I '$D(^TMP($J,"RA D-TYPE"))!($G(RAQUIT)) D KILL^RADLY1 G END
|
---|
| 17 | D SELIMG^RAUTL7 ; Select I-Type(s)
|
---|
| 18 | I '$D(^TMP($J,"RA I-TYPE"))!($G(RAQUIT)) D KILL^RADLY1 G END
|
---|
| 19 | S X="" F S X=$O(RACCESS(DUZ,"DIV-IMG",X)) Q:X']"" D
|
---|
| 20 | . Q:'$D(^TMP($J,"RA D-TYPE",X)) S Y=""
|
---|
| 21 | . F S Y=$O(RACCESS(DUZ,"DIV-IMG",X,Y)) Q:Y']"" D
|
---|
| 22 | .. S:$D(^TMP($J,"RA I-TYPE",Y)) ^TMP($J,"RADLY",X,Y)=0
|
---|
| 23 | .. Q
|
---|
| 24 | . Q
|
---|
| 25 | K ^TMP($J,"RA DX CODES") D OMADX(1)
|
---|
| 26 | I '$D(^TMP($J,"RA DX CODES")) D D END Q
|
---|
| 27 | . W !!?3,"No Diagnostic Codes selected, try again later."
|
---|
| 28 | . Q
|
---|
| 29 | W !
|
---|
| 30 | K DIR,DIROUT,DIRUT,DTOUT,DUOUT
|
---|
| 31 | S DIR(0)="Y",DIR("A")="Print only those exams not yet printed",DIR("B")="Yes",DIR("?")="Enter 'Yes' to print only those exams not yet printed, 'No' to print all." D ^DIR K DIR
|
---|
| 32 | I $D(DIRUT) D END Q
|
---|
| 33 | S RASW=$S(+Y=1:0,1:1),ZTRTN="START^RAPRINT",ZTSAVE("BEGDATE")="",ZTSAVE("ENDDATE")="",ZTSAVE("RASW")="",ZTSAVE("^TMP($J,""RA D-TYPE"",")="",ZTSAVE("^TMP($J,""RA I-TYPE"",")="",ZTSAVE("^TMP($J,""RADLY"",")=""
|
---|
| 34 | S ZTSAVE("^TMP($J,""RA DX CODES"",")=""
|
---|
| 35 | D DATE^RAUTL G END:RAPOP S BEGDATE=9999999.9999-BEGDATE,ENDDATE=9999999.9999-ENDDATE
|
---|
| 36 | W ! D ZIS^RAUTL G:RAPOP END
|
---|
| 37 | START ;
|
---|
| 38 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
| 39 | U IO K I S CNT=0,RAOUT=0,PDATE=+$E(DT,4,5)_"/"_+$E(DT,6,7)_"/"_$E(DT,2,3) S RAEND=ENDDATE-1,QQ="",$P(QQ,"=",80)="=",I1("DIV")="",I1("IT")="",I1("DX")=""
|
---|
| 40 | D HDR^RAPRINT1 G:RAOUT END
|
---|
| 41 | F I=0:0 S I=$O(^RADPT("AD",I)) Q:I'>0!(RAOUT) I $D(^RA(78.3,I,0)),($D(^TMP($J,"RA DX CODES",$P(^RA(78.3,I,0),"^")))) F J=0:0 S J=$O(^RADPT("AD",I,J)) Q:J'>0!(RAOUT) F K=RAEND:0 S K=$O(^RADPT("AD",I,J,K)) Q:K'>0!(K>BEGDATE)!(RAOUT) D PAT1
|
---|
| 42 | D DIV^RAPRINT1,NEGRPT
|
---|
| 43 | END ;
|
---|
| 44 | K ^TMP($J),BEGDATE,CNT,DIR,DIROUT,DIRUT,DTOUT,DUOUT,ENDDATE,I,I1,J,K,L,PDATE,POP,QQ
|
---|
| 45 | K RACASE,RADIC,RADFN,RADIAG,RADIVNME,RADIVNUM,RADXCODE,RAEND,RAEXAM,RAEXDT,RAITNAME,RAITNUM,RAMD,RAOUT,RAPAT,RAPATNME,RAPOP,RAPROC,RAQUIT,RASDXDTE,RASDXIEN,RASSN,RASW,RAUTIL,RAWARD,RAXIT,X,Y
|
---|
| 46 | K POP,ZTRTN,ZTSAVE,RAMES,ZTDESC
|
---|
| 47 | K:$D(RAPSTX) RACCESS,RAPSTX
|
---|
| 48 | D CLOSE^RAUTL
|
---|
| 49 | Q
|
---|
| 50 | PAT1 F L=0:0 S L=$O(^RADPT("AD",I,J,K,L)) Q:L'>0!(RAOUT) I $D(^RADPT(J,"DT",K,"P",L,0)) D BTG
|
---|
| 51 | Q
|
---|
| 52 | BTG ; build tmp global
|
---|
| 53 | I $D(ZTQUEUED) D STOPCHK^RAUTL9 S:$G(ZTSTOP)=1 RAOUT=1 Q:RAOUT
|
---|
| 54 | S RARE(0)=$G(^RADPT(J,"DT",K,0))
|
---|
| 55 | S RADIVNUM=+$P(RARE(0),U,3),RADIVNME=$P($G(^DIC(4,RADIVNUM,0)),U)
|
---|
| 56 | I RADIVNME]"",('$D(^TMP($J,"RA D-TYPE",RADIVNME))) Q
|
---|
| 57 | S RADIVNME=$S(RADIVNME]"":RADIVNME,1:"Unknown")
|
---|
| 58 | S RAITNUM=+$P(RARE(0),U,2),RAITNAME=$P($G(^RA(79.2,RAITNUM,0)),U)
|
---|
| 59 | I RAITNAME]"",('$D(^TMP($J,"RA I-TYPE",RAITNAME))) Q
|
---|
| 60 | S RAITNAME=$S(RAITNAME]"":RAITNAME,1:"Unknown")
|
---|
| 61 | K RARE(0)
|
---|
| 62 | Q:'$D(^TMP($J,"RADLY",RADIVNME,RAITNAME))
|
---|
| 63 | S RAPATNME=$P($G(^DPT(J,0)),U,1) S:RAPATNME="" RAPATNME="UNKNOWN"
|
---|
| 64 | S ^TMP($J,RADIVNME,RAITNAME,I,RAPATNME,J,K,L)=""
|
---|
| 65 | Q
|
---|
| 66 | NEGRPT ; negative reports
|
---|
| 67 | Q:+$G(RAOUT)
|
---|
| 68 | I $D(ZTQUEUED) D STOPCHK^RAUTL9 S:$G(ZTSTOP)=1 RAOUT=1 Q:RAOUT
|
---|
| 69 | S RADIVNME="",RAOUT=0
|
---|
| 70 | F S RADIVNME=$O(^TMP($J,"RADLY",RADIVNME)) Q:RADIVNME=""!(RAOUT=1) S RAITNAME="" F S RAITNAME=$O(^TMP($J,"RADLY",RADIVNME,RAITNAME)) Q:RAITNAME=""!(RAOUT=1) I +^TMP($J,"RADLY",RADIVNME,RAITNAME)=0 D
|
---|
| 71 | .D:CNT>0 HANG^RAPRINT1 Q:RAOUT=1
|
---|
| 72 | .D:CNT>0 HDR^RAPRINT1 Q:RAOUT
|
---|
| 73 | .W !?22,"Division: ",RADIVNME,!?18,"Imaging Type: ",RAITNAME,!
|
---|
| 74 | .W !?32,"***********************"
|
---|
| 75 | .W !?32,"* No Abnormal Exams *"
|
---|
| 76 | .W !?32,"***********************",!
|
---|
| 77 | .S CNT=1
|
---|
| 78 | Q
|
---|
| 79 | OMADX(RAAB) ; One-Many-All selector for Dx codes.
|
---|
| 80 | ; Input : RAAB=0 - doesn't need 'Print On Abnormal Rpts' set to 'yes'
|
---|
| 81 | ; RAAB=1 - must have 'Print On Abnormal Rpts' set to 'yes'
|
---|
| 82 | N RADIC,RAQUIT,RAUTIL
|
---|
| 83 | S RADIC="^RA(78.3,",RADIC(0)="QEANZ",RAUTIL="RA DX CODES"
|
---|
| 84 | S RADIC("A")="Select Diagnostic Codes: ",RADIC("B")="All"
|
---|
| 85 | S:RAAB RADIC("S")="I $P(^(0),""^"",3)=""Y"""
|
---|
| 86 | W ! D EN1^RASELCT(.RADIC,RAUTIL)
|
---|
| 87 | Q
|
---|