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

GMRAP053.m

Go to the documentation of this file.
  1. GMRAP053 ;ISP/RFR - PATCH 53 INSTALL CODE ;04/07/2017 12:48
  1. ;;4.0;Adverse Reaction Tracking;**53**;Mar 29, 1996;Build 306
  1. Q
  1. POST ;POST-INSTALLATION
  1. N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSK
  1. D BMES^XPDUTL(" Queueing the data clean-up task...")
  1. S ZTRTN="CLEAN^GMRAP053",ZTDESC="GMRA*4*53 DATA CLEAN-UP"
  1. S ZTDTH=$$FMADD^XLFDT($$NOW^XLFDT,0,0,2),ZTIO=""
  1. D ^%ZTLOAD
  1. I +$G(ZTSK)>0 D MES^XPDUTL(" Successfully queued the task with task #"_ZTSK)
  1. I '+$G(ZTSK) D MES^XPDUTL(" Failed to queue the task"),CLEAN
  1. Q
  1. CLEAN ;STRIP TRAILING COMMA FROM OTHER SIGN/SYMPTOM
  1. I '$D(ZTQUEUED) D BMES^XPDUTL(" Beginning data clean-up process...")
  1. N NEXTSTOP,OTHREAC,GMRAREAC,GMRAIEN,VALUE,NEWVALUE,CHAR,COMMA,ORIGVAL,FDA,FILEERR,TEXTLINE,LINE
  1. N EXIT,RECIPS,CHGCOUNT,LENGTH
  1. K ^TMP("GMRA MSG",$J)
  1. S OTHREAC=+$O(^GMRD(120.83,"B","OTHER REACTION",0))
  1. I 'OTHREAC D G EXIT
  1. .S ^TMP("GMRA MSG",$J,1,0)="ERROR: Could not find the OTHER REACTION entry in the SIGN/SYMPTOMS file"
  1. .S ^TMP("GMRA MSG",$J,2,0)=" (#120.83)."
  1. .S LINE=3 D RESTEXT(.LINE)
  1. S GMRAREAC=0 F S GMRAREAC=$O(^GMR(120.8,GMRAREAC)) Q:'+GMRAREAC!($G(ZTSTOP))!($G(EXIT)) D
  1. .I $G(NEXTSTOP)=""!($G(NEXTSTOP)=$H) D
  1. ..S ZTSTOP=$$S^%ZTLOAD Q:ZTSTOP
  1. ..S NEXTSTOP=$$HADD^XLFDT($H,0,0,0,30)
  1. .Q:ZTSTOP
  1. .S GMRAIEN=0 F S GMRAIEN=$O(^GMR(120.8,GMRAREAC,10,"B",OTHREAC,GMRAIEN)) Q:'+GMRAIEN D
  1. ..S VALUE=$P($G(^GMR(120.8,GMRAREAC,10,GMRAIEN,0)),U,2),ORIGVAL=VALUE,COMMA=0
  1. ..I VALUE[",," D
  1. ...S LENGTH=$L(VALUE)
  1. ...F CHAR=1:1 Q:CHAR>LENGTH D
  1. ....I $E(VALUE,CHAR)=",",'COMMA S COMMA=CHAR
  1. ....I COMMA>0&(($E(VALUE,CHAR)'=",")!(CHAR=LENGTH)) D
  1. .....I CHAR>=(COMMA+1) S VALUE=$E(VALUE,1,COMMA)_$S(CHAR'=LENGTH:$E(VALUE,CHAR,LENGTH),1:""),CHAR=COMMA,LENGTH=$L(VALUE)
  1. .....S COMMA=0
  1. ..I $E(VALUE,1)="," S VALUE=$E(VALUE,2,$L(VALUE))
  1. ..I $E(VALUE,$L(VALUE))="," S VALUE=$E(VALUE,1,$L(VALUE)-1)
  1. ..I VALUE'=ORIGVAL D
  1. ...S FDA(120.81,GMRAIEN_","_GMRAREAC_",",1)=VALUE
  1. ...D FILE^DIE("K","FDA","FILEERR")
  1. ...I $D(FILEERR) D ERROR(.FILEERR,.LINE,GMRAREAC) S EXIT=1
  1. ...I '$D(FILEERR) D OUTPUT(.LINE,GMRAREAC,VALUE,ORIGVAL) S CHGCOUNT=1+$G(CHGCOUNT)
  1. EXIT ;FINAL ENVIRONMENT CLEAN-UP AND EXIT
  1. K:$G(ZTSTOP)=0 ZTSTOP
  1. S LINE=1+$G(LINE),^TMP("GMRA MSG",$J,LINE,0)=" "
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)="NUMBER OF REACTIONS CHANGED: "_+$G(CHGCOUNT)
  1. N XMMG,XMDUZ,XMZ,XMERR,DIFROM,XMTEXT,XMSUB,XMY
  1. S XMDUZ="GMRA, CLEAN-UP",XMSUB="GMRA*4*53 CLEAN-UP STATUS",XMTEXT="^TMP(""GMRA MSG"",$J,"
  1. S XMY(DUZ)="",XMY("G.OR CACS")=""
  1. D ^XMD
  1. I $D(XMMG)>0 D
  1. .M ^XTMP("GMRA*4*53 CLEAN-UP STATUS")=^TMP("GMRA MSG",$J)
  1. .S ^XTMP("GMRA*4*53 CLEAN-UP STATUS",0)=$$FMADD^XLFDT(DT,31)_U_DT_U_"PATCH GMRA*4*53 CLEAN-UP STATUS REPORT"
  1. K ^TMP("GMRA MSG",$J)
  1. I $D(ZTQUEUED),'$D(ZTSTOP) S ZTREQ="@"
  1. I '$D(ZTQUEUED) D MES^XPDUTL(" Data clean-up process has exited")
  1. Q
  1. OUTPUT(LINE,IEN,VALUE,ORIGVAL) ;ADD CHANGE TO MESSAGE BODY
  1. I '+$G(LINE) D
  1. .S LINE=1,^TMP("GMRA MSG",$J,LINE,0)=$$LJ^XLFSTR("PATIENT NAME",31)_"REACTANT"
  1. .S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" ORIGINAL VALUE"
  1. .S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" --------------"
  1. .S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" NEW VALUE"
  1. .S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=$$REPEAT^XLFSTR("=",77)
  1. I LINE>5 S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=$$REPEAT^XLFSTR("-*",33)
  1. N DFN
  1. S DFN=+$P($G(^GMR(120.8,IEN,0)),U)
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=$$LJ^XLFSTR($P($G(^DPT(DFN,0)),U),31)_$E($P($G(^GMR(120.8,IEN,0)),U,2),1,45)
  1. Q:$G(ORIGVAL)=""
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" "_ORIGVAL
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" "_$$REPEAT^XLFSTR("-",$L(ORIGVAL))
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" "_VALUE
  1. Q
  1. ERROR(ERRDATA,LINE,DFN) ;ADD FILEMAN ERROR TO MESSAGE BODY
  1. D OUTPUT(.LINE,DFN)
  1. N ERRNUM,ERRORS,ITEM,TEXT,ERROR
  1. S ERRNUM=0 F S ERRNUM=$O(ERRDATA("DIERR",ERRNUM)) Q:'+ERRNUM D
  1. .S ERROR=$G(ERRDATA("DIERR",ERRNUM)) Q:ERROR=""
  1. .Q:$D(ERRORS(ERROR))
  1. .S ITEM=0 F S ITEM=$O(ERRDATA("DIERR",ERRNUM,"TEXT",ITEM)) Q:ITEM="" D
  1. ..S TEXT=$S($G(TEXT)'="":TEXT_" ",1:"")_$G(ERRDATA("DIERR",ERRNUM,"TEXT",ITEM))
  1. .S ERRORS(ERROR)=""
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" FILEMAN ERROR:"
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" "_TEXT
  1. D RESTEXT(.LINE)
  1. Q
  1. RESTEXT(LINE) ;ADD RESTART TEXT TO MESSAGE BODY
  1. S LINE=1+$G(LINE),^TMP("GMRA MSG",$J,LINE,0)=" "
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)="Contact the help desk for assistance."
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)="When the issue is resolved, execute the following command from the"
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)="programmer's prompt to complete the clean-up:"
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" "
  1. S LINE=1+LINE,^TMP("GMRA MSG",$J,LINE,0)=" D POST^GMRAP053"
  1. Q