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

RORUTL19.m

Go to the documentation of this file.
  1. RORUTL19 ;HCIOFO/SG - PATIENT DATA UTILITIES ; 1/29/07 9:53am
  1. ;;1.5;CLINICAL CASE REGISTRIES;**2**;Feb 17, 2006;Build 6
  1. ;
  1. Q
  1. ;
  1. ;***** UPDATES THE LOCAL FIELDS
  1. ;
  1. ; IENS798 IENS of the registry record in the file #798
  1. ;
  1. ; .LFV Reference to a local variable that stores the
  1. ; list of the local field values
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; 0 Ok. No changes in local fields.
  1. ; >1 Ok. Local fields were modified.
  1. ;
  1. UPDLFV(IENS798,LFV) ;
  1. N DA,DIK,FLDIEN,IENS,IR,LFCNT,LFIEN,MOD,RC,RORFDA,RORLST,RORMSG,SCR
  1. S (MOD,RC)=0
  1. ;
  1. S (LFCNT,LFIEN)=0
  1. F S LFIEN=$O(LFV(LFIEN)) Q:LFIEN'>0 D
  1. . S LFCNT=LFCNT+1,IENS="?+"_LFCNT_","_IENS798
  1. . S RORFDA(798.02,IENS,.01)=LFIEN
  1. . S RORFDA(798.02,IENS,.02)=$P(LFV(LFIEN),U,5)
  1. . S RORFDA(798.02,IENS,1)=$P(LFV(LFIEN),U,6)
  1. ;--- Delete values of active fields that are not present in the
  1. ; LFV array (deleted by the user). Values of inactive fields
  1. ;--- are always left intact.
  1. S SCR="I $$LFACTIVE^RORDD01(+$G(^(0)))"
  1. S IENS=","_IENS798
  1. D LIST^DIC(798.02,IENS,"@;.01I",,,,,"B",SCR,,"RORLST","RORMSG")
  1. Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,798.02,IENS)
  1. S DIK=$$ROOT^DILFD(798.02,IENS),DA(1)=+IENS798
  1. S IR=""
  1. F S IR=$O(RORLST("DILIST","ID",IR)) Q:IR="" D
  1. . S FLDIEN=+RORLST("DILIST","ID",IR,.01)
  1. . I '$D(LFV(FLDIEN)) S DA=+RORLST("DILIST",2,IR) D ^DIK S MOD=1
  1. ;--- Store the data
  1. I $D(RORFDA)>1 S MOD=1 D Q:RC<0 RC
  1. . D UPDATE^DIE(,"RORFDA",,"RORMSG")
  1. . S:$G(DIERR) RC=$$DBS^RORERR("RORMSG",-9,,,798.02,IENS798)
  1. ;--- Success
  1. Q MOD