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

ORDV04.m

Go to the documentation of this file.
  1. ORDV04 ; SLC/DAN - OE/RR Components ;10/02/14 08:08
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109,148,160,208,195,241,215,274,256,243,306,361,395**;Dec 17,1997;Build 11
  1. ;
  1. ; ^TMP("GMPLHS",$J) DBIA 1183
  1. ; ^UTILITY & ^TMP("GMRVD") DBIA 10061
  1. ;
  1. ORC(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; Current Orders
  1. N ORCNT,ORJ,ORSITE,SITE,ORX0,ORLIST,GO
  1. Q:'$L(OREXT)
  1. S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
  1. Q:'$L($T(@GO))
  1. S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
  1. K ^TMP("ORR",$J),^TMP("ORDATA",$J)
  1. D @GO
  1. I '$D(^TMP("ORR",$J)) Q
  1. S ORCNT=0,ORJ=0
  1. F S ORJ=$O(^TMP("ORR",$J,ORLIST,ORJ)) Q:'+ORJ!(ORCNT'<ORMAX) S ORX0=^(ORJ) D
  1. . S ORCNT=ORCNT+1,SITE=$S($L($G(^TMP("ORR",$J,ORLIST,ORJ,"facility"))):^("facility"),1:ORSITE)
  1. . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",1)="1^"_SITE ;Station ID
  1. . D SPMRG^ORDVU("^TMP(""ORR"","_$J_","""_ORLIST_""","_ORJ_",""TX"")","^TMP(""ORDATA"","_$J_","""_ORLIST_""","_ORJ_",""WP"",2)",2) ;order text
  1. . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",3)="3^"_$P(ORX0,"^",6) ; status
  1. . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",4)="4^"_$$DATE^ORDVU($P(ORX0,"^",4)) ;start date
  1. . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",5)="5^"_$$DATE^ORDVU($P(ORX0,"^",5)) ;stop date
  1. . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",7)="7^"_$P(^TMP("ORR",$J,ORLIST,ORJ),U) ;Order Number
  1. . I $O(^TMP("ORR",$J,ORLIST,ORJ,"TX",1)) S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",6)="6^[+]" ;flag for details
  1. K ^TMP("ORR",$J)
  1. S ROOT=$NA(^TMP("ORDATA",$J))
  1. Q
  1. ORCVA ; Current Orders
  1. N ORVP
  1. S ORVP=DFN_";DPT("
  1. I '$D(^OR(100,"AC",ORVP)) Q
  1. D EN^ORQ1(ORVP,,2,,ORDBEG,ORDEND,1) ; current orders. ORLIST is set in ORQ1
  1. Q
  1. PLAILALL(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; API - ALL problems
  1. N GO
  1. Q:'$L(OREXT)
  1. S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
  1. Q:'$L($T(@GO))
  1. D PLAIL
  1. Q
  1. PLALL ; All Problems
  1. D GETLIST^GMPLHS(DFN,"ALL")
  1. Q
  1. PLAILI(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; API - INACTIVE problems
  1. N GO
  1. Q:'$L(OREXT)
  1. S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
  1. Q:'$L($T(@GO))
  1. D PLAIL
  1. Q
  1. PLI ; Inactive Problems
  1. D GETLIST^GMPLHS(DFN,"I")
  1. Q
  1. PLAILA(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; API - ACTIVE problems
  1. N GO
  1. Q:'$L(OREXT)
  1. S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
  1. Q:'$L($T(@GO))
  1. D PLAIL
  1. Q
  1. PLA ; Active Problems
  1. D GETLIST^GMPLHS(DFN,"A")
  1. Q
  1. PLAIL ; problems(active, inactive or all)
  1. ;Ext call: GMPLHS
  1. ; input:
  1. ; STATUS = "A" => active
  1. ; STATUS = "I" => inactive
  1. ; STATUS = "ALL" => all
  1. ;
  1. I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
  1. . S ORDBEG=0,ORDEND=9999999,ORMAX=99999
  1. . D GCPR^OMGCOAS1(DFN,"PLL",ORDBEG,ORDEND,ORMAX)
  1. . S ROOT=$NA(^TMP("ORDATA",$J))
  1. N ORPROBNO,ORLOC,I,ORSITE
  1. S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
  1. K ^TMP("ORDATA",$J),^TMP("GMPLHS",$J) ;DBIA #1183
  1. D @GO
  1. I '$D(^TMP("GMPLHS",$J)) Q
  1. S ORPROBNO=0
  1. F I=1:1 S ORPROBNO=$O(^TMP("GMPLHS",$J,ORPROBNO)) Q:'ORPROBNO D
  1. . N ORXREC0,SITE,ICD,SCTC,VHATC,PROVNARR,ORMORE,K,ORCSYS,ORICDLBL
  1. . S ORXREC0=$G(^TMP("GMPLHS",$J,ORPROBNO,0)),ORMORE=0
  1. . S SITE=$S($L($G(^TMP("GMPLHS",$J,ORPROBNO,"facility"))):^("facility"),1:ORSITE)
  1. . S ICD=$P(ORXREC0,U,17),SCTC=$P(ORXREC0,U,15),VHATC=$P(ORXREC0,U,19)
  1. . S ORCSYS=$P(ORXREC0,U,22),ORICDLBL=$S(ORCSYS="10D":"ICD-10-CM",1:"ICD-9-CM")
  1. . S PROVNARR=$P($G(^TMP("GMPLHS",$J,ORPROBNO,"N"))," (")
  1. . S PROVNARR=PROVNARR_$S($L($G(ICD))&('$L($G(SCTC))&'$L($G(VHATC))):" ("_$G(ORICDLBL)_" "_$G(ICD)_")",$L($G(SCTC))&($L($G(ICD))):" (SCT "_$G(SCTC)_")"_" ("_$G(ORICDLBL)_" "_$G(ICD)_")",$L($G(VHATC)):" (VHAT "_$G(VHATC)_")",1:"")
  1. . S ^TMP("ORDATA",$J,ORPROBNO,"WP",1)="1^"_SITE ;Station ID
  1. . S ^TMP("ORDATA",$J,ORPROBNO,"WP",2)="2^"_$P(ORXREC0,U,5) ;status
  1. . S ^TMP("ORDATA",$J,ORPROBNO,"WP",3)="3^"_PROVNARR ;provider narrative
  1. . S ^TMP("ORDATA",$J,ORPROBNO,"WP",4)="4^"_$$DATE^ORDVU($P(ORXREC0,U,6)) ;onset date
  1. . S ^TMP("ORDATA",$J,ORPROBNO,"WP",5)="5^"_$$DATE^ORDVU($P(ORXREC0,U,2)) ;last modified date
  1. . S ^TMP("ORDATA",$J,ORPROBNO,"WP",6)="6^"_$P(ORXREC0,U,7) ;provider
  1. . S ORLOC=0,K=0
  1. . F S ORLOC=$O(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC)) Q:'ORLOC D
  1. .. N X S X=0
  1. .. F S X=$O(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC,X)) Q:'X D
  1. ... S K=K+1,ORMORE=1
  1. ... S ^TMP("ORDATA",$J,ORPROBNO,"WP",7,K)="7^"_$P($G(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC,X,0)),U) ;note narrative
  1. . S ^TMP("ORDATA",$J,ORPROBNO,"WP",8)="8^"_$P(ORXREC0,U,14) ;exposures
  1. . I ORMORE S ^TMP("ORDATA",$J,ORPROBNO,"WP",9)="9^[+]" ;flag for details
  1. K ^TMP("GMPLHS",$J)
  1. S ROOT=$NA(^TMP("ORDATA",$J))
  1. Q
  1. SR(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Surgery Report
  1. N ORCNT
  1. S ORCNT=0
  1. K ^TMP("ORDATA",$J)
  1. D ENSR^ORDV04A
  1. S ROOT=$NA(^TMP("ORDATA",$J))
  1. Q
  1. VS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; get vital Signs
  1. D VS^ORDV04A
  1. Q
  1. TIUPRG(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; progress notes
  1. ;Ext calls: TIUSRVLO, TIUSRVR1, VASITE
  1. I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
  1. . D GCPR^OMGCOAS1(DFN,"PN",ORDBEG,ORDEND,ORMAX)
  1. . S ROOT=$NA(^TMP("ORDATA",$J))
  1. N ORDT,DATE,ORCI,ORGLOB,ORGLOBA,ORTEMP,ORSITE,SITE,I,ORNODE,GO,ORIMAG
  1. Q:'$L(OREXT)
  1. S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
  1. Q:'$L($T(@GO))
  1. S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
  1. D @GO
  1. I '$D(@ORGLOB) Q
  1. S ORNODE=0,ORCI=0
  1. K ^TMP("ORDATA",$J)
  1. F S ORNODE=$O(@ORGLOB@(ORNODE)) Q:'ORNODE!(ORCI'<ORMAX) D
  1. . S ORTEMP=@ORGLOB@(ORNODE)
  1. . S ORIMAG=$P($$RESOLVE^TIUSRVLO($P(ORTEMP,U)),U,10)
  1. . S DATE=$P(ORTEMP,U,3) ;date
  1. . S SITE=$S($L($G(@ORGLOB@(ORNODE,"facility"))):^("facility"),1:ORSITE)
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",1)="1^"_SITE ;Station ID
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",2)="2^"_$P(ORTEMP,U) ;TIU ien
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",3)="3^"_$$DATE^ORDVU(DATE) ;date
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",4)="4^"_$P(ORTEMP,U,2) ;type
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",5)="5^"_$P($P(ORTEMP,U,5),";",2) ;author
  1. . S ORCI=ORCI+1
  1. . D TGET^TIUSRVR1(.ORGLOBA,$P(ORTEMP,U)) ;Call back to get note text
  1. . D SPMRG^ORDVU($NA(@ORGLOBA),$NA(^TMP("ORDATA",$J,ORNODE,"WP",6)),6) ;Notes Text
  1. . I $O(@ORGLOBA@(0)) S ^TMP("ORDATA",$J,ORNODE,"WP",7)="7^[+]"
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",8)="8^"_ORIMAG
  1. . K @ORGLOBA
  1. K @ORGLOB
  1. S ROOT=$NA(^TMP("ORDATA",$J))
  1. Q
  1. TPRG ; Progress Notes
  1. D CONTEXT^TIUSRVLO(.ORGLOB,3,5,DFN,ORDBEG,ORDEND,,ORMAX)
  1. Q
  1. TIUDCS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; Discharge Summaries
  1. ;Ext calls: VASITE, DIQ1, TIUSRVLO
  1. I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
  1. . D GCPR^OMGCOAS1(DFN,"DS",ORDBEG,ORDEND,ORMAX)
  1. . S ROOT=$NA(^TMP("ORDATA",$J))
  1. N ORGLOB,ORGLOBA,ORI,ORNODE,ORICDIEN,ORARRAY,ORTEMP,ORSITE,SITE,DIC,DR,DIQ,DA,GO
  1. Q:'$L(OREXT)
  1. S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
  1. Q:'$L($T(@GO))
  1. S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
  1. D @GO
  1. I '$D(@ORGLOB) Q
  1. K ^TMP("ORDATA",$J)
  1. S ORNODE=0,ORI=0
  1. F S ORNODE=$O(@ORGLOB@(ORNODE)) Q:'ORNODE!(ORI'<ORMAX) D
  1. . S ORTEMP=@ORGLOB@(ORNODE)
  1. . S SITE=$S($L($G(@ORGLOB@(ORNODE,"facility"))):^("facility"),1:ORSITE)
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",1)="1^"_SITE ;Station ID
  1. . K ORARRAY S DIC=8925,DA=$P(ORTEMP,U),DR=".05;.07;.08;1202;1502",DIQ="ORARRAY"
  1. . D EN^DIQ1
  1. . S DIQ="ORARRAY(8925,"_DA_")"
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",2)="2^"_$$DATEMMM^ORDVU($G(@DIQ@(.07))) ;episode begin date/time
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",3)="3^"_$$DATEMMM^ORDVU($G(@DIQ@(.08))) ;episode end date/time
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",4)="4^"_$G(@DIQ@(1202)) ;author/dicator
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",5)="5^"_$G(@DIQ@(1502)) ;signed by
  1. . S ^TMP("ORDATA",$J,ORNODE,"WP",6)="6^"_$G(@DIQ@(.05)) ;status
  1. . S ORI=ORI+1
  1. . D TGET^TIUSRVR1(.ORGLOBA,$P(ORTEMP,U)) ;Call to get summary text
  1. . D SPMRG^ORDVU($NA(@ORGLOBA),$NA(^TMP("ORDATA",$J,ORNODE,"WP",7)),7) ;summary Text
  1. . I $O(@ORGLOBA@(0)) S ^TMP("ORDATA",$J,ORNODE,"WP",8)="8^[+]" ;detail flag
  1. . K @ORGLOBA
  1. K @ORGLOB
  1. S ROOT=$NA(^TMP("ORDATA",$J))
  1. Q
  1. TDCS ; Discharge Summary
  1. D CONTEXT^TIUSRVLO(.ORGLOB,244,5,DFN,ORDBEG,ORDEND,,ORMAX)
  1. Q