[613] | 1 | QAC20PST ;ALB/TKW,RRG - POST-INSTALL FOR PATCH QAC*2*20 Repair ROC numbers ;12/06/06 14:30
|
---|
| 2 | ;;2.0;Patient Representative;**20**;07/25/1995;Build 7
|
---|
| 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | ENV ; Environment Check
|
---|
| 6 | ;
|
---|
| 7 | Q:'$G(XPDENV)
|
---|
| 8 | W ! K %DT D NOW^%DTC S %DT="RAEX",%DT(0)=%,%DT("A")="Queue the Post-Install to run at what Date@Time: "
|
---|
| 9 | D ^%DT K %DT I $D(DTOUT)!(Y<0) W !!,"Cannot install the patch without queuing the post-install. Install aborted!",! S XPDABORT=2 Q
|
---|
| 10 | S @XPDGREF@("QAC20")=Y K DTOUT
|
---|
| 11 | Q
|
---|
| 12 | ;
|
---|
| 13 | EN ;
|
---|
| 14 | S ZTDTH=@XPDGREF@("QAC20")
|
---|
| 15 | S ZTRTN="START^QAC20PST",ZTDESC="Background job to repair ROC numbers",ZTIO="" D ^%ZTLOAD K ZTDTH,ZTRTN,ZTIO,ZTDESC
|
---|
| 16 | I $D(ZTSK)&('$D(ZTQUEUED)) D BMES^XPDUTL("Task Queued!")
|
---|
| 17 | K ZTSK,ZTQUEUED
|
---|
| 18 | Q
|
---|
| 19 | ;
|
---|
| 20 | START ;
|
---|
| 21 | N PARENT,ROCNO,NEWROC,IEN,QA0,YR,DIR,I,Y,TIME
|
---|
| 22 | K ^TMP("QACROCNO",$J)
|
---|
| 23 | ; Set up mailman message format
|
---|
| 24 | N LCNT,LINE,LINE2,MESS,MSG,MSG1
|
---|
| 25 | S LCNT=1,$P(LINE,"-",80)="",$P(LINE2,"=",80)=""
|
---|
| 26 | K ^TMP($J)
|
---|
| 27 | S MESS="Repair ROC numbers",MSG1=" beginning at "
|
---|
| 28 | D TIME
|
---|
| 29 | S ^TMP($J,"P20",LCNT)="",LCNT=LCNT+1
|
---|
| 30 | ;
|
---|
| 31 | ; Find parent station number from QUALITY ASSURANCE SITE PARAMETERS file
|
---|
| 32 | S PARENT=$P($G(^QA(740,1,0)),"^"),PARENT=$$STA^XUAF4(PARENT)
|
---|
| 33 | I PARENT="" S ^TMP($J,"P20",LCNT)="Cannot find Parent Institution",LCNT=LCNT+1 D XMT Q
|
---|
| 34 | ;
|
---|
| 35 | ; Build lists of ROCs with invalid numbers by year.
|
---|
| 36 | F I=0:0 S I=$O(^QA(745.1,I)) Q:'I S QA0=$G(^(I,0)),ROCNO=$P(QA0,"^") D
|
---|
| 37 | . I ROCNO="" S ^TMP("QACROCNO",$J,I," ")="" Q
|
---|
| 38 | . S YR=$E($P(QA0,"^",2),1,3)
|
---|
| 39 | . I ($P(ROCNO,".")'=PARENT)!(ROCNO'?3N.AN1"."6N) D
|
---|
| 40 | .. S:YR YR(YR)=""
|
---|
| 41 | .. S ^TMP("QACROCNO",$J,I,ROCNO)=YR Q
|
---|
| 42 | . Q
|
---|
| 43 | I '$D(^TMP("QACROCNO",$J)) S ^TMP($J,"P20",LCNT)="No invalid ROC numbers were found.",LCNT=LCNT+1 D XMT Q
|
---|
| 44 | ;
|
---|
| 45 | ; Find default 'last sequential number' for ROCs in each year.
|
---|
| 46 | S YR=""
|
---|
| 47 | F S YR=$O(YR(YR)) Q:YR="" D
|
---|
| 48 | . S ROCNO=$O(^QA(745.1,"B",PARENT_"."_$E(YR,2,3)_"9999"),-1)
|
---|
| 49 | . I $P(ROCNO,".")=PARENT,$E($P(ROCNO,".",2),1,2)=$E(YR,2,3) S YR(YR)=+$E($P(ROCNO,".",2),3,6) Q
|
---|
| 50 | . S YR(YR)=0 Q
|
---|
| 51 | ;
|
---|
| 52 | ; Assign a suggested new number for each ROC
|
---|
| 53 | F IEN=0:0 S IEN=$O(^TMP("QACROCNO",$J,IEN)) Q:'IEN D
|
---|
| 54 | . S ROCNO="" F S ROCNO=$O(^TMP("QACROCNO",$J,IEN,ROCNO)) Q:ROCNO="" D
|
---|
| 55 | .. S YR=^TMP("QACROCNO",$J,IEN,ROCNO) Q:YR="" Q:'$D(YR(YR))
|
---|
| 56 | .. S I=YR(YR)+1,YR(YR)=I
|
---|
| 57 | .. S NEWROC=PARENT_"."_$E(YR,2,3)_$E("000",1,(4-$L(I)))_I
|
---|
| 58 | .. S $P(^TMP("QACROCNO",$J,IEN,ROCNO),"^",2)=NEWROC Q
|
---|
| 59 | . Q
|
---|
| 60 | ;
|
---|
| 61 | ;
|
---|
| 62 | FIX ; Repair ROC numbers
|
---|
| 63 | N FDA,CNT
|
---|
| 64 | S CNT=0
|
---|
| 65 | F IEN=0:0 S IEN=$O(^TMP("QACROCNO",$J,IEN)) Q:'IEN D
|
---|
| 66 | . S ROCNO="" F S ROCNO=$O(^TMP("QACROCNO",$J,IEN,ROCNO)) Q:ROCNO="" D:ROCNO'=" "
|
---|
| 67 | .. S NEWROC=$P(^TMP("QACROCNO",$J,IEN,ROCNO),"^",2) I NEWROC="" S ^TMP($J,"P20",LCNT)="ROC number "_ROCNO_" could not be changed. Please review manually for a missing Date of Contact.",LCNT=LCNT+1 Q
|
---|
| 68 | .. S ^TMP($J,"P20",LCNT)="ROC Number changed from "_ROCNO_" to "_NEWROC,LCNT=LCNT+1
|
---|
| 69 | .. K FDA S FDA(745.1,IEN_",",.01)=NEWROC
|
---|
| 70 | .. D FILE^DIE("","FDA")
|
---|
| 71 | .. S CNT=CNT+1
|
---|
| 72 | .. Q
|
---|
| 73 | . Q
|
---|
| 74 | S ^TMP($J,"P20",LCNT)=CNT_" ROC Numbers have been corrected.",LCNT=LCNT+1
|
---|
| 75 | D XMT
|
---|
| 76 | Q
|
---|
| 77 | ;
|
---|
| 78 | ENRPT ; Setup to print report of invalid ROCs
|
---|
| 79 | N ZTSAVE
|
---|
| 80 | S ZTSAVE("PATSHDR")=""
|
---|
| 81 | D EN^XUTMDEVQ("DQRPT^QAC20PST","Report of Invalid ROCs",.ZTSAVE)
|
---|
| 82 | Q
|
---|
| 83 | ;
|
---|
| 84 | DQRPT ; Print report of invalid ROCs
|
---|
| 85 | N PAGENO,LNCNT,ROCNO,IEN,NEWROC,HDDATE,%,%H,%I
|
---|
| 86 | S PAGENO=1,LNCNT=0
|
---|
| 87 | D NOW^%DTC S HDDATE=$$FMTE^XLFDT(%)
|
---|
| 88 | U IO D HDR
|
---|
| 89 | F IEN=0:0 S IEN=$O(^TMP("QACROCNO",$J,IEN)) Q:'IEN D
|
---|
| 90 | . S ROCNO="" F S ROCNO=$O(^TMP("QACROCNO",$J,IEN,ROCNO)) Q:ROCNO="" D
|
---|
| 91 | .. D:LNCNT>55 HDR
|
---|
| 92 | .. S NEWROC=$P(^TMP("QACROCNO",$J,IEN,ROCNO),"^",2)
|
---|
| 93 | .. W !,IEN,?20,$S(ROCNO=" ":"Missing",1:ROCNO),?45,$S(NEWROC="":"Cannot be fixed",1:NEWROC)
|
---|
| 94 | .. S LNCNT=LNCNT+1 Q
|
---|
| 95 | . Q
|
---|
| 96 | Q
|
---|
| 97 | ;
|
---|
| 98 | HDR W #,!,"Report of Invalid ROCs",?43,HDDATE,?68,"Page "_PAGENO,!
|
---|
| 99 | W "IEN",?20,"Old ROC Number",?45,"Suggested New ROC Number",!
|
---|
| 100 | N X S X="",$P(X,"-",78)=""
|
---|
| 101 | W X,!
|
---|
| 102 | S LNCNT=0,PAGENO=PAGENO+1 Q
|
---|
| 103 | ;
|
---|
| 104 | TIME ;Get current time
|
---|
| 105 | D NOW^%DTC
|
---|
| 106 | S Y=%
|
---|
| 107 | D DD^%DT
|
---|
| 108 | S TIME=Y
|
---|
| 109 | Q
|
---|
| 110 | ;
|
---|
| 111 | XMT ;Send report via mail message
|
---|
| 112 | I $D(^TMP($J,"P20")) D
|
---|
| 113 | . N DIFROM,XMDUZ,XMSUB,XMTEXT,XMY
|
---|
| 114 | . S XMDUZ=.5
|
---|
| 115 | . S XMSUB="QAC*2*20 POST INSTALL RESULTS"
|
---|
| 116 | . S XMTEXT="^TMP($J,""P20"","
|
---|
| 117 | . S XMY(DUZ)=""
|
---|
| 118 | . D ^XMD
|
---|
| 119 | ;
|
---|