| 1 | SCCVPOST ;ALB/MJK - Patch SD*5.3*201 Post-Install Routine ; 11/5/97 | 
|---|
| 2 | ;;5.3;Scheduling;**211**,Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ; --- main entry point | 
|---|
| 5 | S U="^" | 
|---|
| 6 | D BMES^XPDUTL("Post-Install Started...") | 
|---|
| 7 | ; | 
|---|
| 8 | ; -- main driver calls | 
|---|
| 9 | D RES,LOGDATA | 
|---|
| 10 | ; | 
|---|
| 11 | D BMES^XPDUTL("Post-Install Finished.") | 
|---|
| 12 | Q | 
|---|
| 13 | ; | 
|---|
| 14 | RES ; -- set up resource device | 
|---|
| 15 | N NAME,SLOTS,DESC | 
|---|
| 16 | D BMES^XPDUTL("   >>> SCCV RESOURCE device setup...") | 
|---|
| 17 | S NAME="SCCV RESOURCE" | 
|---|
| 18 | S SLOTS=1 | 
|---|
| 19 | S DESC="Scheduling Conversion Resource Device" | 
|---|
| 20 | ; | 
|---|
| 21 | ; -- check to see if device already exists | 
|---|
| 22 | IF $D(^%ZIS(1,"B",NAME)) D  G RESQ | 
|---|
| 23 | . D MES^XPDUTL("         ...Device already exists.") | 
|---|
| 24 | ; | 
|---|
| 25 | ; -- create device | 
|---|
| 26 | IF $$RES^XUDHSET(NAME,,SLOTS,DESC)>0 D  G RESQ | 
|---|
| 27 | . D MES^XPDUTL("         ...Resource device successfully created.") | 
|---|
| 28 | ; | 
|---|
| 29 | ; -- indicate device creation failed | 
|---|
| 30 | D MES^XPDUTL("         ...Unable to create resource device!") | 
|---|
| 31 | RESQ Q | 
|---|
| 32 | ; | 
|---|
| 33 | LOGDATA ; -- queue job to transfer 'edited by' & 'date entry made' data | 
|---|
| 34 | N SDUZ,ZTRTN,ZTIO,ZTDESC,ZTDTH,ZTSAVE,ZTSK | 
|---|
| 35 | ; | 
|---|
| 36 | ; -- quit if pre-test | 
|---|
| 37 | IF '$$OK^SCCVU(0) Q | 
|---|
| 38 | ; | 
|---|
| 39 | S SDUZ=$G(DUZ) | 
|---|
| 40 | D BMES^XPDUTL("   >>> Queuing task to transfer log data from Scheduling Visits file") | 
|---|
| 41 | ; | 
|---|
| 42 | ; -- following line in for interactive testing | 
|---|
| 43 | ;D LOGQUE Q | 
|---|
| 44 | ; | 
|---|
| 45 | ; -- has data already been xfer'd | 
|---|
| 46 | IF $P($G(^SD(404.91,1,"CNV")),U,8) D  G LOGDATAQ | 
|---|
| 47 | . D MES^XPDUTL("         o  Data already has been transferred.") | 
|---|
| 48 | . D MES^XPDUTL("            (No task queued.)") | 
|---|
| 49 | . D MES^XPDUTL("   >>> Done.") | 
|---|
| 50 | ; | 
|---|
| 51 | ; -- queue task | 
|---|
| 52 | S ZTIO="" | 
|---|
| 53 | S ZTRTN="LOGQUE^SCCVPOST" | 
|---|
| 54 | S ZTDESC="Transferring log data from Scheduling Visits file" | 
|---|
| 55 | S ZTDTH=$$NOW^XLFDT() | 
|---|
| 56 | F X="SDUZ" S ZTSAVE(X)="" | 
|---|
| 57 | D ^%ZTLOAD | 
|---|
| 58 | D:$D(ZTSK) MES^XPDUTL("       -> Task: #"_ZTSK) | 
|---|
| 59 | D MES^XPDUTL("   >>> Done.") | 
|---|
| 60 | LOGDATAQ Q | 
|---|
| 61 | ; | 
|---|
| 62 | LOGQUE ; -- TaskMan entry point to queue log data transfer | 
|---|
| 63 | ; | 
|---|
| 64 | N SDATE,SDOE,DR,DA,DIE,SDSTOP,SDTOT,SDBEG,SDEND,SDDR,SDFIN | 
|---|
| 65 | ; | 
|---|
| 66 | ; -- quit if pre-test | 
|---|
| 67 | IF '$$OK^SCCVU(0) Q | 
|---|
| 68 | ; | 
|---|
| 69 | S SDTOT=0 | 
|---|
| 70 | S SDBEG=$$NOW^XLFDT() | 
|---|
| 71 | ; | 
|---|
| 72 | ; -- get date ACRP started on target system ; use as loop start date | 
|---|
| 73 | S SDATE=$P($G(^SD(404.91,1,"AMB")),U,2) | 
|---|
| 74 | ; | 
|---|
| 75 | ; -- get date of last a/e ; use as finish date | 
|---|
| 76 | S SDFIN=$P($O(^SDV("A"),-1),".")_".24" | 
|---|
| 77 | ; | 
|---|
| 78 | ; -- scan ^SCE records | 
|---|
| 79 | F  S SDATE=$O(^SCE("B",SDATE)) Q:'SDATE!(SDATE>SDFIN)  D  S SDSTOP=$$S^%ZTLOAD Q:SDSTOP | 
|---|
| 80 | . S SDOE=0 F  S SDOE=$O(^SCE("B",SDATE,SDOE)) Q:'SDOE  D | 
|---|
| 81 | . . S SDDR=$$BUILDR(.SDOE) | 
|---|
| 82 | . . IF SDDR]"" D | 
|---|
| 83 | . . . S DIE="^SCE(",DA=SDOE,DR=SDDR D ^DIE | 
|---|
| 84 | . . . S SDTOT=SDTOT+1 | 
|---|
| 85 | ; | 
|---|
| 86 | S SDEND=$$NOW^XLFDT() | 
|---|
| 87 | ; | 
|---|
| 88 | ; -- send bulletin | 
|---|
| 89 | D BULL | 
|---|
| 90 | ; | 
|---|
| 91 | ; -- set completion flag | 
|---|
| 92 | S DA=1,DR="908////"_SDEND,DIE="^SD(404.91," D ^DIE | 
|---|
| 93 | ; | 
|---|
| 94 | Q | 
|---|
| 95 | ; | 
|---|
| 96 | BUILDR(SDOE) ; -- build DR string | 
|---|
| 97 | ; | 
|---|
| 98 | N SDDR | 
|---|
| 99 | N SDOE0,SDOECNV,SDOEUSER,SDORG,SCEUSR,SCECRE,DFN | 
|---|
| 100 | N SDT,SDCS,SDCS0,SDVUSR,SDVCRE,SDVOE | 
|---|
| 101 | S SDDR="" | 
|---|
| 102 | ; | 
|---|
| 103 | ; -- get sce data | 
|---|
| 104 | S SDOE0=$G(^SCE(SDOE,0)) | 
|---|
| 105 | S SDOECNV=$G(^SCE(SDOE,"CNV")) | 
|---|
| 106 | S SDOEUSER=$G(^SCE(SDOE,"USER")) | 
|---|
| 107 | S SDORG=+$P(SDOE0,U,8) | 
|---|
| 108 | S SCEUSR=+SDOEUSER | 
|---|
| 109 | S SCECRE=+$P(SDOECNV,U,2) | 
|---|
| 110 | ; | 
|---|
| 111 | ; -- quit if not an add/edit | 
|---|
| 112 | IF SDORG'=2 G BUILDRQ | 
|---|
| 113 | ; | 
|---|
| 114 | ; -- get sdv data | 
|---|
| 115 | S DFN=+$P(SDOE0,U,2) | 
|---|
| 116 | S SDT=$$SDVIEN^SCCVU(DFN,+SDOE0) | 
|---|
| 117 | S SDCS=$P(SDOE0,U,9) | 
|---|
| 118 | S SDCS0=$G(^SDV(+SDT,"CS",+SDCS,0)) | 
|---|
| 119 | S SDVUSR=$P(SDCS0,U,2) | 
|---|
| 120 | S SDVCRE=$P(SDCS0,U,7) | 
|---|
| 121 | S SDVOE=+$P(SDCS0,U,8) | 
|---|
| 122 | ; | 
|---|
| 123 | ; -- quit if cs node not found | 
|---|
| 124 | IF SDCS0="" G BUILDRQ | 
|---|
| 125 | ; | 
|---|
| 126 | ; -- quit if ien numbers don't match | 
|---|
| 127 | IF SDOE'=SDVOE G BUILDRQ | 
|---|
| 128 | ; | 
|---|
| 129 | ; -- compare sce and sdv data and set DR string accordingly | 
|---|
| 130 | IF 'SCEUSR,SDVUSR S SDDR="101////"_SDVUSR | 
|---|
| 131 | IF 'SCECRE,SDVCRE S SDDR=SDDR_$S(SDDR]"":";",1:"")_"902////"_SDVCRE | 
|---|
| 132 | ; | 
|---|
| 133 | BUILDRQ Q SDDR | 
|---|
| 134 | ; | 
|---|
| 135 | BULL ; -- send message indicating transfer of log data complete or stopped | 
|---|
| 136 | N SDTEXT,SDCNT,XMSUB,XMN,XMTEXT,XMDUZ,XMY | 
|---|
| 137 | S SDCNT=0 | 
|---|
| 138 | ; | 
|---|
| 139 | D LINE("") | 
|---|
| 140 | D LINE("  >>>  Task Started: "_$$FMTE^XLFDT(SDBEG)) | 
|---|
| 141 | D LINE("           Finished: "_$$FMTE^XLFDT(SDEND)) | 
|---|
| 142 | D LINE("") | 
|---|
| 143 | ; | 
|---|
| 144 | ; -- build text | 
|---|
| 145 | IF SDSTOP D | 
|---|
| 146 | . D LINE("   >>> Task stopped by user. <<<") | 
|---|
| 147 | ELSE  D | 
|---|
| 148 | . ; -- build text | 
|---|
| 149 | . D LINE("   >>> Task Completed.") | 
|---|
| 150 | ; | 
|---|
| 151 | D LINE("") | 
|---|
| 152 | D LINE("   >>> "_SDTOT_" Records processed.") | 
|---|
| 153 | ; | 
|---|
| 154 | ; -- set xm vars and send message | 
|---|
| 155 | S XMSUB="Transfer of Scheduling Visits Log Data - Task Information" | 
|---|
| 156 | S XMN=0 | 
|---|
| 157 | S XMTEXT="SDTEXT(" | 
|---|
| 158 | S XMDUZ=.5 | 
|---|
| 159 | S XMY(SDUZ)="" | 
|---|
| 160 | D ^XMD | 
|---|
| 161 | Q | 
|---|
| 162 | ; | 
|---|
| 163 | LINE(TEXT) ; -- add line of text | 
|---|
| 164 | S SDCNT=SDCNT+1 | 
|---|
| 165 | S SDTEXT(SDCNT)=TEXT | 
|---|
| 166 | Q | 
|---|
| 167 | ; | 
|---|