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

HLCSUTL1.m

Go to the documentation of this file.
  1. HLCSUTL1 ;ALB/JRP - COMMUNICATION SERVER UTILITIES;15-MAY-95
  1. ;;1.6;HEALTH LEVEL SEVEN;**99**;Oct 13, 1995
  1. ;
  1. CRTFLR(TASKNUM,FLRTYPE) ;CREATE/FIND ENTRY IN FILER MULT OF FILE 869.3
  1. ;INPUT : TASKNUM - Task number of filer
  1. ; FLRTYPE - Indicates type of filer
  1. ; IN = Incoming (default)
  1. ; OUT = Outgoing
  1. ;OUTPUT : X - Entry number in INCOMING FILER TASK NUMBER multiple
  1. ; (field #20) or OUTGOING FILER TASK NUMBER multiple
  1. ; (field #30) of the HL COMMUNICATION SERVER PARAMETER
  1. ; file (#869.3)
  1. ; -1^ErrorText - Entry not created/found
  1. ;NOTES : Entries in multiple will be DINUMed to their task number
  1. ;
  1. ;Check input
  1. S TASKNUM=+$G(TASKNUM)
  1. Q:('TASKNUM) "-1^Did not pass task number of filer"
  1. S FLRTYPE=$G(FLRTYPE)
  1. ;Declare variables
  1. N DA,DG,DIC,DINUM,DLAYGO,FLDNUM,NODE,PTRMAIN,PTRSUB,X,Y
  1. S NODE=$S(FLRTYPE="OUT":3,1:2)
  1. S FLDNUM=$S(FLRTYPE="OUT":30,1:20)
  1. ;Get entry in parameter file
  1. S PTRMAIN=+$O(^HLCS(869.3,0))
  1. Q:('PTRMAIN) "-1^Entry in file #869.3 does not exist"
  1. ;Set up call to FileMan
  1. S DIC="^HLCS(869.3,"_PTRMAIN_","_NODE_","
  1. S DIC(0)="LOX"
  1. S (X,DINUM)=TASKNUM
  1. S DLAYGO=869.3
  1. S DIC("DR")=".02///NO"
  1. ;These extra variables are needed since it's a multiple
  1. S DA(1)=PTRMAIN
  1. S DIC("P")=$P(^DD(869.3,FLDNUM,0),"^",2)
  1. ;Create/find entry
  1. D ^DIC
  1. S PTRSUB=+Y
  1. Q:(PTRSUB<1) "-1^Unable to create entry in filer multiple"
  1. Q PTRSUB
  1. DELFLR(PTRSUB,FLRTYPE) ;DELETE ENTRY IN FILER MULT OF FILE 869.3
  1. ;INPUT : PTRSUB - Pointer to incoming or outgoing filer subentry
  1. ; FLRTYPE - Indicates type of filer
  1. ; IN = Incoming (default)
  1. ; OUT = Outgoing
  1. ;OUTPUT : None
  1. ;NOTES : This will delete the entry in the INCOMING FILER TASK NUMBER
  1. ; multiple (field #20) or OUTGOING FILER TASK NUMBER multiple
  1. ; (field #30) of the HL COMMUNICATION SERVER PARAMETER
  1. ; file (#869.3) without prompting for confirmation
  1. ;
  1. ;Check input
  1. Q:('$G(PTRSUB))
  1. S FLRTYPE=$G(FLRTYPE)
  1. ;Declare variables
  1. N DA,DG,DIK,NODE,PTRMAIN
  1. S NODE=$S(FLRTYPE="OUT":3,1:2)
  1. ;Get entry in parameter file
  1. S PTRMAIN=+$O(^HLCS(869.3,0))
  1. Q:('PTRMAIN)
  1. ;Nothing to delete
  1. Q:('$D(^HLCS(869.3,PTRMAIN,NODE,PTRSUB)))
  1. ;Set up call to FileMan
  1. S DIK="^HLCS(869.3,"_PTRMAIN_","_NODE_","
  1. S DA=PTRSUB
  1. S DA(1)=PTRMAIN
  1. ;Delete subentry
  1. D ^DIK
  1. Q
  1. SETFLRDH(PTRSUB,FLRTYPE) ;UPDATE $H FIELD FOR FILER MULT IN FILE 869.3
  1. ;INPUT : PTRSUB - Pointer to incoming or outgoing filer subentry
  1. ; FLRTYPE - Indicates type of filer
  1. ; IN = Incoming (default)
  1. ; OUT = Outgoing
  1. ;OUTPUT : None
  1. ;NOTES : This updates the LAST KNOW $H field (.03) of the INCOMING
  1. ; FILER TASK NUMBER and OUTGOING FILER TASK NUMBER multiples
  1. ; (fields 20 & 30) of the HL COMMUNICATION SERVER PARAMETER
  1. ; file (#869.3)
  1. ;
  1. ;Check input
  1. Q:('$G(PTRSUB))
  1. S FLRTYPE=$G(FLRTYPE)
  1. ;Declare variables
  1. N DA,DG,DIE,DR,LOCKTRY,NODE,PTRMAIN
  1. S NODE=$S(FLRTYPE="OUT":3,1:2)
  1. ;Get entry in parameter file
  1. S PTRMAIN=+$O(^HLCS(869.3,0))
  1. Q:('PTRMAIN)
  1. ;Subentry doesn't exist
  1. Q:('$D(^HLCS(869.3,PTRMAIN,NODE,PTRSUB)))
  1. ;Lock subentry
  1. F LOCKTRY=0:1:20 L +^HLCS(869.3,PTRMAIN,NODE,PTRSUB):1 I ($T) S LOCKTRY=0 Q
  1. ;Couldn't lock subentry
  1. Q:(LOCKTRY)
  1. ;Set up call to FileMan
  1. S DIE="^HLCS(869.3,"_PTRMAIN_","_NODE_","
  1. S DA(1)=PTRMAIN
  1. S DA=PTRSUB
  1. S DR=".03///"_$H
  1. ;Update value
  1. D ^DIE
  1. ;Unlock subentry
  1. L -^HLCS(869.3,PTRMAIN,NODE,PTRSUB)
  1. Q
  1. STOPFLR(PTRSUB,FLRTYPE) ;UPDATE STOP FIELD FOR FILER MULT IN FILE 869.3
  1. ;INPUT : PTRSUB - Pointer to incoming or outgoing filer subentry
  1. ; FLRTYPE - Indicates type of filer
  1. ; IN = Incoming (default)
  1. ; OUT = Outgoing
  1. ;OUTPUT : None
  1. ;NOTES : This sets the STOP FILER field (#.02) of the INCOMING
  1. ; FILER TASK NUMBER and OUTGOING FILER TASK NUMBER multiples
  1. ; (fields 20 & 30) of the HL COMMUNICATION SERVER PARAMETER
  1. ; file (#869.3). Setting this field to YES will ask the
  1. ; filer to stop.
  1. ;
  1. ;Check input
  1. Q:('$G(PTRSUB))
  1. S FLRTYPE=$G(FLRTYPE)
  1. ;Declare variables
  1. N PTRMAIN,NODE,DIE,DA,DR,LOCKTRY
  1. S NODE=$S(FLRTYPE="OUT":3,1:2)
  1. ;Get entry in parameter file
  1. S PTRMAIN=+$O(^HLCS(869.3,0))
  1. Q:('PTRMAIN)
  1. ;Subentry doesn't exist
  1. Q:('$D(^HLCS(869.3,PTRMAIN,NODE,PTRSUB)))
  1. ;Lock subentry
  1. F LOCKTRY=0:1:20 L +^HLCS(869.3,PTRMAIN,NODE,PTRSUB):1 I ($T) S LOCKTRY=0 Q
  1. ;Couldn't lock subentry
  1. Q:(LOCKTRY)
  1. ;Set up call to FileMan
  1. S DIE="^HLCS(869.3,"_PTRMAIN_","_NODE_","
  1. S DA(1)=PTRMAIN
  1. S DA=PTRSUB
  1. S DR=".02///YES"
  1. ;Update value
  1. D ^DIE
  1. ;Unlock subentry
  1. L -^HLCS(869.3,PTRMAIN,NODE,PTRSUB)
  1. Q
  1. ;
  1. CLEAN ; Clean out invalid 869.3 data. (HL*1.6*99 Post-init routine)
  1. N IEN,KILLSUB,MIEN,SUB
  1. S IEN=0
  1. F S IEN=$O(^HLCS(869.3,IEN)) Q:IEN'>0 D
  1. . F SUB=2,3 D ; Errors only in 2, but adding 3 just in case...
  1. . . S MIEN=0
  1. . . S MIEN=$O(^HLCS(869.3,IEN,SUB,MIEN)) Q:MIEN'>0 D
  1. . . . S KILLSUB=0 ; Leave the zero node, but all above go!
  1. . . . F S KILLSUB=$O(^HLCS(869.3,IEN,SUB,MIEN,KILLSUB)) Q:KILLSUB'>0 D
  1. . . . . KILL ^HLCS(869.3,IEN,SUB,MIEN,KILLSUB)
  1. QUIT
  1. ;