BMXADOX1 ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ;
Source file <BMXADOX1.m>
Package | Total | Call Graph |
---|---|---|
M Transfer | 3 | SS^BMXADO BAFM^BMXADOF1 DISP^BMXADOX |
Name | Comments | DBIA/ICR reference |
---|---|---|
AA | ; ITERATE USING AA INDEX
; INDEX IS 'AA" THE START AND STOP DATES ARE SPECIFIED IN EXTERNAL FORMAT. MAX=10 ; THE FOLLOWING FILTERS ARE SPECIFIED IN THE LAST PARAMETER ("1|WT|C"): ; 1=PATIENT DFN #1 ; WT=RETURN ONLY WEIGHTS. MEASUREMENT TYPE MUST BE SPECIFIED WITH A VALID, UNAMBIGUOUS LOOKUP VALUE. ; C=RETRUN VALUES IN CHRONOLOGICAL ORDER USE 'R' INSTEAD OF 'C' FOR REVERSE CHRONOLOGICAL ORDER. DEFAULT=C ; THE SEED PARAMTER IS SET AND CAN BE USED TO RETURN DATA IN CHUNKS |
|
SUB | ; SUBFILE ITERATION
; THE SCHEMA IS ATTACHED TO THE MEDICARE ELIGIBILITY FILE/ELIG DATE SUBFILE ; THE DA STRING HAS A VALUE OF '1,',: THE IEN IN THE PARENT FILE. ; NOTE THE COMMA IN THE DA STRING. THIS INDICATES THAT THE FILE IEN IS 1 BUT THE SUBFILE IEN IS UNSPECIFIED |
|
JVPT | ; JOIN PT DEMOG TO VISIT
|
|
NOTES | ; RETURN NOTES FOR A SPECIFIC PATIENT PROBLEMS
|
|
CIT | ; CUSTOM ITERATOR
; IF COMPLEX OR UNUSUAL SORTING/FILTERING IS REQUITED, USE A CUSTOM ITERATOR ; THE CUSTOM ITERATOR IS DEFINED BY 6TH, 7TH AND 8TH PIECES IN THE VSTG ; PIECE 8=TAG, PIECE 9=ROUTINE, PIECE 8=A PARAMETER PASSED TO THE ENTRY POINT ; THE 9TH PIECE CONTAINS PT DFN, TIMESTAMP, VISIT TYPE, LOC IEN, AND SERVICE CATEGORY IN A "|" DELIMTED STRING ; THE ITERATOR CALL TAG^ROUTINE(PARAM) TO GENERATE IENS ; IN THIS CASE THE SCHEMA IS ATTACHED TO THE VISIT FILE. ; GIVEN THE INFORMATION IN THE PARAMETER, THE CUSTOM ITERATOR RETURNS POSSIBLE DUPLICATE VISITS |
|
DELVAL | ; DELETE A VALUE IN A FIELD
; SIMILAR TO EDIT EXCEPT THE VALUE IS "@" |
|
PB1 | ; ALT PROB RETRIEVAL TEST
|
|
POV | ; RETURN THE POV SCHEMA
|
|
RIT | ||
JAC | ; TEST AC INDEX
|
|
NUM | ; ITERATE BY IEN
; IX="",START WITH IEN=1, STOP AFTER IEN=20, MAX # RECORDS RETURNED = 5 ; TO VIEW INTERNAL VALUES SET VSTG="~1~20~5~I" |
|
DINUM | ; DINUMED POINTER ITERATION
; THE SCHEMA IS ATTACHED TO THE IHS PATIENT FILE (9000001) ; THE IHS PATIENT FILE IS DINUM'D AND ITS .01 FIELD POINTS TO THE VA PATIENT FILE (2) ; BECAUSE OF THE SPECIAL RELATIONSHIP BETWEEN THE FILES, WE CAN USE THE B INDEX OF FILE 2 TO ITERATE FILE 9000001. |
|
JMD | ; JOIN MASTER TO DETAIL
|
|
DISP(OUT) | ;
|
|
IX | ; ITERATE BY INDEX
; ITERATE USING THE "B" INDEX ; START WITH PT NAME "C", STOP AFTER PATIENT NAME = "D", MAX # RECORDS RETURNED = 5 |
|
DELREC | ; DELETE AN ENTRY
; THE SIMPLEST WAY TO DELETE AN ENTRY IS TO PUT THE RECORD IEN IN THE DA STRING PRECEDED BY A MINUS SIGN ; YOU CAN ALSO SET THE VALUE OF THE .01 FIELD TO "@" ; IF THE VALUE OF THE .01 FIELD IS NULL AND THE DA STRING IS NOT PRECEDED BY A MINUS SIGN, THE TRANSACTION WILL BE CANCELLED ; IF THE DA STRING IS NULL, THE TRANSACTION WILL BE CANCELLED |
|
VCN | ; SHOW VALUES FOR A SINGLE VISIT THAT AS A DEFINED VCN
|
|
JSUB | ; SUBFILE JOIN
; IN THIS CASE THE RECORDS IN A PARENT FILE ARE "JOINED" TO THE RECORDS IN ONE OF ITS SUB FILES ; THE SCHEMA IS ATTACHED TO THE "MEDICARE ELIGIBLE" FILE ; IT IS JOINED TO ITS SUBFILE, "ELIG DATES", VIA THE UPDATE MEDICARE DATES SCHEMA |
|
ADD | ; ADD A NEW ENTRY
; THIS IS A 2 STEP PROCESS: ; FIRST GET THE SCHEMA FOR THE FILE YOU WISH TO UPDATE ; THIS SCHEMA TYPICALLY BEGINS WITH THE WORD "UPDATE" ; IT CONTAINS NO ID IR IEN FIELDS ; SECOND ADD THE DATA NODE TO THE ARRAY ; IT HAS THE SAME FORMAT AS A DATA STRING ASSOCIATED WITH THE SCHEMA EXCEPT THE FIRST "^" PIECE IS NULL ; THIS PIECE CORRESPONDS TO THE IEN OF THE RECORD. SINCE THE RECORD HASNOT BEEN ADDED YET, IT IS NULL. ; IN THE DATA STRING, ALL POINTER VALUES ARE PRECEDED BY THE '`' CHARACTER AND EA. STRING ENDS IN $C(30) ; MULTIPLE DATA STRINGS CAN BE APPENDED AS NEW NODES AT THE BOTTOM OF THE ARRAY ; IN THIS CASE WE ARE ADDING A RECORD TO THE V MEASUREMENT FILE ; DATA STRING="^MEASUREMENT TYPE IEN^PATIENT DFN^VISIT IEN^RESULT"_$C(30) ; THERE ARE 2 INPUT PARAMS: ; THE CLOSED REF WHERE THE INPUT ARRAY IS STORED ; SINCE IT IS PASSED BY REFERENCE "OUT" CAN BE NULL OR UNDEFIEND. ; OUT WILL BE DEFINED AT THE CONCLUSION OF THE TRANSACTION. ; THE OUTPUT IS IN THE OUT ARRAY ; OUT(1)="OK|ien" WHERE ien IS THE IEN OF THE RECORD THAT HAS BEE ADDED. ; IF THE TRANSACTION FAILED, AN ERROR MSG WILL BE IN THE OUT ARRAY |
|
TRIGGER | ; TEXT TRIGGER FUNCTION
|
|
RENT | ; ITERATE IN CHUNKS
; RE-ITERATE USING THE "B" INDEX ; START WITH PT IEN 5 AS THE "SEED", STOP AFTER PATIENT NAME = "D", MAX # RECORDS RETURNED = 5 |
|
IXP | ; INDEXED POINTER ITERATION
; THE SCHEMA IS ATTACHED TO THE V POV FILE ; THE AC CROSS REFERENCE INDEXES THE PATIENT FIELD ; BY STARTING AND STOPING WITH PATIENT 1 (MAX=5) WE COLLECT THE FIRST 5 POVS FOR PATIENT 1 IN THE FILE |
|
ID | ; IDENTIFIER FIELD
; THE SCHEMA IS ATTACHED TO THE VA PATIENT FILE (2) ; THE SCHEMA HAS A BUILT IN FIELD (.01ID) THAT RETURNS THE IDENTIFIERS ; THE ENTRY POINT THAT GENERATES THE IDETIFIERS IS STORED IN THE BMX ADO SCHEMA FILE |
|
SCHEMA(NAME) | ; GIVEN SCHEMA NAME, RETURN THE IEN
|
|
EDIT | ; EDIT AN EXISTING ENTRY
; SIMILAR TO ABOVE EXCEPT THAT THE FIRST "^" PIECE OF THE DATA NODE IS THE IEN OF THE RECORD TO BE EDITIED ; NOTE THAT THERE IS NO '`' IN FRONT OF THE FIRST PIECE. IT IS A PURE INTEGER |
|
JPB | ; TEST AA INDEX JOINS FOR PROBLEM LIST
|
|
MT | ; MEASUREMNT TYPES
|
|
AA2 | ; ITERATE USING AA INDEX
; THIS SCHEMA IS ATTACHED TO THE VISIT FILE (9000010) ; IN THIS CASE THERE IS NO ATTRIBUTE TYPE SO THE FILTER PARAM HAS ONLY 2 PIECES "1|R" ; 1=PATIENT DFN ; R=RETURN DATA IN REVERSE CHRONOLOGICAL ORDER |
|
PROB | ; PATIENT PROBLEMS
|
Name | Field # of Occurrence |
---|---|
SS^BMXADO | NUM+5, IX+5, VCN+3, MT+3, PROB+3, PB1+3, POV+3, NOTES+3, RIT+2, SUB+6 , DINUM+6, IXP+6, AA+9, AA2+7, CIT+10, TRIGGER+3, ID+6, JMD+8, JVPT+6, JAC+5 , JPB+4, JSUB+7, ADD+22, DELREC+8, EDIT+5, DELVAL+4 |
BAFM^BMXADOF1 | ADD+26, DELREC+12, EDIT+9, DELVAL+8 |
DISP^BMXADOX | DISP+1 |
Name | Line Occurrences |
---|---|
Function Call: READ |
|
Function Call: READ |
|
Function Call: WRITE |
|
Function Call: READ |
|
Function Call: WRITE |
|
Function Call: READ |
|
Function Call: WRITE |
|
Function Call: READ |
|
Function Call: WRITE |
|
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^BMXADO("B" | SCHEMA+2 |
^TMP("BMX ADO" | NUM+7!, IX+7!, VCN+5!, MT+5!, PROB+5!, PB1+5!, POV+5!, NOTES+5!, RIT+9!, SUB+8! , DINUM+8!, IXP+8!, AA+11!, AA2+9!, CIT+12!, TRIGGER+5!, ID+8!, JMD+10!, JVPT+8!, JAC+7! , JPB+6!, JSUB+9!, ADD+23, ADD+24*, ADD+26, ADD+27!, DELREC+9, DELREC+10*, DELREC+12, DELREC+13! , EDIT+6, EDIT+7*, EDIT+9, EDIT+10!, DELVAL+5, DELVAL+6*, DELVAL+8, DELVAL+9! |
Name | Line Occurrences |
---|---|
$$SCHEMA | NUM+4, IX+4, VCN+2, MT+2, PROB+2, PB1+2, POV+2, NOTES+2, RENT+5, SUB+5 , DINUM+5, IXP+5, AA+8, AA2+6, CIT+9, TRIGGER+2, ID+5, JMD+2, JMD+3, JMD+4 , JVPT+2, JVPT+3, JAC+2, JAC+3, JAC+4, JPB+2, JPB+3, JSUB+5, JSUB+6, ADD+21 , DELREC+7, EDIT+4, DELVAL+3 |
DISP | NUM+6, IX+6, VCN+4, MT+4, PROB+4, PB1+4, POV+4, NOTES+4, RIT+3, SUB+7 , DINUM+7, IXP+7, AA+10, AA2+8, CIT+11, TRIGGER+4, ID+7, JMD+9, JVPT+7, JAC+6 , JPB+5, JSUB+8, ADD+25, DELREC+11, EDIT+8, DELVAL+7 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
% | NUM+3~, NUM+6*, IX+3~, IX+6*, VCN+1~, VCN+4*, MT+1~, MT+4*, PROB+1~, PROB+4* , PB1+1~, PB1+4*, POV+1~, POV+4*, NOTES+1~, NOTES+4*, RENT+3~, RIT+3*, RIT+4, SUB+4~ , SUB+7*, DINUM+4~, DINUM+7*, IXP+4~, IXP+7*, AA+7~, AA+10*, AA2+5~, AA2+8*, CIT+8~ , CIT+11*, TRIGGER+1~, TRIGGER+4*, ID+4~, ID+7*, JMD+1~, JMD+9*, JVPT+1~, JVPT+7*, JAC+1~ , JAC+6*, JPB+1~, JPB+5*, JSUB+4~, JSUB+8*, ADD+20~, ADD+25*, ADD+28*, DELREC+5~, DELREC+11* , DELREC+14*, EDIT+3~, EDIT+8*, EDIT+11*, DELVAL+2~, DELVAL+7*, DELVAL+10* |
DEL | DELREC+5~, DELREC+6*, DELREC+10 |
DTIME | NUM+6, IX+6, VCN+4, MT+4, PROB+4, PB1+4, POV+4, NOTES+4, RIT+3, SUB+7 , DINUM+7, IXP+7, AA+10, AA2+8, CIT+11, TRIGGER+4, ID+7, JMD+9, JVPT+7, JAC+6 , JPB+5, JSUB+8, ADD+25, DELREC+11, EDIT+8, DELVAL+7 |
IEN | SCHEMA+1~, SCHEMA+2*, SCHEMA+3 |
JSTG | JMD+1~, JMD+6*, JMD+7*, JMD+8, JVPT+1~, JVPT+5*, JVPT+6 |
LSEED | RENT+3~, RENT+4*, RIT+7, RIT+8* |
NAME | SCHEMA~, SCHEMA+2 |
NODE | ADD+20~, ADD+23*, ADD+24, DELREC+5~, DELREC+9*, DELREC+10, EDIT+3~, EDIT+6*, EDIT+7, DELVAL+2~ , DELVAL+5*, DELVAL+6 |
OUT | DISP~, DISP+1, NUM+3~, NUM+5, NUM+6, IX+3~, IX+5, IX+6, VCN+1~, VCN+3 , VCN+4, MT+1~, MT+3, MT+4, PROB+1~, PROB+3, PROB+4, PB1+1~, PB1+3, PB1+4 , POV+1~, POV+3, POV+4, NOTES+1~, NOTES+3, NOTES+4, RENT+3~, RIT+2, RIT+3, RIT+5 , SUB+4~, SUB+6, SUB+7, DINUM+4~, DINUM+6, DINUM+7, IXP+4~, IXP+6, IXP+7, AA+7~ , AA+9, AA+10, AA2+5~, AA2+7, AA2+8, CIT+8~, CIT+10, CIT+11, TRIGGER+1~, TRIGGER+3 , TRIGGER+4, ID+4~, ID+6, ID+7, JMD+1~, JMD+8, JMD+9, JVPT+1~, JVPT+6, JVPT+7 , JAC+1~, JAC+5, JAC+6, JPB+1~, JPB+4, JPB+5, JSUB+4~, JSUB+7, JSUB+8, ADD+20~ , ADD+22, ADD+25, ADD+26, ADD+28, DELREC+5~, DELREC+8, DELREC+11, DELREC+12, DELREC+14, EDIT+3~ , EDIT+5, EDIT+8, EDIT+9, EDIT+11, DELVAL+2~, DELVAL+4, DELVAL+7, DELVAL+8, DELVAL+10 |
OUT( | ADD+28, DELREC+14, EDIT+11, DELVAL+10 |
SEED | RENT+3~, RENT+4*, RIT, RIT+2, RIT+3*, RIT+4*, RIT+6*, RIT+7*, RIT+8 |
SIEN | NUM+3~, NUM+4*, NUM+5, IX+3~, IX+4*, IX+5, VCN+1~, VCN+2*, VCN+3, MT+1~ , MT+2*, MT+3, PROB+1~, PROB+2*, PROB+3, PB1+1~, PB1+2*, PB1+3, POV+1~, POV+2* , POV+3, NOTES+1~, NOTES+2*, NOTES+3, RENT+3~, RENT+5*, RIT+2, SUB+4~, SUB+5*, SUB+6 , DINUM+4~, DINUM+5*, DINUM+6, IXP+4~, IXP+5*, IXP+6, AA+7~, AA+8*, AA+9, AA2+5~ , AA2+6*, AA2+7, CIT+8~, CIT+9*, CIT+10, TRIGGER+1~, TRIGGER+2*, TRIGGER+3, ID+4~, ID+5* , ID+6, ADD+20~, ADD+21*, ADD+22, DELREC+5~, DELREC+7*, DELREC+8, EDIT+3~, EDIT+4*, EDIT+5 , DELVAL+2~, DELVAL+3*, DELVAL+4 |
SIEN1 | JMD+1~, JMD+2*, JMD+8, JVPT+1~, JVPT+2*, JVPT+6, JAC+1~, JAC+2*, JAC+5, JPB+1~ , JPB+2*, JPB+4, JSUB+4~, JSUB+5*, JSUB+7 |
SIEN2 | JMD+1~, JMD+3*, JMD+7, JVPT+1~, JVPT+3*, JVPT+5, JAC+1~, JAC+3*, JAC+5, JPB+1~ , JPB+3*, JPB+4, JSUB+4~, JSUB+6*, JSUB+7 |
SIEN3 | JMD+1~, JMD+4*, JMD+6, JAC+4*, JAC+5 |
U | RIT+5 |
VSTG | JMD+1~, JMD+5*, JMD+8, JVPT+1~, JVPT+4*, JVPT+6 |
X | RENT+3~, RIT+5*, RIT+6 |
Y | RENT+3~ |