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

SDES2EDITPATDEMO.m

Go to the documentation of this file.
  1. SDES2EDITPATDEMO ;ALB/BLB,BWF,JDJ - SDES2 EDIT PATIENT DEMOGRAPHICS ;JUN 17,2024
  1. ;;5.3;Scheduling;**877,878,881**;Aug 13, 1993;Build 10
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;---------------------------------------------------------------
  1. Q
  1. ;
  1. EDITDEMOGRAPHICS(JSON,SDCONTEXT,PATIENT) ;
  1. N ERRORS,RETURN
  1. ;
  1. D VALIDATE(.ERRORS,.PATIENT,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("EditPatientDemographics")="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
  1. ;
  1. D EDITDEMO($G(PATIENT("DFN")))
  1. S RETURN("EditPatientDemographics")=1
  1. D BUILDJSON^SDES2JSON(.JSON,.RETURN)
  1. Q
  1. ;
  1. VALIDATE(ERRORS,PATIENT,SDCONTEXT) ;
  1. N RACECOUNT
  1. ;
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. D VALFILEIEN^SDES2VALUTIL(,.ERRORS,2,$G(PATIENT("DFN")),1,,1,2)
  1. ;
  1. S RACECOUNT=0
  1. F S RACECOUNT=$O(PATIENT("RACE",RACECOUNT)) Q:'RACECOUNT D
  1. .I $G(PATIENT("RACE",RACECOUNT))="" K PATIENT("RACE",RACECOUNT) Q
  1. .D VALDEMO(.ERRORS,$E($G(PATIENT("RACE",RACECOUNT)),1,30),"RACE")
  1. I $G(PATIENT("ETHNICITY"))'="" D VALDEMO(.ERRORS,$G(PATIENT("ETHNICITY")),"ETHNICITY")
  1. I $G(PATIENT("MARITAL STATUS"))'="" D VALDEMO(.ERRORS,$G(PATIENT("MARITAL STATUS")),"MARITAL STATUS")
  1. I $G(PATIENT("RELIGION"))'="" D VALDEMO(.ERRORS,$G(PATIENT("RELIGION")),"RELIGION")
  1. Q
  1. ;
  1. EDITDEMO(DFN) ;
  1. N TOPLEVELFDA,ETHNICITYFDA,RACEFDA,ETHNICITYIEN,RACECOUNT,SUBIEN,IENS,ERROR
  1. ;
  1. ; top level patient
  1. I $L($G(PATIENT("RELIGION"))) D
  1. .S TOPLEVELFDA(2,DFN_",",.08)=$$GETDEMOIEN($G(PATIENT("RELIGION")),"RELIGION")
  1. I $L($G(PATIENT("MARITAL STATUS"))) D
  1. .S TOPLEVELFDA(2,DFN_",",.05)=$$GETDEMOIEN($G(PATIENT("MARITAL STATUS")),"MARITAL STATUS")
  1. I $D(TOPLEVELFDA) D
  1. .D FILE^DIE(,"TOPLEVELFDA") K TOPLEVELFDA
  1. ;
  1. ; sub level race
  1. I $D(PATIENT("RACE")) D
  1. .S SUBIEN=0
  1. .F S SUBIEN=$O(^DPT(DFN,.02,SUBIEN)) Q:'SUBIEN D
  1. ..S IENS=SUBIEN_","_DFN_","
  1. ..S RACEFDA(2.02,IENS,.01)="@"
  1. ..D FILE^DIE(,"RACEFDA") K RACEFDA
  1. .;
  1. .S RACECOUNT=0
  1. .F S RACECOUNT=$O(PATIENT("RACE",RACECOUNT)) Q:'RACECOUNT D
  1. ..S IENS="+1,"_DFN_","
  1. ..S RACEFDA(2.02,IENS,.01)=$$GETDEMOIEN($E($G(PATIENT("RACE",RACECOUNT)),1,30),"RACE")
  1. ..S RACEFDA(2.02,IENS,.02)=1
  1. ..D UPDATE^DIE(,"RACEFDA",,"ERROR") K RACEFDA
  1. ;
  1. ; sub level ethnicity
  1. I $L($G(PATIENT("ETHNICITY"))) D
  1. .S ETHNICITYIEN=0,ETHNICITYIEN=$O(^DPT(DFN,.06,ETHNICITYIEN))
  1. .;
  1. .I '$G(ETHNICITYIEN) D Q
  1. ..S ETHNICITYFDA(2.06,"+1,"_DFN_",",.01)=$$GETDEMOIEN($G(PATIENT("ETHNICITY")),"ETHNICITY")
  1. ..S ETHNICITYFDA(2.06,"+1,"_DFN_",",.02)=1
  1. ..D UPDATE^DIE(,"ETHNICITYFDA") K ETHNICITYFDA
  1. .;
  1. .S ETHNICITYFDA(2.06,ETHNICITYIEN_","_DFN_",",.01)=$$GETDEMOIEN($G(PATIENT("ETHNICITY")),"ETHNICITY")
  1. .S ETHNICITYFDA(2.06,ETHNICITYIEN_","_DFN_",",.02)=1
  1. .D FILE^DIE(,"ETHNICITYFDA") K ETHNICITYFDA
  1. Q
  1. ;
  1. GETDEMOIEN(DEMO,TYPE) ;
  1. Q $S(TYPE="RELIGION":$O(^DIC(13,"B",DEMO,"")),TYPE="RACE":$O(^DIC(10,"B",DEMO,"")),TYPE="ETHNICITY":$O(^DIC(10.2,"B",DEMO,"")),TYPE="MARITAL STATUS":$O(^DIC(11,"B",DEMO,"")),1:"")
  1. ;
  1. VALDEMO(ERRORS,DEMOGRAPHIC,TYPE) ;
  1. N FILENUM,DEMOIEN
  1. I '$L(DEMOGRAPHIC) Q
  1. S FILENUM=$S(TYPE="RELIGION":13,TYPE="RACE":10,TYPE="ETHNICITY":10.2,TYPE="MARITAL STATUS":11,1:"")
  1. I FILENUM="" D ERRLOG^SDES2JSON(.ERRORS,565) Q
  1. I '$D(^DIC(FILENUM,"B",DEMOGRAPHIC)) D ERRLOG^SDES2JSON(.ERRORS,565) Q
  1. S DEMOIEN=$O(^DIC(FILENUM,"B",DEMOGRAPHIC,0))
  1. I 'DEMOIEN D ERRLOG^SDES2JSON(.ERRORS,52,"Unable to locate "_DEMOGRAPHIC) Q
  1. I TYPE="RACE" D:+$$INACTIVE^DGUTL4(DEMOIEN,1) ERRLOG^SDES2JSON(.ERRORS,52,"Inactive Race: "_DEMOGRAPHIC)
  1. I TYPE="ETHNICITY" D:+$$INACTIVE^DGUTL4(DEMOIEN,2) ERRLOG^SDES2JSON(.ERRORS,52,"Inactive Ethnicity: "_DEMOGRAPHIC)
  1. Q