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

BQIPTFHR.m

Go to the documentation of this file.
  1. BQIPTFHR ;VNGT/HS/BEE-Family History Display ; 12 Sep 2008 12:30 PM
  1. ;;2.4;ICARE MANAGEMENT SYSTEM;;Apr 01, 2015;Build 41
  1. ;
  1. Q
  1. ;
  1. EN(DATA,DFN) ; EP -- BQI GET FAM HIST DISPLAY
  1. ;
  1. ;Description - all the family history that a patient has
  1. ;
  1. ;Input Parameters
  1. ; DFN - Patient internal entry number
  1. ;
  1. NEW ARRAY,UID,II,FAM,FHCIEN,FHRIEN,FHRREL,FHRDES,FHRSTS,FHRDTU,FHRMB,FHRMBT,FHRMBD,FHRAAD,FHRCOD,RORD,RELNM
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIPTFHR",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIPTFHR D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I $$VERSION^XPDUTL("BJPC")<2.0 S BMXSEC="RPC Call Failed: IHS PCC SUITE 2.0 must be installed in RPMS" Q
  1. ;
  1. ;Verify Patient DFN is populated
  1. I $G(DFN)="" S BMXSEC="Patient DFN is required" Q
  1. ;
  1. S @DATA@(II)="I00010FHCIEN^I00010FHRIEN^T00060FHRREL^T00030FHRDES^T00060FHCDX^T00080FHCNAR^"
  1. S @DATA@(II)=@DATA@(II)_"T00020FHCAAO^T00020FHRSTS^D00030FHCDTN^T00100APCDTNQ^T00050FHCPRV^"
  1. S @DATA@(II)=@DATA@(II)_"T00015FHRAAD^T00060FHRCOD^T00010FHRMB^T00020FHRMBT^T00030FHRMBD^D00015FHCDTM^D00030FHRDTU"_$C(30)
  1. ;
  1. S FHCIEN="" F S FHCIEN=$O(^AUPNFH("AC",DFN,FHCIEN)) Q:FHCIEN="" D
  1. . ;
  1. . N APCDTNQ,BQICND,DIEN,FHCAAO,FHCDX,FHCDTM,FHCDTN,FHCNAR,FHCPRV,REIN
  1. . D GETS^DIQ(9000014,FHCIEN,"**","IE","BQICND")
  1. . ;
  1. . ;Date Noted
  1. . S FHCDTN=$G(BQICND(9000014,FHCIEN_",",".03","I"))
  1. . ;
  1. . ;DX Code (Condition)
  1. . S DIEN=$$GET1^DIQ(9000014,FHCIEN_",",.01,"I") ;Using $$GET1^DIQ as GETS^DIQ sometimes omits .01 entry
  1. . I DIEN="" Q
  1. . I $$VERSION^XPDUTL("BCSV") S FHCDX=$$ICD9^BQIUL3(DIEN,FHCDTN,2)_"-"_$$ICD9^BQIUL3(DIEN,FHCDTN,4) ; csv
  1. . I '$$VERSION^XPDUTL("BCSV") S FHCDX=$$GET1^DIQ(80,DIEN_",",.01,"E")_"-"_$$GET1^DIQ(80,DIEN_",",3,"E")
  1. . S FHCDX=DIEN_$C(28)_FHCDX S:$P(FHCDX,$C(28))="-" FHCDX=""
  1. . ;
  1. . ;Diagnosis Narrative (Provider Narrative)
  1. . ;S FHCNAR=$G(BQICND(9000014,FHCIEN_",",".04","E"))
  1. . ;
  1. . ;Narrative
  1. . NEW NIEN
  1. . S APCDTNQ=""
  1. . S NIEN=$G(BQICND(9000014,FHCIEN_",",".04","I"))
  1. . I $$PATCH^XPDUTL("BJPC*2.0*10") S FHCNAR=$$PNPROB^AUPNVUTL(NIEN)
  1. . E S FHCNAR=$G(BQICND(9000014,FHCIEN_",",".04","E"))
  1. . S APCDTNQ=NIEN_$C(28)_FHCNAR
  1. . S:$P(APCDTNQ,$C(28))="" APCDTNQ=""
  1. . ;
  1. . ;Age at Onset
  1. . S FHCAAO=$G(BQICND(9000014,FHCIEN_",",".11","I"))_$C(28)_$G(BQICND(9000014,FHCIEN_",",".11","E"))
  1. . S:$P(FHCAAO,$C(28))="" FHCAAO=""
  1. . ;
  1. . ;Provider
  1. . S FHCPRV=$G(BQICND(9000014,FHCIEN_",",".08","I"))_$C(28)_$G(BQICND(9000014,FHCIEN_",",".08","E"))
  1. . S:$P(FHCPRV,$C(28))="" FHCPRV=""
  1. . ;
  1. . ;Relation IEN
  1. . S FHRIEN=$G(BQICND(9000014,FHCIEN_",",".09","I"))
  1. . I FHRIEN'="" S FAM(FHRIEN)=""
  1. . ;
  1. . ;Pull Relation Information - FHRREL, FHRDES, FHRSTS, FHRDTU, FHRMB, FHRMBT, FHRMBD, FHRAAD, FHRCOD
  1. . D GFAM(FHRIEN)
  1. . ;
  1. . ;Date Last Modified
  1. . S FHCDTM=$G(BQICND(9000014,FHCIEN_",",".12","I"))
  1. . ;
  1. . ;Set up sorting array
  1. . S ARRAY(RORD,RELNM,FHCIEN)=FHCIEN_U_FHRIEN_U_FHRREL_U_FHRDES_U_FHCDX_U_FHCNAR_U_FHCAAO_U_FHRSTS_U_$$FMTE^BQIUL1(FHCDTN)_U_APCDTNQ_U_FHCPRV_U_FHRAAD_U_FHRCOD_U_FHRMB_U_FHRMBT_U_FHRMBD_U_$$FMTE^BQIUL1(FHCDTM)_U_$$FMTE^BQIUL1(FHRDTU)_$C(30)
  1. ;
  1. S RIEN="" F S RIEN=$O(^AUPNFHR("AA",DFN,RIEN)) Q:'RIEN D
  1. . S FHRIEN="" F S FHRIEN=$O(^AUPNFHR("AA",DFN,RIEN,FHRIEN)) Q:FHRIEN="" D
  1. .. I $D(FAM(FHRIEN)) Q
  1. .. ;
  1. .. ; For family without diagnoses search FAMILY HISTORY FAMILY MEMBERS file
  1. .. D GFAM(FHRIEN)
  1. .. S ARRAY(RORD,RELNM,"R"_FHRIEN)=U_FHRIEN_U_FHRREL_U_FHRDES_U_U_U_U_FHRSTS_U_U_U_U_FHRAAD_U_FHRCOD_U_FHRMB_U_FHRMBT_U_FHRMBD_U_U_$$FMTE^BQIUL1(FHRDTU)_$C(30)
  1. ;
  1. ;Create record entries
  1. S RORD="" F S RORD=$O(ARRAY(RORD)) Q:RORD="" D
  1. . S RELNM="" F S RELNM=$O(ARRAY(RORD,RELNM)) Q:RELNM="" D
  1. .. S FHCIEN="" F S FHCIEN=$O(ARRAY(RORD,RELNM,FHCIEN)) Q:FHCIEN="" D
  1. ... S II=II+1,@DATA@(II)=ARRAY(RORD,RELNM,FHCIEN)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. GFAM(FHRIEN) ; Get FAMILY HISTORY FAMILY MEMBERS Data
  1. ;
  1. N BQIREL,RIEN,RELT
  1. S (FHRREL,FHRDES,FHRSTS,FHRDTU,FHRMB,FHRMBT,FHRMBD,FHRAAD,FHRCOD)=""
  1. ;
  1. I FHRIEN="" S (RORD,RELNM)="~" Q
  1. ;
  1. D GETS^DIQ(9000014.1,FHRIEN,"**","IE","BQIREL")
  1. ;
  1. ;Relative (Relation) and Sort variables
  1. S REIN=$G(BQIREL(9000014.1,FHRIEN_",",".01","I"))
  1. S RELT=$G(BQIREL(9000014.1,FHRIEN_",",".01","E"))
  1. S RELNM=RELT S:RELNM="" RELNM="~"
  1. S FHRREL="" I REIN'="" S FHRREL=REIN_$C(28)_RELT
  1. S RORD=$$GET1^DIQ(9999999.36,REIN_",",2103,"E") S:RORD="" RORD="~"
  1. ;
  1. ;Relation Modifier (Description)
  1. S FHRDES=$G(BQIREL(9000014.1,FHRIEN_",",".03","E"))
  1. ;
  1. ;Status
  1. S FHRSTS=$G(BQIREL(9000014.1,FHRIEN_",",".04","I"))_$C(28)_$G(BQIREL(9000014.1,FHRIEN_",",".04","E"))
  1. S:$P(FHRSTS,$C(28))="" FHRSTS=""
  1. ;
  1. ;Date Updated
  1. S FHRDTU=$G(BQIREL(9000014.1,FHRIEN_",",".09","I"))
  1. ;
  1. ;Multiple Birth Status
  1. S FHRMB=$G(BQIREL(9000014.1,FHRIEN_",",".07","I"))_$C(28)_$G(BQIREL(9000014.1,FHRIEN_",",".07","E"))
  1. S FHRMBD=FHRMB
  1. S:$P(FHRMB,$C(28))="" FHRMB=""
  1. ;
  1. ;Multiple Birth Type
  1. S FHRMBT=$G(BQIREL(9000014.1,FHRIEN_",",".08","I"))_$C(28)_$G(BQIREL(9000014.1,FHRIEN_",",".08","E"))
  1. S FHRMBD=FHRMBD_$C(28)_FHRMBT
  1. S:$P(FHRMBT,$C(28))="" FHRMBT=""
  1. ;
  1. ;Multiple Birth Display
  1. I $TR(FHRMBD,$C(28))="" S FHRMBD=""
  1. ;
  1. ;Age at Death
  1. S FHRAAD=$G(BQIREL(9000014.1,FHRIEN_",",".05","I"))_$C(28)_$G(BQIREL(9000014.1,FHRIEN_",",".05","E"))
  1. S:$P(FHRAAD,$C(28))="" FHRAAD=""
  1. ;
  1. ;Cause of Death
  1. S FHRCOD=$G(BQIREL(9000014.1,FHRIEN_",",".06","E"))
  1. ;
  1. Q