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

BEHOCIR1.m

Go to the documentation of this file.
  1. BEHOCIR1 ;MSC/IND/MGH - CCD calls ;06-Nov-2014 16:53;PLS
  1. ;;1.1;BEH COMPONENTS;**066001,066002**;March 12, 2008;Build 2
  1. ;=================================================================
  1. ; RPC: BEHOCIR1 GETCCDS
  1. ; Call to return a list of CCDs for a patient.
  1. ; Input is the pt and the date range
  1. GETCCDS(DATA,DFN,STRTDT,ENDDT) ;
  1. N FLGS,MISCPRMS,LIST,TXT,I
  1. S FLGS="CE",DATA=$$TMPGBL
  1. S MISCPRMS(1)="IDFN^^"_DFN
  1. S MISCPRMS(2)="IXCLASS^^CLIN"
  1. S MISCPRMS(3)="IXTYPE^^CCD-SUMMARY"
  1. D GETIMGS^MAGSIXG1(.LIST,FLGS,STRTDT,ENDDT,"",.MISCPRMS)
  1. S I="" F S I=$O(LIST(I)) Q:I="" D
  1. .I I=0!(I=1) D
  1. ..S @DATA@(I)=LIST(I)
  1. .E D
  1. ..S TXT=$G(LIST(I))
  1. ..I $P(TXT,U,10)="CCD-SUMMARY" S @DATA@(I)=LIST(I)
  1. Q
  1. ;RPC Find Reconciliation entries for a patient
  1. ;Input=patient DFN
  1. ; Start date
  1. ; end date
  1. ;Return list of CCD entries
  1. ;IEN^PATIENT^DATE STORED^SOURCE^RECONCILED^IMAGE^OID^EXT
  1. PTCCD(RET,DFN,STRTDT,ENDDT) ;list of entries
  1. N BEGDT,EDATE,FIRST,IEN,CNT,IDTE,SRC,RES,REC,IMAGE,OID,EXT,ADATE,PDATE,MDATE,NEW,STRING,IARRAY
  1. S RET=$$TMPGBL()
  1. S CNT=0,IARRAY=""
  1. I $G(STRTDT)="" S STRTDT=3000101
  1. I $G(ENDDT)="" S ENDDT=$$NOW^XLFDT
  1. S BEGDT=9999999-STRTDT,EDATE=9999999-ENDDT
  1. S BEGDT=BEGDT+1
  1. S FIRST=EDATE-0.1 F S FIRST=$O(^BEHOCIR("AA",DFN,FIRST)) Q:FIRST=""!($P(FIRST,".",1)>BEGDT) D
  1. .S IEN="" F S IEN=$O(^BEHOCIR("AA",DFN,FIRST,IEN)) Q:IEN="" D
  1. ..S IMAGE=$$GET1^DIQ(90461.63,IEN,1.1,"I")
  1. ..S SRC=$$GET1^DIQ(90461.63,IEN,.03)
  1. ..S IDTE=$$GET1^DIQ(90461.63,IEN,.01)
  1. ..S REC=$$GET1^DIQ(90461.63,IEN,.04)
  1. ..S RES=$$GET1^DIQ(90461.63,IEN,.05)
  1. ..D DTE
  1. S I="" F S I=$O(IARRAY(I)) Q:I="" D
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)=$G(IARRAY(I))
  1. Q
  1. DTE ;Check reconcillation dates
  1. S ADATE=$$GET1^DIQ(90461.63,IEN,.07)
  1. S PDATE=$$GET1^DIQ(90461.63,IEN,.08)
  1. S MDATE=$$GET1^DIQ(90461.63,IEN,.09)
  1. I '+IMAGE D Q
  1. .S STRING=IEN_U_IDTE_U_SRC_U_REC_U_IMAGE_U_ADATE_U_PDATE_U_MDATE_U_RES
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)=STRING
  1. I $D(IARRAY(IMAGE)) D
  1. .S DATA=$G(IARRAY(IMAGE))
  1. .I ADATE>$P(DATA,U,6) S $P(DATA,U,6)=ADATE
  1. .I PDATE>$P(DATA,U,7) S $P(DATA,U,7)=PDATE
  1. .I MDATE>$P(DATA,U,8) S $P(DATA,U,8)=MDATE
  1. E D
  1. .S IARRAY(IMAGE)=IEN_U_IDTE_U_SRC_U_REC_U_IMAGE_U_ADATE_U_PDATE_U_MDATE_U_RES
  1. Q
  1. CCDCHECK ;EP
  1. N ST,TMP,X,Y
  1. S ST=$$GET^XPAR("SYS","BEHOCIR IMAGE SEARCH DT",1,"I")
  1. D ADDTOLST(ST)
  1. Q
  1. ADDTOLST(ST) ;EP
  1. ;Loop through Image file from last date stored and add any CCD type images to the BEH RECONCILIATION list
  1. N LSTDT,IEN,TYPE,DESC,PT,NOW,ERR,SAVE,MAGRY
  1. S NOW=$$NOW^XLFDT
  1. S LSTDT=ST F S LSTDT=$O(^MAG(2005,"AD",LSTDT)) Q:LSTDT="" D
  1. .S IEN="" F S IEN=$O(^MAG(2005,"AD",LSTDT,IEN)) Q:IEN="" D
  1. ..S TYPE=$$GET1^DIQ(2005,IEN,42)
  1. ..S DESC=$$GET1^DIQ(2005,IEN,100)
  1. ..I TYPE="CCD-SUMMARY" D
  1. ...Q:DESC="LOCAL SITE ENTRY"
  1. ...S PT=$$GET1^DIQ(2005,IEN,5)
  1. ...S SAVE=$$GET1^DIQ(2005,IEN,7)
  1. ...D LOAD(.MAGRY,IEN)
  1. D PUT^XPAR("SYS","BEHOCIR IMAGE SEARCH DT",1,NOW,.ERR)
  1. Q
  1. LOAD(MAGRY,MAGIEN) ;Save the data
  1. N FDA,ERR,CHK,CAP,DFN,DATA
  1. S CAP=$$GET1^DIQ(2005,MAGIEN,8.1,"I")
  1. Q:CAP="I"
  1. S MAGRY(0)="1^Storage to reconciliation file"
  1. ;S MAGRY(1)=MAGIEN_" "_$$NOW^XLFDT
  1. ;Quit if this image is already saved
  1. S CHK="" S CHK=$O(^BEHOCIR("D",MAGIEN,CHK))
  1. Q:+CHK
  1. S FDA=$NA(FDA(90461.63,"+1,"))
  1. S @FDA@(.01)=$$NOW^XLFDT
  1. S DFN=$$GET1^DIQ(2005,MAGIEN,5,"I")
  1. S @FDA@(.02)="`"_DFN
  1. S @FDA@(1.1)="`"_MAGIEN
  1. D UPDATE^DIE("E","FDA",,"ERR")
  1. ; Fire update event
  1. D GETNUM^BEHOCIR(.DATA,DFN)
  1. D BRDCAST^CIANBEVT("CIR."_DFN,DATA)
  1. Q
  1. TMPGBL() ;EP
  1. K ^TMP("BEHCIR",$J) Q $NA(^($J))
  1. AUTO ;EP
  1. ;Trigger setting up this routine in the taskman scheduling file
  1. K %DT,DIC
  1. N START,X,Y,DIE
  1. S DIC(0)="XZM",(DIE,DIC)="^DIC(19.2,",X="BEHOCIR CCDADD"
  1. D ^DIC
  1. Q:+Y>0
  1. S START=$$FMADD^XLFDT($$NOW^XLFDT(),,,60)
  1. D RESCH^XUTMOPT("BEHOCIR",START,"","1H","L")
  1. Q