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

YSBPREFS.m

Go to the documentation of this file.
  1. YSBPREFS ;BAL/KTL - MHA DASHBOARD USER PREFERENCES ; Apr 01, 2021@16:33
  1. ;;5.01;MENTAL HEALTH;**202**;Dec 30, 1994;Build 47
  1. ;
  1. ; Routine saves Settings, gets settings for User Preferences
  1. ; in JSON format.
  1. ;
  1. ; Reference to XPAR in ICR #2263
  1. Q
  1. ;==============================
  1. ; Get User Preferences
  1. ;
  1. GETHRSEL(JSONOUT,PARMS) ;
  1. ; Given user DUZ and Widget, get the High Risk Patient Selection Criteria
  1. N DATAOUT,WPARR,DUZPAR,WDGT,YDUZ,II
  1. K JSONOUT
  1. S WDGT=1
  1. S YDUZ=$G(DUZ)
  1. S:WDGT="" WDGT=1 ;For first instance of this parameter. Most likely always 1
  1. S DUZPAR=YDUZ_";VA(200,"
  1. D GETWP^XPAR(.WPARR,DUZPAR,"YSB HR SELECTION CRITERIA",WDGT)
  1. I '$D(WPARR) D Q
  1. . S JSONOUT(1)="{}"
  1. I $D(WPARR)=1,(WPARR="") D Q
  1. . S JSONOUT(1)="{}"
  1. S II="" F S II=$O(WPARR(II)) Q:II="" D
  1. . S JSONOUT(II)=WPARR(II,0)
  1. Q
  1. GETMBSEL(JSONOUT) ;
  1. ; Given user DUZ and Widget, get the Measurement Based Care (MBC) Patient Selection Criteria
  1. N DATAOUT,WPARR,DUZPAR,WDGT,YDUZ
  1. K JSONOUT
  1. S WDGT=1
  1. S YDUZ=$G(DUZ)
  1. S:WDGT="" WDGT=1 ;For first instance of this parameter. Most likely always 1
  1. S DUZPAR=YDUZ_";VA(200,"
  1. D GETWP^XPAR(.WPARR,DUZPAR,"YSB MBC SELECTION CRITERIA",WDGT)
  1. I '$D(WPARR) D Q
  1. . ;S JSONOUT(1)="{}" ;Need to define Default
  1. . D MBSDFLT(.JSONOUT)
  1. I $D(WPARR)=1,(WPARR="") D Q
  1. . D MBSDFLT(.JSONOUT)
  1. S II="" F S II=$O(WPARR(II)) Q:II="" D
  1. . S JSONOUT(II)=WPARR(II,0)
  1. Q
  1. MBSDFLT(JSONOUT) ;Generate default Selection JSON
  1. N LARR,ERRARR,CNT,XCNT
  1. ; Remove default list of all locations in UI, too cumbersome.
  1. ;N DUMDAT
  1. ;S CNT=0
  1. ;D GETLOCS^YSBWHIG2(.DUMDAT,1) ;Call to get standardized MH Locs list
  1. ;S XCNT=0 F S XCNT=$O(DUMDAT("widgets",1,"locationList",XCNT)) Q:XCNT="" D
  1. ;. S CNT=CNT+1
  1. ;. S LARR("data","clinics",CNT,"label")=DUMDAT("widgets",1,"locationList",XCNT,"name")
  1. ;. S LARR("data","clinics",CNT,"value")=DUMDAT("widgets",1,"locationList",XCNT,"id")
  1. S LARR("data","date","label")="past year"
  1. S LARR("data","date","value")="-365"
  1. S LARR("data","sessionId")=""
  1. D ENCODE^YSBJSON("LARR","JSONOUT","ERRARR")
  1. Q
  1. GETILST(JSONOUT,PARMS) ;
  1. ; Given user DUZ and Widget, get the Measurement Based Care (MBC) Patient Selection Criteria
  1. N DATAOUT,WPARR,DUZPAR,WDGT,YDUZ
  1. K JSONOUT
  1. S WDGT=""
  1. S YDUZ=$G(DUZ)
  1. S:WDGT="" WDGT=1 ;For first instance of this parameter. Most likely always 1
  1. S DUZPAR=YDUZ_";VA(200,"
  1. D GETWP^XPAR(.WPARR,DUZPAR,"YSB MBC INSTRUMENT SELECTION",WDGT)
  1. I '$D(WPARR) D Q
  1. . S JSONOUT(1)="{}" ;Need to define Default
  1. . ;D MBCIDFLT(.JSONOUT)
  1. I ($D(WPARR)=1),(WPARR="") D Q
  1. . S JSONOUT(1)="{}" ;Need to define Default
  1. . ;D MBCIDFLT(.JSONOUT)
  1. S II="" F S II=$O(WPARR(II)) Q:II="" D
  1. . S JSONOUT(II)=WPARR(II,0)
  1. Q
  1. MBCIDFLT(JSONOUT) ;Generate Default MBC Instrument List
  1. Q
  1. GETUSRP(JSONOUT) ;
  1. ; Given user DUZ and Widget, get the Patient Selection Criteria
  1. N DATAOUT,WPARR,DUZPAR,WDGT,YDUZ
  1. ;S YDUZ=$P(PARMS,"/"),WDGT=$P(PARMS,"/",2)
  1. K JSONOUT
  1. S WDGT=""
  1. S YDUZ=$G(DUZ)
  1. S:WDGT="" WDGT=1 ;For first instance of this parameter. Most likely always 1
  1. S DUZPAR=YDUZ_";VA(200,"
  1. D GETWP^XPAR(.WPARR,DUZPAR,"YSB USER COLUMN PREFERENCE",WDGT)
  1. I '$D(WPARR) D Q
  1. . D DFLTUP(.JSONOUT)
  1. I ($D(WPARR)=1),(WPARR="") D Q
  1. . D DFLTUP(.JSONOUT)
  1. S II="" F S II=$O(WPARR(II)) Q:II="" D
  1. . S JSONOUT(II)=WPARR(II,0)
  1. Q
  1. WEBGUSRP(ARGS,RESULTS) ;MHA Web call to get User Preferences
  1. N JSONOUT
  1. D GETUSRP(.JSONOUT)
  1. D TOTMP^YSBRPC(.JSONOUT)
  1. S RESULTS=$NA(^TMP("YTQ-JSON",$J))
  1. Q
  1. DFLTUP(XJSON) ;
  1. ; Get the Default columns to display if there are no set User Preferences
  1. N II,XDATA,XNAM,XJ,SPC,XCNT,XTABC
  1. S $P(SPC," ",10)=""
  1. S XCNT=1,XTABC=1,XJSON(XCNT)="{"
  1. D GETWDGT^YSBRPC(.XDATA)
  1. S II=0 F S II=$O(XDATA("widgets",II)) Q:+II=0 D
  1. . S XNAM=$G(XDATA("widgets",II,"name"))
  1. . S XNAM=$S(XNAM="HIGH RISK":"highRisk",XNAM="MBC":"measurementBased",1:XNAM)
  1. . K XDATA("widgets",II,"instrumentList") ;Don't include instrument list for now
  1. . K XDATA("widgets",II,"name")
  1. . M XJ(XNAM)=XDATA("widgets",II)
  1. . S XJ(XNAM,"display")="true"
  1. . S XJ(XNAM,"filterList","name")="name"
  1. . S XJ(XNAM,"filterList","value")=""
  1. D ENCODE^YSBJSON("XJ","XJSON","ERRARY")
  1. Q
  1. ;=============================================
  1. ;Set User Preferences
  1. ;
  1. HRWSEL(JSONOUT,IN) ;
  1. ; Save PATIENT SELECTION CRITERIA
  1. ; High Risk Widget
  1. Q ;Not used yet
  1. N WPARR,II,YDUZ,JSON,CNT,JSFLG,PDEF
  1. N DATAOUT
  1. N FDA,IENS,FDAIEN,MSG
  1. N INSTANCE
  1. S CNT=0,YDUZ=""
  1. ;In the IN array the body starts at line 4
  1. S II=3 F S II=$O(IN(II)) Q:II="" D
  1. . S CNT=CNT+1,JSON(CNT)=IN(II)
  1. . ;I IN(II)["userId" S YDUZ=$$EXTPROP(STR,"""userId"":")
  1. S YDUZ=$G(DUZ)
  1. S PDEF=$O(^XTV(8989.51,"B","YSB HR SELECTION CRITERIA",""))
  1. I PDEF="" D ERRHND("high_risk_selection","Parameter not defined") Q
  1. S INSTANCE=1
  1. S YDUZ=YDUZ_";VA(200,"
  1. D EN^XPAR(YDUZ,PDEF,INSTANCE,.JSON,.MSG)
  1. S DATAOUT("high_risk_selection",1,"status")="OK"
  1. D ENCODE^YSBJSON("DATAOUT","JSONOUT","ERRARY")
  1. Q
  1. MBCWSEL(JSONOUT,IN) ;
  1. ; Save PATIENT SELECTION CRITERIA
  1. ; Measurement Based Care (MBC) widget
  1. N WPARR,II,YDUZ,JSON,CNT,JSFLG,PDEF
  1. N DATAOUT
  1. N FDA,IENS,FDAIEN,MSG
  1. N INSTANCE,STRT,DONE
  1. S STRT="",DONE=""
  1. S II=0 F S II=$O(IN(II)) Q:II=""!DONE D
  1. . I IN(II)="" S STRT=II,DONE=1
  1. I STRT="" D ERRHND("mbc_selection","Data not found") Q
  1. S CNT=0,YDUZ=""
  1. ;In the IN array the body starts at line 4
  1. S II=STRT F S II=$O(IN(II)) Q:II="" D
  1. . S CNT=CNT+1,JSON(CNT)=IN(II)
  1. S YDUZ=$G(DUZ)
  1. S PDEF=$O(^XTV(8989.51,"B","YSB MBC SELECTION CRITERIA",""))
  1. I PDEF="" D ERRHND("mbc_selection","Parameter not defined") Q
  1. S INSTANCE=1
  1. S YDUZ=YDUZ_";VA(200,"
  1. D EN^XPAR(YDUZ,PDEF,INSTANCE,.JSON,.MSG)
  1. S DATAOUT("mbc_selection",1,"status")="OK"
  1. D ENCODE^YSBJSON("DATAOUT","JSONOUT","ERRARY")
  1. Q
  1. ILST(JSONOUT,IN) ;
  1. ; Save the MBC INSTRUMENT SELECTION LIST
  1. ; Measurement Based Care (MBC) widget
  1. N WPARR,II,YDUZ,JSON,CNT,JSFLG,PDEF
  1. N DATAOUT
  1. N FDA,IENS,FDAIEN,MSG
  1. N INSTANCE,STRT,DONE
  1. S CNT=0,YDUZ="",STRT="",DONE=""
  1. S II=0 F S II=$O(IN(II)) Q:II=""!DONE D
  1. . I IN(II)="" S STRT=II,DONE=1
  1. I STRT="" D ERRHND("mbc_instrument_selection","Data not found") Q
  1. ;In the IN array the body starts at line 4
  1. S II=3 F S II=$O(IN(II)) Q:II="" D
  1. . S CNT=CNT+1,JSON(CNT)=IN(II)
  1. S YDUZ=$G(DUZ)
  1. S PDEF=$O(^XTV(8989.51,"B","YSB MBC INSTRUMENT SELECTION",""))
  1. I PDEF="" D ERRHND("mbc_instrument_selection","Parameter not defined") Q
  1. S INSTANCE=1
  1. S YDUZ=YDUZ_";VA(200,"
  1. D EN^XPAR(YDUZ,PDEF,INSTANCE,.JSON,.MSG)
  1. S DATAOUT("mbc_instrument_selection",1,"status")="OK"
  1. D ENCODE^YSBJSON("DATAOUT","JSONOUT","ERRARY")
  1. Q
  1. USRP(JSONOUT,IN) ;
  1. ; Save PATIENT Column preference
  1. ; Column preference settings
  1. N WPARR,II,YDUZ,JSON,CNT,JSFLG,PDEF
  1. N DATAOUT
  1. N FDA,IENS,FDAIEN,MSG
  1. N INSTANCE
  1. S CNT=0,YDUZ=""
  1. ;In the IN array the body starts at line 4
  1. S II=2 F S II=$O(IN(II)) Q:II="" D
  1. . S CNT=CNT+1,JSON(CNT)=IN(II)
  1. S JSON="DASH COL PREF"
  1. S YDUZ=$G(DUZ)
  1. S PDEF=$O(^XTV(8989.51,"B","YSB USER COLUMN PREFERENCE",""))
  1. I PDEF="" D ERRHND("user_preference","Parameter not defined") Q
  1. S INSTANCE=1
  1. S YDUZ=YDUZ_";VA(200,"
  1. D EN^XPAR(YDUZ,PDEF,INSTANCE,.JSON,.MSG)
  1. S DATAOUT("user_preference",1,"status")="OK"
  1. D ENCODE^YSBJSON("DATAOUT","JSONOUT","ERRARY")
  1. Q
  1. EXTPROP(STR,PROP) ;
  1. ; Extract the VALUE from the string based on the PROPerty
  1. N VAL
  1. S VAL=$P(STR,PROP,2)
  1. I $E(VAL)="""" S VAL=$E(VAL,2,$L(VAL))
  1. I $E(VAL,$L(VAL))="""" S VAL=$E(VAL,1,$L(VAL)-1)
  1. Q VAL
  1. ERRHND(TYP,MSG) ;
  1. K DATAOUT
  1. S DATAOUT(TYP,1,"line")=MSG
  1. D ENCODE^YSBJSON("DATAOUT","JSONOUT","ERRARY")
  1. Q