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

BSTSUPRF.m

Go to the documentation of this file.
  1. BSTSUPRF ;GDIT/HS/BEE - SNOMED User Preferences - RPC Calls ; 10 Aug 2012 9:24 AM
  1. ;;2.0;IHS STANDARD TERMINOLOGY;;Dec 01, 2016;Build 62
  1. ;
  1. Q
  1. ;
  1. SET(DATA,NMID,INPUT) ;EP - BSTS SET USER PREFS
  1. ;
  1. ;Description
  1. ; Saves search preference for a user
  1. ;
  1. ;Input
  1. ; INPUT - NMID - Namespace ID - Default to SNOMED US EXT (#36)
  1. ; FS - Default Search Type (F-FSN/S-Synonym), default it F
  1. ; CNT - Number of records to return (25, 50, 100, 200, ALL), default is 50
  1. ; PC - Display Parent Child Info (1-Yes/0-No) - default is No
  1. ; AC - Disable Autocomplete
  1. ;
  1. ;Output
  1. ; ^TMP("BSTSUPRF") - Name of global (passed by reference) in which the data is stored.
  1. ;
  1. ;Variables Used
  1. ; UID - Unique TMP global subscript.
  1. ;
  1. NEW UID,II,DLAYGO,X,Y,DIC,DA,NMIEN,BSTSUP,IENS,ERROR,NMID,FS,CNT,PC,AC
  1. ;
  1. ;Address blank inputs
  1. S INPUT=$G(INPUT)
  1. S NMID=$G(NMID) S:NMID="" NMID=36
  1. S FS=$P(INPUT,"|")
  1. S CNT=$P(INPUT,"|",2)
  1. S PC=$P(INPUT,"|",3)
  1. S AC=$P(INPUT,"|",4)
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BSTSUPRF",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BSTSUPRF D UNWIND^%ZTER" ; SAC 2009 2.2.3.17
  1. ;
  1. S II=0
  1. S @DATA@(0)="T00001RESULT^T00100ERROR_MESSAGE"_$C(30)
  1. ;
  1. ;Input validation
  1. I '$D(^BSTS(9002318.1,"B",NMID)) S II=II+1,@DATA@(II)="-1^Invalid Namespace ID"_$C(30) G XSET
  1. I CNT'="",CNT'=25,CNT'=50,CNT'=100,CNT'=200,CNT'="ALL" S II=II+1,@DATA@(II)="-1^Invalid Record Count Value"_$C(30) G XSET
  1. I PC'="",PC'=1,PC'=0 S II=II+1,@DATA@(II)="-1^Invalid Display Parents/Children Value"_$C(30) G XSET
  1. I FS'="",FS'="F",FS'="S" S II=II+1,@DATA@(II)="-1^Invalid Search Type"_$C(30) G XSET
  1. I AC'="",AC'=1,AC'=0 S II=II+1,@DATA@(II)="-1^Invalid Disable Auto-complete Value"_$C(30) G XSET
  1. ;
  1. ;Process resets
  1. I CNT="",PC="",FS="",AC="" D G XSET
  1. . NEW RES
  1. . S RES=$$RESET(NMID)
  1. . S II=II+1,@DATA@(II)=RES_$C(30)
  1. ;
  1. ;Plug in details
  1. S:FS="" FS="F"
  1. S:CNT="" CNT=50
  1. S:PC="" PC=0
  1. S:AC="" AC=0
  1. ;
  1. ;Check for existing user entry
  1. I '$D(^BSTS(9002318.7,"B",DUZ)) D
  1. . S DLAYGO=9002318.7,DIC(0)="LX",DIC="^BSTS(9002318.7,",X=DUZ
  1. . K DO,DD D FILE^DICN
  1. S DA(1)=$O(^BSTS(9002318.7,"B",DUZ,"")) I DA(1)="" S II=II+1,@DATA@(II)="-1^Could not file new user entry"_$C(30) G XSET
  1. ;
  1. ;Check for namespace entry
  1. S NMIEN=$O(^BSTS(9002318.1,"B",NMID,"")) I NMIEN="" S II=II+1,@DATA@(II)="-1^Invalid Namespace ID"_$C(30) G XSET
  1. I '$D(^BSTS(9002318.7,DA(1),1,"B",NMIEN)) D
  1. . S DLAYGO=9002318.71,DIC(0)="LX",DIC="^BSTS(9002318.7,"_DA(1)_",1,",X=NMIEN
  1. . K DO,DD D FILE^DICN
  1. S DA=$O(^BSTS(9002318.7,DA(1),1,"B",NMIEN,"")) I DA="" S II=II+1,@DATA@(II)="-1^Could not add namespace multiple"_$C(30) G XSET
  1. S IENS=$$IENS^DILF(.DA)
  1. ;
  1. S BSTSUP(9002318.71,IENS,.02)=FS
  1. S BSTSUP(9002318.71,IENS,.03)=CNT
  1. S BSTSUP(9002318.71,IENS,.04)=PC
  1. S BSTSUP(9002318.71,IENS,.05)=AC
  1. D FILE^DIE("","BSTSUP","ERROR")
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1^Could not file entry"_$C(30) G XSET
  1. ;
  1. ;Log success
  1. S II=II+1,@DATA@(II)="1^"_$C(30)
  1. ;
  1. XSET S II=II+1,@DATA@(II)=$C(31)
  1. ;
  1. Q
  1. ;
  1. GET(DATA,NMID) ;EP - BSTS GET USER PREFS
  1. ;
  1. ;Description
  1. ; Retrieves search preference for a user
  1. ;
  1. ;Input
  1. ; INPUT - NMID - Namespace ID - Default to SNOMED US EXT (#36)
  1. ;
  1. ;Output
  1. ; ^TMP("BSTSUPRF") - Name of global (passed by reference) in which the data is stored.
  1. ;
  1. ;Variables Used
  1. ; UID - Unique TMP global subscript.
  1. ;
  1. ;Address blank inputs
  1. S NMID=$G(NMID) S:NMID="" NMID=36
  1. ;
  1. N UID,II,DA,NMIEN,IENS,NIEN,PC,CNT,FS,DIEN,AC
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BSTSUPRF",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BSTSUPRF D UNWIND^%ZTER" ; SAC 2009 2.2.3.17
  1. ;
  1. S II=0
  1. S @DATA@(0)="T00100SETTINGS"_$C(30)
  1. ;
  1. ;Check for existing user entry
  1. S DIEN=$O(^BSTS(9002318.7,"B",DUZ,"")) I DIEN="" S II=II+1,@DATA@(II)="|||"_$C(30) G XGET
  1. ;
  1. ;Check for namespace entry
  1. S NMIEN=$O(^BSTS(9002318.1,"B",NMID,"")) I NMIEN="" S II=II+1,@DATA@(II)="|||"_$C(30) G XGET
  1. S NIEN=$O(^BSTS(9002318.7,DIEN,1,"B",NMIEN,"")) I NIEN="" S II=II+1,@DATA@(II)="|||"_$C(30) G XGET
  1. ;
  1. ;Retrieve entry
  1. S DA(1)=DIEN,DA=NIEN
  1. S IENS=$$IENS^DILF(.DA)
  1. S FS=$$GET1^DIQ(9002318.71,IENS,.02,"I")
  1. S CNT=$$GET1^DIQ(9002318.71,IENS,.03,"I")
  1. S PC=$$GET1^DIQ(9002318.71,IENS,.04,"I")
  1. S AC=$$GET1^DIQ(9002318.71,IENS,.05,"I")
  1. S II=II+1,@DATA@(II)=FS_"|"_CNT_"|"_PC_"|"_AC_$C(30)
  1. ;
  1. XGET S II=II+1,@DATA@(II)=$C(31)
  1. ;
  1. Q
  1. ;
  1. RESET(NMID) ;Reset user settings
  1. ;
  1. ;Description
  1. ; Resets search preference for a user
  1. ;
  1. ;Input
  1. ; INPUT - NMID - Namespace ID - Default to SNOMED US EXT (#36)
  1. ;
  1. ;Output
  1. ; ^TMP("BSTSUPRF") - Name of global (passed by reference) in which the data is stored.
  1. ;
  1. ;Variables Used
  1. ; UID - Unique TMP global subscript.
  1. ;
  1. ;Address blank inputs
  1. S NMID=$G(NMID) S:NMID="" NMID=36
  1. ;
  1. N UID,II,DA,NMIEN,DIEN,DIK,CIEN
  1. ;
  1. ;Input validation
  1. I '$D(^BSTS(9002318.1,"B",NMID)) Q "-1^Invalid Namespace ID"
  1. ;
  1. ;Check for existing user entry
  1. S DIEN=$O(^BSTS(9002318.7,"B",DUZ,"")) I DIEN="" Q "1^"
  1. ;
  1. ;Check for namespace entry
  1. S NMIEN=$O(^BSTS(9002318.1,"B",NMID,"")) I NMIEN="" Q "-1^Invalid Namespace ID"
  1. S CIEN=$O(^BSTS(9002318.7,DIEN,1,"B",NMIEN,"")) I CIEN="" Q "1^"
  1. ;
  1. ;Remove entry
  1. S DIK="^BSTS(9002318.7,"_DIEN_",1,",DA(1)=DIEN,DA=CIEN
  1. D ^DIK
  1. ;
  1. Q "1^"
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q