| [613] | 1 | RORUTL19 ;HCIOFO/SG - PATIENT DATA UTILITIES ; 1/29/07 9:53am | 
|---|
|  | 2 | ;;1.5;CLINICAL CASE REGISTRIES;**2**;Feb 17, 2006;Build 6 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | Q | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | ;***** UPDATES THE LOCAL FIELDS | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | ; IENS798       IENS of the registry record in the file #798 | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | ; .LFV          Reference to a local variable that stores the | 
|---|
|  | 11 | ;               list of the local field values | 
|---|
|  | 12 | ; | 
|---|
|  | 13 | ; Return Values: | 
|---|
|  | 14 | ;       <0  Error code | 
|---|
|  | 15 | ;        0  Ok. No changes in local fields. | 
|---|
|  | 16 | ;       >1  Ok. Local fields were modified. | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | UPDLFV(IENS798,LFV) ; | 
|---|
|  | 19 | N DA,DIK,FLDIEN,IENS,IR,LFCNT,LFIEN,MOD,RC,RORFDA,RORLST,RORMSG,SCR | 
|---|
|  | 20 | S (MOD,RC)=0 | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | S (LFCNT,LFIEN)=0 | 
|---|
|  | 23 | F  S LFIEN=$O(LFV(LFIEN))  Q:LFIEN'>0  D | 
|---|
|  | 24 | . S LFCNT=LFCNT+1,IENS="?+"_LFCNT_","_IENS798 | 
|---|
|  | 25 | . S RORFDA(798.02,IENS,.01)=LFIEN | 
|---|
|  | 26 | . S RORFDA(798.02,IENS,.02)=$P(LFV(LFIEN),U,5) | 
|---|
|  | 27 | . S RORFDA(798.02,IENS,1)=$P(LFV(LFIEN),U,6) | 
|---|
|  | 28 | ;--- Delete values of active fields that are not present in the | 
|---|
|  | 29 | ;    LFV array (deleted by the user). Values of inactive fields | 
|---|
|  | 30 | ;--- are always left intact. | 
|---|
|  | 31 | S SCR="I $$LFACTIVE^RORDD01(+$G(^(0)))" | 
|---|
|  | 32 | S IENS=","_IENS798 | 
|---|
|  | 33 | D LIST^DIC(798.02,IENS,"@;.01I",,,,,"B",SCR,,"RORLST","RORMSG") | 
|---|
|  | 34 | Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,798.02,IENS) | 
|---|
|  | 35 | S DIK=$$ROOT^DILFD(798.02,IENS),DA(1)=+IENS798 | 
|---|
|  | 36 | S IR="" | 
|---|
|  | 37 | F  S IR=$O(RORLST("DILIST","ID",IR))  Q:IR=""  D | 
|---|
|  | 38 | . S FLDIEN=+RORLST("DILIST","ID",IR,.01) | 
|---|
|  | 39 | . I '$D(LFV(FLDIEN))  S DA=+RORLST("DILIST",2,IR)  D ^DIK  S MOD=1 | 
|---|
|  | 40 | ;--- Store the data | 
|---|
|  | 41 | I $D(RORFDA)>1  S MOD=1  D  Q:RC<0 RC | 
|---|
|  | 42 | . D UPDATE^DIE(,"RORFDA",,"RORMSG") | 
|---|
|  | 43 | . S:$G(DIERR) RC=$$DBS^RORERR("RORMSG",-9,,,798.02,IENS798) | 
|---|
|  | 44 | ;--- Success | 
|---|
|  | 45 | Q MOD | 
|---|