[623] | 1 | SDAMODO3 ;ALB/SCK - PROVIDER DIAGNOSTICS REPORT OUTPUT ; 05 Oct 98 8:44 PM
|
---|
| 2 | ;;5.3;Scheduling;**11,25,46,49,159**;Aug 13, 1993
|
---|
| 3 | Q
|
---|
| 4 | REPORT ;
|
---|
| 5 | I '$D(^TMP("SDRPT",$J)) D NOREP G EXIT
|
---|
| 6 | START ;
|
---|
| 7 | N SDIV,OEN,SDPRX,SUB1,SUB2,OEN,SDATA,SDX,SPRV,SDCHECK
|
---|
| 8 | S (SDIV,SDFIN,SDVC,SUBX,SUB1,SUB2)="",(PAGE,QFLAG,SUBCNT)=0
|
---|
| 9 | W:$E(IOST,1,2)="C-" @IOF
|
---|
| 10 | F S SDIV=$O(^TMP("SDRPT",$J,SDIV)) Q:SDIV="" D Q:SDFIN
|
---|
| 11 | . I SDIV'=SDVC S SUBX=$$SUBCNT(SUB1,SUBX),SDFIN='$$HDR(SDIV) Q:SDFIN S SDVC=SDIV
|
---|
| 12 | . S SUB1="" F S SUB1=$O(^TMP("SDRPT",$J,SDIV,SUB1)) Q:SUB1="" D Q:SDFIN
|
---|
| 13 | .. I SUBX'=SUB1 S SUBX=$$SUBCNT(SUB1,SUBX)
|
---|
| 14 | .. I SORT1=4!(SORT1=5) I SUBX]"",SUBX'=SUB1 S SDFIN='$$HDR(SDIV)
|
---|
| 15 | .. S SUB2="" F S SUB2=$O(^TMP("SDRPT",$J,SDIV,SUB1,SUB2)) Q:SUB2="" D Q:SDFIN
|
---|
| 16 | ... S OEN=0 F S OEN=$O(^TMP("SDRPT",$J,SDIV,SUB1,SUB2,OEN)) Q:'OEN S SUBCNT=SUBCNT+1,SDCHECK="" D Q:SDFIN
|
---|
| 17 | .... S I=0 F S I=$O(^TMP("SDRPT",$J,SDIV,SUB1,SUB2,OEN,I)) Q:'I S SDFIN='$$PRNT(I) Q:SDFIN
|
---|
| 18 | S SUBX=$$SUBCNT(SUB1,SUBX)
|
---|
| 19 | EXIT ;
|
---|
| 20 | K QFLAG,PAGE,SDFIN,SDVC,SDONE,XX,^TMP("SDRPT",$J),SUBCNT,SUBX
|
---|
| 21 | Q
|
---|
| 22 | ;
|
---|
| 23 | SUBCNT(SB1,SB1P) ;
|
---|
| 24 | I SB1P']""!(SUBCNT'>0) G SUBCNTQ
|
---|
| 25 | W !,SUBCNT," ",$S(SORT2=1!(SORT2=2):"Primary "_$P($T(SORT+SORT2^SDAMODO1),";;",2),1:$P($T(SORT+SORT2^SDAMODO1),";;",2))," entries for ",$S(SORT1=1!(SORT1=3):$P(SB1P,"^"),SORT1=5:$P($G(^DIC(40.7,SB1P,0)),U),1:SB1P),!!
|
---|
| 26 | S SUBCNT=0
|
---|
| 27 | SUBCNTQ Q (SB1)
|
---|
| 28 | ;
|
---|
| 29 | PRNT(I) ;
|
---|
| 30 | N Y,SDATA,SPRV,SDX,XX,SCODE,SDDX1,SDPRX,SDSID
|
---|
| 31 | S SDATA=(^TMP("SDRPT",$J,SDIV,SUB1,SUB2,OEN,I,0))
|
---|
| 32 | S XX="" F S XX=$O(^TMP("SDRPT",$J,SDIV,SUB1,SUB2,OEN,I,"PRV",XX)) Q:'XX S SPRV(XX)=""
|
---|
| 33 | S XX="" F S XX=$O(^TMP("SDRPT",$J,SDIV,SUB1,SUB2,OEN,I,"DX",XX)) Q:XX="" S SDX(XX)=""
|
---|
| 34 | I SORT1=1,'$$SELPRV(SUB1) S Y=1 G PRNTQ
|
---|
| 35 | I SORT1=2,'$$SELDX(SUB1) S Y=1 G PRNTQ
|
---|
| 36 | I $Y+5>IOSL S Y='$$HDR(SDIV) G:Y PRNTQ
|
---|
| 37 | LINE1 ;
|
---|
| 38 | S SDSID=$P($G(SDATA),U,2)
|
---|
| 39 | W !,$P(^DPT($P($G(SDATA),U),0),U)_" "_$P(SDSID,"-",3)
|
---|
| 40 | S:SDCHECK="" SDCHECK=SDSID I SDSID'=SDCHECK S SUBCNT=SUBCNT+1
|
---|
| 41 | W ?32,$P($$FMTE^XLFDT(OEN,1),":",1,2) ; modified to drop seconds
|
---|
| 42 | W ?55,$E($P(SDATA,U,3),1,25)
|
---|
| 43 | W ?90,$S(+$P(SDATA,U,5)>0:$P(^VA(200,+$P(SDATA,U,5),0),U),1:$P(SDATA,U,5))
|
---|
| 44 | W ?117,$P(SDATA,U,6)
|
---|
| 45 | LINE2 ;
|
---|
| 46 | S SCODE=$P(SDATA,U,4)
|
---|
| 47 | W !?56,$P($G(^DIC(40.7,+SCODE,0)),U,2),"/",$P($G(^DIC(40.7,+SCODE,0)),U)
|
---|
| 48 | S SDPRX="",SDPRX=$O(SPRV(SDPRX)) I $D(SDPRX),SORT1'=1 W ?90,$S(+SDPRX>0:$P(^VA(200,SDPRX,0),U),1:"")
|
---|
| 49 | S SDDX1="",SDDX1=$O(SDX(SDDX1)) I $D(SDDX1),SORT1'=2 W ?117,SDDX1
|
---|
| 50 | S SDONE=0
|
---|
| 51 | F XX=1:1 D Q:SDONE
|
---|
| 52 | . I SDDX1'="" S SDDX1=$O(SDX(SDDX1))
|
---|
| 53 | . I SDPRX'="" S SDPRX=$O(SPRV(SDPRX))
|
---|
| 54 | . I SDPRX']""&(SDDX1']"") S SDONE=1 Q
|
---|
| 55 | . I $Y+5>IOSL S SDONE='$$HDR(SDIV) Q:SDONE
|
---|
| 56 | . W !
|
---|
| 57 | . I $D(SDPRX),SORT1'=1 W ?90,$S(+SDPRX>0:$P(^VA(200,SDPRX,0),U),1:"")
|
---|
| 58 | . I $D(SDDX1),SORT1'=2 W ?117,SDDX1
|
---|
| 59 | S Y=1
|
---|
| 60 | PRNTQ S:QFLAG Y=0 Q (Y)
|
---|
| 61 | ;
|
---|
| 62 | HDR(SDIV) ;
|
---|
| 63 | N Y
|
---|
| 64 | S Y=0
|
---|
| 65 | I SDVC'="",$E(IOST,1,2)="C-" D G:QFLAG HDRQ
|
---|
| 66 | . K DIR S DIR(0)="FO",DIR("A")="Press RETURN to continue or '^' to exit"
|
---|
| 67 | . S DIR("?",1)="Pressing any key other than the '^' key will scroll to the next screen",DIR("?")="The '^' key will exit the listing."
|
---|
| 68 | . D ^DIR K DIR I $D(DTOUT)!($D(DUOUT)) S QFLAG=1 Q
|
---|
| 69 | . W @IOF
|
---|
| 70 | S PAGE=PAGE+1
|
---|
| 71 | I $E(IOST,1,2)'="C-",SDVC'="" W @IOF
|
---|
| 72 | W !!,"Provider/Diagnosis Encounter Report sorted by ",$P($T(SORT+SORT1^SDAMODO1),";;",2)," and ",$P($T(SORT+SORT2^SDAMODO1),";;",2)
|
---|
| 73 | W ?(IOM-40),"Report Date: ",$P($$NOW^VALM1,"@"),?(IOM-10),"Page: ",PAGE
|
---|
| 74 | W !,"Inclusion Dates: ",$P($$FMTE^XLFDT(SDBEG,1),"@")," to ",$P($$FMTE^XLFDT(SDEND,1),"@")
|
---|
| 75 | W !,"Division: ",$P($G(^DG(40.8,SDIV,0)),U)
|
---|
| 76 | W !!,"PATIENT",?32,"ENCOUNTER DATE",?55,"CLINIC/PRIMARY STOP CODE",?90,"PROVIDER",?117,"DX CODE"
|
---|
| 77 | W !,"-------------------",?32,"------------------",?55,"------------------------",?90,"--------------",?117,"-------"
|
---|
| 78 | S Y=1
|
---|
| 79 | HDRQ Q (Y)
|
---|
| 80 | ;
|
---|
| 81 | NOREP ;
|
---|
| 82 | W !!,"Provider/Diagnosis Report sorted by ",$P($T(SORT+SORT1^SDAMODO1),";;",2)," and ",$P($T(SORT+SORT2^SDAMODO1),";;",2)
|
---|
| 83 | W ?(IOM-40),"Report Date: ",$P($$NOW^VALM1,"@")
|
---|
| 84 | W !,"Inclusion Dates: ",$P($$FMTE^XLFDT(SDBEG,1),"@")," to ",$P($$FMTE^XLFDT(SDEND,1),"@")
|
---|
| 85 | W !!,"No data found matching sort parameters"
|
---|
| 86 | Q
|
---|
| 87 | ;
|
---|
| 88 | SELPRV(PRV) ;
|
---|
| 89 | N Y S Y=1
|
---|
| 90 | I PROVDR=1 G SELPRVQ
|
---|
| 91 | I $D(PROVDR($P(PRV,"^",2))) G SELPRVQ
|
---|
| 92 | S Y=0
|
---|
| 93 | SELPRVQ Q (Y)
|
---|
| 94 | ;
|
---|
| 95 | SELDX(DX) ;
|
---|
| 96 | N Y S Y=1
|
---|
| 97 | I PDIAG=1 G SELDXQ
|
---|
| 98 | S DIC="^ICD9(",DIC(0)="MZ",X=DX
|
---|
| 99 | D ^DIC K DIC I Y<0 S Y=0 G SELDXQ
|
---|
| 100 | I $D(PDIAG($P(Y,U))) G SELDXQ
|
---|
| 101 | S Y=0
|
---|
| 102 | SELDXQ Q (Y)
|
---|