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

RAIPS196.m

Go to the documentation of this file.
  1. RAIPS196 ;WOIFO/KLM - PostInit 196 ; Dec 08, 2022@11:47:48
  1. ;;5.0;Radiology/Nuclear Medicine;**196**;Mar 16, 1998;Build 1
  1. ;
  1. ; This post-install routine will loop through all HELD,
  1. ; COMPLETED, and DISCONTINUED Radiology orders and determine
  1. ; if they've been referred to community care via the auto
  1. ; referral option. If so, the REFERRED TO COMMUNITY CARE?
  1. ; field (#201) will be set to YES.
  1. ;
  1. ;
  1. ; Field #201 in file #75.1 is new with patch RA*5*196
  1. ;
  1. ; File/API IA Type
  1. ; -------------------------------------
  1. ; ^OR(100,D0,8,D1 6475 (P)
  1. ; ^GMR(123 6116 (C)
  1. ; INSTALDT^XPDUTL 10141 (S)
  1. ; SENDMSG^XMXAPI 2729 (S)
  1. ;
  1. EN1 ;entry point from KIDS
  1. N RATXT,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE S ZTIO=""
  1. S ZTRTN="TASK^RAIPS196",(ZTDESC,RATXT(1))="RA196: Identify auto referred orders to community care"
  1. S ZTDTH=$H D ^%ZTLOAD S RATXT(2)="Task: "_$S($G(ZTSK)>0:ZTSK,1:"in error")
  1. D BMES^XPDUTL(.RATXT)
  1. Q
  1. ;
  1. TASK ;Task entry point
  1. N RATEXT
  1. D ORDERCHK ;Check referred order
  1. D MSG
  1. Q
  1. ORDERCHK ;search for held, completed and discontinued referred orders
  1. N RA148DT,RAODD,RAR,RAOIEN,RAORDA,RAERR,RARC,RAEC,RATC,RAIENS,RAFDA,RAORACT
  1. N RASQ,RASPACE,RACODE,RAEIEN,RAERTX,RAL
  1. F RASQ=1:1:50 S RASPACE=$G(RASPACE)_" "
  1. S (RARC,RAEC,RATC)=0
  1. D INSTALDT^XPDUTL("RA*5.0*148",.RAR)
  1. Q:RAR<1 ;148 not installed
  1. S RA148DT=$P($O(RAR(0)),".") Q:RA148DT="" ;no install date
  1. S RAODD=RA148DT F S RAODD=$O(^RAO(75.1,"BDD",RAODD)) Q:RAODD="" D
  1. .S RAOIEN="" F S RAOIEN=$O(^RAO(75.1,"BDD",RAODD,RAOIEN)) Q:RAOIEN="" D
  1. ..I "^1^2^3^"'[$P(^RAO(75.1,RAOIEN,0),U,5) Q
  1. ..S RAORDA=$P(^RAO(75.1,RAOIEN,0),U,7) Q:RAORDA=""
  1. ..S RAORDA=RAORDA_",",RATC=RATC+1 ;increment total counter
  1. ..K RAORACT D GETS^DIQ(100,RAORDA,".8*","N","RAORACT") ;order actions
  1. ..I '$D(RAORACT) Q
  1. ..I $$CHKORACT(.RAORACT) D
  1. ...K RAIENS,RAFDA
  1. ...S RAIENS=RAOIEN_"," S RAFDA(75.1,RAIENS,201)="YES"
  1. ...K RAERR D FILE^DIE("EK","RAFDA","RAERR")
  1. ...I $D(RAERR) S RATEXT(10)="There was a problem updating some orders:" D
  1. ....S RATEXT(12)="ORDER IEN ERROR"
  1. ....S RATEXT(13)="---------------- ------------------------------------------"
  1. ....S RAEIEN=+$G(RAERR("DIERR",1,"PARAM","IENS")),RAL=$L(RAEIEN),RAEC=RAEC+1
  1. ....S RAERTX=$E($G(RAERR("DIERR",1,"TEXT",1)),1,42)
  1. ....S RACODE=$G(RAERR("DIERR",1))
  1. ....S RATEXT(13+RAEC)=RAEIEN_$E(RASPACE,1,18-RAL)_"("_RACODE_") "_RAERTX
  1. ....Q
  1. ...E S RARC=RARC+1 ;increment referred counter
  1. ...Q
  1. ..Q
  1. .Q
  1. S RATEXT(8)="Total orders checked: "_RATC
  1. I RARC>0 S RATEXT(9)="Total orders updated: "_RARC
  1. E S RATEXT(9)="There were no auto referred orders found to update."
  1. ;ZW RATEXT
  1. Q
  1. CHKORACT(RAORACT) ;Check if order was referred using our option
  1. N RACOM,RAIENS,RAQ,RA123 S RAQ=0
  1. S RAIENS="" F S RAIENS=$O(RAORACT(100.008,RAIENS)) Q:RAIENS="" D
  1. .S RACOM=$G(RAORACT(100.008,RAIENS,1))
  1. .I RACOM["Placed on hold due to transfer to Community Care with UCID" D
  1. ..S RA123=$P(RACOM,"UCID",2) Q:'$D(RA123)
  1. ..S RA123=$P(RA123,"_",2) I RA123?1.N,$D(^GMR(123,RA123)) S RAQ=1
  1. ..Q
  1. .Q
  1. Q RAQ
  1. MSG ;send results via Mailman
  1. N RAID,RASUB,RAREC,RAINSTR
  1. I '$D(RATEXT) S RATEXT(8)="*** No referred orders found! ***"
  1. ;Mail message introductory blurb...
  1. S RATEXT(1)="The Post-Init task for RA*5.0*196 searched for radiology"
  1. S RATEXT(2)="orders in a complete, discontinued or held status that"
  1. S RATEXT(3)="have previously been referred to community care using"
  1. S RATEXT(4)="the Refer Selected Requests to COMMUNITY CARE Provider"
  1. S RATEXT(5)="option. Orders previously referred using this option"
  1. S RATEXT(6)="had the new Referred to Community Care? field set to YES."
  1. S RATEXT(7)="",RATEXT(11)=""
  1. ;XMTEXT for message text
  1. ;S XMTEXT="RATEXT("
  1. S RASUB="RAD/NUC MED RA*5.0*196 Post-Install Information"
  1. S RAID=+$G(DUZ)
  1. S RAREC(RAID)="" ;send to installer
  1. S RAINSTR("FROM")="RA*5.0*196 Post-Install"
  1. D SENDMSG^XMXAPI(RAID,RASUB,"RATEXT",.RAREC,.RAINSTR,,)
  1. Q