PSULRHL1 ;HCIOFO/BH/RDC - Process real time HL7 Lab messages ; 1/10/11 8:10am
Source file <PSULRHL1.m>
Package | Total | Call Graph |
---|---|---|
Registration | 3 | $$EMPL^DGSEC4 ELIG^VADPT BLDPID^VAFCQRY |
Health Level Seven | 2 | INIT^HLFNC2 $$EN^HLOCNRT |
Lab Service | 1 | $$TSTRES^LRRPU |
VA FileMan | 1 | $$GET1^DIQ |
Name | Comments | DBIA/ICR reference |
---|---|---|
HL7 | ; Entry point for PBM processing - triggered by lab protocol
; LR7O ALL EVSEND RESULTS. |
|
LOOP | ;
|
|
PID | ; Create the PID segment using the standard builder
|
|
ORC | ; ORC needed to send Station Number. PSU*4*18
|
|
OBR(REC) | ; Re-forms lab OBR to only send required data
|
|
OBX(REC) | ; Reforms lab OBX to only send the data needed
|
|
STRING(HLSTR,CNT) | ; Loops through sub nodes to create a full data string
|
|
PARAMS | ; Get the delimiters used in the lab data
|
|
GENERATE | ; Generate HL7 message
|
|
SETSEG(SEG) | ;
|
FileNo | Call Tags |
---|---|
^DIC(4 - [#4] | GET1^DIQ |
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^DPT - [#2] | HL7+42 |
^LAB(60 - [#60] | OBX+11 |
^TMP("HLS" | HL7+21, LOOP+2!, GENERATE+7! |
^XTMP("PBM/HLO" | GENERATE+6* |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
ARR | HL7+4~, HL7+32, PARAMS+3! |
ARR("DFN" | HL7+33, HL7+37, HL7+42, PID+4, PARAMS+12* |
ARR("PSUHLECH" | HL7+27, PARAMS+10* |
CNT | LOOP+1~, LOOP+3*, LOOP+4*, LOOP+5, LOOP+6, LOOP+18*, LOOP+19, LOOP+20, LOOP+22*, LOOP+30* , LOOP+31, LOOP+32, LOOP+34*, STRING~, STRING+3, PARAMS+2~, PARAMS+4*, PARAMS+5*, PARAMS+6 |
CODES | OBX+1~, OBX+19* |
DFN | HL7+37~*, HL7+38 |
DT | GENERATE+6 |
ERR | HL7+53!, PID+4 |
FIRST | HL7+4~, HL7+46*, HL7+51, LOOP+27* |
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+4~, HL7+42*, 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+53!, GENERATE+4 |
OPTNS("QUEUE" | GENERATE+3* |
ORCSEG | ORC+1~, ORC+2*, ORC+8*, ORC+12 |
>> OREMSG | HL7+9, LOOP+4, LOOP+5, LOOP+18, LOOP+19, LOOP+30, LOOP+31, 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+30*, LOOP+34 |
PSUDIV | HL7+4~, ORC+5, PARAMS+9* |
PSUEXT | HL7+4~ |
PSUEXT("PSUBUF" | HL7+21*, SETSEG+15 |
PSUEXT("PSUPTR" | HL7+22*, SETSEG+15, SETSEG+26* |
PSUHL | HL7+13, HL7+53!, PID+4 |
PSUHL("CS" | HL7+17*, ORC+7, OBR+6, OBX+26, OBX+33 |
PSUHL("ECH" | HL7+17 |
PSUHL("FS" | ORC+8, OBR+10, OBR+11, OBX+38, OBX+39, OBX+40, OBX+41, OBX+42, OBX+43, OBX+44 |
PSUHLCS | HL7+4~, HL7+28*, LOOP+10, OBR+6, OBX+26 |
PSUHLECH | HL7+4~, HL7+27*, HL7+28 |
PSUHLFS | HL7+4~, LOOP+7, LOOP+9, LOOP+21, LOOP+33, OBR+4, OBR+5, OBX+3, OBX+4, OBX+5 , OBX+6, OBX+7, OBX+8, PARAMS+8*, PARAMS+9, PARAMS+10, PARAMS+11, PARAMS+12 |
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+10*, PARAMS+13* |
QUIT1 | LOOP+1~, LOOP+17*, LOOP+18, LOOP+22* |
QUIT2 | LOOP+1~, LOOP+29*, LOOP+30, LOOP+34* |
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, PARAMS+12 |
REC1 | LOOP+1~, LOOP+19*, LOOP+20*, LOOP+21, LOOP+28 |
REC2 | LOOP+1~, LOOP+31*, LOOP+32*, LOOP+33, LOOP+36 |
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, ORC+1~, ORC+7*, ORC+8, 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+33*, LOOP+34, LOOP+35 |
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 |
STATION | ORC+1~, ORC+5*, ORC+7 |
STR1 | LOOP+1~, LOOP+9*, LOOP+10*, LOOP+11, LOOP+16 |
U | OBX+19, OBX+21 |
UNITS | OBX+1~, OBX+7*, OBX+42 |
VAEL | HL7+37~ |
VAEL(4 | HL7+38 |