1 | VAQDBIM ;ALB/JRP - MEANS TEST EXTRACTION;1-MAR-93
|
---|
2 | ;;1.5;PATIENT DATA EXCHANGE;**38**;NOV 17, 1993
|
---|
3 | ; **********
|
---|
4 | ; * PARTS OF THIS ROUTINE HAVE BEEN COPIED AND ALTERED FROM THE
|
---|
5 | ; * DGMTSC* ROUTINES. FOR MODULES THIS WAS DONE FOR, A REFERENCE
|
---|
6 | ; * TO THE DGMTSC* ROUTINE WILL BE INCLUDE.
|
---|
7 | ; **********
|
---|
8 | ;
|
---|
9 | EXTRACT(TRAN,DFN,ARRAY,OFFSET) ;EXTRACT MEANS TEST (DISPLAY READY)
|
---|
10 | ;INPUT : TRAN - Pointer to VAQ - TRANSACTION file
|
---|
11 | ; DFN - Pointer to patient in PATIENT file
|
---|
12 | ; ARRAY - Where to store information (full global reference)
|
---|
13 | ; OFFSET - Where to start adding lines (defaults to 0)
|
---|
14 | ;OUTPUT : n - Number of lines in display
|
---|
15 | ; -1^Error_text - Error
|
---|
16 | ;NOTE : If TRAN is passed
|
---|
17 | ; The patient pointer of the transaction will be used
|
---|
18 | ; Encryption will be based on the transaction
|
---|
19 | ; If DFN is passed
|
---|
20 | ; Encryption will be based on the site parameter
|
---|
21 | ; : Pointer to transaction takes precedence over DFN ... if
|
---|
22 | ; TRAN>0 the DFN will be based on the transaction
|
---|
23 | ;
|
---|
24 | ;This module is not based on any single DGMTSC* routine. Setting
|
---|
25 | ;up of information required to extract Means Test information was
|
---|
26 | ;drawn from several routines/utilitities.
|
---|
27 | ;
|
---|
28 | ;CHECK INPUT
|
---|
29 | S TRAN=+$G(TRAN)
|
---|
30 | S DFN=+$G(DFN)
|
---|
31 | Q:(('TRAN)&('DFN)) "-1^Did not pass pointer to transaction or patient"
|
---|
32 | I (TRAN) Q:('$D(^VAT(394.61,TRAN))) "-1^Did not pass valid pointer to VAQ - TRANSACTION file"
|
---|
33 | I (TRAN) S DFN=+$P($G(^VAT(394.61,TRAN,0)),"^",3) Q:('DFN) "-1^Transaction did not contain pointer to PATIENT file"
|
---|
34 | Q:('$D(^DPT(DFN))) "-1^Did not pass valid pointer to PATIENT file"
|
---|
35 | Q:($G(ARRAY)="") "-1^Did not pass output array"
|
---|
36 | S OFFSET=+$G(OFFSET)
|
---|
37 | ;DECLARE VARIABLES
|
---|
38 | N DGMTDT,DGMTSC,DGVPRI,DGVINI,DGVIRI,DGMTPAR,DGERR,DGFL,DGDEP
|
---|
39 | N DGMTYPT,DGMTI,LINES,TMP,VAQMT
|
---|
40 | ;SAVE STARTING OFFSET
|
---|
41 | S LINES=OFFSET
|
---|
42 | ;SET MEANS TEST TYPE
|
---|
43 | S DGMTYPT=1
|
---|
44 | ;GET DATE OF LAST MEANS TEST
|
---|
45 | S VAQMT=$$LST^DGMTU(DFN)
|
---|
46 | S DGMTI=$P(VAQMT,U,1),DGMTDT=$P(VAQMT,U,2)
|
---|
47 | Q:(DGMTDT="") $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,"Could not determine date of last Means Test")
|
---|
48 | ;SET UP MEANS TEST VARIABLES
|
---|
49 | D SETUP^DGMTSCU
|
---|
50 | Q:(DGERR) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,"Unable to set up Means Test variables")
|
---|
51 | ;PUT IN TITLE
|
---|
52 | S TMP=$$TITLE^VAQDBIM0(ARRAY,OFFSET)
|
---|
53 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2))
|
---|
54 | S OFFSET=OFFSET+TMP
|
---|
55 | ;EXTRACT SCREEN 1
|
---|
56 | S TMP=$$XTRCT1^VAQDBIM1(DFN,ARRAY,OFFSET)
|
---|
57 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2))
|
---|
58 | S OFFSET=OFFSET+TMP
|
---|
59 | F TMP=1:1:3 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1
|
---|
60 | ;EXTRACT SCREEN 2
|
---|
61 | S TMP=$$XTRCT2^VAQDBIM2(DFN,ARRAY,OFFSET)
|
---|
62 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2))
|
---|
63 | S OFFSET=OFFSET+TMP
|
---|
64 | F TMP=1:1:3 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1
|
---|
65 | ;EXTRACT SCREEN 3
|
---|
66 | S TMP=$$XTRCT3^VAQDBIM3(DFN,ARRAY,OFFSET)
|
---|
67 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2))
|
---|
68 | S OFFSET=OFFSET+TMP
|
---|
69 | F TMP=1:1:3 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1
|
---|
70 | ;EXTRACT SCREEN 4
|
---|
71 | S TMP=$$XTRCT4^VAQDBIM4(DFN,ARRAY,OFFSET)
|
---|
72 | Q:(TMP<0) $$ERROR^VAQDBIM0(TRAN,ARRAY,LINES,$P(TMP,"^",2))
|
---|
73 | S OFFSET=OFFSET+TMP
|
---|
74 | F TMP=1:1:2 S @ARRAY@("DISPLAY",OFFSET,0)="" S OFFSET=OFFSET+1
|
---|
75 | ;CHECK TO SEE IF ENCRYPTION IS ON - ENCRYPT ARRAY IF IT IS
|
---|
76 | S:(TRAN) TMP=$$TRANENC^VAQUTL3(TRAN,0)
|
---|
77 | S:('TRAN) TMP=$$NCRYPTON^VAQUTL2(0)
|
---|
78 | S:(TMP) TMP=$$ENCDSP^VAQHSH(TRAN,ARRAY,TMP,LINES,(OFFSET-LINES))
|
---|
79 | ;RETURN NUMBER OF LINES IN DISPLAY
|
---|
80 | Q (OFFSET-LINES)
|
---|