267 lines
7.8 KiB
Mathematica
267 lines
7.8 KiB
Mathematica
|
IVMBULK2 ;ALB/KCL - IVM/ENROLLMENT Extract Utilities; 23-SEP-1997
|
||
|
;;2.0;INCOME VERIFICATION MATCH;**9**; 21-OCT-94
|
||
|
;
|
||
|
;
|
||
|
GET(IVMARRY) ; --
|
||
|
; Description: Used to obtain a record from the IVM Extract Management file into the local IVMARRY array.
|
||
|
;
|
||
|
; Input: None
|
||
|
;
|
||
|
; Output:
|
||
|
; Function Value - returns 1 if success, 0 if failure.
|
||
|
; IVMARRY - this is the name of a local array, it should be passed by
|
||
|
; reference. If the function is successful this array will
|
||
|
; contain the record.
|
||
|
;
|
||
|
; Subscript Field Name
|
||
|
; ========== =======================
|
||
|
; "HOST" Host File Name
|
||
|
; "DIR" Directory
|
||
|
; "PROC" # of Patients Processed
|
||
|
; "TASK" Task Number
|
||
|
; "START" Date/Time Job Started
|
||
|
; "STOP" Date/Time Job Stopped
|
||
|
; "TERM" Job Terminated?
|
||
|
; "LASTPAT" Last Patient Processed
|
||
|
; "PROJECT" Projected Completion Date/Time
|
||
|
; "EXTRACT" # of Patients Extracted
|
||
|
; "FILES" Number of Host Files
|
||
|
; "ERROR" Error
|
||
|
;
|
||
|
N NODE,SUCCESS
|
||
|
S SUCCESS=0
|
||
|
;
|
||
|
I '$D(^IVM(301.63,1,0)) G GETQ
|
||
|
;
|
||
|
K IVMARRY S IVMARRY=""
|
||
|
S NODE=$G(^IVM(301.63,1,0))
|
||
|
;
|
||
|
S IVMARRY("HOST")=$P(NODE,"^")
|
||
|
S IVMARRY("DIR")=$P(NODE,"^",2)
|
||
|
S IVMARRY("PROC")=$P(NODE,"^",3)
|
||
|
S IVMARRY("TASK")=$P(NODE,"^",4)
|
||
|
S IVMARRY("START")=$P(NODE,"^",5)
|
||
|
S IVMARRY("STOP")=$P(NODE,"^",6)
|
||
|
S IVMARRY("TERM")=$P(NODE,"^",7)
|
||
|
S IVMARRY("LASTPAT")=$P(NODE,"^",8)
|
||
|
S IVMARRY("PROJECT")=$P(NODE,"^",9)
|
||
|
S IVMARRY("EXTRACT")=$P(NODE,"^",10)
|
||
|
S IVMARRY("FILES")=$P(NODE,"^",11)
|
||
|
S NODE=$G(^IVM(301.63,1,10))
|
||
|
S IVMARRY("ERROR")=$P(NODE,"^")
|
||
|
;
|
||
|
S SUCCESS=1
|
||
|
;
|
||
|
GETQ Q SUCCESS
|
||
|
;
|
||
|
;
|
||
|
STORE(IVMARRY) ; --
|
||
|
; Description: Used to store the processing information for the
|
||
|
; execution of the initial extract in the IVM Extract Management file.
|
||
|
;
|
||
|
; Input:
|
||
|
; IVMARRY - this is the name of a local array, it should be passed by
|
||
|
; reference. This array should contain the processing
|
||
|
; information to be stored. Missing subscripts will cause
|
||
|
; the field to be deleted. "HOST" is required.
|
||
|
;
|
||
|
; Subscript Field Name
|
||
|
; ========== =======================
|
||
|
; "HOST" Host File Name
|
||
|
; "DIR" Directory
|
||
|
; "PROC" # of Patients Processed
|
||
|
; "TASK" Task Number
|
||
|
; "START" Date/Time Job Started
|
||
|
; "STOP" Date/Time Job Stopped
|
||
|
; "TERM" Job Terminated?
|
||
|
; "LASTPAT" Last Patient Processed
|
||
|
; "PROJECT" Projected Completion Date/Time
|
||
|
; "EXTRACT" # of Patients Extracted
|
||
|
; "FILES" Number of Host Files
|
||
|
; "ERROR" Error
|
||
|
;
|
||
|
; Output:
|
||
|
; Function Value - returns 1 if success, 0 if failure.
|
||
|
;
|
||
|
N SUCCESS
|
||
|
S SUCCESS=1
|
||
|
;
|
||
|
I $G(IVMARRY("HOST"))="" S SUCCESS=0 G STOREQ
|
||
|
I '$D(^IVM(301.63,1,0)) D G:('SUCCESS) STOREQ
|
||
|
.S DATA(.01)=IVMARRY("HOST")
|
||
|
.I '$$ADD^DGENDBS(301.63,,.DATA) S SUCCESS=0
|
||
|
;
|
||
|
;
|
||
|
S DATA(.01)=IVMARRY("HOST")
|
||
|
S DATA(.02)=$G(IVMARRY("DIR"))
|
||
|
S DATA(.03)=$G(IVMARRY("PROC"))
|
||
|
S DATA(.04)=$G(IVMARRY("TASK"))
|
||
|
S DATA(.05)=$G(IVMARRY("START"))
|
||
|
S DATA(.06)=$G(IVMARRY("STOP"))
|
||
|
S DATA(.07)=$G(IVMARRY("TERM"))
|
||
|
S DATA(.08)=$G(IVMARRY("LASTPAT"))
|
||
|
S DATA(.09)=$G(IVMARRY("PROJECT"))
|
||
|
S DATA(.1)=$G(IVMARRY("EXTRACT"))
|
||
|
S DATA(.11)=$G(IVMARRY("FILES"))
|
||
|
S DATA(10)=$G(IVMARRY("ERROR"))
|
||
|
I '$$UPD^DGENDBS(301.63,1,.DATA) S SUCCESS=0
|
||
|
;
|
||
|
STOREQ Q SUCCESS
|
||
|
;
|
||
|
;
|
||
|
INIT(IVMARRY) ; --
|
||
|
; Description: Used to initilized IVM Extract Management record in the local IVMARRY array.
|
||
|
;
|
||
|
; Input: None
|
||
|
;
|
||
|
; Output:
|
||
|
; Function Value - returns 1 if success, 0 if failure.
|
||
|
; IVMARRY - this is the name of a local array, it should be passed by
|
||
|
; reference. If the function is successful this array will
|
||
|
; contain the initialized record.
|
||
|
;
|
||
|
; Subscript Field Name
|
||
|
; ========== =======================
|
||
|
; "HOST" Host File Name
|
||
|
; "DIR" Directory
|
||
|
; "PROC" # of Patients Processed
|
||
|
; "TASK" Task Number
|
||
|
; "START" Date/Time Job Started
|
||
|
; "STOP" Date/Time Job Stopped
|
||
|
; "TERM" Job Terminated?
|
||
|
; "LASTPAT" Last Patient Processed
|
||
|
; "PROJECT" Projected Completion Date/Time
|
||
|
; "EXTRACT" # of Patients Extracted
|
||
|
; "FILES" Number of Host Files
|
||
|
; "ERROR" Error
|
||
|
;
|
||
|
K IVMARRY S IVMARRY=""
|
||
|
;
|
||
|
S IVMARRY("HOST")=""
|
||
|
S IVMARRY("DIR")=""
|
||
|
S IVMARRY("PROC")=""
|
||
|
S IVMARRY("TASK")=""
|
||
|
S IVMARRY("START")=""
|
||
|
S IVMARRY("STOP")=""
|
||
|
S IVMARRY("TERM")=""
|
||
|
S IVMARRY("LASTPAT")=""
|
||
|
S IVMARRY("PROJECT")=""
|
||
|
S IVMARRY("EXTRACT")=""
|
||
|
S IVMARRY("FILES")=""
|
||
|
S IVMARRY("ERROR")=""
|
||
|
;
|
||
|
INITQ Q 1
|
||
|
;
|
||
|
;
|
||
|
PATH(IVMARRY) ; --
|
||
|
; Description: Ask user for for valid host file directory.
|
||
|
;
|
||
|
; Input:
|
||
|
; IVMARRY - a local array where the extract input parameters will be
|
||
|
; stored, pass by reference
|
||
|
;
|
||
|
; Output:
|
||
|
; Function Value - returns 1 if successful, 0 otherwise
|
||
|
; IVMARRY("DIR") - directory
|
||
|
;
|
||
|
N DIR,DTOUT,DUOUT,DIROUT,DIRUT,SUCCESS,Y
|
||
|
;
|
||
|
S SUCCESS=0
|
||
|
;
|
||
|
W !!,?15,"* * * * * I M P O R T A N T * * * * *"
|
||
|
W !,?5,"The host files created by this job will be placed in the"
|
||
|
W !,?5,"current working directory. A directory other than the"
|
||
|
W !,?5,"current working directory may also be selected."
|
||
|
W !!,?5,"Please check the following to ensure the extract runs correctly."
|
||
|
W !!,?10,"1) The directory you have chosen the extract to run in"
|
||
|
W !,?13,"is a valid directory."
|
||
|
W !!,?10,"2) In order for TaskMan to have access to the directory, the"
|
||
|
W !,?13,"WORLD file protection must be 'RW' (Read and Write). For"
|
||
|
W !,?13,"NT/OpenM systems, ensure that the directory is not read only.",!
|
||
|
;
|
||
|
; ask directory
|
||
|
S DIR("A")="Select Directory"
|
||
|
S DIR("B")=$$PWD^%ZISH,DIR(0)="F^3:50"
|
||
|
D ^DIR
|
||
|
G:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))!($D(DIROUT)) PATHQ
|
||
|
;
|
||
|
S IVMARRY("DIR")=Y
|
||
|
S SUCCESS=1
|
||
|
;
|
||
|
PATHQ Q SUCCESS
|
||
|
;
|
||
|
;
|
||
|
GETCONST(IVMARRY) ; --
|
||
|
; Description: Places enrollment extract constants into the local IVMARRY array.
|
||
|
;
|
||
|
; Input: None
|
||
|
;
|
||
|
; Output:
|
||
|
; Function Value - returns 1 if success, 0 if failure.
|
||
|
; IVMARRY - this is the name of a local array, it should be passed by
|
||
|
; reference. If the function is successful this array will
|
||
|
; contain the extract constants.
|
||
|
;
|
||
|
; Subscript Description
|
||
|
; ========== =======================
|
||
|
; "BEGDT" as begin date/time for extract search
|
||
|
; "HOST" as name of host file
|
||
|
; "MAILGRP" as HEC mail group for notification msg
|
||
|
; "MSGMAX" as maximum # of HL7 msgs each host file may contain
|
||
|
; "PERCNT" as # of patients expected to be extracted
|
||
|
; "AVG100" as average time to extract 100 patients in seconds
|
||
|
; "SIZE" as average size of single patient record in bytes
|
||
|
;
|
||
|
;
|
||
|
K IVMARRY
|
||
|
S IVMARRY=""
|
||
|
;
|
||
|
S IVMARRY("BEGDT")=2951231.2359
|
||
|
S IVMARRY("HOST")="HECHOST"_$P($$SITE^VASITE,"^",3)
|
||
|
S IVMARRY("MAILGRP")="G.ENROLLMENT EXTRACT@IVM.VA.GOV"
|
||
|
S IVMARRY("MSGMAX")=10000
|
||
|
S IVMARRY("PERCNT")=31
|
||
|
S IVMARRY("AVG100")=42
|
||
|
S IVMARRY("SIZE")=1050
|
||
|
;
|
||
|
CONSTQ Q 1
|
||
|
;
|
||
|
;
|
||
|
INQUIRE(ROOT,IEN) ; --
|
||
|
; Description: Display data from file entry.
|
||
|
;
|
||
|
; Input:
|
||
|
; ROOT - global root of the file
|
||
|
; IEN - IEN of file entry
|
||
|
;
|
||
|
N DA,DIC
|
||
|
;
|
||
|
S DIC=ROOT,DA=IEN
|
||
|
D EN^DIQ
|
||
|
Q
|
||
|
;
|
||
|
;
|
||
|
LOCK(IEN) ; --
|
||
|
; Description: This lock is used to prevent another process from editing
|
||
|
; IVM Extract Management record.
|
||
|
;
|
||
|
; Input:
|
||
|
; IEN - Internal entry number of IVM EXTRACT MANAGEMENT file
|
||
|
;
|
||
|
; Output:
|
||
|
; Function Value - Returns 1 if the lock was successful, 0 otherwise
|
||
|
;
|
||
|
I $G(IEN) L +^IVM(IEN,301.63):10
|
||
|
Q $T
|
||
|
;
|
||
|
;
|
||
|
UNLOCK(IEN) ; --
|
||
|
; Description: Used to release a lock created by $$LOCK.
|
||
|
; Input:
|
||
|
; IEN - Internal entry number of IVM EXTRACT MANAGEMENT file
|
||
|
;
|
||
|
; Output: None
|
||
|
;
|
||
|
I $G(IEN) L -^IVM(IEN,301.63)
|
||
|
Q
|