- ORY216 ;SLC/MKB - Clean-up existing Allergy orders ;3/16/04 14:28
- ;;3.0;ORDER ENTRY/RESULTS REPORTING;**216**;Dec 17, 1997
- ;
- POST ; -- postinit
- N ORDG,ORX S ORDG=+$O(^ORD(100.98,"B","ALG",0)) Q:ORDG'>0
- S $P(^ORD(100.98,ORDG,0),U,4)="" ;clear Default Dialog
- S ORX("GMRAOR ALLERGY ENTER/EDIT")="" D EN^ORYDLG(216,.ORX)
- D TASK
- Q
- ;
- TASK ; -- queue job to complete ART orders
- Q:$G(^XTMP("ORGMRA","PAT"))<0 ;already done
- N ZTDESC,ZTRTN,ZTIO,ZTSAVE,ZTDTH,ZTSK,ORMSG
- S ORMSG(1)="A background job has been queued to complete any currently active"
- S ORMSG(2)="Allergy/Adverse Reaction orders." D MES^XPDUTL(.ORMSG)
- S ZTDESC="Mark ART orders as complete",ZTRTN="EN^ORY216"
- S ZTIO="",ZTDTH=$H,ZTSAVE("DUZ")="" D ^%ZTLOAD K ORMSG
- S ORMSG="Task "_$S($G(ZTSK):"#"_ZTSK,1:"not")_" started."
- D MES^XPDUTL(ORMSG)
- I '$G(ZTSK) D BMES^XPDUTL("Use TASK^ORY216 to queue this job to complete ART orders as soon as possible!")
- Q
- ;
- EN ; -- main loop to complete ART orders on:
- ; ^OR(100,"ACT",ORVP,invORLOG,ORDG,ORIFN)
- ;
- N ORDG,ORNOW,ORVP,ORLOG,ORIFN
- S ORDG=+$O(^ORD(100.98,"B","ALG",0)) Q:ORDG'>0
- S ORNOW=+$E($$NOW^XLFDT,1,12),ORVP=$G(^XTMP("ORGMRA","PAT")) I '$D(^(0)) D
- . S ^XTMP("ORGMRA",0)=$$FMADD^XLFDT(ORNOW,90)_U_ORNOW_"^ART orders completion"
- F S ORVP=$O(^OR(100,"ACT",ORVP)) Q:ORVP="" D Q:$G(ZTSTOP)
- . S ORLOG=0 F S ORLOG=$O(^OR(100,"ACT",ORVP,ORLOG)) Q:ORLOG'>0 D
- .. S ORIFN=0 F S ORIFN=+$O(^OR(100,"ACT",ORVP,ORLOG,ORDG,ORIFN)) Q:ORIFN'>0 D
- ... Q:$P($G(^OR(100,ORIFN,3)),U,3)=2 ;already completed
- ... D STATUS^ORCSAVE2(ORIFN,2) S $P(^OR(100,ORIFN,6),U,6)=ORNOW
- . S ^XTMP("ORGMRA","PAT")=ORVP
- . I $D(ZTQUEUED) S:$$S^%ZTLOAD ZTSTOP=1 Q:$G(ZTSTOP)
- I '$G(ZTSTOP) S ^XTMP("ORGMRA","PAT")=-1 D MAIL ;done
- Q
- ;
- MAIL ; -- Send completion message to user who initiated conversion
- N XMSUB,XMTEXT,XMDUZ,XMY,XMZ,XMMG,ORTXT,DIFROM
- S XMDUZ="PATCH OR*3*216 ART ORDERS COMPLETION",XMY(.5)="" S:$G(DUZ) XMY(DUZ)=""
- S ORTXT(1)="The task triggered by patch OR*3*216"_$S($G(ZTSK):" (Task #"_ZTSK_")",1:"")_" to complete ART orders"
- S ORTXT(2)="finished at "_$$FMTE^XLFDT($$NOW^XLFDT)_"."
- S XMTEXT="ORTXT(",XMSUB="PATCH OR*3*216 ART ORDERS COMPLETED"
- D ^XMD
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORY216 2228 printed Mar 13, 2025@21:44:14 Page 2
- ORY216 ;SLC/MKB - Clean-up existing Allergy orders ;3/16/04 14:28
- +1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**216**;Dec 17, 1997
- +2 ;
- POST ; -- postinit
- +1 NEW ORDG,ORX
- SET ORDG=+$ORDER(^ORD(100.98,"B","ALG",0))
- if ORDG'>0
- QUIT
- +2 ;clear Default Dialog
- SET $PIECE(^ORD(100.98,ORDG,0),U,4)=""
- +3 SET ORX("GMRAOR ALLERGY ENTER/EDIT")=""
- DO EN^ORYDLG(216,.ORX)
- +4 DO TASK
- +5 QUIT
- +6 ;
- TASK ; -- queue job to complete ART orders
- +1 ;already done
- if $GET(^XTMP("ORGMRA","PAT"))<0
- QUIT
- +2 NEW ZTDESC,ZTRTN,ZTIO,ZTSAVE,ZTDTH,ZTSK,ORMSG
- +3 SET ORMSG(1)="A background job has been queued to complete any currently active"
- +4 SET ORMSG(2)="Allergy/Adverse Reaction orders."
- DO MES^XPDUTL(.ORMSG)
- +5 SET ZTDESC="Mark ART orders as complete"
- SET ZTRTN="EN^ORY216"
- +6 SET ZTIO=""
- SET ZTDTH=$HOROLOG
- SET ZTSAVE("DUZ")=""
- DO ^%ZTLOAD
- KILL ORMSG
- +7 SET ORMSG="Task "_$SELECT($GET(ZTSK):"#"_ZTSK,1:"not")_" started."
- +8 DO MES^XPDUTL(ORMSG)
- +9 IF '$GET(ZTSK)
- DO BMES^XPDUTL("Use TASK^ORY216 to queue this job to complete ART orders as soon as possible!")
- +10 QUIT
- +11 ;
- EN ; -- main loop to complete ART orders on:
- +1 ; ^OR(100,"ACT",ORVP,invORLOG,ORDG,ORIFN)
- +2 ;
- +3 NEW ORDG,ORNOW,ORVP,ORLOG,ORIFN
- +4 SET ORDG=+$ORDER(^ORD(100.98,"B","ALG",0))
- if ORDG'>0
- QUIT
- +5 SET ORNOW=+$EXTRACT($$NOW^XLFDT,1,12)
- SET ORVP=$GET(^XTMP("ORGMRA","PAT"))
- IF '$DATA(^(0))
- Begin DoDot:1
- +6 SET ^XTMP("ORGMRA",0)=$$FMADD^XLFDT(ORNOW,90)_U_ORNOW_"^ART orders completion"
- End DoDot:1
- +7 FOR
- SET ORVP=$ORDER(^OR(100,"ACT",ORVP))
- if ORVP=""
- QUIT
- Begin DoDot:1
- +8 SET ORLOG=0
- FOR
- SET ORLOG=$ORDER(^OR(100,"ACT",ORVP,ORLOG))
- if ORLOG'>0
- QUIT
- Begin DoDot:2
- +9 SET ORIFN=0
- FOR
- SET ORIFN=+$ORDER(^OR(100,"ACT",ORVP,ORLOG,ORDG,ORIFN))
- if ORIFN'>0
- QUIT
- Begin DoDot:3
- +10 ;already completed
- if $PIECE($GET(^OR(100,ORIFN,3)),U,3)=2
- QUIT
- +11 DO STATUS^ORCSAVE2(ORIFN,2)
- SET $PIECE(^OR(100,ORIFN,6),U,6)=ORNOW
- End DoDot:3
- End DoDot:2
- +12 SET ^XTMP("ORGMRA","PAT")=ORVP
- +13 IF $DATA(ZTQUEUED)
- if $$S^%ZTLOAD
- SET ZTSTOP=1
- if $GET(ZTSTOP)
- QUIT
- End DoDot:1
- if $GET(ZTSTOP)
- QUIT
- +14 ;done
- IF '$GET(ZTSTOP)
- SET ^XTMP("ORGMRA","PAT")=-1
- DO MAIL
- +15 QUIT
- +16 ;
- MAIL ; -- Send completion message to user who initiated conversion
- +1 NEW XMSUB,XMTEXT,XMDUZ,XMY,XMZ,XMMG,ORTXT,DIFROM
- +2 SET XMDUZ="PATCH OR*3*216 ART ORDERS COMPLETION"
- SET XMY(.5)=""
- if $GET(DUZ)
- SET XMY(DUZ)=""
- +3 SET ORTXT(1)="The task triggered by patch OR*3*216"_$SELECT($GET(ZTSK):" (Task #"_ZTSK_")",1:"")_" to complete ART orders"
- +4 SET ORTXT(2)="finished at "_$$FMTE^XLFDT($$NOW^XLFDT)_"."
- +5 SET XMTEXT="ORTXT("
- SET XMSUB="PATCH OR*3*216 ART ORDERS COMPLETED"
- +6 DO ^XMD
- +7 QUIT