| 1 | OCXOLOG ;SLC/RJS,CLA - MAINTAIN RAW DATA LOG ;10/29/98  12:37
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32**;Dec 17,1997
 | 
|---|
| 3 |  ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | NEW(OCXA,OCXS,OCXU,OCXP) ;
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;  OCXA - ARRAY NAME
 | 
|---|
| 8 |  ;  OCXS - DATA SOURCE
 | 
|---|
| 9 |  ;  OCXU - USER
 | 
|---|
| 10 |  ;  OCXP - PATIENT
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  I '$D(^OCXD(861,1,0)) S ^OCXD(861,1,0)="SITE PREFERENCES"
 | 
|---|
| 13 |  F  S OCXI=$O(^OCXD(861,"A"),-1)+1 L +^OCXD(861,OCXI):0 I  Q:'$D(^OCXD(861,OCXI))  L -^OCXD(861,OCXI)
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  N OCXR,OCXTEMP,OCXD1,OCXD2
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  S OCXDT=$$DATE_" "
 | 
|---|
| 18 |  S OCXR(0)=OCXDT
 | 
|---|
| 19 |  S OCXR("ARRAY")=OCXA
 | 
|---|
| 20 |  S OCXR("JOB")=$J
 | 
|---|
| 21 |  S:$L($G(OCXS)) OCXR("SOURCE")=$G(OCXS)
 | 
|---|
| 22 |  S OCXR("VERSION")=$P($T(+3),";;",3)
 | 
|---|
| 23 |  S OCXR("STATUS")="RUNNING"
 | 
|---|
| 24 |  S:$G(OCXU) OCXR("USER")="["_OCXU_"] "_$P($G(^VA(200,+OCXU,0)),U,1)
 | 
|---|
| 25 |  S:$G(OCXP) OCXR("PATIENT")="["_OCXP_"] "_$P($G(^DPT(+OCXP,0)),U,1)
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  S OCXD1=0 F  S OCXD1=$O(@OCXA@(OCXD1)) Q:'(OCXD1)  D
 | 
|---|
| 28 |  .N OCXTXT
 | 
|---|
| 29 |  .S OCXTXT=@OCXA@(OCXD1)
 | 
|---|
| 30 |  .I ($L(OCXTXT)<200) S OCXR("DATA",$$LAST+1,0)=OCXTXT Q
 | 
|---|
| 31 |  .N OCXOVER,OCXOV0
 | 
|---|
| 32 |  .F  Q:'$L(OCXTXT)  D
 | 
|---|
| 33 |  ..S OCXR("DATA",$$LAST+1,0)=$E(OCXTXT,1,200)
 | 
|---|
| 34 |  ..S OCXTXT=$E(OCXTXT,201,$L(OCXTXT))
 | 
|---|
| 35 |  ..S:$L(OCXTXT) OCXTXT=">>>"_OCXTXT
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  S:$O(OCXR("DATA",0)) OCXR("DATA",0)="^^"_$$LAST_"^"_$$LAST_"^"_$$TODAY
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  M ^OCXD(861,OCXI)=OCXR
 | 
|---|
| 40 |  S ^OCXD(861,"B",OCXDT,OCXI)=""
 | 
|---|
| 41 |  S $P(^OCXD(861,0),"^",3)=$P(^OCXD(861,0),"^",3)+1
 | 
|---|
| 42 |  S $P(^OCXD(861,0),"^",4)=OCXI
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  L -^OCXD(861,OCXI)
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  W:$G(OCXTRACE) !,"OCX Logging message ",OCXS," # ",OCXI
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  K OCXR,OCXTEMP,OCXD1,OCXD2
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  Q OCXI
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 | FINISH(OCXL) ;
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  I $G(OCXL),$D(^OCXD(861,OCXL,0)) S ^OCXD(861,OCXL,"STATUS")="FINISHED NORMALLY AT "_$$DATE
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | LAST() Q $O(OCXR("DATA",""),-1)
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | CLEAR N OCXX S OCXX=$P(^OCXD(861,0),U,1,2) K ^OCXD(861) S ^OCXD(861,0)=OCXX Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | DATE() N X,Y,%DT S X="N",%DT="ST" D ^%DT Q ((Y\1)+17000000)_"."_$E(1000000+((Y#1)*1000000),2,7)
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | TODAY() N X,Y,%DT S X="T",%DT="" D ^%DT Q Y
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | CONV(Y) Q:'(Y["@") Y Q $P(Y,"@",1)_" at "_$P(Y,"@",2,99)
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | PURGE ; Use this for an emergency purge of the raw data
 | 
|---|
| 68 |  ; log in case of <diskfull> errors
 | 
|---|
| 69 |  N OCXX S OCXX=$P($G(^OCXD(861,0)),"^",1,2) Q:'$L(OCXX)
 | 
|---|
| 70 |  K ^OCXD(861) S ^OCXD(861,0)=OCXX
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 |  ;
 | 
|---|