source: cprs/branches/tmg-cprs/m_files/TMGTIU01.m@ 877

Last change on this file since 877 was 796, checked in by Kevin Toppenberg, 14 years ago

Initial upload

File size: 3.8 KB
Line 
1TMGTIU01 ;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
22T1
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
45TDone
46 quit
47
48
49ENSURVST(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
87EVDone
88 quit result
89
90
91GetPCEInfo(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
Note: See TracBrowser for help on using the repository browser.