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

DGMSE.m

Go to the documentation of this file.
  1. DGMSE ;QLB/PJH,AJB Utilities (continued); 02/01/2012
  1. ;;5.3;Registration;**797**;08/13/93;Build 24
  1. Q
  1. ;
  1. ;DBIA -5354
  1. ;
  1. ;API for clinical reminders to get military service information.
  1. ;
  1. ;
  1. MSDATA(DFN,NEPS,ENTRYDTA,MSDATA) ;
  1. ;Return data for all military service episodes.
  1. ;Service Entry Dates are required fields.
  1. ;Gets new ESR data if present from multiple node (.3216)
  1. N DA,DGX,ENTRYDT,NODE,SEPDT
  1. S NEPS=0,ENTRYDT=""
  1. F S ENTRYDT=$O(^DPT(DFN,.3216,"B",ENTRYDT)) Q:ENTRYDT="" D
  1. . S DA=0
  1. . F S DA=$O(^DPT(DFN,.3216,"B",ENTRYDT,DA)) Q:DA="" D
  1. .. S NEPS=NEPS+1
  1. .. S NODE=$G(^DPT(DFN,.3216,DA,0))
  1. .. S ENTRYDT=$P(NODE,U,1),SEPDT=$P(NODE,U,2)
  1. .. S ENTRYDTA(ENTRYDT)=NEPS
  1. .. S MSDATA(NEPS,"DATE")=$S(SEPDT="":ENTRYDT,1:SEPDT)
  1. .. S MSDATA(NEPS,"ENTRY DATE")=ENTRYDT
  1. .. S MSDATA(NEPS,"SEPARATION DATE")=SEPDT
  1. .. S MSDATA(NEPS,"BRANCH")=$$EXTERNAL^DILFD(2,.325,"",$P(NODE,U,3))
  1. .. S MSDATA(NEPS,"SERVICE COMPONENT")=$$EXTERNAL^DILFD(2,.32911,"",$P(NODE,U,4))
  1. .. S MSDATA(NEPS,"DISCHARGE TYPE")=$$EXTERNAL^DILFD(2,.324,"",$P(NODE,U,6))
  1. I NEPS>0 Q
  1. ;Gets data from non-multiple node (.32) only if data does not exist
  1. ;in the multiple.
  1. I '$D(^DPT(DFN,.32)) Q
  1. S NODE=$G(^DPT(DFN,.32)),NODE("SC")=$G(^DPT(DFN,.3291))
  1. F DGX=7,12,17 D
  1. . S ENTRYDT=$P(NODE,U,(DGX-1))
  1. . I ENTRYDT="" Q
  1. . S NEPS=NEPS+1
  1. . S ENTRYDTA(ENTRYDT)=NEPS
  1. . S SEPDT=$P(NODE,U,DGX)
  1. . S MSDATA(NEPS,"DATE")=$S(SEPDT="":ENTRYDT,1:SEPDT)
  1. . S MSDATA(NEPS,"ENTRY DATE")=ENTRYDT
  1. . S MSDATA(NEPS,"SEPARATION DATE")=SEPDT
  1. . S MSDATA(NEPS,"BRANCH")=$$EXTERNAL^DILFD(2,.325,"",$P(NODE,U,(DGX-2)))
  1. . S MSDATA(NEPS,"SERVICE COMPONENT")=$$EXTERNAL^DILFD(2,.32911,"",$P(NODE("SC"),U,$S(DGX=7:1,DGX=12:2,DGX=17:3)))
  1. . S MSDATA(NEPS,"DISCHARGE TYPE")=$$EXTERNAL^DILFD(2,.324,"",$P(NODE,U,(DGX-3)))
  1. Q
  1. ;
  1. ;
  1. OEIF(BDT,EDT,LSUB) ;Return a list of patient with OEF/OIF/UNK service in the
  1. ;date range specified by BDT to EDT.
  1. N DA,DFN,FDATE,SLOC,TDATE
  1. K ^TMP($J,LSUB)
  1. S TDATE=BDT-.1
  1. F S TDATE=$O(^DPT("ALOEIF",TDATE)) Q:TDATE="" D
  1. . S FDATE=0
  1. . F S FDATE=$O(^DPT("ALOEIF",TDATE,FDATE)) Q:(FDATE>EDT)!(FDATE="") D
  1. .. S SLOC=""
  1. .. F S SLOC=$O(^DPT("ALOEIF",TDATE,FDATE,SLOC)) Q:SLOC="" D
  1. ... S DFN=""
  1. ... F S DFN=$O(^DPT("ALOEIF",TDATE,FDATE,SLOC,DFN)) Q:DFN="" D
  1. .... S DA=""
  1. .... F S DA=$O(^DPT("ALOEIF",TDATE,FDATE,SLOC,DFN,DA)) Q:DA="" D
  1. ..... S ^TMP($J,LSUB,DFN,FDATE,TDATE,SLOC,DA)=""
  1. Q