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

GMTSXPD6.m

Go to the documentation of this file.
GMTSXPD6 ;ISP/RFR - Health Summary Dist (Type & Objects) ;Jun 22, 2023@18:36
 ;;2.7;Health Summary;**144**;Oct 20, 1995;Build 17
 Q
INSDATA(GMTSTAG,GMTSRTN) ; Install/Update Health Summary File Entry
 ; PARAMETERS: GMTSTAG - TAG CONTAINING TEXT THAT DEFINES FILE ENTRY
 ;             GMTSRTN - ROUTINE THAT CONTAINS GMTSTAG
 N GMTSPARENT,GMTSLINE,GMTSTXT,GMTSFILE,GMTSFIELD,GMTSVALUE,GMTSERROR
 N GMTSDATA,GMTSIEN,GMTSIENS,GMTSSIENS,GMTSFDA,GMTSMESSAGE,GMTSROOT
 N GMTSLOC,GMTSTYPE,GMTSWPLINE,GMTSWPDATA,GMTSWP,GMTSADDL,GMTSNAME,GMTSPFILE
 S GMTSPARENT(142.01)=142,GMTSPARENT(142.2)=142,GMTSPARENT(142.14)=142.01
 S GMTSADDL(142,99)="S GMTSDATA(GMTSFILE,99)=$H"
 S GMTSADDL(142.5,"IEN")="S GMTSDATA(GMTSFILE,""IEN"")=$$GETOBJIEN^GMTSXPD6(GMTSDATA(GMTSFILE,.01))"
 S GMTSADDL(142.5,.18)="S GMTSDATA(GMTSFILE,.18)=$$NOW^XLFDT"
 S GMTSADDL(142.5,.2)="S GMTSDATA(GMTSFILE,.2)=""YES"""
 F GMTSLINE=1:1  D  Q:GMTSTXT=""
 .S GMTSLOC=GMTSTAG_"+"_GMTSLINE_U_GMTSRTN
 .S GMTSTXT=$P($T(@(GMTSLOC)),";;",2)
 .Q:GMTSTXT=""
 .S GMTSFILE=$P(GMTSTXT,";",1),GMTSFIELD=$P(GMTSTXT,";",2)
 .S GMTSVALUE=$P(GMTSTXT,";",3)
 .I GMTSFILE=""!(GMTSFIELD="") D  Q
 ..D MES^XPDUTL(" Invalid data definition at "_GMTSLOC)
 ..S GMTSTXT="",GMTSERROR=1
 .I '$D(GMTSTYPE(GMTSFILE,GMTSFIELD)) D
 ..S GMTSTYPE(GMTSFILE,GMTSFIELD)=$$GET1^DID(GMTSFILE,GMTSFIELD,,"TYPE",,"GMTSERROR")
 .I $G(GMTSTYPE(GMTSFILE))="",'$D(GMTSPARENT(GMTSFILE)) D
 ..S GMTSNAME=$$LOW^XLFSTR($$GET1^DID(GMTSFILE,,,"NAME",,"GMTSERROR"))
 ..S GMTSNAME=$P(GMTSNAME,"health summary ",2)
 ..I $E(GMTSNAME,*)="s" S GMTSNAME=$E(GMTSNAME,1,*-1)
 ..S GMTSTYPE(GMTSFILE)=GMTSNAME
 .I GMTSTYPE(GMTSFILE,GMTSFIELD)="WORD-PROCESSING" D
 ..S GMTSWPLINE=1+$O(GMTSWPDATA(GMTSFILE,GMTSFIELD,"?"),-1)
 ..S GMTSWPDATA(GMTSFILE,GMTSFIELD,GMTSWPLINE,0)=GMTSVALUE
 .E  S GMTSDATA(GMTSFILE,GMTSFIELD)=GMTSVALUE
 Q:$D(GMTSERROR) 0
 S GMTSFILE=0
 F  S GMTSFILE=$O(GMTSDATA(GMTSFILE)) Q:'+GMTSFILE!($D(GMTSERROR))  D
 .I $G(GMTSDATA(GMTSFILE,.01))="" D  Q
 ..D MES^XPDUTL(" Invalid data definition: file #"_GMTSFILE_" has no .01 field")
 ..S GMTSERROR=1
 .I $D(GMTSPARENT(GMTSFILE)),'$D(GMTSIENS(GMTSPARENT(GMTSFILE))) D  Q
 ..D MES^XPDUTL(" Invalid data definition: sub-file #"_GMTSFILE_" has no parent file #"_GMTSPARENT(GMTSFILE)_" definition")
 ..S GMTSERROR=1
 .S GMTSFIELD=0 F  S GMTSFIELD=$O(GMTSADDL(GMTSFILE,GMTSFIELD)) Q:GMTSFIELD=""  D
 ..X GMTSADDL(GMTSFILE,GMTSFIELD)
 .I '$D(GMTSPARENT(GMTSFILE)) D  Q:$D(GMTSERROR)
 ..I +$G(GMTSDATA(GMTSFILE,"IEN"))=0 D
 ...S GMTSSIENS=+$$FIND1^DIC(GMTSFILE,,"X",GMTSDATA(GMTSFILE,.01),,,"GMTSERROR")
 ..I +$G(GMTSDATA(GMTSFILE,"IEN"))>0 D  Q:$D(GMTSERROR)
 ...S GMTSIEN(1)=+GMTSDATA(GMTSFILE,"IEN")
 ...K GMTSDATA(GMTSFILE,"IEN")
 ...S GMTSROOT=$$GET1^DID(GMTSFILE,,,"GLOBAL NAME",,"GMTSERROR")
 ...I $D(GMTSERROR) D  Q
 ....D MSG^DIALOG("WE",.GMTSMESSAGE,($G(IOM,80)-7),,"GMTSERROR")
 ....D MES^XPDUTL(" Filing error:")
 ....F GMTSLINE=1:1:GMTSMESSAGE  D
 .....D MES^XPDUTL("   "_GMTSMESSAGE(GMTSLINE))
 ...S GMTSROOT=GMTSROOT_GMTSIEN(1)_")"
 ...S GMTSSIENS=$S($D(@GMTSROOT):GMTSIEN(1),1:0)
 ..I GMTSSIENS>0 D
 ...S GMTSFDA(GMTSFILE,GMTSSIENS_",",.01)="@"
 ...D FILE^DIE("E","GMTSFDA","GMTSERROR")
 ...I $D(GMTSERROR) D
 ....D MSG^DIALOG("WE",.GMTSMESSAGE,($G(IOM,80)-7),,"GMTSERROR")
 ....D MES^XPDUTL(" Filing error:")
 ....F GMTSLINE=1:1:GMTSMESSAGE  D
 .....D MES^XPDUTL("   "_GMTSMESSAGE(GMTSLINE))
 ...S GMTSIEN(1)=GMTSSIENS
 .S GMTSIENS(GMTSFILE)="+1,"
 .I $D(GMTSPARENT(GMTSFILE)) D
 ..S GMTSIENS(GMTSFILE)=GMTSIENS(GMTSFILE)_GMTSIENS(GMTSPARENT(GMTSFILE))
 ..S GMTSPFILE=GMTSFILE
 ..F  S GMTSPFILE=GMTSPARENT(GMTSPFILE) Q:'$D(GMTSPARENT(GMTSPFILE))  D
 ...S GMTSIENS(GMTSFILE)=GMTSIENS(GMTSFILE)_GMTSIENS(GMTSPARENT(GMTSPFILE))
 .E  D
 ..S GMTSTYPE=GMTSTYPE(GMTSFILE)
 ..D BMES^XPDUTL(" Filing """_GMTSDATA(GMTSFILE,.01)_""" "_GMTSTYPE_" in Health Summary")
 .M GMTSFDA(GMTSFILE,GMTSIENS(GMTSFILE))=GMTSDATA(GMTSFILE)
 .I $E(GMTSIENS(GMTSFILE),1)'="+" D FILE^DIE("E","GMTSFDA","GMTSERROR")
 .I $E(GMTSIENS(GMTSFILE),1)="+" D
 ..D UPDATE^DIE("E","GMTSFDA","GMTSIEN","GMTSERROR")
 ..S GMTSIENS(GMTSFILE)=GMTSIEN(1)_","
 ..K GMTSIEN
 .I $D(GMTSERROR) D  Q
 ..D MSG^DIALOG("WE",.GMTSMESSAGE,($G(IOM,80)-7),,"GMTSERROR")
 ..D MES^XPDUTL("   Filing error:")
 ..F GMTSLINE=1:1:GMTSMESSAGE  D
 ...D MES^XPDUTL("     "_GMTSMESSAGE(GMTSLINE))
 .S GMTSFIELD=0 F  S GMTSFIELD=$O(GMTSWPDATA(GMTSFILE,GMTSFIELD)) Q:'+GMTSFIELD!($D(GMTSERROR))  D
 ..M GMTSWP=GMTSWPDATA(GMTSFILE,GMTSFIELD)
 ..D WP^DIE(GMTSFILE,GMTSIENS(GMTSFILE),GMTSFIELD,"","GMTSWP","GMTSERROR")
 ..I $D(GMTSERROR) D
 ...D MSG^DIALOG("WE",.GMTSMESSAGE,($G(IOM,80)-7),,"GMTSERROR")
 ...D MES^XPDUTL("   Filing error:")
 ...F GMTSLINE=1:1:GMTSMESSAGE  D
 ....D MES^XPDUTL("     "_GMTSMESSAGE(GMTSLINE))
 I $D(GMTSERROR) Q 0
 D MES^XPDUTL("   Successfully installed new "_GMTSTYPE)
 Q 1
GETOBJIEN(GMTSNAME) ; Get current or next national IEN in HEALTH SUMMARY OBJECTS file
 N GMTSIEN,GMTSERROR
 S GMTSIEN=+$$FIND1^DIC(142.5,,"X",GMTSNAME,,,"GMTSERROR")
 I GMTSIEN=0 F GMTSIEN=1:1  Q:'$D(^GMT(142.5,GMTSIEN))
 Q GMTSIEN