| 1 | RORUPD62 ;HCIOFO/SG - HIV-SPECIFIC REGISTRY UPDATE CODE ; 5/11/05 2:17pm
 | 
|---|
| 2 |  ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine uses the following IAs:
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ; #2762         Check for the patient merge (controlled)
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ;--------------------------------------------------------------------
 | 
|---|
| 9 |  ; Registry: [VA HIV]
 | 
|---|
| 10 |  ;--------------------------------------------------------------------
 | 
|---|
| 11 |  Q
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  ;***** CONVERTS ICR 2.1 RECORDS TO CCR:HIV FORMAT
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  ; RORREG        Registry IEN
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ; Return Values:
 | 
|---|
| 18 |  ;       <0  Error Code
 | 
|---|
| 19 |  ;        0  Ok
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 | CONVERT(RORREG) ;
 | 
|---|
| 22 |  N CODE,IMRIEN,PATIEN,RC,REGIEN,RULENAME,RULES,TMP
 | 
|---|
| 23 |  D LOG^RORLOG(2,"ICR 2.1 Conversion")
 | 
|---|
| 24 |  S REGIEN=+RORREG
 | 
|---|
| 25 |  ;--- Prepare the selection rules
 | 
|---|
| 26 |  S RULENAME="VA HIV 2.1 CONVERSION"
 | 
|---|
| 27 |  S TMP=$$SRLIEN^RORUTL02(RULENAME)
 | 
|---|
| 28 |  Q:TMP'>0 $$ERROR^RORERR(-3,,RULENAME)
 | 
|---|
| 29 |  S RULES(1)=TMP_U_DT
 | 
|---|
| 30 |  ;--- Convert the remaining records of ICR v2.1
 | 
|---|
| 31 |  S (IMRIEN,RC)=0
 | 
|---|
| 32 |  F  S IMRIEN=$O(^IMR(158,IMRIEN))  Q:IMRIEN'>0  D  Q:RC<0
 | 
|---|
| 33 |  . S CODE=$P($G(^IMR(158,IMRIEN,0)),U)  Q:CODE'>0
 | 
|---|
| 34 |  . S PATIEN=+$$XOR^RORUTL03(CODE)  Q:PATIEN'>0
 | 
|---|
| 35 |  . ;--- Check if the patient has been merged
 | 
|---|
| 36 |  . S TMP=+$G(^DPT(PATIEN,-9))  S:TMP>0 PATIEN=TMP
 | 
|---|
| 37 |  . ;--- Check if the patient record in the file #2 is valid
 | 
|---|
| 38 |  . Q:$$CHKPTR^RORUTL05(PATIEN)<0
 | 
|---|
| 39 |  . ;--- Quit if the patient has already been added to the new registry
 | 
|---|
| 40 |  . Q:$$PRRIEN^RORUTL01(PATIEN,REGIEN)>0
 | 
|---|
| 41 |  . ;--- Check if the patient is an employee
 | 
|---|
| 42 |  . Q:$$SKIPEMPL^RORUTL02(PATIEN,.REGIEN)
 | 
|---|
| 43 |  . ;--- Add the patient to the new registry
 | 
|---|
| 44 |  . S TMP=$$ADDPAT^RORUPD06(PATIEN,"VA HIV",.RULES)
 | 
|---|
| 45 |  ;---
 | 
|---|
| 46 |  Q $S(RC<0:RC,1:0)
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ;***** AFTER UPDATE CALL-BACK ENTRY POINT
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  ; RORIEN        An IEN of the newly added registry record
 | 
|---|
| 51 |  ; PATIEN        Patient IEN
 | 
|---|
| 52 |  ; REGIEN        Registry IEN
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  ; Return Values:
 | 
|---|
| 55 |  ;       <0  Error Code
 | 
|---|
| 56 |  ;        0  Ok
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | POSTUPD(RORIEN,PATIEN,REGIEN) ;
 | 
|---|
| 59 |  N DA,DIK,IENS,RC,RORFDA,RORHIV,RORMSG
 | 
|---|
| 60 |  S RORIEN=+$G(RORIEN)  Q:RORIEN'>0 0
 | 
|---|
| 61 |  ;--- Delete the record if it exists by some reason
 | 
|---|
| 62 |  D:$D(^RORDATA(799.4,RORIEN))
 | 
|---|
| 63 |  . S DIK="^RORDATA(799.4,",DA=RORIEN  D ^DIK
 | 
|---|
| 64 |  ;--- Prepare the data
 | 
|---|
| 65 |  S IENS="+1,"
 | 
|---|
| 66 |  S RORFDA(799.4,IENS,.01)=RORIEN
 | 
|---|
| 67 |  S RORHIV(1)=RORIEN
 | 
|---|
| 68 |  ;--- Add the record to the ROR HIV STUDY file
 | 
|---|
| 69 |  D UPDATE^DIE(,"RORFDA","RORHIV","RORMSG")
 | 
|---|
| 70 |  Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.4,IENS)
 | 
|---|
| 71 |  Q 0
 | 
|---|