| 1 | RORRP030 ;HCIOFO/SG - RPC: PATIENT DELETE ; 11/29/05 3:04pm
 | 
|---|
| 2 |  ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;***** MARKS THE PATIENT'S RECORD AS DELETED FROM THE REGISTRY
 | 
|---|
| 7 |  ; RPC: [ROR PATIENT DELETE]
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ; .RESULTS      Reference to a local variable where the results
 | 
|---|
| 10 |  ;               are returned to.
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ; REGIEN        Registry IEN
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ; RORDFN        IEN of the patient
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ; [FORCE]       Deprecated
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ; Return Values:
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  ; A negative value of the first "^"-piece of the RESULTS(0)
 | 
|---|
| 21 |  ; indicates an error (see the RPCSTK^RORERR procedure for more
 | 
|---|
| 22 |  ; details).
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ; Otherwise, the following codes can be returned in the RESULTS(0):
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ;         0  The record cannot be deleted
 | 
|---|
| 27 |  ;         9  The record has been marked as deleted
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | DELETE(RESULTS,REGIEN,RORDFN,FORCE) ;
 | 
|---|
| 30 |  N IENS,RC,REGNAME,RORFDA,RORMSG,TMP
 | 
|---|
| 31 |  D CLEAR^RORERR("DELETE^RORRP030",1)
 | 
|---|
| 32 |  K RESULTS  S RESULTS(0)=0
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ;--- Get the registry description/name
 | 
|---|
| 35 |  S TMP=$$REGNAME^RORUTL01(REGIEN)
 | 
|---|
| 36 |  I TMP=""  D  D RPCSTK^RORERR(.RESULTS,RC)  Q
 | 
|---|
| 37 |  . S RC=$$ERROR^RORERR(-1,,,RORDFN)
 | 
|---|
| 38 |  S REGNAME=$S($P(TMP,U,2)'="":$P(TMP,U,2),1:$P(TMP,U))
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  ;--- Get IENS of the registry record
 | 
|---|
| 41 |  S IENS=$$PRRIEN^RORUTL01(RORDFN,REGIEN)_","
 | 
|---|
| 42 |  I IENS'>0  D  D RPCSTK^RORERR(.RESULTS,RC)  Q
 | 
|---|
| 43 |  . S RC=$$ERROR^RORERR(-97,,,RORDFN,REGNAME)
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  I $$PENDING^RORUTL18(+IENS)  D
 | 
|---|
| 46 |  . ;--- Delete the pending record immediately
 | 
|---|
| 47 |  . N DA,DIK  S DIK=$$ROOT^DILFD(798),DA=+IENS  D ^DIK
 | 
|---|
| 48 |  E  D
 | 
|---|
| 49 |  . ;--- Mark the record as deleted
 | 
|---|
| 50 |  . S RORFDA(798,IENS,3)=5
 | 
|---|
| 51 |  . D FILE^DIE(,"RORFDA","RORMSG")
 | 
|---|
| 52 |  . I $G(DIERR)  D  D RPCSTK^RORERR(.RESULTS,RC)
 | 
|---|
| 53 |  . . S RC=$$DBS^RORERR("RORMSG",-9,,RORDFN,798,IENS)
 | 
|---|
| 54 |  ;---
 | 
|---|
| 55 |  S RESULTS(0)=9
 | 
|---|
| 56 |  Q
 | 
|---|