72 lines
2.2 KiB
Mathematica
72 lines
2.2 KiB
Mathematica
RORUPD62 ;HCIOFO/SG - HIV-SPECIFIC REGISTRY UPDATE CODE ; 5/11/05 2:17pm
|
|
;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
|
|
;
|
|
; This routine uses the following IAs:
|
|
;
|
|
; #2762 Check for the patient merge (controlled)
|
|
;
|
|
;--------------------------------------------------------------------
|
|
; Registry: [VA HIV]
|
|
;--------------------------------------------------------------------
|
|
Q
|
|
;
|
|
;***** CONVERTS ICR 2.1 RECORDS TO CCR:HIV FORMAT
|
|
;
|
|
; RORREG Registry IEN
|
|
;
|
|
; Return Values:
|
|
; <0 Error Code
|
|
; 0 Ok
|
|
;
|
|
CONVERT(RORREG) ;
|
|
N CODE,IMRIEN,PATIEN,RC,REGIEN,RULENAME,RULES,TMP
|
|
D LOG^RORLOG(2,"ICR 2.1 Conversion")
|
|
S REGIEN=+RORREG
|
|
;--- Prepare the selection rules
|
|
S RULENAME="VA HIV 2.1 CONVERSION"
|
|
S TMP=$$SRLIEN^RORUTL02(RULENAME)
|
|
Q:TMP'>0 $$ERROR^RORERR(-3,,RULENAME)
|
|
S RULES(1)=TMP_U_DT
|
|
;--- Convert the remaining records of ICR v2.1
|
|
S (IMRIEN,RC)=0
|
|
F S IMRIEN=$O(^IMR(158,IMRIEN)) Q:IMRIEN'>0 D Q:RC<0
|
|
. S CODE=$P($G(^IMR(158,IMRIEN,0)),U) Q:CODE'>0
|
|
. S PATIEN=+$$XOR^RORUTL03(CODE) Q:PATIEN'>0
|
|
. ;--- Check if the patient has been merged
|
|
. S TMP=+$G(^DPT(PATIEN,-9)) S:TMP>0 PATIEN=TMP
|
|
. ;--- Check if the patient record in the file #2 is valid
|
|
. Q:$$CHKPTR^RORUTL05(PATIEN)<0
|
|
. ;--- Quit if the patient has already been added to the new registry
|
|
. Q:$$PRRIEN^RORUTL01(PATIEN,REGIEN)>0
|
|
. ;--- Check if the patient is an employee
|
|
. Q:$$SKIPEMPL^RORUTL02(PATIEN,.REGIEN)
|
|
. ;--- Add the patient to the new registry
|
|
. S TMP=$$ADDPAT^RORUPD06(PATIEN,"VA HIV",.RULES)
|
|
;---
|
|
Q $S(RC<0:RC,1:0)
|
|
;
|
|
;***** AFTER UPDATE CALL-BACK ENTRY POINT
|
|
;
|
|
; RORIEN An IEN of the newly added registry record
|
|
; PATIEN Patient IEN
|
|
; REGIEN Registry IEN
|
|
;
|
|
; Return Values:
|
|
; <0 Error Code
|
|
; 0 Ok
|
|
;
|
|
POSTUPD(RORIEN,PATIEN,REGIEN) ;
|
|
N DA,DIK,IENS,RC,RORFDA,RORHIV,RORMSG
|
|
S RORIEN=+$G(RORIEN) Q:RORIEN'>0 0
|
|
;--- Delete the record if it exists by some reason
|
|
D:$D(^RORDATA(799.4,RORIEN))
|
|
. S DIK="^RORDATA(799.4,",DA=RORIEN D ^DIK
|
|
;--- Prepare the data
|
|
S IENS="+1,"
|
|
S RORFDA(799.4,IENS,.01)=RORIEN
|
|
S RORHIV(1)=RORIEN
|
|
;--- Add the record to the ROR HIV STUDY file
|
|
D UPDATE^DIE(,"RORFDA","RORHIV","RORMSG")
|
|
Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.4,IENS)
|
|
Q 0
|