SDESNEEDSPREFS ;ALB/BLB - SDES SPECIAL NEEDS PREFS; Feb 13, 2023@6:10pm
;;5.3;Scheduling;**842**;Aug 13, 1993;Build 17
;;Per VHA Directive 6402, this routine should not be modified
;
Q
;
GETNEEDSPREFS(JSONRETURN,DFN) ;
N RETURN,ERRORS,NEEDSANDPREFS
;
I '$$VALIDATEDFN(.ERRORS,$G(DFN)) M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q
;
D BUILD(.NEEDSANDPREFS,DFN)
I '$D(NEEDSANDPREFS) S NEEDSANDPREFS("Patient",1)=""
;
M RETURN=NEEDSANDPREFS D BUILDJSON^SDESBUILDJSON(.JSONRETURN,.RETURN)
Q
;
BUILD(NEEDSANDPREFS,DFN) ;
N NEEDSPREFSIEN,COUNT,IENS,NUM,NEEDSPREFSSUBIEN,REMARKSIEN
;
I '$D(^SDEC(409.845,"B",DFN)) Q
;
S NEEDSPREFSIEN=0,NEEDSPREFSIEN=$O(^SDEC(409.845,"B",DFN,NEEDSPREFSIEN))
S NEEDSANDPREFS("Patient",1,"PatientName")=$$GET1^DIQ(409.845,NEEDSPREFSIEN,.01,"E")
;
S NEEDSPREFSSUBIEN=0,COUNT=0
F S NEEDSPREFSSUBIEN=$O(^SDEC(409.845,NEEDSPREFSIEN,1,NEEDSPREFSSUBIEN)) Q:'NEEDSPREFSSUBIEN D
.S IENS=NEEDSPREFSSUBIEN_","_NEEDSPREFSIEN_",",COUNT=COUNT+1
.S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"Preference")=$$GET1^DIQ(409.8451,IENS,.01,"E")
.S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"DateTimeAdded")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8451,IENS,2,"I"))
.S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"EnteredByName")=$$GET1^DIQ(409.8451,IENS,3,"E")
.S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"EnteredByIEN")=$$GET1^DIQ(409.8451,IENS,3,"I")
.S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"InactiveDate")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8451,IENS,4,"I"))
.S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"InactivatedBy")=$$GET1^DIQ(409.8451,IENS,5,"E")
.S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"InactivatedByIEN")=$$GET1^DIQ(409.8451,IENS,5,"I")
.S REMARKSIEN=0,NUM=0
.F S REMARKSIEN=$O(^SDEC(409.845,NEEDSPREFSIEN,1,NEEDSPREFSSUBIEN,1,REMARKSIEN)) Q:'REMARKSIEN D
..S NUM=NUM+1
..S NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"Remarks",NUM)=$$GET1^DIQ(409.84516,REMARKSIEN_","_IENS,.01,"E")
Q
;
VALIDATEDFN(ERRORS,DFN) ;
I DFN="" D ERRLOG^SDESJSON(.ERRORS,1) Q 0
I DFN'="",'$D(^DPT(DFN,0)) D ERRLOG^SDESJSON(.ERRORS,2) Q 0
Q 1
;
BUILDJSON(JSONRETURN,RETURN) ;
N JSONERROR
D ENCODE^XLFJSON("RETURN","JSONRETURN")
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDESNEEDSPREFS 2381 printed Dec 13, 2024@02:57:22 Page 2
SDESNEEDSPREFS ;ALB/BLB - SDES SPECIAL NEEDS PREFS; Feb 13, 2023@6:10pm
+1 ;;5.3;Scheduling;**842**;Aug 13, 1993;Build 17
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;
+4 QUIT
+5 ;
GETNEEDSPREFS(JSONRETURN,DFN) ;
+1 NEW RETURN,ERRORS,NEEDSANDPREFS
+2 ;
+3 IF '$$VALIDATEDFN(.ERRORS,$GET(DFN))
MERGE RETURN=ERRORS
DO BUILDJSON(.JSONRETURN,.RETURN)
QUIT
+4 ;
+5 DO BUILD(.NEEDSANDPREFS,DFN)
+6 IF '$DATA(NEEDSANDPREFS)
SET NEEDSANDPREFS("Patient",1)=""
+7 ;
+8 MERGE RETURN=NEEDSANDPREFS
DO BUILDJSON^SDESBUILDJSON(.JSONRETURN,.RETURN)
+9 QUIT
+10 ;
BUILD(NEEDSANDPREFS,DFN) ;
+1 NEW NEEDSPREFSIEN,COUNT,IENS,NUM,NEEDSPREFSSUBIEN,REMARKSIEN
+2 ;
+3 IF '$DATA(^SDEC(409.845,"B",DFN))
QUIT
+4 ;
+5 SET NEEDSPREFSIEN=0
SET NEEDSPREFSIEN=$ORDER(^SDEC(409.845,"B",DFN,NEEDSPREFSIEN))
+6 SET NEEDSANDPREFS("Patient",1,"PatientName")=$$GET1^DIQ(409.845,NEEDSPREFSIEN,.01,"E")
+7 ;
+8 SET NEEDSPREFSSUBIEN=0
SET COUNT=0
+9 FOR
SET NEEDSPREFSSUBIEN=$ORDER(^SDEC(409.845,NEEDSPREFSIEN,1,NEEDSPREFSSUBIEN))
if 'NEEDSPREFSSUBIEN
QUIT
Begin DoDot:1
+10 SET IENS=NEEDSPREFSSUBIEN_","_NEEDSPREFSIEN_","
SET COUNT=COUNT+1
+11 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"Preference")=$$GET1^DIQ(409.8451,IENS,.01,"E")
+12 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"DateTimeAdded")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8451,IENS,2,"I"))
+13 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"EnteredByName")=$$GET1^DIQ(409.8451,IENS,3,"E")
+14 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"EnteredByIEN")=$$GET1^DIQ(409.8451,IENS,3,"I")
+15 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"InactiveDate")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8451,IENS,4,"I"))
+16 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"InactivatedBy")=$$GET1^DIQ(409.8451,IENS,5,"E")
+17 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"InactivatedByIEN")=$$GET1^DIQ(409.8451,IENS,5,"I")
+18 SET REMARKSIEN=0
SET NUM=0
+19 FOR
SET REMARKSIEN=$ORDER(^SDEC(409.845,NEEDSPREFSIEN,1,NEEDSPREFSSUBIEN,1,REMARKSIEN))
if 'REMARKSIEN
QUIT
Begin DoDot:2
+20 SET NUM=NUM+1
+21 SET NEEDSANDPREFS("Patient",1,"SpecialNeedsAndPreferences",COUNT,"Remarks",NUM)=$$GET1^DIQ(409.84516,REMARKSIEN_","_IENS,.01,"E")
End DoDot:2
End DoDot:1
+22 QUIT
+23 ;
VALIDATEDFN(ERRORS,DFN) ;
+1 IF DFN=""
DO ERRLOG^SDESJSON(.ERRORS,1)
QUIT 0
+2 IF DFN'=""
IF '$DATA(^DPT(DFN,0))
DO ERRLOG^SDESJSON(.ERRORS,2)
QUIT 0
+3 QUIT 1
+4 ;
BUILDJSON(JSONRETURN,RETURN) ;
+1 NEW JSONERROR
+2 DO ENCODE^XLFJSON("RETURN","JSONRETURN")
+3 QUIT
+4 ;