SDCCRCOR ;CCRA/LB,PB - Core Tags;APR 4, 2019
Source file <SDCCRCOR.m>
| Package | Total | Call Graph |
|---|---|---|
| Scheduling | 4 | ($$DATALKUP,$$INSTRING,ACK)^SDCCRCOR $$APTNODEP^SDCCRGAP $$GET^SDCCRSCU $$SETEVENT^SDCCRSEN |
| Kernel | 3 | ($$FMADD,$$FMTE,$$FMTHL7,$$HL7TFM)^XLFDT ($$LOW,$$STRIP)^XLFSTR $$KSP^XUPARAM |
| VA FileMan | 3 | (,$$FIND1)^DIC $$GET1^DIQ $$UTC^DIUTC |
| Health Level Seven | 2 | $$FMDATE^HLFNC GENACK^HLMA1 |
| MailMan | 1 | ^XMD |
| 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 |
|---|---|---|
| HL72VATS(HL7TS) | ; Converts HL7 formatted timestamps to VA format
; HL7TS - date/time stamp in 24H HL7 format (YYYYMMDDHHMMSS) |
|
| VA2HL7TS(VATS) | ; Converts VA formatted timestamps to HL7 format
; VATS - date/time stamp in VA format (YYYMMDD.HHMMSS) |
|
| GETPTIEN(PATNAME) | ; Returns patient ID or null, name must be perfect match
; PATNAME - Patient name - must be exact LAST,FIRST |
|
| GETPTNM(DFN) | ; Returns patient name from ^DPT global, given a valid DFN
; DFN - Patient ID to look for |
|
| GETLCIEN(LOCNAME) | ; Returns Location ID or null, name must be perfect match
; PATNAME - Location name - must be exact |
|
| GETLCNM(LOCID) | ; Returns location name from clinic file 44 given a valid clinic IEN
; LOCID - Location ID to look for |
|
| GETNMPRV(CLINIC) | ; Returns the number of providers associated with a clinic
; CLINIC - The Clinic IEN (first piece of DPT 0 node) |
|
| GETCNGNM(CLINICGROUP) | ; Returns the Name of a Clinic's group
; CLINICGROUP - The Clinic Group IEN |
|
| GETPRVNM(PROVIEN) | ; Returns the provider name, given a provider ID
; PROVIEN - The Provider IEN |
|
| ICLNDPRV(CLINIC,PROVIEN) | ; Determines if the provider is the default provider for the clinic
; CLINIC - The Clinic IEN (first piece of DPT 0 node) ; PROVIEN - The Provider IEN |
|
| CLNPVIND(CLINIC,PROVIEN) | ; Determines the line number the provider is listed on for a clinic
; CLINIC - The Clinic IEN (first piece of DPT 0 node) ; PROVIEN - The Provider IEN |
|
| GTCANRSN(PATIENTIEN,APPTDT) | ; Returns the discrete cancellation reason
; PATIEN (I,REQ)- Patient ID as in DPT(PATIEN,"S",APPTDAT ; APPTDAT (I,REQ) - Appointment date |
|
| GTCNRNTP(PATIENTIEN,APPTDT) | ; Gets the cancelation reason type.
; PATIEN - Patient ID as in DPT(PATIEN,"S",APPTDAT ; APPTDAT - Appointment date |
|
| ORD2CONS(ORDERID) | ;Returns the consult ID linked to the given order
; ORDERID - Order ID |
|
| INSTRING(VALUE,LIST,DELIM) | ; compare a string value to see if it is a list given a particular delimiter
; VALUE - value to find in the list. ; LIST - The list to check ; DELIM - Delimiter that separates the data in the list. Default = "," |
|
| INITINC | ; Sets temp global that indicates this process is filing an incoming message
|
|
| DONEINC | ; Clears temp global that indicates this process is filing an incoming message
|
|
| INCINTF() | ; Checks temp global that indicates whether the process is filing an incoming message
|
|
| SETMSGET() | ||
| FMTPHONE(PHONE,EXT) | ; Formats a VistA telephone number into an HL7-compliant format
; Formats include: (nnn)nnn-nnnn and nnn-nnnn, depending on whether or not there is an area code. ; If the number is not in a valid format, does not attempt to do any formatting. ; Returns 1 if the number was formatted, 0 otherwise. |
|
| GETLEN(SCH,AIP,AIG) | ;Translates duration into Minutes. Assumes minutes unless set to S or SEC for the units
; Only one parameter at a time should be passed-in, depending on what segment is calling this tag ; SCH (I/OPT) - SCH message segment data ; AIP (I/OPT) - AIP message segment data ; AIG (I/OPT) - AIG message segment data |
|
| COPYMSG(Y) | ; Copy HL7 Message to array Y (by reference)
; Based on HL*1.6*56 VISTA HL7 Site Manager & Developer Manual ; Paragraph 9.7, page 9-4 |
|
| CHKMSG(Y) | ; Check Message for all required segments
|
|
| DATALKUP(SEG,FILE,FILEPATH,FIELD,ERRCODE,ERRTEXT) | ; Translates a data element for a given FileMan file in an HL7 field
|
|
| ACK(STAT,MID,SID,SEG,FLD,CD,TXT,ACKTYP) | ; Creates ACKs for HL7 Message
|
|
| APPMSG(MSGID,ABORT) | ; Send a MailMan Message with the errors
|
|
| MESSAGE(MSGID,ABORT) | ; Send a MailMan Message with the errors
|
|
| ANAK(NAKMSG,USERMAIL,ICN,DFN,APTTM,CONID) | ; Application Error
|
|
| INT | ;
|
|
| TIMES(APPTTIME,SITECODE) | ; convert/calculate appt times
|
|
| DSTTEST(YR,CHKDT) | ;
|
|
| GETRSN(SCH) | ; Collects appointment reason and translates into internal format.
|
|
| GETTYPE(OBX) | ;translates appointment type into internal format
|
|
| GETUSER(SCH) | ;collects appointment entered by user and confirms they are a user in the 200 file
|
|
| DSTTABLE | ;
|
| Name | Field # of Occurrence |
|---|---|
| ^DIC | DATALKUP+17, DATALKUP+20 |
| $$FIND1^DIC | GETUSER+3 |
| $$GET1^DIQ | GETLCNM+2, DATALKUP+22, ANAK+10, ANAK+11, ANAK+12, TIMES+7 |
| $$UTC^DIUTC | TIMES+11, TIMES+13 |
| $$FMDATE^HLFNC | APPMSG+2, MESSAGE+3 |
| GENACK^HLMA1 | ACK+52, ANAK+21 |
| $$DATALKUP^SDCCRCOR | GETRSN+3, GETTYPE+3 |
| $$INSTRING^SDCCRCOR | FMTPHONE+19, GETLEN+19 |
| ACK^SDCCRCOR | DATALKUP+24 |
| $$APTNODEP^SDCCRGAP | GTCANRSN+3, GTCNRNTP+4 |
| $$GET^SDCCRSCU | GETLEN+7, GETLEN+9, GETLEN+11, GETLEN+13, GETLEN+15, DATALKUP+13, DATALKUP+14 |
| $$SETEVENT^SDCCRSEN | CHKMSG+22 |
| $$FMADD^XLFDT | TIMES+11, TIMES+14 |
| $$FMTE^XLFDT | APPMSG+2, APPMSG+8, MESSAGE+3 |
| $$FMTHL7^XLFDT | VA2HL7TS+2 |
| $$HL7TFM^XLFDT | HL72VATS+2, TIMES+6, TIMES+8 |
| $$LOW^XLFSTR | MESSAGE+12 |
| $$STRIP^XLFSTR | FMTPHONE+12 |
| ^XMD | APPMSG+13, MESSAGE+17 |
| $$KSP^XUPARAM | ANAK+13 |
| Name | Line Occurrences |
|---|---|
| Function Call: WRITE |
|
| Routine Call |
|
| Routine Call |
|
| FileNo | Call Tags |
|---|---|
| ^GMR(123 - [#123] | GET1^DIQ |
| ^VA(200 - [#200] | FIND1^DIC |
| ^DIC(4 - [#4] | GET1^DIQ |
| ^SC - [#44] | GET1^DIQ |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^DD("DD" | TIMES+17 |
| ^DIC(4 - [#4] | TIMES+7 |
| ^DPT - [#2] | GETPTNM+4, GETPTNM+5, ANAK+14 |
| ^DPT("B" | GETPTIEN+4, GETPTIEN+5 |
| ^OR(100 - [#100] | ORD2CONS+4 |
| ^SC - [#44] | GETNMPRV+2, ICLNDPRV+3, CLNPVIND+3 |
| ^SC("B" | GETLCIEN+4, GETLCIEN+5 |
| ^SD(409.2 - [#409.2] | GTCANRSN+3, GTCNRNTP+5 |
| ^SD(409.67 - [#409.67] | GETCNGNM+2 |
| ^TMP($J | INITINC+1*, DONEINC+1!, INCINTF+1 |
| ^VA(200 - [#200] | GETPRVNM+2 |
| Name | Line Occurrences |
|---|---|
| $$CLNPVIND | ICLNDPRV+3 |
| $$DSTTEST | TIMES+9 |
| ACK | GETLEN+8, GETLEN+12, GETLEN+16, CHKMSG+11, CHKMSG+18, CHKMSG+26, CHKMSG+32 |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| ABORT | GETLEN+8*, GETLEN+12*, GETLEN+16*, CHKMSG+12*, CHKMSG+19*, CHKMSG+27*, CHKMSG+33*, APPMSG~, MESSAGE~, MESSAGE+2 , MESSAGE+5, MESSAGE+10 |
| ACKTYP | ACK~, ACK+37, ACK+41 |
| AIG | GETLEN~, GETLEN+14, GETLEN+15 |
| AIP | GETLEN~, GETLEN+10, GETLEN+11, GETLEN+13 |
| APPT | TIMES+1~, TIMES+2*, TIMES+11*, TIMES+14*, TIMES+15*, TIMES+16, TIMES+17*, TIMES+19 |
| APPTDT | GTCANRSN~, GTCANRSN+3, GTCNRNTP~, GTCNRNTP+4 |
| APPTTIME | TIMES~, TIMES+4, TIMES+6, TIMES+8 |
| APPTTYPE | GETTYPE+2~, GETTYPE+3*, GETTYPE+4*, GETTYPE+5 |
| APTTM | ANAK~, ANAK+8, ANAK+19 |
| CANTYPE | GTCNRNTP+3~, GTCNRNTP+4*, GTCNRNTP+5 |
| CD | ACK~, ACK+20*, ACK+38, ACK+43 |
| CHKDT | DSTTEST~, DSTTEST+4, DSTTEST+7 |
| CLINIC | GETNMPRV~, GETNMPRV+2, ICLNDPRV~, ICLNDPRV+3, CLNPVIND~, CLNPVIND+3 |
| CLINICGROUP | GETCNGNM~, GETCNGNM+2 |
| CNSLTLNK | ORD2CONS+2~, ORD2CONS+4*, ORD2CONS+5 |
| CONID | MESSAGE+4, ANAK~, ANAK+9, ANAK+10, ANAK+11, ANAK+19 |
| CONPAT | ANAK+1~, ANAK+10*, ANAK+11, ANAK+12, ANAK+14 |
| >> CONSULTID | APPMSG+3, APPMSG+5 |
| >> CONTITLE | APPMSG+6 |
| CS | CHKMSG+14, CHKMSG+16, CHKMSG+22, CHKMSG+24, ACK+10~, ACK+12*, ACK+33, ACK+38, ACK+43, ANAK+1~ , ANAK+3*, INT+4* |
| DATA | DATALKUP+11~, DATALKUP+12*, DATALKUP+17*, DATALKUP+18, DATALKUP+20*, DATALKUP+21, DATALKUP+22*, DATALKUP+23 |
| DATE | APPMSG+1~, APPMSG+2*, MESSAGE+1~, MESSAGE+3*, MESSAGE+8 |
| DATES | DSTTEST+1~, DSTTEST+6*, DSTTEST+7 |
| DELIM | INSTRING~, INSTRING+4 |
| DFN | GETPTNM~, GETPTNM+3, GETPTNM+4, GETPTNM+5, CHKMSG+1~, ANAK~, ANAK+12 |
| DIC | DATALKUP+11~, DATALKUP+17*, DATALKUP+20* |
| DIC(0 | DATALKUP+17*, DATALKUP+20* |
| DIFROM | APPMSG+1~, MESSAGE+1~ |
| DSTFL | TIMES+9*, TIMES+14, TIMES+18! |
| DURATION | GETLEN+5~, GETLEN+7*, GETLEN+8, GETLEN+11*, GETLEN+12, GETLEN+15*, GETLEN+16, GETLEN+19*, GETLEN+20 |
| DUZ | APPMSG+1~, MESSAGE+1~, INT+2* |
| EID | ACK+10~, ACK+24*, ACK+26, ACK+52, ANAK+1~, ANAK+16*, ANAK+21 |
| EIDS | ACK+10~, ACK+25*, ACK+26, ACK+52, ANAK+1~, ANAK+17*, ANAK+21 |
| ERRARY | ACK+31! |
| ERRARY( | ACK+46*, ACK+48*, ACK+49* |
| ERRCODE | DATALKUP~, DATALKUP+24 |
| ERRI | ACK+10~, ACK+42*, ACK+45*, ACK+46, ACK+48, ACK+49 |
| ERRMSG | CHKMSG+1~, CHKMSG+16*, CHKMSG+17*, CHKMSG+18, CHKMSG+19, CHKMSG+24*, CHKMSG+25*, CHKMSG+26, CHKMSG+27 |
| ERRTEXT | DATALKUP~, DATALKUP+24 |
| ES | ACK+10~, ACK+14*, ANAK+1~, ANAK+5*, INT+6* |
| EXP | TIMES+2*, TIMES+7*, TIMES+18! |
| EXP1 | TIMES+7*, TIMES+10, TIMES+12, TIMES+18! |
| EXT | FMTPHONE~, FMTPHONE+14* |
| FIELD | DATALKUP~, DATALKUP+10, DATALKUP+13, DATALKUP+14 |
| FILE | DATALKUP~, DATALKUP+10, DATALKUP+22 |
| FILEPATH | DATALKUP~, DATALKUP+17, DATALKUP+20 |
| FLD | ACK~, ACK+20*, ACK+33 |
| FLG1 | MESSAGE+1~, MESSAGE+5*, MESSAGE+12 |
| FMDTTM | TIMES+3!, TIMES+8*, TIMES+9, TIMES+11, TIMES+14, TIMES+15 |
| FS | CHKMSG+9, CHKMSG+14, CHKMSG+16, CHKMSG+17, CHKMSG+22, CHKMSG+24, CHKMSG+25, CHKMSG+29, ACK+10~, ACK+11* , ACK+23, ACK+33, ACK+34, ACK+38, ACK+43, ANAK+1~, ANAK+2*, INT+3* |
| >> HDRTIME | CHKMSG+29* |
| >> HL("DTM" | APPMSG+2, MESSAGE+3 |
| >> HL("ECH" | ACK+12, ACK+13, ACK+14, ACK+15, ANAK+3, ANAK+4, ANAK+5, ANAK+6, INT+4, INT+5 , INT+6, INT+7 |
| >> HL("EID" | ACK+24, ANAK+16 |
| >> HL("EIDS" | ACK+25, ANAK+17 |
| >> HL("FS" | ACK+11, ANAK+2, INT+3 |
| >> HL("MID" | ANAK+18, INT+8 |
| HL7TS | HL72VATS~, HL72VATS+2 |
| HLA | ACK+10~ |
| HLA("HLA" | ACK+23*, ACK+32*, ACK+33*, ACK+34*, ACK+38*, ACK+43*, ACK+46, ACK+47, ACK+48, ACK+49 , ANAK+19* |
| >> HLMTIENS | ACK+26, ACK+52, ANAK+21 |
| >> HLNEXT | COPYMSG+3, COPYMSG+6 |
| >> HLNODE | COPYMSG+7, INT+9* |
| >> HLNODE( | COPYMSG+8, COPYMSG+9 |
| >> HLQUIT | COPYMSG+6, INT+9* |
| HSRMOFFSET | TIMES+3! |
| HSRMOFFSET1 | TIMES+3!, TIMES+8*, TIMES+11, TIMES+14, TIMES+15 |
| I | COPYMSG+5~, COPYMSG+6*, COPYMSG+7, COPYMSG+9, CHKMSG+1~, CHKMSG+4*, CHKMSG+5*, CHKMSG+6, CHKMSG+9, CHKMSG+14 , CHKMSG+16, CHKMSG+17, CHKMSG+22, CHKMSG+24, CHKMSG+25, CHKMSG+29, DSTTEST+1~, DSTTEST+6* |
| ICN | CHKMSG+1~, ANAK~, ANAK+14*, ANAK+15*, ANAK+19 |
| ID | DATALKUP+11~, DATALKUP+13*, DATALKUP+15, DATALKUP+19, DATALKUP+20, DATALKUP+22 |
| IEN | GETPTIEN+2~, GETPTIEN+5*, GETPTIEN+6, GETLCIEN+2~, GETLCIEN+5*, GETLCIEN+6 |
| J | COPYMSG+5~, COPYMSG+7*, COPYMSG+8*, COPYMSG+9, APPMSG+1~, MESSAGE+1~ |
| LENGTH | FMTPHONE+9~, FMTPHONE+18*, FMTPHONE+19, FMTPHONE+20, FMTPHONE+21 |
| LIST | INSTRING~, INSTRING+4 |
| LOCID | GETLCNM~, GETLCNM+2 |
| LOCNAME | GETLCIEN~, GETLCIEN+3, GETLCIEN+4, GETLCIEN+5 |
| MID | GETLEN+8, GETLEN+12, GETLEN+16, CHKMSG+11, CHKMSG+18, CHKMSG+26, CHKMSG+32, DATALKUP+24, ACK~, ACK+19* , ACK+23, INT+8* |
| >> MSGARY | CHKMSG+22 |
| MSGEVN | CHKMSG+1~, CHKMSG+22* |
| MSGID | APPMSG~, MESSAGE~, MESSAGE+9 |
| MSGN | ANAK+1~, ANAK+18*, ANAK+19 |
| MSGTEXT | APPMSG+1~, MESSAGE+1~ |
| MSGTEXT(1 | APPMSG+4*, MESSAGE+6* |
| MSGTEXT(2 | APPMSG+5*, MESSAGE+7* |
| MSGTEXT(3 | APPMSG+6*, MESSAGE+8* |
| MSGTEXT(4 | APPMSG+7*, MESSAGE+9* |
| MSGTEXT(5 | APPMSG+8*, MESSAGE+10* |
| MSGTEXT(6 | MESSAGE+12* |
| NAKMSG | ANAK~, ANAK+7, ANAK+19 |
| OBX | GETTYPE~, GETTYPE+3 |
| OFFSET | TIMES+3!, TIMES+11*, TIMES+14* |
| OFFSET1 | TIMES+11*, TIMES+13*, TIMES+14, TIMES+15, TIMES+18! |
| ORDERID | ORD2CONS~, ORD2CONS+3, ORD2CONS+4 |
| >> P694 | TIMES+17 |
| PATIENTIEN | GTCANRSN~, GTCANRSN+3, GTCNRNTP~, GTCNRNTP+4 |
| PATNAME | GETPTIEN~, GETPTIEN+3, GETPTIEN+4, GETPTIEN+5, GETPTNM+2~, GETPTNM+5*, GETPTNM+6, ANAK+1~, ANAK+11*, ANAK+12* , ANAK+19 |
| PHONE | FMTPHONE~, FMTPHONE+8, FMTPHONE+12, FMTPHONE+24* |
| >> PROVIDER | APPMSG+8 |
| PROVIEN | GETPRVNM~, GETPRVNM+2, ICLNDPRV~, ICLNDPRV+3, CLNPVIND~, CLNPVIND+3 |
| QUIT | CHKMSG+1~, CHKMSG+2*, CHKMSG+3, CHKMSG+10*, CHKMSG+13, CHKMSG+15*, CHKMSG+20, CHKMSG+23*, CHKMSG+28, CHKMSG+31* , CHKMSG+34 |
| REQSEG | CHKMSG+1~, CHKMSG+3*, CHKMSG+7, CHKMSG+32, CHKMSG+33 |
| RES | ACK+10~, ACK+28*, ACK+52, ANAK+21 |
| >> RESULTS | INT+1* |
| RS | ACK+10~, ACK+13*, ANAK+1~, ANAK+4*, INT+5* |
| RTN | DSTTEST+1~, DSTTEST+2*, DSTTEST+7*, DSTTEST+8 |
| SCH | GETLEN~, GETLEN+6, GETLEN+7, GETLEN+9, GETRSN~, GETRSN+3, GETUSER~, GETUSER+2, GETUSER+3 |
| >> SDECSTART | APPMSG+8 |
| SEG | DATALKUP~, DATALKUP+13, DATALKUP+14, ACK~, ACK+19*, ACK+33 |
| SEGFND | CHKMSG+1~, CHKMSG+4*, CHKMSG+5, CHKMSG+7*, CHKMSG+30 |
| SEGTYP | CHKMSG+1~, CHKMSG+6*, CHKMSG+7, CHKMSG+8 |
| SID | ACK~, ACK+19*, ACK+30, ACK+33 |
| SITE | ANAK+1~, ANAK+13*, ANAK+19 |
| SITECODE | TIMES~, TIMES+5, TIMES+7*, TIMES+11, TIMES+13 |
| >> SRVNAMEX | APPMSG+7 |
| SS | ACK+10~, ACK+15*, ANAK+1~, ANAK+6*, INT+7* |
| >> STARTFM | TIMES+16* |
| STAT | ACK~, ACK+16*, ACK+19*, ACK+23 |
| TEMP | FMTPHONE+9~, FMTPHONE+12*, FMTPHONE+13*, FMTPHONE+14, FMTPHONE+15*, FMTPHONE+18, FMTPHONE+20*, FMTPHONE+21*, FMTPHONE+24 |
| TITLE | DATALKUP+11~, DATALKUP+14*, DATALKUP+15, DATALKUP+17 |
| TXT | ACK~, ACK+20*, ACK+23, ACK+38, ACK+43 |
| UNIT | GETLEN+5~, GETLEN+9*, GETLEN+13*, GETLEN+19 |
| >> USER | GETUSER+3*, GETUSER+4*, GETUSER+5 |
| USERMAIL | MESSAGE+10, MESSAGE+12, ANAK~, ANAK+19 |
| UTCAPTTM | TIMES+3! |
| VAL | GTCNRNTP+3~, GTCNRNTP+5*, GTCNRNTP+6 |
| VALUE | INSTRING~, INSTRING+4 |
| VATS | VA2HL7TS~, VA2HL7TS+2 |
| X | DATALKUP+11~, DATALKUP+17*, DATALKUP+20* |
| XMDUZ | APPMSG+1~, APPMSG+10*, APPMSG+11*, MESSAGE+1~, MESSAGE+14*, MESSAGE+15* |
| XMMG | APPMSG+1~, MESSAGE+1~ |
| XMROU | APPMSG+1~, MESSAGE+1~ |
| XMSTRIP | APPMSG+1~, MESSAGE+1~ |
| XMSUB | APPMSG+1~, APPMSG+3*, MESSAGE+1~, MESSAGE+4* |
| XMTEXT | APPMSG+1~, APPMSG+9*, MESSAGE+1~, MESSAGE+13* |
| XMY | APPMSG+1~, MESSAGE+1~ |
| XMY("G.GMRC H | SRM SIU HL7 MESSAGES" , APPMSG+12*, MESSAGE+16* |
| XMYBLOB | APPMSG+1~, MESSAGE+1~ |
| XMZ | APPMSG+1~, MESSAGE+1~ |
| XOUT | TIMES+3!, TIMES+6*, TIMES+11, TIMES+13 |
| Y | COPYMSG~, CHKMSG~, DATALKUP+11~, DATALKUP+17, DATALKUP+20, TIMES+3!, TIMES+17* |
| Y( | COPYMSG+7*, COPYMSG+9*, CHKMSG+5, CHKMSG+6, CHKMSG+9, CHKMSG+14, CHKMSG+16, CHKMSG+17, CHKMSG+22, CHKMSG+24 , CHKMSG+25, CHKMSG+29 |
| YR | TIMES+6*, TIMES+9, DSTTEST~, DSTTEST+3, DSTTEST+6 |
| Name | Field # of Occurrence |
|---|---|
| $T(DSTTABLE+I | DSTTEST+6 |