[613] | 1 | XDRRMRG2 ;SF-IRMFO/GB,JLI - GET PATIENT HEALTH SUMMARY ;06/26/98 13:35
|
---|
| 2 | ;;7.3;TOOLKIT;**23,29**;Apr 25, 1995
|
---|
| 3 | ;;
|
---|
| 4 | ASK(QLIST,ABORT) ; Report-specific questions
|
---|
| 5 | N DIC,Y,DTOUT,DUOUT
|
---|
| 6 | ; Which patient?
|
---|
| 7 | ; S DIC="^SPNL(154,"
|
---|
| 8 | ; S DIC("S")="I $P(^(0),U,3)=""A""" ; Select only from active patients
|
---|
| 9 | ; S DIC(0)="AEQM"
|
---|
| 10 | ; S DIC("A")="Select SCD Patient: "
|
---|
| 11 | ; S DIC("?")="Select the patient for whom you want the Health Summary"
|
---|
| 12 | ; D ^DIC I $D(DTOUT)!($D(DUOUT))!(Y<0) S ABORT=1 Q
|
---|
| 13 | ; S QLIST("DFN")=+Y ; IEN's are DINUM'd to the ^DPT
|
---|
| 14 | K DIC
|
---|
| 15 | ; Which Health Summary Type?
|
---|
| 16 | S DIC="^GMT(142,"
|
---|
| 17 | S DIC(0)="AEQM"
|
---|
| 18 | S DIC("A")="Select Health Summary Type Name: "
|
---|
| 19 | ;S DIC("?")="Choose one, if you aren't sure, experiment!"
|
---|
| 20 | D ^DIC I $D(DTOUT)!($D(DUOUT))!(Y<0) S ABORT=1 Q
|
---|
| 21 | S QLIST("TYPE")=+Y
|
---|
| 22 | ASKX Q
|
---|
| 23 | ;
|
---|
| 24 | GATHER(DFN,FDATE,TDATE,HIUSERS,QLIST) ; No need to gather
|
---|
| 25 | Q
|
---|
| 26 | ;
|
---|
| 27 | PRINT(QLIST) ;Call to print health summary
|
---|
| 28 | D ENX^GMTSDVR(QLIST("DFN"),QLIST("TYPE"))
|
---|
| 29 | PRINTX Q
|
---|
| 30 | ;
|
---|
| 31 | PRINT2 ;Prints the record pair using the Browser of to a device.
|
---|
| 32 | N XDRIOP
|
---|
| 33 | W ! S DIR(0)="Y",DIR("A",1)="Would you like to use the FM Browser to"
|
---|
| 34 | S DIR("A")="view the record pair"
|
---|
| 35 | S DIR("B")="YES",DIR("?")="You may use FM Browser to view the record pair else you will be prompted to select a device for each record."
|
---|
| 36 | D ^DIR S:Y=1 XDRIOP=1 Q:$D(DIRUT)
|
---|
| 37 | K ^TMP("XDRRMRG1",$J),^TMP("XDRRMRG",$J)
|
---|
| 38 | ;S IOP="XDRBROWSER1" D ^%ZIS Q:POP ;Old code, delete after testing
|
---|
| 39 | REC1 S:$D(XDRIOP) IOP="XDRBROWSER1" S:'$D(XDRIOP) %ZIS="QM"
|
---|
| 40 | S %ZIS("A")="DEVICE FOR FIRST RECORD: "
|
---|
| 41 | W ! D ^%ZIS Q:POP
|
---|
| 42 | I $D(IO("Q")) D G REC2 ;Will queue to TaskMan
|
---|
| 43 | . S ZTRTN="QUEUE^XDRRMRG2",ZTIO=ION,ZTDESC="XDR Health Summary for first patient."
|
---|
| 44 | . S DFN=DFNFRX,TYPE=QLIST("TYPE"),ZTSAVE("DFN")="",ZTSAVE("TYPE")=""
|
---|
| 45 | . D ^%ZTLOAD W:$D(ZTSK) !!,"Queued as task "_ZTSK,!
|
---|
| 46 | . Q
|
---|
| 47 | U IO(0) W:$D(XDRIOP) " Getting first entry ",!
|
---|
| 48 | D ENX^GMTSDVR(DFNFRX,QLIST("TYPE"))
|
---|
| 49 | U IO D ^%ZISC
|
---|
| 50 | S ^TMP("XDRRMRG",$J,"ENTER <PF1>S TO VIEW OTHER- "_$E($G(DFNFR(1)),1,30)_" "_$G(DFNFR(2))_" ("_DFNFRX_")")="^TMP(""XDRRMRG1"",$J,1)"
|
---|
| 51 | M ^TMP("XDRRMRG1",$J,1)=^TMP("DDB",$J)
|
---|
| 52 | ;S IOP="XDRBROWSER1" D ^%ZIS Q:POP ;old code delete after testing
|
---|
| 53 | REC2 S:$D(XDRIOP) IOP="XDRBROWSER1" S:'$D(XDRIOP) %ZIS="QM"
|
---|
| 54 | S %ZIS("A")="DEVICE FOR SECOND RECORD: "
|
---|
| 55 | W ! D ^%ZIS Q:POP
|
---|
| 56 | I $D(IO("Q")) D G PRINTX ;Will queue to TaskMan
|
---|
| 57 | . S ZTRTN="QUEUE^XDRRMRG2",ZTIO=ION,ZTDESC="XDR Health Summary for second patient."
|
---|
| 58 | . S DFN=DFNTOX,TYPE=QLIST("TYPE"),ZTSAVE("DFN")="",ZTSAVE("TYPE")=""
|
---|
| 59 | . D ^%ZTLOAD W:$D(ZTSK) !!,"Queued as task "_ZTSK,!
|
---|
| 60 | . Q
|
---|
| 61 | U IO(0) W:$D(XDRIOP) " Getting second entry ",!
|
---|
| 62 | D ENX^GMTSDVR(DFNTOX,QLIST("TYPE"))
|
---|
| 63 | D ^%ZISC U IO(0)
|
---|
| 64 | S ^TMP("XDRRMRG",$J,"ENTER <PF1>S TO VIEW OTHER- "_$E($G(DFNTO(1)),1,30)_" "_$G(DFNTO(2))_" ("_DFNTOX_")")="^TMP(""XDRRMRG1"",$J,2)"
|
---|
| 65 | M ^TMP("XDRRMRG1",$J,2)=^TMP("DDB",$J)
|
---|
| 66 | D DOCLIST^DDBR($NA(^TMP("XDRRMRG",$J)),"R")
|
---|
| 67 | K ^TMP("XDRRMRG1",$J),^TMP("XDRRMRG",$J)
|
---|
| 68 | PRINT2X Q
|
---|
| 69 | ;
|
---|
| 70 | QUEUE ;Will process the print task for patients' health summaries.
|
---|
| 71 | D ENX^GMTSDVR(DFN,TYPE)
|
---|
| 72 | QUEUEX Q
|
---|
| 73 | ;
|
---|
| 74 | COUNT(XDRFILE,FROM,TO) ;
|
---|
| 75 | N X,I,FIL1,FIL2,NOD,PIECE,X1,X2,N1,N2
|
---|
| 76 | S N1=0,N2=0
|
---|
| 77 | S FIL2=^DIC(XDRFILE,0,"GL")
|
---|
| 78 | S FIL1=FIL2_"FROM)"
|
---|
| 79 | S FIL2=FIL2_"TO)"
|
---|
| 80 | F I=0:0 S I=$O(^DD(XDRFILE,I)) Q:I'>0 S X=^(I,0) D
|
---|
| 81 | . S NOD=$P($P(X,U,4),";")
|
---|
| 82 | . S PIECE=$P($P(X,U,4),";",2)
|
---|
| 83 | . I PIECE>0 D
|
---|
| 84 | . . S X1=$P($G(@FIL1@(NOD)),U,PIECE)
|
---|
| 85 | . . S X2=$P($G(@FIL2@(NOD)),U,PIECE)
|
---|
| 86 | . . I X1'="",X2="" S N1=N1+1
|
---|
| 87 | . . I X2'="",X1="" S N2=N2+1
|
---|
| 88 | COUNTX Q $S(N1>N2:2,N2>N1:1,1:0)
|
---|
| 89 | ;
|
---|
| 90 | LABIEN(FILE,REC) ;REM - Resolve LABs DFNFR and DFNTO.
|
---|
| 91 | S NAMREC=""
|
---|
| 92 | S FILDIC=$G(^DIC(FILE,0,"GL")) Q:FILDIC="" NAMREC
|
---|
| 93 | S FILREC=FILDIC_"REC)"
|
---|
| 94 | S NAMREC=+$P(@FILREC@(0),U,3)
|
---|
| 95 | LABIENX Q NAMREC
|
---|