PSULRHL1 ;HCIOFO/BH/RDC - Process real time HL7 Lab messages ; 8/1/07 11:26am
Source file <PSULRHL1.m>
Package | Total | Call Graph |
---|---|---|
Health Level Seven | 2 | INIT^HLFNC2 $$EN^HLOCNRT |
Registration | 2 | $$EMPL^DGSEC4 BLDPID^VAFCQRY |
Lab Service | 1 | $$TSTRES^LRRPU |
Name | Comments | DBIA/ICR reference |
---|---|---|
HL7 | ; Entry point for PBM processing - triggered by lab protocol
; LR7O ALL EVSEND RESULTS. |
|
PID | ; Create the PID segment using the standard builder
|
|
STRING(HLSTR,CNT) | ; Loops through sub nodes to create a full data string
|
|
OBR(REC) | ; Re-forms lab OBR to only send required data
|
|
OBX(REC) | ; Reforms lab OBX to only send the data needed
|
|
PARAMS | ; Get the delimiters used in the lab data
|
|
SETSEG(SEG) | ;
|
|
GENERATE | ; Generate HL7 message
|
|
LOOP | ;
|
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^DPT - [#2] | HL7+40 |
^LAB(60 - [#60] | OBX+11 |
^TMP("HLS" | HL7+20, LOOP+2!, GENERATE+7! |
^XTMP("PBM/HLO" | GENERATE+6* |
Name | Line Occurrences |
---|---|
$$STRING | LOOP+6, LOOP+20, LOOP+31 |
GENERATE | HL7+49 |
LOOP | HL7+45 |
OBR | LOOP+27 |
OBX | LOOP+35 |
PARAMS | HL7+25 |
PID | LOOP+26 |
SETSEG | PID+15, OBR+15, OBX+48 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
ARR | HL7+3~, HL7+31, PARAMS+3! |
ARR("DFN" | HL7+32, HL7+36, HL7+40, PID+4, PARAMS+11* |
ARR("PSUHLECH" | HL7+26, PARAMS+9* |
CNT | LOOP+1~, LOOP+3*, LOOP+4*, LOOP+5, LOOP+6, LOOP+18*, LOOP+19, LOOP+20, LOOP+22*, LOOP+29* , LOOP+30, LOOP+31, LOOP+33*, STRING~, STRING+3, PARAMS+2~, PARAMS+4*, PARAMS+5*, PARAMS+6 |
CODES | OBX+1~, OBX+19* |
DT | GENERATE+6 |
ERR | HL7+51!, PID+4 |
FIRST | HL7+3~, HL7+44*, HL7+49, LOOP+26* |
HLSTR | STRING~, STRING+3*, STRING+4 |
HRANGE | OBX+1~, OBX+21*, OBX+22 |
I1 | SETSEG+14~, SETSEG+23*, SETSEG+24 |
I2 | SETSEG+14~, SETSEG+22*, SETSEG+23*, SETSEG+24 |
ID | PARAMS+2~ |
J | STRING+1~, STRING+2*, STRING+3* |
K1 | PID+2~, PID+9*, PID+10*, PID+11 |
LABS | OBX+1~, OBX+8*, OBX+9, OBX+26*, OBX+33*, OBX+40 |
LNAME | OBX+1~, OBX+20*, OBX+33 |
LOINC | OBX+1~, OBX+20*, OBX+30, OBX+33 |
LOINCS | OBX+1~, OBX+19*, OBX+20 |
LR60 | OBX+1~, OBX+9*, OBX+10, OBX+11, OBX+17 |
LRANGE | OBX+1~, OBX+21*, OBX+22 |
LRDFN | HL7+3~, HL7+40*, OBX+17 |
LRDN | OBX+1~, OBX+11*, OBX+12*, OBX+16, OBX+17 |
LRIDT | LOOP+1~, LOOP+16*, OBX+17 |
LRSS | LOOP+1~, LOOP+11*, LOOP+15, OBX+17 |
MAXLEN | SETSEG+14~, SETSEG+16*, SETSEG+18, SETSEG+21, SETSEG+22, SETSEG+23 |
NEWSEG | PID+2~, PID+9*, PID+11*, PID+15 |
NODE | SETSEG+14~, SETSEG+15*, SETSEG+16, SETSEG+18, SETSEG+24 |
OBRSEG | OBR+2~, OBR+3*, OBR+10*, OBR+11*, OBR+15 |
OPTNS | HL7+51!, GENERATE+4 |
OPTNS("QUEUE" | GENERATE+3* |
>> OREMSG | HL7+8, LOOP+4, LOOP+5, LOOP+18, LOOP+19, LOOP+29, LOOP+30, STRING+3, PARAMS+5, PARAMS+6 |
P12 | OBX+1~, OBX+5*, OBX+44 |
P2 | OBX+1~, OBX+3*, OBX+38 |
P3 | OBX+1~, OBX+4*, OBX+39 |
PREV1 | LOOP+1~, LOOP+18*, LOOP+22 |
PREV2 | LOOP+1~, LOOP+29*, LOOP+33 |
PSUEXT | HL7+3~ |
PSUEXT("PSUBUF" | HL7+20*, SETSEG+15 |
PSUEXT("PSUPTR" | HL7+21*, SETSEG+15, SETSEG+26* |
PSUHL | HL7+12, HL7+51!, PID+4 |
PSUHL("CS" | HL7+16*, OBR+6, OBX+26, OBX+33 |
PSUHL("ECH" | HL7+16 |
PSUHL("FS" | OBR+10, OBR+11, OBX+38, OBX+39, OBX+40, OBX+41, OBX+42, OBX+43, OBX+44 |
PSUHLCS | HL7+3~, HL7+27*, LOOP+10, OBR+6, OBX+26 |
PSUHLECH | HL7+3~, HL7+26*, HL7+27 |
PSUHLFS | HL7+3~, LOOP+7, LOOP+9, LOOP+21, LOOP+32, OBR+4, OBR+5, OBX+3, OBX+4, OBX+5 , OBX+6, OBX+7, OBX+8, PARAMS+8*, PARAMS+9, PARAMS+10, PARAMS+11 |
PTR | SETSEG+14~, SETSEG+15*, SETSEG+16, SETSEG+18, SETSEG+24, SETSEG+26 |
PTR1 | SETSEG+14~, SETSEG+23*, SETSEG+24 |
QUIT | PARAMS+2~, PARAMS+4*, PARAMS+5, PARAMS+9*, PARAMS+12* |
QUIT1 | LOOP+1~, LOOP+17*, LOOP+18, LOOP+22* |
QUIT2 | LOOP+1~, LOOP+28*, LOOP+29, LOOP+33* |
RANGE | OBX+1~, OBX+22*, OBX+43 |
REC | LOOP+1~, LOOP+5*, LOOP+6*, LOOP+7, LOOP+9, OBR~, OBR+4, OBR+5, OBX~, OBX+3 , OBX+4, OBX+5, OBX+6, OBX+7, OBX+8, PARAMS+2~, PARAMS+6*, PARAMS+7, PARAMS+8, PARAMS+9 , PARAMS+10, PARAMS+11 |
REC1 | LOOP+1~, LOOP+19*, LOOP+20*, LOOP+21, LOOP+27 |
REC2 | LOOP+1~, LOOP+30*, LOOP+31*, LOOP+32, LOOP+35 |
RES | OBX+1~, OBX+17*, OBX+19, OBX+21, PARAMS+2~, PARAMS+4* |
>> RESULT | GENERATE+4*, GENERATE+5, GENERATE+6 |
RESULTS | OBX+1~, OBX+6*, OBX+41 |
SEG | LOOP+1~, LOOP+7*, LOOP+8, PID+2~, PID+3*, PID+4, OBX+1~, OBX+37*, OBX+38*, OBX+39* , OBX+40*, OBX+41*, OBX+42*, OBX+43*, OBX+44*, OBX+48, SETSEG~, SETSEG+16, SETSEG+18, SETSEG+24 |
SEG( | PID+10, PID+11 |
SEG1 | LOOP+1~, LOOP+21*, LOOP+22, LOOP+23 |
SEG2 | LOOP+1~, LOOP+32*, LOOP+33, LOOP+34 |
SID | SETSEG+14~ |
SITE | OBR+2~, OBR+5*, OBR+6*, OBR+11 |
SL | SETSEG+14~, SETSEG+16*, SETSEG+21, SETSEG+23 |
SPECDATE | OBR+2~, OBR+4*, OBR+10 |
STR1 | LOOP+1~, LOOP+9*, LOOP+10*, LOOP+11, LOOP+16 |
U | OBX+19, OBX+21 |
UNITS | OBX+1~, OBX+7*, OBX+42 |