1 | TMGRPCSR ;TMG/kst/RPC entry points for Search API ; 6/4/10
|
---|
2 | ;;1.0;TMG-LIB;**1**;05/25/10
|
---|
3 | ;
|
---|
4 | ;"RPC ENTRY POINTS FOR TMG FILEMAN SEARCH API
|
---|
5 | ;
|
---|
6 | ;"Copyright Kevin Toppenberg MD 5/25/10
|
---|
7 | ;"Released under GNU General Public License (GPL)
|
---|
8 | ;"
|
---|
9 | ;"NOTE: this function depends on new version of LIST^DIC, from G. Timpson Patch
|
---|
10 | ;"=======================================================================
|
---|
11 | ;" RPC -- Public Functions.
|
---|
12 | ;"=======================================================================
|
---|
13 | ;"CHANNEL(TMGRESULT,INPUT) -- general purpose channel RPC from a GUI config program
|
---|
14 | ;"LAUNCH(OUT,FILENUM,SRCHSTR) -- launch background search thread, return JOB #
|
---|
15 | ;"STATUS(OUT,JOBNUM) --Return status of background job.
|
---|
16 | ;"RESULTS(OUT,JOBNUM) -- Return results from background search job.
|
---|
17 | ;"
|
---|
18 | ;"=======================================================================
|
---|
19 | ;"PRIVATE API FUNCTIONS
|
---|
20 | ;"=======================================================================
|
---|
21 | ;"
|
---|
22 | ;"=======================================================================
|
---|
23 | ;"=======================================================================
|
---|
24 | ;"Dependencies:
|
---|
25 | ;" ^XLFSTR, ^TMGRPCS0, TMGSRCH1, TMGRPC1B
|
---|
26 | ;"=======================================================================
|
---|
27 | ;"=======================================================================
|
---|
28 | ;
|
---|
29 | CHANNEL(TMGRESULT,INPUT) ;
|
---|
30 | ;"Purpose: This will be a general purpose channel RPC from CPRS
|
---|
31 | ;"Input: TMGRESULT -- this is an OUT parameter, and it is always passed by reference
|
---|
32 | ;" INPUT -- this will be array of data sent from the GUI client. Defined below:
|
---|
33 | ;" <Stuff will go here>
|
---|
34 | ;" INPUT("REQUEST")="cmd^params" Valid values for "cmd" are:
|
---|
35 | ;" "LAUNCH" -- Start background task for search
|
---|
36 | ;" params: FileNumber^SearchString <-- See docs for Search String in TMGSRCH.m
|
---|
37 | ;" "STATUS" -- Get status of background task
|
---|
38 | ;" params: JobNumber
|
---|
39 | ;" "IEN LIST" ; was RESULTS
|
---|
40 | ;" params: JobNumber^Fields
|
---|
41 | ;" NOTE: If Fields left blank, then NO FIELDS is assumed
|
---|
42 | ;" "IEN DETAILS" -- Get details of 1 IEN entry
|
---|
43 | ;" params: JobNumber^IEN
|
---|
44 | ;" "PREP SUBSET"
|
---|
45 | ;" params: JobNumber^[Field[;FLD[;FLD...]]]
|
---|
46 | ;" Field -- The desired field number(s).
|
---|
47 | ;" OPTIONAL. DEFAULT is .01
|
---|
48 | ;" If more than one supplied, then output is
|
---|
49 | ;" concatinated. Separate fieldnumbers with ';'
|
---|
50 | ;" "CLEAR" -- clear results from last search.
|
---|
51 | ;" params: JobNumber
|
---|
52 | ;" "ALLOWED FILES ENTRY SUBSET" -- get sublist of list .01 fields for allowed files (those pointing into FileNum)
|
---|
53 | ;" params: FileNum^ListStartValue^direction^MaxCount(optional, def=44)^Simple
|
---|
54 | ;" "FIELD LIST SUBSET" -- get sublist of fields names in file
|
---|
55 | ;" params: FileNum^ListStartValue^direction^MaxCount(optional, def=44)^Simple
|
---|
56 | ;" "RESULTS LIST SUBSET" -- get sublist of search results
|
---|
57 | ;" params: JobNum^ListStartValue^direction^MaxCount(optional, def=44)
|
---|
58 | ;" =================================================================================
|
---|
59 | ;" == Calls for searching TIU DOCUMENTS ==
|
---|
60 | ;" =================================================================================
|
---|
61 | ;" "PT DOCS SEARCH" -- launch a background search in documents for 1 patient
|
---|
62 | ;" params: PatientEIN^SearchString
|
---|
63 | ;" "PT DOCS STATUS" -- Get status of background search
|
---|
64 | ;" params : none
|
---|
65 | ;" "PT DOCS GET RESULTS" -- get result from background search
|
---|
66 | ;" params : none
|
---|
67 | ;" "PT DOCS CLEAR" -- Tell background task to stop, and clear data array
|
---|
68 | ;" params : none
|
---|
69 | ;" "PT DOCS STOP" -- Tell background task to stop searching
|
---|
70 | ;" params : none
|
---|
71 | ;" "PT DOCS CHANGE SEARCH" -- tell background task to change search parameters
|
---|
72 | ;" Note: this can be used to allow the search to begin while the
|
---|
73 | ;" user is still entering the search terms. If the new search is just an
|
---|
74 | ;" extension to the prior search, then the prior search will be added on
|
---|
75 | ;" rather than starting over.
|
---|
76 | ;" params: PatientEIN^SearchString
|
---|
77 | ;" "PT DOCS PREP FOR SUBSET" -- Prep for Subset of List for TORCombobox
|
---|
78 | ;" params : none
|
---|
79 | ;" "PT DOCS SUBSET OF RESULTS" -- Get a subset of list for TORCombobox
|
---|
80 | ;" params : StartFrom^Direction^MaxCount
|
---|
81 | ;" Direction and Maxcount are optional, def=1, 44 respectively
|
---|
82 | ;" =================================================================================
|
---|
83 | ;"Output: results of this function should be put into TMGRESULTS array.
|
---|
84 | ;" For cmd:
|
---|
85 | ;" "LAUNCH"
|
---|
86 | ;" TMGRESULT(0)=1^JobNumber
|
---|
87 | ;" "STATUS"
|
---|
88 | ;" TMGRESULT(0)=1^%Done^Message. <-- Will be '1^100^#DONE#' when task is done.
|
---|
89 | ;" "IEN LIST"
|
---|
90 | ;" TMGRESULT(0)=1 if Success or -1^Message"
|
---|
91 | ;" TMGRESULT(1)=IEN^[Fld Value] <-- Field value returned, if requested
|
---|
92 | ;" TMGRESULT(2)=IEN^[Fld Value]
|
---|
93 | ;" etc ...
|
---|
94 | ;" "PREP SUBSET"
|
---|
95 | ;" TMGRESULT(0)=1^Success or -1^Message
|
---|
96 | ;" "CLEAR"
|
---|
97 | ;" TMGRESULT(0)=1^Success
|
---|
98 | ;" "ALLOWED FILES ENTRY SUBSET"
|
---|
99 | ;" TMGRESULT(0)="1^Success" or "-1^Message"
|
---|
100 | ;" TMGRESULT(1)=FileNum^FileName
|
---|
101 | ;" TMGRESULT(2)=FileNum^FileName
|
---|
102 | ;" etc ...
|
---|
103 | ;" "FIELD LIST SUBSET"
|
---|
104 | ;" TMGRESULT(0)="1^Success" or "-1^Message"
|
---|
105 | ;" TMGRESULT(1)=FLDNum^Name^Info
|
---|
106 | ;" TMGRESULT(2)=FLDNum^Name^Info
|
---|
107 | ;" etc ...
|
---|
108 | ;" "RESULTS LIST SUBSET"
|
---|
109 | ;" TMGRESULT(0)="1^Success" or "-1^Message"
|
---|
110 | ;" TMGRESULT(1)=IENNum^RequestedFieldNames
|
---|
111 | ;" TMGRESULT(2)=IENNum^RequestedFieldNames
|
---|
112 | ;" etc ...
|
---|
113 | ;" =================================================================================
|
---|
114 | ;" == Calls for searching TIU DOCUMENTS ==
|
---|
115 | ;" =================================================================================
|
---|
116 | ;" "PT DOCS SEARCH"
|
---|
117 | ;" TMGRESULT(0)="1^Success", OR -1^ErrorMsg
|
---|
118 | ;" "PT DOCS STATUS"
|
---|
119 | ;" TMGRESULT(0)="1^Status" or -1^ErrorMessage
|
---|
120 | ;" NOTe: will return 1^DONE when done with search.
|
---|
121 | ;" "PT DOCS GET RESULTS"
|
---|
122 | ;" TMGRESULT(0)=FoundCount^Success, or -1^Message
|
---|
123 | ;" TMGRESULT(1)=IEN1
|
---|
124 | ;" TMGRESULT(2)=IEN2 ... etc.
|
---|
125 | ;" "PT DOCS CLEAR"
|
---|
126 | ;" TMGRESULT(0)="1^Success
|
---|
127 | ;" "PT DOCS STOP"
|
---|
128 | ;" TMGRESULT(0)="1^Success
|
---|
129 | ;" "PT DOCS PREP FOR SUBSET"
|
---|
130 | ;" TMGRESULT(0)="1^Success", OR -1^ErrorMsg
|
---|
131 | ;" "PT DOCS SUBSET OF RESULTS"
|
---|
132 | ;" TMGRESULT(0)="1^Success" or "-1^Message"
|
---|
133 | ;" TMGRESULT(1)=IEN^ANoteIdentifier
|
---|
134 | ;" TMGRESULT(2)=IEN^ANoteIdentifier
|
---|
135 | ;" =================================================================================
|
---|
136 | ;"Result: none
|
---|
137 | ;
|
---|
138 | NEW TMGCOMMAND,TMGCOMMAND
|
---|
139 | SET TMGCOMMAND=$$TRIM^XLFSTR($$UP^XLFSTR($PIECE($GET(INPUT("REQUEST")),"^",1)))
|
---|
140 | SET TMGPARAMS=$$UP^XLFSTR($PIECE($GET(INPUT("REQUEST")),"^",2,199))
|
---|
141 | ;
|
---|
142 | ;"MERGE ^TMG("TMP","RPC","TMGRPCSR",$H,"TMGCOMMAND")=TMGCOMMAND
|
---|
143 | ;"MERGE ^TMG("TMP","RPC","TMGRPCSR",$H,"TMGPARAMS")=TMGPARAMS
|
---|
144 | ;
|
---|
145 | SET TMGRESULT(0)="-1^No command requested." ;"default to error state.
|
---|
146 | IF TMGCOMMAND="LAUNCH" DO
|
---|
147 | . DO LAUNCH^TMGRPCS0(.TMGRESULT,TMGPARAMS)
|
---|
148 | IF TMGCOMMAND="STATUS" DO
|
---|
149 | . DO STATUS^TMGRPCS0(.TMGRESULT,TMGPARAMS)
|
---|
150 | ELSE IF TMGCOMMAND="RESULTS" DO
|
---|
151 | . DO IENLIST^TMGRPCS0(.TMGRESULT,TMGPARAMS)
|
---|
152 | ELSE IF TMGCOMMAND="PREP SUBSET" DO
|
---|
153 | . DO PREPSB^TMGRPCS0(.TMGRESULT,TMGPARAMS)
|
---|
154 | ELSE IF TMGCOMMAND="CLEAR" DO
|
---|
155 | . DO CLEAR^TMGRPCS0(.TMGRESULT,TMGPARAMS)
|
---|
156 | ELSE IF TMGCOMMAND="ALLOWED FILES ENTRY SUBSET" DO
|
---|
157 | . DO GETAFSUB^TMGSRCH1(.TMGRESULT,TMGPARAMS)
|
---|
158 | ELSE IF TMGCOMMAND="FIELD LIST SUBSET" DO
|
---|
159 | . DO GETFLDSB^TMGSRCH1(.TMGRESULT,TMGPARAMS)
|
---|
160 | ELSE IF TMGCOMMAND="RESULTS LIST SUBSET" DO
|
---|
161 | . DO GETRSLTSB^TMGRPCS0(.TMGRESULT,TMGPARAMS)
|
---|
162 | ELSE IF TMGCOMMAND="PT DOCS SEARCH" DO
|
---|
163 | . DO PDSRCH^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
164 | ELSE IF TMGCOMMAND="PT DOCS STATUS" DO
|
---|
165 | . DO PDSTATUS^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
166 | ELSE IF TMGCOMMAND="PT DOCS GET RESULTS" DO
|
---|
167 | . DO PDRESULT^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
168 | ELSE IF TMGCOMMAND="PT DOCS CLEAR" DO
|
---|
169 | . DO PDCLEAR^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
170 | ELSE IF TMGCOMMAND="PT DOCS STOP" DO
|
---|
171 | . DO PDSTOP^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
172 | ELSE IF TMGCOMMAND="PT DOCS CLEAR" DO
|
---|
173 | . DO PDCLEAR^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
174 | ELSE IF TMGCOMMAND="PT DOCS PREP FOR SUBSET" DO
|
---|
175 | . DO PDPREPSS^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
176 | ELSE IF TMGCOMMAND="PT DOCS SUBSET OF RESULTS" DO
|
---|
177 | . DO PDGETSS^TMGRPCS1(.TMGRESULT,TMGPARAMS)
|
---|
178 | ;
|
---|
179 | QUIT
|
---|
180 | ;
|
---|
181 | INSTALL ;
|
---|
182 | ;"Purpose: to add the RPC's to the OPTION record OR CPRS GUI CHART
|
---|
183 | DO INSTALL1^TMGRPC1B("TMG SEARCH CHANNEL")
|
---|
184 | QUIT
|
---|
185 | ;
|
---|
186 |
|
---|