| 1 | SCMSP66 ;ALB/JLU;Post kids routine driver;8/13/97 | 
|---|
| 2 | ;;5.3;Scheduling;**66**;AUG 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | EN N TMP,ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSK,SCQUEUE,X,Y,%,%H,PROTOCOL | 
|---|
| 5 | ;Queue task to populate validator parameter in clinic setup | 
|---|
| 6 | I XPDQUES("POS1")=1 D | 
|---|
| 7 | .S TMP="NOW" | 
|---|
| 8 | .D BMES^XPDUTL("Background job to activate AMBCARE validation checker at") | 
|---|
| 9 | .D MES^XPDUTL("Check-Out for all clinics will be queued for "_TMP) | 
|---|
| 10 | .S ZTDTH=$H,ZTIO="",ZTRTN="VALIDATE^SCMSP66" | 
|---|
| 11 | .D ^%ZTLOAD | 
|---|
| 12 | .S ZTSK=+$G(ZTSK) | 
|---|
| 13 | .I ('ZTSK) D BMES^XPDUTL("*** Unable to queue task ***") | 
|---|
| 14 | .I (ZTSK) D BMES^XPDUTL("Queued as task number "_ZTSK) | 
|---|
| 15 | .Q | 
|---|
| 16 | ; | 
|---|
| 17 | D BMES^XPDUTL("") | 
|---|
| 18 | D BMES^XPDUTL("Removing AMBCARE event handler from Scheduling event driver item list.") | 
|---|
| 19 | S PROTOCOL="" | 
|---|
| 20 | D REMOVE(.PROTOCOL) | 
|---|
| 21 | ; | 
|---|
| 22 | D BMES^XPDUTL("") | 
|---|
| 23 | D BMES^XPDUTL("Adding AMBCARE event handler to the exit action of SDAM APPOINTMENT EVENTS") | 
|---|
| 24 | D ADD(PROTOCOL) | 
|---|
| 25 | ; | 
|---|
| 26 | I '$D(^SD(409.75,"AEDT")) DO | 
|---|
| 27 | .D BMES^XPDUTL("") | 
|---|
| 28 | .D BMES^XPDUTL("Re-indexing the four new cross references in the Transmitted Outpatient Encounter Error file.") | 
|---|
| 29 | .S DIK="^SD(409.75,",DIK(1)=".01^AEDT^AECL^AER^ACOD" | 
|---|
| 30 | .D ENALL^DIK | 
|---|
| 31 | .D MES^XPDUTL("Re-indexing completed!") | 
|---|
| 32 | .Q | 
|---|
| 33 | ; | 
|---|
| 34 | I '$D(^DD(409.76,0,"ID",11)) DO | 
|---|
| 35 | .S $P(^SD(409.76,0),U,2)=$P(^SD(409.76,0),U,2)_"I" | 
|---|
| 36 | .S ^DD(409.76,0,"ID",11)="D EN^DDIOL($P(^(1),U,1))" | 
|---|
| 37 | .Q | 
|---|
| 38 | ; | 
|---|
| 39 | Q | 
|---|
| 40 | ; | 
|---|
| 41 | VALIDATE ; | 
|---|
| 42 | ;This entry point will set the parameter in the clinic setup to yes | 
|---|
| 43 | ;run the validator at check out.  It will be queued from the post init | 
|---|
| 44 | ;of the KIDS build SD*5.3*66.  It will also send a completion bulletin | 
|---|
| 45 | ;to the SCDX AMBCARE bulletin group. | 
|---|
| 46 | ; | 
|---|
| 47 | N SCX,SCY,SCZ,DIC,DIE,DA,DR,X,Y,%,%H,%I | 
|---|
| 48 | N MSGTXT,XMB,XMTEXT,XMY,XMDUZ,XMDT,XMZ | 
|---|
| 49 | ; | 
|---|
| 50 | S SCX=0 | 
|---|
| 51 | ;looping through the Hospital Location to set the clinics | 
|---|
| 52 | F  S SCX=$O(^SC("B",SCX)) Q:SCX=""  S SCY=0 F  S SCY=$O(^SC("B",SCX,SCY)) Q:'SCY  D | 
|---|
| 53 | . S SCZ=$G(^SC(SCY,0)) Q:SCZ="" | 
|---|
| 54 | . I $P(SCZ,U,3)'="C" Q | 
|---|
| 55 | . I $$OCCA^SCDXUTL(SCY) Q | 
|---|
| 56 | . S DIE="^SC(",DA=SCY,DR="30///1" D ^DIE | 
|---|
| 57 | ;Get current date/time | 
|---|
| 58 | D NOW^%DTC | 
|---|
| 59 | ;Convert to external format | 
|---|
| 60 | S SCZ=$P(%,".",2)_"000000" | 
|---|
| 61 | S SCY=$E(SCZ,1,2)_":"_$E(SCZ,3,4)_":"_$E(SCZ,5,6) | 
|---|
| 62 | S SCX=%I(1)_"/"_%I(2)_"/"_(%I(3)+1700)_" @ "_SCY | 
|---|
| 63 | ;Send completion bulletin | 
|---|
| 64 | ;Set message text | 
|---|
| 65 | S MSGTXT(1)=" " | 
|---|
| 66 | S MSGTXT(2)="Updating of all clinics contained in the HOSPITAL LOCATION" | 
|---|
| 67 | S MSGTXT(3)="file (#44) to run the AMBCARE validator at Check-Out was" | 
|---|
| 68 | S MSGTXT(4)="completed on "_SCX | 
|---|
| 69 | S MSGTXT(5)=" " | 
|---|
| 70 | ;Set bulletin subject | 
|---|
| 71 | S XMB(1)="HOSPITAL LOCATION UPDATE COMPLETED" | 
|---|
| 72 | ;Deliver bulletin | 
|---|
| 73 | S XMB="SCDX AMBCARE TO NPCDB SUMMARY" | 
|---|
| 74 | S XMTEXT="MSGTXT(" | 
|---|
| 75 | D ^XMB | 
|---|
| 76 | Q | 
|---|
| 77 | ; | 
|---|
| 78 | REMOVE(PROTOCOL) ;This entry point will remove the SCDX AMBCARE EVENT handler from the | 
|---|
| 79 | ;SDAM APPOINTMENT EVENT protocol.  A bulletin will be sent upon | 
|---|
| 80 | ;completion. | 
|---|
| 81 | ; | 
|---|
| 82 | N ERR,DIC,X,Y | 
|---|
| 83 | S ERR=0 | 
|---|
| 84 | ;find SDAM APPOINTMENT EVENT | 
|---|
| 85 | S DIC="^ORD(101,",DIC(0)="OSX",X="SDAM APPOINTMENT EVENTS" | 
|---|
| 86 | D ^DIC | 
|---|
| 87 | I Y<0 S ERR=1 G RQUIT | 
|---|
| 88 | S PROTOCOL=+Y | 
|---|
| 89 | ;find SCDX AMBCARE EVENT protocol in item list | 
|---|
| 90 | S DIC="^ORD(101,"_PROTOCOL_",10,",DIC(0)="OSX",X="SCDX AMBCARE EVENT" | 
|---|
| 91 | D ^DIC | 
|---|
| 92 | I Y<0 S ERR=1 G RQUIT | 
|---|
| 93 | ; | 
|---|
| 94 | S DIK="^ORD(101,"_PROTOCOL_",10," | 
|---|
| 95 | S DA=+Y,DA(1)=PROTOCOL | 
|---|
| 96 | D ^DIK | 
|---|
| 97 | K DIK,DA | 
|---|
| 98 | ; | 
|---|
| 99 | RQUIT ; | 
|---|
| 100 | D BMES^XPDUTL("Removal of SCDX AMBCARE EVENT protocol from the Scheduling Event driver") | 
|---|
| 101 | D MES^XPDUTL($S(ERR:"was not completed.  Please review the installation instructions of this patch.",1:"was completed.")) | 
|---|
| 102 | Q | 
|---|
| 103 | ; | 
|---|
| 104 | ADD(PROTOCOL) ;Adds the AMBCARE event handler to the exit action of SDAM | 
|---|
| 105 | ;APPOINTMENT EVENTS protocol. | 
|---|
| 106 | ; | 
|---|
| 107 | I PROTOCOL="" DO  Q | 
|---|
| 108 | .D BMES^XPDUTL("") | 
|---|
| 109 | .D MES^XPDUTL("The protocol 'SDAM APPOINTMENT EVENTS' could not be found.") | 
|---|
| 110 | .D MES^XPDUTL("Please review the installation instructions for this patch.") | 
|---|
| 111 | .Q | 
|---|
| 112 | N CONTENTS,DIC,DR,DA,DIQ,OLD | 
|---|
| 113 | S DIC="^ORD(101,",DR=15,DA=PROTOCOL,DIQ="RES",DIQ(0)="E" | 
|---|
| 114 | D EN^DIQ1 | 
|---|
| 115 | ; | 
|---|
| 116 | ;nothing in the exit action just add. | 
|---|
| 117 | I RES(101,DA,15,"E")="" D LOAD(DA,"D EN^SCDXHLDR","") Q | 
|---|
| 118 | ; | 
|---|
| 119 | ;the call to scdxhldr already exists. | 
|---|
| 120 | I RES(101,DA,15,"E")["SCDXHLDR" DO  Q | 
|---|
| 121 | .D BMES^XPDUTL("") | 
|---|
| 122 | .D MES^XPDUTL("The AMBCARE event handler call exists in the Scheduling event driver exit action!") | 
|---|
| 123 | .Q | 
|---|
| 124 | ;save off old line and try building a new one | 
|---|
| 125 | S OLD=RES(101,DA,15,"E") | 
|---|
| 126 | S RES(101,DA,15,"E")=RES(101,DA,15,"E")_" D EN^SCDXHLDR" | 
|---|
| 127 | D LOAD(DA,RES(101,DA,15,"E"),OLD) | 
|---|
| 128 | Q | 
|---|
| 129 | ; | 
|---|
| 130 | LOAD(DA,DATA,OLD) ; | 
|---|
| 131 | N SCMS,SCIENS | 
|---|
| 132 | S SCIENS=DA_"," | 
|---|
| 133 | S SCMS(101,SCIENS,15)=DATA | 
|---|
| 134 | ; | 
|---|
| 135 | D FILE^DIE("KE","SCMS","SCMS(""ERR"")") | 
|---|
| 136 | ;if no error | 
|---|
| 137 | I '$D(SCMS("ERR")) DO  Q | 
|---|
| 138 | .D BMES^XPDUTL("") | 
|---|
| 139 | .D MES^XPDUTL("Updating of 'SDAM APPOINTMENT EVENTS' exit action complete!") | 
|---|
| 140 | .Q | 
|---|
| 141 | K SCMS("ERR") | 
|---|
| 142 | ;file only our stuff and post error | 
|---|
| 143 | S SCMS(101,SCIENS,15)="D EN^SCDXHLDR" | 
|---|
| 144 | D FILE^DIE("KE","SCMS","SCMS(""ERR"")") | 
|---|
| 145 | D BMES^XPDUTL("") | 
|---|
| 146 | D MES^XPDUTL("The exit action for 'SDAM APPOINTMENT EVENTS' on your system was:") | 
|---|
| 147 | D MES^XPDUTL(OLD) | 
|---|
| 148 | D MES^XPDUTL("An attempt was made to replace it, but failed.") | 
|---|
| 149 | D BMES^XPDUTL("It has been replaced with D EN^SCDXHLDR") | 
|---|
| 150 | D MES^XPDUTL("You will need to edit this protocol's exit action to restore your changes.") | 
|---|
| 151 | Q | 
|---|