GMPLSPECAUTH ;SLC/AGP,GN - Problems Special Authorities ; Nov 21, 2025@19:37
Source file <GMPLSPECAUTH.m>
| Package | Total | Call Graph |
|---|---|---|
| Problem List | 3 | $$PTR^GMPLUTL4 AUDIT^GMPLX (SCS,VADPT)^GMPLX1 |
| Kernel | 2 | $$NOW^XLFDT (DECODE,ENCODE)^XLFJSON |
| PCE Patient Care Encounter | 1 | ($$FINDBYCODE,$$GETVALUE,$$GETZERO,SETARRAY)^PXSPECAUTH |
| Registration | 1 | DEM^VADPT |
| VA FileMan | 1 | UPDATE^DIE |
| 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 |
| Package | Total | Caller Graph |
|---|---|---|
| Problem List | 5 | GMPLEDT3 GMPLHIST GMPLSAVE GMPLUTL2 GMPLX |
| Order Entry Results Reporting | 3 | ORQQPL ORQQPL3 ORSPECAUTH |
| PCE Patient Care Encounter | 1 | PXAIPL |
| Name | Comments | DBIA/ICR reference |
|---|---|---|
| SHOWSA() | ;Switch to allow=1 / disallow=0, New SA indicator structure for Problem List
|
|
| SAOFFOUT | ;Code switch of JSON return true msg
|
|
| OLDSC(J) | ; -- Returns name of SC field by piece number
|
|
| SADESC(VALUE) | ; SA description from SA IEN or CODE
|
|
| GETVALUE(DEF) | ;
|
|
| DETAIL(GMPL,IFN,GMPL1) | ;Get SA info in orig format
|
|
| COMPARE(OLDVALUE,NEWVALUE,CODE) | ;
|
|
| EDIT(IFN,GMPLORIG,GMPFLD) | ;Edit
|
|
| SET(IFN,GMPFLD,GMPOLDIND,GMPROV,GMPORIG) | ||
| BLDSAAUDIT | ; Create audit xref arrays from passed in arrays; subcript by internal CODE for comparing of old to new values
|
|
| SETARRAY(AR,FULLSTRUCT) | ;Sets SA Instructions, called by RPC tag
|
|
| SETVALUE(VALUE) | ;Converts json value to Mumps value
|
|
| GETPATSA(DFN,SA,SA2) | ;Get the patients SA indicators. GMPL similar to PXSPECAUTH, but returns 3 additional data elements to Problem List tab.
|
|
| GETNEWSA(IFN,GMPL1,GMPLSA) | ; Get Problem file Special Authorities for printing
|
|
| EP(IFN) | ;moved here from GMPLX
|
|
| SPECAUTHDEF(RESULTS,JSONIN) | ;Return Patient Special Authorities (SA) that may be selected via a JSON serialized string. *508
; Input: JSONIN = JSON elements: {patientId}: DFN, ; {loadStructure}:true/false value (optional); Load SAs rules structure ; Output: RESULTS = JSON elements: {code}: internal abbr, ; {visible}:true/false |
|
| SETERROR(RESULTS,ERROR) | ;
|
|
| PNUM(IDX) | ; Returns Piece number of the old SA field
|
|
| SAFORPROBLEM(OUTPUT,ALLOWED,PIDX,PID) | ; Returns Special Authorities for a problems
|
|
| SETDEFAULT | ;
|
|
| SAFORPROBLEMS(RESULTS,JSONIN) | ; Returns Special Authorities for a list of problems
|
| Name | Field # of Occurrence |
|---|---|
| UPDATE^DIE | SET+13 |
| $$PTR^GMPLUTL4 | DETAIL+30 |
| AUDIT^GMPLX | SET+28 |
| SCS^GMPLX1 | EP+6 |
| VADPT^GMPLX1 | GETPATSA+7 |
| $$FINDBYCODE^PXSPECAUTH | SADESC+4, SET+20 |
| $$GETVALUE^PXSPECAUTH | EDIT+6, SET+21 |
| $$GETZERO^PXSPECAUTH | SADESC+6, DETAIL+11, EDIT+4, GETNEWSA+8, SAFORPROBLEM+12 |
| SETARRAY^PXSPECAUTH | SETARRAY+2 |
| DEM^VADPT | GETPATSA+2 |
| $$NOW^XLFDT | SET+3 |
| DECODE^XLFJSON | SPECAUTHDEF+10, SAFORPROBLEMS+3 |
| ENCODE^XLFJSON | SAOFFOUT+4, SPECAUTHDEF+9, SPECAUTHDEF+38, SAFORPROBLEMS+20 |
| RPC Name | Call Tags |
|---|---|
| GMPLSPECAUTH SPECAUTHDEF | SPECAUTHDEF |
| GMPLSPECAUTH SAFORPROBLEMS | SAFORPROBLEMS |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^AUPNPROB - [#9000011] | DETAIL+5, DETAIL+7, DETAIL+9, DETAIL+10, EDIT+2, EDIT+3, SET+6, GETNEWSA+3, GETNEWSA+6, GETNEWSA+7 , GETNEWSA+11, EP+2, SAFORPROBLEM+3, SAFORPROBLEM+10, SAFORPROBLEM+11, SAFORPROBLEMS+17 |
| ^PXIND(820 - [#820] | SPECAUTHDEF+30, SPECAUTHDEF+31 |
| ^TMP("GMPLSPECAUTH SAFORPROBLEMS" | SAFORPROBLEMS+4! |
| Name | Line Occurrences |
|---|---|
| $$COMPARE | SET+24 |
| $$GETVALUE | DETAIL+14, DETAIL+19, DETAIL+22, SPECAUTHDEF+33 |
| $$OLDSC | BLDSAAUDIT+3, BLDSAAUDIT+10 |
| $$PNUM | SAFORPROBLEMS+13 |
| $$SADESC | DETAIL+16 |
| $$SHOWSA | DETAIL+1, SET+5, BLDSAAUDIT+1, GETNEWSA+1, SPECAUTHDEF+14, SAFORPROBLEMS+8 |
| BLDSAAUDIT | SET+16 |
| GETNEWSA | EP+4 |
| GETPATSA | DETAIL+8, SPECAUTHDEF+18, SAFORPROBLEMS+11 |
| SAFORPROBLEM | SAFORPROBLEMS+18 |
| SAOFFOUT | SPECAUTHDEF+14, SAFORPROBLEMS+8 |
| SETARRAY | SPECAUTHDEF+26 |
| SETDEFAULT | SAFORPROBLEM+9, SAFORPROBLEM+14 |
| SETERROR | SAFORPROBLEMS+6, SAFORPROBLEMS+7 |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| ABBR | GETNEWSA+2~, GETNEWSA+8*, GETNEWSA+9, GETNEWSA+10, SPECAUTHDEF+6~, SPECAUTHDEF+31* |
| ACNT | SET+2~, SET+3*, SET+25*, SET+27*, SET+28 |
| ACTION | COMPARE+1~, COMPARE+3*, COMPARE+4*, COMPARE+5 |
| ALLOWED | DETAIL+2~, DETAIL+8, SAFORPROBLEM~, SAFORPROBLEMS+1~, SAFORPROBLEMS+11, SAFORPROBLEMS+18 |
| ALLOWED( | DETAIL+12, SAFORPROBLEM+5, SAFORPROBLEM+6, SAFORPROBLEM+8, SAFORPROBLEMS+12, SAFORPROBLEMS+13* |
| AR | SETARRAY~, SPECAUTHDEF+6~, SPECAUTHDEF+26 |
| AR( | SPECAUTHDEF+21*, SPECAUTHDEF+24* |
| AR("specialAuthority" | SPECAUTHDEF+34*, SPECAUTHDEF+35*, SPECAUTHDEF+36* |
| AR("success" | SPECAUTHDEF+37* |
| AUDIT | SET+2~ |
| AUDIT( | SET+25*, SET+27, SET+28 |
| CNT | SET+2~, SET+17*, SET+21* |
| CODE | DETAIL+2~, DETAIL+12*, DETAIL+14, COMPARE~, COMPARE+5, SET+2~, SET+17*, SET+18*, SET+19, SET+20 , SET+21, SET+23, SET+24, SPECAUTHDEF+6~, SPECAUTHDEF+19*, SPECAUTHDEF+20*, SPECAUTHDEF+21, SPECAUTHDEF+22, SPECAUTHDEF+23, SPECAUTHDEF+24 , SPECAUTHDEF+28*, SPECAUTHDEF+29*, SPECAUTHDEF+30, SPECAUTHDEF+32, SPECAUTHDEF+33, SPECAUTHDEF+34, SAFORPROBLEM+1~, SAFORPROBLEM+4*, SAFORPROBLEM+5*, SAFORPROBLEM+6 , SAFORPROBLEM+7, SAFORPROBLEM+8 |
| DEF | GETVALUE~, GETVALUE+1, SPECAUTHDEF+6~, SPECAUTHDEF+33*, SPECAUTHDEF+35 |
| DFN | SAOFFOUT+2, GETPATSA~, GETPATSA+7, SPECAUTHDEF+6~, SPECAUTHDEF+12*, SPECAUTHDEF+18, SAFORPROBLEMS+1~, SAFORPROBLEMS+7*, SAFORPROBLEMS+10, SAFORPROBLEMS+11 , SAFORPROBLEMS+17 |
| DISPNAM | SPECAUTHDEF+6~, SPECAUTHDEF+31* |
| DUZ | SET+25 |
| DUZ(2 | SAOFFOUT+1, GETPATSA+4 |
| ECNT | EDIT+1~, EDIT+2*, EDIT+5*, EDIT+7 |
| EID | DETAIL+2~, SET+2~, SET+20*, SET+21 |
| EIDX | DETAIL+2~, DETAIL+9*, DETAIL+10, EDIT+1~, EDIT+2*, EDIT+3, EDIT+6 |
| EIEN | SPECAUTHDEF+6~, SPECAUTHDEF+30*, SPECAUTHDEF+31 |
| ENAB | SPECAUTHDEF+6~, SPECAUTHDEF+32*, SPECAUTHDEF+36 |
| ERR | SPECAUTHDEF+6~, SETERROR+1~, SETERROR+3*, SETERROR+4*, SETERROR+6*, SETERROR+7*, SETERROR+8 |
| ERR("error" | SPECAUTHDEF+8* |
| ERR("success" | SPECAUTHDEF+8* |
| ERROR | SET+2~, SETERROR~, SETERROR+3, SAFORPROBLEMS+1~, SAFORPROBLEMS+6 |
| ERROR( | SETERROR+5, SETERROR+7 |
| EXIT | DETAIL+2~, DETAIL+3*, DETAIL+13*, DETAIL+20 |
| EXP | SADESC+1~ |
| FDA | SET+2~ |
| FDA( | SET+12* |
| FDA(9000011 | SET+6* |
| FLD | SET+2~ |
| FOUND | SAFORPROBLEMS+1~, SAFORPROBLEMS+12*, SAFORPROBLEMS+13*, SAFORPROBLEMS+14 |
| FULLSTRUCT | SETARRAY~, SETARRAY+2 |
| GMPAGTOR | GETPATSA+1~, GETPATSA+9 |
| GMPCV | GETPATSA+1~, GETPATSA+14 |
| GMPFLD | EDIT~, SET~ |
| GMPFLD( | BLDSAAUDIT+10 |
| GMPFLD(2 | EDIT+8*, SET+5, SET+8, SET+10, SET+21*, BLDSAAUDIT+11, BLDSAAUDIT+12 |
| GMPGULF | GETPATSA+1~, GETPATSA+11 |
| GMPHNC | GETPATSA+1~, GETPATSA+12 |
| GMPION | GETPATSA+1~, GETPATSA+10 |
| GMPL | DETAIL~ |
| GMPL("EXPOSURE" | DETAIL+6*, DETAIL+18*, DETAIL+23*, DETAIL+24*, DETAIL+25*, DETAIL+26*, DETAIL+27*, DETAIL+28*, DETAIL+29*, DETAIL+30* |
| GMPL("SC" | DETAIL+14*, DETAIL+19*, DETAIL+22* |
| GMPL0 | GETNEWSA+4~, GETNEWSA+7* |
| GMPL1 | DETAIL~, DETAIL+22, DETAIL+24, DETAIL+25, DETAIL+26, DETAIL+27, DETAIL+28, DETAIL+29, DETAIL+30, GETNEWSA~ , GETNEWSA+12, GETNEWSA+13, GETNEWSA+14, GETNEWSA+15, GETNEWSA+16, GETNEWSA+17, GETNEWSA+18, GETNEWSA+19 |
| GMPLORIG | EDIT~ |
| GMPLORIG(2 | EDIT+6*, EDIT+7*, EDIT+8 |
| GMPLRET | EP+1~, EP+2, EP+5* |
| GMPLSA | GETNEWSA~ |
| GMPLSA( | GETNEWSA+10* |
| GMPLSA("AO" | GETNEWSA+13* |
| GMPLSA("CV" | GETNEWSA+18* |
| GMPLSA("EC" | GETNEWSA+15* |
| GMPLSA("HNC" | GETNEWSA+16* |
| GMPLSA("IR" | GETNEWSA+14* |
| GMPLSA("MST" | GETNEWSA+17* |
| GMPLSA("SC|NSC" | GETNEWSA+9*, GETNEWSA+12* |
| GMPLSA("SHD" | GETNEWSA+19* |
| GMPLSAS | EP+3~, EP+4 |
| GMPLSAS("SC|NSC" | EP+5 |
| GMPLSC | EP+6~ |
| GMPLSC(1 | EP+6 |
| GMPMST | GETPATSA+1~, GETPATSA+13 |
| GMPOLDIND | SET~ |
| GMPORIG | SET~ |
| GMPORIG( | BLDSAAUDIT+3 |
| GMPORIG(2 | BLDSAAUDIT+4, BLDSAAUDIT+5 |
| GMPROV | SET~, SET+15, SET+22, SET+25 |
| GMPSC | GETPATSA+1~, GETPATSA+8 |
| GMPSHD | GETPATSA+1~, GETPATSA+15 |
| ID | SET+2~, SET+10*, SET+12 |
| IDX | SET+2~, SET+7*, SET+8*, SET+9, SET+10, SETERROR+1~, SETERROR+5*, SETERROR+7, PNUM~, PNUM+1 , PNUM+2, PNUM+3, PNUM+4, PNUM+5, PNUM+6, PNUM+7, PNUM+8, SAFORPROBLEM+1~, SAFORPROBLEM+10*, SAFORPROBLEM+11 , SAFORPROBLEMS+1~, SAFORPROBLEMS+12*, SAFORPROBLEMS+13, SAFORPROBLEMS+15*, SAFORPROBLEMS+16 |
| IEN | SADESC+1~, SADESC+3*, SADESC+4*, SADESC+5, SADESC+6 |
| IENS | SET+2~, SET+9*, SET+12 |
| IFN | DETAIL~, DETAIL+5, DETAIL+7, DETAIL+9, DETAIL+10, EDIT~, EDIT+2, EDIT+3, SET~, SET+6 , SET+9, SET+25, GETNEWSA~, GETNEWSA+3, GETNEWSA+6, GETNEWSA+7, GETNEWSA+11, EP~, EP+2, EP+4 , EP+6 |
| INPUT | SAFORPROBLEMS+1~ |
| INPUT("patientId" | SAFORPROBLEMS+7 |
| INPUT("problems" | SAFORPROBLEMS+15, SAFORPROBLEMS+16 |
| J | OLDSC~, OLDSC+1, OLDSC+2, OLDSC+3, OLDSC+4, OLDSC+5, OLDSC+6, OLDSC+7, OLDSC+8, OLDSC+9 |
| JSONIN | SPECAUTHDEF~, SPECAUTHDEF+7, SAFORPROBLEMS~ |
| LOADSTRUCT | SPECAUTHDEF+6~, SPECAUTHDEF+16*, SPECAUTHDEF+26 |
| NAME | DETAIL+2~, EDIT+1~, EDIT+4*, EDIT+6 |
| NEWVALUE | COMPARE~, COMPARE+2, COMPARE+3, COMPARE+5 |
| NODE | DETAIL+2~, DETAIL+10*, DETAIL+11, DETAIL+13, DETAIL+16, EDIT+1~, EDIT+3*, EDIT+4, EDIT+6, SET+2~ , SET+10*, SPECAUTHDEF+6~, SPECAUTHDEF+31* |
| NOW | SET+2~, SET+3*, SET+25 |
| OLDVALUE | COMPARE~, COMPARE+2, COMPARE+3, COMPARE+5, SET+23*, SET+24 |
| OUTPUT | SAFORPROBLEM~, SAFORPROBLEMS+1~, SAFORPROBLEMS+6, SAFORPROBLEMS+7, SAFORPROBLEMS+18 |
| OUTPUT("facility" | SAOFFOUT+1* |
| OUTPUT("patientId" | SAOFFOUT+2*, SAFORPROBLEMS+10* |
| OUTPUT("problems" | SAFORPROBLEM+2*, SAFORPROBLEM+7*, SAFORPROBLEM+8*, SETDEFAULT+1* |
| OUTPUT("success" | SAOFFOUT+3*, SAFORPROBLEMS+19* |
| OVALUE | SET+2~ |
| PARAM | SPECAUTHDEF+6~ |
| PARAM("loadStructure" | SPECAUTHDEF+16 |
| PARAM("patientId" | SPECAUTHDEF+12 |
| PATIENT | DETAIL+2~, DETAIL+7*, DETAIL+8 |
| PID | SAFORPROBLEM~, SAFORPROBLEM+2, SAFORPROBLEM+3, SAFORPROBLEM+10, SAFORPROBLEM+11, SAFORPROBLEMS+1~, SAFORPROBLEMS+16*, SAFORPROBLEMS+17, SAFORPROBLEMS+18 |
| PIDX | SAFORPROBLEM~, SAFORPROBLEM+2, SAFORPROBLEM+7, SAFORPROBLEM+8, SETDEFAULT+1, SAFORPROBLEMS+1~, SAFORPROBLEMS+15*, SAFORPROBLEMS+18* |
| PL1 | SAFORPROBLEM+1~, SAFORPROBLEM+3*, SAFORPROBLEM+6 |
| PL2 | SAFORPROBLEM+1~, SAFORPROBLEM+11* |
| PN | SAFORPROBLEM+1~, SAFORPROBLEM+6* |
| PXIEN | GETNEWSA+4~, GETNEWSA+7*, GETNEWSA+8 |
| BLDSAAUDIT+2*, BLDSAAUDIT+3, BLDSAAUDIT+4*, BLDSAAUDIT+5, BLDSAAUDIT+9*, BLDSAAUDIT+10, BLDSAAUDIT+11*, BLDSAAUDIT+12, GETNEWSA+4~, GETNEWSA+5* , GETNEWSA+6*, GETNEWSA+7 |
|
| RESULTS | SPECAUTHDEF~, SETERROR~, SAFORPROBLEMS~, SAFORPROBLEMS+4* |
| RESULTS("error" | SETERROR+8* |
| RESULTS("success" | SETERROR+2* |
| SA | GETPATSA~, SAFORPROBLEM+1~ |
| SA("AO" | GETPATSA+9* |
| SA("CV" | GETPATSA+14* |
| SA("EC" | GETPATSA+11* |
| SA("HNC" | GETPATSA+12* |
| SA("IR" | GETPATSA+10* |
| SA("MST" | GETPATSA+13* |
| SA("SC" | GETPATSA+8* |
| SA("SHAD" | GETPATSA+15* |
| SA0 | SAFORPROBLEM+1~, SAFORPROBLEM+12* |
| SA2 | GETPATSA~, SPECAUTHDEF+6~, SPECAUTHDEF+18 |
| SA2( | SPECAUTHDEF+20, SPECAUTHDEF+21, SPECAUTHDEF+22, SPECAUTHDEF+23, SPECAUTHDEF+24 |
| SA2("deathIndicator" | GETPATSA+5* |
| SA2("facility" | GETPATSA+4* |
| SA2("ssn4" | GETPATSA+6* |
| SACODE | SAFORPROBLEM+1~, SAFORPROBLEM+12*, SAFORPROBLEM+13 |
| SAFLD | SET+2~, BLDSAAUDIT+14* |
| SAFLD( | SET+18, SET+19, BLDSAAUDIT+10* |
| SAFLD2 | SET+2~, BLDSAAUDIT+14 |
| SAFLD2( | BLDSAAUDIT+12* |
| SAIDX | SAFORPROBLEM+1~, SAFORPROBLEM+4*, SAFORPROBLEM+6*, SAFORPROBLEM+7, SAFORPROBLEM+8, SAFORPROBLEM+13*, SETDEFAULT+1 |
| SAIEN | SAFORPROBLEM+1~, SAFORPROBLEM+11*, SAFORPROBLEM+12 |
| SANODE | DETAIL+2~ |
| SAORIG | SET+2~, BLDSAAUDIT+7* |
| SAORIG( | SET+23, BLDSAAUDIT+3* |
| SAORIG2 | SET+2~, BLDSAAUDIT+7 |
| SAORIG2( | BLDSAAUDIT+5* |
| SAVALUE | SAFORPROBLEM+1~, SAFORPROBLEM+6*, SAFORPROBLEM+11*, SETDEFAULT+1 |
| SAX | SPECAUTHDEF+6~, SPECAUTHDEF+18 |
| SAX( | SPECAUTHDEF+29, SPECAUTHDEF+32, SPECAUTHDEF+33 |
| SAXREF | SAFORPROBLEM+1~ |
| SAXREF( | SAFORPROBLEM+6*, SAFORPROBLEM+13 |
| SEQ | DETAIL+2~, DETAIL+17*, DETAIL+18, SPECAUTHDEF+6~, SPECAUTHDEF+31*, SPECAUTHDEF+34, SPECAUTHDEF+35, SPECAUTHDEF+36 |
| SEQMAP | DETAIL+2~, SETARRAY+2* |
| SEQMAP( | DETAIL+16*, DETAIL+17, DETAIL+18 |
| SPECAUTH | SETARRAY+1~, SETARRAY+2 |
| SPECAUTH("specialAuthorityTypes" | SETARRAY+2 |
| SUB | SPECAUTHDEF+23~*, SPECAUTHDEF+24 |
| TEXT | SADESC+1~, SADESC+5*, SADESC+7*, SADESC+8 |
| TMP | SET+2~, SET+24*, SET+25 |
| U | SADESC+7, DETAIL+7, DETAIL+10, DETAIL+11, DETAIL+12, DETAIL+13, DETAIL+16, DETAIL+22, DETAIL+24, DETAIL+25 , DETAIL+26, DETAIL+27, DETAIL+28, DETAIL+29, DETAIL+30, COMPARE+5, EDIT+3, EDIT+4, EDIT+6, EDIT+7 , SET+6, SET+10, SET+19, SET+21, SET+23, SET+25, BLDSAAUDIT+3, BLDSAAUDIT+5, BLDSAAUDIT+10, BLDSAAUDIT+12 , GETPATSA+8, GETNEWSA+3, GETNEWSA+7, GETNEWSA+8, GETNEWSA+11, GETNEWSA+12, GETNEWSA+13, GETNEWSA+14, GETNEWSA+15, GETNEWSA+16 , GETNEWSA+17, GETNEWSA+18, GETNEWSA+19, SPECAUTHDEF+31, SPECAUTHDEF+32, SPECAUTHDEF+33, SAFORPROBLEM+6, SAFORPROBLEM+11, SAFORPROBLEM+12, SAFORPROBLEMS+13 , SAFORPROBLEMS+17 |
| VA | GETPATSA+1~ |
| VA("BID" | GETPATSA+6 |
| VADM | GETPATSA+1~ |
| VADM(6 | GETPATSA+5 |
| VAL | GETNEWSA+2~, GETNEWSA+7*, GETNEWSA+9, GETNEWSA+10 |
| VALUE | SADESC~, SADESC+2, SADESC+3, SADESC+4, SADESC+5, DETAIL+2~, DETAIL+13*, DETAIL+14, DETAIL+15, SET+2~ , SET+10*, SET+11*, SET+12, SET+19*, SET+21, SET+24, SETVALUE~, SETVALUE+1 |
| X | DETAIL+24*, DETAIL+25*, DETAIL+26*, DETAIL+27*, DETAIL+28*, DETAIL+29*, DETAIL+30*, EP+6~*, EP+7 |
| XX | DETAIL+2~, DETAIL+18* |
| ZNODE | SADESC+1~, SADESC+6*, SADESC+7, DETAIL+2~, DETAIL+11*, DETAIL+12, DETAIL+16 |