- 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) ----
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHDISVF08 3869 printed Feb 18, 2025@23:23:13 Page 2
- 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) ----