HDISVF08 ;ALB/RMO - 7118.22 File Utilities/API Cont.; 1/18/05@1:57:00
;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
;
;---- Begin HDIS Facility Term/Concept Association file (#7118.22) API(s) ----
;
FINDFAC(HDISYIEN,HDISFIEN,HDISTIEN,HDISIREF,HDISADDF,HDISAIEN,HDISERRM) ;Find or Add a New Facility Term/Concept Entry
; Input -- HDISYIEN HDIS System file (#7118.21) IEN
; HDISFIEN HDIS File/Field file (#7115.6) IEN
; HDISTIEN HDIS Term/Concept VUID Association file (#7118.11) IEN
; HDISIREF Internal Reference (Optional)
; HDISADDF Add a New Entry Flag (Optional- Default 0)
; 1=Yes and 0=No
; Output -- 1=Successful and 0=Failure
; If Successful:
; HDISAIEN HDIS Facility Term/Concept Association file IEN
; If Failure:
; HDISERRM Error Message (Optional)
N HDISI,HDISOKF
;Initialize ouput
S (HDISAIEN,HDISERRM)=""
;Check for missing variables, exit if not defined
I $G(HDISYIEN)'>0!($G(HDISFIEN)'>0)!($G(HDISTIEN)'>0) D G FINDFACQ
. S HDISERRM="Required Variable Missing."
;Check for existing System, File/Field, Term/Concept and Internal Reference, return entry and exit if it exists
I $D(^HDISF(7118.22,"AS",HDISYIEN,HDISFIEN,HDISTIEN)) D G ADDFACQ:$G(HDISAIEN)
. S HDISI=0
. F S HDISI=$O(^HDISF(7118.22,"AS",HDISYIEN,HDISFIEN,HDISTIEN,HDISI)) Q:'HDISI!($G(HDISAIEN)) D
. . I $D(^HDISF(7118.22,HDISI,0)),$P(^(0),"^",3)=$G(HDISIREF) D
. . . S HDISAIEN=HDISI
. . . S HDISOKF=1
;If flag set, Add a New Facility Term/Concept Entry
I $G(HDISADDF) S HDISOKF=$$ADDFAC(HDISYIEN,HDISFIEN,HDISTIEN,$G(HDISIREF),.HDISAIEN,.HDISERRM)
FINDFACQ Q +$G(HDISOKF)
;
ADDFAC(HDISYIEN,HDISFIEN,HDISTIEN,HDISIREF,HDISAIEN,HDISERRM) ;Find or Add a New Facility Term/Concept Entry
; Input -- HDISYIEN HDIS System file (#7118.21) IEN
; HDISFIEN HDIS File/Field file (#7115.6) IEN
; HDISTIEN HDIS Term/Concept VUID Association file (#7118.11) IEN
; HDISIREF Internal Reference (Optional)
; Output -- 1=Successful and 0=Failure
; If Successful:
; HDISAIEN HDIS Facility Term/Concept Association file IEN
; If Failure:
; HDISERRM Error Message (Optional)
N HDISFDA,HDISIEN,HDISMSG,HDISOKF
;Initialize ouput
S (HDISAIEN,HDISERRM)=""
;Set array for System, File/Field, Internal Reference, Term/Concept and Date/Time Term/Concept Associated
S HDISFDA(7118.22,"+1,",.01)=$G(HDISYIEN)
S HDISFDA(7118.22,"+1,",.02)=$G(HDISFIEN)
I $D(HDISIREF) S HDISFDA(7118.22,"+1,",.03)=$G(HDISIREF)
S HDISFDA(7118.22,"+1,",.04)=$G(HDISTIEN)
S HDISFDA(7118.22,"+1,",.05)=$$NOW^XLFDT
D UPDATE^DIE("","HDISFDA","HDISIEN","HDISMSG")
;Check for error
I $D(HDISMSG("DIERR")) D
. S HDISERRM=$G(HDISMSG("DIERR",1,"TEXT",1))
ELSE D
. S HDISAIEN=+$G(HDISIEN(1))
. S HDISOKF=1
D CLEAN^DILF
ADDFACQ Q +$G(HDISOKF)
;
GETIENS(HDISYIEN,HDISFIEN,HDISTIEN,HDISIENS) ;Get IENS for Facility Term/Concept by System, File/Field and Term/Concept
; Input -- HDISYIEN HDIS System file (#7118.21) IEN
; HDISFIEN HDIS File/Field file (#7115.6) IEN
; HDISTIEN HDIS Term/Concept VUID Association file (#7118.11) IEN
; Output -- 1=Successful and 0=Failure
; If Successful:
; HDISIENS Array where HDISIENS(IEN)=Internal Reference field (#.03)
N HDISI
;Initialize ouput
K HDISIENS
;Check for missing variables, exit if not defined
I $G(HDISYIEN)'>0!($G(HDISFIEN)'>0)!($G(HDISTIEN)'>0) G GETIENSQ
S HDISI=0
F S HDISI=$O(^HDISF(7118.22,"AS",HDISYIEN,HDISFIEN,HDISTIEN,HDISI)) Q:'HDISI D
. I $D(^HDISF(7118.22,HDISI,0)) S HDISIENS(HDISI)=$P(^(0),"^",3)
GETIENSQ Q +$S($D(HDISIENS):1,1:0)
;
;---- End HDIS Facility Term/Concept Association file (#7118.22) ----
HDISVF08 ;ALB/RMO - 7118.22 File Utilities/API Cont.; 1/18/05@1:57:00
+1 ;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
+2 ;
+3 ;---- Begin HDIS Facility Term/Concept Association file (#7118.22) API(s) ----
+4 ;
FINDFAC(HDISYIEN,HDISFIEN,HDISTIEN,HDISIREF,HDISADDF,HDISAIEN,HDISERRM) ;Find or Add a New Facility Term/Concept Entry
+1 ; Input -- HDISYIEN HDIS System file (#7118.21) IEN
+2 ; HDISFIEN HDIS File/Field file (#7115.6) IEN
+3 ; HDISTIEN HDIS Term/Concept VUID Association file (#7118.11) IEN
+4 ; HDISIREF Internal Reference (Optional)
+5 ; HDISADDF Add a New Entry Flag (Optional- Default 0)
+6 ; 1=Yes and 0=No
+7 ; Output -- 1=Successful and 0=Failure
+8 ; If Successful:
+9 ; HDISAIEN HDIS Facility Term/Concept Association file IEN
+10 ; If Failure:
+11 ; HDISERRM Error Message (Optional)
+12 NEW HDISI,HDISOKF
+13 ;Initialize ouput
+14 SET (HDISAIEN,HDISERRM)=""
+15 ;Check for missing variables, exit if not defined
+16 IF $GET(HDISYIEN)'>0!($GET(HDISFIEN)'>0)!($GET(HDISTIEN)'>0)
Begin DoDot:1
+17 SET HDISERRM="Required Variable Missing."
End DoDot:1
GOTO FINDFACQ
+18 ;Check for existing System, File/Field, Term/Concept and Internal Reference, return entry and exit if it exists
+19 IF $DATA(^HDISF(7118.22,"AS",HDISYIEN,HDISFIEN,HDISTIEN))
Begin DoDot:1
+20 SET HDISI=0
+21 FOR
SET HDISI=$ORDER(^HDISF(7118.22,"AS",HDISYIEN,HDISFIEN,HDISTIEN,HDISI))
IF 'HDISI!($GET(HDISAIEN))
QUIT
Begin DoDot:2
+22 IF $DATA(^HDISF(7118.22,HDISI,0))
IF $PIECE(^(0),"^",3)=$GET(HDISIREF)
Begin DoDot:3
+23 SET HDISAIEN=HDISI
+24 SET HDISOKF=1
End DoDot:3
End DoDot:2
End DoDot:1
IF $GET(HDISAIEN)
GOTO ADDFACQ
+25 ;If flag set, Add a New Facility Term/Concept Entry
+26 IF $GET(HDISADDF)
SET HDISOKF=$$ADDFAC(HDISYIEN,HDISFIEN,HDISTIEN,$GET(HDISIREF),.HDISAIEN,.HDISERRM)
FINDFACQ QUIT +$GET(HDISOKF)
+1 ;
ADDFAC(HDISYIEN,HDISFIEN,HDISTIEN,HDISIREF,HDISAIEN,HDISERRM) ;Find or Add a New Facility Term/Concept Entry
+1 ; Input -- HDISYIEN HDIS System file (#7118.21) IEN
+2 ; HDISFIEN HDIS File/Field file (#7115.6) IEN
+3 ; HDISTIEN HDIS Term/Concept VUID Association file (#7118.11) IEN
+4 ; HDISIREF Internal Reference (Optional)
+5 ; Output -- 1=Successful and 0=Failure
+6 ; If Successful:
+7 ; HDISAIEN HDIS Facility Term/Concept Association file IEN
+8 ; If Failure:
+9 ; HDISERRM Error Message (Optional)
+10 NEW HDISFDA,HDISIEN,HDISMSG,HDISOKF
+11 ;Initialize ouput
+12 SET (HDISAIEN,HDISERRM)=""
+13 ;Set array for System, File/Field, Internal Reference, Term/Concept and Date/Time Term/Concept Associated
+14 SET HDISFDA(7118.22,"+1,",.01)=$GET(HDISYIEN)
+15 SET HDISFDA(7118.22,"+1,",.02)=$GET(HDISFIEN)
+16 IF $DATA(HDISIREF)
SET HDISFDA(7118.22,"+1,",.03)=$GET(HDISIREF)
+17 SET HDISFDA(7118.22,"+1,",.04)=$GET(HDISTIEN)
+18 SET HDISFDA(7118.22,"+1,",.05)=$$NOW^XLFDT
+19 DO UPDATE^DIE("","HDISFDA","HDISIEN","HDISMSG")
+20 ;Check for error
+21 IF $DATA(HDISMSG("DIERR"))
Begin DoDot:1
+22 SET HDISERRM=$GET(HDISMSG("DIERR",1,"TEXT",1))
End DoDot:1
+23 IF '$TEST
Begin DoDot:1
+24 SET HDISAIEN=+$GET(HDISIEN(1))
+25 SET HDISOKF=1
End DoDot:1
+26 DO CLEAN^DILF
ADDFACQ QUIT +$GET(HDISOKF)
+1 ;
GETIENS(HDISYIEN,HDISFIEN,HDISTIEN,HDISIENS) ;Get IENS for Facility Term/Concept by System, File/Field and Term/Concept
+1 ; Input -- HDISYIEN HDIS System file (#7118.21) IEN
+2 ; HDISFIEN HDIS File/Field file (#7115.6) IEN
+3 ; HDISTIEN HDIS Term/Concept VUID Association file (#7118.11) IEN
+4 ; Output -- 1=Successful and 0=Failure
+5 ; If Successful:
+6 ; HDISIENS Array where HDISIENS(IEN)=Internal Reference field (#.03)
+7 NEW HDISI
+8 ;Initialize ouput
+9 KILL HDISIENS
+10 ;Check for missing variables, exit if not defined
+11 IF $GET(HDISYIEN)'>0!($GET(HDISFIEN)'>0)!($GET(HDISTIEN)'>0)
GOTO GETIENSQ
+12 SET HDISI=0
+13 FOR
SET HDISI=$ORDER(^HDISF(7118.22,"AS",HDISYIEN,HDISFIEN,HDISTIEN,HDISI))
IF 'HDISI
QUIT
Begin DoDot:1
+14 IF $DATA(^HDISF(7118.22,HDISI,0))
SET HDISIENS(HDISI)=$PIECE(^(0),"^",3)
End DoDot:1
GETIENSQ QUIT +$SELECT($DATA(HDISIENS):1,1:0)
+1 ;
+2 ;---- End HDIS Facility Term/Concept Association file (#7118.22) ----