1 | DVBCHS0 ;ALB/JRP - C & P EXTRACT FOR HEALTH SUMMARY;11-JAN-95
|
---|
2 | ;;2.7;AMIE;;Apr 10, 1995
|
---|
3 | HSCP(PATPTR,INVBEGDT,INVENDDT,OUTCODE,ARRAY) ;MAIN ENTRY POINT
|
---|
4 | ;INPUT : PATPTR - Pointer to PATIENT file (#2)
|
---|
5 | ; INVBEGDT - Beginning date in inverse FileMan format
|
---|
6 | ; - Defaults to one year before today
|
---|
7 | ; INVENDDT - Ending date in inverse FileMan format
|
---|
8 | ; - Defaults to today
|
---|
9 | ; OUTCODE - Flag indicating which optional nodes to return
|
---|
10 | ; 0 = Do not return any optional nodes
|
---|
11 | ; 1 = Node 1 should also be returned
|
---|
12 | ; 2 = Node 2 should also be returned
|
---|
13 | ; 3 = Nodes 1 & 2 should also be returned (default)
|
---|
14 | ; ARRAY - Where to store output (full global reference)
|
---|
15 | ; - Defaults to ^TMP("DVBC",$J)
|
---|
16 | ;
|
---|
17 | ;OUTPUT : None
|
---|
18 | ; ARRAY(InvExDt,Type,0) = Code ^ DATE OF EXAM [.06]
|
---|
19 | ; ^ EXAM TYPE [.03] ^ EXAMINING PHYSICIAN [.07]
|
---|
20 | ; ^ PRIORITY OF EXAM [396.3;9]
|
---|
21 | ; --> ARRAY(InvExDt,Type,1) = ROUTING LOCATION [396.3;24]
|
---|
22 | ; ^ OWNER DOMAIN [396.3;28] ^ TRANSFERRED OUT TO [62]
|
---|
23 | ; --> ARRAY(InvExDt,Type,2) = REQUEST STATUS [396.3;17]
|
---|
24 | ; ^ APPROVED BY [396.3;25] ^ APPROVAL DATE/TIME [396.3;26]
|
---|
25 | ; ARRAY(InvExDt,Type,"RES",0) = Number of lines in EXAM RESULTS
|
---|
26 | ; ARRAY(InvExDt,Type,"RES",X) = Line X of EXAM RESULTS [70]
|
---|
27 | ;
|
---|
28 | ; Subscripts:
|
---|
29 | ; InvExDt - Inverse FileMan date of DATE OF EXAM [.06]
|
---|
30 | ; Type - Poiner value of EXAM TYPE [.03]
|
---|
31 | ;
|
---|
32 | ; Code used as follows:
|
---|
33 | ; 1 = Exam was performed locally
|
---|
34 | ; 2 = Exam was performed by another facility
|
---|
35 | ; 3 = Exam was performed locally for another facility
|
---|
36 | ;
|
---|
37 | ; All dates will be in the FileMan format
|
---|
38 | ;
|
---|
39 | ; With the exception of dates, 'N/A' (not applicable) and 'UNKNOWN'
|
---|
40 | ; will be used for field values when appropriate
|
---|
41 | ;
|
---|
42 | ; Optional nodes are marked by an arrow (-->)
|
---|
43 | ;
|
---|
44 | ;NOTES : Output array will be initialized (KILLed)
|
---|
45 | ; : Information for an exam is only returned when
|
---|
46 | ; 1. The exam status is COMPLETED
|
---|
47 | ; 2. The status of the request containing the exam is
|
---|
48 | ; a) RELEASED TO RO, NOT PRINTED
|
---|
49 | ; b) COMPLETED, PRINTED BY RO
|
---|
50 | ; c) COMPLETED, TRANSFERRED OUT
|
---|
51 | ;
|
---|
52 | ;
|
---|
53 | ;CHECK INPUT/SET DEFAULTS
|
---|
54 | Q:('$D(^DPT((+$G(PATPTR)),0)))
|
---|
55 | S INVBEGDT=+$G(INVBEGDT)
|
---|
56 | S:('INVBEGDT) INVBEGDT=9999999-(DT-10000)
|
---|
57 | S INVENDDT=+$G(INVENDDT)
|
---|
58 | S:('INVENDDT) INVENDDT=9999999-DT
|
---|
59 | S OUTCODE=$G(OUTCODE)
|
---|
60 | S:((OUTCODE="")!(OUTCODE>3)!(OUTCODE<0)) OUTCODE=3
|
---|
61 | S:($G(ARRAY)="") ARRAY="^TMP(""DVBC"",$J)"
|
---|
62 | ;KILL OUTPUT ARRAY
|
---|
63 | K @ARRAY
|
---|
64 | ;DECLARE VARIABLES
|
---|
65 | N BEGDATE,ENDDATE,TYPEPTR,EXAMPTR,TMP,NODE0
|
---|
66 | ;CONVERT INVERSE DATES TO NORMAL DATES
|
---|
67 | S BEGDATE=9999999-INVBEGDT
|
---|
68 | S ENDDATE=9999999-INVENDDT
|
---|
69 | ;NO EXAMS ON FILE
|
---|
70 | Q:('$D(^DVB(396.4,"APS",PATPTR)))
|
---|
71 | ;LOOK FOR COMPLETED EXAMS
|
---|
72 | S TYPEPTR=0
|
---|
73 | F S TYPEPTR=+$O(^DVB(396.4,"APS",PATPTR,TYPEPTR)) Q:('TYPEPTR) D
|
---|
74 | .S EXAMPTR=0
|
---|
75 | .F S EXAMPTR=+$O(^DVB(396.4,"APS",PATPTR,TYPEPTR,"C",EXAMPTR)) Q:('EXAMPTR) D
|
---|
76 | ..;GET ZERO NODE OF EXAM
|
---|
77 | ..S NODE0=$G(^DVB(396.4,EXAMPTR,0))
|
---|
78 | ..;MAKE SURE EXAM IS WITHIN DATE RANGE
|
---|
79 | ..S TMP=+$P(NODE0,"^",6)
|
---|
80 | ..Q:(('TMP)!(TMP<BEGDATE)!(TMP>ENDDATE))
|
---|
81 | ..;MAKE SURE REQUEST CONTAINING EXAM HAS BEEN RELEASED
|
---|
82 | ..S TMP=+$P(NODE0,"^",2)
|
---|
83 | ..Q:('TMP)
|
---|
84 | ..S TMP=$P($G(^DVB(396.3,TMP,0)),"^",18)
|
---|
85 | ..Q:((TMP'="C")&(TMP'="R")&(TMP'="CT"))
|
---|
86 | ..;SET NODE ZERO OF OUTPUT
|
---|
87 | ..D OUT0^DVBCHS1(EXAMPTR,ARRAY)
|
---|
88 | ..;SET NODE 'RES' OF OUTPUT
|
---|
89 | ..D OUTRES^DVBCHS1(EXAMPTR,ARRAY)
|
---|
90 | ..Q:('OUTCODE)
|
---|
91 | ..;SET NODE ONE OF OUTPUT (OPTIONAL)
|
---|
92 | ..D:((OUTCODE=1)!(OUTCODE=3)) OUT1^DVBCHS2(EXAMPTR,ARRAY)
|
---|
93 | ..;SET NODE TWO OF OUTPUT (OPTIONAL)
|
---|
94 | ..D:((OUTCODE=2)!(OUTCODE=3)) OUT2^DVBCHS2(EXAMPTR,ARRAY)
|
---|
95 | Q
|
---|