PSXDODH1 ;BIR/HTW-HL7 Message Conversion ;01/15/02 13:10:52
Source file <PSXDODH1.m>
Name | Comments | DBIA/ICR reference |
---|---|---|
BLDSEQ | ;build check sequence of SEGMENTS
|
|
PUT(REC,DLM,XX) | ;
; Set VAR into piece I of REC using delimiter DLM |
|
STRBLD(STR0,SEPS) | ;
; default separators for all segments, fields, components are | ^ & ; other separators can be passed in SEPS ex: "|,^,&" or "|,\F\,\S\" ; or placed within the field and segment nodes STR0( , , ..,"S")= separator ; ex: for NTE|1 of HL7 2.1 ; segment NTE|1 STR0("S")="|" ; facility field STR0(4,"S")="\F\" ; address component STR0(4,2,"S")="\S\" |
|
GETELM(STR,PIECES,SEPS) | ;
; uses STRing and ; returns value of the element located by path of pieces and seperators ; ex: PIECES "3,2,1" SEPS "|,^,&" |
|
CHECK | ;patient safety check
|
|
TESTBT | ;test the sequence of the messages in the batch
; stored in ^tmp($j,"PSXDOD","MSG0",I) |
|
HEADER | ; read FHS,BHS,ORC assemble $$XMIT,NTE|1 called from PSXDODH
|
|
L2 | ||
SEGBLD | ; data for checking sequence of segments. ZR1 needs special handling.
|
|
L1 | ||
SETELM(STR,PIECES,SEPS,VALUE) | ||
PIECE(REC,DLM,XX) | ;
; Set VAR = piece I of REC using delimiter DLM |
|
L3 |
Name | Field # of Occurrence |
---|---|
$$FMDATE^HLFNC | HEADER+13 |
Name | Line Occurrences |
---|---|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Name | Line Occurrences |
---|---|
$$GETELM | CHECK+4, HEADER+12, HEADER+16 |
CHECK | TESTBT+8 |
L2 | L1+4 |
L3 | L2+4 |
PIECE | HEADER+11, HEADER+17, HEADER+18, HEADER+19 |
PUT | HEADER+23, HEADER+29, HEADER+30, HEADER+31 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
>> ADDRESS | HEADER+19 |
>> BATIDB | CHECK+1*, CHECK+2, CHECK+3 |
>> BATIDM | CHECK+2*, CHECK+3 |
>> BATNM | HEADER+12* |
>> BHS | CHECK+1*, HEADER+10*, HEADER+12 |
>> BTS | CHECK+10* |
>> DIVISION | HEADER+16*, HEADER+17 |
>> DIVNUM | HEADER+20* |
DLM | PIECE~, PIECE+2, PUT~, PUT+3 |
>> END | HEADER+14* |
>> FACNUM | HEADER+20* |
>> FHS | TESTBT+5*, HEADER+10*, HEADER+11 |
>> G | TESTBT+3, HEADER+10 |
I | BLDSEQ+2*, PIECE+2~*, PUT+2~*, PUT+3, GETELM+5*, GETELM+6*, SETELM+6*, SETELM+7*, SETELM+8, SETELM+9* |
IOST | CHECK+3, CHECK+6, CHECK+8, CHECK+12, CHECK+14 |
>> J | BLDSEQ+4* |
>> LINE | BLDSEQ+2*, BLDSEQ+3, BLDSEQ+4 |
>> LN | TESTBT+3*, TESTBT+5, CHECK+1, CHECK+2, CHECK+4, CHECK+5, CHECK+7, CHECK+10 |
>> LNNUM | TESTBT+3*, TESTBT+5, CHECK+4 |
>> LSEG | TESTBT+2*, TESTBT+5*, TESTBT+6*, TESTBT+7*, BLDSEQ+3*, BLDSEQ+4 |
NTE1 | HEADER+9!, HEADER+33* |
>> NTE1ADD | HEADER+30* |
>> NTE1DIV | HEADER+29* |
>> NTE1LOC | HEADER+31*, HEADER+33 |
>> ORC | HEADER+10*, HEADER+15*, HEADER+16, HEADER+18 |
>> ORDCNT | TESTBT+2*, CHECK+5*, CHECK+13, CHECK+14 |
>> ORDCNTB | CHECK+10*, CHECK+13, CHECK+14 |
>> ORDSEQ | CHECK+2*, CHECK+5, CHECK+7 |
P | GETELM+4~, GETELM+5*, GETELM+6, SETELM+4~, SETELM+6*, SETELM+7, SETELM+9 |
P( | GETELM+5*, GETELM+6, SETELM+6*, SETELM+7, SETELM+9 |
P1 | STRBLD+8~, L1*, L1+3*, L1+4, L1+5, L2+1, L2+2, L2+3, L2+4, L2+5 , L2+6, L3+1, L3+2, L3+3, L3+4, L3+5 |
P2 | STRBLD+8~, L2*, L2+3*, L2+4, L2+5, L3+1, L3+2, L3+3, L3+4, L3+5 |
P3 | STRBLD+8~, L3*, L3+3*, L3+4 |
PI | GETELM+4~, GETELM+5*, SETELM+4~, SETELM+6* |
PIECES | GETELM~, GETELM+5, SETELM~, SETELM+6 |
>> PSXERR | TESTBT+2*, TESTBT+6*, CHECK+2*, CHECK+3, CHECK+5*, CHECK+6, CHECK+7*, CHECK+8, CHECK+11*, CHECK+12 , CHECK+13*, CHECK+14 |
>> PTCNT | TESTBT+2*, CHECK+9*, CHECK+11, CHECK+12 |
>> PTCNTB | CHECK+10*, CHECK+11, CHECK+12, HEADER+14 |
REC | PIECE~, PIECE+2, PUT~, PUT+3* |
>> RXID1 | CHECK+7*, CHECK+8 |
>> RXIDC | CHECK+4*, CHECK+5, CHECK+6, CHECK+7, CHECK+8 |
>> RXIDE | CHECK+5*, CHECK+6 |
>> RXSEQ | CHECK+4*, CHECK+5, CHECK+7 |
S | GETELM+4~, SETELM+4~ |
S( | GETELM+5*, GETELM+6, SETELM+6*, SETELM+7, SETELM+9 |
S1 | STRBLD+8~, L1+2*, L1+5 |
S2 | STRBLD+8~, L2+2*, L2+5, L2+6 |
S3 | STRBLD+8~, L3+2*, L3+4, L3+5 |
>> SEG | TESTBT+3*, TESTBT+4, TESTBT+5, TESTBT+6, TESTBT+7, TESTBT+8, CHECK+1, CHECK+2, CHECK+4, CHECK+5 , CHECK+7, CHECK+9, CHECK+10, BLDSEQ+4* |
SEGSEQ | BLDSEQ+1! |
SEGSEQ( | TESTBT+6, BLDSEQ+4* |
SEPS | GETELM~, GETELM+5, SETELM~, SETELM+6, STRBLD~, STRBLD+9*, L1+1, L2+1, L3+1 |
>> START | HEADER+14* |
STR | GETELM~, GETELM+4, SETELM~, SETELM+5, STRBLD+8~, STRBLD+10*, L1*, L1+5*, L1+6 |
STR( | L1+3, L1+4, L1+5, L2+1*, L2+2, L2+3, L2+4, L2+5*, L2+6*, L3+1* , L3+2, L3+3, L3+4*, L3+5* |
STR("S" | L1+1*, L1+2 |
STR0 | STRBLD~, STRBLD+10 |
>> TRANDTS | HEADER+13* |
U | TESTBT+6, CHECK+5, CHECK+7, PIECE+2, PUT+2 |
V | GETELM+4~*, GETELM+6*, GETELM+7, SETELM+4~, SETELM+5*, SETELM+7* |
V( | SETELM+7*, SETELM+8*, SETELM+9* |
V(0 | SETELM+5*, SETELM+10 |
VALUE | SETELM~, SETELM+8 |
XM | HEADER+9!, HEADER+22*, HEADER+23, HEADER+24* |
XX | PIECE~, PIECE+2, PUT~, PUT+2 |
Y | PIECE+2~*, PUT+2~*, PUT+3 |
>> YY | HEADER+11*, HEADER+17*, HEADER+18*, HEADER+19*, HEADER+23*, HEADER+29*, HEADER+30*, HEADER+31* |
Name | Field # of Occurrence |
---|---|
$T(SEGBLD+I | BLDSEQ+2 |