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

GMRCTIU.m

Go to the documentation of this file.
  1. GMRCTIU ;SLC/DCM - Consults - TIU utilities ;2/26/02 11:46
  1. ;;3.0;CONSULT/REQUEST TRACKING;**1,4,12,18,15,17,22,27**;DEC 27, 1997
  1. ;
  1. ; This routine invokes IA #2427,#2638,#2832,#3161
  1. ;
  1. GET(GMRCO,GMRCTUFN,GMRCTUST,GMRCAUTH) ;update Consult from TIU
  1. ;GMRCO=IFN from file 123
  1. ;GMRCTUFN=TIU IFN
  1. ;GMRCTUST=TIU status of report
  1. ;GMRCAUTH=Author of Document
  1. N GMRCA,GMRCSTS,GMRCDFN,GMRCAD
  1. S GMRCA=$S($G(GMRCTUST)["INCOMPLETE":9,1:10),GMRCSTS=$S(GMRCA=10:2,1:9)
  1. I '+$G(GMRCA) S GMRCA=99,GMRCSTS=99
  1. D:+$G(GMRCA) STATUS^GMRCTIU1
  1. K GMRCOM,GMRCND,GMRCORNP,GMRCORTX,GMRCSA,GMRCSTS
  1. Q
  1. ;
  1. DSPLAY(GMRCTUFN,LINECT) ;Get TIU results narrative and get it ready for display
  1. ;GMRCTUFN=TIU IEN of results record
  1. ;LINECT=line count for list manager
  1. N ND,GMRCARR
  1. D RPC^TIUSRV(.GMRCARR,GMRCTUFN)
  1. S ND=0
  1. F S ND=$O(@GMRCARR@(ND)) Q:ND="" S ^TMP("GMRCR",$J,"DT",LINECT,0)=@GMRCARR@(ND,0),LINECT=LINECT+1
  1. ;D CLEAN^VALM10
  1. K @GMRCARR,RESFL,GMRCTIUY
  1. S:LINECT>1 LINECT=LINECT-1
  1. Q
  1. ENTER(GMRCO) ; Complete a consult with TIU note
  1. N XQADATA,XQA,XQAID,XQAROU,XQFLG,XQAKILL
  1. D ENTER^GMRCTIUE(GMRCO)
  1. Q
  1. ;
  1. ADDEND(GMRCO) ; Make an addendum to a consult result
  1. N XQADATA,XQA,XQAID,XQAROU,XQFLG,XQAKILL
  1. D ADDEND^GMRCTIUE(GMRCO)
  1. Q
  1. ;
  1. SEND(DFN,OVRRIDE,CP) ;Get consult list and return in ^TMP for TIU
  1. ;DFN=Patient's Internal file number from file 2
  1. ;OVRRIDE=BOOLEAN flag to override user validation
  1. ;CP=2 if only return entries that may have CP docs attached
  1. ;
  1. N GMRCI,TAB
  1. Q:DFN=""!(DFN<1)
  1. S TAB="",$P(TAB," ",30)=""
  1. K ^TMP("GMRCR",$J,"TIU")
  1. D GETCONSL(DFN,2,$G(OVRRIDE),$G(CP)) ;2=returns TIU format in ^TMP
  1. Q
  1. ;
  1. RPCLIST(GMRCY,DFN) ;Get consult list and return in GMRCY for GUI
  1. N GMRCI
  1. I '+$G(DFN) S GMRCY(0)=0
  1. D GETCONSL(DFN,1) ;1=returns GUI format in GMRCY array
  1. ; The consults will be returned from GETCONSL in the GMRCY array.
  1. S GMRCY(0)=+$G(GMRCI)
  1. Q
  1. GETCONSL(DFN,ORIGIN,OVRRIDE,GMRCCP) ;Get the patients consults
  1. ;ORIGIN is whether the request is for GUI=1 or LM=2.
  1. ;The logic loops through the "AD" cross-reference to find consults
  1. ;The output will be formatted in GMRCY for the GUI if ORIGIN is 1.
  1. ;The output will be formatted in ^TMP("GMRCR",$J,"TIU" if ORIGIN is 2.
  1. ;GMRCCP = 1 = return only CP entries that can have CP doc attached
  1. ;
  1. N GMRCQIT,GMRC,GMRCDA,GMRCDT,GMRCEDT,GMRCYR,GMRCSP,GMRCST,GMRCSTS
  1. N GMRCTIU,GMRCTIUC,GMRCSS,GMRCSVC,GMRCPROC,GMRCNOTE,Y,GMRCDAT,GMRCAU
  1. ;
  1. ; Aug 2000 - MA changed routine to use Parameter global to set the
  1. ; number of days to look backward when getting a list of consults.
  1. S GMRCYR=$$FMADD^XLFDT(DT,-$$GET^XPAR("ALL","GMRC CONSULT LIST DAYS"))
  1. S GMRCYR=9999999-GMRCYR,GMRCDAT=0
  1. F S GMRCDAT=$O(^GMR(123,"AD",DFN,GMRCDAT)) Q:'GMRCDAT!(GMRCDAT>GMRCYR) D
  1. . S GMRCDA=0
  1. . F S GMRCDA=$O(^GMR(123,"AD",DFN,GMRCDAT,GMRCDA)) Q:'GMRCDA D
  1. .. S GMRC(0)=$G(^GMR(123,GMRCDA,0))
  1. .. S GMRCST=$P(GMRC(0),U,12)
  1. .. I $P($G(^GMR(123,GMRCDA,12)),U,5)="P" Q ;can't attach to IFC placer
  1. .. I "25689"'[GMRCST Q ;only return statuses c,p,a,s,pr
  1. .. S GMRCDT=+GMRC(0)
  1. .. S GMRCSS=$P(GMRC(0),U,5)
  1. .. I '+$G(OVRRIDE) D Q:'GMRCAU
  1. ... S GMRCAU=$$VALID^GMRCAU(GMRCSS,GMRCDA)
  1. ... I GMRCAU=3 S GMRCAU=0 ;exclude admin users
  1. .. I '$G(GMRCCP),+$G(^GMR(123,GMRCDA,1)) Q ;no CP requests for CPRS
  1. .. I $G(GMRCCP),'+$G(^GMR(123,GMRCDA,1)) Q ;only return CP requests
  1. .. S GMRCTIUC=0
  1. .. D GETLIST^GMRCTIUL(GMRCDA,0,1,.GMRCTIUC)
  1. .. I ORIGIN=1 D BLDGMRCY Q
  1. .. I ORIGIN=2 D BLDTMP Q
  1. .. Q
  1. . Q
  1. Q
  1. ;
  1. BLDGMRCY ;Build the GMRCY array of existing consults
  1. S GMRCSTS=$P($G(^ORD(100.01,+GMRCST,0)),"^",1)
  1. S GMRCSS=$P(GMRC(0),U,5),GMRCSVC=$P($G(^GMR(123.5,GMRCSS,0)),U)
  1. S GMRCPROC=$P($G(^GMR(123.3,+$P(GMRC(0),U,8),0)),U)
  1. S GMRCI=+$G(GMRCI)+1
  1. S GMRCY(GMRCI)=GMRCDA_U_GMRCDT_U_GMRCSVC_U_GMRCPROC_U_GMRCSTS_U_+GMRCTIUC(0)
  1. Q
  1. BLDTMP ;Build TMP global for TIU
  1. S GMRCSTS=$G(^ORD(100.01,+GMRCST,.1))
  1. S GMRCSP=$$ORTX^GMRCAU(GMRCDA)
  1. S GMRCNOTE=$S(GMRCTIUC(0)=1:" note",1:" notes")
  1. S GMRCEDT=$$FMTE^XLFDT(GMRCDT,"D")
  1. S GMRCI=+$G(GMRCI)+1
  1. S ^TMP("GMRCR",$J,"TIU",GMRCI,0)=$J(GMRCI,3)_"> "_$E(GMRCEDT_TAB,1,12)_" C#"_$E(GMRCDA_TAB,1,9)_$E(GMRCSP_TAB,1,21)_$E(GMRCSTS_TAB,1,4)_$E(+GMRCTIUC(0)_GMRCNOTE_TAB,1,10)
  1. S ^TMP("GMRCR",$J,"TIU","B",GMRCI,GMRCDA)=""
  1. Q
  1. ANYPENDG(DFN,USER) ; Determine if user can update any unresolved CSLTs
  1. ; Input:
  1. ; DFN = patient being worked on or the one to check from file 2
  1. ; USER = the person to check on from file 200
  1. ;
  1. ; Output:
  1. ; 1 = yes there are unresolved consult that could be completed
  1. ; 0 = no unresolved consults that USER can update
  1. ;
  1. N GMRCYR,GMRCDAT,GMRCDONE,GMRCDA,GMRCST,GMRC,GMRCSS,GMRCDT,GMRCAU
  1. S GMRCYR=$$FMADD^XLFDT(DT,-$$GET^XPAR("ALL","GMRC CONSULT LIST DAYS"))
  1. S GMRCYR=9999999-GMRCYR,GMRCDAT=0,GMRCDONE=0
  1. F S GMRCDAT=$O(^GMR(123,"AD",DFN,GMRCDAT)) Q:'GMRCDAT!(GMRCDAT>GMRCYR)!(GMRCDONE) D
  1. . S GMRCDA=0
  1. . F S GMRCDA=$O(^GMR(123,"AD",DFN,GMRCDAT,GMRCDA)) Q:'GMRCDA D
  1. .. S GMRC(0)=$G(^GMR(123,GMRCDA,0))
  1. .. S GMRCST=$P(GMRC(0),U,12)
  1. .. I $P($G(^GMR(123,GMRCDA,12)),U,5)="P" Q ;can't attach to IFC placer
  1. .. I +$G(^GMR(123,GMRCDA,1)) Q ;can't complete CP's from NOTES tab
  1. .. I "568"'[GMRCST Q ;only return statuses p,a,s
  1. .. S GMRCDT=+GMRC(0)
  1. .. S GMRCSS=$P(GMRC(0),U,5)
  1. .. D Q:'GMRCAU
  1. ... S GMRCAU=$$VALID^GMRCAU(GMRCSS,GMRCDA)
  1. ... I GMRCAU=3 S GMRCAU=0 ;exclude admin users
  1. ... I GMRCAU S GMRCDONE=1
  1. Q GMRCDONE
  1. ;