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

VAQREQ06.m

Go to the documentation of this file.
  1. VAQREQ06 ;ALB/JFP - REQUEST PDX RECORD,TRANSMIT;01MAR93
  1. ;;1.5;PATIENT DATA EXCHANGE;**4,20,26,32,44**;NOV 17, 1993;Build 4
  1. EP ; -- Programmer entry point for sending PDX requests
  1. ; -- This code is used by both request and unsolicited request
  1. ;
  1. D:$D(XRTL) T0^%ZOSV ; -- Capacity start
  1. S VAQDOM="",(POP,DOMCNT)=0 W !!,"Working..."
  1. D PRELOAD
  1. F S VAQDOM=$O(^TMP("VAQSEG",$J,VAQDOM)) Q:VAQDOM="" D XMIT
  1. I POP K POP QUIT
  1. S VAQFLAG=1
  1. W !!,"Transactions filed "
  1. TASK ; -- Load taskman variables and task off
  1. S ZTRTN="GENXMIT^VAQADM50"
  1. S ZTDESC=$S(VAQOPT="REQ":"PDX, REQUEST",VAQOPT="UNS":"PDX, UNSOLICITED",1:"PDX, GENERATE TRANSMISSION")
  1. S ZTDTH=$H,ZTIO=""
  1. S ZTSAVE("VAQTRN(")=""
  1. I ZTRTN'="" D ^%ZTLOAD
  1. I $D(ZTSK) W "and queued "
  1. K ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTSK
  1. K ^TMP("CMNT",$J),FACDA,NOTI,PARMNODE,DOMDA,X,Y,DOMCNT,LOAD
  1. S:$D(XRT0) XRTN=$T(+0) D:$D(XRT0) T1^%ZOSV ; -- Capacity stop
  1. QUIT
  1. ;
  1. XMIT ; -- Makes an entry in the 'PDX TRANSACTION' file
  1. S Y=$$NEWTRAN^VAQFILE Q:Y<0
  1. S DOMCNT=DOMCNT+1 W:(DOMCNT#10)=0 "."
  1. S (VAQPR,DA)=+Y,VAQTRN=$P(Y,"^",2)
  1. S LOAD=$S(VAQOPT="REQ":"LDREQ",VAQOPT="UNS":"LDUNS",1:"LDREQ")
  1. D @LOAD
  1. D:$D(^TMP("VAQNOTI",$J)) MNOTI
  1. D:$D(^TMP("VAQSEG",$J)) MSEG
  1. I VAQOPT="UNS"&($D(^TMP("CMNT",$J))) D CMNT
  1. ; -- Load an array of newly entered transactions
  1. S VAQTRN(VAQPR)=""
  1. ; -- Updates workload file
  1. S X=$$WORKDONE^VAQADS01($S(VAQOPT="REQ":"RQST",VAQOPT="UNS":"SEND",1:""),VAQPR,$G(DUZ))
  1. Q
  1. ;
  1. PRELOAD ; -- Loads the constant data for multiple domains
  1. S %DT="ST",X="NOW" D ^%DT S VAQRQDT=Y
  1. S VAQPID=""
  1. S VAQSENPT=""
  1. I VAQDFN>0 D
  1. .S DFN=+VAQDFN
  1. .D PID^VADPT6
  1. .S VAQPID=$P($G(VA("PID")),U,1)
  1. .K VA("PID"),VA("BID")
  1. .S VAQSENPT=$$GETSEN^VAQUTL97(DFN) ; --Sensitive patient
  1. .S:VAQSENPT<0 VAQSENPT=""
  1. ;
  1. S PARMNODE=$G(^VAT(394.81,1,0))
  1. S FACDA=$P(PARMNODE,U,1),DOMDA=$P(PARMNODE,U,2)
  1. S VAQRQSIT=$P($G(^DIC(4,FACDA,0)),U,1)
  1. S VAQRQADD=$P($G(^DIC(4.2,DOMDA,0)),U,1)
  1. ;
  1. S (VAQDZ,VAQDZN)=""
  1. I $G(DUZ)'="" D
  1. .S VAQDZN=$S($D(DUZ):$P(^VA(200,DUZ,0),U,1),1:"")
  1. .S VAQDZ=$S($D(DUZ):DUZ,1:"")
  1. QUIT
  1. ;
  1. LDREQ ; -- Sets DR string and non-constant variables, LOAD FOR REQUEST
  1. S:'$D(VAQNOTI) VAQNOTI=0 ; -- UNS does not use notify logic
  1. S VAQAUSIT=$$GETINST^VAQUTL97(VAQDOM)
  1. S DR=".02///VAQ-RQST"
  1. S DR(1,394.61,.03)=".03////"_$S(+VAQDFN>0:+VAQDFN,1:"")
  1. S DR(1,394.61,.04)=".04///"_VAQSENPT
  1. S DR(1,394.61,.05)=".05///VAQ-RQST"
  1. S DR(1,394.61,10)="10///"_VAQNM
  1. S DR(1,394.61,11)="11///"_VAQISSN
  1. S DR(1,394.61,12)="12///"_VAQIDOB
  1. S DR(1,394.61,13)="13///"_VAQPID
  1. S DR(1,394.61,20)="20///"_VAQRQDT
  1. S DR(1,394.61,21)="21///"_VAQDZN
  1. S DR(1,394.61,30)="30///"_VAQRQSIT
  1. S DR(1,394.61,31)="31///"_VAQRQADD
  1. S DR(1,394.61,60)="60///"_VAQAUSIT
  1. S DR(1,394.61,61)="61///"_VAQDOM
  1. S DR(1,394.61,70)="70///"_VAQNOTI
  1. ;
  1. S DIE="^VAT(394.61,"
  1. D ^DIE K DIE,DR
  1. QUIT
  1. ;
  1. LDUNS ; -- Sets DR string and non-constant variables, LOAD FOR UNSOLICITED
  1. S VAQAUSIT=$$GETINST^VAQUTL97(VAQDOM)
  1. S DR=".02///VAQ-TUNSL"
  1. S DR(1,394.61,.03)=".03////"_$S(+VAQDFN>0:+VAQDFN,1:"")
  1. S DR(1,394.61,.04)=".04///"_VAQSENPT
  1. S DR(1,394.61,.05)=".05///VAQ-UNSOL"
  1. S DR(1,394.61,10)="10///"_VAQNM
  1. S DR(1,394.61,11)="11///"_VAQISSN
  1. S DR(1,394.61,12)="12///"_VAQIDOB
  1. S DR(1,394.61,13)="13///"_VAQPID
  1. S DR(1,394.61,20)="20///"_VAQRQDT
  1. S DR(1,394.61,21)="21///"_VAQDZN
  1. S DR(1,394.61,50)="50///"_VAQRQDT
  1. S DR(1,394.61,51)="51///"_VAQDZN
  1. S DR(1,394.61,30)="60///"_VAQRQSIT
  1. S DR(1,394.61,31)="61///"_VAQRQADD
  1. S DR(1,394.61,60)="30///"_VAQAUSIT
  1. S DR(1,394.61,61)="31///"_VAQDOM
  1. ;
  1. S DIE="^VAT(394.61,"
  1. D ^DIE K DIE,DR
  1. QUIT
  1. MNOTI ; -- Loads the notify multiple
  1. N VAQNOTI,VAQNTF,VAQMSG
  1. S NOTI=""
  1. F S NOTI=$O(^TMP("VAQNOTI",$J,NOTI)) Q:NOTI="" D
  1. .;RRA VAQ*1.5*44 TICKET 485092 pass "Notify" ien rather than name as string (dups)
  1. .S VAQNOTI=$G(^TMP("VAQNOTI",$J,NOTI))
  1. .S VAQNTF(394.6171,"+1,"_VAQPR_",",.01)=VAQNOTI
  1. .D UPDATE^DIE("","VAQNTF",,"VAQMSG")
  1. .K VAQNTF,VAQMSG
  1. K DIE,DR,DLAYGO
  1. QUIT
  1. ;
  1. MSEG ; -- Loads the data segment muliple
  1. S SEG=""
  1. F S SEG=$O(^TMP("VAQSEG",$J,VAQDOM,SEG)) Q:(SEG="") D
  1. .S SEGND=$G(^TMP("VAQSEG",$J,VAQDOM,SEG))
  1. .S VAQJUNK=$$FILESEG^VAQFILE2(394.61,VAQPR,80,$P(SEGND,"^",1),$P(SEGND,"^",3),$P(SEGND,"^",4))
  1. K VAQJUNK
  1. QUIT
  1. ;
  1. CMNT ; -- Loads comment for unsolicited request (WORD PROCESSOR FIELD)
  1. S %X="^TMP(""CMNT"",$J,"
  1. S %Y="^VAT(394.61,"_DA_",""CMNT"","
  1. D %XY^%RCR
  1. K %X,%Y
  1. QUIT
  1. ;
  1. END ; -- End of code
  1. ;QUIT