Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XDRRMRG2

XDRRMRG2.m

Go to the documentation of this file.
  1. XDRRMRG2 ;SF-IRMFO/GB,JLI - GET PATIENT HEALTH SUMMARY ;06/26/98 13:35 [ 04/02/2003 8:47 AM ]
  1. ;;7.3;TOOLKIT;**23,29,1001,1003**;Apr 03, 1995
  1. ;IHS/OIT/LJF 07/27/2006 PATCH 1003 use IHS merge type as default HS
  1. ; PATCH 1003 change default on using browser to NO
  1. ;;
  1. ASK(QLIST,ABORT) ; Report-specific questions
  1. N DIC,Y,DTOUT,DUOUT
  1. ; Which patient?
  1. ; S DIC="^SPNL(154,"
  1. ; S DIC("S")="I $P(^(0),U,3)=""A""" ; Select only from active patients
  1. ; S DIC(0)="AEQM"
  1. ; S DIC("A")="Select SCD Patient: "
  1. ; S DIC("?")="Select the patient for whom you want the Health Summary"
  1. ; D ^DIC I $D(DTOUT)!($D(DUOUT))!(Y<0) S ABORT=1 Q
  1. ; S QLIST("DFN")=+Y ; IEN's are DINUM'd to the ^DPT
  1. K DIC
  1. ; Which Health Summary Type?
  1. S DIC="^GMT(142,"
  1. S DIC(0)="AEQM"
  1. ;
  1. I $$GET^XPAR("PKG","BPM USE IHS LOGIC") S DIC("B")="BPM MERGE" ;IHS/OIT/LJF 07/27/2006 PATCH 1003 added default
  1. ;
  1. S DIC("A")="Select Health Summary Type Name: "
  1. ;S DIC("?")="Choose one, if you aren't sure, experiment!"
  1. D ^DIC I $D(DTOUT)!($D(DUOUT))!(Y<0) S ABORT=1 Q
  1. S QLIST("TYPE")=+Y
  1. ASKX Q
  1. ;
  1. GATHER(DFN,FDATE,TDATE,HIUSERS,QLIST) ; No need to gather
  1. Q
  1. ;
  1. PRINT(QLIST) ;Call to print health summary
  1. D ENX^GMTSDVR(QLIST("DFN"),QLIST("TYPE"))
  1. PRINTX Q
  1. ;
  1. PRINT2 ;Prints the record pair using the Browser of to a device.
  1. N XDRIOP
  1. W ! S DIR(0)="Y",DIR("A",1)="Would you like to use the FM Browser to"
  1. S DIR("A")="view the record pair"
  1. 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."
  1. ;
  1. ;IHS/OIT/LJF 07/27/2006 PATCH 1003 changed default to NO
  1. I $$GET^XPAR("PKG","BPM USE IHS LOGIC") S DIR("B")="NO"
  1. ;
  1. D ^DIR S:Y=1 XDRIOP=1 Q:$D(DIRUT)
  1. K ^TMP("XDRRMRG1",$J),^TMP("XDRRMRG",$J)
  1. ;S IOP="XDRBROWSER1" D ^%ZIS Q:POP ;Old code, delete after testing
  1. REC1 S:$D(XDRIOP) IOP="XDRBROWSER1" S:'$D(XDRIOP) %ZIS="QM"
  1. S %ZIS("A")="DEVICE FOR FIRST RECORD: "
  1. W ! D ^%ZIS Q:POP
  1. I $D(IO("Q")) D G REC2 ;Will queue to TaskMan
  1. . S ZTRTN="QUEUE^XDRRMRG2",ZTIO=ION,ZTDESC="XDR Health Summary for first patient."
  1. . S DFN=DFNFRX,TYPE=QLIST("TYPE"),ZTSAVE("DFN")="",ZTSAVE("TYPE")=""
  1. . D ^%ZTLOAD W:$D(ZTSK) !!,"Queued as task "_ZTSK,!
  1. . Q
  1. U IO(0) W:$D(XDRIOP) " Getting first entry ",!
  1. D ENX^GMTSDVR(DFNFRX,QLIST("TYPE"))
  1. U IO D ^%ZISC
  1. S ^TMP("XDRRMRG",$J,"ENTER <PF1>S TO VIEW OTHER- "_$E($G(DFNFR(1)),1,30)_" "_$G(DFNFR(2))_" ("_DFNFRX_")")="^TMP(""XDRRMRG1"",$J,1)"
  1. M ^TMP("XDRRMRG1",$J,1)=^TMP("DDB",$J)
  1. ;S IOP="XDRBROWSER1" D ^%ZIS Q:POP ;old code delete after testing
  1. REC2 S:$D(XDRIOP) IOP="XDRBROWSER1" S:'$D(XDRIOP) %ZIS="QM"
  1. S %ZIS("A")="DEVICE FOR SECOND RECORD: "
  1. W ! D ^%ZIS Q:POP
  1. I $D(IO("Q")) D G PRINTX ;Will queue to TaskMan
  1. . S ZTRTN="QUEUE^XDRRMRG2",ZTIO=ION,ZTDESC="XDR Health Summary for second patient."
  1. . S DFN=DFNTOX,TYPE=QLIST("TYPE"),ZTSAVE("DFN")="",ZTSAVE("TYPE")=""
  1. . D ^%ZTLOAD W:$D(ZTSK) !!,"Queued as task "_ZTSK,!
  1. . Q
  1. U IO(0) W:$D(XDRIOP) " Getting second entry ",!
  1. D ENX^GMTSDVR(DFNTOX,QLIST("TYPE"))
  1. D ^%ZISC U IO(0)
  1. S ^TMP("XDRRMRG",$J,"ENTER <PF1>S TO VIEW OTHER- "_$E($G(DFNTO(1)),1,30)_" "_$G(DFNTO(2))_" ("_DFNTOX_")")="^TMP(""XDRRMRG1"",$J,2)"
  1. M ^TMP("XDRRMRG1",$J,2)=^TMP("DDB",$J)
  1. D DOCLIST^DDBR($NA(^TMP("XDRRMRG",$J)),"R")
  1. K ^TMP("XDRRMRG1",$J),^TMP("XDRRMRG",$J)
  1. PRINT2X Q
  1. ;
  1. QUEUE ;Will process the print task for patients' health summaries.
  1. D ENX^GMTSDVR(DFN,TYPE)
  1. QUEUEX Q
  1. ;
  1. COUNT(XDRFILE,FROM,TO) ;
  1. N X,I,FIL1,FIL2,NOD,PIECE,X1,X2,N1,N2
  1. S N1=0,N2=0
  1. S FIL2=^DIC(XDRFILE,0,"GL")
  1. S FIL1=FIL2_"FROM)"
  1. S FIL2=FIL2_"TO)"
  1. F I=0:0 S I=$O(^DD(XDRFILE,I)) Q:I'>0 S X=^(I,0) D
  1. . S NOD=$P($P(X,U,4),";")
  1. . S PIECE=$P($P(X,U,4),";",2)
  1. . I PIECE>0 D
  1. . . S X1=$P($G(@FIL1@(NOD)),U,PIECE)
  1. . . S X2=$P($G(@FIL2@(NOD)),U,PIECE)
  1. . . I X1'="",X2="" S N1=N1+1
  1. . . I X2'="",X1="" S N2=N2+1
  1. COUNTX Q $S(N1>N2:2,N2>N1:1,1:0)
  1. ;
  1. LABIEN(FILE,REC) ;REM - Resolve LABs DFNFR and DFNTO.
  1. S NAMREC=""
  1. S FILDIC=$G(^DIC(FILE,0,"GL")) Q:FILDIC="" NAMREC
  1. S FILREC=FILDIC_"REC)"
  1. S NAMREC=+$P(@FILREC@(0),U,3)
  1. LABIENX Q NAMREC