| [613] | 1 | SCMCLN ;swo/oifobp temp clean up routine
 | 
|---|
 | 2 |  ;;5.3;Scheduling;**498**;8.13.1993;Build 23
 | 
|---|
 | 3 |  ;lets clean-up danglers in 404.43 PATIENT TEAM POSITION ASSIGNMENT
 | 
|---|
 | 4 |  ;1st run thru 404.43 and find the pointers to 404.42 PATIENT TEAM ASSIGNMENT
 | 
|---|
 | 5 |  ;pointer is piece one of 404.43
 | 
|---|
 | 6 |  N CNT1,CNT2,DA,DIK,DIR,V1,V2,V3,V4,ZNODE
 | 
|---|
 | 7 |  S (CNT1,CNT2)=0
 | 
|---|
 | 8 |  W !,"Checking for ""Ghost Entries"" in the PATIENT TEAM POSITION ASSIGNMENT FILE."
 | 
|---|
 | 9 |  W !,"This may take a moment.  You will be provided with a list showing corrupted"
 | 
|---|
 | 10 |  W !,"file entries.  To perform a clean-up accept the ""Yes"" prompt after the list"
 | 
|---|
 | 11 |  W !,"is displayed. Answer ""No"" to abort the clean-up.",!
 | 
|---|
 | 12 |  S V1=0 F  S V1=$O(^SCPT(404.43,V1)) Q:'V1  D
 | 
|---|
 | 13 |  . S CNT1=CNT1+1
 | 
|---|
 | 14 |  . S ZNODE=$G(^SCPT(404.43,V1,0))
 | 
|---|
 | 15 |  . S V2=$P(ZNODE,U) Q:V2=""
 | 
|---|
 | 16 |  . S V3=$G(^SCPT(404.42,V2,0)) I V3="" D LOG
 | 
|---|
 | 17 |  D SHOW Q:POP
 | 
|---|
 | 18 |  I $G(CNT2)<1 W !,"Nothing to clean up...." Q
 | 
|---|
 | 19 |  S DIR("?")="Answerng Yes will perform a clean-up of the ghost entries"
 | 
|---|
 | 20 |  S DIR("A")="Perform File Clean-Up"
 | 
|---|
 | 21 |  S DIR(0)="Y",DIR("B")="No" D ^DIR
 | 
|---|
 | 22 |  I Y D DEL
 | 
|---|
 | 23 |  D CLEAN
 | 
|---|
 | 24 |  Q
 | 
|---|
 | 25 | LOG ;build a list in ^TMP("SCMCLN",$J
 | 
|---|
 | 26 |  S ^TMP("SCMCLN",$J,V1)=""
 | 
|---|
 | 27 |  S CNT2=CNT2+1
 | 
|---|
 | 28 |  Q
 | 
|---|
 | 29 | SHOW ;see what we got
 | 
|---|
 | 30 |  S DIOEND="D FOOT^SCMCLN"
 | 
|---|
 | 31 |  S DIC="^SCPT(404.43,",L=0,BY="@.03",(FR,TO)="",FLDS="[CAPTIONED]"
 | 
|---|
 | 32 |  S BY(0)="^TMP(""SCMCLN"",$J,"
 | 
|---|
 | 33 |  S L(0)=1 D EN1^DIP
 | 
|---|
 | 34 |  Q
 | 
|---|
 | 35 | DEL ;delete the danglers
 | 
|---|
 | 36 |  ;check #404.48 -- PCMM HL7 EVENT FILE .07 field EVENT POINTER points to 404.43
 | 
|---|
 | 37 |  ;variable pointer, yeck!
 | 
|---|
 | 38 |  S DIK="^SCPT(404.43,"
 | 
|---|
 | 39 |  S V1=0 F  S V1=$O(^TMP("SCMCLN",$J,V1)) Q:'V1  D
 | 
|---|
 | 40 |  .S V4=""""_V1_";SCPT(404.43,"_""""
 | 
|---|
 | 41 |  .I $O(^SCPT(404.48,"AACXMIT",V4,"")) D  Q  ;
 | 
|---|
 | 42 |  .. S ^TMP("SCMCLN2",$J,V1)=""
 | 
|---|
 | 43 |  .. W !,"Pointer to HL7 EVENT file - the entry ("_V1_") was not deleted."
 | 
|---|
 | 44 |  .S DA=V1
 | 
|---|
 | 45 |  .D ^DIK
 | 
|---|
 | 46 |  W !,"Clean-up completed",!
 | 
|---|
 | 47 |  Q
 | 
|---|
 | 48 | CLEAN ;clean-up
 | 
|---|
 | 49 |  K ^TMP("SCMCLN",$J)
 | 
|---|
 | 50 |  K ^TMP("SCMCLN2",$J)
 | 
|---|
 | 51 |  Q
 | 
|---|
 | 52 | FOOT ;footer message
 | 
|---|
 | 53 |  W !,CNT1_" entries searched.  Ghost entries found:  "_CNT2
 | 
|---|
 | 54 |  Q
 | 
|---|
 | 55 | TEST ;
 | 
|---|
 | 56 |  S X=0 F  S X=$O(^SCPT(404.48,X)) Q:'X  D
 | 
|---|
 | 57 |  . Q:($P(^SCPT(404.48,X,0),U,7)'[404.43)
 | 
|---|
 | 58 |  . W ^SCPT(404.43,$P($P(^SCPT(404.48,X,0),U,7),";"),0),!
 | 
|---|
 | 59 |  . Q
 | 
|---|