PSOERX1A ;ALB/BWF - eRx Utilities/RPC's ; 8/3/2016 5:14pm
Source file <PSOERX1A.m>
Package | Total | Call Graph |
---|---|---|
Outpatient Pharmacy | 17 | ($$MATCHSUG,CMPPAT)^PSOERPT1 ($$MATCHSUG,CMPPRV)^PSOERPV1 INIT^PSOERSE1 SAVEDRUG^PSOERUT2 $$MATCHSUG^PSOERUT4 EN^PSOERX1 (AUTOHOLD,DUPVPAT)^PSOERX1E (EN,INIT)^PSOERXD1 DERX1^PSOERXD2 (EN,INIT)^PSOERXP1 (EN,INIT)^PSOERXR1 UPDSTAT^PSOERXU1 $$GETPAT^PSOERXU5 $$RXEPRMT^PSOERXU7 $$VADEA^PSOERXU8 $$CHVAELIG^PSOERXU9 ($$DONOTFIL,$$VALPTADD,AUDLOG,PRDRVAL)^PSOERXUT |
VA FileMan | 5 | (C,NOW)^%DTC ^DIC (FILE,UPDATE)^DIE ($$GET1,GETS)^DIQ ^DIR |
Registration | 2 | ^DPTLK DEM^VADPT |
Adverse Reaction Tracking | 1 | EN1^GMRADPT |
Kernel | 1 | $$UP^XLFSTR |
List Manager | 1 | (FULL,PAUSE)^VALM1 |
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 |
---|---|---|
SI | ;
|
|
SBN | ;
|
|
L(DFN,DIS,SILENT) | ; Locks an eRx Patient
; Input: DFN - Pointer to eRx Patient (Pointer to #52.46) ; DIS - Display name of the user currently locking the record ; (o)SILENT - 1: Silent call - Nothing displayed back | 0: Display information about the Lock on the screen |
|
UL(DFN) | ; unlock
|
|
R() | ; check lock on node
|
|
PDATE() | ;
|
|
WHO(DFN) | ;
|
|
ADDITEM(TEXT,HDR,DATA,STRT,LEN) | ;
|
|
PROV | ;
|
|
PAT | ;
|
|
DRUG | ;
|
|
EDIT(EDTYP,SBN) | ;
|
|
VPROV | ;
|
|
PRVWARN(ACTION,PSOIEN,VAPIEN) | ; Check whether the Provider Select is valid or not
; Input:(r)ACTION - Ation being peformed ("EP": Edit Provider | "VP": Validate Provider) ; (r)PSOIEN - Pointer to the ERX HOLDING QUEUE file (#52.49) ; (r)VAPIEN - Provider -Pointer to the NEW PERSON file (#200) |
|
CHKPRV2(Y) | ;
|
|
PLSTRNG(LOW,HIGH,EDIT,SBN) | ;
|
|
VPAT | ;
|
|
PATWARN(ACTION,PSOIEN,SELPAT) | ; Check whether the Patient Select is valid or not
; Input:(r)ACTION - Ation being peformed ("EP": Edit Patient | "VP": Validate Patient) ; (r)PSOIEN - Pointer to the ERX HOLDING QUEUE file (#52.49) ; (r)SELPAT - Patient -Pointer to the PATIENT file (#2) |
Name | Field # of Occurrence |
---|---|
C^%DTC | PDATE+1 |
NOW^%DTC | L+17, R+7 |
^DIC | VPROV+32 |
FILE^DIE | VPROV+50, VPAT+44 |
UPDATE^DIE | L+19, R+9 |
$$GET1^DIQ | SI+9, SBN+7, L+7, L+9, R+2, PROV+3, PROV+4, PROV+7, PAT+3, PAT+4 , PAT+7, DRUG+3, DRUG+4, DRUG+7, EDIT+2, EDIT+7, VPROV+3, VPROV+5, VPROV+6, VPROV+12 , VPROV+13, VPROV+14, VPROV+15, VPROV+16, VPROV+41, VPROV+49, PRVWARN+6, PRVWARN+7, PRVWARN+8, PLSTRNG+5 , VPAT+3, VPAT+5, VPAT+6, VPAT+7, VPAT+8, VPAT+9, VPAT+10, VPAT+11, VPAT+12, VPAT+16 , VPAT+36, VPAT+43, VPAT+50, VPAT+59, PATWARN+6, PATWARN+8, PATWARN+9, PATWARN+10, PATWARN+11, PATWARN+14 , PATWARN+22 |
GETS^DIQ | VPROV+8 |
^DIR | SI+3, SI+13, SBN+11, EDIT+9, VPROV+24, VPROV+37, PLSTRNG+11, PLSTRNG+16, PLSTRNG+20, PLSTRNG+49 , VPAT+19, VPAT+31 |
^DPTLK | VPAT+26 |
EN1^GMRADPT | VPAT+56, PATWARN+29 |
$$MATCHSUG^PSOERPT1 | VPAT+21 |
CMPPAT^PSOERPT1 | VPAT+28 |
$$MATCHSUG^PSOERPV1 | VPROV+27 |
CMPPRV^PSOERPV1 | VPROV+34 |
INIT^PSOERSE1 | PROV+9, PAT+9, DRUG+9 |
SAVEDRUG^PSOERUT2 | EDIT+16 |
$$MATCHSUG^PSOERUT4 | EDIT+13 |
EN^PSOERX1 | SI+10, SI+14, SI+17, SBN+8, SBN+12, SBN+15 |
AUTOHOLD^PSOERX1E | VPAT+52, VPAT+61 |
DUPVPAT^PSOERX1E | PATWARN+17 |
EN^PSOERXD1 | DRUG+8 |
INIT^PSOERXD1 | EDIT+17, EDIT+25 |
DERX1^PSOERXD2 | EDIT+22 |
EN^PSOERXP1 | PAT+8 |
INIT^PSOERXP1 | EDIT+26 |
EN^PSOERXR1 | PROV+8 |
INIT^PSOERXR1 | EDIT+27 |
UPDSTAT^PSOERXU1 | VPROV+53, VPROV+54, VPROV+55, VPROV+56, VPAT+49, VPAT+58, VPAT+64, VPAT+65, VPAT+66, VPAT+67 , VPAT+68, VPAT+69 |
$$GETPAT^PSOERXU5 | SI+8, SBN+6 |
$$RXEPRMT^PSOERXU7 | PROV+5, PROV+6, PAT+5, PAT+6, DRUG+5, DRUG+6 |
$$VADEA^PSOERXU8 | VPROV+41 |
$$CHVAELIG^PSOERXU9 | VPAT+47, PATWARN+26 |
$$DONOTFIL^PSOERXUT | PROV+1, PAT+1, DRUG+1 |
$$VALPTADD^PSOERXUT | PATWARN+22 |
AUDLOG^PSOERXUT | VPROV+42, VPAT+37 |
PRDRVAL^PSOERXUT | PRVWARN+9 |
DEM^VADPT | VPAT+35, PATWARN+20 |
FULL^VALM1 | SI+2, SBN+2, PROV+1, PAT+1, DRUG+1, EDIT+3 |
PAUSE^VALM1 | VPAT+51, VPAT+60 |
$$UP^XLFSTR | PLSTRNG+25 |
Name | Line Occurrences |
---|---|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Routine Call |
|
Routine Call |
|
Routine Call |
|
Routine Call |
|
FileNo | Call Tags |
---|---|
^DPT - [#2] | GET1^DIQ |
^VA(200 - [#200] | GET1^DIQ |
^PS(52.46 - [#52.46] | GET1^DIQ |
^PS(52.48 - [#52.48] | GETS^DIQ |
^PS(52.49 - [#52.49] | GET1^DIQ |
^PS(59.7 - [#59.7] | GET1^DIQ |
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^DD("DD" | R+10, WHO+1 |
^PS(52.49 - [#52.49] | PLSTRNG+6 |
^VA(200 - [#200] | R+10, WHO+2, CHKPRV2+2 |
^XTMP("PSOERXLOCK" | L+6*, L+9, L+11, L+12, L+14, L+15, L+17*, L+20, UL+2!, R+5 , R+6, R+7*, R+10, WHO+1, WHO+2 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
% | SI+16!, SI+18!, SBN+14!, SBN+17!, L+17, R+7 |
ACTION | PRVWARN~, PRVWARN+9, PATWARN~, PATWARN+24, PATWARN+27, PATWARN+30 |
DATA | ADDITEM~, ADDITEM+2 |
DFN | L~, L+9, L+11, L+12, L+14, L+15, L+17, L+18, L+20, UL~ , UL+2, R+5, R+6, R+7, R+8, R+10, WHO~, WHO+1, WHO+2, VPAT+1~ , VPAT+35*, VPAT+56*, PATWARN+20*, PATWARN+26 |
DIC | VPROV+30!*, VPAT+1~, VPAT+24!* |
DIC("A" | VPROV+30*, VPAT+24* |
DIC("S" | VPROV+30*, VPAT+24* |
DIC("W" | VPROV+31*, VPAT+25* |
DIC(0 | VPROV+30*, VPAT+24* |
>> DILOCKTM | L+7, R+3 |
DIR | SI+1~, SI+13!, SBN+1~, SBN+11!, EDIT+1~, VPROV+21!, PLSTRNG+1~, PLSTRNG+11!, PLSTRNG+16!, PLSTRNG+20! , PLSTRNG+49!, VPAT+1~, VPAT+16!, VPAT+24!, VPAT+51!, VPAT+60! |
DIR("?" | PLSTRNG+9* |
DIR("A" | VPROV+22*, VPROV+23*, VPROV+36*, PLSTRNG+8*, VPAT+17*, VPAT+18*, VPAT+30* |
DIR("B" | VPROV+24*, VPROV+37*, PLSTRNG+10*, VPAT+19*, VPAT+31* |
DIR(0 | SI+3*, SI+13*, SBN+11*, EDIT+9*, VPROV+22*, VPROV+36*, PLSTRNG+8*, PLSTRNG+16*, PLSTRNG+20*, PLSTRNG+49* , VPAT+17*, VPAT+30* |
>> DIROUT | VPROV+24, VPROV+37, VPAT+19, VPAT+31 |
>> DIRUT | VPROV+24, VPROV+37, PLSTRNG+11, PLSTRNG+16, PLSTRNG+20, VPAT+19, VPAT+31 |
DIS | L~, R+10 |
DONE | VPROV+2~, PLSTRNG+1~, PLSTRNG+3*, PLSTRNG+4, PLSTRNG+11*, PLSTRNG+12*, PLSTRNG+16*, PLSTRNG+20*, PLSTRNG+24*, PLSTRNG+29* , PLSTRNG+31*, PLSTRNG+36*, PLSTRNG+46* |
DONE2 | PLSTRNG+1~, PLSTRNG+40*, PLSTRNG+41, PLSTRNG+43* |
DT | PDATE+1, PDATE+2 |
>> DTOUT | PLSTRNG+11, PLSTRNG+16, PLSTRNG+20 |
DUP | PATWARN+16~, PATWARN+19* |
DUPPATS | PATWARN+16~, PATWARN+17 |
DUPPATS( | PATWARN+19 |
DUZ | L+11, L+17, L+18, R+5, R+7, R+8, VPROV+42, VPAT+37 |
EDIT | PLSTRNG~, PLSTRNG+36, PLSTRNG+46 |
EDIT( | PLSTRNG+28*, PLSTRNG+31*, PLSTRNG+35*, PLSTRNG+45* |
EDTYP | EDIT~, EDIT+11, EDIT+12, EDIT+26, EDIT+27 |
ERXCNT | PATWARN+5~, PATWARN+7*, PATWARN+18*, PATWARN+19*, PATWARN+23*, PATWARN+27*, PATWARN+30* |
ERXDAT | SI+1~ |
ERXDEA | PRVWARN+5~ |
ERXDOB | PATWARN+5~, PATWARN+10* |
ERXDRIEN | PRVWARN+5~, PRVWARN+7*, PRVWARN+9 |
ERXFNAME | VPAT+1~, VPAT+7* |
ERXGEN | PATWARN+5~, PATWARN+11* |
ERXIEN | SI+1~, SI+6*, SI+8, SI+9, SI+10, SI+14, SI+17, SBN+1~, SBN+5*, SBN+6 , SBN+7, SBN+8, SBN+12, SBN+15, PATWARN+22 |
ERXLNAME | VPAT+1~, VPAT+6* |
ERXLOCK | SI+1~, SI+12*, SI+13, SBN+10*, SBN+11 |
ERXMMFLG | VPROV+1~, VPROV+35*, VPROV+37, VPAT+29*, VPAT+31, PATWARN+5~, PATWARN+7*, PATWARN+18*, PATWARN+23*, PATWARN+24* , PATWARN+27*, PATWARN+30*, PATWARN+33, PATWARN+38 |
ERXMSG | PRVWARN+5~, PRVWARN+9, PRVWARN+10, PRVWARN+11, PRVWARN+14, PATWARN+5~ |
ERXMSG( | PRVWARN+12, PATWARN+18*, PATWARN+19*, PATWARN+23*, PATWARN+27*, PATWARN+30*, PATWARN+34, PATWARN+35 |
ERXMSG(0 | PATWARN+32 |
ERXPAT | SI+1~, SI+8*, SI+10, SI+12, SI+15, SBN+1~, SBN+6*, SBN+8, SBN+10, SBN+13 |
ERXPIEN | PRVWARN+5~, PRVWARN+6*, VPAT+1~, VPAT+5*, VPAT+6, VPAT+7, PATWARN+5~, PATWARN+8*, PATWARN+9, PATWARN+10 , PATWARN+11 |
ERXSSN | PATWARN+5~, PATWARN+9* |
ERXSTAT | VPROV+2~, VPROV+16*, VPAT+2~, VPAT+11*, VPAT+48, VPAT+57, VPAT+69 |
EXPRFNAM | VPROV+1~, VPROV+11* |
EXPRIENS | VPROV+2~, VPROV+7*, VPROV+8, VPROV+9, VPROV+10, VPROV+11 |
EXPRLNAM | VPROV+1~, VPROV+10* |
EXPRNAME | VPROV+1~, VPROV+9* |
EXPRVDEA | PRVWARN+5~, PATWARN+5~ |
EXPRVIEN | VPROV+1~, VPROV+6*, VPROV+7 |
EXPRVNPI | PRVWARN+5~ |
FDA | L+19!, R+9!, VPROV+1~, VPAT+2~ |
FDA( | L+18*, R+8*, VPROV+45*, VPROV+47*, VPROV+49*, VPAT+40*, VPAT+41*, VPAT+43* |
FLAG | L+6~, L+11, L+12*, L+13, L+14, L+15*, L+16 |
FULLDAT | ADDITEM+1~, ADDITEM+2*, ADDITEM+3, ADDITEM+8 |
GMRA | VPAT+2~, VPAT+56*, PATWARN+5~, PATWARN+29* |
GMRAL | VPAT+2~, VPAT+55, VPAT+56, PATWARN+5~, PATWARN+29 |
HDR | ADDITEM~, ADDITEM+2 |
HIGH | PLSTRNG~, PLSTRNG+2, PLSTRNG+8, PLSTRNG+27, PLSTRNG+31, PLSTRNG+34, PLSTRNG+44 |
I | PRVWARN+5~, PRVWARN+12*, PLSTRNG+1~, PLSTRNG+27*, PLSTRNG+28, PLSTRNG+33*, PLSTRNG+34, PLSTRNG+35, VPAT+1~, PATWARN+5~ , PATWARN+34*, PATWARN+35 |
ITEM | EDIT+1~, EDIT+23*, EDIT+24 |
L | ADDITEM+1~, ADDITEM+6* |
LEN | ADDITEM~, ADDITEM+3, ADDITEM+8 |
LINE | SI+1~ |
LINEVAR | SI+1~ |
LIST | PLSTRNG+1~, PLSTRNG+2* |
LKTOUT | L+6~*, L+7*, L+12, L+15, R+3~*, R+6 |
LLEN | ADDITEM+1~, ADDITEM+4*, ADDITEM+5 |
LOW | PLSTRNG~, PLSTRNG+2, PLSTRNG+8, PLSTRNG+27, PLSTRNG+31, PLSTRNG+34, PLSTRNG+44 |
MANVAL | VPROV+1~, VPROV+12*, VPROV+23, VPAT+1~, VPAT+9*, VPAT+18 |
MBMSITE | R+1~, R+2*, R+3, EDIT+1~, EDIT+2*, EDIT+7, VPROV+1~, VPROV+3*, VPROV+31, VPAT+1~ , VPAT+3*, VPAT+25, VPAT+47, VPAT+55, PATWARN+5~, PATWARN+6*, PATWARN+15, PATWARN+26, PATWARN+30 |
MTYPE | SI+1~, SI+9*, SI+10, SBN+1~, SBN+7*, SBN+8, VPROV+2~, VPROV+13*, VPROV+53, VPROV+54 , VPROV+55, VPROV+56, VPAT+2~, VPAT+12*, VPAT+64, VPAT+65, VPAT+66, VPAT+67, VPAT+68 |
NEWPIEN | VPROV+2~, VPROV+27*, VPROV+29, VPROV+33*, VPROV+34, VPROV+35, VPROV+41, VPROV+45 |
NEWRXIEN | SI+1~ |
NEWVAL | VPROV+2~, VPROV+42, VPAT+36~, VPAT+37 |
NEWVAL(1 | VPROV+41*, VPAT+36* |
NUM | PLSTRNG+1~, PLSTRNG+41*, PLSTRNG+42 |
NUMCHK | PLSTRNG+1~, PLSTRNG+39* |
>> PCV | SI+11, SBN+9 |
PDONE | VPAT+1~ |
PQUIT | EDIT+1~, EDIT+23* |
PRVDAT | VPROV+1~ |
PRVDAT( | VPROV+9, VPROV+10, VPROV+11 |
PSOIEN | PROV+1, PROV+3, PROV+4, PROV+5, PROV+6, PROV+7, PAT+1, PAT+3, PAT+4, PAT+5 , PAT+6, PAT+7, DRUG+1, DRUG+3, DRUG+4, DRUG+5, DRUG+6, DRUG+7, EDIT+6, EDIT+7 , EDIT+10, EDIT+13, EDIT+16, EDIT+22, VPROV+4, VPROV+5, VPROV+6, VPROV+12, VPROV+13, VPROV+14 , VPROV+15, VPROV+16, VPROV+27, VPROV+34, VPROV+35, VPROV+41, VPROV+53, VPROV+54, VPROV+55, VPROV+56 , PRVWARN~, PRVWARN+6, PRVWARN+7, PRVWARN+8, PRVWARN+9, PLSTRNG+5, PLSTRNG+6, VPAT+4, VPAT+5, VPAT+8 , VPAT+9, VPAT+10, VPAT+11, VPAT+12, VPAT+21, VPAT+28, VPAT+29, VPAT+49, VPAT+52, VPAT+58 , VPAT+61, VPAT+64, VPAT+65, VPAT+66, VPAT+67, VPAT+68, VPAT+69, PATWARN~, PATWARN+8, PATWARN+14 |
PSOIENS | EDIT+10*, EDIT+22, VPROV+1~, VPROV+4*, VPROV+42, VPROV+45, VPROV+47, VPROV+49, VPAT+1~, VPAT+4* , VPAT+37, VPAT+40, VPAT+41, VPAT+43 |
>> PSONOLCK | L+5, UL+1 |
PSOQUIT | VPROV+2~, VPROV+19*, VPROV+20, VPROV+24*, VPROV+29, VPROV+32*, VPROV+37*, VPAT+2~, VPAT+14*, VPAT+15 , VPAT+19*, VPAT+23, VPAT+26*, VPAT+31* |
QUIT | VPROV+2~ |
REQIEN | SI+1~ |
RES | EDIT+1~, EDIT+20 |
RES( | EDIT+23 |
RES(0 | EDIT+21 |
RES(1 | EDIT+22 |
RESP | SI+1~, SI+5*, SI+6 |
RESTYPE | VPROV+2~, VPROV+15*, VPROV+54, VPAT+2~, VPAT+10* |
RESVAL | PROV+2~, PROV+3*, PROV+6, PAT+2~, PAT+3*, PAT+6, DRUG+2~, DRUG+3*, DRUG+6 |
RXSTAT | EDIT+1~, EDIT+7* |
SBN | EDIT~, EDIT+4*, EDIT+20, PLSTRNG~, PLSTRNG+7, PLSTRNG+13, PLSTRNG+17, PLSTRNG+22 |
SELPAT | VPAT+1~, VPAT+21*, VPAT+23, VPAT+27*, VPAT+28, VPAT+29, VPAT+35, VPAT+36, VPAT+40, VPAT+47 , VPAT+50, VPAT+52, VPAT+56, VPAT+59, VPAT+61, PATWARN~, PATWARN+14*, PATWARN+17, PATWARN+20, PATWARN+22 |
SELPRV | VPROV+2~ |
SILENT | L~, L+13, R+10 |
STAT | PROV+2~, PROV+4*, PROV+5, PROV+6, PAT+2~, PAT+4*, PAT+5, PAT+6, DRUG+2~, DRUG+4* , DRUG+5, DRUG+6 |
STRT | ADDITEM~, ADDITEM+3, ADDITEM+5, ADDITEM+6 |
SUGVARX | EDIT+1~, EDIT+13*, EDIT+14, EDIT+16 |
TAG | EDIT+1~, EDIT+24* |
TEXT | ADDITEM~, ADDITEM+3*, ADDITEM+4, ADDITEM+6, ADDITEM+7*, ADDITEM+8* |
U | CHKPRV2+2 |
VADEA | PRVWARN+5~ |
VADM | VPAT+1~, PATWARN+5~ |
VADM(2 | VPAT+36 |
VADM(3 | VPAT+36 |
VAL | PLSTRNG+1~, PLSTRNG+42*, PLSTRNG+43, PLSTRNG+44, PLSTRNG+45 |
>> VALMAR | SI+6, SBN+5, EDIT+17, EDIT+25, EDIT+26, EDIT+27 |
>> VALMBCK | SI+4*, SI+10*, SI+13*, SI+16*, SI+19*, SBN+4*, SBN+8*, SBN+11*, SBN+14*, SBN+16* , PROV+1*, PAT+1*, DRUG+1*, EDIT+5*, EDIT+17* |
>> VALMBG | SI+3 |
>> VALMLST | SI+3 |
VANPI | VPROV+2~, PRVWARN+5~ |
VAPIEN | VPROV+14*, VPROV+20, PRVWARN~, PRVWARN+8*, PRVWARN+9, VPAT+1~, VPAT+8*, VPAT+15, VPAT+16 |
VAPNM | VPROV+2~, VPROV+5*, VPROV+21 |
VAPRVIEN | VPROV+1~ |
>> X | PDATE+2 |
X1 | PDATE+1~* |
X2 | PDATE+1~* |
>> XQORM("B" | PROV+7*, PAT+7*, DRUG+7* |
>> XQORNOD(0 | SBN+3 |
Y | SI+1~, SI+4, SI+5, SBN+1~, SBN+3*, SBN+4, SBN+5, R+10*, WHO+1*, WHO+2 , EDIT+1~, VPROV+24, VPROV+32, VPROV+33, VPROV+37, CHKPRV2~, CHKPRV2+2, PLSTRNG+1~, PLSTRNG+5*, PLSTRNG+6* , PLSTRNG+7, PLSTRNG+12, PLSTRNG+13, PLSTRNG+16!, PLSTRNG+17, PLSTRNG+21!, PLSTRNG+22*, PLSTRNG+23, PLSTRNG+24, PLSTRNG+25* , PLSTRNG+26, PLSTRNG+31, PLSTRNG+32, PLSTRNG+33, PLSTRNG+37, PLSTRNG+39, PLSTRNG+42, PLSTRNG+49!, VPAT+1~, VPAT+19 , VPAT+26, VPAT+27, VPAT+31 |