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 |