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

BGOREL.m

Go to the documentation of this file.
  1. BGOREL ; IHS/MSC/MGH - New family history component ;01-Dec-2014 16:24;DU
  1. ;;1.1;BGO COMPONENTS;**6,13,14**;Mar 20, 2007;Build 16
  1. ;---------------------------------------------
  1. ;Add/edit a relationship and diagnoses for a patient
  1. ;DFN=Patient IEN [1]
  1. ;LIST(1)=REL^ Relationship ien [2] ^ Relationship [3] ^ Relationship Desc [4] ^ Status [5] ^ Age at Death [6]
  1. ;Cause of Death [7] ^ Multiple Birth [8] ^ Multiple Birth Type [9]
  1. ;LIST(n)=FHX^ Family HS ien [2]^ DX [3] ^ Text [4] ^ DX Age [5] ^ DX Age Approximate [6] ^ concept ct [7] ^ DESC CT [8] ^ MULT ICD [9]
  1. ;Patch 14 Moved NEW to SET line label
  1. SET(RET,DFN,INP) ;
  1. N FDA,LP,NEW,IEN,REL,OLDRIEN,RET2,RELIEN,FIEN,RIEN,DESC,STAT,DAGE,DCAUSE,MB,MBT,RNAME,IENX,INP2,DATA
  1. S RET2="",NEW=0
  1. I 'DFN S RET=$$ERR^BGOUTL(1001) Q
  1. I '$D(^DPT(DFN,0)) S RET=$$ERR^BGOUTL(1001) Q
  1. S LP="" F S LP=$O(INP(LP)) Q:LP="" D
  1. .S FAM=INP(LP)
  1. .I $E(FAM,1,3)="REL" D EREL
  1. .I $E(FAM,1,3)="FHX" D EFHX
  1. S RET=RET2
  1. Q
  1. EREL ;Add/Edit a relationship
  1. S (RELIEN,OLDRIEN)=$P(FAM,U,2) ;If blank its a new one
  1. S RNAME=$P(FAM,U,3)
  1. S RIEN="",RIEN=$O(^AUTTRLSH("B",RNAME,RIEN))
  1. I RIEN="" S RET=$$ERR^BGOUTL(1008) Q
  1. ;Q:RIEN=""
  1. S NEW=0,FIEN=""
  1. ;Store new relationship
  1. I RELIEN="" D
  1. .S RELIEN="+1",NEW=1
  1. S FDA=$NA(FDA(9000014.1,RELIEN_","))
  1. S @FDA@(.01)=RNAME
  1. S @FDA@(.02)="`"_DFN
  1. S @FDA@(.03)=$P(FAM,U,4)
  1. S @FDA@(.04)=$P(FAM,U,5)
  1. S @FDA@(.05)=$P(FAM,U,6)
  1. S @FDA@(.06)=$P(FAM,U,7)
  1. S @FDA@(.07)=$P(FAM,U,8)
  1. S @FDA@(.08)=$P(FAM,U,9)
  1. I NEW=1 S @FDA@(.11)="TODAY"
  1. S @FDA@(.09)="TODAY"
  1. S RET=$$UPDATE^BGOUTL(.FDA,"E@",.IENX)
  1. S:$E(RELIEN)="+" RELIEN=$G(IENX(1))
  1. I +RELIEN D
  1. .S DATA=$G(^AUPNFHR(RELIEN,0))
  1. .S RET2=RELIEN_";R"
  1. E S RET2=RET
  1. Q
  1. EFHX ;Add/edit a family history
  1. I '$D(RELIEN) S RET="Relationship not defined" Q
  1. I RELIEN="" S RET="Unknown relationship" Q
  1. I OLDRIEN=""&($P(FAM,U,2)'="") S RET="Cannot add an existing FHX to a new relationship" Q
  1. S INP2=DFN_"^"_RELIEN_"^"_$P(FAM,U,3)_"^"_$P(FAM,U,4)_"^"_$P(FAM,U,5)_"^"_$P(FAM,U,6)_"^"_$P(FAM,U,2)_"^"_$P(FAM,U,7)_"^"_$P(FAM,U,8)_"^"_$P(FAM,U,9)
  1. S RET=""
  1. D SET^BGOFHX(.RET,INP2)
  1. S FIEN=RET
  1. S RET2=RET2_"^"_FIEN_";F"
  1. ;Process event
  1. D EVT^BGOFHX(RELIEN,FIEN,NEW,DATA)
  1. Q
  1. EXTRA(ARRAY) ;Search relationships
  1. N FREL,IEN,RELDATA,REL,STAT,AGE,MB,MBTYPE,CAUSE
  1. S FREL="" F S FREL=$O(^AUPNFHR("AA",DFN,FREL)) Q:FREL="" D
  1. .S IEN="" F S IEN=$O(^AUPNFHR("AA",DFN,FREL,IEN)) Q:IEN="" D
  1. ..I $D(ARRAY(IEN)) Q ;This relationship already exists
  1. ..I '$D(ARRAY(IEN)) D
  1. . . . S RELDATA=$G(^AUPNFHR(IEN,0))
  1. . . . S X=$P(RELDATA,U,1),REL=$$EXTERNAL^DILFD(9000014.1,.01,"",X)
  1. . . . S X=$P(RELDATA,U,4),STAT=$$EXTERNAL^DILFD(9000014.1,.04,"",X)
  1. . . . S X=$P(RELDATA,U,5),AGE=$$EXTERNAL^DILFD(9000014.1,.05,"",X)
  1. . . . S CAUSE=$P(RELDATA,U,6)
  1. . . . S X=$P(RELDATA,U,7),MB=$$EXTERNAL^DILFD(9000014.1,.07,"",X)
  1. . . . S X=$P(RELDATA,U,8),MBTYPE=$$EXTERNAL^DILFD(9000014.1,.08,"",X)
  1. . . . S X=$P(RELDATA,U,9),MOD=$$FMTDATE^BGOUTL(X)
  1. . . . S NAME=$P(RELDATA,U,3)
  1. . . . S CNT=CNT+1
  1. . . . S @RET@(CNT)=IEN_U_REL_U_STAT_U_AGE_U_CAUSE_U_MB_U_MBTYPE_"^^^^"_MOD_U_NAME_"^"
  1. Q