SDHL7APU ;MS/TG,PH - TMP HL7 Routine;OCT 16, 2018
Source file <SDHL7APU.m>
| Package | Total | Call Graph |
|---|---|---|
| Health Level Seven | 4 | $$LLOK^HLCSLM INIT^HLFNC2 GENACK^HLMA1 LINK^HLUTIL3 |
| Scheduling | 4 | ARCLOSE^SDECAR GETSTC^SDECCON ($$ERRLKP,$$STRIP,SENDERR)^SDHL7APU $$MSA^SDTMBUS |
| Kernel | 3 | ($$FMADD,$$FMTE,$$HTFM)^XLFDT $$LOW^XLFSTR ($$NAME,$$PRNT)^XUAF4 |
| VA FileMan | 3 | NOW^%DTC $$FIND1^DIC $$GET1^DIQ |
| Master Patient Index VistA | 1 | $$GETDFN^MPIF001 |
| action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
| Name | Comments | DBIA/ICR reference |
|---|---|---|
| MSH(MSH,INP,MSGARY) | ;
|
|
| SCH(SCH,INP,MSGARY) | ;
|
|
| SCHNTE(SCHNTE,INP,MSGARY) | ;
|
|
| PID(PID,INP,MSGARY) | ;
|
|
| PV1(PV1,INP,MSGARY) | ;
|
|
| OBX(OBX,INP) | ;
|
|
| RGS(RGS,CNT,INP) | ;
|
|
| AIS(AIS,CNT,INP,MSGARY) | ;
|
|
| AISNTE(AISNTE,CNT,INP) | ;
|
|
| AIG(AIG,CNT,INP) | ;
|
|
| AIGNTE(AIGNTE,CNT,INP) | ;
|
|
| AIL(AIL,CNT,INP,MSGARY) | ;
|
|
| AILNTE(AILNTE,CNT,INP) | ;
|
|
| AIP(AIP,CNT,INP,MSGARY) | ;
|
|
| AIPNTE(AIPNTE,CNT,INP,MSGARY) | ;
|
|
| VALIDMSG(MSGROOT,QRY,XMT,ERR) | ||
| PARSESEG(SEG,DATA,HL) | ;Generic segment parser
|
|
| PARSEMSG(MSGROOT,HL) | ; Message Parser
; Does not handle segments that span nodes ; Does not handle extremely long segments (uses a local) ; Does not handle long fields (segment parser doesn't) |
|
| SEND() | ;
|
|
| ACKIN | ;
|
|
| INP | ; set up the INP array for calling ARSET^SDECAR2 to update the RTC orders
|
|
| ARSET(X) | ; set the appointment requests into 409.85
|
|
| LOADMSG(MSGROOT) | ; Load HL7 message into temporary global for processing
|
|
| LOADXMT(HL,XMT) | ;Set HL dependent XMT values
|
|
| ERRLKP(ERRTXT) | ;
|
|
| CHKAPT(RET,DFN,CLINID) | ;
|
|
| STRIP(SDECZ) | ;Replace control characters with spaces
|
|
| RESLKUP(CLINID) | ;
|
|
| GETAPT(URL,SDCL,SDECSTART) | ;
|
|
| CHKLL(X) | ;check setup of Logical Link
|
|
| SENDERR(ERR) | ||
| DUZ | ; send error nak back if user not on system
|
|
| APPTYPE(CL) | ;Determines APPTYPE by STOP CODES associated with CLINIC (SD*5.3*780)
|
|
| GETSTA(STA) | ;Return Parent STA or self if No parent
|
|
| ERRS | ;
|
|
| ACK | ;****BUILD THE RESPONSE MSA (Cont. of SDHL7APT)
|
| Name | Field # of Occurrence |
|---|---|
| NOW^%DTC | INP+7 |
| $$FIND1^DIC | LOADXMT+14, LOADXMT+15 |
| $$GET1^DIQ | AIL+14, INP+15, INP+17, INP+24, INP+31, APPTYPE+3 |
| $$LLOK^HLCSLM | CHKLL+8 |
| INIT^HLFNC2 | SENDERR+4, ACK+6 |
| GENACK^HLMA1 | SENDERR+9, ACK+11 |
| LINK^HLUTIL3 | CHKLL+5 |
| $$GETDFN^MPIF001 | PID+2 |
| ARCLOSE^SDECAR | SENDERR+3 |
| GETSTC^SDECCON | AIL+10 |
| $$ERRLKP^SDHL7APU | ACK+1 |
| $$STRIP^SDHL7APU | ACK+2 |
| SENDERR^SDHL7APU | DUZ+2 |
| $$MSA^SDTMBUS | SENDERR+6 |
| $$FMADD^XLFDT | MSH+3 |
| $$FMTE^XLFDT | AIL+14, INP+7, SENDERR+3 |
| $$HTFM^XLFDT | INP+7 |
| $$LOW^XLFSTR | SCH+21, AIL+13 |
| $$NAME^XUAF4 | AIL+8, INP+9 |
| $$PRNT^XUAF4 | GETSTA+1 |
| FileNo | Call Tags |
|---|---|
| ^ORD(101 - [#101] | FIND1^DIC |
| ^GMR(123 - [#123] | GET1^DIQ |
| ^VA(200 - [#200] | GET1^DIQ |
| ^DGEN(27.11 - [#27.11] | GET1^DIQ |
| ^DIC(40.7 - [#40.7] | GET1^DIQ |
| ^SDEC(409.85 - [#409.85] | GET1^DIQ |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^DPT - [#2] | INP+23, INP+34, CHKAPT+4 |
| ^ORD(101 - [#101] | LOADXMT+27 |
| ^SC - [#44] | CHKAPT+5, RESLKUP+6, GETAPT+5, GETAPT+6, GETAPT+7, GETAPT+8, GETAPT+9, GETAPT+10, GETAPT+11*, APPTYPE+3 |
| ^SD(409.2 - [#409.2] | SCH+8 |
| ^SDEC(409.831 - [#409.831] | RESLKUP+7, RESLKUP+9 |
| ^SDEC(409.85 - [#409.85] | SCH+28, SCH+29, INP+4, INP+40, INP+41, ARSET+4, ARSET+5, ARSET+6, CHKAPT+7, CHKAPT+9 , CHKAPT+10 |
| ^VA(200 - [#200] | SCH+21 |
| ^XTMP("SDTMP" | MSH+3* |
| Name | Line Occurrences |
|---|---|
| PARSESEG | PARSEMSG+7 |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| >> ACKMSG | ACK+9 |
| AIG | AIG~, AIG+1 |
| AIG( | AIG+1* |
| AIGNTE | AIGNTE~, AIGNTE+1 |
| AIGNTE( | AIGNTE+1* |
| AIL | AIL~, AIL+1 |
| AIL( | AIL+1* |
| AIL(1 | AIL+4, AIL+5, AIL+8, AIL+11, AIL+13, AIL+17, AIL+18, AIL+19, INP+10, INP+38 |
| AIL(2 | AIL+6, AIL+17 |
| AILNTE | AILNTE~, AILNTE+1, AILNTE+2*, AILNTE+3* |
| AILNTE( | AILNTE+1* |
| AILNTE(1 | AILNTE+2, AILNTE+3 |
| AIP | AIP~, AIP+1 |
| AIP( | AIP+1* |
| AIP(1 | AIP+2 |
| AIPNTE | AIPNTE~, AIPNTE+1 |
| AIPNTE( | AIPNTE+1* |
| AIS | AIS~, AIS+1 |
| AIS( | AIS+1* |
| AISNTE | AISNTE~, AISNTE+1 |
| AISNTE( | AISNTE+1* |
| CANCODE | SCH+1~, SCH+5*, SCH+8 |
| CL | APPTYPE~, APPTYPE+3 |
| CLINID | CHKAPT~, CHKAPT+3, CHKAPT+5, CHKAPT+7, RESLKUP~, RESLKUP+5, RESLKUP+6, RESLKUP+7 |
| CMP | PARSESEG+13~, PARSESEG+39*, PARSESEG+40, PARSESEG+43, PARSESEG+44 |
| CMPVAL | PARSESEG+14~, PARSESEG+40*, PARSESEG+41, PARSESEG+42, PARSESEG+44 |
| CNODE | GETAPT+1~, GETAPT+10* |
| CNT | RGS~, RGS+1, AIS~, AIS+1, AISNTE~, AISNTE+1, AIG~, AIG+1, AIGNTE~, AIGNTE+1 , AIL~, AIL+1, AILNTE~, AILNTE+1, AIP~, AIP+1, AIPNTE~, AIPNTE+1, VALIDMSG+17~, PARSEMSG+5~ , PARSEMSG+6*, PARSEMSG+8, PARSEMSG+9, LOADMSG+5~, LOADMSG+8*, LOADMSG+9, LOADMSG+10*, SENDERR+6*, SENDERR+7 |
| CONSDSC | SCH+1~ |
| CS | PARSESEG+22~, PARSESEG+28*, PARSESEG+39, PARSESEG+40 |
| DATA | PARSESEG~, PARSESEG+26!, PARSEMSG+5~, PARSEMSG+7, PARSEMSG+9 |
| DATA( | PARSESEG+43*, PARSESEG+44*, PARSESEG+45*, PARSESEG+46* |
| DATA(0 | PARSESEG+32*, PARSEMSG+9 |
| DFN | PID+2*, INP+6, INP+23, CHKAPT~, CHKAPT+2, CHKAPT+4, CHKAPT+7, GETAPT+8 |
| DT | MSH+3, SENDERR+3 |
| DUZ | SCH+21*, SCH+22*, SENDERR+3 |
| DUZ(2 | INP+9, SENDERR+3* |
| >> EIN | SENDERR+4, ACK+6 |
| ERR | SCH+7*, VALIDMSG~, VALIDMSG+18!, VALIDMSG+19*, SENDERR~, SENDERR+6, DUZ+1*, DUZ+2, ACK+5~, ACK+8* |
| >> ERRCND | ACK+10 |
| ERRTXT | SCH+7*, ERRLKP~, ERRLKP+2, ACK+1*, ACK+2*, ACK+10 |
| ERTX1 | ERRLKP+1~, ERRLKP+5*, ERRLKP+7 |
| ERTX2 | ERRLKP+1~, ERRLKP+6*, ERRLKP+7 |
| ERTXI | ERRLKP+1~, ERRLKP+4* |
| ERTXT | ERRLKP+1~, ERRLKP+2*, ERRLKP+7*, ERRLKP+9 |
| FLD | PARSESEG+15~, PARSESEG+35*, PARSESEG+36, PARSESEG+43, PARSESEG+44, PARSESEG+45, PARSESEG+46 |
| FLDVAL | PARSESEG+16~, PARSESEG+36*, PARSESEG+37, PARSESEG+38, PARSESEG+45, PARSESEG+46 |
| FOUNDCN | ACK+5~, ACK+8* |
| FS | PARSESEG+21~, PARSESEG+27*, PARSESEG+32, PARSESEG+33, PARSESEG+35, PARSESEG+36 |
| GMRDA | AIL+12~, AIL+13*, AIL+14, AIL+15, AIL+16 |
| HL | PARSESEG~, PARSEMSG~, PARSEMSG+7, LOADXMT~, SENDERR+4, SENDERR+6, ACK+6 |
| HL("APAT" | LOADXMT+19 |
| HL("ECH" | PARSESEG+28, PARSESEG+29, PARSESEG+30, LOADXMT+22, SENDERR+5*, ACK+7* |
| HL("EID" | LOADXMT+14*, SENDERR+9, ACK+11 |
| HL("EIDS" | LOADXMT+15*, LOADXMT+27, SENDERR+9, ACK+11 |
| HL("ETN" | LOADXMT+21 |
| HL("FS" | PARSESEG+27, LOADXMT+22, SENDERR+5*, ACK+7*, ACK+10 |
| HL("MID" | LOADXMT+17, SENDERR+6, ACK+9*, ACK+10 |
| HL("MTN" | LOADXMT+20 |
| HLA | ACK+5~ |
| HLA("HLA" | SENDERR+8*, ACK+10* |
| HLA("HLS" | SENDERR+7*, SENDERR+8 |
| >> HLMTIENS | SENDERR+9, ACK+11 |
| >> HLNEXT | LOADMSG+7 |
| >> HLNODE | LOADMSG+9 |
| >> HLNODE( | LOADMSG+10 |
| >> HLQUIT | LOADMSG+7 |
| HLRESLT | CHKLL+4~, CHKLL+5 |
| HLRESLT(0 | CHKLL+6 |
| INP | MSH~, SCH~, SCHNTE~, PID~, PV1~, OBX~, RGS~, AIS~, AISNTE~, AIG~ , AIGNTE~, AIL~, AILNTE~, AIP~, AIPNTE~, INP+2! |
| INP(1 | INP+5* |
| INP(10 | INP+15*, INP+17* |
| INP(11 | INP+21* |
| INP(12 | INP+22* |
| INP(13 | INP+24* |
| INP(14 | INP+27* |
| INP(15 | INP+28* |
| INP(16 | INP+29* |
| INP(17 | INP+30* |
| INP(18 | INP+32* |
| INP(19 | INP+35* |
| INP(2 | INP+6*, INP+34 |
| INP(22 | INP+36* |
| INP(23 | INP+37* |
| INP(25 | INP+39* |
| INP(26 | INP+41* |
| INP(28 | INP+40*, INP+41 |
| INP(3 | INP+7* |
| INP(4 | AIL+8*, INP+9* |
| INP(5 | INP+10* |
| INP(6 | AIL+4*, INP+11* |
| INP(7 | INP+12* |
| INP(8 | INP+13* |
| INP(9 | INP+16* |
| INPA | SENDERR+3~ |
| INPA(1 | SENDERR+3* |
| INPA(2 | SENDERR+3* |
| INPA(3 | SENDERR+3* |
| INPA(4 | SENDERR+3* |
| >> INTRA | AIL+17* |
| INTV | INP+1~, INP+4*, INP+28, ARSET+6* |
| >> IX | SENDERR+7* |
| LEN | SENDERR+6*, ACK+5~ |
| MSG | PARSEMSG+5~ |
| MSGARY | MSH~, SCH~, SCHNTE~, PID~, PV1~, AIS~, AIL~, AIP~, AIPNTE~ |
| MSGARY("DUZ" | SCH+21*, SCH+22* |
| MSGARY("EVENT" | SCH+4*, SCH+6, SCHNTE+2 |
| MSGARY("FACILITYIEN" | RGS+2* |
| MSGARY("HL7EVENT" | MSH+1* |
| MSGARY("HLTHISSITE" | MSH+2* |
| MSGARY("MPI" | PID+1*, PID+2 |
| MSGARY("PROVIEN" | AIP+2*, INP+15, INP+17 |
| MSGROOT | VALIDMSG~, PARSEMSG~, PARSEMSG+6, PARSEMSG+8, PARSEMSG+9, LOADMSG~, LOADMSG+6, LOADMSG+9, LOADMSG+10, SENDERR+1 , SENDERR+6, SENDERR+7, SENDERR+10, DUZ+3, ACK+4 |
| MSH | MSH~, VALIDMSG+16~ |
| MSH(5 | MSH+2 |
| MSH(8 | MSH+1 |
| MSH(9 | MSH+3 |
| >> MYRESULT | SENDERR+9, ACK+11 |
| NODE3 | INP+1~, INP+4* |
| >> NOW | INP+7* |
| NUMAPT | INP+1~, INP+4*, INP+29, ARSET+6* |
| OBX | OBX~ |
| ORDATE | INP+1~ |
| >> PCE | INP+23*, INP+24 |
| PID | PID~ |
| PID(3 | PID+1 |
| PSTA | GETSTA+1~*, GETSTA+2 |
| PV1 | PV1~ |
| QNAME | VALIDMSG+16~ |
| QPD | VALIDMSG+16~ |
| QRY | VALIDMSG~, VALIDMSG+18! |
| QTAG | VALIDMSG+16~ |
| RDF | VALIDMSG+16~ |
| REP | PARSESEG+17~, PARSESEG+37*, PARSESEG+38, PARSESEG+43, PARSESEG+44, PARSESEG+45 |
| REPVAL | PARSESEG+18~, PARSESEG+38*, PARSESEG+39, PARSESEG+40, PARSESEG+45 |
| REQID | VALIDMSG+16~ |
| >> REQIEN | SENDERR+3 |
| REQTYPE | VALIDMSG+16~ |
| RESP0 | LOADXMT+11~ |
| RESPIEN | LOADXMT+11~ |
| RET | CHKAPT~, CHKAPT+6*, CHKAPT+10*, CHKAPT+11, RESLKUP+3!, RESLKUP+4*, RESLKUP+5*, RESLKUP+6*, RESLKUP+9*, RESLKUP+10 , SENDERR+3~ |
| RET1 | RESLKUP+3!, RESLKUP+10*, RESLKUP+11 |
| RGS | RGS~, RGS+1 |
| RGS( | RGS+1* |
| RGS(1 | RGS+2 |
| RS | PARSESEG+23~, PARSESEG+29*, PARSESEG+37, PARSESEG+38, PARSESEG+45 |
| >> RTCID | SCH+25*, SCH+26* |
| SC0 | APPTYPE+2~, APPTYPE+3* |
| SCH | SCH~ |
| SCH(11 | SCH+14, SCH+15, INP+19 |
| SCH(13 | SCH+20, SCH+21 |
| SCH(16 | SCH+19 |
| SCH(24 | SCH+25 |
| SCH(5 | SCH+16, INP+18 |
| SCH(6 | SCH+3, SCH+4, SCH+5, SCH+10, SCH+23 |
| SCH(7 | SCH+25, SCH+26 |
| SCH(9 | SCH+12 |
| SCHEMAIL | SCH+20~, SCH+21* |
| SCHNTE | SCHNTE~ |
| SCHNTE(3 | SCHNTE+1, SCHNTE+2 |
| >> SCPERC | INP+33*, INP+34*, INP+35 |
| SCS | APPTYPE+2~, APPTYPE+3*, APPTYPE+4 |
| SCSPTR | APPTYPE+2~, APPTYPE+3* |
| SCXX | INP+31~*, INP+32 |
| >> SDAPTYP | SCH+2*, SCH+27*, SCH+30*, SCH+31*, AIL+15*, AIL+16*, AIL+18*, AIL+19*, INP+5, INP+14 |
| >> SDCHILD | SCH+25*, SCH+26*, SCH+27, SCH+28 |
| SDCL | AIL+5*, AIL+7, AIL+10, INP+11, GETAPT~, GETAPT+4, GETAPT+5, GETAPT+6, GETAPT+7, GETAPT+8 , GETAPT+9, GETAPT+10, GETAPT+11 |
| >> SDCL2 | AIL+6*, AIL+7 |
| >> SDCL3 | AIL+7* |
| >> SDDDT | SCH+15*, SCH+16*, AIL+14*, INP+18*, INP+19*, INP+20*, INP+21 |
| >> SDECATID | SCH+3* |
| >> SDECCR | SCH+5*, SCH+7, SCH+8*, SCH+9* |
| SDECI | STRIP+1~, STRIP+2* |
| >> SDECLEN | SCH+12* |
| >> SDECNOT | SCHNTE+2* |
| >> SDECNOTE | SCHNTE+1*, INP+22 |
| SDECSTART | SCH+17*, INP+20, GETAPT~, GETAPT+6, GETAPT+7, GETAPT+8, GETAPT+9, GETAPT+10, GETAPT+11 |
| >> SDECTYP | SCH+10* |
| SDECZ | STRIP~, STRIP+2*, STRIP+3 |
| >> SDMRTC | INP+25*, INP+26, INP+27 |
| >> SDMTC | SCH+28*, SCH+29*, INP+16 |
| >> SDPARENT | SCH+25*, SCH+29, INP+3*, INP+4, INP+31, INP+38, INP+39, INP+40, INP+41 |
| >> SDREQBY | SCH+19* |
| SDTYP | SCH+23~*, SCH+24, SCH+30*, SCH+31* |
| SEG | PARSESEG~, PARSESEG+32, PARSESEG+33*, PARSESEG+35, PARSESEG+36, PARSEMSG+5~, PARSEMSG+6*, LOADMSG+5~, LOADMSG+7*, LOADMSG+9 , LOADMSG+10 |
| SEG(0 | PARSEMSG+7 |
| SEG(1 | PARSEMSG+10 |
| SEGTYPE | VALIDMSG+17~ |
| SNODE | GETAPT+1~, GETAPT+9* |
| SS | PARSESEG+24~, PARSESEG+30*, PARSESEG+41, PARSESEG+42 |
| STA | SENDERR+3, GETSTA~, GETSTA+1*, GETSTA+2 |
| STATUS | CHKAPT+1~, CHKAPT+6*, CHKAPT+8, CHKAPT+9*, CHKAPT+10* |
| STCREC | AIL+2~, AIL+3*, AIL+10 |
| STOP | ARSET+2*, ARSET+3, ARSET+4, RESLKUP+2~, RESLKUP+7*, RESLKUP+8, RESLKUP+9*, GETAPT+1~, GETAPT+2*, GETAPT+12* , GETAPT+13 |
| SUB | PARSESEG+19~, PARSESEG+41*, PARSESEG+42, PARSESEG+43 |
| SUBPROT | LOADXMT+11~, LOADXMT+27* |
| SUBVAL | PARSESEG+20~, PARSESEG+42*, PARSESEG+43 |
| TM | SCH+1~, SCH+14*, SCH+17 |
| TMM | SCH+1~ |
| U | MSH+3, AIL+10, INP+23, INP+40, INP+41, APPTYPE+3, GETSTA+1 |
| URL | GETAPT~, GETAPT+3, GETAPT+11 |
| X | ARSET~, ARSET+3, ARSET+4, ARSET+5, ARSET+6, ERRLKP+1~, ERRLKP+4*, ERRLKP+5, ERRLKP+6, CHKLL~ , CHKLL+5, CHKLL+6*, CHKLL+8 |
| X11 | INP+14~*, INP+16 |
| XMT | VALIDMSG~, LOADXMT~ |
| XMT("DELIM" | LOADXMT+22* |
| XMT("EVENT TY | PE" , LOADXMT+21* |
| XMT("MAX SIZE | " , LOADXMT+24* |
| XMT("MESSAGE | TYPE" , LOADXMT+20* |
| XMT("MID" | LOADXMT+17* |
| XMT("MODE" | LOADXMT+18*, LOADXMT+19* |
| XSDDDT | AIL+12~, AIL+14* |
| XSP | ERRLKP+1~, ERRLKP+3*, ERRLKP+4, ERRLKP+7* |
| XX | CHKAPT+1~, CHKAPT+7*, CHKAPT+9, CHKAPT+10, RESLKUP+2~, RESLKUP+7*, RESLKUP+9, GETAPT+1~, GETAPT+7*, GETAPT+8 , GETAPT+9, GETAPT+10, GETAPT+11 |
| Name | Field # of Occurrence |
|---|---|
| $T(ERRS+ERTXI | ERRLKP+4 |