Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ORY260

ORY260.m

Go to the documentation of this file.
  1. ORY260 ; SLC/STAFF - Patch OR*3.0*260 post init ;8/21/06 13:13
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**260**;Dec 17, 1997;Build 26
  1. POST ; post-init to patch OR*3.0*260
  1. ; fix any string formatted date/times in CR index
  1. ; remove Treatment type from graphing
  1. N DA,DIR,ORMSG,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE K DIR,ORMSG
  1. S ORMSG(1)="A task is being queued in the background to identify"
  1. S ORMSG(2)="any Start or Start dates where times have trailing zeros."
  1. S ORMSG(3)=""
  1. S ORMSG(4)="These indexes will be reset with the correct canonic"
  1. S ORMSG(5)="values by this background job. A mail message will be"
  1. S ORMSG(6)="sent to the initiator of this patch at completion."
  1. S ORMSG(7)=""
  1. S ORMSG(8)=""
  1. S ZTRTN="DQ^ORY260",ZTIO=""
  1. S ZTDESC="Clean up - Patch 260",ZTDTH=$H,ZTSAVE("DUZ")=""
  1. D ^%ZTLOAD
  1. S ORMSG(9)="The task number is "_$G(ZTSK)
  1. D MES^XPDUTL(.ORMSG) I '$D(ZTQUEUED) D
  1. . N DIR,Y
  1. . S DIR(0)="E",DIR("A")="Press return - installation is complete."
  1. . D ^DIR
  1. Q
  1. ;
  1. DQ ; dequeued
  1. N BEGIN,CNT,DFN,ITEM,NODE,OK,START,STOP K ^TMP("ORPXRM",$J),^TMP("ORTXT",$J)
  1. S BEGIN=$$NOW^XLFDT
  1. S CNT=0
  1. S DFN=0
  1. F S DFN=$O(^PXRMINDX(100,"PI",DFN)) Q:DFN<1 D
  1. . S ITEM=0
  1. . F S ITEM=$O(^PXRMINDX(100,"PI",DFN,ITEM)) Q:ITEM<1 D
  1. .. S START=""
  1. .. F S START=$O(^PXRMINDX(100,"PI",DFN,ITEM,START)) Q:START="" D
  1. ... S STOP=""
  1. ... F S STOP=$O(^PXRMINDX(100,"PI",DFN,ITEM,START,STOP)) Q:STOP="" D
  1. .... S OK=1
  1. .... I START'=+START S OK=0
  1. .... I OK,$E(STOP)'="U",STOP'=+STOP S OK=0
  1. .... I OK Q
  1. .... S NODE=""
  1. .... F S NODE=$O(^PXRMINDX(100,"PI",DFN,ITEM,START,STOP,NODE)) Q:NODE="" D
  1. ..... S ^TMP("ORPXRM",$J,NODE)=DFN_U_ITEM_U_START_U_STOP
  1. ..... S CNT=CNT+1
  1. ..... ;W !,NODE,?20,$P($G(^OR(100,+NODE,0)),U,8),?35,$P($G(^OR(100,+NODE,0)),U,9),?55,START
  1. S ^TMP("ORTXT",$J,4)="-- "_CNT_" nodes to check --" ; overwrite on finish
  1. S ^TMP("ORTXT",$J,5)=" "
  1. S CNT=5
  1. S NODE=""
  1. F S NODE=$O(^TMP("ORPXRM",$J,NODE)) Q:NODE="" D
  1. . D FIX(NODE,.CNT)
  1. S ^TMP("ORTXT",$J,4)="-- "_(CNT-5)_" changes made --"
  1. K ^TMP("ORPXRM",$J)
  1. D TREMOVE("ORWG GRAPH VIEW") ; removes treatment type from graphing
  1. D MAIL(BEGIN)
  1. K ^TMP("ORTXT",$J)
  1. Q
  1. ;
  1. FIX(NODE,CNT) ;
  1. N DA,DATE1,DATE2,DFN,DIE,DR,ITEM,LINE,START,STOP,VALUES,ZERO
  1. S VALUES=$G(^TMP("ORPXRM",$J,NODE))
  1. S DFN=$P(VALUES,U)
  1. S ITEM=$P(VALUES,U,2)
  1. S DATE1=$P(VALUES,U,3)
  1. S DATE2=$P(VALUES,U,4)
  1. K ^PXRMINDX(100,"PI",DFN,ITEM,DATE1,DATE2,NODE)
  1. K ^PXRMINDX(100,"IP",ITEM,DFN,DATE1,DATE2,NODE)
  1. S DIE="^OR(100,"
  1. S DA=+NODE
  1. S ZERO=$G(^OR(100,DA,0))
  1. S START=+$P(ZERO,U,8) I START=0 S START="@"
  1. S STOP=+$P(ZERO,U,9) I STOP=0 S STOP="@"
  1. S DR=""
  1. I START'=DATE1 S DR="21///"_START
  1. I START="@",$P(ZERO,U,8)="" S DR=""
  1. I STOP'=DATE2 D
  1. . I STOP="@",$E(DATE2)="U" Q
  1. . I $L(DR) S DR=DR_";22///"_STOP Q
  1. . S DR="22///"_STOP Q
  1. I '$L(DR) Q
  1. S LINE="Node: "_NODE
  1. I DR["21///" S LINE=LINE_"; Start: "_DATE1_" -> "_START
  1. I DR["22///" S LINE=LINE_"; Stop: "_DATE2_" -> "_STOP
  1. D ^DIE
  1. S CNT=CNT+1
  1. S ^TMP("ORTXT",$J,CNT)=LINE
  1. Q
  1. ;
  1. TREMOVE(PARAM) ;
  1. N ENTITY,INST,LINES,OK,VALUES K LINES,VALUES
  1. D XENVAL^ORWGAPIX(.VALUES,PARAM)
  1. I '$L($O(VALUES(""))) Q
  1. S ENTITY=""
  1. F S ENTITY=$O(VALUES(ENTITY)) Q:ENTITY="" D
  1. . S INST=""
  1. . F S INST=$O(VALUES(ENTITY,INST)) Q:INST="" D
  1. .. D XGETWP^ORWGAPIX(.LINES,ENTITY,PARAM,INST)
  1. .. D FIXLINES(.LINES,.OK)
  1. .. I 'OK D FIXIT(.LINES,ENTITY,PARAM,INST)
  1. Q
  1. ;
  1. FIXLINES(LINES,OK) ;
  1. N I,LINE,NLINE,NLINES,NNUM,NUM,PART K NLINES
  1. S OK=1,NNUM=0
  1. S NUM=0
  1. F S NUM=$O(LINES(NUM)) Q:NUM<1 D
  1. . S LINE=$G(LINES(NUM,0))
  1. . I '$L(LINE) Q
  1. . S NLINE=LINE
  1. . I LINE["~9000010.15" D
  1. .. S NLINE="",OK=0
  1. .. F I=1:1:999 S PART=$P(LINE,"|",I) Q:PART="" D
  1. ... I PART["~9000010.15" Q
  1. ... S NLINE=NLINE_PART_"|"
  1. . I NLINE="" Q
  1. . S NNUM=NNUM+1
  1. . S NLINES(NNUM,0)=NLINE
  1. I OK Q
  1. K LINES
  1. M LINES=NLINES
  1. Q
  1. ;
  1. FIXIT(LINES,ENTITY,PARAM,INST) ;
  1. D XDEL^ORWGAPIX(ENTITY,PARAM,INST)
  1. I $L($O(LINES(""))) D XEN^ORWGAPIX(ENTITY,PARAM,INST,.LINES)
  1. Q
  1. ;
  1. MAIL(BEGIN) ; -- Send completion message to user who initiated cleanup
  1. N TIMES,XMSUB,XMTEXT,XMDUN,XMDUZ,XMY,XMZ K XMY
  1. S XMDUZ="PATCH OR*3.0*260 CLEAN-UP",XMY(.5)="" S:$G(DUZ) XMY(DUZ)=""
  1. S TIMES="Started: "_$$FMTE^XLFDT(BEGIN)_"; Completed: "_$$FMTE^XLFDT($$NOW^XLFDT)_"."
  1. S ^TMP("ORTXT",$J,1)="Clean up for patch OR*3.0*260"
  1. S ^TMP("ORTXT",$J,2)=TIMES
  1. S ^TMP("ORTXT",$J,3)="Order Node Date Cleanup:"
  1. S XMTEXT="^TMP(""ORTXT"","_$J_","
  1. S XMSUB="PATCH OR*3.0*260 Clean Up COMPLETED"
  1. D ^XMD
  1. Q