RAHLRU1 ;HISC/PB,GJC - utilities for HL7 messaging ;1/28/00 11:03
Source file <RAHLRU1.m>
| Name | Comments | DBIA/ICR reference |
|---|---|---|
| PID(RADFN) | ;compile the PID segment
|
|
| PV1(RADFN) | ;compile the PV1 segment determine if the patient is
|
|
| REPEAT(X,N) | ;return a string of HL7 encoding characters; ideal when a field
|
|
| MAG(XX,RAD) | ;Build the HL7 segment from the array passed back from the
|
|
| RTNSUB(A) | ;return the current first level subscript for the A array
; default is : HLA array ; If array (HLA) is undefined, or only HLA("HLS") defined, return 0 |
|
| BLSEG(SEG,X,ADR) | ;
|
|
| BLSEG1 | ;Split for first time
|
|
| BLSEG2(YY,JJ,K) | ;Split any subsequent times
|
|
| PARSEG(ARR,PAR) | ;Parse segment from ARR array to PAR array
|
|
| PARPROC(DATA) | ;process data...
|
|
| GETPP(D) | ;get repeated fields...
|
|
| VFIER(X1,X2,X3) | ; validation of OBR-32 , OBR-33 or OBR-35
; X1 = value to be Validated/Returned (IEN) ; Note: X1 is passed in as: ID Number (IEN)^Family Name^Given Name ; (in this example "^" is the subcomponent separator) ; X2 = Status ('C'orrected, 'F'inal, or 'R'esults filed, not verified) ; X3 = text 'OBR-32' or 'OBR-33' or 'OBR-33x' or 'OBR 35' ; Return value: 1 = Validation OK ; 0^Error message to be returned to sender |
|
| INDT(X1) | ;check if MD has inactivation date.
|
|
| SR(X1) | ;'S'taff or 'R'esident and inactive DATE
|
|
| SPECSRC(RAOIFN) | ;Specimen Source OBR-15
|
|
| SETUP | ; Setup basic examination information
|
|
| USESSAN() | ; Return the value of the parameter used as the switch
; to turn on use of the Site Specific Accession Numbers |
|
| SSANVAL(RADFN,RADTI,RACNI) | ; Return the value of the Site Specific Acc Number
|
|
| DATEPRT(RADTE) | ; Return the printable format of the internal date value
|
| FileNo | Call Tags |
|---|---|
| ^VA(200 - [#200] | FIND^DIC, GET1^DIQ, GETS^DIQ |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^RA(79 - [#79] | USESSAN+2, USESSAN+3 |
| ^RA(79.2 - [#79.2] | SETUP+3 |
| ^RADPT - [#70] | SETUP+1, SSANVAL+1 |
| ^RAMIS(71 - [#71] | SETUP+3, SETUP+4 |
| ^RAMIS(71.2 - [#71.2] | SPECSRC+7 |
| ^RAO(75.1 - [#75.1] | SPECSRC+4, SPECSRC+5 |
| ^RARPT - [#74] | SETUP+2 |
| ^RARRAY(200 | SR+11 |
| Name | Line Occurrences |
|---|---|
| $$RTNSUB | BLSEG+12 |
| BLSEG | PID+9, PV1+40 |
| BLSEG1 | BLSEG+27, BLSEG+38 |
| BLSEG2 | BLSEG+23, BLSEG+34 |
| GETPP | PARPROC+4 |
| MAG | PID+8, PV1+10 |
| PARPROC | PARSEG+7, PARSEG+8 |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| A | RTNSUB~, RTNSUB+3*, RTNSUB+4*, RTNSUB+5 |
| A1 | BLSEG+6~, BLSEG+9*, BLSEG+13, BLSEG+25, BLSEG+26*, BLSEG+37*, BLSEG1+1, BLSEG1+2, BLSEG1+3, BLSEG1+5 |
| A2 | BLSEG+6~, BLSEG+10*, BLSEG+21, BLSEG+22*, BLSEG+33*, BLSEG1+3, BLSEG1+4, BLSEG1+6, BLSEG2+1, BLSEG2+2 , BLSEG2+3, BLSEG2+4, BLSEG2+7 |
| ADR | BLSEG~, BLSEG+7*, BLSEG+8*, BLSEG+9, BLSEG+10, BLSEG+12 |
| ARR | PARSEG~ |
| ARR(1 | PARSEG+5, PARSEG+8 |
| C | VFIER+8~ |
| D | PARSEG+3~*, PARPROC+3*, PARPROC+4, GETPP~, GETPP+1, GETPP+2, GETPP+3, GETPP+4 |
| D1 | PARSEG+3~, GETPP+2!, GETPP+4* |
| DATA | BLSEG+6~, PARSEG+5*, PARSEG+6, PARSEG+7, PARPROC~, PARPROC+1, PARPROC+3 |
| DIERR | VFIER+8~, SR+5~ |
| DT | SR+11, SETUP+5 |
| FLDN | PARSEG+3~, PARPROC+1*, PARPROC+2, PARPROC+5 |
| FLDN1 | PARSEG+3~, GETPP+3* |
| >> HLCS | MAG+12 |
| >> HLECH | PV1+36, BLSEG+12, PARSEG+4 |
| >> HLFS | BLSEG+13, BLSEG+21, BLSEG+22, BLSEG+25, BLSEG+26, BLSEG+33, BLSEG+37, BLSEG1+3, BLSEG1+4, BLSEG1+5 , BLSEG2+4, PARSEG+2, PARPROC+1, PARPROC+3 |
| >> HLQ | SETUP+6 |
| >> HLREP | MAG+11 |
| >> HLSCS | MAG+13 |
| I | MAG+2~, MAG+10*, MAG+11, MAG+12, MAG+13, MAG+14*, BLSEG+6~, BLSEG+13*, BLSEG+14*, BLSEG+15 , BLSEG+19, BLSEG+21, BLSEG+22, BLSEG+25, BLSEG+26, BLSEG+33, BLSEG+37, PARSEG+3~, PARSEG+7*, PARSEG+8* |
| I1 | MAG+2~, MAG+10*, MAG+11*, MAG+12, MAG+13 |
| I2 | MAG+2~, MAG+11*, MAG+12*, MAG+13 |
| I3 | MAG+2~, MAG+12*, MAG+13* |
| II | MAG+2~, MAG+10!, PARSEG+3~*, PARPROC+2*, PARPROC+3, GETPP+2, GETPP+4 |
| II( | MAG+11, MAG+12*, MAG+13* |
| J | BLSEG+6~, BLSEG+19*, BLSEG+21, BLSEG+25, BLSEG2+6, PARSEG+3*, PARPROC+5*, GETPP+2, GETPP+4 |
| JJ | BLSEG+6~, BLSEG+12*, BLSEG+21, BLSEG+23, BLSEG+31*, BLSEG1+6*, BLSEG2~, BLSEG2+6*, PARSEG+3~, GETPP+3* , GETPP+4 |
| K | BLSEG2~, BLSEG2+6 |
| N | REPEAT~, REPEAT+5 |
| PAR | PARSEG~ |
| PAR( | GETPP+2*, GETPP+4* |
| RA0X | PID+7!, PID+8, PID+9!, PV1+9!, PV1+10, PV1+40! |
| >> RACN0 | SETUP+1*, SETUP+2, SETUP+3 |
| RACNI | SETUP+1, SSANVAL~, SSANVAL+1 |
| >> RACPT | SETUP+4*, SETUP+5 |
| >> RACPTNDE | SETUP+5* |
| RAD | MAG~ |
| RAD( | MAG+11*, MAG+14! |
| RADFN | PID~, PID+7, PV1~, PV1+9, SETUP+1, SETUP+6, SSANVAL~, SSANVAL+1 |
| RADIVIEN | USESSAN+2~*, USESSAN+3 |
| RADTE | DATEPRT~, DATEPRT+1 |
| >> RADTE0 | SETUP+2*, SETUP+6* |
| >> RADTECN | SETUP+2* |
| RADTI | SETUP+1, SETUP+2, SSANVAL~, SSANVAL+1 |
| >> RAERR | INDT+2* |
| RAERROR | VFIER+8~, SR+5~ |
| RAERROR("DIERR" | VFIER+13, SR+8 |
| RAINDT | INDT+1~, INDT+2* |
| RALBL | VFIER+8~, VFIER+9*, VFIER+13, VFIER+15 |
| RAOIFN | SPECSRC~, SPECSRC+4, SPECSRC+5 |
| >> RAPID | PID+8, PID+9 |
| >> RAPRCNDE | SETUP+4* |
| >> RAPROC | SETUP+3*, SETUP+4 |
| >> RAPROCIT | SETUP+3* |
| >> RAPV1 | PV1+10, PV1+40 |
| >> RAPV1(16 | PV1+34*, PV1+35, PV1+36*, PV1+38* |
| >> RAPV1(20 | PV1+11! |
| >> RAPV1(3 | PV1+11 |
| >> RARPT | SETUP+2 |
| >> RARPT0 | SETUP+2* |
| RARRAY | VFIER+8~, SR+5~ |
| RARRAY( | SR+14 |
| RARRAY("DILIST" | VFIER+15 |
| >> RASET | SETUP+1 |
| RASPSRC | SPECSRC+3~, SPECSRC+8*, SPECSRC+10*, SPECSRC+12 |
| RASPSRC(0 | SPECSRC+7*, SPECSRC+8 |
| RASS | SPECSRC+3*, SPECSRC+4*, SPECSRC+5, SPECSRC+11! |
| >> RASTRE | SR+4*, SR+8*, SR+13*, SR+14* |
| >> RAZDTE | PV1+9 |
| >> RAZMODE | PV1+33*, PV1+34 |
| >> RAZORD | PV1+32, PV1+33 |
| RAZPMOD | SPECSRC+5*, SPECSRC+7, SPECSRC+11! |
| >> RAZPREG | PV1+32*, PV1+35, PV1+38 |
| >> RAZXAM | PV1+32 |
| REMAIN | BLSEG+6~, BLSEG1+2*, BLSEG1+6, BLSEG2+2*, BLSEG2+6, BLSEG2+7 |
| S | REPEAT+5~*, REPEAT+6 |
| SEG | BLSEG~, BLSEG+13, BLSEG1+3, BLSEG1+5 |
| SS | BLSEG+6~, BLSEG+12*, BLSEG+21, BLSEG+25, BLSEG2+6, PARSEG+3~, PARSEG+4*, GETPP+2, GETPP+3, GETPP+4 |
| U | PV1+32, PV1+33, VFIER+15, SR+13, SR+14, SPECSRC+7, SETUP+3, SETUP+4 |
| X | PID+7*, PV1+9*, REPEAT~, REPEAT+5, BLSEG~, SR+5~, SR+13*, SR+14* |
| X( | BLSEG+14, BLSEG+15, BLSEG+19, BLSEG+21, BLSEG+25, BLSEG+33, BLSEG+37 |
| X1 | VFIER~, VFIER+11, INDT~, INDT+2, SR~, SR+4, SR+5*, SR+6, SR+11 |
| X2 | VFIER~ |
| X3 | VFIER~, VFIER+9 |
| XOLD | BLSEG+6~, BLSEG+21*, BLSEG+22, BLSEG+25*, BLSEG+26 |
| XX | MAG~ |
| XX(1 | MAG+10, MAG+11, MAG+12, MAG+13 |
| Y | BLSEG+6~, BLSEG+12*, SR+5~, SR+11*, SETUP+6* |
| YY | BLSEG+6~, BLSEG+12*, BLSEG+20, BLSEG+23, BLSEG+32, BLSEG+34, BLSEG1+3*, BLSEG1+6*, BLSEG2~, BLSEG2+5* |
| YYSUB | BLSEG+6~, BLSEG+21, BLSEG+22, BLSEG+33, BLSEG1+4*, BLSEG2+4* |