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

VAQLED02.m

Go to the documentation of this file.
  1. VAQLED02 ;ALB/JFP - PDX, LOAD/EDIT,SETUP OF DIFFERENCES;01MAR93
  1. ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
  1. EP ; -- Main entry point for the list processor
  1. ; -- K XQORS,VALMEVL ;(only kill on the first screen in)
  1. ;
  1. ;D CLEAR^VALM1
  1. S VAQBCK=0
  1. D MAIN^VAQLED04 ; -- collects PDX data and MAS data
  1. I '$D(^TMP("VAQTR",$J))!('$D(^TMP("VAQPT",$J))) D QUIT
  1. .W !," Error...No data collected"
  1. .S VAQFLAG=1 D TRANEX
  1. D EN^VALM("VAQ LED DIFFERENCES PDX6")
  1. QUIT
  1. ;
  1. INIT ; -- Builds array of differences between PDX minimal and the local
  1. ; data stored in file 2.
  1. ;
  1. K ^TMP("VAQL2",$J)
  1. K ^TMP("VAQPT",$J,"ID"),^TMP("VAQTR",$J,"ID"),^TMP("VAQLD",$J)
  1. D EP^VAQLED05
  1. QUIT
  1. ;
  1. HD ; -- Make header line for list processor
  1. D HD1^VAQEXT02 QUIT
  1. ;
  1. FIELD ; -- Updates local patient file by field or fields selected
  1. S (VAQFLAG,VAQUPDFL)=0
  1. D SEL^VALM2
  1. Q:'$D(VALMY)
  1. D CLEAR^VALM1
  1. S ENTRY="" K ^TMP("VAQLD",$J)
  1. F S ENTRY=$O(VALMY(ENTRY)) Q:ENTRY="" D
  1. .S SDAT=$G(^TMP("VAQIDX",$J,ENTRY))
  1. .D UPDATE
  1. I VAQUPDFL=1 D WORKLD
  1. D EP1^VAQLED05 ; -- Redisplay
  1. S VALMBCK="R"
  1. S VAQBCK=1
  1. QUIT
  1. ;
  1. UPDATE ; -- Loads fields for update
  1. S DFNTR=$P(SDAT,U,1)
  1. S DFNPT=$P(SDAT,U,2)
  1. I DFNPT="" W !,"Local patient pointer missing... unable to upload field" QUIT
  1. S (FLE,LFLE)=$P(SDAT,U,3)
  1. S FLD=$P(SDAT,U,4)
  1. S SEQ=$P(SDAT,U,5)
  1. S MFLAG=$P(SDAT,U,6)
  1. I LFLE'=2 S LFLE=2 ; -- only lock top level file
  1. S LOCKFLE=$G(^DIC(LFLE,0,"GL"))
  1. L +(@(LOCKFLE_DFNPT_")")):60
  1. I ('$T) W !,"Could not edit entry... record locked" K LOCKFLE QUIT
  1. D:MFLAG="" UPDTER1
  1. D:MFLAG="M" UPDTEM1
  1. L -(@(LOCKFLE_DFNPT_")")) K LOCKFLE
  1. ; -- data loaded
  1. S VAQUPDFL=1
  1. I '($D(Y)#2) D KILL QUIT
  1. S ^TMP("VAQLD",$J,ENTRY)=FLE_"^"_FLD ; -- data not pass input transform
  1. QUIT
  1. ;
  1. UPDTER1 ; -- Updates patient with PDX data (field by field) ** NON MUTIPLE **
  1. S DIE=$G(^DIC(FLE,0,"GL"))
  1. S DA=DFNPT
  1. S DR=FLD_"///^S X=$G(^TMP(""VAQTR"",$J,""VALUE"",FLE,FLD,0))"
  1. D ^DIE
  1. K DIE,DA,DR
  1. QUIT
  1. ;
  1. UPDTEM1 ; -- Updates patient with PDX data (field by field) ** MULTIPLE **
  1. ; Loads pointer to main file
  1. S MFLE=$G(^DD(FLE,0,"UP")) ; -- main file
  1. S MFLD="",MFLD=$O(^DD(MFLE,"SB",FLE,MFLD))
  1. S FLD=.01
  1. S DIE=$G(^DIC(MFLE,0,"GL"))
  1. S DA=DFNPT
  1. S DR=MFLD_"///"_$G(^TMP("VAQTR",$J,"VALUE",FLE,FLD,SEQ))
  1. D UPDTEM2
  1. D ^DIE
  1. K DIE,DA,DR,MFLE,MFLD,VALUE
  1. QUIT
  1. ;
  1. UPDTEM2 ; -- Load fields into sub file for entry
  1. F S FLD=$O(^TMP("VAQTR",$J,"VALUE",FLE,FLD)) Q:FLD="" D
  1. .S VALUE=FLD_"///"_$G(^TMP("VAQTR",$J,"VALUE",FLE,FLD,SEQ))
  1. .S DR(2,FLE)=VALUE
  1. .S DR(2,FLE,FLD)=VALUE
  1. QUIT
  1. ;
  1. LOAD ; -- Loads all different fields from PDX segment to local patient file
  1. I '$D(^TMP("VAQIDX",$J)) S VALMBCK="Q" QUIT
  1. S (VAQFLAG,VAQUPDFL)=0
  1. D CLEAR^VALM1
  1. S ENTRY="" K ^TMP("VAQLD",$J)
  1. F S ENTRY=$O(^TMP("VAQIDX",$J,ENTRY)) Q:ENTRY="" D
  1. .S SDAT=$G(^TMP("VAQIDX",$J,ENTRY))
  1. .D UPDATE
  1. I VAQUPDFL=1 D WORKLD
  1. D EP1^VAQLED05
  1. S VALMBCK="R"
  1. S VAQBCK=1
  1. QUIT
  1. ;
  1. TRANEX ; -- Pauses screen
  1. D PAUSE^VALM1
  1. S:'$D(VAQFLAG) VAQFLAG=""
  1. S VALMBCK=$S(VAQFLAG=0:"R",1:"Q")
  1. QUIT
  1. ;
  1. WORKLD ; -- Updates workload file for update
  1. S X=$$WORKDONE^VAQADS01("UPDTE",DFNTR,$G(DUZ))
  1. I X<0 W !,"Error updating workload file (UPDTE)... "_$P(X,U,2)
  1. I $P($G(^VAT(394.61,DFNTR,0)),U,4)=0 QUIT
  1. S X=$$WORKDONE^VAQADS01("SNSTVE",DFNTR,$G(DUZ))
  1. I X<0 W !,"Error updating workload file (SNSTVE)... "_$P(X,U,2)
  1. QUIT
  1. ;
  1. KILL ; --
  1. K ^TMP("VAQTR",$J,"VALUE",FLE,$S(MFLAG="M":.01,1:FLD),SEQ)
  1. K ^TMP("VAQPT",$J,"VALUE",FLE,$S(MFLAG="M":.01,1:FLD),SEQ)
  1. QUIT
  1. ;
  1. EXIT ; -- Note: The list processor cleans up its own variables.
  1. ; All other variables cleaned up here.
  1. ;
  1. K ^TMP("VAQL2",$J),^TMP("VAQIDX",$J)
  1. K ^TMP("VAQPT",$J),^TMP("VAQTR",$J),^TMP("VAQLD",$J)
  1. K VAQFLAG,VAQUPDFL
  1. K DFNTR,DFNPT,FLE,FLD,SEQ,MFLAG,LFLE
  1. Q
  1. ;
  1. END ; -- End of code
  1. QUIT