ORY95 ;SLC/DAN Post-Init for patch OR*3*95 ;9/18/01 13:38
;;3.0;ORDER ENTRY/RESULTS REPORTING;**95**;Dec 17, 1997
;Post-init will check for display text and mnemonics that can potentially cause problems with fileman and the fileman reader (DIR)
POST ; -- postinit
N ORMSG
S ORMSG(1)=""
S ORMSG(2)="This patch imports the STATUS OF ORDER entry"
S ORMSG(3)="from the OE/RR PRINT FIELDS file. As a result, the entries"
S ORMSG(4)="in the OE/RR PRINT FORMAT file need to be recompiled."
S ORMSG(5)=""
S ORMSG(6)="**NOTE: If you have made local modifications to the compiled"
S ORMSG(7)="code in the OE/RR PRINT FORMAT file they will be OVERWRITTEN."
S ORMSG(8)=""
S ORMSG(9)="Recompiling..."
D MES^XPDUTL(.ORMSG) H 3
D RECMPL^ORPR00 K ORMSG
S ORMSG(1)="",ORMSG(2)="Starting ORDER DIALOG and ORDERABLE ITEMS file checking in the background.",ORMSG(3)="You'll receive an email when it finishes." D MES^XPDUTL(.ORMSG) H 3 K ORMSG
S ZTRTN="CHECK^ORY95",ZTDTH=$H,ZTDESC="Patch OR*3*95 Post-Init",ZTSAVE("DUZ")="",ZTIO="" D ^%ZTLOAD Q
CHECK ;Enter here to check files for invalid entries
N IEN,SUBIEN
K ^TMP($J)
S IEN=0 F S IEN=$O(^ORD(101.41,IEN)) Q:'+IEN D
.;Check DISPLAY TEXT field first
.I $$CHKNAM^ORUTL($P($G(^ORD(101.41,IEN,0)),"^",2)) D REPORT(1,"ODFIX")
.;Check DISPLAY TEXT subfield of ITEMS multiple next
.S SUBIEN=0 F S SUBIEN=$O(^ORD(101.41,IEN,10,SUBIEN)) Q:'+SUBIEN D
..I $$CHKNAM^ORUTL($P($G(^ORD(101.41,IEN,10,SUBIEN,0)),"^",4)) D REPORT(2,"ODFIX")
..;Check MNEMONIC field next
..I $$CHKMNE^ORUTL($P($G(^ORD(101.41,IEN,10,SUBIEN,0)),"^",3)) D REPORT(3,"ODMFIX")
..Q
.Q
;Check NAME field of ORDERABLE ITEMS file for ;
S IEN=0 F S IEN=$O(^ORD(101.43,IEN)) Q:'+IEN I $$CHKNAM^ORUTL($P($G(^ORD(101.43,IEN,0)),"^"),";") D REPORT(4,"OIFIX")
;Send mail message with results
D MAIL
Q
REPORT(E,FIX) ;Store entries that need to be reported
N FIEN
S FIEN=0 I $D(^TMP($J,FIX,IEN,FIEN)) S FIEN=$O(^(999),-1)+1 ;get last subscript
I E=1 S ^TMP($J,FIX,IEN,FIEN)="DISPLAY TEXT <"_$P(^ORD(101.41,IEN,0),"^",2)_"> for ORDER DIALOG <"_$P(^(0),"^")_">" Q
I E=2 S ^TMP($J,FIX,IEN,FIEN)="DISPLAY TEXT <"_$P(^ORD(101.41,IEN,10,SUBIEN,0),"^",4)_"> for SEQUENCE # "_$P(^(0),"^")_" of ORDER DIALOG < "_$P(^ORD(101.41,IEN,0),"^")_">" Q
I E=3 S ^TMP($J,FIX,IEN,FIEN)="MNEMONIC <"_$P(^ORD(101.41,IEN,10,SUBIEN,0),"^",3)_"> for SEQUENCE # "_$P(^(0),"^")_" of ORDER DIALOG <"_$P(^ORD(101.41,IEN,0),"^")_">" Q
I E=4 S ^TMP($J,FIX,IEN,FIEN)=$P(^ORD(101.43,IEN,0),"^")_" entry in ORDERABLE ITEMS file" Q
Q
MAIL ;prepare results for sending
N XMSUB,XMTEXT,XMDUZ,XMY,XMZ,XMMG,ORTXT,I,J,K
S XMDUZ="PATCH OR*3*95 POST-INIT",XMY(.5)="" S:$G(DUZ) XMY(DUZ)=""
;Check mnemonics in this section
S I=0 I '$D(^TMP($J,"ODMFIX")) S I=I+1,^TMP($J,"ORTXT",I)="No problems with MNEMONIC names were found."
I $D(^TMP($J,"ODMFIX")) D ;Add entries that have problems with mnemonics
.S I=I+1,^TMP($J,"ORTXT",I)="The following entries in the ORDER DIALOG file have MNEMONICS that are the same"
.S I=I+1,^TMP($J,"ORTXT",I)="as a standard List Manager mnemonic and need to be changed."
.S I=I+1,^TMP($J,"ORTXT",I)="List Manager mnemonics take precedence over the MNEMONIC field and"
.S I=I+1,^TMP($J,"ORTXT",I)="will cause the entry to be unselectable by MNEMONIC from within List Manager.",I=I+1,^TMP($J,"ORTXT",I)=""
.S J=0 F S J=$O(^TMP($J,"ODMFIX",J)) Q:'+J S K="" F S K=$O(^TMP($J,"ODMFIX",J,K)) Q:K="" S I=I+1 S ^TMP($J,"ORTXT",I)=^(K)
S I=I+1 S ^TMP($J,"ORTXT",I)=""
;Check orderable items name section
I '$D(^TMP($J,"OIFIX")) S I=I+1 S ^TMP($J,"ORTXT",I)="No problems with ORDERABLE ITEM names were found."
I $D(^TMP($J,"OIFIX")) D ;add ORDERABLE ITEMS that have problems
.S I=I+1,^TMP($J,"ORTXT",I)="The following entries in the ORDERABLE ITEMS file contain"
.S I=I+1,^TMP($J,"ORTXT",I)="a semi colon (;) and may cause problems during editing. You need to remove"
.S I=I+1,^TMP($J,"ORTXT",I)="these characters from these entries to avoid potential problems."
.S I=I+1,^TMP($J,"ORTXT",I)=""
.S I=I+1,^TMP($J,"ORTXT",I)="Please use PACKAGE SPECIFIC options to change the names. The changes"
.S I=I+1,^TMP($J,"ORTXT",I)="will then update the ORDERABLE ITEMS file and will remain synchronized."
.S I=I+1,^TMP($J,"ORTXT",I)=""
.S J=0 F S J=$O(^TMP($J,"OIFIX",J)) Q:'+J S I=I+1 S ^TMP($J,"ORTXT",I)=^TMP($J,"OIFIX",J,0)
S I=I+1,^TMP($J,"ORTXT",I)=""
;Check display text section
I '$D(^TMP($J,"ODFIX")) S I=I+1,^TMP($J,"ORTXT",I)="No problems with DISPLAY TEXT in the ORDER DIALOG file were found."
I $D(^TMP($J,"ODFIX")) D ;add ORDER DIALOG problems to mail message
.S I=I+1,^TMP($J,"ORTXT",I)="The following entries in the ORDER DIALOG file contain special"
.S I=I+1,^TMP($J,"ORTXT",I)="characters in the DISPLAY TEXT field or the DISPLAY TEXT subfield of"
.S I=I+1,^TMP($J,"ORTXT",I)="the ITEMS multiple that will not display in the List Manager display."
.S I=I+1,^TMP($J,"ORTXT",I)="",I=I+1,^TMP($J,"ORTXT",I)="In order to be consistent you may wish to remove the special characters"
.S I=I+1,^TMP($J,"ORTXT",I)="from the following entries. The special characters are ;,-^="
.S I=I+1,^TMP($J,"ORTXT",I)="This is recommended but it is NOT REQUIRED. They are being"
.S I=I+1,^TMP($J,"ORTXT",I)="reported for information only.",I=I+1,^TMP($J,"ORTXT",I)=""
.S J=0 F S J=$O(^TMP($J,"ODFIX",J)) Q:'+J S K="" F S K=$O(^TMP($J,"ODFIX",J,K)) Q:K="" S I=I+1 S ^TMP($J,"ORTXT",I)=^(K)
S I=I+1,^TMP($J,"ORTXT",I)="",I=I+1,^TMP($J,"ORTXT",I)="Patch OR*3*95 post-init complete."
S XMTEXT="^TMP($J,""ORTXT"",",XMSUB="PATCH OR*3*95 Post-init completed"
D ^XMD
ORY95 ;SLC/DAN Post-Init for patch OR*3*95 ;9/18/01 13:38
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**95**;Dec 17, 1997
+2 ;Post-init will check for display text and mnemonics that can potentially cause problems with fileman and the fileman reader (DIR)
POST ; -- postinit
+1 NEW ORMSG
+2 SET ORMSG(1)=""
+3 SET ORMSG(2)="This patch imports the STATUS OF ORDER entry"
+4 SET ORMSG(3)="from the OE/RR PRINT FIELDS file. As a result, the entries"
+5 SET ORMSG(4)="in the OE/RR PRINT FORMAT file need to be recompiled."
+6 SET ORMSG(5)=""
+7 SET ORMSG(6)="**NOTE: If you have made local modifications to the compiled"
+8 SET ORMSG(7)="code in the OE/RR PRINT FORMAT file they will be OVERWRITTEN."
+9 SET ORMSG(8)=""
+10 SET ORMSG(9)="Recompiling..."
+11 DO MES^XPDUTL(.ORMSG)
HANG 3
+12 DO RECMPL^ORPR00
KILL ORMSG
+13 SET ORMSG(1)=""
SET ORMSG(2)="Starting ORDER DIALOG and ORDERABLE ITEMS file checking in the background."
SET ORMSG(3)="You'll receive an email when it finishes."
DO MES^XPDUTL(.ORMSG)
HANG 3
KILL ORMSG
+14 SET ZTRTN="CHECK^ORY95"
SET ZTDTH=$HOROLOG
SET ZTDESC="Patch OR*3*95 Post-Init"
SET ZTSAVE("DUZ")=""
SET ZTIO=""
DO ^%ZTLOAD
QUIT
CHECK ;Enter here to check files for invalid entries
+1 NEW IEN,SUBIEN
+2 KILL ^TMP($JOB)
+3 SET IEN=0
FOR
SET IEN=$ORDER(^ORD(101.41,IEN))
IF '+IEN
QUIT
Begin DoDot:1
+4 ;Check DISPLAY TEXT field first
+5 IF $$CHKNAM^ORUTL($PIECE($GET(^ORD(101.41,IEN,0)),"^",2))
DO REPORT(1,"ODFIX")
+6 ;Check DISPLAY TEXT subfield of ITEMS multiple next
+7 SET SUBIEN=0
FOR
SET SUBIEN=$ORDER(^ORD(101.41,IEN,10,SUBIEN))
IF '+SUBIEN
QUIT
Begin DoDot:2
+8 IF $$CHKNAM^ORUTL($PIECE($GET(^ORD(101.41,IEN,10,SUBIEN,0)),"^",4))
DO REPORT(2,"ODFIX")
+9 ;Check MNEMONIC field next
+10 IF $$CHKMNE^ORUTL($PIECE($GET(^ORD(101.41,IEN,10,SUBIEN,0)),"^",3))
DO REPORT(3,"ODMFIX")
+11 QUIT
End DoDot:2
+12 QUIT
End DoDot:1
+13 ;Check NAME field of ORDERABLE ITEMS file for ;
+14 SET IEN=0
FOR
SET IEN=$ORDER(^ORD(101.43,IEN))
IF '+IEN
QUIT
IF $$CHKNAM^ORUTL($PIECE($GET(^ORD(101.43,IEN,0)),"^"),";")
DO REPORT(4,"OIFIX")
+15 ;Send mail message with results
+16 DO MAIL
+17 QUIT
REPORT(E,FIX) ;Store entries that need to be reported
+1 NEW FIEN
+2 ;get last subscript
SET FIEN=0
IF $DATA(^TMP($JOB,FIX,IEN,FIEN))
SET FIEN=$ORDER(^(999),-1)+1
+3 IF E=1
SET ^TMP($JOB,FIX,IEN,FIEN)="DISPLAY TEXT <"_$PIECE(^ORD(101.41,IEN,0),"^",2)_"> for ORDER DIALOG <"_$PIECE(^(0),"^")_">"
QUIT
+4 IF E=2
SET ^TMP($JOB,FIX,IEN,FIEN)="DISPLAY TEXT <"_$PIECE(^ORD(101.41,IEN,10,SUBIEN,0),"^",4)_"> for SEQUENCE # "_$PIECE(^(0),"^")_" of ORDER DIALOG < "_$PIECE(^ORD(101.41,IEN,0),"^")_">"
QUIT
+5 IF E=3
SET ^TMP($JOB,FIX,IEN,FIEN)="MNEMONIC <"_$PIECE(^ORD(101.41,IEN,10,SUBIEN,0),"^",3)_"> for SEQUENCE # "_$PIECE(^(0),"^")_" of ORDER DIALOG <"_$PIECE(^ORD(101.41,IEN,0),"^")_">"
QUIT
+6 IF E=4
SET ^TMP($JOB,FIX,IEN,FIEN)=$PIECE(^ORD(101.43,IEN,0),"^")_" entry in ORDERABLE ITEMS file"
QUIT
+7 QUIT
MAIL ;prepare results for sending
+1 NEW XMSUB,XMTEXT,XMDUZ,XMY,XMZ,XMMG,ORTXT,I,J,K
+2 SET XMDUZ="PATCH OR*3*95 POST-INIT"
SET XMY(.5)=""
IF $GET(DUZ)
SET XMY(DUZ)=""
+3 ;Check mnemonics in this section
+4 SET I=0
IF '$DATA(^TMP($JOB,"ODMFIX"))
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="No problems with MNEMONIC names were found."
+5 ;Add entries that have problems with mnemonics
IF $DATA(^TMP($JOB,"ODMFIX"))
Begin DoDot:1
+6 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="The following entries in the ORDER DIALOG file have MNEMONICS that are the same"
+7 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="as a standard List Manager mnemonic and need to be changed."
+8 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="List Manager mnemonics take precedence over the MNEMONIC field and"
+9 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="will cause the entry to be unselectable by MNEMONIC from within List Manager."
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
+10 SET J=0
FOR
SET J=$ORDER(^TMP($JOB,"ODMFIX",J))
IF '+J
QUIT
SET K=""
FOR
SET K=$ORDER(^TMP($JOB,"ODMFIX",J,K))
IF K=""
QUIT
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=^(K)
End DoDot:1
+11 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
+12 ;Check orderable items name section
+13 IF '$DATA(^TMP($JOB,"OIFIX"))
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="No problems with ORDERABLE ITEM names were found."
+14 ;add ORDERABLE ITEMS that have problems
IF $DATA(^TMP($JOB,"OIFIX"))
Begin DoDot:1
+15 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="The following entries in the ORDERABLE ITEMS file contain"
+16 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="a semi colon (;) and may cause problems during editing. You need to remove"
+17 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="these characters from these entries to avoid potential problems."
+18 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
+19 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="Please use PACKAGE SPECIFIC options to change the names. The changes"
+20 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="will then update the ORDERABLE ITEMS file and will remain synchronized."
+21 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
+22 SET J=0
FOR
SET J=$ORDER(^TMP($JOB,"OIFIX",J))
IF '+J
QUIT
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=^TMP($JOB,"OIFIX",J,0)
End DoDot:1
+23 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
+24 ;Check display text section
+25 IF '$DATA(^TMP($JOB,"ODFIX"))
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="No problems with DISPLAY TEXT in the ORDER DIALOG file were found."
+26 ;add ORDER DIALOG problems to mail message
IF $DATA(^TMP($JOB,"ODFIX"))
Begin DoDot:1
+27 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="The following entries in the ORDER DIALOG file contain special"
+28 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="characters in the DISPLAY TEXT field or the DISPLAY TEXT subfield of"
+29 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="the ITEMS multiple that will not display in the List Manager display."
+30 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="In order to be consistent you may wish to remove the special characters"
+31 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="from the following entries. The special characters are ;,-^="
+32 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="This is recommended but it is NOT REQUIRED. They are being"
+33 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="reported for information only."
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
+34 SET J=0
FOR
SET J=$ORDER(^TMP($JOB,"ODFIX",J))
IF '+J
QUIT
SET K=""
FOR
SET K=$ORDER(^TMP($JOB,"ODFIX",J,K))
IF K=""
QUIT
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=^(K)
End DoDot:1
+35 SET I=I+1
SET ^TMP($JOB,"ORTXT",I)=""
SET I=I+1
SET ^TMP($JOB,"ORTXT",I)="Patch OR*3*95 post-init complete."
+36 SET XMTEXT="^TMP($J,""ORTXT"","
SET XMSUB="PATCH OR*3*95 Post-init completed"
+37 DO ^XMD