PSXDODH ;BIR/HTW-HL7 Message Conversion ;01/15/02 13:10:52
Source file <PSXDODH.m>
Name | Comments | DBIA/ICR reference |
---|---|---|
GETELM(STR,PIECES,SEPS) | ;
; uses STRing and ; returns value of the element located by path of pieces and separators ; ex: 1st address line = $$getelm(ORC,"22,1","|,^") ; or = $$getelm(XMIT,"4,2,1","|,\F\,\S|") |
|
MSH | ;assemble $$MSG, MSH
|
|
LOADTMP | ; load data into ^TMP
|
|
ZR1 | ;
|
|
NTE234 | ; insure 2 3 4 sequence is in place
|
|
PID | ;
|
|
EN1 | ;
|
|
EN2 | ;entry for processing file into Vista Messages
|
|
PIECE(REC,DLM,XX) | ;
; Set variable V = piece P of REC using delimiter DLM |
|
SETRX | ;put RX1,ZX1,NTE7 into mail message
|
|
RXE | ; Start building RX1. RX1 has data elements from ORC and RXE segments from 3.2.1
|
|
START | ; Create 2.1 format
|
|
BUILD | ; assemble RX1 & ZX1
|
|
XMZ | ||
NTE234CK | ; encounter MSH , insure NTE 2,3,4 in place
|
|
PUT(REC,DLM,XX) | ;
; Set Variable V into piece P of REC using delimiter DLM |
|
BTS | ; FINISH
|
|
MSGSEQER | ;send error message to folks & DOD
|
|
EN(PATH,FNAME) | ; needs directory & file name
; force an error in the next line |
|
EXIT | ;
|
|
LOOP | ||
CLEARFLS(XX,EXT) | ;
|
|
ORC | ;Patient Data from ORC and RXE(2.3.1) parse date pieces for RX1,ZX1
; element mapping contained in document HL7 2.1_2.3 CONVERSION.xls |
|
ERRMSG | ;
|
Name | Field # of Occurrence |
---|---|
NOW^%DTC | EN1+9 |
$$DEL^%ZISH | LOOP+8 |
$$FTG^%ZISH | EN+7 |
$$GTF^%ZISH | EN1+15, EN1+18, MSGSEQER+3 |
$$LIST^%ZISH | LOOP+2 |
$$GET1^DIQ | EN1+13, EN1+17, MSGSEQER+2, LOOP+1 |
^DIR | LOOP+7 |
$$FMDATE^HLFNC | RXE+5, RXE+6 |
$$FMNAME^HLFNC | ZR1+5 |
$$HLDATE^HLFNC | EN1+9, RXE+5, RXE+6 |
BLDSEQ^PSXDODH1 | EN1+4 |
FALERT^PSXDODH1 | EN1+16, EN1+19 |
HEADER^PSXDODH1 | EN2+2 |
TESTBT^PSXDODH1 | EN1+4 |
XMZ^XMA2 | XMZ |
^XMD | MSGSEQER+12 |
ENT1^XMD | XMZ+16 |
Name | Line Occurrences |
---|---|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Routine Call |
|
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^TMP($J | EN+5!, EN+9, MSGSEQER+3, EXIT+8!, LOADTMP+1!, LOADTMP+2* |
^XMB(3.9 - [#3.9] | XMZ+13*, LOADTMP+2 |
Name | Line Occurrences |
---|---|
BTS | XMZ+12 |
BUILD | XMZ+11 |
ERRMSG | EN+4, EN+8, EN+9, EN1+21 |
EXIT | XMZ+17 |
LOOP | LOOP+9 |
MSH | XMZ+6 |
NTE234 | XMZ+5 |
NTE234CK | MSH+2 |
ORC | XMZ+8 |
PID | XMZ+7 |
PIECE | PID+3, ORC+5, RXE+3, ZR1+3, ZR1+4 |
PUT | EN1+10, PID+8, BUILD+6, BUILD+10, BUILD+11 |
RXE | XMZ+9 |
SETRX | XMZ+11 |
ZR1 | XMZ+11 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
>> % | EN1+9 |
ACK | EN1+6!, EN1+7*, EN1+10, EN1+11 |
ACK(1 | EN1+11* |
ACK(2 | EN1+11*, EN1+12* |
ADDRESS | EXIT+5! |
BATDTM | EN1+9*, EXIT+5! |
BATID | EN1+8*, EN1+11, EXIT+5! |
BATIDB | EN1+8, EXIT+1!, EXIT+5! |
BATIDM | EXIT+1!, EXIT+5! |
BATNM | EN2+3, BTS+3, EXIT+5! |
BHS | EN1+8, EXIT+1! |
BTS | EXIT+1! |
DIR | LOOP+7! |
DIR("A" | LOOP+7* |
DIR("B" | LOOP+7* |
DIR(0 | LOOP+7* |
DIRHOLD | MSGSEQER+2*, MSGSEQER+3, MSGSEQER+11, MSGSEQER+14! |
DIVISION | EXIT+5! |
DIVNM | ZR1+7, EXIT+5! |
DIVNUM | ZR1+7, BTS+3, EXIT+5! |
DLM | PIECE~, PIECE+2, PUT~, PUT+3, EXIT+1! |
DODORD | MSH+3*, EXIT+1! |
DT | XMZ+13 |
END | BTS+3*, BTS+6, EXIT+1! |
EXPDT | ORC+6*, EXIT+5! |
EXT | CLEARFLS~, LOOP+1, LOOP+3 |
FACNM | EN2+3, EXIT+5! |
>> FACNUM | EN2+3 |
FHS | EXIT+1! |
>> FILE | LOOP+5* |
FNAME | EN~, EN+3, EN+7, EN+8, EN+9, EN1+13, MSGSEQER+3, MSGSEQER+4, MSGSEQER+10, EXIT+1! |
FNAME2 | EN1+13*, EN1+15, EN1+16, EN1+18, EN1+19, EXIT+5! |
FNAME3 | EXIT+5! |
G | EN1+2*, XMZ+4, EXIT+1! |
GBL | EN+6*, EN+7, EXIT+1! |
I | GETELM+5~, GETELM+6*, GETELM+7*, MSGSEQER+13*, EXIT+1!, LOADTMP+2*, LOOP+5*, LOOP+6 |
IOST | MSGSEQER+13 |
ISSDT | RXE+5*, EXIT+5! |
J | EXIT+1! |
JJ | EXIT+1! |
LINE | EXIT+1! |
LL | ZR1+6*, EXIT+1! |
LMSGLOC | EN2+1*, MSH+6, MSH+7*, BTS+2, EXIT+1! |
LN | XMZ+4*, XMZ+10, MSH+3, MSH+9, PID+2, ORC+4, RXE+2, ZR1+2, NTE234+1, NTE234+2 , NTE234+4, EXIT+2! |
LNCNT | EN2+1*, EXIT+2! |
LNNUM | XMZ+4*, EXIT+2! |
LSEG | EXIT+2! |
LSTRFLDT | RXE+6*, EXIT+6! |
M | XMZ+1*, XMZ+2, XMZ+3, MSH+5, MSH+6*, MSH+10, PID+10, ORC+7, BTS+2*, BTS+6 , SETRX+1, SETRX+2, SETRX+3, NTE234+1, NTE234+2, NTE234+3, NTE234+4, NTE234+5, NTE234+6, NTE234CK+1 , NTE234CK+2, NTE234CK+3, EXIT+2! |
MAILID | ZR1+5*, EXIT+6! |
MCNT | EN2+1*, XMZ+3*, XMZ+13, MSH+5*, MSH+6, MSH+7, MSH+10*, PID+10*, ORC+7*, BTS+1* , BTS+2, BTS+6, SETRX+1*, SETRX+2*, SETRX+3*, NTE234+1*, NTE234+2*, NTE234+3*, NTE234+4*, NTE234+5* , NTE234+6*, NTE234CK+1*, NTE234CK+2*, NTE234CK+3*, EXIT+2! |
MSH | MSH+8*, MSH+9*, MSH+10, EXIT+2! |
NTE1 | XMZ+3, EXIT+2! |
NTE1ADD | EXIT+6! |
NTE1DIV | EXIT+6! |
NTE1LOC | EXIT+6! |
NTE2 | NTE234+1*, NTE234+3*, NTE234+5*, NTE234CK+1*, EXIT+2! |
NTE3 | NTE234+2*, NTE234+6*, NTE234CK+2*, EXIT+2! |
NTE4 | NTE234+4*, NTE234CK+3*, EXIT+2! |
NTE7 | XMZ+10!*, SETRX+2!, EXIT+2! |
ORC | ORC+4*, ORC+5, EXIT+2! |
ORDCNT | EN2+1*, MSH+4*, MSH+5, MSH+9, EXIT+2! |
ORDCNTB | BTS+3, EXIT+2! |
P | PIECE+2~*, PUT+2~*, PUT+3, GETELM+5~, GETELM+6*, GETELM+7, EXIT+3! |
P( | GETELM+6*, GETELM+7 |
P1 | EXIT+3! |
P2 | EXIT+3! |
P3 | EXIT+3! |
PATH | EN~, EN+3, EN+7, EN+8, EN+9, EN1+13*, EN1+15, EN1+16, EN1+17*, EN1+18 , EN1+19, EXIT+3!, LOOP+1*, LOOP+2, LOOP+3, LOOP+8 |
PI | GETELM+5~, GETELM+6*, EXIT+3! |
PID | PID+8*, PID+9*, PID+10, EXIT+3! |
PID0 | PID+2*, PID+3, EXIT+6! |
PIECE | EXIT+6! |
PIECE( | EN1+8* |
PIECES | GETELM~, GETELM+6 |
PNAME | PID+4, PID+5*, PID+7*, EXIT+3! |
PRVPHY | ZR1+5*, ZR1+6*, EXIT+6! |
PSXERR | EN+4*, EN+8*, EN+9*, EN1+1*, EN1+12, EN1+14, EN1+21, MSGSEQER+9, EXIT+3! |
PSXF | EXIT+6!, LOOP! |
PSXF( | LOOP+1* |
PSXL | LOOP!, LOOP+4 |
PSXL( | LOOP+5 |
PSXTXT | MSGSEQER+14!, EXIT+3!, EXIT+8! |
PSXTXT( | MSGSEQER+13 |
PSXTXT(1 | MSGSEQER+8* |
PSXTXT(2 | MSGSEQER+9* |
PSXTXT(3 | MSGSEQER+10* |
PSXTXT(4 | MSGSEQER+11* |
PT1ST | PID+4*, PID+5*, PID+6! |
PTCNT | EXIT+3! |
PTCNTB | BTS+3, EXIT+3! |
PTLST | PID+4*, PID+5, PID+6! |
REC | PIECE~, PIECE+2, PUT~, PUT+3*, EXIT+3! |
RFLDT | ORC+6*, EXIT+6! |
RX1 | ORC+3!, BUILD+5*, BUILD+6, BUILD+7*, SETRX+1, EXIT+3! |
RXCNT | ZR1+5*, BUILD+9*, EXIT+6! |
RXDATES | ORC+6, EXIT+6! |
RXE | RXE+2*, RXE+3, EXIT+3! |
RXID1 | EXIT+3! |
RXIDC | EXIT+3! |
RXIDE | EXIT+3! |
>> RXINDX | BUILD+4* |
RXNUM | RXE+4*, EXIT+6! |
RXZNUM | ZR1+7*, EXIT+6! |
S | GETELM+5~, EXIT+4! |
S( | GETELM+6*, GETELM+7 |
S1 | EXIT+4! |
S2 | EXIT+4! |
S3 | EXIT+4! |
SEG | XMZ+4*, XMZ+5, XMZ+6, XMZ+7, XMZ+8, XMZ+9, XMZ+10, XMZ+11, XMZ+12, NTE234+1 , NTE234+2, NTE234+4, EXIT+4! |
SEGSEQ | EXIT+4! |
SEPS | GETELM~, GETELM+6, EXIT+4! |
SIG | RXE+7*, EXIT+7! |
SITEID | ZR1+7*, EXIT+7! |
START | EXIT+7! |
STR | GETELM~, GETELM+5, EXIT+4! |
STR0 | EXIT+4! |
TRANDTS | EXIT+7! |
U | EN+8, EN+9, XMZ+13, BTS+3, PIECE+2, PUT+2 |
V | PIECE+2~*, PUT+2~*, PUT+3, GETELM+5~*, GETELM+7*, GETELM+8, EXIT+4! |
VALUE | EXIT+4! |
>> X | LOADTMP+2* |
XM | XMZ+2, EXIT+4! |
>> XMDUZ | EN2+3* |
>> XMSUB | EN2+3*, MSGSEQER+4* |
>> XMTEXT | MSGSEQER+7* |
>> XMY("G.PSXX C | MOP MANAGERS" , MSGSEQER+5* |
>> XMY("S.PSXX C | MOP SERVER" , XMZ+14* |
XMZ | XMZ+13, EXIT+7! |
XX | EN1+15*, EN1+18*, PIECE~, PIECE+2, PUT~, PUT+2, EXIT+4!, CLEARFLS~, LOOP+1 |
Y | EN+7*, EN+8, EN1+15*, EN1+16, EN1+18*, EN1+19, MSGSEQER+3*, EXIT+4!, LOOP+2*, LOOP+7 |
YY | EN1+10*, PID+3*, PID+8*, ORC+5*, RXE+3*, ZR1+3*, ZR1+4*, BUILD+6*, BUILD+10*, BUILD+11* , EXIT+4! |
ZR1 | ZR1+2*, ZR1+3, ZR1+4, EXIT+4! |
ZX1 | ORC+3!, BUILD+8*, BUILD+10, BUILD+11, BUILD+12*, SETRX+3, EXIT+4! |