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! |