1 | TMGTIU01 ;TMG/kst-Misc TIU Related Fns;11/08/08
|
---|
2 | ;;1.0;TMG-LIB;**1**;11/08/08
|
---|
3 | ;
|
---|
4 | ;"Kevin Toppenberg MD
|
---|
5 | ;"GNU General Public License (GPL) applies
|
---|
6 | ;"11/08/08
|
---|
7 |
|
---|
8 | ;"---------------------------------------------------------------------------
|
---|
9 | ;"PUBLIC FUNCTIONS
|
---|
10 | ;"---------------------------------------------------------------------------
|
---|
11 | ;"ENSURVST(PATIENT,VISIT,CLINIC,DOCTOR) -- Ensure that patient has an entry in the VISIT file.
|
---|
12 | ;"GetPCEInfo(.array,DFN,DT,LocIEN) -- Get Patient Care Event info for patient on given date.
|
---|
13 |
|
---|
14 | ;"---------------------------------------------------------------------------
|
---|
15 | ;"PRIVATE FUNCTIONS
|
---|
16 | ;"---------------------------------------------------------------------------
|
---|
17 |
|
---|
18 |
|
---|
19 |
|
---|
20 | ;"---------------------------------------------------------------------------
|
---|
21 |
|
---|
22 | T1
|
---|
23 | new DFN,IEN,Y,X,DIC
|
---|
24 | set DIC=2,DIC(0)="MAEQ"
|
---|
25 | do ^DIC write !
|
---|
26 | if +Y'>0 goto TDone
|
---|
27 | set DFN=+Y
|
---|
28 |
|
---|
29 | new locIEN
|
---|
30 | set DIC=44 ;"hospital location
|
---|
31 | do ^DIC write !
|
---|
32 | if +Y'>0 goto TDone
|
---|
33 | set locIEN=+Y
|
---|
34 |
|
---|
35 | new %DT,selDT
|
---|
36 | set %DT="AE"
|
---|
37 | do ^%DT write !
|
---|
38 | if Y'>0 goto TDone
|
---|
39 | set setDT=Y
|
---|
40 |
|
---|
41 | new array
|
---|
42 | do GetPCEInfo(.array,DFN,setDT,locIEN)
|
---|
43 | if $data(array) zwr array
|
---|
44 |
|
---|
45 | TDone
|
---|
46 | quit
|
---|
47 |
|
---|
48 |
|
---|
49 | ENSURVST(PATIENT,VISIT,CLINIC,DOCTOR) ;
|
---|
50 | ;"Purpose: To ensure that patient has an entry in the VISIT file.
|
---|
51 | ;"Input: PATIENT: the name and DOB of the patient. format:
|
---|
52 | ;" 'LName,FName I^12/12/1912'
|
---|
53 | ;" VISIT: Date and time of visit. Format: 12/12/1912@23:15 (military time)
|
---|
54 | ;" CLINIC: the name of the clinic, to match entry in HOSPITAL LOCATION file
|
---|
55 | ;" DOCTOR: the name of the provider for the appt, to match entry in NEW PERSON file
|
---|
56 | ;"Results: 1=OK, or 0^Error Message
|
---|
57 |
|
---|
58 | new result set result=1
|
---|
59 | new IEN2,Entry
|
---|
60 | set Entry(.01)=$piece(PATIENT,"^",1) ;"Name
|
---|
61 | set Entry(.03)=$piece(PATIENT,"^",2) ;"DOB
|
---|
62 |
|
---|
63 | set IEN2=$$GetDFN2^TMGGDFN(Entry,AutoRegister)
|
---|
64 | if IEN2'>0 do goto EVDone
|
---|
65 | . set result="0^Patient Name/DOB not registered"
|
---|
66 |
|
---|
67 | new HLIEN,DIC,X,Y
|
---|
68 | set DIC=44 ;"HOSPITAL LOCATION file
|
---|
69 | set DIC(0)="M",X=CLINIC
|
---|
70 | do ^DIC
|
---|
71 | if Y'>0 do goto EVDone
|
---|
72 | . set result="0^Can't find clinic '"_CLINIC_"' in HOSPITAL LOCATION file"
|
---|
73 |
|
---|
74 | set DIC=200,X=DOCTOR
|
---|
75 | do ^DIC
|
---|
76 | if Y'>0 do goto EVDone
|
---|
77 | . set result="0^Can't find doctor '"_DOCTOR+"' in NEW PERSON file"
|
---|
78 |
|
---|
79 | new VDT,%DT kill Y
|
---|
80 | set %DT="T",X=VISIT
|
---|
81 | do ^%DT
|
---|
82 | if Y'>0 do goto EVDone
|
---|
83 | . set result="0^Invalid visit date: '"_VISIT_"'"
|
---|
84 |
|
---|
85 |
|
---|
86 |
|
---|
87 | EVDone
|
---|
88 | quit result
|
---|
89 |
|
---|
90 |
|
---|
91 | GetPCEInfo(array,DFN,DT,LocIEN)
|
---|
92 | ;"Purpose: to get Patient Care Event info for patient on given date.
|
---|
93 | ;"Input: array -- PASS BY REFERENCE, an OUT PARAMETER. Prior data killed.
|
---|
94 | ;" DFN -- the patient IEN
|
---|
95 | ;" DT -- the Date of the visit in FM format.
|
---|
96 | ;" LocIEN -- the IEN in the HOSPITAL LOCATION file for the clinic.
|
---|
97 | ;"Output: array is filled, format:
|
---|
98 | ;" array(VISITDT,#)=InfoLine
|
---|
99 | ;" array(VISITDT,#)=InfoLine
|
---|
100 | ;" ...,1)=HDR^AllowEdit^CPTRequired^VStr^Author^hasCPT
|
---|
101 | ;" ...,n)=TYP+^CODE^CAT^NARR^QUAL1^QUAL2 (QUAL1=Primary!Qty, QUAL2=Prv)
|
---|
102 | ;"Results: None
|
---|
103 |
|
---|
104 | kill array
|
---|
105 | new vIEN set vIEN=0
|
---|
106 | for set vIEN=$order(^AUPNVSIT("C",DFN,vIEN)) quit:(+vIEN'>0) do
|
---|
107 | . new vDT set vDT=$piece($get(^AUPNVSIT(vIEN,0)),"^",1)
|
---|
108 | . if vDT'>0 quit
|
---|
109 | . new %Y,X,X1,X2 set X1=setDT,X2=vDT
|
---|
110 | . do ^%DTC
|
---|
111 | . if (X'=0)!(%Y=0) quit
|
---|
112 | . new tempArray
|
---|
113 | . do PCE4NOTE^ORWPCE3(.tempArray,,DFN,LocIEN_";"_vDT)
|
---|
114 | . merge array(vDT)=tempArray
|
---|
115 | quit
|
---|
116 |
|
---|